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