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
Bitcoinの新しいTxリレープロトコルErlay
Search
shigeyuki azuchi
November 05, 2019
Technology
1
54
Bitcoinの新しいTxリレープロトコルErlay
GBEC動画解説コンテンツのスライドです。
https://goblockchain.network/2019/11/erlay/
shigeyuki azuchi
November 05, 2019
Tweet
Share
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
Fiat-Shamir変換と注意点
azuchi
0
27
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
6
BIP-374 離散対数の等価性証明
azuchi
0
24
BIP-353 DNS Payment Instructions
azuchi
0
40
OP_CAT and Schnorr Trick
azuchi
0
35
Pay to Anchorと1P1Cリレー
azuchi
0
38
プロアクティブ秘密分散法
azuchi
0
54
v3トランザクションリレー
azuchi
0
57
ランポート署名
azuchi
0
100
Other Decks in Technology
See All in Technology
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
1.1k
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
1
950
【NoMapsTECH 2025】AI Edge Computing Workshop
akit37
0
230
データ分析エージェント Socrates の育て方
na0
6
2.4k
Snowflake Intelligenceにはこうやって立ち向かう!クラシルが考えるAI Readyなデータ基盤と活用のためのDataOps
gappy50
0
280
5年目から始める Vue3 サイト改善 #frontendo
tacck
PRO
3
230
20250905_MeetUp_Ito-san_s_presentation.pdf
magicpod
1
100
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
280
AWSで始める実践Dagster入門
kitagawaz
1
740
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
530
KotlinConf 2025_イベントレポート
sony
1
140
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
4
590
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Balancing Empowerment & Direction
lara
3
620
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
850
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Scaling GitHub
holman
463
140k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Transcript
新しいTxリレープロトコルの提案 Erlay
1 Erlay Bitcoinの新しいトランザクションリレープロトコル https://arxiv.org/pdf/1905.10518.pdf Bitcoinネットワークのセキュリティはノード間の 接続性に依存し、この接続数が増えればネットワークはよ り堅牢になる。(現在Bitcoinノードが接続するアウトバウン ドピアの数は8)
単純に接続数を増やすと、現在のリレープロトコルではネッ トワークで使用される帯域幅もリニアに増える。 接続数の増加に対して帯域幅をほぼ一定に保つ 新しいトランザクションリレープロトコルを提案。
2 既存のTxリレープロトコル Peer 1 Peer 2 ① インバウンドピアからTxを受信 ② Txの検証を実施
inv ③ inv:hash(Tx)を接続中のピアに送信 ④ Peer 2が対象のTxをまだ持っていない 場合、getdata:hash(Tx)をPeer 1に送信 ⑤ Txメッセージで応答 Tx getdata Tx
3 既存のTxリレープロトコルの特徴 既存のリレープロトコルをFlooding方式と呼ぶ • 帯域幅 invメッセージはノードが接続中のピア全てに対し送信されるため、 接続中のピアの数をnとすると1Txあたりn × 32バイトの帯域を使用する。 •
迅速な伝播 各ノードが(遅延時間があるものの)接続中の全てのピアにinvを送信するため、ネッ トワーク全体に迅速にTxの通知を送ることができる。 • データの重複 各ノードは接続中の各ピアからinvを受け取り、そのほとんどは重複したものになるこ とから、冗長的で無駄なデータを受け取っていることになる。 Txのリレーに関しては88%のデータが冗長的で、 ネットワーク・プロトコル全体で使用される全帯域幅の44%を占める
4 ノードの分類 Bitcoinのネットワークのノードは以下の2つに分類される • Publicノード 8つのアウトバウンド接続および最大125(設定で変更可能)の インバウンド接続を持つノードで、いわゆる一般的なフルノード •
Privateノード 8つのアウトバウンド接続を持つが、インバウンド接続は持たないノード (軽量ノードなど) Publicノードを(帯域幅、計算能力、HWリソースの観点から)実行しやすくし、より多くの Privateノードを受け入れられるようにすることが重要
5 新しいTxリレープロトコルErlay Txのリレーを2段階に分ける 1. Low-fanout Floodingフェーズ Flooding方式は拡散という意味では効率的であるため、Public ノードのアウトバウンド接続のピアに対してのみFloodingでTx をリレーする。
2. Set-reconciliationフェーズ Low-fanout Floodingのみではネットワーク全体に 伝播できないため、それを補完するフェーズ。 各ノードはローカルの状態と接続中のピアの状態を 定期的に比較し、その差分を計算し不足Txを要求する。
6 Set-reconciliationフェーズ エラー訂正符号に基づいた帯域幅効率の高いライブラリMinisketch (https://github.com/sipa/minisketch)を使って、各ノードはローカルset sketchを計算し、 維持する。 Peer 1 Peer 2
① Peer 1は自分のSketchをPeer 2に送る ※実際には相手との差分の推定値も送る。 Peer 2 sketch Peer 1 sketch ② Peer 2は自分のSketchとPeer 1のSketch 対称差を計算する。 Peer 1 sketch Peer 2 sketch XOR diff = Sketchは各ノードが持つトランザクションの 短縮TXIDで構成される。 ③ Peer 2はdiff sketchから不足分の 短縮TXIDの復元を試みる。 ④ Peer 2が持っていないTxを要求し、Peer 1が 持っていないTxを送信する。 Low-fanout floodingフェーズで 伝播されなかったTxは、この同期フェー ズでノード間のトランザクションセットの差 異を効率的に解消する ことでネットワーク全体にTxが いきわたるこをを保証する。 二者間のセットの差分の上限が予測可能である仮定 の下復元しているため、実際の差分が推定より大きい 場合、デコードに失敗し、二分法を利用して再実行、そ れでもだめな場合は従来のFloodingへ。 このラウンドを1秒毎に各アウトバウンドピアと行う
7 まとめ • ErlayはTxのリレープロトコルを、Txを迅速にネットワークに伝播するための Low-fanout Floodingフェーズと、ネットワークの隅々にまで確実に伝搬させる Set-reconciliationフェーズに分割する。 ◦ Low-fanout
FloodingフェーズではPublicノードのアウトバウンド 接続に対してのみTxの通知を送ることで冗長的なinvの送信を抑制。 ◦ Set-reconciliationフェーズではノード間のメモリプール内のTxの状態差を同期 することで、ネットワーク全体にTxの伝播を保証する。 • Erlayにより新しいTxの伝播に必要な帯域幅を84%削減可能。 • 但し、Txがネットワーク全体に伝播するまでにかかる時間は約2.6秒ほど 長くなる。Txの承認が10分に1回であるという側面を考慮すると問題ない範囲のト レードオフと思われる。