ブロックチェーンで自動契約!スマートコントラクトの事例と仕組み
ブロックチェーンが誕生して起こった大きな変化として、分散型アプリケーション(Dapps)が開発されるようになったことが挙げられます。
Dappsはブロックチェーン上で稼働するアプリケーションで、その根幹にはスマートコントラクトという仕組みの存在があります。スマートコントラクトは、「プログラムによってあらかじめ決められた契約や取引を、仲介者なしで自動執行できる仕組み」です。これによって、ブロックチェーン技術の汎用性が爆発的に広がり、数多くの利用事例も誕生しました。今回はスマートコントラクトの概要について見ていきましょう。
イーサリアムから広まったスマートコントラクトとは
ビットコイン(BTC)の場合、「誰から誰にどれだけ渡されたか」という取引履歴しかブロックチェーンに記録されません。ビットコインのブロックチェーンは、Dappsの分野での汎用性が現時点(2022年5月現在)ではそう高くないという状況です。
一方イーサリアム(ETH)は、暗号資産(仮想通貨)というだけでなく、いわばパソコンやスマートフォンのOS(オペレーションシステム)のような存在として、様々なアプリケーションを開発できるようになっています。イーサリアムの技術基盤となっているブロックチェーンは「プラットフォーム型」と呼ばれており、スマートコントラクトと呼ばれる仕組みを利用して、アプリケーションを構築し動かせます。
スマートコントラクトによって、決められた挙動の自動執行が可能になり、第三者の介在なしに決められた手続きを踏めるようになったのです。
このおかげで、ゲームやSNS、取引所などが実際に開発されており、現在ではイーサリアム以外にもプラットフォーム型ブロックチェーンを採用している暗号資産が増えています。これらは、イーサリアムと同様にスマートコントラクトを実装できます。
スマートコントラクトの仕組み
スマートコントラクトとは、ブロックチェーンが備えるソフトウェア実行環境を利用したもので、仲介者を必要とせずに取引(契約)を自動実行し、ブロックチェーンに履歴を記録できます。
スマートコントラクトでは、お金を入れて任意のボタンを押す(契約の実行条件)と、自動で商品が出てくる(契約内容を実行:売買契約が成立する)自動販売機を作れるようなイメージで、ある契約の自動執行を行うことが可能です。また、例えば、事前に支払いを行っておくと、将来のある時点で契約が自動的に履行されるといった、予約販売のようなことも行えます。
スマートコントラクトの概念自体はブロックチェーンよりも前から存在しており、コンピューター・サイエンスおよび法学、暗号学者のニック・ザボ(Nick Szabo)教授が1994年に提唱しています。同教授は、ビットゴールドという後のビットコインによく似たコンセプトも導入しており、ブロックチェーンの誕生に大きな影響を与えたひとりといえるでしょう。一時期は、ザボ教授がビットコインの生みの親であるサトシ・ナカモトではないかと議論されていました(ザボ教授は否定しています)。
参考コラム:「ビットコインを生んだ「サトシ・ナカモト」の正体は? 論文の内容は?」
プログラミング言語でソースコードを記述
またスマートコントラクトでは、特定のプログラミング言語でソースコードを書くことで、任意の条件に従って自動的に実行するソフトウェアを作成できます。ここで記述されたプログラムはブロックチェーン上で処理できる形に変換され、ブロックチェーン上に載せられます。これによって、ある特定の処理を行った時にあらかじめ決められた処理がプログラムに沿って実行されるのです。
ブロックチェーンに載せられたスマートコントラクトは、改ざんすることが極めて難しくなるため、余程のことがない限りは変更されることはありません。
スマートコントラクトを開発するには?
イーサリアムの場合、スマートコントラクトを実行する仕組みに合わせて専用のプログラミング言語「Solidity(ソリディティ)」が用意されており、今現在も頻繁にアップデートが続けられています。また、Pythonというプログラミング言語に似ているVyper(バイパー)も注目されています。これら言語を利用することで、自由自在にスマートコントラクトを開発できます。
また、スマートコントラクトを効率よく開発するためのツールも徐々に増えており、開発支援からテスト、ブロックチェーンへのデプロイまでサポートしてくれるものも存在します。
スマートコントラクトを開発するための環境が徐々に整いつつあるため、今後も開発がより効率的になっていくでしょう。
スマートコントラクトを応用し、独自の暗号資産(仮想通貨)も作成可能
イーサリアムでは、スマートコントラクトの動作を定めた標準規格(ERC-20、ERC-223、ERC-721)が存在し、中でも「ERC-20」を応用することで、独自の暗号資産(トークン)を作成しやすくなっています。海外ではこの仕組みを基盤としたプロジェクトやサービスが増え、同時に独自の暗号資産(仮想通貨)も増えました。
一般に、暗号資産というと分析サイトには1万種類以上が掲載されていますが、イーサリアムのERC-20規格に準拠した暗号資産・トークン情報を掲載しているウェブサイトでは、900種類以上のプロジェクトと53万以上のトークンがあります(それぞれ2022年5月現在)。
例えば暗号資産バブルが起こった際には、世界中でICO(Initial Coin Offering)が数多く実施されたということを覚えている方も多いことでしょう。その背景には、こうした規格化や開発環境が整ってきたことが挙げられます。誰でも簡単に暗号資産を発行できるようになり、それを売り出しやすくなったのです。なおこの時は結果として、詐欺に利用されるなど問題が多発したため、現在多くの国と地域で規制の対象となっています。
セキュリティトークン
スマートコントラクトを使ったトークン設計に関しては、セキュリティトークン(Security Token)と呼ばれるデジタル証券があります。これは、株式や債権などのような証券と呼ばれるものをトークン化したものです。なお、セキュリティトークンを発行し売り出すことをSTO(Security Token Offering)と呼びます。
一般的なトークンを発行するための規格ERC-20とは別に、セキュリティトークンの規格も次第に整いつつあり、代表的なところでは「ERC-1400」が挙げられます。もともとセキュリティトークンはさまざまなルールを実装していなければいけないため、ゼロから作るのは骨の折れる作業でした。ERC-1400のような規格があることで、一定の基準をクリアしたトークンを効率的に作成することが可能になったのです。
日本では2019年10月に「日本STO協会」が発足しました。STOの自主規制を策定し、2020年5月には金融庁認定団体として登録されています。
参考コラム:「新たな資金調達方法STOとは?ICOとの違いや仕組みを解説」
ノンファンジブルトークン(NFT)
2022年5月現在、スマートコントラクトで発行できるトークンとして注目を集めるのが「ノンファンジブルトークン」(Non Fungible Token:NFT)です。NFTは非代替性トークンとも訳されます。
「ファンジブル」とは、例えばAさんが持っている1BTCとBさんの持っている1BTCの価値は同じであるという意味です。これらは同質のものであるため等価交換することや合算して2BTCとすることが可能(ファンジブル:代替可能)です。
しかし、仮にAさんの1BTCに「著名人が保有していたBTC」との情報が付与され、希少性が高まったとすると、これは同じ価値ではなくなります。これが非代替性(ノンファンジブル)とされます。これによって例えば、ゲームにおけるキャラクターやトレーディングカードにおける限定カードなど、ゲーム世界にひとつ(あるいは少数)しか存在しない、自分だけのものという作り方も可能になります。この仕組みを利用して、ブロックチェーンを利用したゲームの開発が進められています。
このようにスマートコントラクトを利用して、さまざまなタイプのトークンを発行することで、アプリケーションやサービスをより面白く活発にしていくことも可能です。その意味でも、スマートコントラクトには大きな可能性があるといえるでしょう。
関連コラム:「NFT(ノンファンジブルトークン)とは?暗号資産(仮想通貨)との違いは?」
スマートコントラクトのプロジェクト実装事例
分散型金融やNFTなど、スマートコントラクトは幅広く使われています。ここではいくつかの事例を紹介します。
レンディングサービス
スマートコントラクトを使うことで、仲介者なしで暗号資産(仮想通貨)を貸し借りできるサービスが構築されています。暗号資産の銀行のようなもので、中央管理者がいない分散型金融の一種です。
レンディングサービスとして代表的なコンパウンドはイーサリアムブロックチェーンで構築され、イーサリアム(ETH)やERC-20、ステーブルコインのテザーを扱う短期金融市場となっています。仲介をスマートコントラクトで定義し、取引を透明化。預けた資産はデータベースでやりとりを確認できます。
直接ユーザー同士で取引せず、コンパウンドのコントラクトに資産を預けます。その預け入れ資産の利子を稼ぐ仕組みになっています。2020年6月には独自トークンであるCOMPの配布を開始。海外の大手暗号資産取引所に上場し、価格が高騰するなど、DeFiブームを起こしました。
マーケットプレイス
2021年から世界中で話題となったNFTを取引するマーケットプレイスにもスマートコントラクトは使われています。マーケットプレイスごとにスマートコントラクトの機能は異なりますが、販売に必要な処理や、NFTの売買手数料の比率や仕組みがプログラムされています。
ゲーム
ゲームをプレイすることでトークン収益が得られる「Play-to-Earn」という新ジャンルのゲームで、スマートコントラクトが使われています。「Play-to-Earn」では、ゲームの目的を達成することで報酬が得られます。この報酬の取引がスマートコントラクトによって管理されています。
不動産
不動産の取引では契約に煩雑な手続きが必要です。スマートコントラクトを利用することで、捺印や大量の書類なしで契約が行えるようになります。さらにスマートコントラクトがブロックチェーンに記録されるために偽造や書き換えなども実質不可能になります。
イーサリアム以外でもスマートコントラクトは実装・開発できる
イーサリアム以外にもスマートコントラクトを作成・利用できる暗号資産やブロックチェーンがあります。2020年7月現在ではイーサリアム向けが多い状況ですが、ライバルを目指す暗号資産・ブロックチェーンプロジェクトの中には、積極的な開発者支援をうたうものもあります。
ステラ
ステラはスマートコントラクトによってステラルーメン(XLM)の送金やトークンの作成、発行などを自動化しています。
ステラのスマートコントラクトには専用のプログラミング言語はありません。価値の送信や保存、取引に特化したシンプルなステラ・スマートコントラクト(Stellar Smart Contract、SSC)が提供されています。
他のブロックチェーンのスマートコントラクトとは異なり、ステラではSDKを介して外部からブロックチェーンにアクセスします。そのためにクライアントSDKが必要になりますが、ステラではJavaScript、Go、Java、Ruby、Python、C#、C++、Scalaなど多様な言語に対応したSDKが用意されています。
ネム
日本でも熱心な支持者が多い暗号資産「ネム(XEM)」でもスマートコントラクトを開発できます。ネムは「モザイク」と呼ばれる独自の仕組みを持っており、このモザイクはあらゆる用途で利用することが可能です。
EOS
イーサリアム以外でスマートコントラクトを開発できるブロックチェーンの代表例として「EOS」(イオス)が挙げられます。EOSはイーサリアムを圧倒するほどの処理速度を持っており、その機能性から「イーサリアムキラー」と呼ばれています。また、スマートコントラクトの開発において、エンジニアやプログラマーによく利用されているC/C++というプログラミング言語を採用しているため、参入の障害が低いというメリットがあります。
さらにイーサリアムはトランザクション発行時にユーザーに手数料がかかりますが、EOSでは開発者側にかかります。そのため、ユーザーの参入障壁が大きく下がり、ユーザビリティも優れていることが利点です。
Hyperledger Fabric
企業が使いやすいブロックチェーンプラットフォームとして、「Hyperledger Fabric」(ハイパーレジャー・ファブリック)も注目を集めています。これは「コンソーシアム」型と呼ばれるタイプのブロックチェーンで、社外に対してデータを不用意に公開したくないといった企業ユーザーに支持されています。Hyperledger Fabricでもスマートコントラクトを開発可能で、ブロックチェーン・ネットワークへの参加者間における処理方法や承認方法もカスタマイズできるようになっています。
まとめ
スマートコントラクトとは、ブロックチェーンが備えるソフトウェア実行環境を利用したもので、仲介者を必要とせず、取引(契約)を自動実行し、ブロックチェーンに履歴を記録できる仕組みです。
特定のプログラミング言語でソースコードを書くことで、任意の条件に従って自動的に実行するソフトウェアを作成できる上、イーサリアムでは、スマートコントラクトの動作を定めた標準規格(ERC-20、ERC-223、ERC-721)が存在します。これを応用することで、機能性の高い独自の暗号資産(仮想通貨)を作成しやすくなっています。
また、イーサリアム以外にもスマートコントラクトを実装できるブロックチェーンプラットフォームは数多く存在するため、状況に合わせて選択していくといいでしょう。
イーサリアムについて詳しく知りたい方は「DAppsとは何か?その仕組みや特徴を解説」もご参照ください。
※掲載されている内容は更新日時点の情報です。現在の情報とは異なる場合がございます。予めご了承ください。
関連記事
-
ビットコインアドレスの仕組みとは?利用時に注意すべきポイント
ビットコイン(BTC)を受け取ったり送ったりするためには、「ビットコインアドレス」を通じたデータのやりとりが必要になります。今回は、ビットコインアドレスを取得して、ビットコインを送受信する方法やその際の注意点などを詳しく解説していきます。
-
暗号資産を安全管理!ウォレットにはどのような種類がある?
ビットコイン(BTC)を購入後の保管の仕方は大きく分けて2通りあります。暗号資産交換業者のウォレットに預けておく方法と、自分で用意したウォレットを利用する方法です。本記事では、初心者にとって使いやすいウォレットを解説します。
-
レイヤー0ブロックチェーンとは?レイヤー1、レイヤー2との違いを解説
ブロックチェーン技術のアーキテクチャー(構造・構成)について語るときに、レイヤー1、レイヤー2という用語が使われます。近年では、さらに重要な概念としてレイヤー0(Layer0)という用語使われるようになりました。この記事ではレイヤー0について、レイヤー1やレイヤー2との違いも含めて詳しく解説していきます。
-
暗号資産(仮想通貨)の基幹技術である分散型台帳技術(DLT)とは?
分散型台帳技術(DLT)は暗号資産(仮想通貨)の基幹技術です。当記事では、DLTはどのような仕組みなのか、暗号資産とDLTの関係も含めて、詳しくご紹介します。
-
コンセンサスアルゴリズムとは?ブロックチェーンで使われる代表的な種類を解説
コンセンサスアルゴリズムは、暗号資産(仮想通貨)の基盤技術となるブロックチェーンがブロックを追加する際のルールとなるコンセンサス(合意)形成を行うアルゴリズム(方法)のことを指します。本記事では、代表的なコンセンサスアルゴリズムの種類や仕組みについて詳しく解説します。
-
イーサリアムとビットコインの違いは?特徴や仕組みから解説
イーサリアム(ETH)はビットコイン(BTC)と目的や用途が大きく違なり、プラットフォームとしての利用が想定されています。イーサリアム独自の特徴を理解して、情報収集を進めていきましょう。
-
ビットコインの仕組みについて初心者にもわかりやすく解説!
取引を始めるには、最初に仮想通貨の仕組みについて知っておくことが大切です。今回は「最初の仮想通貨」と呼ばれるビットコインを例にして、仮想通貨の基礎となっている「ブロックチェーン技術」や具体的な取引方法などを解説します。
-
ブロックチェーンのトリレンマとは?DAOでの新たな問題も解説
革新的な可能性を秘めているブロックチェーン技術は、「分散性」「セキュリティ」「スケーラビリティ」の3つの要素から成り立っているとされています。この記事では、ブロックチェーンやDAOのトリレンマについて詳しく解説します。
今、仮想通貨を始めるなら
DMMビットコイン