(図解)ブロックチェーン技術の仕組みをわかりやすく解説
暗号資産の登場により注目されたブロックチェーン
ブロックチェーンという技術は、
- 既存の情報技術(IT)を組合せた技術の総称
- 新しく開発された技術ではない
また、暗号資産 = ブロックチェーンでは無く、ブロックチェーンは色々な分野にも応用されています。
ブロックチェーンの応用例としては
- スマートコントラクト(契約の自動実行)・・・契約
- トレーサビリティ(製品情報の追跡)・・・取引
- 権利や資産の管理・・・管理
- 本人確認・身分証明・・・証明 等々
あらゆる分野で応用されています。
2008年に誕生したブロックチェーンの技術は、約10年の間に
- ブロックチェーン 1.0・・・暗号資産の中核技術
- ブロックチェーン 2.0・・・金融領域(フィンテック)への活用
- ブロックチェーン 3.0・・・非金融領域への活用
様々な技術アップデートがされています。
- Financial(金融)
- Technology(技術)
を組み合わせた造語です。
「情報技術を駆使した革新的、あるいは破壊的な金融商品・サービスの潮流」などの意味で使用されます。
この記事では、ブロックチェーンの
- 概要
- 仕組み
についてそれぞれ説明していきます。
ブロックチェーンの概要
ブロックチェーンの名前の由来は
- ブロック → Block:塊
- チェーン → chain:鎖
から来ています。
では、どのようなブロックをチェーンで繋いでいるのでしょうか。
ブロックと聞くと、
- レゴのブロック
- コンクリート・ブロック
- ブロック塊肉
これらを想像するかも知れません。
しかし、ブロックチェーンにおけるブロックでは、取引・履歴等々のデジタル記録を一定期間で区切った「情報の塊(ブロック)」をブロックとして扱います。
暗号資産の代表格であるビットコインのブロックチェーンのブロックには、ビットコイン取引の
- 一つ前ブロックの情報
- 取引日時
- 送信者
- 受信者
- 取引額 等々
のデジタル記録を10分毎に区切って、一つの「情報の塊(ブロック)」として生成し続けています。
分散型台帳
ブロック・チェーンを邦訳すると、「分散型台帳」になります。
「分散型台帳」という呼称の方が、ブロックチェーンをイメージしやすいので、「分散型台帳」を
- 分散型
- 台帳
それぞれに分けて説明します。
分散型
分散型とは、読んで字の如く「散らばっている状態」のことを意味します。
では、何が何処に散らばっているのかという事ですが
- 何が・・・台帳
- 何処に・・・インターネット上
つまり、台帳がインターネット上に散らばっています。
ビットコイン取引を行うときは、あなたが所有している
- スマート・フォン
- ノート・パソコン
を利用してインターネットに接続し、ビットコイン・ブロックチェーンにアクセスします。
ブロックチェーンの台帳はインターネット上にあると先述しましたが、厳密には台帳はブロックチェーン・ネットワークに参加している
- スマート・フォン
- ノート・パソコン
- サーバ 等々
の中にデータが保管されています。
つまり、あなたもブロックチェーン・ネットワークに参加する事により、あなたが所持する
- スマート・フォン
- ノート・パソコン
- サーバ 等々
は、ブロックチェーンのデータ保管場所になります。
これらコンピュータ端末は、ノードと呼ばれます。
ノード(Node)は邦訳すると
- 結び(目)
- 【植物, 植物学】節
- 【天文】交点 等々
という意味で使われ、特にコンピュータ・ネットワーク界では、ネットワークの
- 接点
- 分岐点
- 中継点 等
を意味します。
つまり、分散型台帳(ブロック・チェーン)は、取引・履歴等々のデジタル記録を一定期間で区切った「情報の塊(ブロック)」である台帳をブロックチェーン・ネットワークの参加者全員で共有、保存・管理しているため、
- 誰が
- いつ
- どのような情報を
「情報の塊(ブロック)」である台帳に書き込んだのかを
- 共有
- 偽造できないような形で保存
- 管理
する仕組みを備えた技術になります。
台帳
台帳とは、売買や事務上の記録の土台となる帳簿の事を指します。
取引記録が記載されている銀行通帳や家計簿も台帳の一つです。
台帳は、ブロックチェーンの「情報の塊(ブロック)」と同義で、ビットコイン・ブロックチェーンにおける台帳の中身は
- 一つ前ブロックの情報
- 取引日時
- 送信者
- 受信者
- 取引額 等々
という事になります。
ブロックチェーンの仕組み
ブロックチェーン技術の仕組みを
- 分散型管理システム
- ブロック構造
- 電子署名
に分けて説明します。
分散型管理システム
- スマートフォン
- ノート・パソコン
を利用してインターネットに接続するコンピュータ・ネットワーク・アーキテクチャには、大きく分けて
- クライアントサーバ・モデル
- P2P(Peer-to-Peer:ピア・ツー・ピア:以下、P2Pと呼ぶ)モデル
に分ける事が出来ます。
- 建築様式
- 構造
- 構成
という意味です。
コンピュータ分野では
- 基本設計
- 設計思想
を指します。
つまり、コンピュータネットワーク・アーキテクチャとは、
- コンピュータネットワーク・・コンピュータ同士をつなぐ
- アーキテクチャ・・・基本設計
複数のコンピュータを接続する基本設計ということになります。
クライアントサーバ・モデルでは、ネットワークで接続されているコンピュータを
- 特定の機能を集中的に担当するコンピュータ → サーバ
- 利用者の操作するコンピュータ → クライアント
それぞれ役割で明確に分けます。
- 依頼人
- 顧客
という意味になります。
クライアントサーバ・モデルにおけるクライアントは、「サーバの提供する機能・データ等のサービスを利用するコンピュータ」を指します。
クライアントサーバ・モデルに関する記事はこちら

