bhangra 2014710 1 Bitcoin ネットワーク Bitcoin Node New Node DNS Round Robin 2014710 2 Bitcoin では DNS とリソースの 問い合わせメッセージを用いて新規接続を行う ID: 799796
Download The PPT/PDF document "進捗報告 SFC WIDE ARCH" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
進捗報告
SFC WIDE ARCH bhangra
2014/7/10
1
Slide2Bitcoin
ネットワーク
Bitcoin Node
New Node
DNS Round Robin
2014/7/10
2
Slide3Bitcoin
ではDNSとリソースの
問い合わせメッセージを用いて新規接続を行う
Bitcoin Node
New Node
DNS Round Robin
2014/7/10
3
Slide4DNS
ラウンドロビンを用いたリソース探索
Bitcoin Node
New Node
DNS Round Robin
bitcoin.sipa.be
2014/7/10
4
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
192.0.2.10
"seed.bitcoin.sipa.be“?
Slide5DNS
ラウンドロビンを用いたリソース探索
Bitcoin Node
New Node
DNS Round Robin
bitcoin.sipa.be
2014/7/10
5
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
192.0.2.10
"seed.bitcoin.sipa.be“?
192.0.2.10
Slide6DNS
ラウンドロビンを用いたリソース探索
Bitcoin Node
New Node
DNS Round Robin
bitcoin.sipa.be
2014/7/10
6
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
192.0.2.10
ACK
SYN
Slide7Bitcoin
ではデフォルトで8つのノードとの接続が必要
Bitcoin Node
New Node
DNS Round Robin
2014/7/10
7
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
192.0.2.10
Slide8getaddr
メッセージで他のノードのリストを要求
New Node
2014/7/10
8
Bitcoin Node
192.0.2.10
“
getaddr
”
Bitcoin
Node
2
Bitcoin Node
5
Bitcoin Node
4
Bitcoin Node
Bitcoin Node
3
Slide9全てのノードは隣接ノードとの接続状況をリストで持ってる
Bitcoin
Node
2
New Node
2014/7/10
9
Bitcoin Node
5
Bitcoin Node
4
Bitcoin Node
Bitcoin Node
3
Bitcoin Node
192.0.2.10
“
getaddr
”
Node 2
は生きてる
Node 3
も生きてる
Node 4
は少し前に通信した
Node 5
と通信出来ない・・・・・
Slide10Node
2
Node 3
Node
4
疎通性のあるノードのリストを
addr
メッセージで送る
Bitcoin
Node
2
New Node
2014/7/10
10
Bitcoin Node
5
Bitcoin Node
4
Bitcoin Node
Bitcoin Node
3
Bitcoin Node
192.0.2.10
“
addr
”
Slide11これ
で多くのノードと通信が出来てネットワークも強くなる
Bitcoin
Node
2
New Node
2014/7/10
11
Bitcoin Node
5
Bitcoin Node
4
Bitcoin Node
Bitcoin Node
3
Bitcoin Node
192.0.2.10
Slide12もし悪さする人が居たらどうなるだろう
Bitcoin Node
New Node
DNS Round Robin
2014/7/10
12
Slide13もし
DNS
が悪さをしていたら
悪い
DNS
2014/7/10
13
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
悪いノード
Bitcoin Node
バラバラのネットワーク作ってやった
ったw
Slide14もし
DNS
が悪さをしていたら
悪い
DNS
2014/7/10
14
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
悪いノード
Bitcoin Node
新しいブロック見つけた!!
( ´_
ゝ`
)
フーン
Slide15もし
DNS
が悪さをしていたら
悪い
DNS
2014/7/10
15
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
悪いノード
Bitcoin Node
他の子にも
ブロック回して!
わかった
お
Slide16もし
DNS
が悪さをしていたら
悪い
DNS
2014/7/10
16
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
悪いノード
Bitcoin Node
・・・・・・・・
Slide17もし
DNS
が悪さをしていたら
悪い
DNS
2014/7/10
17
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
悪いノード
Bitcoin Node
・・・・・・・・
新しいブロック見つけた!!
Slide18もし
DNS
が悪さをしていたら
悪い
DNS
2014/7/10
18
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
Bitcoin Node
悪いノード
Bitcoin Node
新しいブロック見つけた!!
Slide19ビザンチン将軍問題風に言えば
元々
Bitcoinは開発者や普及者が
「
bitcoin
は 全てのノードの半分以上の計算力が無いと崩せない
(キリッ)」
と言ってたけどbitcoinのソース内に記載されてるDNS
サーバ7台、そして幾つかのノードを運用するだけで中長期的にブロックチェインフォーク等の問題を蔓延させられる脆弱性がある。
2014/7/10
19
Slide20自分が短期的にやろうとしている事
bitcoin
のソース内に記載されてるDNS
サーバ群に既知のノードを全て教えてもらい、それらのノード達の近隣ノードを教えてもらい、どういうトポロジーになっているかを可視化する
2014/7/10
20
Slide21進捗
。。。
ソースに記載されてるDNSサーバにノードの問い合わせを数回送り、ラウンドロビンが機能している事を確認
それらのノードに
Bitcoin
のポートで
TCPを張る事に成功
まだ簡単なソケットプログラミングしただけです。。2014/7/10
21
Slide22TODO
キチンとしたヘッダでハッシュ値も含んだ
“getaddr”
メッセージを送信し、
”
addr
”メッセージに含まれているノードのリストを確認する可能な限り全てのノードを
DNSサーバ群から聴き集め、それらと他のノードの接続状況、もといトポロジーを可視化修論のストーリーを決める。。。。
2014/7/10
22