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

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

参考図書

関連記事

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

【MT4】日付と時間を指定してPCを自動起動させる方法【DELL】

今回は、日付と時間を指定してPCを自動的に起動させる方法について紹介し

【MT4】PCが再起動しても自動的に起動させる方法【FX自動売買】

今回は、FX 自動売買用のツールの MT4 で、実行しているPCが再起

【MT4】複数口座を同時に起動させる方法【FX・CFD】

今回は、MT4(メタトレーダー4)で複数口座を同時にログインし、起動さ

【MQL4】スプレッドを取得する方法【MT4】

今回は、MQL4 で対象通貨ペアのスプレッドを取得する方法について紹介

【楽天CFD】取引口座を開設してみた【MT4】

今回は、楽天CFDの取引口座(本番口座)の開設方法について紹介します。

→もっと見る

PAGE TOP ↑