Roll の基本構造は次のとおりです:単一のアカウント(BTCではUTXO)が、Rollup内のすべてのユーザーの残高を保存します。このUTXOには、MerkleツリーのMerkleルートという形式で存在するコミットメントが含まれており、Rollup内のすべての現在のアカウントの残高を保持しています。これらのすべてのアカウントは、公開鍵/秘密鍵ペアを使用して認証されており、したがってオフチェーン支出を行うためには、ユーザーは引き続き秘密鍵で特定の内容に署名する必要があります。この構造のこの部分により、ユーザーはいつでも許可なしにRollupを離れることができます。アカウントがMerkleツリーの一部であることを証明する取引を作成するだけで、彼らは運営会社の許可なしにRollupから一方的に退出することができます。
ビットコインマガジン:ロールアップはどのようなジレンマに直面していますか?
出典:ビットコインマガジン; コンピレーション:ファイブバーツ、ゴールデンファイナンス
Rollupsは、最近BTCのスケーリングの焦点となっており、ライトニングネットワークから「抜きん出た存在」となり、より広い注目を集めています。Rollupsは、ライトニングネットワークの中核である流動性の制約や制限から独立したオフチェーンの第2層として機能することを目的としており、最終的なユーザーが事前に資金を割り当て(または「借り出し」)なければお金を受け取ることができず、また、中間ルーティングノードは送信者から受信者までの支払い金額のフローを促進するためにチャネル残高が必要になります。
これらのシステムは元々、イーサリアムや他のチューリング完全なシステムで実行されていましたが、最近はUTXOベースのブロックチェーン(例えばBTC)に移植することに重点が置かれています。本文では、現在BTC上で実装されている状況については議論せず、BTCが現在サポートしていない直接的にZKP(ゼロ知識証明)をBTC上で検証する能力に依存する理想的なRollupの機能について議論します。
Roll の基本構造は次のとおりです:単一のアカウント(BTCではUTXO)が、Rollup内のすべてのユーザーの残高を保存します。このUTXOには、MerkleツリーのMerkleルートという形式で存在するコミットメントが含まれており、Rollup内のすべての現在のアカウントの残高を保持しています。これらのすべてのアカウントは、公開鍵/秘密鍵ペアを使用して認証されており、したがってオフチェーン支出を行うためには、ユーザーは引き続き秘密鍵で特定の内容に署名する必要があります。この構造のこの部分により、ユーザーはいつでも許可なしにRollupを離れることができます。アカウントがMerkleツリーの一部であることを証明する取引を作成するだけで、彼らは運営会社の許可なしにRollupから一方的に退出することができます。
Rollupオペレーターは、オンチェーンの口座残高のMerkleルートをオフチェーン取引の完了時に更新するために、トランザクションにZKPを含める必要があります。このZKPがない場合、トランザクションは無効になり、ブロックチェーンに含めることはできません。この証明により、オフチェーンアカウントのすべての変更がアカウント保有者の適切な認可を受けているか、オペレーターが資金を盗むために残高を悪意で更新したり、不正に他のユーザーに再割り当てしたりしていないかを人々が検証することができます。
問題は、Merkleツリーのルートだけがオンチェーンに公開されている場合、ユーザーはそれを見ることができ、アクセスすることができますが、彼らがいつでも許可なしに退出するためにブランチをツリーに配置する方法は何ですか?
適切なロールアップ
適切なRollupの中で、新しいオフチェーン取引が確認され、Rollupアカウントの状態が変化するたびに、情報は直接ブロックチェーンに挿入されます。木全体ではなく、木を再構築するために必要な情報です。シンプルな実装では、Rollupに存在するすべてのアカウントの要約には残高が含まれ、アカウントは単にRollupの取引が更新される際に追加されます。
より高度な実装では、残高の差分を使用します。これは、更新プロセス中にどのアカウントが資金を増やしたり減らしたりしたかを要約するものです。これにより、各Rollupの更新には、発生したアカウント残高の変更のみが含まれます。その後、ユーザーは単純にチェーンをスキャンし、Rollupの先頭から「計算」して現在のアカウント残高の状態を復元できます。これにより、彼らは現在の残高のMerkle Treeを再構築することができます。
これにより、多額の費用とブロックスペース(お金を節約できる)が節約され、同時にユーザーが片方向の退出に必要な情報にアクセスできることを保証することができます。ロールアップルールにより、これらのデータをユーザーに提供される公式なロールアップに含めることが求められます。つまり、アカウントの要約またはアカウントの差異を含まない取引は、無効な取引と見なされます。
有効期限
ユーザーの引き出しデータの利用可能性の問題を処理する別の方法は、データをブロックチェーンの外の他の場所に配置することです。これには微妙な問題が生じ、rollup は引き続きデータが他の場所で利用可能であることを確実にする必要があります。従来、他のブロックチェーンがこの目的で使用され、rollup などのシステムのデータ利用可能性層として特に設計されています。
これは同じくらい強力なセキュリティ保護のジレンマを引き起こします。データが直接BTCブロックチェーンに公開される場合、コンセンサスルールによって絶対に正しいことが保証されます。しかし、外部システムに公開される場合、最善の場合はSPVプルーフを検証することができます。つまり、データが別のシステムに公開されたことが確認されました。
これは、他のオンチェーンの証明にデータが存在することを検証する必要があり、最終的にはオラクルマシンの問題です。BTCのブロックチェーンは、自分自身のブロックチェーンで起こったこと以外のことを完全に検証することはできませんが、最善の方法はZKPを検証することです。しかし、ZKPは、ロールアップデータを含むブロックが生成された後に本当に公開されたかどうかを検証することはできません。外部情報が本当にすべての人に公開されているかどうかを検証することはできません。
これにより、データの保留攻撃が可能になりました。つまり、公開データに対する約束を作成し、それをロールアップの推進に使用しますが、実際にはデータは利用できません。これにより、ユーザーは資金を引き出すことができません。唯一の真の解決策は、BTC以外のシステムの価値とインセンティブ構造に完全に依存することです。
ジレンマ
これはロールアップにジレンマをもたらしました。データ可用性の問題が関わるとき、基本的にはデータをBTCブロックチェーンに公開するか、他の場所に公開するかの二者択一が存在します。この選択は、ロールアップのセキュリティ、主権、およびスケーラビリティに重大な影響を与えます。
一方、BTCブロックチェーンをデータの利用可能性レイヤーとして使用すると、rollupの拡張性には物理的な上限が設定されます。ブロックスペースは限られており、これによりrollupの数とオフチェーンで処理できるトランザクションの合計に制限が設けられます。rollupの更新ごとに、直近の更新以来残高に変化があったアカウント数に比例したブロックスペースが必要です。情報理論ではデータを一定の程度まで圧縮することしか許可されておらず、これ以上の拡張可能性はありません。
一方、データ可用性を実現するために異なるレイヤーを使用することで、拡張性の利点の硬い上限を取り除きますが、新しいセキュリティと主権の問題ももたらします。BTCを使用してデータの利用可能性を実現するRollupでは、ユーザーが取り出す必要があるデータが自動的にブロックチェーンに公開されていない場合、Rollupの状態は変化しません。Validiumsを使用すると、この保証は完全に外部システムの使用による欺瞞やデータの隠蔽に対する能力に依存します。
現在、外部データ可用性システム上の任意のブロック生産者は、ブロックを実際にブロードキャストするのではなく、ブロックを生産することでBTCRollupユーザーの資金を乗っ取ることができるようになり、データを利用できるようにします。
では、もしBTCで理想的なRollup実装を実現し、一方的なユーザー引き出しが本当に実現された場合、どのようなものになるでしょうか?