Vyper開発者が安全なコントラクト書き換えのためのvyupgradeツールを公開
すべてを壊さずに何年も前のコードベースを更新しようとしたことがあれば、その気持ちがわかるでしょう。ここで、コードベースが数百万ドルの DeFi 流動性を管理していると想像してください。 Vyper 開発者は、そのプロセスの恐怖を大幅に軽減するように設計されたツールをリリースしました。
このツールは vyupgrade と呼ばれ、その v0.2 リリースは 5 月 29 日にリリースされました。主に Vyper のコントリビューター banteg によって構築され、従来の Vyper スマート コントラクトを v0.4.3 までのコンパイラー バージョンと互換性のある最新の構文に書き換える作業を自動化します。 0.1b* シリーズまでの古いバージョンで書かれたコントラクトをサポートしています。つまり、最も初期の Vyper コードも現在に持ち込むことができます。
安全性チェックが実際にどのように機能するか
Vyupgrade は、元の契約と変更された契約の両方を再コンパイルし、一連の等価性チェックを実行することで移行リスクに対処します。 2 つのバージョン間の ABI、メソッド識別子、ストレージ レイアウトを比較します。何かが一致しない場合、または書き換えによって動作が変わる可能性がある場合、ツールは明示的にフラグを立てます。潜在的に安全ではないと考えられる書き換えは、黙って無視されるのではなく、警告を受けます。
インターフェースは簡単です。開発者は、uvx vyupgrade Contracts/ などを使用して、コマンド ラインからこれを実行できます。オプションには、–check for dry run や、ターゲットとするコンパイラ バージョンを指定する –target-version などのオプションが含まれます。
主要なDeFiプロトコルで実戦テスト済み
Vyupgrade v0.2 は、Curve、 Yearn、および Yield Basis からの契約に基づいて実行されています。互換性は、オンチェーン取引の初期に遡る Uniswap v1 のような初期のコントラクトでも確認されています。
特に Curve の場合、これは関連するコンテキストです。 Curve のスマート コントラクトが Solidity ではなく Vyper で書かれていることは有名ですが、2023 年 7 月に Vyper コンパイラの脆弱性が複数の Curve プールにわたる悪用につながったとき、この選択は諸刃の剣となりました。 Curve や同様のプロトコルがコントラクトを最新の最も安全なコンパイラ バージョンに合わせて維持するのに役立つツールは、ただあれば便利というわけではありません。それらは歴史的な痛みに対する直接的な反応です。
Vyper のツールギャップが重要な理由
Vyper は、Solidity よりもシンプルで監査しやすいように設計されており、攻撃対象領域を減らすために開発者ができることを意図的に制限する Python 構文を備えています。 Vyper コンパイラー自体は積極的に開発されており、v0.4.x では言語に意味のある変更が導入されています。ただし、コンパイラをアップグレードするたびに、既存の契約に移行の負担が生じます。移行を自動化して検証するツールは、Vyper ベースのプロトコルを最新の状態に保つ上での最大の摩擦点の 1 つを取り除きます。
これが投資家にとって何を意味するか
スマート コントラクトの脆弱性は依然として DeFi における資金損失の唯一の最大の原因であり、古いバージョンのコンパイラーは既知の攻撃ベクトルです。現在のパッチ適用済みコンパイラ バージョンでのコントラクトの維持を容易にするツールは、プロトコルの TVL を一夜にして荒廃させる可能性のある種類のエクスプロイトの可能性を直接的に減らします。
すでに vyupgrade をテストしている Curve や Yearn などのプロトコルの場合、採用は信頼性のシグナルとして機能する可能性があります。この発表は、主に X とプロジェクトの GitHub リポジトリを介して広められたものの、メディアでの露出は限られていましたが、コミュニティの反応は圧倒的に肯定的でした。
