블록체인과 비트코인
중앙 은행 없이 신뢰를 구축하는 비트코인의 분산 원장 기술(블록체인)과 암호학적 해시 함수, 그리고 작업 증명(PoW)의 원리를 해부한다.
편집부 · 2021년 8월 8일 · 읽는 데 4분
우리가 은행 앱을 열어 친구에게 1만 원을 송금할 때, 1만 원짜리 지폐가 스마트폰 선을 타고 실제로 날아가는 것은 아니다. 단지 은행의 거대한 중앙 서버(컴퓨터 장부)에 기록된 내 잔고의 숫자 '1만'이 지워지고, 친구 잔고에 숫자 '1만'이 찍히는 데이터 수정 작업이 일어날 뿐이다. 우리는 이 숫자의 조작이 완벽하게 정확하며 은행이 절대 거짓말을 하지 않을 것이라는 강력한 '신뢰(Trust)'를 바탕으로 금융 생활을 영위한다. 이처럼 인류의 경제는 정부나 은행 같은 강력하고 권위 있는 '중앙 통제 기관'이 장부를 독점하고 보증하는 시스템(중앙화) 위에서 굴러왔다. 그런데 2008년 금융 위기 직후, 사토시 나카모토라는 정체불명의 개발자가 나타나 이 거대한 신뢰의 독점을 산산조각 내는 9쪽짜리 논문을 인터넷에 던졌다. 은행이나 정부 같은 중앙 관리자 없이도, 익명의 사람들이 서로 100% 믿고 돈을 주고받을 수 있는 기괴한 화폐 시스템인 '비트코인(Bitcoin)'을 세상에 내놓은 것이다. 그리고 이 비트코인을 가능하게 만든 핵심 뼈대가 바로 위변조가 절대 불가능한 디지털 장부 기술, '블록체인(Blockchain)'이다. 코인 투자 열풍의 그늘에 가려져 있던, 수학과 암호학이 빚어낸 탈중앙화(Decentralization)의 눈부신 메커니즘을 뜯어보자.
장부를 모두가 나눠 갖는 분산 원장 기술
블록체인의 기본 철학은 단순하다. 누군가 한 명(은행)이 장부를 독점하기 때문에 권력이 생기고 해킹의 표적이 되니, 아예 거래에 참여하는 수만 명의 사람들이 '모두 똑같은 장부를 복사해서 각자의 컴퓨터에 나눠 갖자'는 것이다. 이것을 '분산 원장(Distributed Ledger)' 기술이라고 부른다. 예를 들어 A가 B에게 1비트코인을 보낸다는 거래를 하면, 이 정보는 네트워크에 접속된 모든 사람(노드)의 컴퓨터로 쫙 퍼져나간다. 사람들은 이 거래가 진짜인지 확인한 뒤 각자의 장부에 이 기록을 적어 넣는다. 만약 어떤 해커가 A의 돈을 훔치기 위해 자신의 컴퓨터에 있는 장부 내용을 몰래 조작하려 한다면 어떻게 될까? 해커 한 명의 장부가 바뀌더라도, 나머지 수만 명의 선량한 컴퓨터에 저장된 99.9%의 장부 내용과 다르다는 것이 단번에 들통나게 되고 해당 조작은 즉각 거부당한다. 해커가 거래를 조작하려면 전 세계에 흩어진 수만 대의 컴퓨터 장부를 동시에 해킹해서 고쳐야 하는데, 이는 물리적으로 완벽하게 불가능하다. 즉, 아무도 장부를 독점하지 않기 때문에 역설적으로 그 누구도 장부를 위조할 수 없는 극강의 보안이 완성되는 것이다.
블록과 해시 함수, 정보의 디지털 사슬
그렇다면 이 거래 기록들은 어떻게 저장될까? 10분 동안 전 세계에서 일어난 비트코인 거래 내역들을 한 장의 종이에 꽉 채워 적었다고 상상해 보자. 이 한 페이지 분량의 정보 덩어리를 '블록(Block)'이라고 부른다. 10분이 지나면 장부는 덮이고 새로운 블록(다음 페이지)이 생성된다. 블록체인은 이 블록들을 시간 순서대로 쇠사슬(Chain)처럼 단단하게 엮어놓은 형태다. 블록들을 엮어주는 마법의 고리가 바로 '암호학적 해시 함수(Hash Function)'다. 해시 함수는 아무리 긴 정보라도 집어넣으면 무작위로 섞인 고정된 길이의 요약본(해시값)을 뱉어내는 디지털 분쇄기다. 단 글자 하나만 틀려도 완전히 다른 해시값이 튀어나온다. 블록체인은 2번 블록을 만들 때 1번 블록의 해시값(요약본)을 2번 블록의 머리말에 반드시 포함시켜 엮어버린다. 만약 해커가 과거의 1번 블록 거래 내역 하나를 조작하면, 1번 블록의 해시값이 완전히 달라져 버린다. 1번 해시값이 틀려졌으니 이를 포함하고 있는 2번 블록, 나아가 수십만 개의 블록들이 도미노처럼 몽땅 어긋나며 에러를 뿜어낸다. 체인으로 엮인 과거의 블록을 위조하는 것은 수학적으로 불가능하다는 뜻이다.
작업 증명(PoW), 채굴이라는 치열한 수학 퍼즐
수만 명의 사람들이 거래를 검증하고 새로운 블록을 체인에 연결하는 역할을 기꺼이 수행하게 하려면 보상이 필요하다. 아무 대가 없이 자신의 컴퓨터와 전기를 희생할 사람은 없기 때문이다. 비트코인 시스템은 10분마다 새로운 블록을 체인에 연결할 '대표자 1명'을 뽑기 위해 넌센스 수학 퍼즐(해시값 찾기)을 낸다. 수많은 사람들이 컴퓨터의 칩(GPU나 ASIC)을 미친 듯이 굴려 가장 먼저 이 무식한 퍼즐의 정답을 맞힌 사람에게, 새로운 블록을 기록할 권리를 주고 그 대가로 방금 막 발행된 '새로운 비트코인'을 공짜로 지급한다. 금광에서 금을 캐는 것과 같다고 해서 이를 '채굴(Mining)'이라고 부르며, 막대한 전기를 써서 퍼즐을 푼 컴퓨터의 노력을 인정해 주는 이 시스템을 '작업 증명(Proof of Work, PoW)'이라고 한다.
이어서 읽기