出典:ビットコインマガジン; コンピレーション:ファイブバーツ、ゴールデンファイナンス
最近、ロールアップはBTCのスケーリングの焦点となり、ライトニングネットワークから注目を浴びる最初の本当のものとなりました。ロールアップは、より広範な注目を集めるために、ライトニングネットワークのコア流動性制約に影響を受けない、あるいは制限されないオフチェーンの第2層となることを目指しています。つまり、最終ユーザーが事前に資金を割り当て(または「借り出す」)する必要があり、または中間のノードがチャネル残高を必要とすることで、送信者から受信者に支払い金額を全体的に流動させるために。
これらのシステムは最初、イーサリアムや他のチューリング完全システムで実行されていましたが、最近は基盤となるUTXOベースのブロックチェーン(例えばBTC)に移植することに重点が置かれています。本文では、現在BTC上で実装されている状況を議論するのではなく、BTCに直接的にZKPを検証する能力がない現状に依存する、理想的なロールアップの機能について議論します。
Rollの基本的な構造は以下の通りです:単一のアカウント(BTCではUTXOと呼ばれます)は、Rollupにおけるすべてのユーザーの残高を保持します。このUTXOには、MerkleツリーのMerkleルートとして存在する、Rollup内の現在のすべてのアカウントの残高を保証するコミットメントが含まれています。これらのすべてのアカウントは、公開鍵/秘密鍵ペアを使用して認証されています。そのため、オフチェーンの支出を行うためには、ユーザーはまだ一定の内容に秘密鍵で署名する必要があります。この構造のこの部分により、ユーザーはいつでも許可なしに出発でき、彼らのアカウントがMerkleツリーの一部であることをトランザクションの証明するだけで、運営業者の許可なしにRollupから一方的に退出することができます。
Rollupのオペレータは、取引にZKPを含める必要があります。これにより、オフチェーン取引の完了時にオンチェーンアカウント残高のMerkleルートが更新されます。このZKPがない場合、取引は無効になり、ブロックチェーンに含めることはできません。この証明により、オフチェーンアカウントのすべての変更がアカウント所有者の適切な承認を受けたものであり、オペレータがユーザーの資金を盗むために残高を悪意を持って更新しないこと、またはそれを他のユーザーに不正に再配分しないことが検証されます。
問題は、Merkle Treeのルートハッシュだけがオンチェーンに公開されている場合、ユーザーがそれを見てアクセスできるようにするには、いかにして彼らが自分たちのブランチをツリーに追加し、許可なしに自由に退出できるようにするかですか?01928374656574839201
適切な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上のロールアップ実装を実現し、ユーザーの一方的な引き出しを実現する場合、どのようなものになるでしょうか?
45.86K 人気度
5.95K 人気度
4.16K 人気度
1.72K 人気度
1.7K 人気度
ビットコインマガジン:ロールアップはどのようなジレンマに直面していますか?
出典:ビットコインマガジン; コンピレーション:ファイブバーツ、ゴールデンファイナンス
最近、ロールアップはBTCのスケーリングの焦点となり、ライトニングネットワークから注目を浴びる最初の本当のものとなりました。ロールアップは、より広範な注目を集めるために、ライトニングネットワークのコア流動性制約に影響を受けない、あるいは制限されないオフチェーンの第2層となることを目指しています。つまり、最終ユーザーが事前に資金を割り当て(または「借り出す」)する必要があり、または中間のノードがチャネル残高を必要とすることで、送信者から受信者に支払い金額を全体的に流動させるために。
これらのシステムは最初、イーサリアムや他のチューリング完全システムで実行されていましたが、最近は基盤となるUTXOベースのブロックチェーン(例えばBTC)に移植することに重点が置かれています。本文では、現在BTC上で実装されている状況を議論するのではなく、BTCに直接的にZKPを検証する能力がない現状に依存する、理想的なロールアップの機能について議論します。
Rollの基本的な構造は以下の通りです:単一のアカウント(BTCではUTXOと呼ばれます)は、Rollupにおけるすべてのユーザーの残高を保持します。このUTXOには、MerkleツリーのMerkleルートとして存在する、Rollup内の現在のすべてのアカウントの残高を保証するコミットメントが含まれています。これらのすべてのアカウントは、公開鍵/秘密鍵ペアを使用して認証されています。そのため、オフチェーンの支出を行うためには、ユーザーはまだ一定の内容に秘密鍵で署名する必要があります。この構造のこの部分により、ユーザーはいつでも許可なしに出発でき、彼らのアカウントがMerkleツリーの一部であることをトランザクションの証明するだけで、運営業者の許可なしにRollupから一方的に退出することができます。
Rollupのオペレータは、取引にZKPを含める必要があります。これにより、オフチェーン取引の完了時にオンチェーンアカウント残高のMerkleルートが更新されます。このZKPがない場合、取引は無効になり、ブロックチェーンに含めることはできません。この証明により、オフチェーンアカウントのすべての変更がアカウント所有者の適切な承認を受けたものであり、オペレータがユーザーの資金を盗むために残高を悪意を持って更新しないこと、またはそれを他のユーザーに不正に再配分しないことが検証されます。
問題は、Merkle Treeのルートハッシュだけがオンチェーンに公開されている場合、ユーザーがそれを見てアクセスできるようにするには、いかにして彼らが自分たちのブランチをツリーに追加し、許可なしに自由に退出できるようにするかですか?01928374656574839201
適切なロールアップ
適切な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上のロールアップ実装を実現し、ユーザーの一方的な引き出しを実現する場合、どのようなものになるでしょうか?