- スマートコントラクトは取引を自動化する仕組み
- スマートコントラクトにより低コスト、手間要らずの作業が実現
- スマートコントラクトには課題も多い
仮想通貨といえばブロックチェーンの技術に話題が集まりがちです。一方で、時価総額2位にランクインするイーサリアムに導入されたスマートコントラクトも目が離せません。ブロックチェーンとスマートコントラクトの相性は抜群で、2つのシステムを活用した事例も徐々に生まれ始めています。
また、最近何かと話題のIoTやフィンテック(Fintech)にも関連する言葉です。スマートコントラクトの仕組みや特徴を知ることで今後の世の中の動きが見えてくるかもしれません。
スマートコントラクトとは
スマートコントラクトは「Smart Contract」と表現し、直訳すると「かしこい契約」です。仮想通貨で用いられるスマートコントラクトの意味は「自動化された契約」と表すことが多いです。
人と人が契約を交わす際は互いの信頼関係や書面をベースにしますが、スマートコントラクトはあらかじめプログラムコードさえ記載しておけば、あとは契約の実行を自動的に行ってくれる仕組みとなります。
自動販売機に例えられることが多い
スマートコントラクトの自動履行システムはよく自動販売機に例えられます。自動販売機を利用する時は、まず小銭を入れて欲しい飲料のボタンを押すことで製品が出てきます。一連の流れは「商品選択」→「代金の支払い」→「支払者に商品到達」→「お釣りの排出」です。
自動販売機は上記のプロセスを自動的に行える仕組みで、スマートコントラクトに限りなく近いと言えるでしょう。
契約する相手を信頼しなくていい
スマートコントラクトは契約の実行は当然ですが、初期の認証段階に至るまでを自動化します。仮に契約相手が虚偽の情報を提示した場合でも、機械的にその情報をシャットアウト可能です。つまり、人と人が契約を交わす時に必須の信頼関係を見極める必要はありません。
スマートコントラクトの契約はブロックチェーン上で行われるため、全ての取引情報は一般に公開されます。契約者情報や履行状況がいつでも視認できるので、情報の透明性を高める効果があるのです。
中間手数料がなくなる
スマートコントラクトの自動認証システムは中間手数料の削減にも役立ちます。今までの契約は相手の信用が確認できないことも多く、その際は第三者の仲介者が必要でした。
しかし、スマートコントラクトは契約者同士の信頼関係を気にせず取引できるので、仲介者を利用する手数料分が浮いてきます。スマートコントラクトは業務効率の改善以外にも、契約時のコストカットにも効果を発揮するのです。
スマートコントラクトを使うとなにができるのか
スマートコントラクトで実現できるのは契約(取引)の自動化です。私たちの生活環境は日々契約の履行によって成り立っています。たとえば、コンビニでお弁当を買う、車を修理する、クリーニング店でスーツを洗うなど契約を行うことは日常茶飯事です。
さらに日常生活以外にもスマートコントラクトはビジネス分野に応用できます。得意先への売上げ、メーカーからの仕入れ、従業員との雇用契約、外注先への業務委託契約、ライセンス契約などビジネスの契約種類は多岐に渡ります。
こうした契約に必要な条件は以下のような種類に分かれます。
- 契約当事者
- 取引の前提条件
- 契約実行時期
- 決済方法
- 誓約事項
- 契約違反時のペナルティ
よって上記の条件を事前にプログラム化できれば、後の契約の履行はスマートコントラクトによる自動化が可能です。
契約を担保したトランザクション
スマートコントラクトは単独で利用するよりも、ブロックチェーンの技術と組み合わせることでより強力なツールに生まれ変わります。ブロックチェーンの特徴はネットワーク参加者が各取引の承認を行ってデータの整合性を確認し、偽造が難しい状態でデータの一般公開が行われます。
このブロックチェーンにスマートコントラクトを実装することで、自動契約の履行時に契約内容の真正担保や、契約情報にもとづいた確実な権利の移転が実現するのです。また、スマートコントラクト独自の中間手数料の削減というメリットも同時に活用できます。
スマートコントラクトの流れ
スマートコントラクトにはプログラムの作成から契約実行までに一連の流れがあります。基本的には、「ある契約の条件が定義される」→「条件に当てはまった場合契約が実行」によってプログラムが機能するのです。
この仕組みを利用すれば、普段取引所で売買している投資活動も、承認作業をして報酬を受け取るマイニングもスマートコントラクトで自動的に実行できるでしょう。
ただし、スマートコントラクトを実行するにはプログラムを組む必要があり、技術的な知識やノウハウが必要です。
技術的な面
スマートコントラクトのプログラムコードを作成するには「Remix」と「Solidity」の2種類の言葉を覚えておく必要があります。
Solidityはスマートコントラクトの開発言語で、スマートコントラクトを実装した仮想通貨イーサリアムに採用されています。一方のremixはSolidityを利用して実際にコードを書き込む開発環境のことです。
開発環境はremix
remixはオープンソースで誰でも利用できるソフトで、ソフトウェア開発プラットフォーム「GitHub」で取得できます。remixの開発環境を使えば、容易にスマートコントラクトのコード作成を体感できるでしょう。
remixでスマートコントラクトを実行する際はsolidityというプログラミング言語を利用します。
プログラミング言語はsolidity
スマートコントラクトのプログラミング言語は基本的にsolidityを使います。スマートコントラクトが実行される仕組みは以下の通りです。
- solidityコードで契約内容を記述したプログラミングを行う
- 契約コードを機械語に変換(コンパイル)する
- コンパイル後のコードをブロックチェーン上の取引情報に付与する
- マイナーによって正式に契約内容が確認される
- 契約者が取引情報を確定する
基本的に契約者が行うことといえばremix上でsolidityを使ってコードを書く程度におさまります。
スマートコントラクトの課題
スマートコントラクトが実現するとビジネスの高効率化、社会生活がより便利になるなど大きな恩恵がもたらされるでしょう。しかし、利便性の高いスマートコントラクトにも欠点があります。
- 契約の更新ができない
- イーサリアムの場合プログラミング言語が特殊
上記2つの課題が解決できない限り、スマートコントラクトが世の中に浸透するのはまだまだ先のことになります。
課題1 契約の更新ができない
スマートコントラクトはあらかじめプログラムした内容通りに契約を実行します。プログラムコードさえ間違っていなければ確実に契約を履行できるメリットがあるものの、それだけ融通は利きません。実際に自動契約を結んでから内容を変更しようとしても対応が難しいのです。
万が一システムのトラブルやバグが発生した場合はそのまま実行してしまいます。また、ハッキングや不正アクセスによって情報が乗っ取られてしまうと、非常に危険なプログラムと化してしまうでしょう。
課題2 イーサリアムの場合プログラミング言語が特殊
イーサリアムにはプログラム言語solidityが採用されています。この言語はとても一般的なものとは言えず、それがスマートコントラクトに対する参加障壁の高さに繋がりかねません。一般の人に理解しにくい開発言語ほど、その言語を理解する人は一部に限られるからです。
スマートコントラクトが実装されている例
スマートコントラクトが実装されているのはイーサリアム以外にも他のアルトコイン、またはDappsにも活用されています。Dappsは仮想通貨を使ったアプリ(ゲームが多い)のことで、以下ではcryptokittiesが該当します。
- ゴーレム
- オーガー
- cryptokitties
それぞれの通貨やアプリでスマートコントラクトの活用事例が異なります。
ゴーレム (Golem/GNT)
ゴーレムのネットワークに参加する人はそれぞれのPCから少しだけ計算能力(スペック)を貸し出せます。golemネットワークに集まった世界中のPCスペックをまとめて、あたかもスーパーコンピューターのような計算能力を実現。この仕組みを利用することで、ネットワーク参加者は個人では実現できなかった高次元の計算を利用したサービスを受けられるのです。
この仕組みは「分散型スーパーコンピューター」と呼ばれ、システムの基盤にスマートコントラクトを利用しています。スペックを提供する人を「プロバイダー」、サービスを受ける人を「リクエスター」といい、それぞれのスペック要求と提供はプログラムによって自動化されているのです。
オーガー (Augur/REP)
Augurは「占い師」を意味する言葉で、仮想通貨を使った予測市場サービスを提供します。Augurのネットワークに参加する人は、未来に起こる様々な事象を予測する権利を購入。そして実際に起こった結果に応じて利益が分配される仕組みです。
これは単なるギャンブルではなく、たとえば自らの病気や事故の可能性を予想し、結果に応じて配当金を得るなど保険市場に大きな影響を与えかもしれません。仮に自分で病気の可能性を予測し、その結果が当たるとAugurから配当金が受け取れますが、本来必要なはずの保険会社を仲介しないという特徴は全ての契約がスマートコントラクトで行われるからです。
cryptokitties
cryptokittiesはDappsのゲームで、オンライン上でネコ(ペット)を育成し、育てたキャラクターの売買で仮想通貨を得ることができます。
cryptokittiesにもスマートコントラクトが活用されていますが、現在でも数多くのネコの種類が生まれているのはスマートコントラクトの自動契約が実行されているからです。また、見ず知らずの人とネコの売買を行ったり、2匹のネコを交配して子猫を産む仕組みもスマートコントラクトのプログラムが機能しています。
スマートコントラクトまとめ
スマートコントラクトは契約の履行を自動化する仕組みで、あらかじめプログラムを組んでおけば取引相手の確認から決済完了まで全てを自動的に行ってくれます。お金を入れてボタンを押すだけでジュースが出てくる自動販売機をイメージすると分かりやすいです。
スマートコントラクトの仕組みが世の中に浸透することで私たちの生活はガラッと変わるかもしれません。コンビニやスーパーでの買い物も店員要らず、デジタルマネーで簡単に決済ができたり、仕事の場面でも余計な雑務は機械が全て行ってくれる可能性が高まります。
一方で、スマートコントラクトには課題が多く、人間のように起点を利かした使い方、より広範なプログラミング言語を活用するなど環境整備も必要と言えるでしょう。