導入

ニック・サボは1990年代にスマートコントラクトを初めて説明しました。その当時、彼はスマートコントラクトをプロトコルとユーザーインターフェースを組み合わせてコンピュータネットワークを形式化し、保護するツールとして定義しました。

サボは、クレジットシステム、支払い処理、コンテンツの権利管理など、契約に関連するさまざまな分野でのスマートコントラクトの潜在的な使用について言及しました。

暗号通貨の世界では、スマートコントラクトをブロックチェーン上で実行されるアプリケーションまたはプログラムとして定義できます。一般的に、スマートコントラクトは特定のルールのセットによって適用されるデジタル契約として機能します。これらのルールは、全てのノードによって複製され、実行されるコンピュータコードによって事前に定義されています。

スマートコントラクトブロックチェーンは、信頼のないプロトコルを作成することを可能にします。これは、二者がブロックチェーンを介して約束を交わすことができ、互いに知らず、信頼しなくても良いことを意味します。条件が満たされない場合、契約は実行されないことを確信できます。さらに、スマートコントラクトを使用することで、仲介者の必要が排除され、運用コストが大幅に削減されます。

ビットコインプロトコルは多くの年にわたりスマートコントラクトをサポートしていますが、イーサリアムの創設者で共同創設者のヴィタリック・ブテリンによって人気が高まりました。ただし、各ブロックチェーンはスマートコントラクトの実装方法が異なる場合があることに注意が必要です。

この記事では、イーサリアム仮想マシン(EVM)上で機能するスマートコントラクトに焦点を当てています。これは、イーサリアムブロックチェーンの重要な部分です。


では、彼らはどのように機能しますか?

簡単に言えば、スマートコントラクトは決定論的なプログラムとして機能します。特定の条件が満たされたときに特定のタスクを実行します。したがって、スマートコントラクトシステムは「もし...なら...」の機能に従うことがよくあります。しかし、用語とは裏腹に、スマートコントラクトは法的価値を持たず、賢くもありません。単に分散システム(ブロックチェーン)上で実行されるコードに過ぎません。

イーサリアムネットワーク上で、スマートコントラクトはユーザー(アドレス)が相互にやり取りする際に発生するブロックチェーンの操作を実行および管理します。スマートコントラクトでないアドレスは、外部所有アカウント(EOA)と呼ばれます。したがって、スマートコントラクトはコンピュータコードによって制御され、EOAはユーザーによって制御されます。

基本的に、イーサリアムのスマートコントラクトは、契約コードと2つの公開鍵で構成されています。最初の公開鍵は契約の作成者によって提供されます。もう一つの鍵は契約自体を表し、各スマートコントラクトに対してユニークなデジタル識別子として機能します。

スマートコントラクトの展開は、ブロックチェーンの取引を通じて行われます。外部所有アカウント(EOA)または他のスマートコントラクトによって呼び出されたときにのみアクティブ化できます。ただし、最初のトリガーは常にEOA(ユーザー)によって引き起こされます。


主な特徴

イーサリアムのスマートコントラクトは、以下のような特徴を持つことがよくあります:

分散型。スマートコントラクトは、イーサリアムネットワークの全ノードに複製され、分散されています。これは、中央集権的なサーバーに依存する他のソリューションとの主な違いの一つです。

決定論的。スマートコントラクトは、設計されたアクションのみを実行し、要件が満たされる限り実行します。さらに、誰が実行しても結果は常に同じになります。

自律的。スマートコントラクトは、自己実行可能なプログラムとして機能し、さまざまなタスクを自動化できます。ただし、ほとんどの場合、スマートコントラクトがトリガーされない限り、「スリープ」状態のままであり、アクションを実行しません。

不変。スマートコントラクトは、展開後に変更することはできません。特定の機能が以前に実装されている場合にのみ、「削除」できます。したがって、スマートコントラクトは改ざん不可能なコードを提供できると言えます。

カスタマイズ可能。展開前に、スマートコントラクトはさまざまな方法でコーディングできます。したがって、多くの種類の分散型アプリケーション(DApps)を作成するために使用できます。これは、イーサリアムがチューリング完全なブロックチェーンであるためです。

信頼のない。二者以上がスマートコントラクトを介して相互にやり取りでき、互いに知らず、信頼しなくても済みます。さらに、ブロックチェーン技術はデータの正確性を保証します。

透明性。スマートコントラクトは公開ブロックチェーンに基づいているため、そのソースコードは不変であるだけでなく、誰でも見ることができます。


スマートコントラクトを変更または削除できますか?

イーサリアムのスマートコントラクトは、展開後に新しい機能を追加することは不可能です。ただし、作成者がコードにSELFDESTRUCTという関数を含めると、将来的にスマートコントラクトを「削除」し、新しいものに置き換えることができます。一方で、事前にその関数がコードに含まれていない場合、削除することは不可能です。

注目すべきことに、スケーラブルなスマートコントラクトは、開発者に契約の不変性に関してより多くの柔軟性を提供します。スケーラブルなスマートコントラクトを作成する方法は多くあり、異なる複雑さの度合いがあります。

単純化された例として、スマートコントラクトがいくつかの小さな契約に分割されることを想像してみましょう。それらの一部は不変であるように設計されており、他のいくつかは「削除」機能が有効になっています。これは、コードの一部(スマートコントラクト)を削除して置き換えることができ、他の機能はそのまま保持されることを意味します。


