Bitcoinを支える3つのメカニズム『暗号技術』『ブロックチェーン』『プルーフ・オブ・ワーク』とは!?

Blockchain
Photo : iStock by Getty Images




書籍『アフター・ビットコイン: 仮想通貨とブロックチェーンの次なる覇者』には,Bitcoin(ビットコイン)の関連用語や基礎知識が分かりやすく書かれています.

特に前半部分は,Bitcoinと仮想通貨の仕組みを(僕のような)素人でも理解できるよう丁寧に解説してあります.
「Bitcoinについて知りたい」「仮想通貨はどういうものなのか?!」と興味がある人は,一読をお勧めします.

bitcoins

Bitcoin(ビットコイン)とは!?…は書籍『アフター・ビットコイン』で学ぼう

本記事では「Bitcoinってどんな仕組みで取引されているの??」という疑問を,要となる3つの技術視点で解説しています.

ビットコインを構成する3つのテクノロジー
  • 『暗号技術』
  • 『ブロックチェーン』
  • 『プルーフ・オブ・ワーク』
『アフター・ビットコイン: 仮想通貨とブロックチェーンの次なる覇者』
Bitcoin(ビットコイン)の関連用語や基礎知識が分かりやすく書かれている.
『アフター・ビットコイン: 仮想通貨とブロックチェーンの次なる覇者』
Bitcoin(ビットコイン)の関連用語や基礎知識が分かりやすく書かれている.

仮想通貨ビットコインの取引を支える3つの技術

PHOTO: iStock by Getty Images
PHOTO: iStock by Getty Images

仮想通貨Bitcoin(ビットコイン)は,どのようなシステムで取引を安全に行っているのでしょうか??
ビットコインを支えている3つの技術を,それぞれ見ていきます.

  1. 暗号技術
  2. ブロックチェーン
  3. プルーフ・オブ・ワーク

ビットコインを支える技術【1】暗号技術

ビットコインは仮想通貨なので.デジタルデータで出来ています
デジタルデータの便利なところは,複製が非常に簡単なこと.

もし,自分が通貨を運用する立場にあると仮定したら「勝手に複製されたり」「無断で偽造されたり」すると困りますよね??

ビットコインも同様で,同じデータをが2度使用されたり(専門用語で『ダブル・スペンディング』と言います),偽造されたデータが支払いに利用されると通貨としての価値が無くなります.

なので、こうした不正使用を防ぐために暗号技術を使ってシステムを守っています

ビットコインは仮想通貨であり、デジタルデータでできていますので、最も困るのが、同じデータを使って2度目の支払いを行うこと(二重使用:ダブルスペンディング)や偽のデータにより支払いが発生することです。

具体的に言うと,ビットコインには「デジタル署名(digital signature)」という技術が使われています.
デジタル署名は,その名の通り電子的なサインのこと.

契約書にハンコを押すのとまぁ似たようなモノです.(厳密には違いますが,イメージしやすようにハンコを例にします)

ビットコインには所有者の署名が付いていて,正しい署名をできる人(正式な所有者)だけが次の人へ(支払いを行う人)ビットコインを受け渡すことができる仕組みになっています.

この過程で「秘密鍵」と「公開鍵」がという2つのキーが利用されます.

ここでは触れませんが,秘密鍵と公開鍵については『暗号解読』という本がオススメです.
ぼくはこの本で、「秘密鍵」「公開鍵」の仕組みを理解することができました.

すごく面白いので,気になる人はぜひどうぞ.
暗号解読 下巻 (新潮文庫 シ 37-3)

「秘密鍵」と「公開鍵」については,『暗号解読』で楽しく学べる.
「秘密鍵」と「公開鍵」については,『暗号解読』で楽しく学べる.

より具体的には、「デジタル署名」(digital signature)という技術が用いられています。デジタル署名は、電子的な記録(データ)に対して行われる電子的な署名のことであり、紙の書類における署名や捺印に相当するような機能を果たすものです。ビットコインのデータには、その所有者の署名が付けられており、正しい署名ができる人だけが、取引(次の人へビットコインの受渡し)を行うことがでいる仕組みとなっています。

  1. ビットコイン送信者=署名者であること(本人確認)
  2. 通信途中で金額が変更されていないこと(改ざん防止)
  3. ビットコイン送信の事実を後から否定できないこと(否認防止)

こうした暗号技術によって上記の3点が保証され,ビットコインは取引されていきます.

①ビットコインを送ったのは確かに署名者であること(本人確認)、②通信の途中で金額が変更されていないこと(改ざんの防止)、③署名者はビットコインを送ったという事実をあとで否定できないこと(否定の防止)、といった点が確保されることになります。ビットコインでは、こうしたデジタル署名をチェーン状につなげていくことによって、受渡しの正当性を確保することが基本原理となっているのです。

ビットコインを支える技術【2】ブロックチェーン

ビットコインには,ブロックチェーンと呼ばれる技術が使われています.
ビットコインとブロックチェーンの技術はよく混同されがちです.しかし,この2つは別のものとして理解しておきましょう.

ビットコインやその他暗号通貨は,取引所のトラブルなどによって危険視する人も多いです.しかし,「ビットコインが流出した=ブロックチェーンの技術は危険」ではありません.

↑のように,ビットコインとブロックチェーン技術を安易に結びつけるのは止めましょう.
そのことを理解するうえでも「ブロックチェーンとはどのような仕組みなのか?!」を知っていくことが大切.

「ブロックチェーン」とは,一定時間の取引の束(これをブロックと呼びます)を時系列でチェーンのようにつなげて記録していく仕組みのことを指します.

取引を書き込む台帳がチェーンのように連なっていくので,このように呼ばれます.

