Bitcoin-NGについて
20170306暗号通貨勉強会
宮本 丈
https://www.usenix.org/system/files/conference/nsdi16/nsdi16-paper-eyal.pdf
アジェンダ
• イントロダクション & 解決すべき課題
• Bitcoin-NGの内容
• 欠点とfuture research
スケーラビリティ問題
• 一秒間に処理できるトランザクションの量が足りな
い … 現在は(7tx/second)
• 大きく2つの解決策
スケーラビリティ問題
• レイヤ2, (オフチェーン)
– Lightning Network
– Tumblebit
– Teechan
• レイヤ1, オンチェーン
– ブロックサイズ
– ブロックインターバル
今日はこちら
なぜ大きいブロックサイズが問題なの
か
• ブロックの伝搬・検証に時間がかかる
↓
• 大きなマイニングプールに有利
↓
• ブロックヘッダだけ先に伝搬させてしまお
う!!
マイニングに必要な二つの情報
実は検証をしなくてもマイニングできる
• 前ブロックのハッシュ(PoW)• hashprevBlock
• hashMerkleRoot • トランザクションの要約
マイニング環境(2010年)
マイニング環境(2017年)
Open pool
closed pool
留意すべき点
• 「Miner Centralization」とは?
– アクターのcentralization
– (ASICの)物理的 centralization
– P2Pノードの減少
• 以下の二つは別物
– Operator … プールの管理者
– Hasher … プールの参加者
攻撃1: Block withholding
1. 対立するプールにhasherを送り込む
2. 正解をマイニングしても報告しない
3. 「仕事」をしているふりをするため、正解に近
いhashを見つけたときは報告する。
攻撃2: Selfish Mining
• 見つけたブロックを直ちにパブリッシュせず、
しばらくその上にマイニングする。
• 25~33%のハッシュレートを持てばかなり有利
になれる。
• ブロックの遅延が大きいほど効果は上がる
プールを「閉じる」インセンティブを与える?
Bitcoin-NGが防ぐのはこちら
Bitcoin-NG
• Bitcoin NGの解決する問題
– Fairness …
– プールの規模に対して、rewardが出来る限り
線形に増加するようにする
– Mining utilization …
– orphanに使われるハッシュパワーを減らす
– Time to win …
– フォークの解消にかかる時間を減らす
実は全て同じ問題 … ブロックの伝搬・検証にかかる時間がゼロ
ならば解決
アジェンダ
• イントロダクション&解決すべき課題
• Bitcoin-NGの内容
• 欠点とfuture research
Bitcoin-NG
• 大前提として「マイナーのハッシュパワーは全体
の25%を超えてはならない」
• (経済的に)妥当な想定かは議論の余地がある
Key BlockとMicro Block
KeyBlock … ビットコインの ブロックと似ているが、minerの公開鍵がついている。
Microblock … トランザクションを含む、あらかじめさだめたサイズ以下のブロック、署名付き
前ブロックのヘッダハッシュを含む。(10秒に1ブロック発行できる)
Heaviest chainとlongest chain
現在のBitcoinと違って、Heaviestとlongestが分離している
 Heaviest chainへのマイニングが最適戦略なのは従来と同様
 Longestは?
なぜrewardが4:6なのか?
• 条件1: 「セルフィッシュマイニングがpayしない」
• 条件2: 「最新のmicroblockをマイニングした方がpayする」
α= 全体に占めるハッシュレート < 0.25
= leaderに行くrewardの割合(未知)
0.37 < < 0.43 が得られる
Related works
• GHOST
– “Uncle block”をPoWとして含めることでFairnessと
utilizationを改善
– しかし、「後に正解となるチェーンを持つノードが
存在しない」ということがあり得る
– それを防ぐために同期フェーズを入れるとDoS攻
撃を防げない
アジェンダ
• イントロダクション & 解決すべき課題
• Bitcoin-NGの内容
• 欠点とfuture research
欠点
• パブリッシュしなくてはならない情報が多い
– Key blockのpublic key
– Microblockの署名
– ブロック数の増加、つまりブロックヘッダの増加
– パラメータの同期のための情報
欠点2
• 前提1: もしfee splittingを40:60から100:0に変
えられるとしたら、マイナーは直ちにそうする。
• 前提2: feeという形ではなく、ユーザーがマイ
ナーに直接支払えば(賄賂)実際にそうできる。
• 結論: したがって実際のfeeは100:0に近づく
– 単一のマイナーがこれを行うと、他も追従せざる
を得ない
– したがって(帯域を消費する情報が少ない分)SPV
miningの方が優れている。
SPV mining
• ブロックの生成に成功した時点で、(内部トラ
ンザクションをおいておいて)ヘッダのみをパ
ブリッシュする。
– -> 有効でないブロックを伸長してしまう可能性が
ある。
spy mining
• よそのマイニングプールに「スパイ」を送り込
む
• 全てのプールがオープンならdominantである。
つまり相手のpoolは「selfish mineしない」こと
が最適戦略になる
– (spv miningをするインセインティブを与える)
• すでに過半数のプールで行われている
spy miningの問題点
ブロックの内容を検証しないまま採掘すると、
ハードフォークする可能性がある。
Future research
1. どのような条件下で系全体が安定するかを厳密に調べる。
変数は例えば以下
1. open poolの割合
2. マイナーが嘘をつく割合(スパイのあぶり出しのため)
3. ハッシュパワーの分散度合い
2. トランザクション(ブロック本体)の伝搬を早くする。例:
Relay network(FIBRE) ... IP層における伝搬の加速

暗号通貨読書会 #7: Bitcoin NG

Editor's Notes

  • #5 ちなみにVISAは47万
  • #6 ブロックインターバルを短くすると、
  • #10 Poolにすることでセキュリティコストの低下、スムーズな報酬が得られる。 Manager とHasher の分離
  • #11 Validationはhasherではなく、pool operatorが行っているというところがポイント (poolを閉じてしまえば良いのでは?)
  • #12 防げない(多分)poolをopenにするか否かしかない (多分Bitcoin-NGと直接の関係はない)
  • #13 今のところ、行っているマイナーはいないっぽい(おそらくnet gainが下がることを考慮して)
  • #17 Maximumより小さいブロックを10秒ごとに MicroblockはPoWの重みがゼロなので、selfish miningに対する体制はBitocoinと変わらない。 もしMicroblockが重みを持っていたら、selfish miningに対する体制が下がる
  • #25 おそらくは、相手のpoolで見つかったブロックを検証せずそのままマイニングすることがdominant Spyを見つけ出す手法(複雑)が存在するかもしれないが、おそらく機能しない 対応策はプールを閉じることしかないが、そうするとお互いにspyし合うグループ(賄賂によって確実にそうなる)に勝てない
  • #26 おそらくは、相手のpoolで見つかったブロックを検証せずそのままマイニングすることがdominant Spyを見つけ出す手法(複雑)が存在するかもしれないが、おそらく機能しない 対応策はプールを閉じることしかないが、そうするとお互いにspyし合うグループ(賄賂によって確実にそうなる)に勝てない