見出し画像

スマートコントラクト_#2:スマートコントラクトの基礎知識 - 知っておくべき三つの特徴

ブロックチェーンには検閲できないという特徴があります。その特徴をブロックチェーン上のアプリにも適用するために、Ethereum(イーサリアム)等では「スマートコントラクト(smart contract)」が用いられています。ここでは、スマートコントラクトの仕組みや特徴を解説します。


スマートコントラクトは「契約ではない」

まず、注意すべき点があります。スマートコントラクトを直訳すると「賢い契約」であり、日本では様々な資料で「契約の自動化」と意訳されていることが多いですが、ここに落とし穴があります。

そもそも契約とは何でしょうか。それは、当事者の意思表示の合致によって成立する法律行為です。ところが、ほとんどのスマートコントラクトは、この大事な「意思表示を合致させる」部分を含んでいません。

強いて言えば、スマートコントラクトは意思表示が合致した後に、その合意した結果になるようなプログラムコード等を、アプリを通してブロックチェーンに書き込んでいます。そのアプリを契約と呼ぶのであれば、みなさんがお使いのソフトウェアやクラウドサービス等は全て契約だということになってしまいます。もちろんそうではなく、私たちはソフトウェアやサービスを別途合意している使用許諾契約等に基づいて使っています。

例えば、スマートコントラクトに従って暗号資産(仮想通貨)を送金した際に、サイバー攻撃を受けて暗号資産が盗まれたとします。その場合、損害賠償請求ができるのかどうかは、スマートコントラクトとは別の取り決めや契約に基づいて判断されます。

つまり、スマートコントラクトはその名に反してそれ自体が契約なのではなく、別途ユーザーが暗黙に合意した契約に基づいて、ブロックチェーン上に登録され実行されているアプリなのです。

スマートコントラクトの特徴

スマートコントラクトを理解する上で知っておくべき特徴が三つあります。

1)誰もが自由に開発でき、自由にブロックチェーンに登録でき、障害に強く、改ざんが困難であること
2)ブロックチェーンの外から誰かが呼び出さない限り、自発的には実行されないこと
3)プログラムの内容(コードや現在までの状態)が公開されていること

1)誰もが自由に開発でき、自由にブロックチェーンに登録でき、障害に強く、改ざんが困難であること改ざん耐性があること

スマートコントラクトは、広い意味で検閲できないプログラムです。開発も登録も実行も自由であり、障害によっても止まったり消えたりせず、プログラムコードや状態を不当に書き換えることは困難です。

ただし、バグがないことは保証されず、バグが見つかっても登録されているコードを書き換えて直すことはできません。そのため、バグを修正するには工夫が必要です。

2)ブロックチェーンの外から誰かが呼び出さない限り、自発的には実行されないこと

よく、「スマートコントラクトは自律的に実行される」というような説明がされることがあります。自律とは他からの支配を受けないことであり、ソフトウェアが自律的に実行されるというのは、言わばそれが誰からの指図も受けずに勝手に動くという意味になりそうです。ある時刻になったら自動的に動き出す、というようなものも含みます。

しかし、スマートコントラクトは勝手に動作することはあり得ません。時間がきた、あるいはある暗号資産の価格が市場でいくらになった等の条件が成立したら自動的に動くということもありません。

スマートコントラクトは、ブロックチェーンの維持・管理への参加者らが、ブロックに組み込まれたトランザクションの指示に従って動かし、トランザクションの発行者が「ガス使用料(スマートコントラクトの登録・実行手数料)」を支払わない限り動作しません。

3)プログラムの内容(コードや現在までの状態)が公開されていること

スマートコントラクトのプログラムコード等は、ブロックチェーンに書き込まれています。そのブロックチェーンは公開台帳のため、誰でもアクセスできます。

また、最初にプログラムコード等が書き込まれて以降のスマートコントラクトの機能の呼び出しも、ブロックチェーンに書き込まれています。誰でも手許で、EthereumならEthereumの仮想コンピュータを使って、ブロックチェーンに書き込まれている通りに順序立てて処理を行うことで、現在のデータの状態を再現できます。

プログラムコードやデータは一定の規則に則って記述されており、その内容を読める人であれば、どんな処理が行われているかを直接確認できます。ただし、スマートコントラクトのプログラミング内容は比較的単純なものの、そのためのトレーニングを積んだ人でなければ、誰でもコードを読めるわけではありません。

大事なのは、同じプログラムコード等の状態を見ていることを、参加する全員が検証可能だということです。


続く教材は動画のWeb3教育コンテンツとして、AI・デジタル人材育成プラットフォームを展開する株式会社zero to oneのプラットフォーム上で展開する予定です。提供を開始する際には、noteなどを通じてご案内いたします。


この記事が気に入ったらサポートをしてみませんか?