Ethereum の GHOST(Greedy Heaviest Observed Subtree) プロトコルのまとめ
いつの間にかホワイトペーパーの説明が変更されていたので、アップデート(2017/03/21)
前提知識
- Bitcoin (Proof of Work, orphan block, コインベース, メインチェーンの選択方法)
- Ethereumの基礎知識 (Uncle)
まとめ
- Ghostプロトコルは、元々2013年に発表された論文が起源
- Ethereumで利用されているのは、上記論文を修正した機能限定版Ghostプロトコル
- Bitcoinは、一番長いチェーンがメインチェーン。Ethereumは、一番重い(heaviest)チェーン。
- 基礎知識: 早いブロック時間は、より多くのオーファンブロックを作成する(より無駄なコストが発生する)
- オーファン(Uncle)ブロックにも報酬を与える (マイナーが、unclesを含めるインセンティブができる)
- 2つの問題を解決している
- 一つ目の問題: 高いステイル率(早い承認)だとセキュリティが下がる問題
- 解決方法: ステイルブロックをどのチェーンが長いかの計算に含める(Uncleも)
- 2つ目の問題: マイニングの中央化
- 解決方法: ブロック報酬をステイルブロックにも与える
ホワイトペーパーからの翻訳
- ブロックは、親を指定し、0かそれ以上のuncleを指定しなければならない
- ブロックBに取り込まれたuncleは、以下のプロパティを持たなければならない
- 2 <= k <= 7となるBのk世代の祖先の直接の子でなければならない
- Bの祖先であってはならない
- Uncleは、有効なブロックヘッダーでないといけないが、以前に検証か、有効とされる必要はない
- uncleは、前のブロックに取り込まれた全てのuncleや、同じブロックに含まれた全てのuncle(non-double-inclusion)とは、別でないといけない
- ブロックBに含まれた全てのuncle Uは、Bのマイナーが追加の3.125%の報酬をそのコインベース報酬に追加し、そして、Uのマイナーは、標準コインベース報酬の93.75%を得る。
翻訳元: White Paper · ethereum/wiki Wiki
おすすめ記事
Ghostの論文
Yonatan Sompolinsky氏とAviv Zohar氏に2013年に発表された論文
Accelerating Bitcoin’s Transaction Processing
Fast Money Grows on Trees, Not Chains
http://www.cs.huji.ac.il/~avivz/pubs/13/btc_scalability_full.pdf
Uncleのインセンティブにのデザインについて
Design Rationale · ethereum/wiki Wiki
参考
- Slasher Ghost, and Other Developments in Proof of Stake - Ethereum Blog
- Introducing Casper "the Friendly Ghost" - Ethereum Blog
- anyone who thinks GHOST is a good idea, has not understood Bitcoin at all. the w... | Hacker News
用語
- Ethereum、イーサリアム、エセリウム
- PoW, Proof of Work
- Ghost protocol, ゴースト・プロトコル
- Stale block, ステイル・ブロック
- Uncle, アンクル
- ommer