GMOインターネットTopへTOP研究開発トピックスブログ成長とキャリアプラン参加プロジェクト採用情報2020.01.07バージョンアップ可能なコントラクトの開発TweetPocketこんにちは。スマートコントラクトはブロックチェーンのために基本的にはバージョンアップすることができません。現実的にはコントラクトに存在するバグを修正したり、機能追加するために、バージョンアップが必要です。コントラクトを利用した、既存のコントラクトのロジックを差し替えてバージョンアップさせる方法が広く知られています。利用したバージョンアップ可能なコントラクトを開発するために、openzeppelinコマンドが用意されています。openzeppelinコマンドを利用すれば容易に開発可能ですが、コントラクトという外部にソースコードを公開し、また、直接的に価値のあるものを扱うことの多いものをopenzeppelinコマンドのブラックボックスとするのは、不安が大きいです。本稿では、openzeppelinコマンドを利用せず、その内部で行われているコントラクトのバージョンアップの仕組みを理解し、開発するコントラクトへ導入する方法を説明します。なるコントラクトです。コントラクトにあります。その基本的な仕組みについては、以前本ブログで解説をしましたので、そちらをお読みください。あり、バージョンアップのインターフェイスはありません。実装をされており、このコントラクトを継承し、バージョンアップの関数を呼び出せるようにすることで、バージョンアップ可能なコントラクトを実装することができます。次のバージョンのロジックコントラクトのアドレスを変更することができ、バージョンアップとなります。実装する必要があります。コントラクトでは、コントラクトのバージョンアップをすることができましたが、コントラクトをバージョンアップする権限の委譲をすることができません。変更することができます。変更することができます。確認することができます。