This article has been translated from English to Japanese.

ビットコインの取引はどのように行われるのか?

ビットコイン取引とは、ブロックチェーンに記録された あるアドレスから別のアドレスへ、ビットコインを一定量送金することである。

しかし、この「送金」プロセスは実際どのように機能するのだろうか?

このレッスンでは、ビットコイン取引が最初から最後までどのように行われるのかを説明しようと思う。

まず、ユーザーの視点から見たビットコイン取引の仕組みを見ていく。その後、ビットコイン取引の仕組みを俯瞰的に見ていく。

これにより、これまでのレッスンで学んだ新しい概念をすべて思い出すことができるだろう。

準備はいいかい?

Start Bitcoin Transaction

アイアンマンが1ビットコインを所有しており、それをバットマンに送金したいとしよう。

Ironman sends 1 BTC to Batman

アイアンマンの視点

アイアンマンがまず最初に行うことは、ビットコインのウォレットを開くことだ。

ウォレットの種類は問わないが、この例では、ノートパソコンにインストールしたソフトウェア・ウォレットを使用している。

Ironman initiates Bitcoin transaction

次にアイアンマンがすることは、バットマンにビットコインのアドレスを尋ねることだ。

ここでバットマンはビットコインを受け取りたい。バットマンはアイアンマンにビットコインのアドレスをメールで送信し、アイアンマンはそれをコピーして貼り付ける。

Ironman asks for Batman's address

アイアンマンは次に、バットマンに送金したいビットコインの金額を入力する。

Batman enters 1 BTC

彼の巨大な金チタン合金の指はタイプミスをしやすいので、正しい数字を入力したか念入りに確認する。

そして「送信」をクリックする。

Batman sends 1 BTC

すると、ウォレットソフトウェアが取引の確認のためパスワード入力を求める。

ビットコインを送金するには、アイアンマンはビットコイン・ネットワークに対して、実際に送金しているのが自分であり、ビットコインの所有権が自分にあることを証明する必要がある。

そこで登場するのが、ウォレットに保存されているアイアンマンの秘密鍵である。

アイアンマンが正しいパスワードを入力すると、ウォレットソフトウェアがバットマンの秘密鍵を使用して取引に「署名」し、「デジタル署名」と呼ばれる別のデータを作成する。(これはすべてバックグラウンドで行われる。)

Bitcoin wallet signs transaction

ビットコイン取引の舞台裏

ここから先は、バットマンの関与は終了する。

ウォレットソフトウェアがビットコインノードに接続し、「デジタル署名」公開鍵とともにトランザクションメッセージを送信する。

ノードは、その取引が有効かどうかを確認する。

  • そのアドレスに、その取引を行うのに十分なビットコインがあるか?
  • 送信者はBTCを送信する権限があるか?

例えば、バットマンが実際に1BTCを送信できるかどうかを確認する。すべてのチェックに合格したトランザクションは、ノードから他のノードに転送される。

デフォルトでは、ノードは互いに信頼していないため、各ノードは取引を再度独自に検証する。

そして、そのトランザクションが有効であると判断された場合のみ、接続されているノードにそのトランザクションが共有される。

Bitcoin transaction sent to nodes

トランザクションが有効であると判断された場合、「メモリプール」または「mempool」と呼ばれる一時的な保存領域に保存される。

この時点では、トランザクションは「未確認」または「保留中」とみなされる。

Bitconi transaction stored in mempool

マイナーと呼ばれる特別なノードが、このトランザクションを自身のメモリプールにある他の有効なトランザクションとともに「ブロック」にパッケージ化する。

Bitcoin miners bundle transactions into a block

マイナーは、そのブロックを最初に「採掘」する競争を行う。これは、特定のゼロの数で始まる数字を見つけようとすることを意味する。

この数字を見つける唯一の方法は試行錯誤することである。つまり、できるだけ多くの数字を当てていくことである。

Bitcoin miners compete

最初に正しい数字を当てたマイナーが、そのブロックを最初に「採掘」したことになる。

マイナーが正解を当てた瞬間、そのブロックを「当選番号」とともにビットコインネットワークの他のノードと共有する。

First Bitcoin miner to guess correct nonce wins

