DAO 포크 하드포크

메인넷 2016-07-20

The DAO 해킹으로 빠져나간 자금을 돌려주는 상태 변경입니다. 반대한 쪽은 이더리움 클래식으로 남았습니다.

무엇이 달라졌나

사용자
The DAO에 이더를 넣었던 사람은 포크 뒤 환불 계약에서 DAO 토큰을 돌려주고 이더를 되찾을 수 있게 됐습니다. 해킹으로 빠져나간 자금이 사실상 원래 자리로 돌아온 것입니다. The DAO와 관계없던 사용자는 지갑 사용법이나 수수료가 달라진 것이 없었습니다. 다만 체인이 둘로 갈리면서 포크 시점에 갖고 있던 이더만큼 이더리움 클래식(ETC) 잔고도 함께 생겼고 한 체인에서 보낸 거래가 다른 체인에서도 그대로 처리되는 위험이 한동안 남았습니다.
지갑·앱 개발자
프로토콜 규칙이나 가상머신 명령은 바뀌지 않아 기존 계약과 앱 코드는 그대로 돌아갔습니다. 대신 체인이 둘로 나뉜 뒤의 뒷정리가 일이었습니다. 당시에는 거래에 체인 번호가 들어가지 않아 한 체인에서 서명한 거래를 다른 체인에 그대로 다시 보낼 수 있었고 거래소와 지갑은 두 체인의 자금이 섞이지 않도록 분리 처리를 직접 해야 했습니다. 거래소는 이더리움 클래식을 별도 자산으로 다룰지도 정해야 했습니다. 거래에 체인 번호를 넣어 재생을 막는 규칙(EIP-155)은 이후 스푸리어스 드래곤 포크에서 들어왔습니다.
노드 운영자
포크 블록 전에 클라이언트를 새 버전으로 올려야 했습니다. 포크를 지지하는 설정과 반대하는 설정이 모두 제공돼 어느 체인을 따를지 운영자가 직접 골랐습니다. 지지 설정으로 올린 노드는 The DAO 자금을 환불 계약으로 옮기는 상태 변경을 적용했고 올리지 않거나 반대 설정을 택한 노드는 원래 계정 상태를 그대로 이어 가 이더리움 클래식 체인에 남았습니다. 코드가 아니라 계정 잔고를 바꾼 포크라 블록 처리 방식 자체는 달라지지 않았습니다.

← 하드포크 · 로드맵