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
50
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
プロアクティブ秘密分散法
azuchi
0
3
v3トランザクションリレー
azuchi
0
8
ランポート署名
azuchi
0
33
BitVM
azuchi
0
46
Replacement Cycling Attack
azuchi
0
44
Bitcoinのタイムロックの仕組み
azuchi
0
33
Inner Product Argument
azuchi
0
72
Codex32
azuchi
0
27
PSBT
azuchi
0
66
Other Decks in Technology
See All in Technology
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
180
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
いざ、BSC討伐の旅
nikinusu
2
780
The Rise of LLMOps
asei
7
1.5k
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
120
TypeScript、上達の瞬間
sadnessojisan
46
13k
Taming you application's environments
salaboy
0
190
プロダクト活用度で見えた真実 ホリゾンタルSaaSでの顧客解像度の高め方
tadaken3
0
100
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
510
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
520
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Teambox: Starting and Learning
jrom
133
8.8k
Site-Speed That Sticks
csswizardry
0
25
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Visualization
eitanlees
145
15k
Music & Morning Musume
bryan
46
6.2k
Happy Clients
brianwarren
98
6.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Building Applications with DynamoDB
mza
90
6.1k
GraphQLとの向き合い方2022年版
quramy
43
13k
Building an army of robots
kneath
302
43k
Code Review Best Practice
trishagee
64
17k
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回であるという側面を考慮すると問題ない範囲のト レードオフと思われる。