ethereum-forked비트코인과 같은 가상암호화 화폐에 관심 있는 분이라면 이더리움(Ethereum)에 대해서 들어봤을 것이다. 그리고 최근에 이더리움 커뮤니티에서 큰 쟁점이 되었던 포킹(forking)에 대해서도 알고 있을 것이다. 몇몇 독자들이 이더리움과 포킹에 대해서 설명을 해달라고 해서 나도 내 생각을 정리하는 차원에서 글을 써본다. 비트코인에 대해서 내가 쓰는 글들을 보면 아시겠지만, 나는 이 분야의 전문가는 아니다. 전문가들이 답글로 설명을 추가해 주면 많은 분들한테 도움이 될 거 같다.

이더리움은 비트코인과 같은 자체 가상화폐인 이더를 지원한다는 점에서는 블록체인과 비슷한 프로토콜이지만 한 가지 큰 차이점은 바로 스마트계약(=사전에 서로 합의된 조건들이 충족되면 자동으로 실행되는, 컴퓨터 코드로 만들어진 계약)을 지원한다는 점이다. 실은 블록체인도 이론적으로는 스마트계약서를 지원하고, 앞으로 블록체인을 활용한 스마트계약서가 큰 혁신을 가져올 것이라고 전문가들은 말하고 있지만, 내가 보기엔 아직도 말로만 존재하고 실체는 없다. 이더리움도 마찬가지였다. 비트코인보다는 유연하고 확장성이 좋은 코드로 만들었지만, 스마트계약서는 아직은 이론에 불과했다.

그러다가 2016년 4월 30일 이더리움은 DAO(Distributed Autonomous Organization) 라는 흥미롭고 새로운 실험을 시작했다. 우리와 같은 VC와 밀접한 연관이 있는 DAO의 목적은 사람의 개입이 없는 창투사(VC)를 만드는 것이었다. 투자 결정을 하는 파트너도 없고, 심사역도 없고, DAO는 오로지 코드로 만들어진 규칙을 컴퓨터 프로토콜이 실행하는, 스마트계약서를 통해서 모든 투자 결정이 되는 humanless venture capital을 지향했다. 출시한 지 한 달 만에 DAO는 11,000명의 투자자로부터 1.5억 달러를 유치했는데 아마도 역사상 가장 크고 성공적인 크라우드펀딩 프로젝트로 볼 수도 있을 것이다. Vitalik Buterin과 같은 이더리움의 메인 개발자들은 앞으로 이더리움이 세상을 바꿀 것이라고 흥분을 감추지 못했다.

그런데, 이더리움이나 DAO도 기술적으로 완벽하지는 못했다. 왜냐하면, 6월 17일, 누군가 DAO를 해킹해서 5,000만 달러에 상당하는 이더를 훔쳐갔기 때문이다. 이더리움 개발자들은 결국 이 해커를 다시 해킹해서 훔쳐간 이더를 복귀하고 나머지 펀드를 모두 다른 스마트계약서로 옮겼다. 문제는 DAO의 특성상, 이 해커가 아직도 옮겨진 펀드에 대한 소유권을 행사할 가능성이 존재했다는 점이다. 실은, 이 문제를 해결할 방법은 간단하다. DAO의 코드를 다시 프로그래밍해서 다른 규칙이 적용된 새로운 이더리움 네트워크를 형성하면 된다 – 이게 포킹(forking)이다. 그러면 투자자들이 원하는 대로 투자금을 다시 투자자들에게 돌려줄 수 있다.

그렇게 하면 되지 않나? 문제가 있긴 있다. 그리고 이건 꽤 큰 문제이다. 이렇게 개발자들의 인위적인 개입으로 네트워크를 수정하는 건 이더리움의 근본적인 사상과 개념을 위배하는 행위이기 때문이다. 이더리움은 분산적이면서 분권화된 플랫폼으로 탄생했는데, 이는 그 누구도 중앙집권적 권력을 행사하여 이더리움 네트워크를 임의로 변경하지 못한다는 의미이다. 네트워크의 권력은 네트워크상 모든 사용자에게 균등하게 분배되어 있는데, 소수집단이 개입해서 문제를 고친다는 거 자체가 이 분산적 사상을 위배하는 것이다. 조금 더 구체적으로 말하면, 투자된 펀드는 스마트계약에 의해 특정 조건들이 충족되면 자동으로 집행되어야 하는데, ‘변질할 수 없는’ 성격을 가져야 하는 스마트계약서를 다수의 동의를 얻어서 임의로 변경하는 게 이더리움의 원칙을 위배한다는 의미이다.

스마트계약서를 변경할 수 없다는 ‘코드 순수주의자’와 코드를 변경해서 투자자들에게 돈을 환급하자는 두 이더리움 그룹의 논쟁은 한동안 지속되다가 결국 포킹을 통해 해킹 이전의 DAO로 돌아가서 투자금을 돌려주기로 했다.

많은 분들이 포킹(forking)에 관해서 물어보는데, 오픈소스 소프트웨어의 포킹에 대한 자세한 설명은 여기를 참고하면 된다. 이번 이더리움 포킹이 특이한 점은, 여러 개발자가 같은 소스를 기반으로 개발하다가 우연히 코드의 포킹이 발생한 게 아니라, 네트워크의 규칙을 인위적으로 변경할 목적으로 – 즉, 강제적으로 포킹을 유발하기 위해서 – 새로운 버전의 소프트웨어를 만들었다는 것이다.

포킹을 통해서 블록체인이나 이더리움의 규칙을 바꾸는 건 기술적으로는 어려운 게 아니지만, 한 번 포킹이 되면 – 특히 하드포킹 – 네트워크의 개념과 사상 자체가 바뀌기 때문에 이런 결정은 신중히 해야 한다. 재미있는 건 이 또한 네트워크의 사용자들이 결정한다는 점인데, 이는 마치 대통령 선거와도 비슷하다. 결국엔 국민이 투표를 통해서 대통령을 뽑지만, 이 결정에 동의하지 않는 국민이 생기기 마련이고, 이들은 불평하면서 계속 한국에 살거나 아니면 이민을 가는 경우도 있다. 이더리움이나 블록체인도 마찬가지이다. 포킹이 일어나면 이 전략과 방향에 대해서 동의하지 않는 반대파들은 네트워크를 떠난다. 얼마 전에 내가 블록체인의 크기에 대한 논쟁에 관해서 쓴 적이 있는데, 본질적으로 보면 이 또한 이더리움 포킹과 크게 다르지 않다.

현재 이더의 가격은 약 11 달러이다. DAO의 해킹, 포킹 등과 같은 큰 사건들 때문에 대부분 전문가는 이더의 가격이 폭락할 것이라고 예상했지만, 이더리움 커뮤니티는 이 상황을 상당히 잘 수습하면서 과학적인 접근과 개발 방법을 통해서 네트워크를 유지하고 강화하고 있다. 비탈릭 부테린과 이더리움 커뮤니티의 앞으로의 행보가 기대된다.

<이미지 출처 = https://diginomics.com/news/forking-ethereum/>