暗号資産のしくみを知る

ブロックチェーンとは?仕組みとできること・できないことを図解

編集:金融ナンバーワンサイト | 更新:

ブロックチェーンは、取引などの記録を「ブロック」にまとめ、前のブロックを参照しながらつなぐ仕組みです。複数のコンピューターが、共通のルールで記録を検証・共有します。

過去の記録を書き換えにくくすることが特徴です。ただし、入力された情報の正しさや、利用するサービスの安全性は別に確認する必要があります。

ビットコインやイーサリアムは、ブロックチェーンを使っています。ブロックチェーンが記録を共有する仕組み、BTCやETHがその上でやり取りされる暗号資産です。

定義と基本的な性質:米国NIST「Blockchain Technology Overview」。以下の図や温度の例は、仕組みを説明するための模式図・仮定です。

1件の取引は、どう記録される?

AさんがBさんへ暗号資産を送るとき、送信された取引のうち、検証を通って選ばれたものがブロックに記録されます。BitcoinやEthereumに共通する流れを、4段階で見てみましょう。

  1. 取引を作って署名する送り先や内容を指定し、秘密鍵を使って電子署名を付け、ネットワークへ送ります。秘密鍵そのものは送信しません。
  2. ノードがルールを確かめるネットワークに参加するコンピューターを「ノード」と呼びます。検証を行うノードが、署名は正しいか、その資金を使えるか、二重払いになっていないかなどを確かめます。
  3. ブロックにまとめる取引が選ばれ、ブロックの候補に入ります。Bitcoinではマイナー、Ethereumでは選ばれた検証者がブロックを提案し、受け取った他のノードも検証します。
  4. 共有する履歴を決める有効なブロックの候補が複数あるときは、ルールに従って採用する履歴を選びます。その後もブロックの追加や投票が進み、方式ごとの条件に沿って確定性を確認します。

利用者はウォレットで取引を作り、ノードがネットワーク上で検証や共有を担います。

ハッシュ・電子署名・合意形成は、役割が違う

何を確認するための仕組みか
仕組み主な役割それだけでは分からないこと
ハッシュデータから一定の長さの値を作り、変更を見つける手がかりにするそのデータが現実に正しいか
電子署名対応する鍵による署名か、署名対象が変わっていないかを検証する鍵を使ったのが本人の意思による操作か
合意形成共通ルールに従い、共有する履歴や順序を決める記録の外にある商品の品質やサービスの信用

参考:Bitcoin Developer「Block Chain」、Ethereum公式「Proof-of-stake」。

なぜ、過去の記録を書き換えにくいのか

鍵になるのは、次のブロックが前のブロックのハッシュを参照することです。ハッシュは、データを一定の長さの値へ変換したもの。同じ方式で同じデータを計算すると同じ値になり、内容が変わると通常は大きく違う値になります。データを秘密にする暗号化とは用途が違います。

ブロック1記録:温度8℃このブロックの
ハッシュ:H1
ブロック2前の参照:H1次の記録を追加ハッシュ:H2
ブロック3前の参照:H2さらに記録を追加ハッシュ:H3
矢印は記録を追加する順序。H1〜H3は説明用の記号で、実際のハッシュ値ではありません。Bitcoinでは取引群をまとめた値などをヘッダーに含め、そのヘッダーのハッシュを次のブロックが参照します。

ブロック1の「8℃」を後から「3℃」に変えると、どうなるでしょうか。
ブロック1のハッシュが変わり、ブロック2に残るH1とのつながりが崩れます。履歴を書き換えるには、後続のハッシュを計算し直したうえで、ネットワークがその履歴を採用する条件も満たす必要があります。

書き換えた履歴が採用されにくい仕組み

Bitcoinでは、変更したブロックから先の作業証明(PoW)もやり直す必要があります。ノードは有効な履歴のうち、累積した計算の仕事量が最も大きいチェーンを選びます。過去を変える側は、その間も伸び続ける正規の履歴と競争することになります。

