【図解あり】ブロックチェーンとは




【図解あり】ブロックチェーンとは

仮想通貨(暗号資産)の登場により、一気に注目されたブロック・チェーン技術。

ブロック・チェーンという技術自体は、

  • 既存の情報技術(IT)を組合せた技術の総称
  • 新しく開発された技術ではない

仮想通貨(暗号資産) = ブロック・チェーン技術では無く、ブロック・チェーン技術は色々な分野(産業)にも応用されています。

ブロック・チェーン技術の応用例としては

  • スマートコントラクト(契約の自動実行)・・・契約
  • トレーサビリティ(製品情報の追跡)・・・取引
  • 権利や資産の管理・・・管理
  • 本人確認・身分証明・・・証明 等々

を挙げる事が出来ます。

ブロック・チェーンの進化

2008年に誕生したブロック・チェーン技術は、約10年の間に

  • ブロック・チェーン 1.0・・・仮想通貨(暗号資産)の中核技術
  • ブロック・チェーン 2.0・・・金融領域(フィンテック)への活用
  • ブロック・チェーン 3.0・・・非金融領域への活用

様々な技術アップデートがされています。

フィンテック(Fin Tech)・・・Financial(金融)とTechnology(技術)を組み合わせた造語。

フィナンシャル・テクノロジーの略。

情報技術を駆使した革新的、あるいは破壊的な金融商品・サービスの潮流」などの意味で使用されます。

この記事では、

  • ブロック・チェーン技術とは何か
  • ブロック・チェーン技術の仕組み
  • ブロック・チェーン技術の

に分けて説明していきます。

ブロック・チェーンとは何か

ブロック・チェーンとは何か

ブロック・チェーンの名前の由来は

  • ブロック ➡︎ Block : 塊
  • チェーン ➡︎ chain : 鎖

から来ています。

ブロック・チェーン

では、どのようなブロック(塊)をチェーン(鎖)で繋いでいるのでしょうか。

ブロックと聞くと、

  • レゴのブロック
  • コンクリート・ブロック
  • ブロック(塊)肉

これらを想像するかも知れません。

ブロック

ブロック・チェーン技術におけるブロックとは、取引・履歴等々のデジタル記録を一定期間で区切った「情報の塊(ブロック)」を指します。

仮想通貨(暗号資産)の代表格であるビットコイン(BTC)では、ビットコイン(BTC)取引の

  • 1つ前ブロックの情報
  • 取引日時
  • 送信者
  • 受信者
  • 取引額 等々

これらの取引・履歴等々のデジタル記録10分毎に区切って、1つの「情報の塊(ブロック)」として生成し続けています。

つまり、ブロック・チェーンは、「情報の塊(ブロック)」をチェーンで繋いでいるのです。

ブロック・チェーン

ブロック・チェーン技術のチェーンは、「情報の塊(ブロック)」を物理的に繋げているわけでは無く、1つ前の「情報の塊(ブロック)」の情報の一部を記録している為、比喩的にチェーンと呼んでいるのです。

分散型台帳

ブロック・チェーンを日本語で分かりやく呼ぶと、「分散型台帳」になります。

分散型台帳の方が、ブロック・チェーン技術をイメージしやすいと思います。

先ず、分散型台帳

  • 分散型
  • 台帳

それぞれに分けて説明します。

台帳

台帳・・・売買や事務上の記録の土台となる帳簿。

台帳

取引記録が記載されている銀行通帳や家計簿も台帳の一つです。

台帳

台帳は、上記ブロック・チェーンの「情報の塊(ブロック)」と同義です。

ブロック・チェーン

台帳は、上記ブロック・チェーンの「情報の塊(ブロック)」と同義ですので、仮想通貨(暗号資産)の代表格であるビットコイン(BTC)での台帳の中身は

  • 1つ前ブロックの情報
  • 取引日時
  • 送信者
  • 受信者
  • 取引額 等々

という事になります。

台帳

分散型

分散型とは、読んで字の如く「散らばっている状態」のことを意味します。

では、何が何処に散らばっているのかという事ですが

  • 何が・・・台帳
  • 何処に・・・インターネット網

台帳が、インターネット網上に散らばっています。

分散型

例えば、仮想通貨(暗号資産)の代表格であるビットコイン(BTC)取引を行うときは、あなたが所有している

  • スマート・フォン
  • ノート・パソコン

から、インターネット網にある、ビットコイン(BTC)ブロック・チェーン・ネットワークに接続する必要があります。

