スマートコントラクトとは何か?

Chainlink Japan
Chainlink Community
Feb 1, 2021

本記事はChainlinkオフィシャルブログに公開された“What Is a Smart Contract?”の和訳です。

Chainlink公式より許可をいただいた上で記事を翻訳・公開しています。

前回のブロックチェーンに関する教育記事では、ブロックチェーンを価値交換を処理し、不変の台帳にデータを保存するための安全性と信頼性の高いネットワークとして確認しました。ブロックチェーンはビットコインのような新しい金融商品を生み出しましたが、スマートコントラクトとして知られる条件付きのデジタル契約を強力にするという、より広範なアプリケーションを持っています。この記事では、次の項目について考察します。

  • スマートコントラクトとは何か
  • なぜそれが価値を提供するのか
  • スマートコントラクトはどのように進化してきたのか
  • 今の世の中でどのように活用されているのか

スマートコントラクトとは何か?

デジタル契約とは、インターネット上で実行される電子的に署名された契約のことです。例えば、Uberの利用規約に「同意する」をクリックすることで、ライダーは目的地に配送された際にドライバーに支払いをすることに同意します。

ほとんどのデジタル契約では、お互いを知らない2つの当事者が関与しているため、どちらかの当事者が約束を守らないというリスクが発生します。このカウンターパーティリスクを解決するために、デジタル契約は、契約条件を確実に執行できる大規模な営利企業によってホストされ、実行されることがよくあります。これらのデジタル契約は、ユーザーと大企業の間で直接締結されることもあれば、大企業が2人のユーザーの間で信頼できる仲介者として機能することもあります。このようなダイナミックな動きにより、そうでなければそのようなリスクを負うことのない多くの契約が存在することができる一方で、大規模な営利企業が契約に対して莫大な支配力を行使するという状況を生み出しています。

スマートコントラクトとは、ブロックチェーン上に不変のソフトウェアプログラムとして存在し、その実行に条件を付けて実行するデジタル契約のことです。条件付きロジックを理解するための最も単純なメンタルモデルは、「もしxのイベントが発生したら、yのアクションを実行する」というものです。例えば、チームAがスポーツイベントに勝ったらボブに支払いをし、チームBが勝ったらスティーブに支払いをします。スポーツイベントの結果を手動で入力するのではなく、スマートコントラクトは結果を通知するデータによって直接トリガーされます。データを受け取ると、スマートコントラクトは自動的に支払いの形でアクションを実行します。

スマートコントラクトは、ビジネスロジック(コントラクト)をおそらくその条件に従って実行されるであろう確率的な状態から、その条件に従って実行されることが保証されている決定論的な状態へと移行させることに焦点を当てています。スマートコントラクトがこのような強力な決定論的保証を誇ることができる理由は、それが分散化された、パーミッションレスな、改ざんされない、常にオンラインのブロックチェーン環境で実行されるからです。これにより、契約上の契約が中立的な分散型ネットワークによってホストされ、イベントの発生によって技術的に強制されるという枠組みが生まれます。

スマートコントラクトの価値

スマートコントラクトは、現在のデジタル契約に比べていくつかの利点があります。

  • セキュリティ — 分散化されたインフラストラクチャ上で契約を実行することで、攻撃のための中央の障害点がないこと、中央の仲介者が賄賂を受け取ることがないこと、そしてどちらかの当事者や中央の管理者が結果を改ざんするメカニズムがないことを保証します。
  • 信頼性 — 契約ロジックを冗長的に処理し、複数の独立したノードで検証することで、ユーザーに強い操作耐性を与え、ネットワークの稼働時間が保証され、契約が常にその条件に沿って時間通りに実行されることが保証されます。
  • 公平性 — ピアツーピアベースの分散型ネットワークを使用して契約条件をホストし、強制することで、中央集権的な営利目的の仲介者によって吸い上げられる価値の量を減らすことができます。
  • 効率性 — 契約のバックエンドプロセス(エスクロー、メンテナンス、実行、決済)を自動化することで、どちらの当事者も手動でデータを入力したり、取引相手が義務を履行したり、取引を処理するための仲介者を待つ必要がなくなります。

スマートコントラクトの歴史

スマートコントラクトの最も初歩的なタイプは、マルチシグスマートコントラクトです。マルチシグトランザクションでは、定義された数の人々(公開鍵)がトランザクションが有効とみなされる前に秘密鍵を使って署名しなければならないとされています。ビットコインは、2012年にマルチシグトランザクションを導入した最初のブロックチェーンでした。

ビットコインブロックチェーン上でのマルチシグトランザクションのためのシンプルなフレームワーク