クライアントサーバ・モデルに対置するコンピュータ・ネットワーク・アーキテクチャとして紹介されるのが、P2Pモデルです。
peer(ピア)は英単語で、(年齢・地位・能力などが)同等の者という意味です。
P2Pモデルにおけるpeer(ピア)は、
- 対等の立場で通信を行うノード
- 対等の立場で通信を行う通信相手
を意味しますので、P2Pモデルは
- ネットワークに接続されたコンピュータ同士がノードとして対等の立場、機能で直接通信
- インターネット基盤であるIPネットワークはIPアドレスさえ分かればどのノードとも通信可能
という特徴を持ったコンピュータネットワーク・アーキテクチャという事になります。
P2Pモデルに関する記事はこちら

一般的に
- クライアントサーバ・モデル・・・中央集権型
- P2Pモデル・・・非中央集権型
それぞれの型に分ける事が出来ます。
中央集権型
中央集権型であるクライアントサーバ・モデルのメリットは、コンピュータネットワーク・アーキテクチャの中心に君臨するサーバが情報を一元管理するため、クライアントはデータを保管する必要がありません。
デメリットは、管理元が一つだけなので、
- 外部からの不正アクセス
- 攻撃
を受けた時にサーバがダウンして利用停止になることがあります。
最悪の場合、
- 情報漏洩
- データ改竄 等々
の被害が発生する可能性もあります。
非中央集権型
非中央集権型であるP2Pモデルは、中央に管理者を置かずにコンピュータ同士を繋げて管理しているコンピュータネットワーク・アーキテクチャです。
ブロックチェーンでは、この非中央集権型のP2Pモデルを採用しています。
非中央集権型のP2Pモデルでは、ブロックチェーン・ネットワーク参加者全員のノードが
- 情報を管理
- 不正が起こらないように監視
を行なっており、ブロックチェーン・ネットワーク参加者一部のノードが
- 故障
- 攻撃
を受けて機能出来なくとも、他のノードがブロックの情報を保持している為、ブロックチェーン・ネットワーク全体が影響を受けることはありません。
ブロック構造
ブロックチェーンの一つ一つのブロックは、
- どのような構造になっており
- どのような情報を記録しているのか
ビットコインのブロックチェーン・ネットワークのブロックを例にとって見ていきます。
ビットコインのブロックチェーン・ネットワークのブロックには
- 前ブロックのハッシュ値
- タイムスタンプ
- ビットコインのトランザクション(取引情報)
- Nonce(Number Used Once)
が記録されています。
前ブロックのハッシュ値
ハッシュ値とは、ハッシュ関数を通して任意長のビット列から規則性のない固定長のビット列を生成する値の事です。
少し日本語が難しいですが、要はハッシュ関数は
- 短い単語や長い文章(任意長のビット列)を引数として入力
- 規則性のない一定の長さの文字列(規則性のない固定長のビット列)が戻り値(ハッシュ値)を返す
という役割を果たしています。
ハッシュ関数には
- 同じ入力値に対しては必ず同じハッシュ値が出力
- ハッシュ値から元の入力値に復元することは不可能/li>
という特徴があります。
ハッシュに関する記事はこちら