ブロック・チェーン・ネットワーク

あなたが所有している

  • スマート・フォン
  • ノート・パソコン

を使用して、ビットコイン(BTC)ブロック・チェーン・ネットワークの

  • 取引記録の読み取り
  • 新たな取引記録のを書き込み

を行います。

この、ビットコイン(BTC)ブロック・チェーン・ネットワークに接続した

  • スマート・フォン
  • ノート・パソコン
  • サーバ 等々

これらコンピュータ端末の事をノードと呼びます。

サーバに関する記事はこちら

【図解あり】サーバ(server)とは【コンピュータ分野】
【図解あり】サーバ(server)とは コンピュータが中心の現代に置いて、サーバ(server)無しでは、 Webへのアクセス メールの送受信 データベースの処理・運用 等々 が容易に出来ません。 この記事...

ノード(Node)・・・ノードは英単語です。
邦訳すると

  • 結び(目)
  • 【植物, 植物学】節
  • 【天文】交点 等々

という意味で使われ、特にコンピュータ・ネットワーク界では、ネットワークの

  • 接点
  • 分岐点
  • 中継点 等

を意味します。

具体的には、コンピュータ・ネットワークを構成する

  • モデム・ハブ・ブリッジ・スイッチングハブ等のデータ通信機器
  • IP電話・プリンタ・ホストコンピュータ(ルータ・ワークステーション・サーバ等々)等のデータ端末装置

といった機器のことを指します。

コンピュータ・ネットワーク

つまり、分散型台帳(ブロック・チェーン)とは、取引・履歴等々のデジタル記録を一定期間で区切った「情報の塊(ブロック)」である台帳を、ブロック・チェーン・ネットワークの参加者全員が共有、保存・管理しているのです。

つまりブロック・チェーンは、ネットワーク参加者全員で

  • 誰が
  • いつ
  • どのような情報を

台帳に書き込んだのかを

  • 共有
  • 偽造できないような形で保存
  • 管理

これらの仕組みを備えた技術になります。

ブロック・チェーン・ネットワーク

ブロック・チェーン技術の仕組み

ブロック・チェーン技術の特徴

ブロック・チェーン技術の仕組みを

  • ユーザ同士で管理する分散型管理システム
  • ブロック・チェーンのブロック構造

順々に説明していきます。

ユーザ同士で管理する分散型管理システム

あなたが所有している

  • スマート・フォン
  • ノート・パソコン

を使用してインターネットに接続する際のコンピュータ・ネットワーク・アーキテクチャは、

  • クライアント・サーバ・モデル
  • P2P(peer-to-peer:ピア・ツー・ピア)モデル

これら2つに大別する事が出来ます。

アーキテクチャ(architecture)・・・アーキテクチャは英単語です。
邦訳すると

  • 建築様式
  • 構造
  • 構成

という意味で使われ、特にコンピュータ分野では

  • 基本設計
  • 設計思想

を意味します。

コンピュータ・ネットワーク・アーキテクチャとは、

  • ネットワーク ➡️ 機械と機械をつなぐ
  • アーキテクチャ ➡️ 基本設計

つまり、複数のコンピュータを接続する基本設計 ということになります。

クライアント・サーバ・モデルとは、ネットワークで接続されているコンピュータを

  • 特定の機能を集中的に担当するコンピュータ ➡️ サーバ
  • 利用者の操作するコンピュータ ➡️ クライアント

と、役割で明確に分けます。

クライアント・サーバ・モデル

クライアント(client)・・・クライアントは英単語です。
邦訳すると

  • 依頼人
  • 顧客

という意味で、クライアント・サーバ・モデルにおいてのクライアントは、サーバの提供する機能・データ等のサービスを使用する側のコンピュータを指します。

クライアント・サーバ・モデルに関する記事はこちら

【図解あり】クライアント・サーバ・モデルとは
【図解あり】クライアント・サーバ・モデルとは クライアント・サーバ・モデルとはコンピュータ・ネットワーク・アーキテクチャの一つです。 クライアント(client)・・・クライアントは英単語です。 邦訳すると 依頼人 ...

クライアント・サーバ・モデルに対置するコンピュータ・ネットワーク・アーキテクチャとして紹介されるのが、P2P(peer-to-peer:ピア・ツー・ピア)モデルです。

peer(ピア)・・・ピアは英単語です。
邦訳すると、(年齢・地位・能力などが)同等の者という意味です。