EthereumのPoSでは、ETHを預けた検証者が投票に参加します。預けた量に応じて投票を重み付けし、矛盾する投票などの不正には、預けたETHを失う罰則を設けています。

根拠:Bitcoinの作業証明、EthereumのPoS・履歴選択。

ブロックに記録された後も、確認は続く

通信の届く順序などによって、履歴の先端が一時的に分かれることがあります。Bitcoinでは、後から別の有効なチェーンが採用される「再編成」があり得ます。後続ブロックが増えることを確認するのは、こうした巻き戻りの可能性を考えるためです。

Ethereumでは、所定の投票条件を満たすと「ファイナリティ」と呼ばれる確定状態に達します。送付状況を見るときは、送信されたか、ブロックに入ったか、その記録がどこまで確定したかを順に確認します。詳しくはコンセンサスと確定性の解説をご覧ください。

できること・できないことを、3つの場面で確かめる

配送中の温度を記録する例で、後からの書き換え、入力ミス、秘密鍵の盗難を比べてみましょう。

場面1:記録した後に「8℃」を「3℃」へ変える

起きたこと
過去のデータを書き換えようとしています。
台帳での扱い
ハッシュのつながりが崩れます。計算し直しても、その履歴がネットワークに採用される条件を満たす必要があります。
確認が必要なこと
書き換えへの強さは、合意方式、計算能力や検証者の集中度、運営方法によって変わります。

場面2:本当は8℃なのに、最初から3℃と記録する

起きたこと
故障したセンサーが、誤った温度を送っています。
台帳での扱い
形式や署名などがルールに合っていれば、誤った「3℃」も記録されます。後から変更されていないことは確かめられても、実際の温度までは分かりません。
確認が必要なこと
センサーの精度や、入力者・データ提供者が信頼できるかを確かめる必要があります。

場面3:盗まれた秘密鍵で、記録を送られる

起きたこと
第三者が、本人の秘密鍵を使って操作しています。
台帳での扱い
盗まれた鍵でも署名の検証は通り得ます。ほかの条件も満たせば、本人が望まない操作が受け付けられます。
確認が必要なこと
秘密鍵や端末を守る対策が必要です。秘密鍵・署名・復元の違いと、漏洩やフィッシングへの対策を確認してください。

署名の不備や二重払いは、ネットワークのルールで検出できます。一方、温度や商品の状態など、外部の情報の正しさは情報源に依存します。外部データを届ける「オラクル」を使う場合も、誰がどのようにデータを集めているかが重要です。

根拠:NIST IR8202(特に第7章、PDF)、Ethereum公式「Oracles」、IPAの非金融分野における活用動向調査。

51%攻撃で起こり得ること

Bitcoinでは、採掘の計算能力が一部に集中すると、攻撃者が履歴を組み替えて、自分の支払いを巻き戻す二重払いを狙いやすくなります。この攻撃でも、他人の署名を偽造して資金を使うことはできません。

計算能力が過半数未満でも、攻撃が成功する可能性はあります。詳しくはBitcoin原論文・第11節(PDF)とBitcoin Developerを参照してください。

通常のデータベースと、どう使い分ける?

通常のデータベースも、複数のサーバーでデータを共有し、変更履歴を残せます。ブロックチェーンとの使い分けでは、誰が記録を管理し、参加者がどう検証するかがポイントです。

仕組みを選ぶときの比較軸
比べる点通常のデータベースブロックチェーン
更新を管理する主体運営者が権限や更新手順を設計する参加者が共有する検証・履歴選択のルールを使う。許可型では運営主体の管理も残る
訂正・削除権限と設計に応じて行う。監査履歴を残すこともできる過去を直接直す代わりに、訂正を示す記録を追加する設計などを使う。扱いは実装による
閲覧する人公開・限定公開のどちらも設計できる誰でも読めるものも、閲覧権限を絞るものもある
検討しやすい課題管理責任が明確で、迅速な更新や個人情報の扱いを重視する複数の主体が、特定の一者だけに頼らず、共通の履歴を検証したい

