이더리움 2.0 스마트 계약용 컴파일러에 버그 발생

이더리움 재단(EF)이 발표한 8일자 포스팅에 따르면 개발자들이 기존 버전에 " 몇몇 심각한 버그가 발견되어" 바이퍼(Vyper) 새로운 컴파일러의 실행을 위해 현재 작업 중에 있다고 한다. 바이퍼랭(Vyperlang) 팀은 기존의 바이퍼 스마트 계약이 이들 버그에 영향을 받지 않았다고 밝혔다.

바이퍼는 비탈릭 부테린(Vitalik Buterin)이 원래 구상한 이더리움에 대한 대체적인 프로그램 언어이다. 이는 때로 원래 프로그램 언어인 솔리디티(Solidity)의 첨단 기능을 사용하지 못하는  경우가 발생한다해도 가능한 한 개발자가 읽을 수 있도록 만든다는 원칙을 지키고 있다.

원래는 메인 이더리움(ETH) 코드 스택의 일부였음에도 이는 2019년 10월 컨센시스 딜리전스(Consensys Diligence) 예비 감사가 있은 후 독자적인 기록저장소로서 독립했다. 이번 포스팅에 따르면 프로그램 언어를 이더리움 가상 머신(EVM) 컴퓨터 코드로 옮겨주는 소프트웨어인 바이퍼 컴파일러에서 총 31개의 버그가 발견되었다고 한다.

이더리움 재단 개발자들은 블로그 포스트에서 자신들이 왜 바이퍼 메인테이너에 대해 점차 실망하게 됐는지에 대해서 설명하고 있다.

"몇 달에 걸친 작업 끝에 우리는 파이썬 코드베이스가 바이퍼가 약속했던 바를 그대로 지켜줄 것이라는데 대해 점차 회의감을 갖게 됐다. 코드베이스는 상당한 정도의 기술적 및 설계상의 결함을 갖고 있었고 우리가 보기에도 기존의 메인테이너들이 이를 수정할 의사가 없었던 것으로 생각됐다."

이번 발표가 있기 전에 EF 팀은 러스트(Rust) 프로그램 언어에 근거한 바이퍼 컴파일러 개발에 착수했다. 이러한 결정은 이더리움 2.0과 함께 새로 출시될 예정인 EVM을 대체하는 새로운 가상 머신 실행 솔루션 EWASM의 휴대성 개선에 따른 것이다.

바이퍼 메인테이너들은 컴파일러 버그가 심각하지 않다고 주장

바이퍼 컴파일러에서 발견된 버그는 지분증명(PoS) 시스템의 핵심 부분인 이더리움 2.0 예탁계약에서 사용되기 때문에 더 심각한 문제가 될 수 있다.

그러나 바이퍼 개발자들은 트위터를 통해 런타임 베리피케이션(Runtime Verification)으로 계약 자체에 대한 별도의 감사를 실시한 결과 아직도 수정되지 않은 버그가 전혀 남아 있지 않았다고 밝혔다. 이 확인 과정은 분석을 하는데 계약상의 컴파일 머신 코드를 사용했다고 하며 이는 컴파일러를 통해 발생한 어떠한 문제도 감지됐었을 것임을 의미한다.

이와 관련해서 바이퍼랭 팀은 7일 업데이트를 발표하고 컨센시스 감사에서 지적된 버그들 가운데 75%가 해결됐다고 밝혔다.

바이퍼의 러스트와 파이썬 버전 개발은 앞으로도 계속될 것이지만 EF 개발자들은 두 가지 실행 방식이 단일 바이퍼 언어로 작동이 될 수 있기를 바라고 있다. 그러기 위해서는 두 개발 팀이 긴밀하게 협력하는 것 말고는 다른 수가 없을 것 같다.