利点と使用例

プログラム可能なコードとして、スマートコントラクトは高度にカスタマイズ可能であり、さまざまな方法で設計できるため、多くの種類のサービスやソリューションを提供します。

分散型で自己実行可能なプログラムとして、スマートコントラクトは透明性を高め、運用コストを削減することができます。実装に応じて、効率を高め、管理費用を削減することも可能です。

スマートコントラクトは、二者以上の間での資金の移転や交換を含む状況で特に役立ちます。

言い換えれば、スマートコントラクトは多様な使用例のために設計できます。例としては、トークン化された資産、投票システム、暗号通貨ウォレット、分散型取引所、ゲーム、モバイルアプリケーションの作成が含まれます。また、医療、慈善団体、サプライチェーン、ガバナンス、分散型金融(DeFi)などの分野に取り組む他のブロックチェーンソリューションと共に展開することもできます。


ERC-20

イーサリアムブロックチェーン上で発行されたトークンは、ERC-20という標準に従います。この標準は、イーサリアムに基づくすべてのトークンの基本的な機能を記述しています。そのため、これらのデジタル資産はしばしばERC-20トークンと呼ばれ、既存の暗号通貨の大部分を表しています。

多くのブロックチェーン企業やスタートアップは、イーサリアムネットワーク上でデジタルトークンを発行するためにスマートコントラクトを展開しました。発行後、これらの企業の大多数は、初期コインオファー(ICO)を通じてERC-20トークンを配布しました。ほとんどの場合、スマートコントラクトの使用により、資金の交換とトークンの配布が信頼性高く効率的に行われました。


制限

スマートコントラクトは、人間によって書かれたコンピュータコードで構成されています。これは多くのリスクを伴い、コードは脆弱性やバグの影響を受けます。理想的には、特に敏感な情報や大金を扱う場合、経験豊富なプログラマーによって書かれ、展開されるべきです。

さらに、中央集権的なシステムがスマートコントラクトが提供するほとんどのソリューションや機能を提供できると主張する人もいます。主な違いは、スマートコントラクトは中央集権的なサーバーではなく、分散型のP2Pネットワーク上で実行されるということです。そして、ブロックチェーンシステムに依存しているため、変更が不可能または非常に難しい傾向があります。

不変であることは、ある状況では素晴らしいことですが、他の状況では非常に悪いことです。たとえば、「DAO」という名の分散型自律組織(DAO)が2016年にハッキングされたとき、スマートコントラクトのコードの欠陥により、数百万のイーサ(ETH)が盗まれました。

スマートコントラクトが不変であったため、開発者はコードを修正することができませんでした。これが最終的にハードフォークにつながり、第二のイーサリアムチェーンが誕生しました。簡単に言うと、一つのチェーンが「ハッキングを取り消し」、資金を正当な所有者に返還しました(これは現在のイーサリアムブロックチェーンの一部です)。もう一つのチェーンは、ハッキングに干渉しないことを決定し、ブロックチェーン上で発生する事象は決して変更されるべきではないと述べました(このチェーンは現在、イーサリアムクラシックと呼ばれています)。

重要なのは、問題がイーサリアムブロックチェーンから生じたわけではないということです。むしろ、スマートコントラクトの実装が不適切であったために引き起こされました。

スマートコントラクトのもう一つの制限は、その法的地位が不確定であることに関連しています。ほとんどの国ではグレーゾーンであるだけでなく、スマートコントラクトは現在の法的枠組みには適していません。

たとえば、多くの契約では、両当事者が正しく特定され、18歳以上であることが求められます。ブロックチェーン技術によって提供される仮名性と仲介者の欠如は、これらの要件を脅かす可能性があります。この問題に対する潜在的な解決策があるにもかかわらず、スマートコントラクトの法的適用は実際の課題であり、特に国境を越えた分散型ネットワークに関しては難しいです。


批判

一部のブロックチェーン愛好者は、スマートコントラクトが間もなく私たちの商業および行政システムの大部分を置き換え、自動化するソリューションであると考えています。可能性はあるものの、これが標準になるにはまだ遠いと思われます。

スマートコントラクトは確かに興味深い技術です。しかし、分散型、決定論的、透明性があり、ある程度不変であるため、特定の状況では魅力が少なくなる可能性があります。

批判は、主にスマートコントラクトが多くの現実の問題に適した解決策ではないという事実に基づいています。実際、一部の組織は、サーバーに基づく従来のソリューションを使用する方が利益があると考えています。

スマートコントラクトと比較して、中央集権的なサーバーはメンテナンスが容易で安価であり、速度やネットワーク間の通信(相互運用性)の面で効率が高い傾向があります。


結論

スマートコントラクトが暗号通貨の世界で重要な影響を与え、ブロックチェーン空間を革命的に変えたことは間違いありません。最終的なユーザーがスマートコントラクトと直接やり取りしない場合でも、将来的には金融サービスからサプライチェーン管理まで、幅広いアプリケーションを支える可能性があります。

スマートコントラクトとブロックチェーンは、私たちの社会のほぼすべての分野を破壊する可能性を秘めています。しかし、これらの革命的な技術が大規模な採用に向けた多くの障害を克服できるかどうかは、時間が教えてくれるでしょう。