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