이더리움 콘스탄티노플 하드포크, 이번엔 무사히 진행될까?
28일 목요일에 진행될 것으로 보인다
이 기사를 공유합니다
Christine Kim
Christine Kim 2019년 2월20일 15:00
실패를 두려워하지 말고 계속 시도하라.

이미지=Getty Images Bank


지난 1월 실행 48시간 전에야 보안 취약성이 발견돼 다시 한번 업그레이드가 연기되고 난 후 이더리움 핵심 개발자들이 마음속에 새기고 있을 법한 말이다.

전 세계 시가총액 2위 암호화폐 이더리움은 콘스탄티노플로 명명된 업그레이드를 통해 기존 블록과 호환성이 사라지는 하드포크를 진행할 예정이었다. 하지만 보안상 허점이 드러나며 업그레이드가 이달 말로 연기됐다.

이더리움 핵심 개발자들은 이달 마지막 주 728만 번째 블록이 형성되며 작동할 것으로 내다보이는 콘스탄티노플이 이번만큼은 성공하리라 자신하고 있다. 이더리움 재단 개발자 커뮤니티 담당자 허드슨 제임슨은 "모든 일이 계획대로 진행될 것이다. 업그레이드 후 생성될 블록 번호도 정해졌고, 클라이언트에는 콘스탄티노플의 업그레이드된 코드가 이미 하드 코딩(hard coded)되어 있다”며 낙관적 전망을 내놨다.

제임슨은 모든 하드포크에서 교훈을 얻을 수 있다며, 지난 1월엔 채굴자들과 업그레이드 관련 소통을 강화할 필요를 배웠다고 밝혔다.

당시 발견된 코드의 보안 문제가 채굴자에게 직접적인 영향을 미칠 가능성은 없었던 게 사실이다. 하지만 노드라고 불리는 이더리움 블록체인의 완전한 복사본을 실행하는 채굴자와 사용자들에게 콘스탄티노플 취소 사실을 신속히 알려 업그레이드 설치를 중단시키고 혹시 발생할지 모르는 장애를 방지해야 했다.

이와 관련해 콘스탄티노플의 보안 취약성을 발견한 스마트계약 감사(audit) 업체 체인시큐리티(ChainSecurity)의 허버트 리츠도르프 최고기술책임자(CTO)는 이더리움 개발자들이 보여준 조직력이 상당히 인상적이었다고 회상했다.
“모든 개발자가 조직적으로 신속하게 대응하는 모습에 내심 감명을 받았다. 많은 개발자가 참여하므로 누가 무엇을 업데이트할지 잘 알고 있어야 하는 상황이었다. 중앙에서 지휘하는 사람 없이도 이더리움 커뮤니티가 다양한 측면에서 매우 효율적으로 협업한다는 사실에 무척 놀랐다.”

한편 이달 말로 연기된 콘스탄티노플 하드포크에선 기존 계획에 포함됐던 총 5개의 이더리움 개선제안서(EIP, Ethereum Improvement Proposal) 중 4개가 메인넷에 활성화될 예정이다. 스마트계약의 가스비를 줄이는 것을 골자로 하는 EIP 1283은 보안상 취약점 때문에 동시 진행되는 또 다른 업그레이드를 통해 무효가 될 계획이다.

 

‘피터스버그(Petersberg)’ 업그레이드의 탄생 


개발자들은 지난 1월 말 회의에서 문제가 있는 EIP 1283의 오류를 완벽히 수정할 때까지 기다리면 이더리움의 예정된 하드포크가 너무 오래 지연되므로, 해당 EIP는 보류하고 나머지만 가지고 콘스탄티노플을 진행하자고 제안했다.

그렇지만 EIP 1283의 보안 취약성이 발견되기 전에 이미 롭스텐(Ropsten)을 포함한 다수의 이더리움 테스트넷에서 콘스탄티노플이 이미 활성화됐기 때문에 이더리움 핵심 개발자들은 EIP 1283을 제거하는 두 번째 하드포크를 진행하기로 합의했다. 이른바 ‘피터스버그’라는 새로운 업그레이드가 탄생한 배경이다.

