副題
Ethereum、EOS、Solana などの有名なチェーンはすべてアカウント モデルを使用しており、プロジェクトの 90% 以上がアカウント モデルを使用しているとさえ言えますが、UTXO モデルを使用しているのは一部の昔ながらのプロジェクトだけです。 BTC、DOGE、LTC など、そしてもちろん、レイヤー 2 で OP スキームを使用する FUEL などのいくつかの新しいプロジェクトでもこのモデルが使用されます。
副題
2. アカウントモデルとは何ですか
簡単に理解すると、銀行間の送金、Alipay、WeChat 送金などの銀行口座システムはすべてアカウント モデルに属します。栗をあげましょう。
Aが100、Bが100の場合
このとき、AさんはBさんに50元を送金します。
A -50 ,B + 50
システムでの表現は次のとおりです。
A 50 , B 150
それで彼らのバランスは
これは転送です。
もう一度、A がまだ 100 を持っており、1 元を 100 の新しい口座に送金したいとします。
このとき、Aさんは1元を100人に同時に送金する必要があります。
1回目の取引
A -1 、一人称 + 1
それで彼らのバランスは
A99、一人称1
2本目のペン
A -1、2人目+1
それで彼らのバランスは
A98、2人目1
3本目のペン
A -1、3人目+1
それで彼らのバランスは
A97、3人目1
......
等々
100人目
A -1、100人目+1
それで彼らのバランスは
A0、100人目1
理論的には、トランザクションの数が増えると、実行に必要な時間が長くなります。
副題
3.UTXOモデルとは何ですか
前述したように、多くの古い主流ブランドはUTXOを使用しており、このサークルの先祖であるビットコインもUTXOモデルを使用しています ちなみに、我が国が発行する法定デジタル通貨DCEPもUTXOモデルに基づいていますので、このモデルはきっと何かユニークなものがあるはずだ。
UTXO の正式名称は Unspent Transaction Output で、「未使用のトランザクション出力」を意味します。簡単に言えば、そのモデルは日常生活における現金システムに似ています。例:
Aさんは1元、10元、100元の3種類の財布(実際には財布)を持っています。
AさんはBさん、Cさん、Dさんにそれぞれ1元を渡したいと考えています。
A 方法は3つあります
第一の方法:Bさんに額面のお金1元を引き出す
2番目の方法: 額面10元をCに引き出し、9元を取り戻す
3番目の方法: 額面100元をDに引き出し、99元を取り戻す
これら 3 つの方法でトランザクションを完了できます。
チェーンに戻って、ここでのお金のすべての額面が、実際にはチェーン上の UTXO であると想像してください。具体的には、使用中の UTXO は転送されず、常に破壊され、再構築されます。たとえば、次のようになります。
A が 2 番目の方法を使用して C に送金すると、額面 10 元の UTXO は破棄され、システムは額面 1 元の UTXO と額面 9 元の UTXO を再印刷します。 。
3番目の方法も同様で、100元を破棄すると、額面1元のUTXOと額面99元のUTXOが印刷され、1元はDに、99元はDに渡されます。 Aに返されます。
これがUTXOとアカウントモデルの送金方法の違いであり、UTXOモデルは並行して送金することが可能であり、残高は分散型UTXOで存在するため、実際には各金種を同時に別の人に送金することが可能である。アカウントの一貫性の問題が発生せず、各 UTXO が個別に計算されるため、これは 1 つのトランザクションで同時に完了できます。
上記のアカウント モデルを比較していますが、各トランザクションは前のトランザクションの完了に依存する必要があり、パフォーマンスのギャップは想像できます。このようにして、中央銀行のデジタル通貨が UTXO モデルを使用している理由が理解できますが、そうでない場合、深センはどのようにして 1,000 万のデジタル人民元を 50,000 のウォレットに送金できるでしょうか?
上の例に戻ってみましょう。
A は 100 を持っており、100 の新しい口座に 1 元を送金したいと考えています。
額面100のUTXOを額面1元のUTXO 100個に分割し、1回の取引で100人に直接配布することができ、瞬時に完了します。
このウォレットアドレスにどれだけのお金があるかを知りたい場合は、UTXO残高の数を数えてそれらを合計する必要があります。
副題
4. アカウントモデルとUTXOのメリット・デメリット
アカウントモデルの利点:
契約はコードの形式でアカウントに保存され、アカウントは独自の状態を持ちます。このモデルはプログラム可能性が高く、開発者にとって理解しやすく、幅広いシナリオが可能です。
バッチトランザクションの方がコストが安くなります。マイニング プールがマイナーに料金を支払うことを想像してください。UTXO では、入力と出力のそれぞれに個別の監視スクリプトまたはロック スクリプトが必要なため、トランザクション自体が非常に大きくなり、署名の検証とトランザクション ストレージがチェーン上の貴重なリソースを消費します。アカウント モデルでは、契約を通じてコストを大幅に削減できます。
アカウントモデルの欠点:
アカウント モデルのトランザクション間には依存関係がないため、リプレイの問題を解決する必要があります。イーサリアムはそれをどのように解決しますか? イーサリアムが独自の Nonce 値メソッドを使用していることはわかっています。各トランザクション Tx には Nonce フィールドがあります。ユーザーごとに、この Nonce を繰り返すことはできないため、リプレイ攻撃を回避できます。
ライトニングネットワーク/雷電ネットワーク、プラズマなどの実現には、ユーザーは証明のためのより複雑なProof証明機構を必要とし、サブチェーンからメインチェーンへの状態移行にはより複雑なプロトコルが必要となります。
UTXO の利点:
計算はオフチェーンで行われ、トランザクション自体が結果であり証明でもあります。ノードは検証のみを行う必要があり、トランザクションに追加の計算は必要なく、追加の状態ストレージも必要ありません。トランザクション自体の出力UTXOの計算はウォレット内で完結するため、トランザクションの計算負担は全てウォレット側で負担され、チェーンの負担がある程度軽減されます。
Coinbase トランザクションを除き、トランザクションの入力は常に UTXO の背後でリンクされます。トランザクションは再実行できず、トランザクションの順序と依存関係を検証するのが簡単で、トランザクションが消費されたかどうかを証明するのも簡単です。
UTXO モデルはステートレスであり、同時処理が容易です。
P 2 SH タイプのトランザクションの場合、プライバシーが向上します。トランザクションの入力は相互に関連しておらず、CoinJoin などのテクノロジーを使用して、ある程度のプライバシーを高めることができます。
UTXO の欠点:
入力が増えると、監視スクリプトの数も増加します。署名自体は、より多くの CPU とストレージ容量を消費します。
副題
5. アカウントモデルとUTXOの簡単な違いは何ですか
勘定残高
口座モデル: 口座にいくらあるのかをシンプルかつ明確な方法で確認できます。
UTXO モデル: アドレスの下にある UTXO の数を数え、それらを合計した結果が残高となります。
トランザクション数が急激に増加した場合
アカウントモデル: ますます難しくなるでしょう。
UTXO モデル: 高い同時実行性を当然サポートします。
スマートコントラクト/開発者の観点から
アカウントモデルは開発者のロジック習慣に準拠しており、ロジックを比較的簡単に作成できます。
