yutadayo's diary

yutadayo の日記

Mastering Bitcoin

Bitcoinがもう少しで70万に達しそうですね。
仮想通貨やブロックチェーンについて、そろそろ技術的な理解をキチンとしておいた方がよいかなと思い Mastering Bitcoin を読みました。

Mastering Bitcoin

Mastering Bitcoin

オープンソースとして日本語約もPDFとして、公開されているので、こちらから無料で読むこともできます。 日本語訳してくださった方々に感謝です。

技術的な内容がほとんどですが、一般社会に置き換えた例も交えながら解説されているので、一通りのBitcoinブロックチェーンの知識を得るには非常に良い本だと思いました。

以下、読む前にぼんやりとしか分かっていなかったことが理解できた内容

自分のBitcoinがどのように管理されているか?

ユーザーがBitcoinを受け取るときはUTXO(未使用トランザクションアウトプット)として、ブロックチェーンに記録される。
ユーザーのBitcoinは無数のブロックの中にUTXOとして分散していて、残高という概念は、ウォレットがブロックチェーン内をスキャンして、ユーザーに属している全てのUTXO を掻き集めて集計し表示している。

マイニングとは?

difficulty target よりも小さいブロックヘッダハッシュになるnonce値を見つける行為
本に紹介されている例が分かりやすかった。

プレイヤーが2つのサイコロを繰り返し投げ、特定のtargetよりも和が小さくなるようにするゲーム

target が12の場合は、6を2つ出さなければ勝ち
target が2の場合は、36回サイコロを投げて1回勝利(全体の2%)できる

マイナーはトランザクションを埋めた候補ブロックを作成し、ブロックのヘッダのハッシュを計算、difficulty target よりも小さい nonce が見つかるまで nonce の値を修正して計算する。

ほぼ同じタイミングでマイニングに複数の人が成功したらどうなるのか?

Bitcoinノードは最大累積difficultyチェーンを選ぶようになっている。

ほぼ同タイミングで2人のマイナーが proof-of-work の解を見つけてブロックチェーンのフォークが起きる場合もあるが、その場合次のマイニングに成功したブロックが繋がれた方のチェーンがメインチェーンになり、繋がれなかったもう一方のチェーンはセカンダリーチェーンになる。

図入りで解説されていたので、非常に分かりやすかった。