次のイテレーションでは、プロトコルスマートコントラクト(いくつかのコアプログラム命令(オペコードと呼ばれる)が組み込まれたブロックチェーンのこと)が作成されました。プロトコルスマートコントラクトは、いくつかのオペコードを実行できる単一のアプリケーションとして動作するブロックチェーンです。しかし、プロトコルスマートコントラクトはスマートコントラクト(プロトコル)を変更するたびにハードフォーク(新しいブロックチェーンを作成し、各ノードがソフトウェアをアップグレードしなければならない根本的な変更)を必要とするため、スケールアップが困難です。

Ethereumは2015年にスクリプタブルなスマートコントラクトを発表し、ブロックチェーンを様々なアプリケーションを同時に動かす「ワールドコンピュータ」に変え、スマートコントラクトに革命を起こしました。開発者は独自のスマートコントラクトのセットを管理し、ハードフォークの必要なしにいつでも変更することができます。スクリプト言語は低レベルの開発の複雑さを抽象化し、開発者は数ヶ月や数年ではなく、数日から数週間でスマートコントラクトを構築することができます。

現在の進化は、ブロックチェーンの外側(オフチェーン)に存在する実世界のデータやシステムと接続するスクリプタブルなスマートコントラクトです。接続されたスマートコントラクトは、オラクルとして知られる安全なミドルウェアを使用して、オフチェーンのデータを使用してスマートコントラクトの実行をトリガーします。オラクルはまた、従来の不換紙幣決済システムに支払い指示を送ることでスマートコントラクトをオフチェーンで決済するなど、スマートコントラクトが他のシステムにデータを送ることを可能にします。

Chainlinkオラクルはブロックチェーンベースのスマートコントラクト(中央)にデータを送り込んだり(左)、オフチェーンの決済ネットワークに決済指示を送ったり(右)することができます

スマートコントラクトは現在どのように利用されているか

まだ開発の初期段階ではありますが、スマートコントラクト独自のセキュリティと信頼性の保証により、定着し始めている4つの市場を特定しました。

権利管理(トークン)

トークンコントラクトは、トークンの作成、追跡、所有権の割り当てに使用されます。トークンコントラクトは、発行するトークンに特定の機能をプログラムし、保有者にdAppのユーティリティ/帯域幅(ユーティリティトークン)、プロトコルの投票権(ガバナンストークン)、企業の株式(セキュリティトークン)、実物またはデジタル資産の所有権(非代替性トークン)などを提供します。例えば、SIAトークンはSiacoinの分散型クラウドストレージサービスの支払いに使用され、COMPトークンはユーザーがCompoundプロトコルのガバナンスに参加することを可能にします。

金融商品(DeFi)

分散型金融(DeFi)は、スマートコントラクトを利用して、マネーマーケット、デリバティブ、ステーブルコイン、取引所、資産管理などの伝統的な金融商品やサービスを再現するアプリケーションで構成されています。スマートコントラクトは、ユーザーの資金をエスクローで保持し、市場イベントの結果としてユーザーに分配することができます。例えば、Set Protocolは市場データを利用してポートフォリオ管理を自動化し、Opium Exchangeは執行時の資産価格に基づいてオプション契約を決済します。

ゲーム

ブロックチェーンゲームではスマートコントラクトを使用して、ゲーム内のアクションを不正耐性の元に実行することができます。その一例がPoolTogetherで、ユーザーがマネーマーケットに接続された宝くじのスマートコントラクトに貯金をプールする、損失のない貯金ゲームです。マネーマーケットは預金の利子を蓄積し、その利子は乱数生成(RNG)に基づいて勝者に分配されます。当選者が決定した後、誰もが初期預金を引き出すことができます。同様にスマートコントラクトでは、RNGを介して1回限りの魔剣のようなゲーム内のレアアイテムを生成することができます。RNGのソースとしてChainlinkのVerifiable Random Function (VRF)を使用することで、ユーザーは結果が本当にランダムであり、ゲーム開発者やデータソースプロバイダによって操作されたものではないことを信頼して独立して検証することができます。

保険

パラメトリック保険は、支払いが特定の事前定義されたイベントに直接結び付けられる保険の一種です。スマートコントラクトは、データ入力の結果としてトリガーされるパラメトリック保険契約を作成するための改ざん防止インフラストラクチャを提供します。例えば、Etherisc は、飛行状況データを受信したときに自動的に支払いを行う飛行保険スマートコントラクトを構築しています。エンドユーザーはコントラクト上でより多くの信頼性保証を受けることができるだけでなく、個人投資家は、ユーザーの預金をプールするスマートコントラクトを通じて保険の供給側に参加することができます。スマートコントラクトは、ユーザーのプールへの拠出率に基づいて利益を分配します。

参考文献

データとAPIに関する教育シリーズの次の記事をご覧ください。Twitterをフォローして、今後の記事リリースの通知を受けたり、Telegramに参加して、Chainlinkの最新情報を入手したりしてください。

Chainlink日本語リソース

--

--