ERC20とイーサネットワーク(その3)

深掘り解説

ERC20のスマートコントラクト機能

 

その2はこちら

ここまで、ERC20系コインとその規格についてお話ししました。
今回は、ERC20系の最大の特徴の一つである、スマートコントラクトに焦点を当てます。


スマートコントラクト


ERC20は仮想通貨の規格としても優秀ですが、スマートコントラクト機能でも注目されています。「スマートコントラクト」という言葉の定義はいまだに曖昧で、人によって意味することが大きく変わります。ですので、ここではスマートコントラクトの言葉の定義は論じません。

ただ、「スマートコントラクトって何?」という人のために、誤解を恐れずに簡単に説明しておきます。スマートコントラクトとは、プロトコルによって契約の締結から履行状況までを監視・実行する仕組みである、ととりあえず覚えておいてください。

例えば、レストランで食事をする場合、注文して食事をした後にお金を払います。食券制度なら、お金を払って買った食券と引き換えに、料理が提供されます。これも一種の契約行為です。(契約書がなくとも契約は成立します。注文は契約の一種です。)
では、野菜の無人販売所はどうでしょう。これも契約行為です。 野菜をもらう代わりに、筒にお金を入れるのです。しかし、野菜の無人販売では盗難に対する抑止が一切ありませんから、とてもスマートな契約とは言い難いです。従って、一般的には人が店番をして、契約を監視しています。 これを人ではなく機械に契約を監視させると、自動販売機になります。 自動販売機は、お金を入れて、商品を選ぶ(ボタンを押す)と、商品が出てきます。 プログラムで契約の履行状況を監視・実行する仕組みが成立していますから、自動販売機は原始的なスマートコントラクトといえます。
そして、ブロックチェーンを用いたスマートコントラクトでは、もっと複雑な契約の監視・実行が可能です。例えば、旅行の際の航空チケットの支払いにスマートコントラクトを用いれば、目的地に到着した瞬間に口座からチケットの費用が引き落とされる、悪天候で飛行機が飛べなければ自動でキャンセルされる、顧客の都合でキャンセルしたらキャンセル料が徴収される、などの処理も可能です。
この程度の契約の処理は、スマートコントラクトを論じる上ではごく簡単な処理に分類されます。将来的には、企業間の取引と契約や、個人ならば保険などの複雑な契約処理にも、スマートコントラクトが用いられることになるでしょう。

スマートコントラクトは非中央集権的(Decentralized)

イーサネット上では、独自のプログラムをブロックチェーン上にアップロードし、特定のデータを入れたトークンを引き金にしてプログラムを実行するような設計が可能です。そして、一度ブロックチェーンにアップロードされたプログラムは、そのプログラムの開発者ですら、削除、改ざんは困難です。第三者はもちろん、開発者ですら削除、改ざんできないために、不正が行われにくいのです。また、このようなスマートコントラクトで契約処理をするアプリケーションは、契約の管理者が必要ないため、非中央集権的なアプリケーション(Decentralized Apps: dApps)と呼ばれます。


ERC20のスマートコントラクト

ERC20は、スマートコントラクト機能が特徴の1つです。

先に述べたように、ERC20 は様々なデータをトークン化することができることと、ERC20を用いたブロックチェーン間ではトークンの互換性があるため、トークン化された情報を他者と簡単に交換できるように設計されています。
先に上げたMy Ether Walletが、200以上のコインを保管できるのは、それらのコインがERC20に基づいて設計されているためです。トークン(コイン)が異なっても、規格が同じなので、1つのシステムで全て対応することが出来るのです。

このERC20の特性を用いれば、様々なサービスやアプリケーションを開発することが出来ます。

例えば、あるゲーム内の通貨を、異なるゲームで使うこともできるでしょう。ゲームXで手に入れたERC20で発行された100コインをゲームYに送ります。ゲームYもERC20に準拠していれば、ゲームXで手に入れた100コインと等価の価値の通貨がゲームYで使えるようになるのです。そして、ブロックチェーンはその性質上改竄も削除もできませんから、不正が行われることもありません。

この考え方を応用すると、企業が独自の商品をERC20で開発し、他社のERC20系トークンと互換性を持たせることが容易です。例えば、鉄道会社と航空会社が旅行者のチケット情報を共有して、ワンストップサービスを提供することが出来るでしょう。
証券会社が複数の異なるコインをまとめてインデックスファンドを作ることができるでしょう。