ビットコインのブロックチェーン・ネットワークでは、ハッシュ関数を利用して、ブロック内にある
- 前ブロックのハッシュ値
- タイムスタンプ
- ビットコインのトランザクション(取引情報)
- Nonce(Number Used Once)
の情報をハッシュ値に変換します。
平文 (入力値) | ハッシュ関数 | 暗号文 (ハッシュ値) |
---|---|---|
・00005AD067 039524BEE78 39291B28B36 5AD4B0E8A9 C17CA961CF9 CC353E96FF ・2019年11月15日 ・Aさん ➡︎ Bさん 3BTC ・Sさん ➡︎ Hさん 2.4BTC ・Dさん ➡︎ Gさん 0.7BTC ・9A529A0B | 000003E61 195DA3EC3 06277615B 7CB99DADB 530FAA7622 DBC0C4271 EAEE997C7 |
何故、これらの情報を記録しているブロックは、ハッシュ関数を通してハッシュ値にする必要があるかというと、ブロック・チェーンが
- 透明性の確保
- 高セキュリティ
を実装する為です。
ビットコインのブロックチェーン・ネットワークでは、ビットコインの取引履歴等々は誰でも閲覧可能ですが、匿名性は保たれています。

トランザクション(取引情報)
トランザクション(Transaction)は邦訳すると
- 処理
- 取引 等々
の意味があり、DB(データベース)処理のようなIT分野では「分割不可な一連の処理」としてトランザクションという用語が使われます。
ビットコインのブロックチェーン・ネットワークにおけるブロックのトランザクションは
- Transaction Input(トランザクション・インプット)
- Transaction Output(トランザクション・アウトプット)
から構成されています。
UTXOとは、Unspent Transaction Outputの略で、邦訳すると「未使用取引アウトプット」と呼ばれています。
つまり、トランザクションで使用されなかった(未使用:Unspent)Transaction Output(取引アウトプット)という意味です。
例えば、Aさんはトランザクション・インプットにより得た5BTCを持っているとします。
AさんはBさんに3BTCを譲渡する取引をするとしましょう。
この場合、5BTCを
- 3BTC
- 2BTC
に分割することは出来ません。
その代わり、トランザクション・インプットの5BTCを
- 3BTC・・・Bさん
- 2BTC・・・Aさん(自分自身)
というように行います。
この、Aさん(自分自身)に送信した2BTCが、UTXOになります。
取引番号 | 送信 | 受信 | ||
---|---|---|---|---|
送信者 | 取引額(BTC) | 受信者 | 取引額(BTC) | |
1 | Aさん | 5 | Bさん | 3 |
Aさん | 1.9 | |||
手数料 | 0.1 |
UTXOに関する記事はこちら

Nonce(Number Used Once)
Nonce(Number Used Once:ナンス)は、「一度だけ使われる数字」という意味です。
「一度だけ使われる数字」ですので、あまり意味のない様に思えるかもしれませんが、Nonce の役割こそが、ブロックチェーンの肝になっています。
Nonceは
- 32ビットの文字列
- 4バイト
- 16進数で表すと8桁
になります。
つまり、32ビットだと2の32乗ですので、「4,294,967,296」通りのNonceが存在します。
ビット・バイト・16進数に関する記事はこちら

