뉴스Q

[칼럼] 김승주의 암호학&블록체인

비트코인은 왜 나뭇가지 모양일까

2021. 05. 11 by 김승주 고려대 교수
출처=flickr
출처=flickr

비트코인을 시각적으로 표현한다면 어떤 모양일까. 블록체인은 말 그대로 블록(Block)이 차례대로 연결(chain)된 형상을 의미하는 만큼 블록이 일렬로 늘어선 모습일까? 그렇지 않다. 심지어 블록체인은 서로 다른 형태와 모양으로 이뤄진다.

1981년 전자메일을 익명으로 송·수신할 수 있는 '믹스넷(Mix Networks)' 기술을 개발한 암호학자 데이비트 차움(David Chaum) 박사는 이듬해 사이버 공간에서 현금처럼 사용할 수 있으며, 추적이 불가능한 암호화폐 발행을 제안했다.

그로부터 26년 후인 2008년 미국발 서브프라임 모기지(subprime mortgage loan) 사태를 겪은 익명의 사토시 나카모토(Satoshi Nakamoto)는 중앙은행의 도움 없이도 스스로 동작할 수 있는 탈중앙화 된 암호화폐, '비트코인(Bitcoin)'을 만든다.

비트코인 블록체인의 기본 구조는 이렇다.

비트코인 블록체인 노드(node) 운영자 A, B, C, D, E가 있다고 가정하자. 이들은 실시간으로 사용 중인 비트코인의 일련번호를 수집해 자신들의 컴퓨터(노드)에 있는 장부에 기록한다.

만약 누군가 비트코인으로 상점에서 대금을 지불하면 A, B, C, D, E는 이 비트코인의 일련번호를 자신들의 컴퓨터에 있는 장부와 대조해 해당 코인이 과거에 사용된 적이 있는지를 확인한다. 만일 과거에 사용된 적이 있는 코인이라면 A, B, C, D, E는 이를 상점에 통보해 주고, 사용된 적이 없는 코인이라면 일련번호를 각자의 장부에 기록한다.

문제는 각자의 컴퓨터에 보관하고 있는 장부의 내용이 실수건 고의건 서로 다를 수 있다는 것이다. 이 경우 똑같은 비트코인에 대해 의견이 불일치하는 경우가 발생하게 된다. 이를 '비잔틴 장군 문제(Byzantine generals problem)'라고 한다.

출처=Hitesh Choudhary/Unsplash
출처=Hitesh Choudhary/Unsplash

비잔틴 장군 문제를 해결하는 방법

블록체인에서 비잔틴 장군 문제를 해결하는 방법은 크게 두 가지가 있다.

첫째는 '선(先) 투표 후(後) 연결' 방식이다. 이 방식은 노드 운영자들이 주기적(비트코인에서는 10분)으로 서로의 장부(블록)를 교환해 비교한 후, 서로 다른 장부가 발견되면 투표로 연결할 장부를 결정한다.

예를 들어 현재 블록체인이 Ⓐ-Ⓑ와 같은 형태이고, 운영자 C와 D가 각각 파일을 만들어 블록체인 네트워크에 공유했다고 하자.

이때 C가 만들어 공유한 파일에는 10분간 9건의 비트코인 거래가, D가 공유한 파일에는 10분간 총 10건의 거래가 발생했다고 기록됐다. 둘 중 하나는 발생한 거래가 누락돼 있거나 아니면 실제로 발생하지 않은 거래가 발생했다고 허위로 기록돼 있는 것이다.

이럴 경우 어느 파일이 옳은지를 결정하기 위해 블록체인 네트워크 구성원들은 투표에 들어간다. 만일 과반수의 구성원이 D가 만든 파일이 옳다는 쪽에 투표했다면, D의 파일이 Ⓐ-Ⓑ의 뒤에 연결돼 Ⓐ-Ⓑ-Ⓓ와 같은 모양을 띠게 된다.

결국 블록체인 Ⓐ-Ⓑ-Ⓓ는 모든 구성원의 PC에 저장돼 투명성과 정당성을 갖게 된다.

BFT(Byzantine Fault Tolerance) 합의 알고리듬에 기반을 둔 코스모스(Cosmos) 등이 이 방식을 활용한다.

비잔틴 장군 문제를 해결하는 또 다른 방법으로는 일명 '나카모토 블록체인'이라고 부르는 '선(先) 연결 후(後) 투표'가 있다.

만약 블록체인이 Ⓐ-Ⓑ인 상태에서 서로 다른 블록 Ⓒ와 Ⓓ가 발견됐다고 가정하자. 나카모토 블록체인은 일단 두 블록을 모두 Ⓐ-Ⓑ 뒤에 연결한다.

