Slide 1

Slide 1 text

v3トランザクションリレー 


Slide 2

Slide 2 text

1 v3トランザクションリレー
 BIP-431 :Topologically Restricted Until Confirmation 
 https://github.com/bitcoin/bips/blob/master/bip-0431.mediawiki 
 
 トランザクションが承認されるまでの間に、新たなトポロジー制限を加えることで、 
 Pinning攻撃を緩和する提案
 
 https://techmedia-think.hatenablog.com/entry/2024/02/25/113939 


Slide 3

Slide 3 text

2 mempoolの競合トランザクションの扱い
 mempool 
 Tx A 
 Tx A’ 
 Tx内の一部のインプットが重複する競合Txに対するmempoolの動作 
 
 経済的なインセンティブが高い 
 マイナーにより多くの手数料を与えるTxを選択する 
 ● RBF(Replace by Fee)によるTxの置換 
 より高い手数料を支払うことでTxを置換する 
 https://goblockchain.network/2021/07/rbf/ 
 
 
 【Pinning 攻撃】 
 
 RBFの置換ポリシーには、インセンティブとDoS耐性のトレードオフによりいくつか制限があり、
 悪意あるユーザーが、制限を悪用してTxの置換を防止する可能性がある
 (対象はLNなどのマルチパーティコントラクト)


Slide 4

Slide 4 text

【ルール3】置換する際は、元のすべてのTxの手数料より高額な手数料を支払う必要がある
 ● 低手数料率の子を紐付け、アリスが通常より多額の手数料を支払わないとTxをmempoolに入れられないようにする
 
 
 
 
 
 【ルール5】100件を超える削除が発生するような置換は行えない
 ● 攻撃者が多数の子孫Txを紐付けることでアリスの置換を不可能にする
 
 【子孫の制限によるCPFPの制限】
 ● 101KvBを超える or 25個を超える数になる場合、それ以上のCPFPができなくなる。
 ○ LNなどの二者間のプロトコルでこれを回避するために導入されたポリシーがCPFP Carve out 
 https://goblockchain.network/2020/12/cpfp-carve-out/ (マルチパーティに拡張できない)
 
 ↑を悪用して、低手数料のTxをずっとmempool内に留めておく
 3 トランザクションのPinning
 Tx B 
 Tx A 
 競合関係
 Tx B 
 低手数料の子Tx 
 別の低手数料の巨大Tx 
 高手数料の子Tx 
 アリス
 攻撃者


Slide 5

Slide 5 text

4 v3トランザクションリレー
 Pinning攻撃に対する手数料の引き上げをより堅牢にするための 
 TRUC(Topologically Restricted Until Confirmation)ポリシーの導入 
 
 Tx version = 3 のTRUCトランザクションに対して以下のルールを適用する: 
 ● BIP-125(RBF)のシグナリングの有無関係なく置換可能なTxとする 
 ● TRUCトランザクションの未承認の親はすべてTRUCでなければならない 
 ● 未承認のTRUCトランザクションは未承認の親や子を1つしか持てない 
 ● CPFP Carve outはTRUCトランザクションには適用されない(複数の子を持てないので) 
 ● 未承認のTRUCトランザクションのサイズは10,000 vBを超えてはならない 
 ● 個々のTRUCトランザクションは、mempoolの手数料要件を満たすパッケージである場合、mempoolの最小 リレー手数料を下回ってもいい 
 
 ● mempoolには親子2つのTRUCトランザクションしか存在せず、RBFのルール3、5による 
 Pinningを防止し、RBFによる置換をサポート 
 ● 最後のルールでmempool要件を満たさない低手数料の親子パッケージでリレー可能に