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