コンセンサスと Orphan Block

コンセンサスと
Orphan Block
@ DG Lab - Anditto Heristyo
© 2017 Digital Garage. All rights reserved. Redistribution or public display not permitted without written permission from Digital Garage.
Agenda
1. コンセンサス
2. Orphan Block
3. デモ
2
コンセンサス
3
目的
皆が同じブロックを持つこと。
問題点:
1. ビザンチン将軍問題
2. ネットワークの遅延
3. 悪意
4
コンセンサス
どのチェーンが一番正しい?
基本的に:一番作業されたチェーン(一番長いとは限らない)
5
Orphan Block
6
Orphan Blockとは?
実は少し複雑:
1. 無効になったブロックを親としてマイニングした。
(Stale Blockとも言われる)
2. 親が見当たらないブロックをもらった。
(最近あまり無い)
http://bitcoin.stackexchange.com/questions/5859/what-are-orphaned-and-stale-blocks
(Peter Wuille)
7
Stale Block
実例: https://blockchain.info/orphaned-blocks
前は有効だったブロックを親として作業している間に、そのブロッ
クが無効になってしまった。
8
Fork
ブロックチェーンの状態が分岐し不一致となる状況
9
Soft Fork vs. Hard Fork
Soft Forkの場合:
もっと厳しいルールを適応する。
Hard Forkの場合:
前のルールを消す。
Soft Forkの例
例えば:
アドレスは全部「q」で終わらないと有効じゃない。
「q」
「q」
なんで
もOK
なんで
もOK
Soft Fork
参加者率
10%
2つのネットワークになる。
「q」
「q」
なんで
もOK
なんで
もOK
なんで
もOK
Soft Fork
参加者率
> 51%
「q」
なんで
もOK
1つのネットワークになる。
「q」
「q」
Soft Fork
参加者率
95%
「q」
「q」
「q」
なんで
もOK
1つのネットワークになって、新しいルールは標準になる。
Hard Forkの例
例えば:
ECDSAだけじゃなくてRSAの署名も可能。
RSA
OK
RSA
OK
ECDSA
ECDSA
のみ
のみ
Hard Fork
参加者率
10%
RSA
OK
1つのネットワークのまま。
ECDSA
ECDSA
ECDSA
のみ
のみ
のみ
Hard Fork
参加者率
>51%
2つのネットワークになる。
RSA
OK
RSA
OK
ECDSA
ECDSA
のみ
のみ
RSA
OK
Hard Fork
参加者率
70%
2つのネットワークのまま。
RSA
OK
RSA
OK
ECDSA
ECDSA
のみ
のみ
RSA
OK
まとめ
- トランザクションが最新のブロックに取り込まれても完璧では
無い(かもしれない)
- 段々とブロックを重ねるにつれ、信頼性が高くなる
19
新しいTxを作ってみよう
隣の人とアドレスを交換して、BTCを送ってください。
$ ./bitcoin-cli getnewaddress
$ ./bitcoin-cli sendtoaddress <ADDRESS> 0.5
出力された TxId に注目してください。
20
デモ
21
[email protected]
github.com/anditto
22