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