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