Mnemonic 이란?
mnemonic 의 사전적 의미는 다음과 같습니다.
어떤 것을 기억하는 데 쉽게 하도록 도움을 주는 것, 또는 쉽게 기억되는 성질.
mnemonic 의 어원은 그리스 신화의 기억의 여신 므네모시네(Mnemosyne) 에서 유래 되었습니다. 므네모시네의 자녀인 뮤즈(Muses)는 올림포스 산의 신들의 축제에서 아폴론을 도와 음악을 연주 하였는데, 악보가 없는 세계라 기억력에 의존하여 연주할 수 있었다고 합니다.
니모닉이란 어원 자체가 “기억”에 기반하고 있습니다.
Assembly
니모닉은 초기 컴퓨터 개발에서 시작된 중요한 개념입니다. 컴퓨터는 Machine Language 라는 기계가 직접 이해할 수 있는 2진수(0, 1) 언어를 갖습니다.
1+2+3+4 + … + 100 은 다음과 같이 표시할 수 있습니다. 000000000001000011101111….. 이러한 기계어를 사람은 이해하기 어렵고 복잡하기 때문에 이를 해결하고자 어셈블리어가 나오게 됩니다.
어셈블리어는 니모닉을 사용한 언어로써, 기계어로 이뤄진 명령어를 상징적인 기호로 변환한 것입니다.
따라서 0과 1로 이루어졌던 + 연산도 add 로 표현할 수 있게 됐습니다. 이처럼 니모닉은 특정 문자를 알기쉽게 또는 기억하기 쉽게 표현하는 방법입니다.
또한 그 후에 등장한 C언어, C++, Java 역시 어셈블러의 어려움을 프로그래머로 하여금 더 쉽게 개발된 언어로써 니모닉이라고 볼 수 있습니다.
다음 3개의 식은 모두 같은 표현입니다
00000000 00000000 10110000 01110001
mov al, 061h
int result = a x b;
Blockchain Account
블록체인 서비스를 많이 사용하신 분들은 흔히 다음과 같은 형태에 익숙 할것 입니다.
ETH Address : 0xA30aDB628B746ACe9C2e481Ba188C606D82C9516
개인키(Private Key) : 5a86a8e3783004048b80f62146b47651a0ddc07757e87580c875320b25f621fc
** PK는 Public Key 의 소유를 증명하는 중요한 키로써 절대 그 누구에게도 노출하면 안됩니다.
위에서 보듯이 개인키는 매우 복잡하고 어렵게 배치 되어 있고 노출 되더라도 다른 사용자로 하여금 쉽게 기억될수 없게 만들어져 있습니다.
비트코인, 이더리움, 퀀텀등 코인들은 이 개인키를 암호화 한 Keystore 파일을 제공합니다. 또한 사용자가 쉽게 Account Address에 접근하기 위하여 Mnemonic Phrase 를 제공합니다.
본 글에서 유추할수 있듯이 Mnemonic Phrase역시 PK에 비해 매우 쉬운 단어의 배열로 이루어져 있습니다.
Mnemonic Phrase : replace void fancy believe buddy fat angry egg comfort shuffle envelope office
Mnemonic Phrase는 Private Key와 똑같은 역할을 합니다. 따라서 이 Phrase역시 그 누구에게도 노출하면 안됩니다.
Key management on DApp Service (3/3) — Jason 님의 글에서도 볼 수 있듯이 Ethereum Wallet으로 유명한 MEW 에서는 다음과 같이 Keystore 와 Mnemonic문구로 로그인을 할 수 있습니다.
마무리
Mnemonic은 사용자에게 기억을 편하게 하기위해 사용되고 있습니다. 단어자체는 처음들어볼지 몰라도 핸드폰 단축키, 줄임말등으로 우리는 이미 니모닉을 사용하고 있습니다. 블록체인에서도 니모닉이 사용되고 있으며 이는 우리에게 편의를 제공합니다.
다음글에서는 개인키(Private Key) 와 Mnemonic Phrase의 관계에 대해 포스팅 하도록 하겠습니다.