Nonceの役割こそが、ブロックチェーンの肝だと先述しました。
その32ビットの文字列であるNonceの役割とは、「ブロックを作り次のブロックと繋げる事」なのです。
新しいブロックが生成されるに当たっては、一定の条件「ハッシュ値の頭に一定以上のゼロが続く」を満たすハッシュ値のみが認められています。
新しいブロックが生成される度に、
- 最初は「ハッシュ値の頭にゼロが一つ」 → 0F731584・・・・
- 次に「ハッシュ値の頭にゼロが二つ」 → 00E6BA2D・・・・
- その次は、「ハッシュ値の頭にゼロが三つ」 → 000DBE4I・・・・
- ・・・・
というように新しいブロック生成の条件の難易度は上がっていきます。
ブロック・チェーンのブロックの記録で必要な情報は「トランザクション」だけですが、Nonceを利用する事で、悪意のある第三者からのデータの改竄を防ぐ役割も果たしています。
実際のビットコインのブロックチェーン・ネットワークでの新しいブロック生成の流れを見てみます。
例えば、新しいブロック生成の条件が、「ハッシュ値の頭にゼロが五つ」だとします。
この条件を満たす為に
- 前ブロックのハッシュ値
- タイムスタンプ
- トランザクション
これらのデータに、
- 00000000から
- FFFFFFFFまで
Nonceを総当たりで一つずつ代入していき、「ハッシュ値の頭にゼロが五つ」の条件を満たすまで計算し続けます。
前ブロックの ハッシュ値 | ・タイムスタンプ | ・トランザクション (取引情報) | Nonce | 新ブロックの ハッシュ値 |
---|---|---|---|---|
00005AD 0670395 24BEE78 39291B2 8B365AD 4B0E8A9 C17CA96 1CF9CC3 53E96FF | 2019年 11月15日 | A ➡︎ B 3BTC S ➡︎ H 2.4BTC D ➡︎ G 0.7BTC | 00000000 | 30FF7 ・・・ ・・・ ・・・ |
00005AD 0670395 24BEE78 39291B2 8B365AD 4B0E8A9 C17CA96 1CF9CC3 53E96FF | 2019年 11月15日 | A ➡︎ B 3BTC S ➡︎ H 2.4BTC D ➡︎ G 0.7BTC | 00000001 | 9AF04 ・・・ ・・・ ・・・ |
00005AD 0670395 24BEE78 39291B2 8B365AD 4B0E8A9 C17CA96 1CF9CC3 53E96FF | 2019年 11月15日 | A ➡︎ B 3BTC S ➡︎ H 2.4BTC D ➡︎ G 0.7BTC | 00000002 | E858D ・・・ ・・・ ・・・ |
・ ・ ・ | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ | ・ ・ ・ |
00005AD 0670395 24BEE78 39291B2 8B365AD 4B0E8A9 C17CA96 1CF9CC3 53E96FF | 2019年 11月15日 | A ➡︎ B 3BTC S ➡︎ H 2.4BTC D ➡︎ G 0.7BTC | 9A529A0B | 000003 E61195 DA3EC3 062776 15B7CB 99DADB 530FAA 7622DB C0C427 1EAEE9 97C7 |
この新しいブロックを生成する条件のNonceを見つける計算作業を、マイニングと呼びます。
ハッシュ関数は不可逆性の関数であるため、Nonceを色々な値に変更しながら総当りでハッシュ値を確認する以外に一定以上のゼロが続くハッシュ値を探す方法がないため、マイニングは大変な作業になります。
- 前ブロックのハッシュ値
- タイムスタンプ
- トランザクション
- Nonce
のデータのうちのどれかひとつでも変わると各ブロックのハッシュ値も変わるため、改竄にもすぐに気づくことが可能になっています。
例えば、ブロックAのトランザクションを改竄する(書き換える)と、ブロック間の整合性を保つ為にブロックBのハッシュ値を変える必要があります。
ブロックBのハッシュ値が変わるとブロックCのハッシュ値も変える必要が出てきます。
このように、一箇所のトランザクションを書き換える事で後続に波及してしまい、全体を書き換える必要が出てきてしまいます。
加えて、新しいブロックを生成する条件である「ハッシュ値の最初に一定以上のゼロが続く」を満たすハッシュ値を見つけるのは非常に難しく、膨大な計算時間が必要な作業なので、ブロックの改竄が実質的に出来ない仕組みになっているのです。
電子署名
ビットコインのブロックチェーン・ネットワークでは、ビットコインのとトランザクションが記録されています。
ビットコインを個人や取引所・販売所で
- 購入
- 売却
- 譲渡 等々
の取引をする度に、ビットコインのブロックチェーン・ネットワークにトランザクションとして書き込む必要があります。
ビットコインのブロックチェーン・ネットワークではトランザクションに書き込む、
- 取引者
- 取引内容
が取引者本人より行われており、且つ内容が正しいものなのかどうかビットコインのブロックチェーン・ネットワーク参加者で検証する必要があります。
そのトランザクションの書き込みが正しいかを検証する仕組みが電子署名になります。
電子署名とは、
- 電子取引
- 電子ファイル(PDF 等々)
の取引者・作成者本人が取引・作成した事を証明する技術のことです。
企業・個人間で行われる契約書・稟議書等々の紙媒体への、
- 直筆の書名
- 判子の押印
と同様に電子署名では、電子取引や電子ファイル媒体に
- 取引情報に取引者本人のデジタル版の署名
- 作成者本人のデジタル版の署名
を電子的に残すだけです。
電子署名の技術は、
- 契約書
- 電子カルテ
- 公共事業の電子入札 等々
- 暗号資産の取引
で広く利用されています。
公開鍵暗号方式
電子署名の仕組みでは、公開鍵暗号方式という情報(データ)を暗号化する技術が使われています。
公開鍵暗号方式では、
- 公開鍵
- 秘密鍵
二つの鍵が使われ、それぞれの特徴は
- 公開鍵・・・暗号文を復号
- 秘密鍵でしか開錠出来ない錠みたいなもの
- 秘密鍵により複数作成可能
- 秘密鍵・・・平文を暗号化
- 公開鍵を作成出来る鍵みたいなもの
- 公開鍵を開錠出来る唯一の手段
になります。
「鍵」とありますが、暗号化・復号化する為の手段としての「鍵」という意味であり、インターネットの中で、実際に物理的(有形)な「鍵」をやり取りする訳ではありません。
実際の「鍵」の正体は、「鍵」のような役割を果たす無形資産(データ)です。
電子署名では、電子取引を行なった取引者本人が秘密鍵を用いて電子取引を電子署名(暗号化)します。
秘密鍵を用いて電子署名(暗号化)したので、復号化(検証)する為には公開鍵が必要になります。
ここで、公開鍵の特徴を思い出して欲しいのですが、公開鍵は秘密鍵によってしか生成されません。
つまり、秘密鍵を用いて電子署名(暗号化)した電子取引の取引者本人しか公開鍵を生成出来ないのです。
また、公開鍵は秘密鍵によって複数作成可能ですので、電子取引の電子署名(暗号化)後に取引者本人は復号化(検証)してもらう為に周囲の者に公開鍵を配ります。
公開鍵を受け取った者は、電子署名(暗号化)が本人のモノか検証する為に復号化(検証)します。
復号化(検証)に成功した電子取引は正当性が認められます。
電子署名において
- 秘密鍵・・・施錠用の鍵(電子署名(暗号化))
- 公開鍵・・・解錠用の鍵(復号化(検証))
の役割をそれぞれ果たしているのです。
この電子署名が実際にビットコインのブロックチェーン・ネットワークで応用されているか見ていきます。
ビットコインのブロックチェーン・ネットワークにおける電子署名
AさんのビットコインアドレスからBさんのビットコインアドレス宛にBTC(ビットコイン)を送信する際は
- 取引情報の生成
- 取引情報をAさんの秘密鍵を使い電子署名(暗号化)
- P2P・ネットワークに取引情報を送信
- 取引情報の復号化(検証)
という流れになります。
取引情報の生成
Aさん自身が、「AさんのビットコインアドレスからBさんのビットコインアドレスへ1BTC」という取引情報を生成します。
電子署名
Aさんは、Aさんが生成した取引情報をAさんの秘密鍵を使い電子署名(暗号化)します。
Aさんが、取引情報を電子署名(暗号化)する事で、この取引がAさんの取引である事を証明します。(所有の確認)
取引情報のP2P・ネットワークへの送信
ビットコインのブロックチェーン・ネットワークに「AさんのビットコインアドレスからBさんのビットコインアドレスへ1BTC」という取引情報を送信・公開します。
取引情報の検証
Aさんは、ビットコインのブロックチェーン・ネットワークに取引情報に加えて、公開鍵を送信・公開して、Aさんの取引情報の復号化(検証)をビットコインのブロックチェーン・ネットワークに参加しているユーザに実施してもらいます。
Aさんの取引情報を復号化(検証)出来るのは、Aさんの持つ秘密鍵とペアで生成された公開鍵だけです。
つまり、ビットコインのブロックチェーン・ネットワークによって行われる復号化(検証)によって
- 秘密鍵で電子署名(暗号化)された取引情報
- 公開鍵で復号化(検証)した取引情報
の一致が検証出来れば、この取引情報を送ったのはAさんであるということになります。
- 本人が送信者なのか
- 取引情報が途中で改竄されていないか
を証明するために電子署名が利用されているのです。
復号化(検証)の結果、取引に問題がなくAさんの電子署名(暗号化)だと証明されれば、その取引情報はビットコインのブロックチェーン・ネットワークに保管されます。
ブロック・チェーン技術のまとめ
この記事の冒頭でも言いましたが、ブロックチェーンは、
- 既存の情報技術(IT)を組合せた技術の総称
- 新しく開発された技術ではない
というものです。
この既存の情報技術(IT)というが、
- コンピュータ・ネットワーク・アーキテクチャである分散型管理システムのP2Pモデル
- ブロック構造のトランザクションをハッシュ値に返すハッシュ関数
- トランザクションの正当性を検証する電子署名の公開鍵暗号方式
になります。
つまり、ブロックチェーンは、これら既存技術を組合わせた技術の総称という事です。
以上、ブロックチェーンの
- 概要
- 仕組み
についての説明になります。
コメント