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