イーサリアム財団は1月8日、イーサリアム(ETH)用スマートコントラクト開発用言語「Vyper(バイパー)」の重大な不具合や問題への対処が複雑であることを理由に、新たな実装に取り組んでいると発表した。同財団は、従来のPythonで記述したコンパイラとは別途、Rust(ラスト)言語ベースのコンパイラの開発を進めているという。一方、従来のVyper開発プロジェクトは、Vyperで開発した既存スマートコントラクトは不具合の影響は受けないと表明している

Vyperは、ETH共同創設者ヴィタリック・ブテリン氏が考案。現在主流のJavaScriptライクな開発言語「Solidity(ソリディティ)」と比べ機能的な制限はあるものの、簡潔さ・堅牢さを目的に開発されている。AI関連でも著名な開発言語「Python(パイソン)」を基にしていること、オープンソースの分散型取引所(DEX)プロジェクト「Uniswap(ユニスワップ)」の開発に用いられたことで、急速に注目を集めている。

プレスリリースによると、当初同財団Pythonチームは、Vyper開発プロジェクトに参加・開発に協力し、コンセンシス・ディリジェンスによるスマートコントラクト監査・セキュリティ監査を2019年10月に実施したところ、Pythonベースのコンパイラに31の不具合が見つかったという。そのため、ETH管理下のGitHubリポジトリから、独立したVyper開発プロジェクトのリポジトリにソースコードを移行させたそうだ。Vyper開発プロジェクトは、独立組織として問題への対処を続けるという。

イーサリアム財団は、この点について次のように述べている。

「数ヵ月の作業後、Vyperが約束したアイディアをPythonコードベースのコンパイラが提供できる可能性に懐疑的なものとなった。Pythonベースにのものには技術的およびアーキテクチャ上の問題がかなり含まれており、既存メンテナーがその修正に集中しているようには見えなかった」

このためイーサリアム財団は、Mozilla(モジラ)が支援する開発言語Rustで記述したコンパイラの開発を進めていると明らかにした。この決定は、ETH 2.0で導入予定のスマートコントラクト実行環境「eWASM」(Ethereum flavored WebAssembly)への移植性の向上を目的としているという。eWASMは、モジラ・グーグル・マイクロソフトなどが手がける、ウェブブラウザー向けスクリプトを高速動作させる機構WebAssembly(WASM)をETHで利用できるようにしたものとなっている。

従来のVyper開発プロジェクトは、コンパイラの不具合は重大ではないと主張

Vyper開発プロジェクトは、ツイッター上において、ソフトウェアの安全性・信頼性・正確性確認サービスを提供するブロックチェーン関連企業ランタイム・ベリフィケーションによる検証を指摘した。

次期ETH(ETH 2.0)のコンセンサスアルゴリズムPoS(プルーフオブステーク)において重要なコンポーネントとなっている「ETH 2.0 デポジット・コントラクト」に関連し、スマートコントラクト個別の監査が実施され、未修正の不具合は発見されなかったことを明らかにした。

これは、スマートコントラクトのコンパイル済みコードを使用し監査・分析を行ったものという。コンパイラがコンパイル時に埋め込んでしまう不具合に対応できていることを示すそうだ。

また1月7日にVyperのアップデートを実施し、コンセンシス・ディリジェンスによる監査で見つかった不具合の75%以上を修正したという。

今後は、Python実装およびRust実装のVyperが並立することになる。イーサリアム財団は、両チームが緊密な協力のもとVyper開発を行うことを期待しているという。

翻訳・編集 コインテレグラフジャパン