ビットコインネットワーク上のノードは、マイナーが正しい数字を推測したことを確認し、それが正しい場合は、その当選マイナーのブロックをブロックチェーンのコピーに追加する。そして、このブロックを他のノードにも送信する。

(取引を保持する)ブロックがブロックチェーンの「公式」バージョンに追加されたため、取引は「確認済み」とみなされる

そのブロックが作成され、新しい取引が検証され、そのブロックに追加されると、取引は「1回確認済み」となる。

Bitcoin nodes validate new block

バットマンの視点から

バットマンは取引が確認されたことを確認し、ビットコインが送金されたかどうかをビットコインのウォレットで確認する。

Bitcoin transaction confirmed

アイアンマンの取引を含むブロックの上に構築されたブロックの数が増えるほど、ブロックチェーン上での取引の「確認」の数も増える。

基本的に、追加されるブロックはそれぞれ「追加の確認」とみなされる。6回の確認を待つことが、ほとんどの取引が安全とみなされるための現在の標準である。

そして、3回確認されれば完了だ!

アイアンマンが所有するアドレスからバットマンが所有する新しいアドレスに1ビットコインが送金された。

アイアンマンとバットマンがビットコインのウォレットアドレスを公開しない限り、誰もこの2人の有名なスーパーヒーローがビットコイン取引に関与していたことを知ることはない。

誰もが目にするのは、あるアドレスから別のアドレスに1BTCが送金されたという事実だけである。しかし、アドレスの所有者が誰であるかはわからない。

ご覧の通り、ビットコイン取引の多くのステップは裏側で行われている。

バットマンがアイアンマンに自分のアドレスを知らせ、アイアンマンがビットコイン・ウォレットを使って取引を開始すると、あとはコンピュータとソフトウェアコードが処理した。

ビットコイン取引の全体像

ビットコインの取引がどのように行われるのか、全体像を見てみよう。

アイアンマンがバットマンのアドレスと送金するビットコインの金額を入力したと仮定しよう。

Bitcoin has been sent

アイアンマンのウォレットは、最新のデータベース(「ビットコインのブロックチェーン」)のコピーを実行しているすべてのコンピュータ(「ビットコインネットワーク」)にメッセージをブロードキャストするノードに接続する。そのメッセージには、「バットマンに1ビットコインを送りたい」という内容が記載されている。

アイアンマンは「秘密鍵」と呼ばれる一意の文字と数字の組み合わせを持っている。この秘密鍵を使って、バットマンのウォレットソフトウェアは「デジタル署名」を生成し、メッセージが彼から送信されたものであり、他の誰のものでもないことを保証する。

ビットコイン・ネットワークのコンピュータ(「フルノード」)は、アイアンマンが実際にメッセージを送信した人物であるかどうかを、アイアンマンが提供する別の文字と数字の列である「公開鍵」を使用して簡単に確認できる。この「デジタル署名」を検証するために「公開鍵」と呼ばれる。

また、すべてのノードが現在のデータベースのコピーを持っているため、アイアンマンが1ビットコインを送信できることも簡単に確認できる。

すべてのノードは、ビットコインネットワークに追加される最新の情報(「取引」)を常に互いに更新している。

トランザクションは、ビットコインが1つのアドレスから別のアドレスに送金された記録として存在する。トランザクションはブロックチェーンに個別に記録されるのではなく、まずブロックにグループ化される。

重要なのは、この時点では、取引は提案されたに過ぎない ということだ。まだどのコンピューターも 、台帳(「ブロックチェーン」)のコピーを更新していない。

取引はまず、確認待ちの待合室(「mempool」)に置かれる。

メモプール(メモリプール)とは、すべてのノードが保持する、未確認(保留中)の取引の小規模なデータベースである。メモプール内のすべての取引は保留中であり、ブロックに組み込まれるまでは信用すべきではない。

取引は提案されているだけで決済はされていないため、システムはメッセージを迅速に中継し、すべての参加者がそのメッセージを認識できるようにする。

下の図では、アイアンマンとバットマンは紫色の財布として表されている。

灰色の円は、ピアツーピア(P2P)のビットコイン・ネットワークの一部であるコンピュータ(「フルノード」)を表している。

黒い四角は、アイアンマンがネットワークに取引を提案した時点での、逐次更新された台帳のコピーである「ブロックチェーン」を表している。

