マイニング
1.ブロックの構造
table: ブロックの構造
フィールド名 データサイズ 説明
BlockSize 4 ブロックのデータ量
BlockHeader 80 ブロックのプロパティを格納
TransactionCounter 9 Transactionsに格納されているトランザクション数を格納
Transactions トランザクション次第 複数のトランザクションを格納
2.ブロックヘッダの項目
table:ブロックヘッダ
フィールド名 データサイズ 説明
Version 4 プロトコルのバージョン
PreviousBlockhash 32 一つ前のブロックのブロックヘッダをハッシュ化した値
MarkleRoot 32 東ブロックのトランザクションを要約したマークルツリーをハッシュ化したもの
Timestamps 4 ブロックの生成日時
Difficulty Target 4 ブロック生成時の生成難易度
Nonce 4 SHA256Dの値を変動させるための変数
3.マイニングルール
計算式:SHA256D(Dはダブルハッシュのこと)
成立条件:ブロックヘッダのSHA256DがDifficultyを満たすこと → SHA256(SHA256(Block Header)) =< Difficulty
条件を満たすまで、Nonceを計算する
https://gyazo.com/d4dc5990de0082ab2f93116f0c463094
図1:マイニングフローチャート