암호화폐가 사용하는 현대의 지갑은 BIP39 표준을 따르며 256bit의 키를 시드 문구를 통해 복구할수 있도록 해줍니다.
1.무작위로 만들어진 256bit의 데이터는
2. SHA256 해시함수를 거쳐 단방향으로 변환된후
3. BIP39 룰에따라 체크섬을 붙이고 11비트씩 잘라 24단어로 매핑됩니다.
1. 랜덤넘버를 생성하기 위해 많은 제조사들은 여러 신호들을 조합해 생성하거나 TRNG들을 이용하는등 제일 중요한 부분이긴 합니다. 그러나 이때 선택된 무작위데이터는 sha256 해시를 하고나면 충분한 엔트로피가 섞인 데이터 인지 확인이 불가능합니다.
제조사에서 만든 시드의 무작위성은 사실 검증이 불가능합니다.
그래서 D6 주사위를 99번 굴리거나.. 동전을 256번 던져서 시드를 생성하기도 합니다..
이렇게 생성된 무작위 데이터는 SHA256연산을 해서 사용하는데 손으로 계산하기가 쉽지 않습니다.
콜드카드/시드사이너/키스톤 같은 몇몇 제조사는 하드웨어 지갑 자체 메뉴에서 주사위 값을 입력받아 시드문구로 변환해주는 기능을 가지고 있습니다.
제일 만만한게 시드사이너라 놀고 있는 라즈베리파이를 이용해서 일부기능만 써볼까 했는데 맞는 스크린이 없어서 포기했다가..
갑자기 작년에 사둔 계산기가 생각이 났습니다. ㅋ 키패드로 주사위 숫자 입력도 되고.. 통신장치도 없고. 사용후 뒤쪽 리셋버튼 누르면 리셋되고. 딱 맞는 녀석인거 같아.. 급조해서 만들어봤습니다.
최근 판매되는 그래핑계산기는 마이크로파이썬이 내장되어 있는 경우가 많은데 이걸 이용해보기로 했습니다.
- 일반 파이썬과 많이 다릅니다. 해시 라이브러리도 없어서 sha256직접 구현해야 하고.. 메모리 제약도 있고.. 암튼
그렇게 해서 탄생한 시드생성기 입니다. 실제 주사위 99번 굴리면서 순차적으로 입력하면 돌 256비트 엔트로피를 가진 24단어 셋을 만들어 줍니다


사용용도가 거의 없는 흑백 9750으로 쓰려했는데 스크린 해상도가 낮아서 ㅎ 컬러가 한눈에 확인하기도 좋네요.

상용 지갑 제조사의 시드생성을 믿지 못하시겠으면 직접 생성해보세요~