블록체인과 암호화폐에서 핵심 기술은 합의 기술이라고 생각합니다. 비트코인은 이 합의 기술을 구조적, 다차원적으로 해결하며 새로운 시대를 열었습니다. 이를 비잔틴 장군 문제를 풀었다고 하는데 이 부분에 대해 쉽게 알아보도록 하겠습니다.
비잔틴 문제는 간단합니다. 예를 들어 300명 규모의 성을 5명의 장군이 공격을 해야 합니다. 5명의 장군은 각 성곽의 외벽에주둔하고 있습니다. 이 경우 장군들은 정확한 공격 시간을 합의해서 성에 주둔하고 있는 인력보다 많은 수가 쳐들어가야 승리할 수 있습니다. 예를 들어 공격시간이 8시라면 4명의 장군이 8시에 동시에 쳐들어가야 승리합니다. 하지만 각 장군들은 자유의사에 따라 배신을 할 수 도 있습니다. 예를 들어 9시라고 공격시간을 적어 교란을 시킬수 도 있지요. 이 경우 몇 명의 충직한 장군이 있어야 공격을 성공적으로 이끌 수 있을까요?
이미지 출처 : http://goodjoon.tistory.com/256
이 문제가 진정으로 의미하고 있는 것은 어떻게 무신뢰 상태에서 신뢰 상태를 획득할 수 있느냐 입니다. 여기서 사토시나 오픈 소스 진영은 굉장히 독특한 접근을 취해 문제를 해결합니다. 그것이 바로 블록 체인과 시간입니다.
블록 체인은 장군이 다음 장군에게 공격 시간을 적은 메시지를 보낼 때 자신이 직접 서명을 하고 이전의 메시지를 모두 포함해서 보내도록 하는 것입니다. 예를 들어 A와 B가 8시라고 메시지를 적어 보냈는데 C가 9시라고 고치는 순간 자신이 배신자임을 들키게 되는 것입니다. 합의 기술은 다수결에 이르는 기술이기도 하지만 잘못된 것을 걸러내는 것에 대한 것입니다. 이 문장을 기억하고 있으면 이해가 쉬워집니다.
흠... 그런데 장군 C가 장군 A와 B가 보낸 메시지를 고쳐서 보내면 되지 않을까요?
여기서 사토시는 시간의 개념을 도입하여 메시지를 작성을 할 때 작업을 해서 메시지를 작성하는 것이 10분이 걸리게 만들어 놓습니다. 그러면 C가 A의 메시지를 조작하는데 이미 10분이 지나가 버리게 됩니다. 그래서 C는 조작을 하지 못하고 동의를 한채로 메시지를 넘기게 됩니다.
음... C가 그냥 배신 메시지를 보내버리면 되지 않나요? 어차피 뭐가 진실인지는 아무도 모르니깐요.
그래도 상관없습니다. 하지만 사토시는 여기에 한가지 개념을 더 도입합니다. 바로 채굴이라고 불리우는 보상개념입니다. 채굴은 간단하게 말하면 다수의 의견에 따름으로써 보상을 받을 확률이 높게 만들어 놓은 장치입니다. 장군 D가 메시지를 받았을 때 이전의 내역을 한번에 볼 수 있습니다. 이 때 장군 D는 마음대로 행동할 수 있습니다. 하지만 장군 A와 B를 따랐을 때 승리라는 보상을 얻을 확률이 크기 때문에 장군 D는 장군 A와 B의 의견을 따르고 C의 의견을 폐기하게 됩니다.
이점을 생각한다면 C는 배신 메시지를 보내기가 어려워집니다. 그래서 손해를 보지 않으려고 자신의 의견을 바꾸어 A와 B의 의견을 따를 수도 있습니다.
이렇게 된다면 올바른 합의에 도달할 확률은 높아지겠죠. 이것이 블록체인에서의 합의 기술입니다.
사실 블록 체인은 오픈된 게시판과 같습니다. 누구나 기록하고 바꿀 수 있습니다. 그렇기 때문에 이러한 합의 기술이 필요합니다. 잘못된 데이터는 쉽게 폐기할 수 있으며 올바른 상태를 유지할 수 있습니다.
그런데 비잔틴 장군 문제도 과반수 이상의 장군들이 배신을 하기로 모의를 한다면 풀 수 가 없게됩니다. 즉 과반수 이상의 선의의 장군들이 존재해야만 성립할 수 있는 것이지요. 이 때문에 작업증명 (PoW) 과정을 도입해 배신자 장군들이 다수의 선의의 장군들보다 과반수를 확보하기가 어렵게 만들어 놓았습니다.
특이할만한 점은 장군들은 블록을 전달하는 주체임과 동시에 작업증명을 하는 주체들이기도 하다는 사실입니다. 여기서 평행 사고의 진수를 볼 수 있습니다.
위의 것들을 조합하여 무신뢰 상태에서 신뢰 상태를 확보하는 것이 블록 체인의 합의 기술입니다.
과반수가 결합한다면 블록체인은 무너질 수 있을까요? 가능합니다. 하지만 초기 상태라면 몰라도 발달된 상태에서는 쉽지는 않을 것입니다.