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