ご覧の通り、ブロックチェーンの同一のコピーが、ビットコインのソフトウェアを実行している世界中のコンピュータ(「フルノード」)に保存されている。この設計により、単一のエンティティが台帳を管理することができず、ビットコインは政府や中央当局による管理(または閉鎖)に抵抗できる。

ブロックチェーンの完全なコピーを保持する「フルノード」と呼ばれるすべてのノードを破壊しなければ、台帳を消去することはできない。少なくとも1つのフルノード上に台帳が存在する限り、ビットコインの全取引履歴が記録されることになる。

Ironman and Batman as purple wallets

もちろん、トランザクションを作成しているのはアイアンマンだけではない。アベンジャーズの他のメンバーもビットコインを他の受取人に送っている。例えば、キャプテン・アメリカがウィンター・ソルジャーにビットコインを送っている可能性もある。

ここで、ネットワークの特別な参加者が登場する。「マイナー」である

マイナーは世界中に散らばるコンピュータで、ビットコイン・ネットワークの重要な一部を構成している。彼らの役割は、アイアンマンのような新しい有効な取引を束ねてグループ化し、決済のために提案することである。

これらの取引のグループは「ブロック」と呼ばれ、これが「ブロックチェーン」の「ブロック」の語源となっている。

ブロック取引の集合体である。ブロックは時系列で互いにリンクされ、「ブロックのチェーン」または「ブロックチェーン」を形成する。

常に数千台のコンピュータが互いに競い合いながら、次のブロックを作成する権利を獲得しようとしている。この競争は「パズル」を解くことを意味し、マイナーは現在のパズルを解くことで初めて新しいブロックを提案することができる。

この「パズル」は基本的に、正しい数字を当てることに帰着する。正しい数字を当てる確率は約6兆分の1である。

そのため、最初に「当たり」の数字を見つけるためのコツは、できるだけ多くの数字を当てることである。これには膨大なエネルギーを消費する膨大な演算能力が必要となる。

最初に答えを見つけた人には、「ブロック報酬」と呼ばれる報酬が与えられる。

ブロック報酬は、ノードがマイニングに参加するインセンティブとなるように設計されている。そうでなければ、高価なコンピューターやその稼働に必要な電気代を回収できないため、マイナーは存在し得ないだろう。

ブロック報酬は2つの要素で構成されている。

  1. 新たに発行されたビットコイン
  2. 取引手数料(アイアンマンなどの取引を始めた人が支払う)

採掘者が「獲得」する新しく鋳造されたビットコインは「ブロック補助金」と呼ばれ、報酬の大部分を占める。現在、新しいブロックにはそれぞれ6.25の新しく鋳造されたビットコインが報酬として付与される。

各ブロックには複数の取引が含まれ、すべての取引には手数料が含まれ、マイナーがこれを徴収する。

まとめると:

ブロック報酬 = ブロック補助金 + 取引手数料

ブロック報酬は、マイナーが取引の認証やデータベースの維持に必要な作業を行うインセンティブとなる

21万ブロックごとに、つまり約4年ごとに「半減」と呼ばれるイベントでブロック補助金が半分になる。このプロセスはブロック補助金がゼロになるまで継続される。その時点で、マイナーは取引手数料のみを受け取るようになる

新しいブロックは、およそ10分ごとにビットコインネットワーク上で確定するが、正確な時間は「パズル」が解かれる速さによって異なる。

現在、ほとんどの採掘は「マイニングプール」と呼ばれる、処理能力を結集しブロック報酬を共有する採掘者グループによって行われている。

このプロセスは以下の図に示されている。

Bitcoin Network with Miners

マイナーは現在、オレンジ色の円で表されている。

青い四角は、Ironmanの取引を含む多数の新しい取引が追加された更新済みの台帳を示している

現時点では、ネットワーク参加者のうち、新しい取引ブロックを提案したマイナーだけが、完全に更新された台帳を見ることができる。

他のすべての参加者は依然として、黒で表示されている 古いブロックのみを見ることができる。

報酬が大きいため、多くのマイナーが各取引ブロックの確定を競い合っている。

