[권은중의 와인이야기] 바닷가를 걷는 흰옷의 여인, 와인 한 잔에 담긴 로맨스
바닷가를 걷는 흰옷의 여인—이미지만으로도 와인 한 잔의 분위기를 완성한다.
권은중의 와인 이야기에서 풀어내는 감성적인 순간들, 당신도 경험해보세요.
와인 시장은 오늘도 변덕스럽지만, 적어도 이 순간만큼은 달콤함에 빠져보자.
2. 블록체인을 덮친 위기들
2010년 8월 15일, 비트코인 블록 7만4638 번에서 문제가 발생했다. 0.5 BTC를 이동하는 작은 거래에서 무려 1844억 개의 BTC가 생성된 것.
비트코인은 2100만 개 이상 채굴이 될 수 없다. 그런데 특정 트랜잭션에서 어마어마한 양의 비트코인이 출력된 것이다. 이 버그는 거래 출력값을 합산할 때 너무 큰 값으로 인해 오버플로우가 발생하는 경우를 처리하지 못한 “정수 오버플로우(integer overflow)” 문제였다.
대응은 신속하고 단호했다. 해당 버그 발견 후 5시간 이내에 사토시 나카모토와 다른 핵심 개발자들은 새로운 버전의 비트코인 프로그램을 배포했다.
이는 소프트 포크(soft fork)로, 무효한 거래를 거부하도록 채굴자들에게 패치 프로그램을 배포한 것이다. 채굴자들과 노드 운영자들은 신속하게 이 패치를 채택했다.
결과적으로, 새로운 소프트웨어를 실행하는 “올바른” 체인이 무효한 거래를 포함한 “잘못된” 체인을 빠르게 추월했다. 블록 7만4691 번에서 올바른 체인이 보편적으로 인정받는 가장 긴 체인이 되었고, 문제가 해결됐다. 이 문제를 해결하고 그해 말 나카모토는 대외 활동을 중단하고 사라진다.
1844억 개의 BTC는 마치 존재하지 않았던 것처럼 역사에서 지워졌다. 이로써 비트코인 프로토콜의 무결성은 회복되었다.
블록체인은 누구도 바꿀 수 없다. 소프트 포크는 잘못된 체인을 사장시키고, 올바른 체인을 이어주는 것이다. 엄밀하게 말하면 1844억 개의 BTC를 담은 블록체인은 지워진 것이 아니라 영구 동결 되어 더 이상 쓰이지 않는 것이다.
이 사례는 XRPL 사건과 극명한 대조를 이룬다. 비트코인 버그는 수정 가능한, 프로토콜을 파괴하는 결함이었던 반면, XRPL 문제는 복구 불가능한, 역사적 데이터 손실이었다.
비트코인 커뮤니티는 상태를 “리셋”하고 의도된 규칙을 강제하기 위해 집단적으로 행동할 수 있었지만, xrpL 개발자들은 복원할 데이터가 없이 공백을 수용해야만 했다.
이더리움에서도 큰 사건이 있었다. DAO(탈중앙화 자율 조직)는 이더리움 블록체인 상의 스마트 컨트랙트로, 일종의 벤처 캐피털 펀드 역할을 했다. 2016년 6월, 한 해커가 DAO 코드의 “재귀 호출 취약점(recursive calling vulnerability)”을 악용하여 당시 약 5000만 달러 상당의 360만 ETH를 빼돌렸다.
중요한 것은 이더리움 프로토콜 자체는 완벽하게 작동했다는 점이다. 결함은 애플리케이션 계층의 스마트 컨트랙트에 있었다. 이더리움 커뮤니티는 선택에 직면했다.
“코드가 곧 법(code is law)”이라는 원칙을 지켜 도난을 허용할 것인가, 아니면 개입하여 거래를 되돌릴 것인가. 결국 도난당한 자금을 복구 계약으로 옮기는 하드 포크(hard fork)를 실행하기로 결정했다. 이는 체인의 상태를 해킹 이전으로 되돌리는 인위적 변경이었다.
이 하드 포크는 논쟁을 불러일으켰다. 일부 커뮤니티 구성원들은 이 개입이 불변성의 핵심 원칙을 위반한다고 주장하며 이를 거부했다. 그들은 변경되지 않은 원래의 체인을 계속 운영했다. 이것이 이더리움 클래식(ETC)이다.
반면 포크된 체인은 이더리움(ETH)이라는 이름을 유지했다. 이는 커뮤니티와 네트워크에 영구적인 분열을 초래했다.
이 사례는 동기와 결과 면에서 XRPL 사건과 다르다. 이더리움 포크는 사용자 자금을 복원하기 위해 유효하지만 악의적인 거래를 되돌리려는 의도적이고 중앙화된 결정이었다.
XRPL의 결정은 복구 불가능한 데이터 손실을 ‘실용적 이유’로 그대로 수용한 것이었다. 이더리움 사례는 개입을 선택할 때 발생하는 막대한 사회적, 기술적 비용과 생태계 분열의 위험을 보여준다.
블록체인 역사에는 잃어버린 코인, 잃어버린 블록이 종종 등장한다. 8000 BTC가 담긴 하드 드라이브를 실수로 버린 제임스 하웰스(James Howells)나 7002 BTC가 든 드라이브의 비밀번호를 잊어버린 스테판 토마스(Stefan ThOMas)와 같은 유명한 “잃어버린 비트코인” 사례가 있다.
이 사례들은 개인키를 잃어버린 개인에게 손실이 한정된다. 그러나 비트코인 블록체인 자체의 무결성은 완전히 유지된다. 해당 코인들의 UTXO(미사용 거래 출력)는 여전히 공개 원장에 존재하며, 완전히 감사 및 검증이 가능하다.
네트워크 전체는 영향을 받지 않는다. 분석가들은 심지어 휴면 주소를 추적하여 잃어버린 코인의 양을 추정할 수도 있다.
XRPL 사건은 근본적으로 다르다. 잃어버린 코인은 해당 자산에 대한 개인 차원의 접근권이 없어진 것이지만, 잃어버린 블록은 역사적 기록의 손실이다. 이는 모든 XRPL 참여자에 영향을 미친다. 전체 네트워크의 무결성과 감사 가능성에 손상을 입힌 사건이다.
시리즈 기사 3편에서는 블록체인 개발자의 딜레마를 다룬다.
블록체인은 정말 완전한가? ① XRP 레저, 사라진 3만2천 개 블록