[블록체인] 니모닉(Mnemonic)

dhkim·2022년 7월 5일
0

니모닉(Mnemonic)

니모닉이란 결정적 지갑에서 난수를 12개의 영단어로 인코딩한 영단어 그룹으로, BIP39에서 제안되었다.
기존의 시드 키는 숫자와 문자로 구성된 난수이기 때문에 사용자가 기억하기 어려웠지만, 니모닉 코드 단어의 경우 사용자가 기억하고 사용하기 쉬운 형태로 구성되어 있다는 장점이 있다.
블록체인에서 니모닉은 지갑을 복구하기 위한 일반적인 단어들의 조합을 뜻한다.

니모닉 Wallet

니모닉을 사용하여 비밀키 관리를 용이하게 해주는 암호화폐 지갑이다.
유저는 비밀 키를 잃어버릴 수 있다는 위험성 때문에, 비밀키를 복구(리커버리)할 때 니모닉을 사용하게 된다.
니모닉 Wallet은 암호화폐 지갑의 핵심인 비밀키 관리를 용이하게 해주고, 모든 비밀 키를 니모닉으로 관리하는 지갑이다.
암호화폐 지갑은 키를 관리하는 키 매니지먼트 시스템이라고 할 수 있다.
예를 들어, 내 계정에 있는 이더리움 내 것이라고 증명할 수 있는 비밀 키를 지갑이 관리한다고 보면 된다.

니모닉이 필요한 이유
-> 일반적인 단어로 표현되는 니모닉 코드는 암호화폐 지갑 사용자가 난해한 기술에 대한 이해 없이도 지갑을 편리하게 사용할 수 있도록 돕는다.
암호화폐 지갑은 비대칭 키 암호 방식을 사용하고 공개키와 비밀키가 사용이 되는데 이 비밀 키를 사람이 쓰기 편하게 만들어진 것이 바로, 니모닉이다.

추가로 알아가기

솔팅(Salting)과 키 스트레칭

솔팅은 원본 데이터에 임의의 문자열인 솔트(Salt)를 추가하여 해싱하는 방식
솔팅 방식으로 비밀번호를 암호화하여 데이터베이스에 보관하면, 해커가 솔트가 무엇인지 알지 못하는 이상 레인보우 테이블의 해시값과 데이터베이스의 해시값을 비교해도 원본 비밀번호를 알 수는 없다.

  • 키 스트레칭(Key Stretching)은 이러한 솔팅 방식을 여러 번 반복하는 것이다. 솔팅의 결과값을 다시 솔트 함수의 입력값으로 하여 다시 솔팅을 하고, 이 과정을 반복한다.
  • 사용자가 입력한 비밀번호는 예측하기 쉬운 경우가 많은데, 키 스트레칭은 이러한 예측을 더욱 어렵게 해준다.
profile
Blockchain developer

0개의 댓글