数学の知識のいらないブロックチェーン紹介 - 3 - スマートコントラクト

アクセリアの研究
スマートコントラクトとは何か
 前回までのコラムでは、ブロックチェーン技術が解決しようとする基本的な問題について説明しました。今回はスマートコントラクトについての話をします。(第1回第2回

 もう2020になりましたが、下記のような流れがありました:



 ブロックチェーンに対する過度な期待のピーク期(ハイプ)に続いて、スマートコントラクトにもハイプがきました。しかし、ここではいったん、そもそも「スマートコントラクトとは何か」という、2つの例を出しましょう:



 自動販売機とスマートスピーカーです。
 これらはそこまでスマートではなくても、あるアクションを起こすと、機械が反応を起こします。スマートコントラクトも同じような感じです。どこかへの接続を待って、その後反応します。

 ただ、「スマート」ではないことも述べておきます。



 「スマートコントラクト」という名前は「スマート」と言うように、賢いことを目指していますが、実際はプログラムなので、バグもあるし、書いてる開発者より賢くはなりません。普通のプログラムと同じように考えたらいいと思います。

 そして、「コントラクト」とは、「契約」ではありません。現在の法律では定まっていないものなので、実際の契約に対して法律的安全を与えていません。

ブロックチェーン・データ・ストラクチャ
 では、先に進む前に前回の「ブロックチェーン・データ・ストラクチャ」について思い出しましょう:



 ブロックチェーンとそのデータ・ストラクチャの重要なポイントのうち、下記の3つはスマートコントラクトの技術のもととなっているものです:

 ・コンテンツの最小操作でも目立つようにトランザクションデータの履歴を保存する
 ・トランザクション履歴に偽造を埋め込むこためには、その大部分を書き直す必要がある
 ・履歴へのデータの追加、書き込み、または書き換えは計算的に複雑にする
スマートコントラクト
 歴史的に、「スマートコントラクト」という単語は大昔(ITの大昔!)の1997年にNick Szabo氏によって初めて提唱されました(Formalizing and Securing Relationships on Public Networks):

A smart contract is a set of promises, specified in digital form, including protocols within which the parties perform on the other promises.... The basic idea of smart contracts is that many kinds of contractual clauses (such as liens, bonding, delineation of property rights, etc.) can be embedded in the hardware and software we deal with, in such a way as to make breach of contract expensive (if desired, sometimes prohibitively so) for the breacher.

 では、上記を参考にスマートコントラクトを簡単に定義してみましょう:
 スマートコントラクトとは、ブロックチェーンの上で実行されるコンピュータコードです。その当事者はスマートコントラクトに 含まれているルールを守ることに同意します。事前に定義された規則が満たされると、契約は自動的に施行されます。
 言い換えると、「トランザクションのための、ブロックチェーンの上のビジネス・ロジック」ということです。

 上記定義の通りにブロックチェーンに保存されることで、スマートコントラクトには下記の特色が現れます:

 ・コンピュータコードである(バグの可能性も含まれてる)
 ・ブロックチェーンを読める誰もがスマートコントラクトを読める(基本的に内容確認できるはず)
 ・認証が行われること(ブロックチェーンのようにデジタル署名)
 ・外部の情報を得られる・使う・送る(オラクル – 天気予報、利子レートなど)
 ・自動的に実行する(第三者のアクターが必要ではない)
 ・変更不可(スマートコントラクトを更新することも不可!)

 最初に例として挙げた自動販売機とスマートスピーカーは両方ともスマートコントラクトに似ていますが、下記の点が違います:

 ・コンピュータコード以外も含まれている
  →組込デバイス、小さいコンピュータ、バグ
 ・ソースを読めない
  →自販機は限られた人しか読めない
 ・部分的な認証しかない
  →近接センサーが必要
 ・外の情報を得られる・外へ送ることはしていない
  →情報を得ているか、送っているか誰も知らない!?
 ・自動的な実行に限られていない
  →スマートスピーカーはインターネット接続が必要
 ・変更可能
  →OTAアップデートが可能
まとめ
 「スマートコントラクト」は大変人気になりました。最後に確認したとき、スマートコントラクトに入っているEther(Etheriumの通貨)には、約13,396,678 ETH = 1,741,568,140 USDも入っていました!ですが、これまで見てきたように、スマートコントラクトは賢くはなく、契約もなく、ただ変更できない、自動的に実行されるコンピュータコードであるということが事実です。

■関連ページ
【アクセリアのサービス一覧】
 ・サービスNAVI

Norbert Preining

アクセリア株式会社 研究開発部社員
北陸先端科学技術大学院大学ソフトウェア検証研究センター 研究員
ウィーン工科大学 研究員
デビアン開発者
TeX User Group (取締役会員)、Kurt Godel Society (取締役会員)
ACM, ACM SigLog, 日本数式処理学会、ドイツ数学論理学会