自社の在庫表なら、通常のデータベースで管理する方法が考えられます。複数の企業で使う場合も、共通の管理者に更新や訂正を任せられるなら、共有データベースで対応できます。各社が一つの管理者に頼らず履歴を検証したい場合は、ブロックチェーンが候補になります。

参加に許可が必要かどうかでも種類が分かれる

  • 許可不要のパブリック型:Bitcoinなど、あらかじめ運営者の参加許可を得ずに検証へ参加できる仕組み。必要な機器などの条件は、ネットワークごとに異なります。
  • 許可型:検証などに参加できる主体をあらかじめ定める仕組み。一組織が管理するプライベート型、複数組織で運営するコンソーシアム型などがあります。

検証への参加を制限する許可型でも、記録の閲覧は公開できます。参加と閲覧の範囲は、それぞれ決められます。

導入を考えるときは、ルールを決める人、訂正に責任を持つ人、公開する情報を先に整理しましょう。速度や費用は、使うネットワークや混雑状況、設計によって変わります。

比較の基礎:NIST IR8202(PDF)。在庫表は使い分けを説明するための例です。

暗号資産や音楽ファイルへの活用例

ブロックチェーンは、暗号資産の取引のほか、音楽ファイルの存在証明にも使われています。

Bitcoin:資金を使った履歴

過去に受け取ったBTCのうち、どれを使って、どこへ送ったかを記録・検証します。使用済みの資金を再び使う、二重払いを防ぐための仕組みです。ただし、支払い先が商品を届けるかどうかは、取引記録だけでは分かりません。

根拠:Bitcoin Developer。BTC自体の特徴はビットコインの基礎へ。

Ethereum:プログラムの実行と結果

スマートコントラクトというプログラムを動かし、その処理による状態の変化を共有できます。プログラム自体の欠陥や、利用する外部情報の誤りには注意が必要です。

根拠:Ethereum公式の取引実行の説明、外部情報への依存。仕組みと利用費用はEthereum・ETH・ガスの違いへ。

JASRAC「KENDRIX」:音源ファイルの存在証明

JASRACは、ブロックチェーンを使って「いつ、誰がその音楽ファイルを持っていたか」の存在証明を発行するサービスを提供しています。著作権が誰にあるか、侵害があるかの判断には、この記録以外の確認も必要です。

提供機能の確認先:JASRAC公式「KENDRIXのアップデートと存在証明機能」。

まずは公開されている記録を見てみよう

ブロックや取引を閲覧できる「ブロックエクスプローラー」を使うと、実際の記録を見られます。暗号資産を購入せずに試せます。

  1. Ethereum公式のエクスプローラー案内から、公開記録の閲覧先を選びます。
  2. ブロックの詳細で、ブロック番号・Hash・Parent Hashを探します。Parent Hashは、前のブロックを参照する値です。
  3. そのブロック内の取引を開き、取引の状態・収録ブロックを確認します。取引の実行が成功した表示と、チェーン上の確定性は分けて読みます。

公開記録を見るだけなら、秘密鍵の入力やウォレットの接続は不要です。Parent Hashをたどって、前のブロックとのつながりを確かめてみましょう。

さらに詳しく知りたい方へ

出典とこの記事の制作方法

NIST、Bitcoin Developer・原論文、Ethereum公式、IPAの資料と、サービス提供者の公式発表を参照しています。確認日は冒頭の更新日です。

調査・構成・原稿作成に生成AIを利用し、公式資料との照合と別エージェントによる確認を行いました。図や温度の例は説明用で、実測や体験談ではありません。運営者個人の執筆・監修による記事ではありません。編集方針もご覧ください。

あわせて読みたい