【論文】Information Propagation in the Bitcoin Network
読んだ論文をまとめる。
論文は
Information propagation in the Bitcoin network - IEEE Conference Publication
発表スライドは以下
https://www.tik.ee.ethz.ch/file/0bc1493ba049fe69dbafccef4220c666/presentation.pdf
- Information propagation in the Bitcoin network
- 著者
- Christian Decke ETH Zurich
- Roger Wattenhofer Microsoft Research/ETH Zurich
概要
Bitcoinネットワークでの情報伝播
- BItcoinネットワークは均一なノードによるネットワーク
- それぞれのノードは協働することはなく、TXの検証に必要な完全な複製を持つ*1
- それぞれのノードは独立しているので、ノード間の信頼は最小となる
- ネットワークトポロジはランダムグラフ
- 台帳の同期にはtxメッセージとblockメッセージを用いる
- ブロック/TXをBlock/txメッセージによって受け取ると、検証を行ってから隣接ノードにinvメッセージを送る
- invメッセージを受け、当該ブロック/TXを持っていなければgetdataメッセージを返す
メッセージのやりとり 論文本文より
- それぞれのメッセージングで伝播遅延が発生する
- 遅延はメッセージの転送と、ブロック/TXの検証の組み合わせである
- TXの検証はディスクへのランダムアクセスが必要*2
- 遅延はメッセージの転送と、ブロック/TXの検証の組み合わせである
- をブロック/TXが生成され、広告されてからノードが受信するまでの時間とする
- 伝播は2つのフェーズに分かれる
- 多くのノードがinvメッセージを受け取り、持っていないデータを収集するフェーズ
- 多くのノードが持っているデータのinvメッセージを受け取り、集束するフェーズ
- 180000〜190000ブロックの受信した時間とブロックのタイムスタンプを収集
- 中央値は6.5秒で、平均して12.6秒で受信する
- ロングテールになり、40秒後には5%のノードがまだ受信していない
論文本文より
- 送信するデータサイズは、20kBまでは遅延に深く影響する
- 96%のTXは1kB未満
- ブロックのほとんどは20kB以上で過半数が知るまでに80msかかる
- ネットワークへの侵食
- ネットワーク上のノードを、エッジを とし、ネットワークをで表す
- ブロック高を持つネットワークの一部のノード群をとする
- のブロックを見つけ、それを持つノード群はとなる
- が見つかり、他のブロックが見つからなければ、ノードはを離脱し、が空になるまでに参加する
- が見つかった時、が発生する
- それぞれとを受信することで、ブロックチェーンのフォークを検知する
- ノードはどちらかを選択し、もう一方の伝播を止める
- これはTXでも同様の動作をする
- トランザクションの場合、伝播を止めることはネットワーク上での検証コストとフォークさせる攻撃とのトレードオフとなる
- ブロックの場合、任意の値を持つブロックを生成することは困難なため、攻撃になり得ない
ブロックチェーンのフォーク
- フォークはネットワークの一部によって観測される
- NATやFirewallの中などのノードへは到達できない可能性が高いので、全てのフォークは観測できない
- 180000〜190000ブロックまでを観測した結果、169回のフォークが発生し、発生頻度は1.69%となった
- フォークのモデル化*3
- PoWはブロックの発見をランダムな独立事象にする
- 伝播によるブロックチェーンのフォークの2要素
- ブロックの発見確率
- 10分に一回ブロックが発見されるので、1秒間にブロックが発見される確率は以下
- ネットワークの一部による競合ブロックの発見
- ブロックチェーンのフォークはが伝播している時にが見つかることで発生する
- はを知らないノードによってのみ発見される
- をが発見されてからノードが存在を知るまでの時間とする
- をがにを知っているかどうかの判定関数とする
- をまでに全てのノードが知るとすると
- 知っているノードの割合は
- 以上よりフォークの確率は
- ブロックチェーンのフォークはが伝播している時にが見つかることで発生する
- ブロックの発見確率
- とはネットワーク上の計算パワーとネットワークのトポロジに影響を受ける
- 180000〜190000ブロックの計測を元にした分析
- ブロックの発見確率はPoWによってポアゾン事象となる
- 確率分布を元にすると程度
- であり、おおよそ600に近似されている
- 計算パワーが平均10分に1回見つかる調整よりも少し多く投入されているためのズレ
- これを元に先の式を計算すると平均11.37秒でブロックが伝播する
- 11.37秒で伝播するということは、伝播する間に費やされる計算パワーは無駄となる
- なので、実質49.1%の有効な計算パワーを費やすことで攻撃が可能となる
伝播を速める施作
- 伝播を速める手法として提案するのは3つ
論文本文より
- 計測結果
- 200000〜210000ブロックで改善を行った上で計測を行った
- フォークの頻度は0.78%となった
- 最も影響したのは接続性の増加 * 帯域はおおよそ100MB/s必要となった
結論
- ネットワーク上での伝播の分析を行った
- モデル化と計測を行い、モデルの検証を行った
- ネットワーク上でフォークを解決することは台帳の複製の非一貫性の解決に重要
- しかしイクリプスされると多くのノードは検知できない
- 幾つかの伝播を促進する施作を提案し、計測した
- それぞれは短期的な対策であり、スケーラブルな長期的な解決策を見つける必要がある
感想
結構早めの段階(2013年)に出た論文でネットワークの分析を行ったということで、かなり引用されている論文。やはり、先日の記事でも触れたようにネットワークへの前提を持たないことで伝播がフォークへ影響しており、興味深かった。伝播中に費やされたコンピューティングパワーは浪費になる、というのも面白く、例えば攻撃者としては伝播をわざと遅らせるなどする攻撃もできそうだ。この論文を根っことしてネットワークへの攻撃や分析の論文が多数出ているので、その辺を追っていく。