Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
55
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
Shorのアルゴリズム
azuchi
0
5
DahLIAS: Discrete Logarithm-Based Interactive Aggregate Signatures
azuchi
0
7
Fiat-Shamir変換と注意点
azuchi
0
92
AssumeUTXOを利用したブロックチェーンの同期
azuchi
0
19
BIP-374 離散対数の等価性証明
azuchi
0
35
BIP-353 DNS Payment Instructions
azuchi
0
54
OP_CAT and Schnorr Trick
azuchi
0
52
Pay to Anchorと1P1Cリレー
azuchi
0
49
プロアクティブ秘密分散法
azuchi
0
69
Other Decks in Technology
See All in Technology
regrowth_tokyo_2025_securityagent
hiashisan
0
220
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
170
AI時代の開発フローとともに気を付けたいこと
kkamegawa
0
2.9k
AWS re:Invent 2025で見たGrafana最新機能の紹介
hamadakoji
0
320
チーリンについて
hirotomotaguchi
6
1.8k
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
450
AWS Trainium3 をちょっと身近に感じたい
bigmuramura
1
140
Karate+Database RiderによるAPI自動テスト導入工数をCline+GitLab MCPを使って2割削減を目指す! / 20251206 Kazuki Takahashi
shift_evolve
PRO
1
680
評価駆動開発で不確実性を制御する - MLflow 3が支えるエージェント開発
databricksjapan
1
120
ML PM Talk #1 - ML PMの分類に関する考察
lycorptech_jp
PRO
1
800
新 Security HubがついにGA!仕組みや料金を深堀り #AWSreInvent #regrowth / AWS Security Hub Advanced GA
masahirokawahara
1
1.8k
[CMU-DB-2025FALL] Apache Fluss - A Streaming Storage for Real-Time Lakehouse
jark
0
110
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
How STYLIGHT went responsive
nonsquared
100
6k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Facilitating Awesome Meetings
lara
57
6.7k
Context Engineering - Making Every Token Count
addyosmani
9
500
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Docker and Python
trallard
47
3.7k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
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回であるという側面を考慮すると問題ない範囲のト レードオフと思われる。