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