スマートコントラクトとは?仕組みやガス代の必要性などについて解説
19:スマートコントラクト
ブロックチェーンの拡張機能として「スマートコントラクト」があります。
仮想通貨イーサリアムのブロックチェーンで実現されている機能で、ブロックチェーン上に自動取引所を作って、そこにデータと仮想通貨を送信すると希望した処理を実行してくれるという機能です。
「何らかの対価を受け取ったら要求された機能を実行する」という契約書のような働きを、人間を介さず自動的に実行するのでスマートコントラクト(賢い契約)という名前がついています。
例えば「○○のコンサートのチケットを販売する」といスマートコントラクトを作ることにより、指定金額の仮想通貨を送金してくれた人に対して自動的にコンサートのチケットを返信するといった使い方ができます。
今回はスマートコントラクト機能がブロックチェーン上でどのように作られているかを解説します。
スマートコントラクト機能を持たないブロックチェーンの場合
送金機能だけを実行するブロックチェーンで、ある仮想通貨の口座(アドレス)AからBに送金することを考えてみましょう。
口座Aで送金トランザクションを作成しブロックチェーンに送金すると口座Bではその金額の仮想通貨を受け取るだけです。
別の口座Cから口座Bに送金しても同様に口座Bは仮想通貨を受け取るだけです。
それぞれ、0.1BTC、0.2BTCを送金したとすると口座Bには合計0.3BTCが残ります。
スマートコントラクトのブロックチェーンの動作
もちろんイーサリアムのようにスマートコントラクト機能を持つブロックチェーンでも、上記のように送金するだけの動作が可能です。
スマートコントラクトを用いる場合には、まずスマートコントラクトの動作を実行するプログラムを作成しブロックチェーン上に載せる必要があります。
スマートコントラクトを作る人の口座Xからスマートコントラクトを実行する口座Bに送金トランザクションを送信します。
このトランザクションにはスマートコントラクト実行の手順を記述したプログラムが記載されているので、この送信によりブロックチェーン上でプログラムが動作可能です。
スマートコントラクトの処理を依頼する利用者は、自分の口座Aから処理に必要なデータと費用の仮想通貨を合わせて口座Bに送金します。
口座Bでは口座Aのトランザクションに記述されているデータを元に口座Bに登録されているプログラムを実行します。
これによりスマートコントラクトとしての仕事をします。
口座Bは他の口座からのトランザクションを受信した場合にもその都度プログラムを実行します。
例えば、口座Bのプログラムにコンサートチケットの販売機能を持たせる場合、口座Aや口座Cからコンサートチケット申し込み情報とチケット代等をトランザクションとして送信します。
口座Bのプログラムは受信したトランザクションの仮想通貨額とチケット希望枚数やシートクラスなどの販売数をチェックし、販売可能であればトランザクションの送信者にメール等の手段により電子チケットを送信します。
売り切れや金額不足により販売できない場合には送金元のアドレスに仮想通貨を戻します。
メールによる応答を返すようなシステムの場合には、送金トランザクション内のデータの中に、メールドレスを記載しておく必要があります。
ガス代の必要性
上記のようにスマートコントラクトはブロックチェーン上でプログラムを動作させる機能です。
しかしブロックチェーンとは多数のマイナー(マイニング用コンピュータ)が並列に動作する仕組みと考えられるので、スマートコントラクトのプログラムは多数のマイナー上で動作します。
スマートコントラクトのプログラムの実行には単純なトランザクション処理とは別にCPUパワー必要となるので、これに対して費用を払わなければなりません。
これをガス代と呼んでいます。
またスマートコントラクトのプログラムに不良があり、受信トランザクションによってはプログラムが停止しなくなる、といった問題が生じると全マイナーの動作が停止や遅延の状態に陥ってしまう可能性があります。
ガス代はその費用に相当する時間だけマイナーのCPUを使っても良いという制限をかけることにより、プログラムの不良による過負荷の問題も可決する方法ともなっています。
スマートコントラクトは多数の派生コイン(トークン)やNFTを実現する基盤技術なので、基本的な原理を理解しておくと良いでしょう。
Provided by
上野 仁(Hitoshi Ueno)
1984年山梨大学大学院修士課程(計算機科学専攻)修了後、株式会社日立製作所入社。
システム開発研究所、エンタープライズサーバ事業部などで主としてコンピュータアーキテクチャおよび基本ソフトウェアの研究開発に従事。
2015年より第一工科大学東京上野キャンパス情報電子システム工学科教授に就任。
2023年より東京情報デザイン専門職大学教授。
生体信号処理に関するプログラム開発や種々の先端ソフトウェアついての調査研究に興味を持つ。
技術士(情報工学)。
博士(工学)。
ビットコイン(仮想通貨)を学びたい方にオススメのコンテンツ
東京情報デザイン専門職大学教授の上野仁氏監修による暗号通貨・ブロックチェーンの記事一覧です。
本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。