이더리움 2.0 스마트 계약에 발생한 심각한 버그는 무엇인가요?
이더리움 재단(EF)이 발표한 8일자 포스팅에 따르면 개발자들이 기존 버전에 ” 몇몇 심각한 버그가 발견되어” 바이퍼(Vyper) 새로운 컴파일러의 실행을 위해 현재 작업 중에 있다고 한다.
이더리움 2.0 스마트 계약에 발생한 심각한 버그는 무엇인가요?
이더리움 블록체인은 EVM이라는 가상의 컴퓨팅 머신을 통해, 컨트랙트 작성용 언어로 코딩된 스마트 컨트랙트를 컴파일러로 컴파일링한 후 바이트 코드로 바꾸어 실행하고 연산하여 처리하게 됩니다.
이러한 컨트랙트 작성용 언어로 대표적인 것이 솔리디티이고, 이외에도 파이썬 기반으로 개발된 바이퍼라는 언어가 있지만 솔리디티가 훨씬 더 많이 사용된다고 할 수 있습니다.
그리고 솔리디티 언어로 작성된 컨트랙트는 솔리디티 컴파일러를 통해 컴파일링이 이루어지고, 바이퍼 언어로 작성된 컨트랙트는 바이퍼 컴파일러를 통해 컴파일링이 이루어진 후 바이트 코드로 변환되어 실행됩니다.
한편, 이더리움 재단의 개발자들은 이러한 바이퍼 컴파일러에 31개의 버그가 발생되었으나 이것이 제대로 수정되고 있지 않으며, 바이퍼 언어의 개발과 유지, 관리가 제대로 이루어지고 않다는 주장을 하고 있습니다.
특히, 이더리움 2.0의 개발과 관련하여 이더리움 코인의 스테이킹과 관련된 예치(Deposit) 계약 부분에 바이퍼 언어가 사용될 예정인데 바이퍼 컴파일러에 버그가 있다는 점이 큰 문제가 될 수 있습니다.
하지만 바이퍼 개발자들이 이더리움 2.0 개발과 관련하여 별도의 코드 감사를 진행한 결과 바이퍼 언어가 사용된 부분에 별다른 문제점은 없었던 것으로 나타났습니다.
그렇지만 바이퍼 컴파일러의 경우 버그가 있는 것으로 드러났으므로 이더리움 재단은 이더리움 2.0의 개발에 차질이 없도록 Rust 언어 기반의 바이퍼 컴파일러를 별도로 개발 중에 있으며, 기존의 파이썬 기반의 바이퍼를 개발하고 유지하는 Vyperlang 팀은 현재 컴파일러가 가진 버그의 75% 정도를 해결하였다고 밝힌 바 있습니다.
정리하자면, 바이퍼 컴파일러의 버그 때문에 이더리움 2.0 개발에 문제가 생길 가능성이 있었으나 이더리움 재단이 별도로 Rust 기반의 바이퍼 컴파일러를 개발하고 있으므로 문제가 발생할 가능성은 낮다고 할 수 있겠습니다.
답변이 도움이 되길 바랍니다.