ステートフル・スマートコントラクト説明動画




アルゴランドのステートフル・スマートコントラクト


アルゴランドのスマートコントラクトは、ブロックチェーン上に格納され、特定の条件が満たされたときに自動的に実行される基本的なコードのラインです。


アルゴランドは、ステートフルとステートレスの両方のコントラクトを提供します。


ステートフル・スマートコントラクトは、アルゴランド・ブロックチェーン上に分散型アプリケーションを構築するためのバックボーンを形成します。


これらのスマートコントラクトは、オンチェーンのステート値へのアクセスを提供し、他のアルゴランド・レイヤー1の機能と組み合わせることで、アルゴランドのスケーラビリティ、パフォーマンス、および迅速なトランザクションのファイナリティを活用したダイナミックでユニークなアプリケーションを実装することができます。


ステートフル・スマートコントラクトは、トランザクション実行承認言語(TEAL)で書かれた小さなプログラムです。


これらのプログラムは、PyTEALライブラリを使用してPythonで記述することもできます。


ステートフル・スマートコントラクトが書かれると、アプリケーション作成トランザクションを使用してアルゴランド・ブロックチェーンに実装されます。


ステートフル・スマートコントラクトの主な機能は、アルゴランド・ブロックチェーン上のアプリケーションの状態をプログラムで読み取り、修正するためのメカニズムを提供することです。


アプリケーションの状態には、スマートコントラクトに関連付けられたグローバル状態と、スマートコントラクトと相互作用する個々のアカウントのためのローカル状態が含まれます。


例えば、慈善団体のアプリケーションは、寄付を受け入れる募金スマートコントラクトを作成することができます。


集められた合計金額はグローバル状態に保存され、各個人の寄付はそれぞれのアカウントのローカル状態に保存されます。

つまり、ユーザー1は5Algosを寄付し、ユーザー2は15Algosを寄付し、ユーザー3は10Algosを寄付します。


これでグローバルストレージ内の総資金は30Algosになりました。


個々の寄付金額は、各アカウントのローカル状態にも保存されます。


実装されると、スマートコントラクト・ロジックが動き、特定のアプリケーション・トランザクション・コールがスマート・コントラクトに発行されます。


どのアカウントでも、オプトインのアプリケーション・トランザクションを発行することで、ステートフル・スマートコントラクトにオプトインすることができます。


これは、アカウントがスマートコントラクトで実装されたアプリケーションに参加したいことを意味します。


スマートコントラクトを選択すると、アプリケーションが状態変数を書き込むためのアカウントのローカルストレージのスペースが確保されます。


アプリケーションへの呼び出しは、パラメータもサポートしています。


例えば、スマートコントラクトが投票アプリケーションを実装したとします。


アカウントが投票する候補者をスマートコントラクトのパラメータとして指定することができます。


例えば、ユーザ1が候補者Aに投票し、ユーザ2が候補者Bに投票するとします。


スマートコントラクト内のロジックは、パラメータを処理し、これらのアプリケーション・トランザクション呼び出しを承認するか拒否するかを決定します。


アプリケーション・トランザクションが拒否された場合、グローバルまたはローカルストレージへの変更も同様に拒否されます。


例えば、投票アプリケーションでは、ロジックは二重投票を防止することができます。


この場合、ユーザー1の投票は受け入れられます。


ユーザー2の投票は拒否されます。


ステートフル・スマートコントラクトへの呼び出しは、追加のステートフル・スマートコントラクトを参照することもできます。


これにより、ステートフル・スマートコントラクトは、ロジックの目的のために別のコントラクトのグローバル状態を素早く読み取ることができます。


例えば、あるコントラクトは、オフチェーンで実装された複雑な計算を含むマスターオラクル・コントラクトを参照することができます。


ステートフル・スマートコントラクトへの呼び出しは、アプリケーション・コール・トランザクショ ンを送信するアカウントと同様に、追加のアカウントを参照することもサポートします。


そしてスマートコントラクトは、これらのアカウントのローカルな状態を操作したり、読み取ったりすることができます。


ブロックチェーン・アプリケーションを構築するためにステートフル・スマートコントラクトを使用すると、非常に強力なものになります。


これらのコントラクトを他のアルゴランドの機能と組み合わせることで、アプリケーションはさらに大きな機能を提供することができます。


例えば、慈善団体のアプリケーションは、寄付と合計を追跡するために、慈善団体のスマートコントラクトへの呼び出しで支払いトランザクションをグループ化することができます。


ステートフル・スマートコントラクトは、アルゴランドのアセットでも使用できます。


このコントラクトは、ブロックチェーン上の任意のアセットの様々なプロパティとユーザーの残高を読み取ることができます。


例えば、第三者から発行された特別なトークンを持っている場合にのみ個人の参加を許可するスマートコントラクトがあるかもしれませんし、許可された投票アプリケーションに投票するなどの行為を行うために特別なトークンを使用することを要求するかもしれません。


アルゴランドのステートフル・スマートコントラクトの利点をまとめてみました。


オンチェーン・アプリケーション作成能力、グローバルな状態とユーザーのローカル値ごとに保存する能力、複雑なアプリケーションを実装するために、すべてのアルゴランド・レイヤー1の機能と組み合わせる能力。


今後追加される動画で、スマートコントラクトの 組み合わせについて、より多くのことが分かるようになります。


ありがとうございました。