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