スマートコントラクト
スマートコントラクトとは?
スマートコントラクトとブロックチェーンについて
- スマートコントラクトの定義スマートコントラクトはコンピューターコードが定義する自己締結型の契約で、イーサリアムブロックチェーンといったプラットフォーム上に構築されたアプリケーションと考えるのが最もわかりやすいでしょう。
- スマートコントラクトと従来の契約:従来の契約との比較では、スマートコントラクトには不変性と管理者不要という利点があります。これによって、リソース、お金および時間が節約され、スマートコントラクトは多くのアプリケーションの潜在的な利用が可能なパワフルなツールとなっています。
- スマートコントラクの限界スマートコントラクトにはいくつかの限界があります。例えば、主観性が反映されない、コミュニティのコンセンサスにもとづいた改良をするための基準が厳しい、ならびに現実世界のデータを管理者なしで組み込む直接的な方法がない、といったようなことがあります。
スマートコントラクトについて
スマートコントラクトはコンピュータープログラムが定義する自己締結型の契約で、契約書の条件が不変性のコードに組み込まれ、ブロックチェーン上に記録されます。
従来、契約とは約束および/またはサービスを交換するための2者あるいはそれ以上の数の当事者による同意であり、この同意は複数の要素で構成されていることがよくあります。例えば、お金の支払いといったような約束は、別の約束あるいはサービスと交換することができますし、サービスとサービスを交換することもできます。
さらに、交換のタイミング(今すぐか? 期限はあるのか?、契約が無効になる状況)といったような、交換を制約する契約上の条件がたくさん付けられる場合があります。このように詳細な条件があるため、融資条件や雇用条件を記したものなど、一般的な契約書のいくつかはとても長くなっています。
スマートコントラクトの「スマート」という単語は、この契約が書面やそれと同じような形式のものとは違い、コンピュータープログラムによって実行されるということを単に示しています。
2020年代の現在ではあちこちで見られる、「スマートコントラクト」という用語は、1990年代に暗号資産の初期の主唱者の1人であり、弁護士にしてコンピューターサイエンティストであるニック・サボ(Nick Szabo)によって名付けられました。1996年に発表された論文で、サボはスマートコントラクトを「当事者が相手に対して行うことを記録したプロトコルを含む、電子的な形態のなかに指定されている、一連の約束」と定義しました。
スマートコントラクトでの約束は、コンピュータープログラミングでは一般的な「if-then」セマンティックで書かれています。このif-thenについての現実世界での最高の例は自動販売機で、サボは当初これを使って、スマートコントラクトの機能を説明していました。もし機械のなかに1ドルを入れれば(if)、機械はスナックを販売する(then)という具合に。取引そのものは、外部(人間または制度)の影響を受けない機械のプログラムによって事前に決定されています。スマートコントラクトは同じ方法で機能を自律的に実行するように設計されています。
スマートコントラクトvs.従来の契約
従来の契約書に最後に署名したときのことを考えてください。書面と両当事者が署名した契約書以外に何が必要だったでしょうか?
弁護士が重要な存在であることがよくあります。最初に契約書の文面を書き、それから契約が正しく履行されるようにする必要があるからです。契約違反があると、裁判官や法廷、その他の費用のかかるリソースが必要となります。家の購入のような大きな金融取引では、両当事者が合意された条件を満たすまで資金を預かる第三者である、エスクロウがよく使われます。
拘束力のある契約を作成するのに必要な、これらすべての仲介人やリソースは、自身の役割を誠実に履行してくれると信頼しなければならないだけでなく、費用もかかります。さらに、これらの状況で使用される、あらゆるリソースを揃えるのにも時間がかかりますので、契約に至るまでには数日から数週間かかることになります。
基本的には、スマートコントラクトは以下のような機能があるため、上記のような前提条件や要件に依存していません。
- 不変性 - スマートコントラクトが1度書かれ、締結されると、変更はできず、そのため永遠に保たれます。ブロックチェーンを実行させている、ノードと呼ばれるコンピューターは、契約書(コントラクト)と同一の書面を保存していますので、契約書に変更を加えることは、ネットワーク上での承諾がない限り、不可能です。
- 管理者不要 - それぞれのスマートコントラクトは自己充足的ですので、契約書を締結させる弁護士や金融機関といった代理人に頼ることがありません。外部の影響を受けないために、外部に頼る必要なく、毎回同じ結果を期待できます。そのため、他の方法ではかなり時間のかかる、きわめて複雑な取引であっても、数秒または数分で行うことができます。
注目すべき点としては、スマートコントラクトには仲介人がいないため、委託料を支払う必要がない、あるいは第三者が契約を締結させるのを待つ必要がないということがあり、それによってスマートコントラクトは一部の人々にとっては従来の契約に取って代わる、魅力的な代替手段となっています。
ブロックチェーン上のスマートコントラクトは何ですか?
スマートコントラクトは、ブロックチェーンテクノロジーの核となるものです。
ビットコインのスマートコントラクトはビットコインブロックチェーン上での運用が意図されており、取引の具体的なルールを定め、それらを公開台帳に記録します。
イーサリアムのスマートコントラクトは、自身のブロックチェーン以外で機能している他のスマートコントラクト(プログラムまたは分散化アプリケーションとも呼ばれているもの)に対応することを具体的に想定して構築されています。これらのアプリケーションは、SolidityおよびVyperと呼ばれる、契約書の書式に対応するように特別にデザインされた、プログラミング言語で書かれています。
計算能力のマーケットプレイスを構築するプラットフォームであるGolem(GNT),を使って、イーサリアムのスマートコントラクトの例を見てみましょう。Golemのスマートコントラクトにより、誰でもコミュニティの計算リソースを有料で要求することができます。ネットワークが要求者からの資金とプロバイダーのタスク完了を確認すると、条件が満たされ、契約が締結されます。このとき、要求者はリソース提供者から計算能力を受け取り、GNTが両者にサービスを提供しているアカウントに自動的に移転されます。事前定義されていた条件が完全に満たされているわけではない場合、契約は締結されません。
スマートコントラクの限界
- 主観性 - スマートコントラクトの機能性は、書かれているコードの内容によって制限を受けます。コントラクト内になんらかの主観性が入り込んでいる場合、あるいは柔軟性が必要な場合、デザインへの組み込みが困難になります。
- 変更の困難さ - コードにバグあるいは抜け穴がある場合、コントラクトを変更するにはコミュニティの大変な努力とネットワークノードからの同意が必要となります。
- 現実世界のデータの組み込み - スマートコントラクトには、米ドルの価値、株価、あるいは国家を横断し出荷される製品の位置についての知識といった、現実世界のデータを使用して契約を締結しなければならないことが多くあります。第三者からこの情報が提供されることが多くある一方で、オラクルテクノロジー(ChainlinkまたはBand Protocol)が、オフチェーンのデータを使ってブロックチェーンにこのような情報をもたらそうとしています。
今すぐ始める
次のステップに進む準備ができたら、下のボタンをクリックして、クラーケンアカウントに登録し、スマートコントラクトを買ってみましょう!
スマートコントラクトの未来
開発者は、ブロックチェーンテクノロジーを支えるスマートコントラクトの奥深い能力についての研究を始めたばかりです。このテクノロジーは使用事例が指数関数的に増加しており、従来の契約が取引の主流である現在で、たくさんの人々が、新しいスペースでの機会を目にできるようになっています。潜在的な使用例には、住宅ローン、デジタルアイデンティティ管理、サプライチェーンロジスティックス、株式市場の取引と証券、臓器割り当て/移植リスト、不動産の貸借などがあります。