티스토리 뷰

니모닉은 BIP39 제안으로서 비밀키를 저장하고 관리하기에 불편함을 극복하기 위한 새로운 해결책으로서 제안되었다.

 

사실 256비트의 이진수가 바로  날 것 그대로의 비밀키이고 이는 컴퓨터 머신에게 익숙한 형태다. 하지만 사람이 해당 값을 다루기에는 너무나 불편하다.

 

겨우 16진수 표현을 사용하여 길이를 짧게 표현해 낼 수는 있지만, 턱없이 불편한 형태이고 이를 개선하기 위해 체크섬과 BASE58 인코딩을 적용한 WIF 형태는 그나마 조금 나은 상태이지만, 여전히 기록하기에 그리고 구두로 전달하기에 또는 기억하기에는 어려움이 있다.

 

즉 비밀키가 너무나 중요한 정보이지만 사람이 이를 관리하기란 여간 까다로운 것이 아니다.

 

그래서 무작위로 생성된 256비트의 비밀키를 보다 인간에게 익숙하고 관리하기 용이한 형태로 사용하기 위해 BIP39 제안 즉 니모닉(Mnemonic)이 나오게 되었다.

특별히 니모닉은 기억하기 쉬운 비밀번호, 즉 Brain wallet 과 구별된다. 브레인월렛은 기억하기 쉬운 비밀번호로 부터 비밀키를 만들어 내는 방식이지만, 니모닉은 단지 랜덤으로 선택된 시크릿(비밀키일수도 또는 단지 씨드값일 수도 있다) 값으로부터 관리하기 쉬운 니모닉 문장(여러 단어 묶음)을 만들어내는 방식이다.

 

니모닉은 단지, 2048 개의 단어들을 이용하여 하나의 단어가 11비트의 정보를 담게 하였다.

 

즉 아래와 같이 1부터 2048까지의 숫자가 하나의 단어에 매핑된다.

https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

 

그러므로 하나의 단어는 곧 하나의 숫자를 의미하고 해당 숫자를 2진수로 표현하면 11비트의 비밀키값 일부를 얻을 수 있다. 이를 단어의 순서와 동일하게 이어나가면 그대로 랜덤으로 선택되었던 수가(시크릿 or 비밀키 or 엔트로피)이 되는 것이다. 단 이때 마지막 일부는 체크섬으로 기능한다.

 

니모닉은 12, 15, 18, 21, 24 개 단어 중 한가지를 사용하게 된다.

니모닉 단어 수 전체 길이(단어수 x 11) 마지막 체크섬의 비트 수 원문의 비트수(전체 길이 - 체크섬 길이)
12 132 4 128
15 165 5 160
18 198 6 192
21 231 7 224
24 264 8 256

 

니모닉은 암호학적으로 12단어를 사용하는 것만으로도 충분히 안전하다고 밝혀져 있다. 따라서 12개 단어의 니모닉을 사용하는 것이 권장된다. 어짜피 니모닉이란 사용 편의성을 위한 도구인데 24개의 단어를 사용하는 것은 12 단어의 니모닉 보다는 안전할 수 있지만 관리상의 어려움이 커지기 때문이다.

 

니모닉은 단지 랜덤으로 뽑힌 숫자의 한 표현이다. 그 랜덤 숫자를 엔트로피라고 부른다.

 

그리고 엔트로피로부터 씨드를 만들어 낸다. 그리고 씨드로부터 비트코인의 비밀키와 주소등을 만들어 내게 된다.

 

씨드로부터 비트코인 비밀키와 주소를 만들어내는 방법은 여러가지가 있는데 씨드로부터 비트코인 주소를 만들어 내는 방법 자체는 니모닉 제안(BIP39) 의 범위에 포함되지 않는다.

 

씨드로부터 비트코인 주소를 만들어 내는 방법으로는 BIP32, BIP44, BIP49, BIP141 등의 제안이 있다.

 

니모닉으로 사용될 단어들은 사용 편의를 위해 다음과 같은 특징들을 가져야 한다.

  1. 처음 4글자만으로 해당 단어가 결정되어야 한다.
    1. 니모닉을 기록할 때 앞 4글자만 기록해도 무방하다
    2. 지갑 애플리케이션에서 니모닉 자동완성 기능을 활용할 수 있다
  2. 비슷한 의미의 단어가 사용되어서는 안된다.
    1. 사용에 모호함이 없어야 한다.
  3. 사전 순으로 정렬되어 있어야 한다.
    1. 이진탐색을 통해 빠르게 해당 하는 단어와 숫자를 찾을 수 있어야  한다.

 

728x90
반응형
댓글
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함