This article has been translated from English to Japanese.

ビットコイン採掘者とは何だろうか?

何かスコップやシャベル、洞窟が関係しているのだろうか?

Bitcoin miner

いいえ。

このレッスンでは、ビットコインマイナーとは何かを説明しよう。

ここでも、前回のレッスンで取り上げた例にあるような矛盾する取引を含むビットコインネットワークがある。

一部のノードには「紫」の取引が含まれ、他のノードには「赤」の取引が含まれている。

しかし、両方の取引は同じビットコインを使おうとしている。

コンピュータは、どちらの取引が正当なものなのか、どのようにして合意に至るのだろうか?

ここで「マイニング」が登場する。

Which Bitcoin transaction is the legit one?

このコンピューターの中を見て、さらに詳しく見てみよう。

Inside look at Bitcoin node

このノードは「マイナー」である。

ビットコインマイナーとは何だろうか?

マイナーノードとは、取引の確認という追加作業を行うビットコインのフルノードである。

すべてのマイナーはノードであるが、すべてのノードがマイナーであるわけではない。ビットコインのマイナーはノードを稼働させなければ活動できない。しかし、フルノードが必ずしもマイナーであるとは限らない。

フルノードはトランザクションを受信、保存、および他のノードにブロードキャストするが、マイナーノードも同様のことを行うが、さらにトランザクションの新しいブロックを作成し、それを他のノードにブロードキャストして、新しいブロックを受け入れるか拒否するかを判断してもらう。

次のレッスンで説明するように、「マイニング」の仕組み上、マイナーは専用のハードウェアを使用する必要がある。

興味があれば、マイニングマシンの例を以下に示す。美しいと思わないだろうか? 😍

Antminer

ビットコインのマイナーはどのように「採掘」するのか?

それでは、マイナーの内部を見て、メモリプールからトランザクションを「採掘」してファイル(「ブロックチェーン」)に書き込む仕組みを見てみよう。
Deeper look into Bitcoin miner

マイナーのメモリプールの中を見てみよう。

紫色のトランザクションが格納されている。

Bitcoin miner with one transaction in memory pool

しかし、メモリプールには複数のトランザクションを格納できる。

それでは、さらに新しい取引があるものと仮定してみよう。

例えば、このメモリプールには4つのトランザクションが含まれている。(実際には、メモリプールには数千のトランザクションを格納できる。)

Bitcoin miner with four transaction in memory pool

では、マイナーはメモリプール内のこれらのトランザクションをどのように処理するのだろうか?

「候補ブロック」と呼ばれるコンテナを作成する。

これは単にトランザクションを格納するコンテナである。

マイナーは、この候補ブロックにメモリプールからトランザクションを追加していく。

候補ブロックとは何だろうか?

候補ブロックは、メモリプールから選択されたトランザクションを使用して作成される 一時的なブロックだと考えてください。

この一時的なブロックは「候補ブロック」と呼ばれているが、それはまだ有効なブロックではないためである。マイナーが追加しようとしているブロックチェーンに実際に追加されたブロックのみが有効なブロックとみなされる。

Bitcoin miner creates a candidate block

つまり、このマイナーがすることは、この候補ブロックにメモリプールからトランザクションを追加することである

Bitcoin will fill candidate block

このように...

Bitcoin miner fills candidate block with transactions

スペースには限りがあるため、各ブロックに含めることのできる取引の数には限りがある。マイナーは、最も高い手数料の取引を優先するようインセンティブを与えられる。

そして、この「ブロック」の取引をファイル(「ブロックチェーン」)に追加しようとする。

では、候補ブロックは実際にどのようにブロックチェーンに追加されるのだろうか?

How does the candidate block actually get added onto the blockchain?

候補ブロックを詳しく見てみよう。