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