|
| 1 | +[先週の記事][policy08]では、[アンカーアウトプット][topic anchor outputs]と |
| 2 | +[CPFP carve out][topic cpfp carve out]について説明しました。 |
| 3 | +これにより、どちらのチャネル参加者も、協力することなく共有されたコミットメントトランザクションの手数料を |
| 4 | +引き上げることができます。このアプローチには、まだいくつかの欠点があります。 |
| 5 | +アンカーアウトプットを作成するためにチャネル資金が拘束され、 |
| 6 | +コミットメントトランザクションの手数料率は、mempoolの最小手数料率を満たすことを保証するために、 |
| 7 | +通常過大に支払われ、CPFP carve outでは追加の子孫は1つしか認められません。 |
| 8 | +アンカーアウトプットでは、[Coinjoin][topic coinjoin]やマルチパーティコントラクトプロトコルなど、 |
| 9 | +2人よりも多い参加者間で共有されるトランザクションの手数料の引き上げを保証することはできません。 |
| 10 | +この記事では、これらの制限やその他の制限に対処するための現在の取り組みについて説明します。 |
| 11 | + |
| 12 | +[パッケージリレー][topic package relay]には、トランザクショングループの転送と検証を可能にする |
| 13 | +P2Pプロトコルとポリシーの変更が含まれています。 |
| 14 | +これは、コミットメントトランザクションがmempoolの最小手数料率を満たしていない場合でも、 |
| 15 | +子によるコミットメントトランザクションの手数料の引き上げを可能にします。 |
| 16 | +さらに、_パッケージRBF_ は、子トランザクションによる |
| 17 | +競合する親トランザクションの[置換][topic rbf]のための手数料の引き上げを可能にします。 |
| 18 | +パッケージリレーは、ベースプロトコルレイヤーにおける一般的な制限を取り除くように設計されています。 |
| 19 | +しかし、共有トランザクションの手数料の引き上げにおけるその有用性から、 |
| 20 | +特定のユースケースにおける[Pinning][topic transaction pinning]を排除するための多くの取り組みも生まれています。 |
| 21 | +たとえば、パッケージRBFは、コミットメントトランザクションがそれぞれの手数料引き上げの子トランザクションと一緒にブロードキャストされる際に、 |
| 22 | +相互に置換できるため、各コミットメントトランザクションに複数のアンカーアウトプットは必要なくなります。 |
| 23 | + |
| 24 | +注意すべき点は、既存のRBFルールでは、置換トランザクションには、 |
| 25 | +置換されるすべてのトランザクションによって支払われる合計手数料よりも高い手数料を支払う必要があるという点です。 |
| 26 | +このルールは、置換の繰り返しによるDoSを防ぐのに役立ちますが、 |
| 27 | +悪意あるユーザーが、低手数料率であるものの手数料額は高い子トランザクションをアタッチすることで、 |
| 28 | +トランザクションを置換する際のコストを増加させることを可能にします。 |
| 29 | +これは、高手数料率パッケージによるトランザクションの置換を不当に阻止することで、 |
| 30 | +トランザクションがマイニングされるのを妨げるものであり、よく「ルール3Pinning」と呼ばれています。 |
| 31 | + |
| 32 | +開発者はまた、署名済みトランザクションに手数料を追加する全く異なる方法を提案しています。 |
| 33 | +たとえば、`SIGHASH_ANYONECANPAY | SIGHASH_ALL`を使用してトランザクションのインプットに署名することで、 |
| 34 | +トランザクションブロードキャスターは、アウトプットを変更することなく、トランザクションにインプットを追加して手数料を提供できます。 |
| 35 | +しかしながら、RBFには置換トランザクションがより高い「マイニングスコア」を持つこと(つまり、より速くブロックに選択される)を |
| 36 | +要求するルールがないため、攻撃者は低手数料率の祖先に邪魔される置換トランザクションを作成することで、 |
| 37 | +この種のトランザクションをPinning可能です。 |
| 38 | +トランザクションおよびトランザクションパッケージのマイニングスコアの正確な評価を複雑にしているのは、 |
| 39 | +既存の祖先と子孫の制限が、この計算の計算量を制限するには不十分であることです。 |
| 40 | +接続されているトランザクションは、トランザクションがブロックに選択される順序に影響を与える可能性があります。 |
| 41 | +_クラスター_ とよばれる完全に接続されたコンポーネントは、現在の祖先と子孫の制限があれば、 |
| 42 | +任意のサイズにすることができます。 |
| 43 | + |
| 44 | +一部のmempoolの欠陥とRBFのPinning攻撃に対処するための長期的な解決策は、 |
| 45 | +[mempoolのデータ構造を再構築して][mempool clustering]、 |
| 46 | +祖先と子孫のセットだけでなくクラスターを追跡することです。これらのクラスターのサイズは制限されます。 |
| 47 | +クラスターの制限により、ユーザーが未承認のUTXOを使用できる方法が制限されますが、 |
| 48 | +祖先スコアベースのマイニングアルゴリズムを使用してmempool全体を線形化し、 |
| 49 | +ブロックテンプレートを極めて迅速に構築し、置換トランザクションのマイニングスコアが |
| 50 | +置換されるトランザクションよりも高いという要件を追加することは可能になります。 |
| 51 | + |
| 52 | +それでも、トランザクションリレーの幅広いニーズと期待に応えるための単一のポリシーセットは存在しない可能性があります。 |
| 53 | +たとえば、バッチ処理された支払いは、多数の未承認の子孫を必要とするかもしれませんが、 |
| 54 | +これは総手数料を通じて共有トランザクションのパッケージRBFをPinningする余地を残します。 |
| 55 | +[v3トランザクションリレーポリシー][topic v3 transaction relay]の提案は、 |
| 56 | +コントラクトプロトコルがより制限的なパッケージ制限のセットをオプトインできるようにするために開発されました。 |
| 57 | +v3トランザクションは、サイズ2(親1つ子1つ)のパッケージのみを許可し、子のweightを制限します。 |
| 58 | +これらの制限は、総手数料を通じたRBF Pinningを緩和し、 |
| 59 | +mempoolの再構築を必要とせずにクラスターmempoolのメリットの一部を提供します。 |
| 60 | + |
| 61 | +[エフェメラルアンカー][topic ephemeral anchors]は、v3トランザクションとパッケージリレーの特性をベースに、 |
| 62 | +アンカーアウトプットをさらに改善するための提案です。これは、手数料ゼロのv3トランザクションに属するアンカーアウトプットが、 |
| 63 | +手数料を引き上げる子トランザクションによって使用される場合に限り、[ダスト制限][topic uneconomical outputs]から免除されます。 |
| 64 | +手数料ゼロのトランザクションは、正確に1つの子トランザクションによって手数料を引き上げる必要があるため |
| 65 | +(そうしないと、マイナーはそれをブロックに含めるインセンティブを得られません)、 |
| 66 | +このアンカーアウトプットは「エフェメラル」であり、UTXOセットの一部にはなりません。 |
| 67 | +エフェメラルアンカーの提案により、チャネルクローズトランザクションの手数料供給メカニズムとして |
| 68 | +[CPFP][topic cpfp]を使用した[LN symmetry][topic eltoo]が実現可能になります。 |
| 69 | +また、このメカニズムは、3人以上の参加者で共有されるトランザクションにも利用可能です。 |
| 70 | +開発者は、[bitcoin-inquisition][bitcoin inquisition repo]を使用してエフェメラルアンカーをデプロイし、 |
| 71 | +[signet][topic signet]上でこれらのマルチレイヤーの変更を構築してテストするためのソフトフォークを提案しています。 |
| 72 | + |
| 73 | +この記事で強調されたPinningの問題は、昨年、メーリングリストやプルリクエスト、 |
| 74 | +ソーシャルメディア、直接の会議を通じて[RBFポリシーを改善するための豊富な議論や提案][2022 rbf]を生み出しました。 |
| 75 | +開発者は、小さな修正から完全な刷新に至るまで、さまざまな解決策を提案し、実装しました。 |
| 76 | +`-mempoolfullrbf`オプションは、Pinningの懸念とBIP125実装の不一致に対処することを意図したもので、 |
| 77 | +トランザクションリレーポリシーにおけるコラボレーションの難しさと重要性を浮き彫りにしました。 |
| 78 | +1年前にbitcoin-devメーリングリストで会話を始めるなど、一般的な手段を使って |
| 79 | +コミュニティを巻き込もうとする真摯な努力がされましたが、 |
| 80 | +既存のコミュニケーションや意思決定の方法が意図した結果を生んでおらず、改善が必要であることは明らかでした。 |
| 81 | + |
| 82 | +非中央集権的な意思決定は困難なプロセスですが、Bitcoinのトランザクションリレーネットワークを利用する |
| 83 | +プロトコルやアプリケーションの多様なエコシステムをサポートするためには必要です。 |
| 84 | +来週は、このシリーズの最終回で、読者の皆さんにこのプロセスへの参加と改善を奨励していただきたいと考えています。 |
| 85 | + |
| 86 | +[mempool clustering]: https://github.com/bitcoin/bitcoin/issues/27677 |
| 87 | +[policy08]: /ja/newsletters/2023/07/05/#承認を待つ-8-インターフェースとしてのポリシー |
| 88 | +[2022 rbf]: /ja/newsletters/2022/12/21/#rbf |
0 commit comments