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

公開日: : 最終更新日: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)といいます。

参考図書

関連記事

【イーサリアム】 公開鍵暗号について調べてみた。

仮想通貨の1つであるイーサリアムでは、公開鍵暗号という技術が使われています。 公開鍵暗

記事を読む

【イーサリアム】 チューリング完全性について調べてみた。

仮想通貨の1つであるイーサリアムについて調べていると、チューリング完全性(Turing co

記事を読む

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

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

記事を読む

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

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

記事を読む

【ビットコイン】 アドレス生成方法について調べてみた。

仮想通貨の1つであるビットコインを送金するときは、送付側と受け手側のそれぞれのアドレスが必要

記事を読む

【ビットコイン】1ブロックに含まれる情報について調べてみた【マークル木】

ビットコインなどの仮想通貨では、トランザクション(取引)の束を「ブロック」という単位で扱い、

記事を読む

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

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

記事を読む

【MetaMask】イーサリアムのウォレットを使ってみた【テスト環境】

今回、イーサリアムのウォレットの1つである MetaMask(メタマスク)を使って、テストブ

記事を読む

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

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

記事を読む

初心者でも分かるビットコインの仕組みについてまとめてみた。

ビットコインは,時価総額が1位で最も有名な仮想通貨です. 仮想通貨の時価総額の見方について

記事を読む

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

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

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

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

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

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

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

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

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

今回は、PyTorch を使って、ニューラルネットワーク(NN)を構築

→もっと見る

PAGE TOP ↑