Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
v3トランザクションリレー
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
shigeyuki azuchi
October 01, 2024
Technology
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
v3トランザクションリレー
GBECの解説動画の資料です。
https://goblockchain.network/2024/10/v3-transaction/
shigeyuki azuchi
October 01, 2024
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
SLH-DSA (SPHINCS+)
azuchi
0
19
Hyper Tree
azuchi
0
22
FORS
azuchi
0
34
クラスターmempool
azuchi
0
44
W-OTS+
azuchi
0
50
Shorのアルゴリズム
azuchi
0
72
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
58
Fiat-Shamir変換と注意点
azuchi
0
260
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
71
Other Decks in Technology
See All in Technology
AIにシークレットを見せない、WSL2で安全な開発環境
yazm
0
300
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
3
510
TinyGoでオブザーバビリティ?OpenTelemetryはTinyGoで使えるのか / Is OpenTelemetry available in TinyGo environment?
ymotongpoo
2
140
大型犬好きによるPugの紹介
yamanoku
1
160
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
100
Running Kotlin + Quarkus with Lambda
nealle
1
3.7k
[JAWS-UG彩の国埼玉#12]そろそろ準備する?re:Invent2026をやさしく解説 / reinvent2026-sainokuni
sh_fk2
1
340
事業成長とデータ活用を止めないためのマネジメントへ挑戦
hiracky16
0
390
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
Kiro Crewをはじめよう
kizawa2020
1
160
夫婦で子育てするための育児標準化
codmoninc
PRO
0
340
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
770
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
280
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
410
Scaling GitHub
holman
464
140k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Git: the NoSQL Database
bkeepers
PRO
433
67k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
520
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
440
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Transcript
v3トランザクションリレー
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
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などのマルチパーティコントラクト)
【ルール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 アリス 攻撃者
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要件を満たさない低手数料の親子パッケージでリレー可能に