ブログ > 2021 > March > Cardanoの拡張UTXO - マルチ資産とスマートコントラクトをサポートするために構築された会計モデル(Part 2)

Cardanoの拡張UTXO - マルチ資産とスマートコントラクトをサポートするために構築された会計モデル(Part 2)

CardanoのEUTXO会計モデルを取り上げたブログ後編では、トランザクションコンポーネントやUTXOセットといった技術面に目を向けるとともに、Cardano EUTXOモデルの原理を掘り下げます

2021年 3月 12日 Fernando Sanchez 6 分で読めます

Cardanoの拡張UTXO - マルチ資産とスマートコントラクトをサポートするために構築された会計モデル(Part 2)

昨日は、Cardanoが採用する拡張UTXOモデルの概要を紹介し、これがビットコインやイーサリアムが取るアプローチといかに異なっているかを説明しました。では次に、トランザクションを構成するパーツであるインプットとアウトプットについて、少し詳しく見てみましょう。

トランザクションについて知っておくべきこと:アウトプットとインプット

「トランザクション」というと、通常金融関連をイメージします。このような意味はビットコインには当てはまるでしょうが(ビットコインのブロックチェーンはピア間の資金移転に使用されるため)、他の多くのブロックチェーン(Cardanoを含む)はもっと幅広い多様性を持ちます。こうしたケースでは、「トランザクション」という用語は非常に多くのニュアンスを帯びます。トランザクションと聞いて価値の移転を考える人もいるでしょう。

ブロックチェーン環境では、各トランザクションには1つ以上のインプット、そして、1つ以上のアウトプットを含むことができます。トランザクションの仕組み、そして、それがUTXOといかに関連するかを理解したければ、インプットおよびアウトプットというコンセプトを理解する必要があります。抽象的に言えば、トランザクションは以前のアウトプットを開錠し、新しいアウトプットを作ることであると考えられます。

トランザクションアウトプット

トランザクションアウトプットには、1つのアドレス(錠にあたるもの)と値が含まれます。この比喩で例えるなら、アドレスに紐づいた署名は、アウトプットを開錠するための鍵にあたります。開錠されると、アウトプットはインプットとして使用することができます。新しいトランザクションは以前のトランザクションのアウトプットを使用し、将来のトランザクションで消費することのできる新たなアウトプットを生成します。各UTXOは1回だけ、全体としてのみ使用できます。各アウトプットは1つのインプットとしてのみ使用できます。

トランザクションインプット

トランザクションインプットは以前のトランザクションのアウトプットです。トランザクションインプットにはポインターと、開錠用の鍵として機能する暗号化署名が含まれます。ポインターは以前のトランザクションアウトプットを指し示し、鍵がこのアウトプットを開錠します。アウトプットがインプットにより開錠されると、ブロックチェーンは開錠されたアウトプットを「使用済み」とマークします。所与のトランザクションにより作成された新たなアウトプットは、次に新たなインプットにより指定され、そうしてチェーンは続いていきます。これらの新たなアウトプット(未開錠、すなわち使用されていないもの)がUTXOです。未使用アウトプットとは単純に、いまだに使用されていないアウトプットのことです

UTXOの仕組みのまとめ

UTXO会計モデルでは、トランザクションは以前のトランザクションからの未使用アウトプットを消費し、将来のトランザクションでインプットとして使用できる新しいアウトプットを生成します。

ユーザーのウォレットはこれらのUTXOを管理し、ユーザーが所有しているUTXOを使用したトランザクションを開始します。各ブロックチェーンノードは全UTXOのサブセットの記録を常時保管しています。これを「UTXOセット」と呼びます。技術用語で言うところのchainstateであり、各ノードのデータディレクトリーに格納されます。新しいブロックがチェーンに追加されると、chainstateは自動的に更新されます。この新ブロックには最新のトランザクションリスト(もちろん使用されたUTXOやchainstateの最終更新時以降に作成された新UTXOも)が含まれます。各ノードはchainstateの完全なコピーを維持します。

EUTXO:Cardanoの選択を支える原理

ビットコインの「vanilla」UTXO会計モデルはCardanoには適しません。Cardanoは支払いを処理するより多くを実行するために設計されています。特に、Alonzo期で登場するスマートコントラクト機能のための、プログラミング表現力向上の必要性は、新たな(「拡張型の」)ソリューションを要求します。

「基本的」なUTXOモデルは、プログラム可能な表現力において限界があります。イーサリアムのアカウントベースモデルはこの特定の問題にアカウントベースの台帳および関連するコントラクトアカウントで対処しています。しかしそうすることにより、コントラクトコードのセマンティクスはかなり複雑になり、非常に高くつく危険性を持つコードの脆弱性を避けるために、コントラクトの作成者がセマンティクスのニュアンスを完全に習得せざるを得ないという好ましからざる状況を招いています。。

「拡張」UTXOソリューションは、既存のUTXOモデルが提供できない2つの追加的機能を必要とします。

1 - コントラクトステータスの維持を可能にすること。

2 - 同じコントラクトコードをトランザクション全体のシークエンスで使用できるようにすること。 私たちはこれを「継続性」と呼びます。

EUTXOモデルが持つパワフルな特徴は、有効なトランザクションに必要な手数料が、送信前に正確に予測できることです。これは、アカウントベースのモデルには見られない、ユニークな特徴です。

EUTXOモデルはどのようにUTXOを拡張するのでしょう

これは、アウトプットにカスタムデータを(値に加えて)追加することにより、また、より多くの「錠」と「鍵」がインプットをトランザクションに使用するために開錠できる条件を決定できるようにすることで達成されます。言い換えると、単に錠の公開鍵(ハッシュ)と、それに対応する「鍵」として署名を持つ代わりに、EUTXOではスクリプト形式による任意のロジックが可能となります。この任意ロジックはトランザクションとデータを調査し、トランザクションにインプットを使用させるか否かを判断します。

結論:EUTXOモデルを革新的で実践的にしているものとは

Cardanoの台帳モデルはモデルを拡張し、UTXOモデルの主要な利点を損なうことなくマルチ資産およびスマートコントラクトをサポートできるようにします。私たちの革新的な研究は、他のUTXO台帳でサポートされている以上の機能性を可能とし、Cardanoを次世代ブロックチェーン界において他に類を見ないコンペティターとしています。

Fernando Sanchez

Fernando Sanchez

Senior Technical Writer

Marketing and Communications