P2P(peer-to-peer:ピア・ツー・ピア)モデルにおいてのpeer(ピア)は、

  • 対等の立場で通信を行うノード
  • 対等の立場で通信を行う通信相手

を指します。

P2Pモデル

  • ネットワークに接続されたコンピュータ同士がノードとして対等の立場、機能で直接通信
  • インターネット基盤であるIPネットワークはIPアドレスさえ分かればどのノードとも通信可能

という特徴を持っています。

P2P(peer-to-peer)モデルに関する記事はこちら

【図解あり】P2P(peer-to-peer)モデルとは
【図解あり】P2P(peer-to-peer)モデルとは P2P(peer-to-peer:ピア・ツー・ピア)モデルとは、複数の端末間で通信を行う際のコンピュータのネットワーク・アーキテクチャの一つです。 peer(ピア)・・・...

P2P(peer-to-peer:ピア・ツー・ピア)モデル

一般的に

  • クライアント・サーバ・モデル・・・中央集権型
  • P2Pモデル・・・非中央集権型

それぞれの型に分ける事が出来ます。

中央集権型・非中央集権型

中央集権型

中央集権型

中央集権型であるクライアント・サーバ・モデルのメリットは、コンピュータ・ネットワーク・アーキテクチャの中心に君臨するサーバが、情報を一元管理する為、クライアントは、データを保管する必要がありません。

デメリットは、管理元が1つだけなので、

  • 外部からの不正アクセス
  • 攻撃

を受けた時にサーバがダウンして利用停止になることがあります。

最悪の場合、

  • 情報漏洩
  • データ改竄 等々

の被害が発生する可能性もあります。

非中央集権型

非中央集権型

非中央集権型であるP2Pモデルは、中央に管理者を置かずにコンピュータ同士を繋げて管理しているコンピュータ・ネットワーク・アーキテクチャです。

ブロック・チェーン技術では、非中央集権型P2Pモデルを採用しています。

非中央集権型P2Pモデルでは、ブロック・チェーン・ネットワーク参加者全員のノード(コンピュータ)が

  • 情報を管理
  • 不正が起こらないように監視

を行なっています。

また、P2Pモデルは、どれかひとつのノード(コンピュータ)が

  • 故障
  • 攻撃

を受けて機能出来なくとも、他のノード(コンピュータ)がブロックの情報を保持している為、ブロック・チェーンネットワーク全体が影響を受けることはありません。

非中央集権型

ブロック・チェーンのブロック構造

ブロック・チェーンのブロック構造

ブロック・チェーン11つのブロックは、どのような構造になっており、どのような情報を記録しているのか、仮想通貨(暗号資産)のビットコイン(BTC)のブロック・チェーンネットワークのブロックを例にとって見ていきましょう。

  • 前ブロックのハッシュ値
  • トランザクション(取引情報)
  • Nonce (Number Used Once)

ブロック・チェーンのブロック構造

前ブロックのハッシュ値

ハッシュ値とは、ハッシュ関数を通して任意長のビット列から規則性のない固定長のビット列を生成する値の事です。

少し日本語が難しいですが、要はハッシュ関数を利用する事で

  • 短い単語やどんなに長い文章(任意長のビット列)でも、それらを引数として入力すると
  • 規則性のない一定の長さの文字列(規則性のない固定長のビット列)が戻り値(ハッシュ値)となります

つまり、平文(入力値)をハッシュ関数を利用する事で暗号文(ハッシュ値)に変換させるのです。

ハッシュ関数・SHA-256

ハッシュ関数の特徴として

  1. 同じ入力値に対しては必ず同じハッシュ値が出力
  2. ハッシュ値から元の入力値に復元することは不可能

が、挙げる事が出来ます。

ハッシュに関する記事はこちら

ハッシュ関数を分かりやすく説明する
ハッシュ関数を分かりやすく説明する ブロックチェーン技術・仮想通貨の盛り上がりに乗じて、注目を浴びているハッシュ関数。 ハッシュ関数は、用途等によって チェックサム 誤り訂正符号 暗号学的ハッシュ関数 等々 異...
  • 前ブロックのハッシュ値
  • タイムスタンプ
  • トランザクション(取引情報)
  • 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

何故、これらの情報を記録しているブロックを、ハッシュ関数を通してハッシュ値である暗号文にする必要があるのでしょうか。

それは、ブロック・チェーン

  • 透明性の確保
  • 高セキュリティ

これらを実装する為です。

