中級者用語を調べる
変更不可のコントラクトとは
- 執筆
- CRYPTO PORT 編集部
- 公開日
- 更新日
- 読了目安
- 5 分
結論
変更不可のコントラクトは、デプロイ後に誰も挙動を変えられない設計です。管理者を信頼する必要がなく、ルールが将来も変わらないと確認できます。その代わり不具合が見つかっても修正できず、対処は新しいコントラクトへの移行しかありません。プロキシ方式と長所短所が裏返しの関係にあります。
要点
- デプロイ後に誰も挙動を変更できない
- 管理者への信頼が不要になる
- 不具合が見つかっても修正できない
- 対処は新コントラクトへの移行のみ
定義
アップグレードの仕組みや管理者権限を持たず、公開されたコードがそのまま恒久的に動作し続けるコントラクト。読んだコードが将来も同じ動作をすることが保証される。
コントラクトの魅力の1つは「ルールが勝手に変わらない」ことです。変更不可の設計では、デプロイした本人でさえ挙動を変えられません。コードを読んで納得できれば、その理解は将来も有効です。手数料率が突然上がることも、出金が止められることもありません。
この保証は、資産を長期間預ける用途で重みを持ちます。管理者権限がないということは、管理者の鍵が盗まれても資産が影響を受けないということでもあります。攻撃対象になる部分が構造的に存在しません。
裏返しに、不具合への対処手段がありません。脆弱性が公表されれば、直せないまま資金が引き出されるのを見ることになります。そのため、変更不可を選ぶ設計では、公開前の検証や形式的な証明にコストをかけ、機能をあえて絞る判断が取られます。どちらの方針にも相応の代償があります。
注意点
- · 脆弱性が見つかっても停止も修正もできないため、被害は自力での資金退避しか止められない
- · 変更できないことと安全であることは別。コードの品質は別に確認が要る
- · 移行を促す告知を装った詐欺が起こりやすい場面でもある