【仮想通貨】新しいトランザクション(取引)の追加方法【ブロックチェーン】

公開日: : 最終更新日:2020/11/19 仮想通貨 , , , , , ,

仮想通貨で用いられているブロックチェーン技術において、新しいトランザクション(取引)をどのように既存のブロックチェーンに組み込んでいくのか、ということについて調べてみました。

1つだけ存在する公開台帳であるブロックチェーンに、新しい取引(仮想通貨の移動)を追加するのはどのような手順で行っているのでしょうか?

ちなみに、トランザクション(取引)は、ビットコインの場合「AさんからBさんへ X(BTC)移動する」といったような指示のことです。

複数のトランザクション(取引)をまとめて管理したものを「ブロック」とし、ブロック単位で承認され、ブロックチェーンに組み込まれていきます。

1ブロックの内容の詳細については以前まとめました。
【ビットコイン】1ブロックに含まれる情報について調べてみた【マークル木】

具体的な手順は以下のようになります。

  1. 1つ前(親)のブロックヘッダーのハッシュ値参照を作成する
  2. 新しく追加された複数のトランザクションからマークル木を作成する。
  3. 1.で作成した「ブロックヘッダー参照ハッシュ値」,2.で作成した「マークル木ルートのハッシュ値」などを用いて新しいブロックヘッダーを作成する
  4. 3.で作成したブロックヘッダーのハッシュ値を求めるためのナンスを見つける
  5. 4. で求めたナンスをブロックヘッダーに追加し、ブロックを完成させる

 

ビットコインの場合は、1.もしくは 4.の「ブロックヘッダーのハッシュ値」を求めるときに、64文字のハッシュ値のうち、最初の16桁の値が全て「0」になるように「ノンス」の値を調節しなければなりません。これは、ブロックの生成時間が 10分になるように、2016ブロック生成されるたびに直近の 2016ブロック生成にかかった時間を測定し調整されているため、2020年現在では、16桁と設定されているためです。

具体的なハッシュ値は以下のようになります。

00000000000000000007ba1e67d3f54a6e404aad5f573418f77238213ec861ed

合計64文字で、最初の16文字が全て「0」になっていることが確認できます。

ブロックヘッダーのハッシュ値は SHA256 を用いているので、256ビットとなり16進数で表されているので合計64文字となります。

また、ノンスはランダムな 32ビットの値です。ノンスを色々と変えていって、最初の16桁が全て「0」になるような値を見つけなければブロックをブロックチェーンに追加することができず、トランザクション(取引)も承認されません。

この最初の16桁が全て「0」になるようなブロックヘッダーのハッシュ値を求める作業が「マイニング(採掘)」と呼ばれるものです。

そして、マイニングにより、一番最初にハッシュ値を見つけたユーザに報酬(例えばビットコイン)を与えることを Proof of Work(PoW)といいます。

参考図書

関連記事

【イーサリアム】日本円のチャートで比較する方法【イーサリアム・クラシック】

イーサリアム(Ethereum)は、2020年時点で、時価総額がビットコインに次ぐ第2位の仮

記事を読む

【仮想通貨】デジタル署名と公開鍵暗号の違いは!?

ビットコインなどの仮想通貨のブロックチェーン技術で用いられている「デジタル署名」「公開鍵暗号

記事を読む

【イーサリアム】クライアントソフト geth を使ってみた。

イーサリアムのクライアントソフト geth をインストールして使ってみました。 クライ

記事を読む

【仮想通貨】デジタル署名について調べてみた【ブロックチェーン】

ビットコインなどの仮想通貨のブロックチェーンで用いられているデジタル署名(Digital s

記事を読む

【ビットコイン】ハッシュ関数(SHA-256・RIPEMD-160)について調べてみた。

ビットコインなどの仮想通貨で使用されているハッシュ関数(hash function)という技

記事を読む

【イーサリアム】 ホリエモンが2014年当時にイーサリアムの可能性に気付いていた!?

ホリエモンこと堀江氏が、2014年の自身のブログで「イーサリアムやべぇ。。。」というタイトル

記事を読む

【仮想通貨】時価総額のランキングを円(JPY)で見る方法。

ビットコインやイーサリアムなどの仮想通貨の時価総額のランキングを 円(JPY)で見れる分かり

記事を読む

【Solidity】 イーサリアムでコントラクトを生成してみた。

スマートコントラクトプログラミングの高級言語の1つである Solidity を使って、イーサ

記事を読む

【仮想通貨】トランザクションについて調べてみた【ブロックチェーン】

ビットコインなどの仮想通貨では、取引をトランザクションで記述されます。 そのトランザク

記事を読む

【ビットコイン】承認されたブロックを見てみる【ブロックチェーン】

ビットコイン(BitCoin)の公開台帳であるブロックチェーンについて、新たに承認されたブロ

記事を読む

無料動画編集ソフト AviUtl で mp4 形式の動画を読み込み・出力する方法【Windows】

今回は、無料動画編集ソフト AviUtl で mp4 形式の動画を読み

【Cubase】イヤホンから音がでないときの対処方法。

Cubase でイヤホンから音がでなくなったときの対処方法のメモです。

【Cubase】特定のトラックを無効にする方法。

今回は、Cubaseで特定のトラックのみを無効にする方法について紹介し

【転移学習】学習済みVGG16 による転移学習を行う方法【PyTorch】

今回は、PyTorch を使って、学習済みのモデル VGG16 を用い

【PyTorch】畳込みニューラルネットワークを構築する方法【CNN】

今回は、PyTorch を使って畳込みニューラルネットワーク(CNN)

→もっと見る

PAGE TOP ↑