設計上、「パズル」を解くのは多大な労力を要する作業である。膨大なコンピューティングパワーが必要であり、大量の電力を消費するからだ。また、数千のマイナーのうち、どのマイナーが最初に「パズル」を解くかを予測することは不可能である。

マイナーが「パズル」を解くと(正しい数字を推測すると)、その解決策を提示し、その取引ブロックをネットワークに提案することができる。

このアプローチの優れた点は、パズルを解くのは困難でコストがかかるが、結果の確認は非常に簡単だということだ。マイナーが解決策と取引ブロックを投稿すると、ネットワークの他のメンバーがその作業を確認する。

取引が有効で、「パズル」の解答が正しければ、ネットワーク参加者はデータベースのコピーを更新し、新しい取引を反映させる

この時点で、アイアンマンの取引は決済済み、つまり 「確認済み」とみなされる。1ビットコインがアイアンマンのアドレスからバットマンのアドレスに移動し、ブロックチェーンに正式に記録された。

この「コンセンサス・メカニズム」は、どの取引が恒久的に記録され「確認」されるかを決定するものであり、ビットコインのブロックチェーン設計の要である。

このプロセスは以下の図に示されている。

Bitcoin Network syncs blockchain

ネットワークの全参加者が、提案された新しい取引ブロック(青い四角)を受け入れた。その結果、各々の台帳が更新され、同期される。

重要なのは、次のブロックの取引を確定させる競争は、前のブロックからの情報を含めるかどうかにかかっていることだ。これにより、マイナーはデータベースのコピーを迅速に更新し、確定したブロックの改ざんが非常に困難になる。

この「ブロックの連結」こそが、このデータベースアーキテクチャが「ブロックチェーン」と呼ばれる理由である。

ビットコインのブロックチェーンには、最初のブロック(「ジェネシスブロック」と呼ばれる)から現在に至るまでのすべてのブロックが含まれている。

もし、ブロックを提出する正体不明のビットコイン採掘者が悪意のある人物で、何らかの利益を得るために無効な取引ブロックを提案した場合はどうなるだろうか?

あるいは、アイアンマンが悪意を持って、誰にも気づかれないようにスパイダーマンとワンダーウーマンの両方に同時に同じ1ビットコインを送ろうとしているとしたら?

ネットワーク参加者は、提案されたブロック内の各取引を検証し、無効な取引を含むブロックを拒否する。現在、10万以上のノードが独立して、ビットコインの取引をひとつひとつ検証しているのだ。

取引の検証作業 と、有効な取引のみが決済されるようにすることは、ネットワーク参加者の間ではごく簡単なことだが、取引の決済を試みることはコストがかかるため、システムを不正に操作しようとするインセンティブは最小限に抑えられる。

まとめ

ビットコイン・ネットワーク上のすべてのやり取りをまとめてみよう。

  • ビットコインを他の人に送金したい場合、受取人のビットコインアドレスを指定すると、自分のウォレットがノードに接続して取引を開始する。
  • ノードは取引を検証し、有効性を確認した後、有効な取引を他のノードやマイナーにブロードキャストおよびリレーする。取引がビットコインのルールに違反している場合、ノードは自動的に拒否する。
  • マイナーはこれらの取引を「候補ブロック」(一時ブロック)にまとめ、数学的な「パズル」の解答を最初に正しく推測したマイナーが、ブロックチェーンにブロックを公開できる権利を得る。
  • 「勝利」したマイナーは、この仮ブロックをブロックチェーンに恒久的なブロックとして公開し、取引(およびバッチ内の他の取引)を確認する。
  • ノードはこのブロックを受け取り、マイナーがネットワークのルールに従っていることを確認する。(もしブロックがビットコインのルールに違反している場合、ノードは自動的にそれを拒否する。)
  • ノードが新しいブロックを受け取り、それが有効であると判断した場合は、他のノードに転送し、すべてのノード(マイナーを含む)が同期を維持し、同一のブロックチェーンを維持できるようにする。
  • 他のすべての採掘者は、作業中の一時的なブロックを削除し、新しい数学的「パズル」を解く新しい「候補ブロック」の作成を開始する。
  • 受取人のウォレットが接続しているノードが新しいブロックを受信すると、受取人のウォレットには、新たに受信したビットコインの残高が更新されて表示される。