# スマートコントラクト スマートコントラクトとは、2者間の合意の条件を処理し、その履行を実行するブロックチェーンベースのプログラムである。最も単純な構成要素に分解すると、スマートコントラクトは、「何か」が発生した場合に「何か」を行うというものです。 スマートコントラクトをブロックチェーンに導入することのメリットは、金融機関や法律機関といった従来のサードパーティを介さずに、契約を安全に遂行することができることです。その代わり、契約はブロックチェーンを運営する分散型コンピュータのネットワークによって管理されます。 これにより、スマートコントラクトの条件によって、相手が取引の約束を守るかどうかを信頼することなく、誰とでもトランザクションを行うことができます。 ## 条件付きのエスクロー XRP Ledger上のスマートコントラクトは、条件付きで保有するエスクローを通じて動作します。 ### エスクローを作成する 条件付きエスクローは、通常のエスクローと似ています。エスクローで資金を確保し、受取人が資金を利用できることを保証します。違いは、レジャー上の条件付きエスクローには`Condition`が付加されており、これが資金をロックする役割を担っていることです。レジャーは、対応する`Fulfillment`フィールドを持つ`EscrowFinish`トランザクションが送信されるまで、これらの資金を解放しません。`Condition`と`Fulfillment`フィールドは、エスクローの錠と鍵のようなものであると考えることができます。 [`EscrowCreate`](/ja/docs/references/protocol/transactions/types/escrowcreate)をご覧ください。 ### オラクルの確立 オラクルとは、スマートコントラクトを履行または無効化するために、現実世界のイベントを検証することができる中立的な第三者エージェントのことです。オラクルは、conditionとfulfillmentを生成し、conditionの条件が満たされるまでfulfillmentを秘密にすることで、条件付きエスクローを機能させるために不可欠です。 スマートコントラクトの文脈では、オラクルは現実世界のデータを読み取ることができるソフトウェアであることが大半でしょう。オラクルには、当事者間の契約条件がプログラムされ、conditionとfulfillmentの16進数値を生成することになります。 オラクルは、エスクロー作成者に条件となる16進数の値を与え、エスクローの初期設定を可能にします。 オラクルのプログラムが条件を満たしたことを検知した後、エスクローの受取人にfulfillmentの16進数値を渡します。この時点以降、オラクルはエスクローを終了させるなど、何も行いません。エスクローの受取人は、ほとんどの場合、エスクローを終了することになります。 [conditionとfulfillmentの生成](/ja/docs/tutorials/how-tos/use-specialized-payment-types/use-escrows/send-a-conditionally-held-escrow#1-generate-condition-and-fulfillment)をご覧ください。 ## 例 スマートコントラクトの用途は多岐にわたりますが、いくつかの用途を紹介します。 1. 住宅ローンなど、本来なら弁護士が必要な高額商品の支払いへの対応。 2. 商品の受け取りと同時に資金を届けるサプライチェーンマネジメント。 3. ソフトウェアで確認できる特定の種類の保険金請求の自動化。 4. 提供されたサービスに対する支払いの保証。