• 검색

3-⑤정직한 다수가 항상 이긴다

  • 2014.01.20(월) 15:39

‘신뢰’를 위한 나카모토의 아이디어Ⅳ

<글 싣는 순서>
3부 : 비잔틴의 딜레마를 풀다
(1) 순수(Bit) 그리고 공유(P2P)와 나눔(Open)
(2) 정부의 보증 대신 ‘다수의 선택’으로
(3) 비트코인의 시작과 끝인 마이닝
(4) 거래 명세를 공개해 고리를 만들다
(5) 정직한 다수가 항상 이긴다


비트코인의 부정 사용 가능성은 대략 세 가지 정도로 정리한다. ①자기 것이 아닌 것을 훔치는 것 ②근거 없이 허위로 만드는 것 ③자신의 거래 내용을 조작해 재사용하는 것 등이다. 1, 2번은 기존 현찰을 사용할 때도 마찬가지다. 위조지폐 등인데, 현실 세계에서도 이미 존재하는 것이다.

가장 큰 문제가 3번 중복 사용이다. 거래 인증을 위한 나카모토의 아이디어는 결국 P2P 네트워크에서 중복 부정 사용(정보 간 충돌)의 문제를 푼 것으로 평가받는다. 개발자들이 제일 열광하는 대목이다. P2P 네트워크에서 운영하는 시스템은 ‘합의(Consensus) 도출’이라는 문제를 안고 있다. 그 유명한 ‘비잔틴 장군들의 딜레마’다.

#비잔틴 시대에 여러 나라의 장군들이 적을 공격하기 위해 출병했다. 적이 매우 강해서 각 나라의 병력 절반씩을 동시에 공격해야 성공한다. 장군들은 ‘연락병’을 통해서만 정보를 교환할 수 있다. 한자리에 모여 의사 결정을 할 수 없는 상황이다. 장군 중엔 배신자가 있을 수 있어 공격 시간을 합의해 일시에 출격해야 하는데 그런 시스템이 없다.

#이 상황에서 어떻게 공격 시간에 관한 합의를 할 수 있을까? 이것이 비잔틴 장군들의 딜레마다. P2P 분산 네트워크라는 상황은 한자리에 모여 의사 결정을 할 수 없다는 점에서 어떤 합의를 해야 하는 문제에서 근본적인 한계가 있었다. 마이크로소프트 같은 기업도 이 문제 해결을 위해 노력했지만, 마땅한 결과를 내놓지는 못했다.


◇ 정상 거래는 먼저 살아남은 블록

IT 개발자들은 ‘나카모토가 비트코인 시스템을 통해 불가능해 보였던 이 문제를 글로벌 규모에서 해결한 것 같다’고 평가한다. 지금까지 설명한 채굴과 인센티브 제공 그리고 여기서 생긴 블록에 담긴 거래 내용을 암호화하고 그 해시 값을 다음 블록으로 전달하는 과정을 계속 반복(Proof-of-Work, PoW)하는 방식으로 딜레마를 해결했다는 분석이다.

즉 PoW는 채굴로 만들어지는 새로운 블록들의 연결 고리(a chain of blocks)다. 나카모토는 블록 줄기의 길이가 긴 것을 정상 거래로 인정(The longest chain wins)하는 방식으로 중복 사용 문제의 해결책을 제시했다.


#예를 들어보자. 앞서 설명한 대로 모든 비트코인 거래 내용은 모든 노드에 전달된다. 노드들은 인센티브인 비트코인을 얻기 위해 채굴에 나선다. 그런데 A가 하나의 비트코인을 B와 C에게 동시에 거래한다고 보냈다. 둘 중의 하나가 중복으로 사용된 비트코인이다. 채굴이 곧 인증이라고 했다. 노드들은 A→B, A→C 거래에 각각 달라붙어 채굴에 나선다.

#채굴은 대략 10분마다 이뤄진다. 만약 A→C 거래를 상대로 채굴에 나선 노드들이 문제를 먼저 풀어 다음 블록이 생성되면 즉 체인이 연결되면 A→B 거래보다 블록 체인이 길어지게 된다. 이때 경쟁에서 진 블록 체인에서 다뤄진 A→B 거래는 비정상 거래로 간주해 자동 폐기한다.

◇ 정직한 다수가 이기는 자연법칙

흡사 진화론과 같다. 더 오래 살아남은 블록 체인의 거래를 정상으로 인정한다. 경쟁에서 진 거래를 폐기하면 자연히 중복 거래가 없어진다. P2P 네트워크에서 둘로 나뉘어 채굴 경쟁을 하다가 한 진영이 먼저 다음 블록을 만들어 내는 순간 경쟁은 끝난다. 한 진영이 만들어내는 블록 체인의 길이가 다른 한쪽의 블록체인보다 길어진 순간 중복으로 사용된 비트코인도 사라진다.

비잔틴 장군들의 딜레마로 돌아가 보자. 중복으로 사용한 비트코인이 배신자다. 처음엔 어떤 것이 배신자(중복 사용)인지 모른 채 노드들은 채굴에 나선다. 그러나 다수의 노드가 참여한 블록에서 먼저 채굴이 이뤄지고 결국 배신자인 중복으로 사용된 거래는 자동 폐기된다. 과반수의 충성스럽고 정직한 장군들이 협업(채굴)하면 거짓 정보는 자연스럽게 소멸하는 셈이다.

사실 중복으로 사용된 것을 애써 찾을 필요가 없다. 둘 중 하나의 거래를 중지시키면 중복 사용은 없다. 발상의 전환이다. 둘 중 하나의 거래를 못 하게 하는 규칙을 만들면 된다. 광범위한 네트워크여서 생기는 문제지만 네트워크여서 해결이 가능하다.

비트코인은 대략 10분마다 채굴이 이뤄지는데, 이는 기본적으로 컴퓨팅 파워와 연결된다. 많은 컴퓨터 네트워크가 참여하면 파워도 자연스럽게 올라간다. 정직한 다수의 장군이다. 부정한 세력이 다수의 컴퓨팅 파워를 장악하는 경우도 생각해 볼 수는 있다. 그러나 현실적으로는 거의 불가능하다고 추정하고 있다.

부정한 세력이 비트코인 네트워크에 참여하는 전체 컴퓨터의 51%를 제어 가능한 상황으로 만들어야 하는데 쉽지 않다. 비트코인 네트워크의 아주 초기 단계에선 혹시나 가능할지 몰라도 네트워크가 커지면 커질수록 어렵다. 나카모토도 그의 논문에서 “이런 상황을 예상할 수는 있지만, 부정한 세력이 그렇게 할만한 유인이 없다”고 밝히고 있다.


naver daum
SNS 로그인
naver
facebook
google