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