ビットコイン(BTC)のブロック・チェーンネットワークでは、ビットコイン(BTC)の取引履歴など、ブロックチェーン台帳に記録されたすべての取引履歴は誰でも見ることが出来ますが、匿名性は保たれています。

Blockchain Explorer | BTC | ETH | BCH
The easiest and most trusted transaction search engine and block explorer

トランザクション(取引情報)

トランザクション(取引情報)

トランザクション(Transaction)は、英語で、邦訳すると

  • 処理
  • 取引 等々

の意味があります。

DB(データベース)処理の様なIT分野では「分割不可な一連の処理」としてトランザクション(Transaction)という用語が使われます。

仮想通貨(暗号資産)の代表格であるビットコイン(BTC)のブロック・チェーンにおいて、ブロックの取引(トランザクション)は

  • Transaction Input(トランザクション・インプット)
  • Transaction Output(トランザクション・アウトプット)

から成立しています。

UTXO

UTXOとは、Unspent Transaction Output」の略で、邦訳すると「未使用取引アウトプット」等と呼ばれており、、取引(トランザクション)で使用されなかった(未使用)・Transaction Output(取引アウトプット)の事を指します。

例えば、Aさんはトランザクション・インプットにより得た5BTCを持っているとします。

AさんはBさんに3BTCを譲渡する取引をするとしましょう。

この場合、5BTCを

  • 3BTC
  • 2BTC

に分割することは出来ません。

その代わり、トランザクション・インプットの5BTCを

  • 3BTC・・・Bさん
  • 2BTC・・・Aさん(自分自身)

トランザクション(取引情報)

取引番号送信受信
送信者取引額(BTC)受信者取引額(BTC)
1Aさん5Bさん3
Aさん1.9
手数料0.1
実際には、手数料が掛かります。

UTXOに関する記事はこちら

【図解】仮想通貨(暗号資産)・ウォレットの仕組みと種類
【図解】仮想通貨(暗号資産)・ウォレットの仕組みと種類 ウォレット(Wallet : 財布)と聞くと、 紙幣 硬貨 が入っている物理的な財布が思い浮かぶかと思います。 しかし、仮想通貨(暗号資産)取引の中で使われる...

Nonce (Number Used Once)

Nonce (Number Used Once)を邦訳すると、「1度だけ使われる数字」という意味になります。

1度だけ使われる数字」ですので、あまり意味のない様に思えるかもしれませんが、Nonce (Number Used Once)の役割こそが、ブロック・チェーンの肝になっています。

Nonce (Number Used Once)は、32ビットの文字列です。

32ビットは4バイトですので、16進数で表すと8桁になります。

16進数では、0・1・2・3・4・5・6・7・8・9・A・B・C・D・E・Fの16の数字と文字を使います。

つまり、32ビットだと、2の32乗ですので、「4,294,967,296」通りのNonce (Number Used Once)が存在します。

ビットバイトに関する記事はこちら

コンピュータが動く仕組み【ビット・バイト】
コンピュータが動く仕組み【ビット・バイト】 コンピュータが動く仕組みは2進数が基本です。 2進数についてはこちら 僕たちが普段生活している世界では10進数を使っているので、2進数はしっくりこないと思います。 ...

進数に関する記事はこちら

