암호 화폐는 암호 기술로 만들어지는 화폐입니다. 암호란 정보를 비밀리에 숨기기 위한 부호화 기술의 하나입니다. 현대적인 암호 기술은 복잡한 수학적 원리를 바탕으로 이루어져 있지만, 그 근본은 하나의 문자를 다른 문자로 대체하는 치환기법과 문장 내에서 문자들의 위치를 서로 뒤섞는 위치변경 기법으로 이루어져 있습니다. 치환되고 위치가 변경된 암호문을 원래대로 되돌리기 위해 어떤 문자를 다른 문자로 대체했는지에 대한 정보와 어떤 위치의 문자를 다른 위치로 변경했는지에 대한 정보가 있다면 원래의 평문으로 복원할 수 있습니다. 이러한 정보가 암호문을 해독하기 위한 키(Key)가 됩니다.
간단한 방법으로 암호문을 만들게 되면 영어의 문장에서 통계적으로 나오는 문자들의 빈도수, 자주 사용되는 단어, 편지의 첫 문장에 많이 사용되는 “Dear” 등의 알려진 정보들을 바탕으로 쉽게 해독될 수 있습니다. 복잡한 기계적 장치를 이용하여 암호문을 만든 대표적인 사례가 2차 세계대전 당시 독일군이 사용했던 에니그마(Enigma)라는 암호 장치입니다. 거의 완벽에 가까운 장치였지만 현대적인 암호학의 시조라고 할 수 있는 영국의 암호학자인 알렌 튜링(Alan Turing)에 의해서 해독되어 연합군을 승리로 이끌게 됩니다. 이 과정에서 현대적인 컴퓨터가 만들어지게 되고, 컴퓨터의 계산 가능성을 수학적으로 모델링한 튜링 머신(Turing Machine) 이론도 나오게 됩니다.
일반적인 암호기술이 정보를 숨기기 위한 것이라면, 암호화폐에 쓰이는 암호기술은 정보를 인증하기 위한 것입니다. 암호화폐의 구현을 위해서 사용되는 블록체인(Blockchain)이라는 분산 장부(Distributed Ledger) 기술은 불가역적(Immutable) 데이터베이스라고도 불립니다. 불가역적이라는 말은 위조 또는 변조가 불가능하다는 의미입니다. 즉 한번 기록되고 합의된 정보는 바꿀 수 없으므로 불가역적인 거래 장부가 됩니다. 이를 위해서 사용되는 기술이 해쉬(Hash) 암호 기술입니다. 해쉬는 해쉬 함수를 의미하는데 다양한 길이의 문장을 입력값으로 제공하더라도 함수의 출력값은 항상 일정한 길이를 갖는 일방향 함수입니다. 여기서 일방향성이 중요합니다. 입력값에서 출력값을 계산하기는 쉽지만, 출력값에서 입력값을 만들어내는 것은 거의 불가능합니다. 가능한 입력값의 모든 조합을 넣어봐서 나오는 모든 출력값을 비교해 보는 것이 유일한 방법입니다. 특정 패턴의 출력값을 갖는 해쉬 함수에 대한 입력값을 찾아내는 과정이 암호화폐에서 말하는 작업 증명 (Proof of Work)입니다. 화폐 거래 내역이 기록된 블록들을 해쉬함수를 이용하여 체인으로 엮어나가는 과정에 대한 프로토콜을 정의한 것이 블록체인입니다.
암호화폐를 주고받기 위해서는 은행의 계좌와 비슷한 역할을 하는 암호화폐 주소가 있어야 하고, 해당 주소에 들어 있는 화폐의 지불을 승인하기 위한 전자 서명 기술이 필요합니다. 이것은 공개키 암호화 기술을 이용하여 구현됩니다. 암호 알고리즘은 평문에서 암호문을 만들 때 사용되는 암호화 키와 암호문에서 평문으로 복원하기 위해서 사용되는 복호화 키가 동일한 대칭키 암호 알고리즘과 암호화 키와 복호화 키가 서로 다른 한 쌍으로 구성된 공개키 암호 알고리즘으로 구분됩니다. 대칭키 암호 알고리즘의 경우는 암호문을 주고 받을 상대방이 서로 동일한 키를 보유하고 있어야 하므로 키를 어떻게 비밀리에 공유할 것인가를 다루는 키 교환 프로토콜 문제가 있습니다. 공개키 암호 알고리즘의 경우는 비밀키 (또는 개인키)는 자신이 안전하게 보관하고, 비밀키와 쌍을 이루는 공개키는 상대방에게 공개한 후, 공개키를 이용하여 암호문을 만들게 하면 자신이 가지고 있는 비밀키로만 해당 암호문을 풀 수 있으므로 키 교환 문제가 없습니다. 암호화폐의 경우는 공개키 암호 알고리즘을 응용한 전자 서명 기술을 사용합니다. 자신만이 보유한 비밀키를 이용하여 데이터를 전자적으로 서명하면 상대방은 미리 공개된 공개키로 서명에 대한 위변조를 확인하게 됩니다. 암호화폐의 주소는 각 사용자가 생성한 공개키에서 유도된 정보로 공개키에 대한 진위를 판단하기 위한 정보로 사용되며, 해당 사용자는 자신의 비밀키를 이용하여 자신이 소유한 주소에 담겨있는 돈에 대한 지불을 승인할 수 있고, 다른 사용자들은 공개키를 이용하여 이를 확인할 수 있게 됩니다.
암호의 일반적인 의미와는 달리 암호화폐의 블록체인에 기록된 모든 거래 내역과 주소 정보는 암호화되지 않고 모두에게 공개되어 있어 누구나 볼 수 있고, 또 추적이 가능합니다. 단지 해당 주소의 사용자에 대한 신분 정보가 없으므로 실제 사용자를 확인할 수 없어서 익명성은 보장됩니다. 그렇지만 암호화폐 거래소 등을 통해서 특정 주소에 대한 사용자 정보가 확인되면 이후의 사용내용은 모두 추적이 가능합니다. 이러한 추적을 불가능하게 하기 위해 여러 사람들의 암호화폐 주소를 뒤섞는 믹싱(Mixing) 기술이 있습니다. 대쉬(Dash)등이 대표적으로 믹싱 기술이 적용된 암호화폐입니다. 보다 암호학적 기술을 적용한 프라이버시 보호 암호화폐로는 링 시그니처(Ring Signature)를 사용하는 모네로(Monero)와 영지식증명(Zero Knowledge Proof)의 응용인 zk-SNARK를 사용하는 지캐쉬(Zcash) 등이 있습니다. 최근에는 암호화된 데이터에 대한 연산을 수행할 수 있는 동형 암호 알고리즘(Homomorphic Encryption Algorithm)을 응용해서 사용자의 신분정보나 사용자가 보유한 돈의 양을 공개하지 않고 돈을 지불할 수 있는 암호화폐 기술에 대한 연구도 활발히 진행되고 있습니다. 동형 암호 기술은 사용자의 DNA 정보 등 민감한 개인정보를 공개하지 않고 해당 정보에 대한 기계학습을 수행하여 개인정보 사용료를 받을 수 있도록 하는 인공지능과 암호화폐를 결합한 프로젝트에서도 사용되고 있습니다.
암호화폐에서 사용되는 해쉬함수나 공개키 암호화 기술 등은 양자 컴퓨터가 개발되면 해독될 수 있다고 알려졌습니다. 그렇지만 현재의 암호 알고리즘을 해석하기 위해서는 양자 컴퓨터의 퀀텀비트(Quantum Bit) 1,024개 정도가 풀 매쉬(Full Mesh)로 연결된 양자 컴퓨터가 개발돼야 합니다. 이러한 양자 컴퓨터의 개발은 일반적인 양자컴퓨터보다 최소 30~40년은 더 걸릴 것으로 예상됩니다. 또한 쇼어(Shor) 알고리즘을 적용한 양자컴퓨팅을 견디는 격자 암호(Lattice based Cryptography) 등의 양자 내성 암호 알고리즘도 연구되고 있습니다. 이더리움의 경우는 사용자 전자서명의 안전성을 강화하기 위해서 메트로폴리스(Metropolis) 하드포크에서 양자내성 암호 알고리즘인 해쉬래더(Hash Ladder) 전자서명을 적용할 예정입니다.
암호화폐와 암호 기술은 뗄레야 뗄 수 없는 관계이고, 컴퓨터 및 프로그래밍 기술과 직접적 연관관계가 있습니다. 그리고 그 바탕에 수학이 있습니다. 수학적인 정수론(Number Theory)를 바탕으로 RSA(Rivest, Shamir, Adleman) 공개키 알고리즘이 개발되었고, 이를 해독하기 위한 양자 컴퓨팅 기술 등이 개발되고 있습니다. 작업증명에 필요한 해쉬함수의 계산을 빠르게 하기 위해서 GPU(Graphic Processing Unit)를 이용한 채굴장비부터, 전용 ASIC 칩을 사용한 채굴장비까지 개발되고 있고, 또 이를 막기 위해 Scrypt와 같이 ASIC 저항력이 있는 해쉬 알고리즘을 적용한 라이트코인(Litecoin) 등의 암호화폐도 늘고 있습니다. 수많은 연관기술이 암호화폐라는 상업적 성공을 거둔 기술을 바탕으로 시너지 효과를 내면서 발전하고 있습니다.
/윤석구 소브린 월렛 네트워크 대표
/윤석구 소브린월렛 네트워크 대표
◇윤석구 대표는
KAIST 전자공학 학사, USC 전산과학 석사, 분산 OS 전공. 보안 기술과 프로그래밍 기술 전문가다. 초기 암호화폐 기술 개발에 참여했고 삼성그룹 미래기술실 근무당시 암호화폐 기술을 소개했다. 현재 3세대 보안 채팅 기술과 앱의 자가 보호 기술을 응용한 암호화폐 전자지갑과 탈중앙화 거래 시스템인 소브린월렛 프로젝트를 이끌고 있다.
- 김흥록 기자
- rok@sedaily.com