技術的な概要プルータス・アーキテクチャ

ここに来たからには、カルダノについて聞いたことがあるでしょう。しばらくここにいる人は、「スマートコントラクト」が何であるか知っているかもしれません。ここに、まだ多くの人に知られていないものがあります。Plutusです。4月にIOGのYouTuveチャンネルに公開されたビデオをもとに、Plutusとは何か、Cardanoのアーキテクチャにおけるその重要性について説明します。

Cardanoブロックチェーンプラットフォームの基盤は、2つの独立したレイヤーの上に構築されている。Cardano Settlement Layer(CSL)とCardano Computation Layer(CCL)です。PlutusはCCLを強化する様々なテクノロジーです。

  • Plutusは、DApps(分散型アプリケーション)の作成を促進するCardanoのスマートコントラクトプラットフォームの中核をなすものです。
  • Plutusは、今年非常に人気のあったNFT(non-fungible tokens)を可能にします。
  • Plutusは、Cardano上でネイティブアセットを起動する方法です。
  • 最後に、Plutusは任意のオンチェーン条件ロジックを可能にします:Excelスタイルの「if」文のプログラム性を想像してみてください、しかしCardanoブロックチェーン上で。

プルータスのプラットフォームコンポーネントの機能の中心には、EUTxOというものがあります

まず、「UTxO」とは「Unspent Transaction Output」の略で、ビットコインが開拓した会計の「キャッシュドロワー」モデルの名称です。このモデルでは、現金引き出しに異なる価値の紙幣を入れるように、さまざまな金額の価値がUTxOに格納されます。また、UTxOはCardanoブロックチェーン上の1つまたは複数のADAのラッパーと考えることもできる。

EUTxOの冒頭の「E」は「Extended(拡張)」を意味する。EUTxOは、Cardanoがオンチェーンプログラマビリティとスマートコントラクトを行う方法である。EUTxOには4つのコンポーネントがあります。コントラクト、レディーマー、データム、コンテキストの4つです。

**コントラクト:スマートコントラクトは、ブロックチェーン上に保存され、事前に設定された条件を満たしたときに実行されるプログラムです。UTxOを保持する鍵のようなものと考えることができます。また、スマートコントラクトは、バリデータ、または単なるプログラミングスクリプトと考えることもできます。

**Redeemer:**これは、ユーザーからスマートコントラクトに渡されるデータです。 単純なUTxOでは、redemerはUTxOの所有権の証明とコンテンツへのアクセスを提供する署名となり得る。償還者は、契約を解除するための鍵だと考えることができる。

**UTxOに関連づけられる情報の断片。UTxOの所有者やタイミング(UTxOの使用可能なタイミングを定義する)など、スクリプトの状態情報を保存するために使用される。Datumはスマートコントラクトのハードディスクと考えることができ、あらゆる種類のデータを保存することができる。

**コンテキスト:コンテキストとは、基本的に取引の概要やメタデータのことである。誰が取引に署名したのか、資金はどこに行くのか、といった情報を含むことができる。

EUTxOのこれら4つのコンポーネントにより、Plutusプラットフォームは、企業や開発者がCardano上で様々な分散型アプリケーション、金融商品、ゲームを開発することを可能にします。

Plutusプラットフォーム

Plutusプラットフォームは、開発者のコードから始まり、一連の最適化ステップを経て、最終的にチェーン(台帳api)に乗せられ、最終的にplutusコアエバリュエータによって分散的に実行・実行されます。

ソースコード

Plutusは、コードがブロックチェーンに到達する前、そしてユーザーが登場する前に、開発者のコンピュータ上でプログラミングコードから始まります。 この記事を書いている時点では、すべてのPlutusの契約は、Haskellプログラミング言語、またはHaskellのスーパーセットのいずれかで書かれています。紛らわしいことに、Plutus自体もプログラミング言語であり、Haskellを書く手間を省き、定型文を減らすためのHaskellのスーパーセットである。Plutusプラットフォームは、将来的に他の言語やドメイン固有の言語をサポートし、特定の用途を容易にするように設計されていますが、現時点では、PlutusとHaskellが唯一の選択肢です。

コンパイラ・パイプライン

開発者がI’sとT’sを交差させた後、HaskellスクリプトはPlutus IRに変換されます。Plutus IRはHaskellコードの “Intermediate Representation “である。このIRの状態は、まだ1sと0sのマシンコードではなく、Plutusが開発者のコードを最も効率的な1sと0sの出力に最適化する機会である。 Plutus IRは、Cardanoの開発にとって、AppleのiOSアプリ開発におけるLLVMや、プログラミング言語Rustのようなものです。

Plutus IRから、コードは型付きPlutusコアに変わります。これは、生の1と0の直前です。これは低レベルのレイヤーを提供し、開発者が1や0が着地する前に問題を簡単に発見できるようにします。

次はuntyped-Plutusコアです。ラムダ計算の変形で、純粋な論理でアプリを表現する方法です(wikipediaの記事は一番下のリンクを参照してください)。 このアプリのUntyped Plutusコア表現はブロックチェーン上で実行されるものです。

オンチェーンの取得

すべての最適化の後、コンパイルされたアプリは最終的にブロックチェーン上で「デプロイ」または「インジェクション」される準備が整いました。Cardanoでは、これを支援する他のPlutusアプリや、開発者用ツールキットがあります。

オフチェーンコード

あなたのコードがブロックチェーンに載ったら、トランザクション生成をサポートするために、別のPlutus/Haskellのコードを書く必要があります。アプリのこのオフチェーンコンポーネントは、redeemerやdatumといったものを正しく収集し、ブロックチェーン上に存在するコンパイル済みのコードと対話できるトランザクションを構築する部分である。

結論

コンパイルしたオンチェーンコードとオフチェーンコードで、あなたのDAppはユーザーとのインタラクションを促進する準備が整いました。このシリーズの次回は、Plutus Interactionsについて深く掘り下げていきます。

Related Links

  • Lambda calculus writeup wikipedia
  • Cardano Technical Briefing: Plutus by John Woods video

このような記事をメールで受け取る

プルータスのプラットフォームを使ってみてどうですか?また、どのような点でお困りですか?

Or leave comment
Share

No comments yet…

avatar
You can use Markdown
close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3分 24秒
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4分 3秒
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3分 48秒
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2分 16秒
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3分 14秒
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3分 19秒
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4分 59秒
    Darlington Kofa
0:00
/
~0:00