コンピュータが動く仕組み【2進数・10進数を理解する】
コンピュータが動く仕組み【2進数・10進数を理解する】 コンピュータが動く仕組みを知る為には、2進数を知る事でより理解が深まります。 コンピュータのエネルギー源は電気です。 コンピュータの中の電気が枯渇してしまう(バッテリー切...

先程、Nonce (Number Used Once)の役割こそが、ブロック・チェーンの肝になっていると言いました。

その32ビットの文字列であるNonce (Number Used Once)の役割とは、「ブロックを作り次のブロックと繋げる事」なのです。

先ず、新しいブロックが生成されるに当たって、一定の条件「ハッシュ値の頭に一定以上のゼロが続く」を満たすハッシュ値のみが認められています。

新しいブロックが生成される度に、新しいブロック生成の条件の難易度は上がっていきます。

例えば、

  • 最初は「ハッシュ値の頭にゼロが1つ」 ➡︎ 0F731584・・・・
  • 次に「ハッシュ値の頭にゼロが2つ」 ➡︎ 00E6BA2D・・・・
  • その次は、「ハッシュ値の頭にゼロが3つ」 ➡︎ 000DBE4I・・・・
  • ・・・・

ブロック・チェーンのブロックの中身は

  • 前ブロックのハッシュ値
  • タイムスタンプ
  • トランザクション(取引情報)
  • Nonce (Number Used Once)

ですが、本当に重要な情報は「トランザクション(取引情報)」だけです。

ハッシュ関数

この「トランザクション(取引情報)」を含んだ新しいブロックを生成する条件の為に、Nonce (Number Used Once)が使われているのです。

例えば、新しいブロックを生成の条件が、「ハッシュ値の頭にゼロが5つ」だとします。

この条件を満たす為に

  • 前ブロックのハッシュ値
  • タイムスタンプ
  • トランザクション(取引情報)

これらの情報(平文)に、

  • 00000000から
  • FFFFFFFFまで

Nonce (Number Used Once)を総当たりで1つずつ代入していき、「ハッシュ値の頭にゼロが5つ」の条件を満たさなければならないのです。

前ブロックの
ハッシュ値
タイム
スタンプ
トランザクション
(取引情報)
Nonce
(Number
Used Once)
新ブロックの
ハッシュ値
00005AD067
039524BEE78
39291B28B36
5AD4B0E8A9
C17CA961CF9
CC353E96FF
2019年
11月15日
・A ➡︎ B 3BTC
・S ➡︎ H 2.4BTC
・D ➡︎ G 0.7BTC
0000000030FF7・・
・・・・・
・・・・・
・・・・・
00005AD067
039524BEE78
39291B28B36
5AD4B0E8A9
C17CA961CF9
CC353E96FF
2019年
11月15日
・A ➡︎ B 3BTC
・S ➡︎ H 2.4BTC
・D ➡︎ G 0.7BTC
000000019AF04・・
・・・・・
・・・・・
・・・・・
00005AD067
039524BEE78
39291B28B36
5AD4B0E8A9
C17CA961CF9
CC353E96FF
2019年
11月15日
・A ➡︎ B 3BTC
・S ➡︎ H 2.4BTC
・D ➡︎ G 0.7BTC
00000002E858D・・
・・・・・
・・・・・
・・・・・










00005AD067
039524BEE78
39291B28B36
5AD4B0E8A9
C17CA961CF9
CC353E96FF
2019年
11月15日
・A ➡︎ B 3BTC
・S ➡︎ H 2.4BTC
・D ➡︎ G 0.7BTC
9A529A0B000003E61
195DA3EC3
06277615B
7CB99DADB
530FAA7622
DBC0C4271
EAEE997C7

この新しいブロックを生成する条件のNonce (Number Used Once)を見つける事を、マイニングと呼びます。

マイニングは、大変な作業になります。

それは、ハッシュ関数は不可逆性の関数であるため、Nonce (Number Used Once)を色々な値に変更しながら総当りでハッシュ値を確認する以外に、一定以上のゼロが続くハッシュ値を探す方法がないからです。

  • ハッシュ関数
  • Nonce (Number Used Once)

これらを利用する事で、悪意のある人の改竄を防いでいます。

  • 前ブロックのハッシュ値
  • タイムスタンプ
  • トランザクション(取引情報)
  • Nonce (Number Used Once)

これら情報のうちの、どれかひとつでも変わると各ブロックのハッシュ値も変わるため、改竄にもすぐに気づくことが可能になっています。

例えば、ブロックAのトランザクション(取引情報)を改竄する(書き換える)と、ブロック間の整合性を保つ為にブロックBハッシュ値を変える必要があります。

ブロックBハッシュ値が変わると、ブロックCハッシュ値も変える必要が出てきます。

ブロック・チェーンの改竄

このように、1箇所のトランザクション(取引情報)を書き換える事で後続に波及してしまい、全体を書き換える必要が出てきてしまいます。

加えて、新しいブロックを生成する条件である「ハッシュ値の最初に一定以上のゼロが続く」を満たすハッシュ値を見つけるのは非常に難しく、膨大な計算時間が必要な作業なので、ブロックの改竄が実質的に出来ない仕組みになっているのです。

また、ブロックチェーンには「ブロックの分岐点から先頭までの長さが長い方を常に正しいものだと認める」というルールがあるので、大多数のノード(コンピュータ)を上回るマイニングのスピードが求められます。

ブロック・チェーン技術のまとめ

ブロック・チェーン技術の仕組み

ブロック・チェーン技術は、

  • P2P(peer-to-peer)モデル
  • ハッシュ関数
  • 公開鍵暗号方式

これら既存技術を組合わせた技術の総称です。

コメント