暗号通貨読書会 #7: bitcoin ng

25
Bitcoin-NG にににに 20170306 ににににににに にに に

Upload: -

Post on 14-Apr-2017

254 views

Category:

Engineering


0 download

TRANSCRIPT

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 poolclosed 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 research1. どのような条件下で系全体が安定するかを厳密に調べる。変数は例えば以下

1. open pool の割合2. マイナーが嘘をつく割合 ( スパイのあぶり出しのため )3. ハッシュパワーの分散度合い2. トランザクション ( ブロック本体 ) の伝搬を早くする。例 : Relay network(FIBRE) ... IP層における伝搬の加速