5. 네트워크와 합
"Nodes always consider the longest chain to be the correct one and will keep working on extending it."
(노드들은 언제나 가장 긴 사슬을 올바른 것으로 간주하고, 그것을 연장하기 위해 노력한다.)
- Satoshi Nakamoto, Bitcoin Whitepaper Section 5
리더가 없는 조직을 상상해 보자.
반장도, 사장도, 대통령도 없다. 그 상황에서 전 세계에 흩어진 수억 명의 사람들이 실시간으로 하나의 장부를 똑같이 써야 한다.
이것은 '비잔틴 장군의 딜레마'라고 불리는, 컴퓨터 공학 역사상 가장 풀기 어려운 난제였다.
모두가 정직하면 좋겠지만, 그중에는 거짓말쟁이(해커)가 섞여 있을 수도 있고, 단순히 인터넷이 느려서 소식을 늦게 들은 사람도 있을 수 있다.
만약 서울에 있는 철수는 "A가 맞다"라고 하고, 뉴욕에 있는 제임스는 "B가 맞다"라고 동시에 외치면 어떻게 될까? 누구의 말이 진실인 것인가?
인간 세상에서는 이럴 때 다수결로 정하거나 권력자가 정한다.
사토시는 인간의 정치질을 믿지 않았다. 대신 그는 아주 단순하고 비정한 자연의 법칙을 도입했다.
"가장 무거운 사슬이 진실이다."
백서 5장 네트워크(Network) 섹션은 비트코인 네트워크가 혼란을 잠재우는 6단계 과정을 설명한다. 그중 핵심은 '갈등이 생겼을 때의 해결책'이다.
상황은 이렇다. 우연히 두 명의 채굴자가 동시에 블록을 발견했다. 순식간에 두 개의 평행 우주가 생긴다. A버전의 역사를 믿는 그룹과 B버전의 역사를 믿는 그룹. 네트워크는 둘로 쪼개진다. 이때 사토시의 규칙이 발동한다.
"일단 두 갈래 길을 모두 유지해라.
하지만 너희는 곧 한쪽을 선택하게 될 것이다."
채굴자들은 각자 자신이 먼저 받은 블록 위에서 열심히 다음 블록을 찾는다. 승부는 '다음 블록'이 어디서 먼저 나오느냐에 달렸다. 누군가 A버전의 사슬 위에서 새로운 블록을 먼저 찾아냈다! 그러면 A사슬은 B사슬보다 한 칸 더 길어진다(무거워진다).
바로 그 순간, 기적이 일어난다. B사슬에서 열심히 일하던 모든 채굴자가 하던 일을 즉시 멈춘다. 그리고 미련 없이 B를 버리고 A쪽으로 우르르 몰려간다.
이유는 하나다. "더 많은 에너지(작업 증명)가 투입된 쪽이 진실"이라는 대원칙 때문이다. 이것이 그 유명한 나카모토 컨센서스(Nakamoto Consensus)다.
이 방식은 민주주의의 다수결과 다르다. 민주주의는 머릿수(1인 1표)로 결정하지만, 비트코인은 노력의 총량(1 CPU 1표)으로 결정한다.
만약 해커가 거짓 장부(B사슬)를 진실로 만들고 싶다면? 전 세계 모든 채굴자가 합친 것보다 더 빠른 속도로 블록을 만들어내서, 자신의 사기극 사슬을 '가장 긴 사슬'로 만들어야 한다. 이것을 '51% 공격'이라 부른다.
이것은 이론적으로만 가능할 뿐, 현실에서는 자살행위나 다름없다. 그 정도의 에너지를 쏟아부을 돈이 있다면, 차라리 정직하게 채굴해서 비트코인을 받는 게 훨씬 더 큰 이익이기 때문이다.
비트코인 노드를 돌리다보면, 가끔 '고아 블록(Orphan Block)'이라는 단어를 보게 된다. 경쟁에서 패배해 버려진 짧은 사슬의 블록이다. 누군가는 엄청난 전기세를 들여 그 블록을 만들었겠지만, 네트워크는 냉정하게 그것을 폐기처분한다.
잔인해 보이는가? 하지만 이 냉혹함이 비트코인을 지키는 힘이다. 타협은 없다. 봐주는 것도 없다. 오직 수학적으로 검증된 '가장 긴 노동의 역사'만이 살아남아 기록된다.
지휘자가 없어도 오케스트라가 돌아가는 이유. 그것은 연주자들 모두가 '가장 큰 소리(가장 긴 사슬)'를 따라가기로 약속했기 때문이다.
이 시스템 안에서 진실은 투표로 결정되는 것이 아니다.
진실은 발견되는 것이다.