Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CPFP carve out
Search
shigeyuki azuchi
December 16, 2020
Technology
63
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CPFP carve out
GBECの解説動画の資料です。
https://goblockchain.network/2020/12/cpfp-carve-out/
shigeyuki azuchi
December 16, 2020
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
Hyper Tree
azuchi
0
6
FORS
azuchi
0
20
クラスターmempool
azuchi
0
38
W-OTS+
azuchi
0
43
Shorのアルゴリズム
azuchi
0
65
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
51
Fiat-Shamir変換と注意点
azuchi
0
240
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
62
BIP-374 離散対数の等価性証明
azuchi
0
81
Other Decks in Technology
See All in Technology
AI画像認識を活用したゲーム内決済処理検証の自動化
gree_tech
PRO
0
110
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
190
FDEの心得
noriakioji
5
6.4k
形式手法特論:Hyperproperty とモデル検査 #kernelvm / Kernel VM Study Tokyo 19th
ytaka23
0
620
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
360
小粒でもパワフルなJS Runtime Antjsについて
comamoca
0
120
AIに持続⼒を与える 判断の⻑期記憶設計
eiei114
1
620
作って理解するCoding Agent 〜フレームワークに頼らないピュア Python での実装〜
takapy
3
980
現場回帰したデータエンジニアが考える AI 時代のキャリア開発 / Career Development in the Age of AI Perspectives from a Hands-on Data Engineer
medley
0
300
【GCC2026】鉄拳8でのVFX開発事例
bandainamcostudios
PRO
0
220
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
200
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Statistics for Hackers
jakevdp
799
230k
The browser strikes back
jonoalderson
0
1.5k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
470
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
500
We Have a Design System, Now What?
morganepeng
55
8.3k
First, design no harm
axbom
PRO
2
1.3k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
280
The Curse of the Amulet
leimatthew05
2
14k
Building an army of robots
kneath
306
46k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
500
Transcript
CPFP carve out
1 CPFPとは? Child pays for parent(CPFP) Bitcoinにおいて送信済みトランザクションの手数料を上げるためのテクニック。
親 Tx Inputs Input 1 Input 2 Outputs 送金先アドレス お釣り用アドレス 手数料(低) 子 Tx Inputs Input 1 Outputs 自分のアドレス 手数料(高) 送信済みTxに設定されている手数料が低く なかなかブロックに入らない場合に、 そのTxのアウトプットのUTXOを使って 送金をする子Txを作成し、その手数料を 高く設定することで、親子セットで ブロックに入れてもらうアプローチ。 (必ず親が先) ほとんどのTxにはお釣りで自分に 返ってくるUTXOが存在するので、 このアプローチで手数料のBUMPが可能。 ※受信者が行うアプローチもあり。 ※RBFと違ってTxに特殊な設定が必要ない。
2 CPFPに関する制限 CPFPは複数の子Txチェーンについても機能するが、あまりにも多いと マイナーがブロックテンプレートを作成するのに時間がかかってしまう 【Bitcoin Coreの制限】 • -limitancestorcount=<n>
(default: 25) mempool内の祖先の数がn以上ある場合、Txを受け入れない • -limitancestorsize=<n> (default: 101) mempool内の全祖先のサイズがn KB以上になる場合、Txを受け入れない • -limitdecendantcount=<n> (default: 25) 祖先がn以上の子孫をmempoolに持つようになるTxを受け入れない。 • -limitdesendantsize=<n> (default: 101) 祖先がn KBを超える子孫をmempoolに持つようになるTxを受け入れない。
3 Transaction pinning Attack マルチパーティコントラクトにおけるDoS攻撃の一種 Bitcoin CoreのCPFPの制限を悪用する 親
Tx Inputs Input 1 … Outputs Bobへの送金 Malloryへの送金 手数料(低) Malloryがlimitdescendantsize 制限付近の子Txを作成することで、Bobが親Tx のUTXOを使用した子Txを作れないようにする。 結果、BobはCPFPを使って親Txの手数料を 上げることができない。 ※ 通常の支払いであれば大きな問題にならないが、 LNのような時間に依存するプロトコルにおいては問題に。 状況によってはマルチホップ支払い(HTLC)のコインが盗難に。 子 Tx
4 CPFP carve out Bitcoin Core v0.19.0で導入された新しいmempoolポリシー CPFP carve out
• Txの未承認の祖先Txが1つしかない場合 ◦ Txチェーンの深さの制限(count)と、サイズの制限(size)を適用しない 親 Tx Inputs Input 1 … Outputs Bobへの送金 Malloryへの送金 手数料(低) Malloryががlimitdescendantsize 制限の子Txを 作成しても、Fee Bump Txには制限が適用されず、 Bobは手数料の上げることが可能になる。 親Txのアウトプット毎に必ず1つは Fee Bumpを 可能にするポリシーの変更。 このポリシーによりLNの Anchor Outputが使用可能に。 子孫 Tx Fee Bump Tx