スマートコントラクトのアップグレーダビリティ -データの不変性と構造の柔軟性の折衷案の近況-
2019年12月19日
この記事を簡単にまとめると(AI要約)
目次
- 前提
- 既存の手法
- レジストリコントラクト型
- プロキシコントラクト型
- ストレージコントラクト型
- 最近の手法
- ストレージ継承型
- 非構造化ストレージ型
- 総論
前提
本レポートでは主にEthereumのスマートコントラクトのアップグレーダビリティ(更新可能性)の近況を概観していきます。ブロックチェーンはデータの不変性を売りにしていますが、一方でバグのないプログラムを書くのは難しいため、プログラムを更新することができなければバグを修正できず、複数のコントラクトから成る一つのプログラムに一つのバグが紛れていた場合でも、全てのコントラクトをデプロイし直す必要が生じます。
そこでスマートコントラクトを更新するにはどのような手法があり、各手法にはどのような利点と欠点があるのかが論じられてきました。
ちなみにアップグレーダビリティは、コントラクト単位で語られますが、ブロックチェーン全体のアップグレーダビリティにも関連してくる話で、例えばEthereum2.0で導入されるBeacon Chain上にコントラクトをデプロイして、このBeacon Chain ContractがEthereumの実行環境を規定する構想があります。
※免責事項:本レポートは、いかなる種類の法的または財政的な助言とみなされるものではありません。