イーサリアム: スマートコントラクトはどのように機能するのでしょうか?

スマート コントラクトは、イーサリアムを成功に導いた主な機能です。 

スマートコントラクトとは何か、またその目的は何ですか

ビットコインプロトコルは、次のような可能性を提供していません。 本当に複雑なスマートコントラクトを作成する、基本的にトランザクションを可能にすることのみを目的として設計されているためです。 

対照的に、ビットコインの6年後に誕生したイーサリアムは、基本的には最初から次のようなことができるネットワークとして設計されました。 スマートコントラクトのホスティングと実行

2014年、イーサリアムの共同創設者 Vitalik Buterin に明示的に書いた ホワイトペーパー 彼が設計していたネットワークは スマートコントラクトに基づく次世代プラットフォーム、ブロックチェーン技術に基づくビットコインの代替アプリケーションには、カスタム通貨や金融商品、代替不可能な資産、より複雑なアプリケーションを表すデジタル資産の使用も含まれていると述べました。 

特に後者、つまりスマートコントラクトは、任意のルールを実装するコードによるデジタル資産の直接制御を伴うアプリケーション、またはブロックチェーンに基づく分散型自律組織、いわゆる DAO.  

ヴィタリックは次のように書いています。 

「イーサリアムが提供しようとしているのは、任意の状態遷移関数をエンコードするために使用できる「コントラクト」の作成に使用できるチューリング完全プログラミング言語が組み込まれたブロックチェーンであり、これによりユーザーは上記のシステムのいずれかを作成できるようになります– 同様に、私たちがまだ想像していない他の多くのことも – 数行のコードでロジックを記述するだけです。」

したがって、イーサリアム上のスマート コントラクトは、次のことが可能なコード行です。 命令の自動実行をプログラムする ネットワークによって、 特定の条件が満たされたとき、仲介業者に執行を委託する必要はありません。

実際、ブテリン自身は「契約」という用語を引用符で囲んでいます。なぜなら、契約は当事者間の実際の契約ではなく、 分散型によって実行されるコンピューター プログラム ネットワーク。 

したがって、一般的な観点から見ると、その操作はそれほど複雑ではありません。 

スマート契約
スマートコントラクトは、そこに含まれる条件が検証されると実行されます。

イーサリアムブロックチェーン上にスマートコントラクトを展開する

まず第一に、XNUMX 人以上の開発者が適切なコード行を記述してスマート コントラクトを作成する必要があることは明らかです。 それをイーサリアムネットワークに送信します。 

技術的に言えば、イーサリアム ブロックチェーン上で公開するとは、ネットワーク内のすべてのノードがそれを受信して​​実行することを意味します。 公開されると、その中のすべての命令は常にすべてのノードによってまったく同じ方法で実行されます。 

したがって、その出版だけでなく、 命令の実行は不可逆的です ブロックチェーン上で公開されると。 

したがって、本当に重要なのは、そこに含まれる指示 (最も多様である可能性があります) と、それを使用する人の数です。 実際、スマートコントラクトの命令が実際に実行されるためには、 それらを呼び出す XNUMX つ以上のトランザクション

また、これらの命令には通常、データやトークンなどのリソースの使用が含まれるため、これらの命令を実際に実行するには、 必要に応じて設定されたすべての条件が満たされる必要があります。 

このデータは、いわゆるオラクルのおかげで外部から取得される場合もあれば、単にブロックチェーン上のトランザクションから取得される場合もあります。 

通常、スマート コントラクトに含まれる命令の実行をトリガーするトランザクション の支払いが含まれます ETHでの手数料、そして多くの場合、実際に実行をトリガーするには、スマート コントラクト自体または他のスマート コントラクトに固有のトークンの支払いまたは送信も必要になります。 

技術的には、スマート コントラクトは、 エテリアムブロック鎖、中央エンティティではなくネットワークによって「制御」されます。 ETH またはトークンを保管したり、 ネットワーク上でトランザクションを自律的に送信します。

コード、より一般的には dApps を操作する方法

ユーザーは、トランザクションを送信することでスマート コントラクトと対話できます。 コード内で定義された関数の XNUMX つをトリガーします。 

したがって、イーサリアム上のスマート コントラクトの機能は一般に非常に単純です。特定のタイプのトランザクションをスマート コントラクトに送信するだけで、これによって、呼び出されるスマート コントラクトの関数に含まれるすべての命令のノードによる実行がトリガーされます。トランザクション自体。 

明らかに、呼び出される関数にどの命令が含まれているかに応じて、非常に異なる結果が生成される可能性があり、スマート コントラクトごとに異なるだけでなく、関数ごとにも異なります。 

したがって、スマート コントラクトの膨大な複雑さは、まさに個々のスマート コントラクトの動作に由来するものであり、一般にイーサリアム ネットワークがスマート コントラクトをサポートおよび実行するという事実に由来するものではありません。 さらに、ネットワーク上のすべての種類のスマート コントラクトが実際にどのように機能するかをリストすることは絶対に不可能です。 


出典: https://en.cryptonomist.ch/2022/06/11/ethereum-smart-contracts-3/