「ブロックチェーン・プログラミング」第2章はビットコインの基本を復習しておく。 Mastering Bitcoinを読んでいるので、ある程度理解できるのでサクサク読み進めていく。
ブロックチェーン・プログラミング 仮想通貨入門 (KS情報科学専門書)
- 作者: 山崎重一郎,安土茂亨,田中俊太郎
- 出版社/メーカー: 講談社
- 発売日: 2017/08/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
- 目次
2. ビットコインとブロックチェーンの基本
2.1 ビットコイン・ネットワーク
- ビットコイン・ネットワーク
2.2 ブロックチェーンの同期
2.3 電子マネーの理想像を実現したビットコイン
2.4 分散台帳としてのブロックチェーン
- ブロックチェーンには、世界中で起きたすべてのビットコインによる取引の記録が記録されている。
- したがって、ブロックチェーンの本質は、世界中で稼働しているビットコイン・ネットワークのノードを使って台帳記録の整合性を検証する。
2.5 トランザクションのブロードキャストによる送金
- ビットコインを送金するときは、送金者はデータ構造としてのトランザクションを作成する。
- このトランザクションは、ビットコイン・ネットワークに属するすべてのノードに送金する。
- 受け取ったノードで内容の整合性を検証される。もし問題があればそのトランザクションは破棄される。
- 通貨価値の総容量保存則 : ビットコインはどのような複雑なトランザクションを経ても、その過程で通過的価値が増えたり減ったりすることはない。
- UTXO(Unspent Transaction Output) : トランザクションのみ使用状態のアウトプット。
- 時制式三式簿記 : インプット・アウトプット・UTXOの簿記形式。過去、現在、未来にわたって貨幣的価値が増減していないことが容易に検証できる。
- トランザクションの手数料: 10分の間で世界中で発生したトランザクションをブロックにまとめる。このブロックに優先的に取り込んでもらうために、マイナーに対して手数料を支払う必要がある。
- マイナーは受け取ったトランザクションをメモリープールに保存し、マイニングが完了したトランザクションをブロックに格納する。
2.6 非可逆的記録としてのブロックチェーン
台帳の改ざんを防ぐために用意されている2つの技術: ハッシュチェーンとマイニング
暗号学的ハッシュチェーン: データのハッシュ値を次のデータに埋め込み、一連のデータのチェーンを作る。
ブロック高: ブロックチェーンの順序を表す。ブロック高が0のブロックを、世界の始まりを意味するジェネシス・ブロックと呼ばれる。
プルーフ・オブ・ワークマイニングの計算によって得られる計算結果
マイナーが作成した新しいブロックは、ビットコイン・ネットワーク全体にブロードキャストされる。
- このブロックは他のノードによって正当性を検証され、正しければノードのブロックチェーンに接続される。
- 正しくなければブロックは破棄されるので、マイナーは慎重にブロックを作成する必要がある。
2.7 公開鍵の電子署名を利用した電子通貨の使用
2.8 ブロックチェーンの記録の正当性とコンセンサス
- ビットコインの送金情報は世界中のいたるところで発生し、世界中に向けてブロードキャストされるが、ネットワークのレイテンシにより時間がかかる。
- マイナーが意図的に作成したチェーンを最長となるまで伸ばして、正統なチェーンとできるならば、そのマイナーによって歴史が支配できてしまう状態になる。
- ただし、上記の状態は、競争相手のマイナーたち全員を上回る計算能力を得た時に限る。
- コンセンサス・アルゴリズム(合意形成アルゴリズム): ブロックチェーンの中で、分散システム全体で正当な情報を唯一に定める方法。
- プルーフ・オブ・ワーク法 は、マイナーたちの欲望に基づく計算競争を利用したコンセンサス。
- トランザクションの確認数: トランザクションがブロックに取り込まれてから現在の最新のブロックが接続されるまで何個のブロックが存在しているか、という数のこと。