it-word-bitcoin-encryption-technology-block-chain-proof-of-work-and-after-bitcoin-bookreview-1
出所: 『アフター・ビットコイン』31ページより

取引の束(ブロック)は,参加者が相互に正しいものであるとして承認し合うことで,データの改ざんや二重使用を出来ないようにしています.

また1つのブロックの中には,以下の3つのデータが入っています.

  • 一定期間ごとの多数の取引データ
  • 前ブロックのハッシュ値
  • ナンス値
it-word-bitcoin-encryption-technology-block-chain-proof-of-work-and-after-bitcoin-bookreview-2
出所:『アフター・ビットコイン』31ページより

正当な所有者が、受取人Aと受取人Bの両方に同じコインを譲渡した場合(ダブル・スペンディングのケース)には、どちらかの譲渡のみをネットワーク上での正しい取引として決定する必要があります。これを可能にするのが、それまでの正当な取引データを使って、次の正当な取引データを承認するというブロックチェーンの仕組みなのです。

取引データ

「送金額」「送金人」などの取引情報
ビットコインの場合,10分間に1個のペースでブロックが作成されるようになっている.
(この間の、トランザクションの履歴がブロックに格納される)

ハッシュ値(hash value)

元になるデータから一定の計算方法によって求められる,規則性の無い固定長の値のこと
(元データからハッシュ値を求める計算方法のことは,ハッシュ関数と言う)

ハッシュ関数は,同じデータからは必ず同じハッシュ値が得られる.
しかし,少しでもデータが異なると全く違うハッシュ値が得られるよう設計されている.

ハッシュ関数と一方向性
ハッシュ関数は,出力値(ハッシュ値)からは入力値(元データ)は復元できない仕組みになっている.
※この性質を「一方向性」と言う.

また,ハッシュ関数には「圧縮関数」が含まれており,膨大なデータを固定長の短いデータに圧縮して変換する.

it-word-bitcoin-encryption-technology-block-chain-proof-of-work-and-after-bitcoin-bookreview-3
出所:『アフター・ビットコイン』33ページより
元データの一部を「Bitcoin」から「Vitcoin」へ1文字変えただけで、全く違ったハッシュ値になります。

ナンス値(nonce)

「nomber used once(一度だけ使われる数字)」の略称で,一度だけ使う使い捨ての数字のこと

ナンス値そのものには意味はない.
ただ,このナンス値によって次のブロックに使う「前のブロックのハッシュ値」が変わるということがポイント.

ブロック全体のデータは,以下のの3つから構成されている.

  • 前のブロックのハッシュ値
  • 取引データ
  • ナンス値

「前のブロックのハッシュ値」「取引データ」は決まっている.
そのため,次のブロックに使うハッシュ値をコントロールするために変えることができるのは,ナンス値のみということになる.

ビットコインには、次の新規ブロックを追加できる条件として、「そのブロックのハッシュ値が一定の条件を満たすものになることが必要」というルールが定められています。一定の条件とは、具体的には、ハッシュ値の最初に一定以上のゼロが続くことを意味します。このため、新規ブロックを追加するためには、この条件を満たすハッシュ値を作り出すような適正なナンス値を探し当てる必要があるのです。

このようなブロックチェーンの技術を使って,ビットコインは10分毎の取引をまとめて承認する仕組みをとっています.
新たに承認されたブロックは,それまでのブロックチェーンの最後尾に追加されます.

ビットコインを支える技術【3】プルーフ・オブ・ワーク

プルーフ・オブ・ワークとは,ナンス値を求める作業のことを指します.

ナンス値を求める作業
  1. 「前ブロックのハッシュ値」「取引データ」「ナンス値」から新規ブロック用のハッシュ値を求める
  2. ①のハッシュ値が「先頭に一定数以上のゼロが連続して並んでいる」ようにするナンス値を求める

プルーフ・オブ・ワークは総当り法によって計算を行う必要があるため,膨大な量の計算が必要になります.
こうして条件を満たすハッシュ値を導くナンス値が求められ,新たなブロックが作成されます.

これが,ビットコインにおける取引の承認になります.
(ビットコインは、この計算に約10分を要するように設定されている)

悪意を持った攻撃者が,ビットコインを偽造しようとしたらどうなるのか!?

ビットコインの偽造には,世界中のコンピュータを合わせても足りないような非常に高い処理能力が必要となります.

その為,悪意のある人がいた場合でも,他の善意の計算者達が正しく取引を承認し続けることで,偽造が極めて困難であるというシステムになっています.

ビットコインの偽造とは、取引データの改ざんのことですので、それに基づくハッシュ値も変わり、ナンス値を再計算しなければなりません。そして、偽造したデータを正当なものとするためには、次のプルーフ・オブ・ワークも再計算し、さらには次のブロックのナンス値も再計算して…という形で、最新のブロックまで改ざんし続ける必要となります。

このようにプルーフ・オブ・ワークは,ビットコインのセキュリティシステムそのものと言っても過言ではありません.

  • 暗号技術
  • ブロックチェーン技術
  • プルーフ・オブ・ワーク

この3つの技術は,ビットコインを支える重要なシステムです.

今回は『アフター・ビットコイン: 仮想通貨とブロックチェーンの次なる覇者』から,ビットコインを支える3つのテクノロジーを紹介しました.

「ビットコインについて,もっと詳しく知りたい」人は,ぜひ書籍を読んでみて下さい.

〈了〉

SourceNote

記事中の引用について
記事の中で使っている引用部分は、すべて書籍『アフター・ビットコイン』からの引用です。

アフター・ビットコイン: 仮想通貨とブロックチェーンの次なる覇者



シェアありがとうございます!!