암호화폐 지갑에서 니모닉 시드 문구가 어떻게 생성되는지 궁금하신가요?

작성자 정보

  • 레딧 작성
  • 작성일

컨텐츠 정보

본문

이 게시물은 시드 문구를 생성할 때 앱 내부에서 무슨 일이 일어나고 있는지 궁금해하는 사람들을 위한 것입니다.

오늘날 대부분의 지갑에서 사용되는 방법은 12개 또는 24개 단어의 시드 구문을 사용하는 것입니다. 그러나 어떤 단어 조합도 작동하지 않습니다. 이러한 단어를 선택하기 위한 기본 규칙은 bip39라는 표준입니다. 이 게시물은 이 표준으로 만들 수 있는 가장 작은 시드 문구를 생성하는 예를 살펴보는 것을 목표로 합니다.

무엇보다도 bip39로 니모닉을 생성하려면 엔트로피에 32비트의 배수를 사용해야 합니다. 지금은 내 말을 받아들이십시오. 그 이유는 잠시 후에 명백해질 것입니다.

이진수의 비트는 1 또는 0이므로 32비트는 32개의 1 또는 0이 됩니다. 이것을 안전하게 하려면 각 지점이 1 또는 0이 될 가능성이 가능한 한 무작위로 되기를 원합니다. 강한 엔트로피는 재미있는 주제이자 멋진 토끼굴입니다. 그러나 이 예의 경우 이것은 암호학적으로 안전하게 무작위로 생성된 32비트입니다. 10101000101110000011100101011011

이제 다음 단계는 해당 바이너리의 SHA256 해시를 가져와 결과를 바이너리로 변환하는 것입니다. 해싱, 특히 SHA256은 암호화 전반에 걸쳐 있으며 그 자체로 재미있는 주제입니다. 그러나 이 예에서 다시 간단하게 하기 위해 이 작업을 수행하고 다른 날을 위해 주제를 저장하겠습니다. 1101010010110101111001100100011100100010111101001001000011100100111110011000111001101100110111100101110001010111101111000111100100011111111101000011011010011001111011010100010001010000110010000001100011011101011111010011000110000010011100001001100010101100

이제 비트 수가 32의 배수여야 한다는 요구 사항을 기억하십니까? 해시가 있으므로 사용할 해시의 양을 선택해야 하기 때문입니다. 그래서 우리는 엔트로피의 길이를 32로 나눕니다. 우리의 경우 32/32는 1 이고 이진법의 많은 부분을 사용합니다. 이 경우에는 첫 번째 숫자만 사용합니다. 우리가 방금 발견한 조각. SHA256 해시는 동일한 바이너리에서 생성된 경우 항상 동일하며 그 일부를 가져와 추가합니다.

그것을 가져 와서 원래 엔트로피 101010001011100000111001010110111 끝에 추가하십시오.

그런 다음 길이를 11로 10101000101 11000001110 01010110111 1349 1550 695 의 총 길이가 33이므로 동일한 길이의 세 가지 결과를 얻습니다. bip39 단어 목록의 각 숫자(단어 목록이 1에서 계산되기 시작하면 위의 각 항목에 1을 더하면 컴퓨터는 0에서 계산을 시작합니다.): post scrub finger 체크섬은 마지막 숫자로 1을 추가하므로 우리는 다음을 알고 있습니다. 694 "fine"(하나 적음)을 마지막 단어로 사용할 수 없습니다. 왜냐하면 해당 엔트로피에 대한 체크섬은 절대 0으로 끝나지 않고 이 세 단어를 정확히 얻으려면 이진 시퀀스의 나머지 부분이 정확히 동일해야 하기 때문입니다.

예를 들어 12단어 길이의 유효한 지갑을 생성하려는 경우 목록을 얻기 위해 예제에서 사용한 32개의 긴 시퀀스 대신 128개의 긴 임의 바이너리 시퀀스로 시작하는 것을 제외하고는 똑같은 작업을 수행하면 됩니다. 4배 긴 단어.

/u/MochiJump 가 제출함
[링크] [댓글]

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 34,184 / 585 페이지
번호
제목
이름

공포-탐욕 지수


알림 0