이후 새롭게 만들어진 Ⓔ 블록은 Ⓒ 또는 Ⓓ 뒤에 연결해야 한다. 앞선 방식에서는 투표로 연결할 블록을 정하지만, 나카모토 블록체인은 Ⓔ 블록의 판단에 따라 연결할 블록을 정한다.

이러한 과정이 계속해서 반복되면 블록체인은 점차 나뭇가지 모양을 띠게 된다. 결국 나카모토 블록체인에서는 가장 긴 줄에 있는 블록들을 정당한 것으로 인정한다. 일명 '가장 긴 체인 규칙(longest chain rule)'이다. 비트코인이 채택한 방식이다.

선(先) 투표 후(後) 연결 방식은 투표 결과가 확정된 후 신규 블록이 기존 블록들에 연결되므로 다음에 판정이 번복되는 문제는 발생하지 않는다. 그러나 운영자가 기권한 것인지, 아니면 아직 투표를 안 한 것인지, 아니면 통신지연 때문에 늦어지는 것인지 구분할 방법이 없다. 일명 '생존성(liveness 또는 termination) 문제'가 발생할 수 있다.

반면 선(先) 연결 후(後) 투표를 도입한 비트코인은 생성된 블록을 먼저 블록체인에 연결하고 이후에 투표가 시작되므로 생존성 문제는 발생하지 않는다. 하지만 이 역시 만능은 아니다. 이론적으로 블록체인의 긴 줄은 언제든 바뀔 수 있기에 일명 '안정성(safety 또는 consensus finality) 문제'가 발생할 여지가 있다.

물론 이 두 가지 모두를 동시에 해결할 수는 없느냐고 반문할 수도 있겠으나, 1985년에 발표된 FLP(Fischer-Lynch-Patterson) 이론에 따르면 비동기 네트워크상에서 이는 구현이 불가능하다.

출처=Vadim Artyukhin/Unsplash
출처=Vadim Artyukhin/Unsplash

결제 용도로 탄생한 비트코인

사토시 나카모토는 비트코인에 왜 이런 방식을 선택했을까?

기존 화폐시스템의 대체재로서 비트코인을 개발했던 사토시 나카모토는 "결제(決濟)에 있어 무엇보다 중요한 것은 정해진 시간 안에 반드시 종료하는 것"이라고 생각했다. 그 결과물이 지금과 같은 나뭇가지 모양의 블록체인이다.

블록체인의 핵심 가치는 '합의에 바탕을 둔 탈중앙화'라 할 수 있다. 그러나 이상적인 합의 방식을 설계하는 일은 결코 쉬운 일이 아니며, 매우 깊은 수준의 이론적 분석을 요구한다. 

허울뿐이 아닌 진정한 의미의 블록체인 강국이 되기 위해서는 우리도 이제 블록체인 원천 기술 연구에 보다 더 많은 관심을 가져야 하지 않을까 싶다.

김승주 교수는 2011년부터 고려대학교 정보보호대학원 교수로 재직했으며, 올해부터는 새롭게 사이버국방학과의 학과장을 맡고 있다. 교수 재직 전에는 한국인터넷진흥원(KISA)에서 암호기술팀장과 IT보안평가팀장으로 근무한 암호 보안 전문가다.

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?

기사 댓글

댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.
댓글목록
최신순 추천순  욕설, 타인비방 등의 게시물은 예고 없이 삭제 될 수 있습니다.
김승주 2021-05-12 08:05:52
예쁘게 편집해 주셔서 감사합니다. ^^ 그런데 편집과정중에 약간의 오류가 잇었던것 같습니다. 다음과 같이 바로 잡아주시면 감사하겠습니다. (2/2)
==

물론 이 두 가지를 모두 해결할 수 있는 'FLP(Fischer-Lynch-Patterson)'라는 합의 알고리듬도 있으나, 이론적으로 비동기 네트워크에서는 구현이 불가능하다.

==> 이 두 가지 모두를 동시에 해결할 수는 없느냐고 반문할 수도 있겠으나, 1985년에 발표된 FLP(Fischer-Lynch-Patterson) 이론에 따르면 비동기 네트워크상에서 이는 구현이 불가능하다.
김승주 2021-05-12 08:05:02
예쁘게 편집해 주셔서 감사합니다. ^^ 그런데 편집과정중에 약간의 오류가 잇었던것 같습니다. 다음과 같이 바로 잡아주시면 감사하겠습니다. (1/2)
==

이러한 방식을 흔히 BFT(Byzantine Fault Tolerance) 합의 알고리듬이라고 한다. 인터블록체인(Inter-blockchain) 코스모스(Cosmos)가 이 방식을 활용한다.

==> BFT(Byzantine Fault Tolerance) 합의 알고리듬에 기반을 둔 코스모스(Cosmos) 등이 이 방식을 활용한다.