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