롭스텐에서 이미 활성화된 피터스버그는 EIP 1283을 제거하기 위한 하드포크의 비공식 이름이다. 이달 말 메인넷에서는 원래의 콘스탄티노플 코드와 피터스버그 코드가 동시에 활성화될 예정이다.

 

이미지=Getty Images Bank


 

체인시큐리티의 최고운영책임자(COO) 마티아스 에글리는 이번 하드포크의 진행 방식을 이렇게 설명했다.
“실질적으로 메인넷 개발자에게는 피터스버그 업그레이드만 의미가 있다. …… 기술적으로 말하자면 코드에 두 개의 조건이 존재한다. 콘스탄티노플을 728만 번째 블록에서 활성화하면 동시에 같은 블록에서 피터스버그를 활성화해 콘스탄티노플을 즉시 대체하는 방식이다.”

제임슨은 메인넷에서 피터스버그 업그레이드를 실행하기 위한 준비 상황에 관해 모든 테스트가 완료되었고, 고이더리움(Geth)과 패리티(Parity)를 포함한 주요 클라이언트는 예정된 블록에서 업그레이드를 설치할 준비를 마쳤다고 밝혔다.

한편, 이더리움의 보안 책임자 마틴 홀스트 스웬데는 이더리움 사용자들이 이번 콘스탄티노플과 피터스버그 동시 업그레이드의 결과로 이더리움 네트워크에서 생기는 중요한 변화를 정확히 인지해야 한다고 강조한다.

 

스마트계약도 변경할 수 있다 


스웬데는 지난 7일 트위터로 보낸 사용자 설문 조사에서 콘스탄티노플이 실행되면 사실상 변경할 수 없다고 여겨지는 이더리움의 스마트계약이 다수의 트랜잭션에서 특정 조건이 맞으면 변경할 수 있다는 점에 주목했다.

스키니 크리에이트투(Skinny CREATE2)라고 불리는 EIP 1014에 포함된 새로운 기능은 이더리움에서 오프체인 트랜잭션을 쉽게 처리하도록 고안되었다. 리츠도르프는 크리에이트투가 오프체인 트랜잭션의 등장에 따른 필연적 결과라고 말한다.
“스마트계약을 이더리움에서 만들려면 계약이 생성될 주소를 먼저 계산해야 하는데, 여기에는 여러 가지 변수가 들어가는 복잡한 연산이 필요하다. 크리에이트투를 이용하면 주소 계산이 쉬우므로 오프체인에서 처리 중이지만 아직 온체인에 기록되지 않은 계약을 위한 주소를 미리 만들 수 있다.”

결과적으로 스마트계약 개발자는 기술적으로 같은 주소에 계약을 중복해서 만들 수 있다고 리츠도르프는 설명한다.
“(콘스탄티노플이 활성화되면) 한 주소에 계약을 만들고, 코드를 파기한 후 다시 계약을 만드는 방식으로 스마트계약의 코드를 변경할 수 있다.”

에글리는 이것이 “보안상의 버그”가 아니고 업그레이드 이후 이더리움 개발자들이 유념해야 할 “특수한 경우”라면서, 이달 말 하드포크 실행 전에 감사 업체들이 콘스탄티노플로 활성화될 4개의 EIP와 관련해서 지속해서 교육해야 한다고 강조했다.

사용자들은 포크몬(forkmon.ethdevops.io) 이나  이더노즈(Ethernodes) 등의 사이트에서 콘스탄티노플 업그레이드 진행 상황을 실시간으로 확인할 수 있다. 또한, 많은 사이트에 제공하는 채굴 해시레이트와 시장 가격 등을 포함한 실시간 지표를 참조할 수 있다.

이더리움 클라이언트인 패리티의 아프리 쉐던이 만든 하드포크 카운트다운 타이머에 따르면 콘스탄티노플과 피터스버그 동시 업그레이드는 오는 28일 목요일에 진행될 것으로 예상된다.

번역: 뉴스페퍼민트
· This story originally appeared on CoinDesk, the global leader in blockchain news and publisher of the Bitcoin Price Index. view BPI.
· Translated by NewsPeppermint.

제보, 보도자료는 contact@coindeskkorea.com



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.