毎日更新!ビットコインはもちろん、仮想通貨のことがよくわかる情報サイト

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

2017.08.07

<この記事(ページ)は 11分で読めます>

ビットコインをはじめとした仮想通貨の基幹システムであり、仮想通貨を理解する上で説明が欠かせないブロックチェーン。その特徴を以下にまとめました。

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

ブロックチェーンとは公開取引記録です。この記録(ブロックチェーン)は仮想通貨ごとに存在します。

そのネットワークにつながるすべてのコンピュータによって維持管理されていて、それぞれのコンピュータがその完全なコピーを保有しています。

従来は、中央銀行や信頼の置ける金融機関によって保管されてきましたが、ブロックチェーンは仮想通貨のネットワークにつながったすべてのコンピュータで取引記録を保管することができます。

そしてインターネットを通じて、この公開記録上で世界中の誰とでも取引を行うことができます。あなたのコンピュータの電源を落としても、再びネットワークにつなげれば、また完璧なコピーを保有することができるのです。

こんな画期的なシステムのブロックチェーンですが、ここではさらに詳しく、

プルーフ・オブーワーク(PoW)プルーフ・オブ・ステーク(PoS)

・51%攻撃リスクとは

・公開鍵暗号方式と電子署名

・ビットコインの送金手数料

について説明していきます。

 

プルーフ・オブ・ワーク(PoW)とプルーフ・オブ・ステーク(PoS)

ビットコインが生成される仕組みのことを「マイニング」と呼びます。

マイニングは、ビットコインの場合は約10分に1回行われます。
マイニングを行うマイナーたちはそのつど計算を行って、正しい「キー」(「ノンス値」と呼ばれる)を探します。
最も早く「ノンス値」を見つけることができたマイナーだけが、報酬(2017年現在の額は12.5BTC)を手にすることができます。

報酬をもらえるのは最初にノンス値を見つけたマイナーだけですが、他のマイナー(ノード)は発見されたノンス値が正しいか確認作業をします。
確認作業をして過半数(51%)のノードが「正しい」と承認すると、新しいブロックが形成され、チェーンに最後に付け加えられます。

このように、正しいノンス値を探し出し、そのノンス値が正しいことを他のノードが正しいものとして承認してブロックが形成されていく一連の仕組みを「プルーフ・オブ・ワーク(PoW)」と呼びます。
ちなみに、このようにブロックチェーンでノードが取引を承認し、ブロックをつなげていく仕組みのことを、専門用語で「コンセンサス・アルゴリズム」と呼びます。
後ほど解説しますが、コンセンサス・アルゴリズムにはプルーフ・オブ・ワーク以外にも種類があります。

プルーフ・オブ・ワークの仕組みを詳しく見てみましょう。

新しくブロックが生成されてチェーンの末尾に付け加えられるとき、今までのチェーンの記録がすべてハッシュ関数というものに入れられて、64桁の数字とアルファベットの組み合わせ(ハッシュ値と呼びます)に変換されます。
ちなみに、ビットコインのブロックチェーンで使用されるハッシュ関数はSHA256と呼ばれる方式のものです。

SHA256の暗号化の例を見てみましょう。例えば、「ねこ」をSHA256で暗号化すると、

2D35A5A9753E27D92D5916A0392282A91B24594A1BC62DD2823E8CEFBBC66794 となります。

「いぬ」は、

AC780DBA391B7B189F56216D0DB79C54492F36DF4BC683447CFB8061AB645528 となります。

そして、

[今までのチェーンの記録の64桁]+[今回追加する全取引]+[ノンス値]

をハッシュ関数にかけて64桁にしたものの最初の16桁がすべて「0」になるまで、考えられるノンス値を総当たり的に計算していきます。

ノンス値が見つかると、新しいブロックが今までのチェーンの末尾につなげられ、ノンス値を最初に見つけたマイナーが報酬を得ます。

プルーフ・オブ・ワークの仕組み

プルーフ・オブ・ワークでは、最初の16桁が「0」になるノンス値を発見するために何億もの可能性をすべて当てはめて計算をする必要があるので、膨大な労力とマシンパワー・電力が必要です。

そのため、ビットコインのマイニングを行う業者は電力の安い中国に大きな倉庫を借り、膨大な数のコンピュータを設置して、日々マイニングを行っています。

プルーフ・オブ・ワークには大変な労力がかかり、大量の電力を消費します。また、大量のマシンパワーが必要なことから、より多くのコンピュータを持つ業者が有利になってしまい、結果として数社の企業によるマイニングの寡占化が進んでいるという問題が生じます。
さらに、51%攻撃(後述)へのリスクもあります。

こうしたプルーフ・オブ・ワークの問題点を改善するため生み出された仕組みが「プルーフ・オブ・ステーク(PoS)」というコンセンサス・アルゴリズムです。

プルーフ・オブ・ステークとは、簡単にいうと、コインを保有している量が多く、コインを保有している期間が長い人ほど報酬額が多くなる仕組みです。

マイニング報酬を多く得られるのは、コインを多く、長期間保有している人なので、多くのコンピュータを持つ業者がマイニングを独占することはなくなります。また、プルーフ・オブ・ワークでみられるように大量の電力を使うことはないためエコであるといえます。

51%攻撃リスクとは

プルーフ・オブ・ワークの弱点として指摘されているのが、「51%攻撃(アタック)」のリスクです。
51%攻撃とは、簡単にいえば、ノンス値の計算スピードの上位51%を掌握した悪意ある何者かが、不正にブロックの改ざんをしてしまうことです。

例えば、「AさんがBさんに1BTC送った」という取引記録があったとします。
Aさん(悪意ある者)が51%攻撃をすることで、この記録を取り消して送金をなかったことにし、1BTCを不正に自分のものにすることができてしまいます。

ブロックチェーン上のブロックはすべて入れ子状になっているため、1つのブロックの記録を変えると、後に続くブロックのノンス値がすべて変わってしまいます。
ノンス値が正しくないとブロックは正しいものとして認められないため、Aさんはすべてのノンス値の計算をやり直さなくてはいけなくなります。

ブロックチェーンは2本に分岐すると、長いほうのチェーンが正しいとみなされ、短いチェーンは無効なものとして消滅します。

すでにあるブロックの記録は書き換えることができないため、不正なブロックが含まれたチェーンを有効にするには、正しいチェーンよりも早いスピードでノンス値の計算を行い、より長いチェーンを作る必要があります。

そのためには、ノンス値の計算を総当たり的に行う大きなマシンパワーと電力が必要です。そんな大量の計算を、正しいチェーンよりも早いスピードで行おうとしても普通はできません。

しかし、もしAさんがすべてのマイニングノードの計算スピードの上位51%以上のマシンパワーを持っていたなら、可能になります。
正しいチェーンの計算スピードよりも早く計算し、なおかつブロックが正しいことを承認するノードの過半数もAさんが握っていることになるので、不正な取引記録が含まれたチェーンを正しいものとして承認し続け、チェーンを長くすることができるからです。

このように、プルーフ・オブ・ワークの弱点として語られる51%攻撃のリスクですが、実際に51%攻撃が行われる可能性は低いとされています。

なぜなら、51%攻撃を行うことでビットコインに対する信頼が失われてしまい、ビットコイン自体の価値が下がってしまうからです。
ビットコイン自体の価値が下がってしまえば、不正をして大量のビットコインを手元に持っていてもメリットがありません。
ですから、51%攻撃は理論的には可能なものの、実際に起こる可能性は低いというわけです。

ちなみに、プルーフ・オブ・ワークに代わるコンセンサス・アルゴリズムであるプルーフ・オブ・ステークでは、コインを多く、長期間保有している人ほど承認作業において有利ですから、不正を行うことのできる人というのはたくさんのコインを長期にわたって保有している人ということになります。

しかし、大量のコインを保有している人がわざわざ不正を犯して、自分の持っているコインの価値を下げるようなことはしません。
この意味で、プルーフ・オブ・ステークはプルーフ・オブ・ワークと比較して、51%攻撃のリスクが低いといわれています。

公開鍵暗号方式と電子署名

ブロックチェーンは世界中のコンピュータ(ノード)につながっていて、ビットコインのやり取りはすべて他の人からも見える状態になっています。
すると、ハッキングによってビットコインが抜き取られるのではないかという懸念が出てきます。

そこでブロックチェーンでは、ハッキングを防ぎながら安全にビットコインのやり取りをするために、「公開鍵暗号方式」という技術を用いた「電子署名」と呼ばれる仕組みを使っています。

電子署名とは?

例えば、花子さんがタカシさんに送金するとします。この送金が不正なものではないことを確認するために必要な情報は、本当に花子さんの所有するビットコインが送られるかどうかということです。

このことを確かめるために、「電子署名」が行われます。

電子署名とは、「送金する人が送金する際に署名に使う秘密鍵が、一つ前の取引で送金の受け手として提供した受け取りアドレスを生成した秘密鍵と同じかどうか」によって、送金が正しいことを証明する仕組みです。

ややこしいので図にしてみましょう。

電子署名の仕組み今、105番目のブロックにおいて、花子さんがタカシさんに送金をします。
花子さんが持っているビットコインは花子さんが作ったり、自然に湧いたりしたものではありません。必ず以前に誰かから受け取っているはずです。
そこで、ブロックチェーンをたどっていくと、以前100番目のブロックでタロウさんから受け取っていることがわかりました。
花子さんはタロウさんから送金を受け取るときに、「花子」という署名をしています(正確にいうと、花子さんが持つ秘密鍵から作られた受け取りアドレスを提供しています)。
そして、今回花子さんが送金をするときにも、以前タロウさんから受け取ったときと同じ秘密鍵を使って「花子」という署名をします。これが「ハナコ」や「はなこ」など完全に一致しないものだと、送金することができません。

秘密鍵に同じものは存在しません。全員が異なる秘密鍵を持っています。
ですから、花子さんが送金を受け取ったときの署名と、送金するときの署名が一致すれば、確かに「花子さんの持つビットコインがタカシさんに送金される」ことが確認されるわけです。

公開鍵暗号方式とは?

電子署名の仕組みを簡単に説明しましたが、実際のブロックチェーンの署名ではセキュリティ上の問題から「太郎」「花子」「タカシ」のような単純な署名をすることはありません。
「公開鍵暗号方式」という技術を使い、やや複雑になっています。

公開鍵暗号方式では、「公開鍵」と「秘密鍵」という2種類の鍵が使われます。

秘密鍵は自分だけが持っていて、自分だけで秘密にしておく鍵です。一方、公開鍵は秘密鍵から作られ、ノード全員が見ることができます。

上の図に戻りましょう。
100番目のブロックで花子さんがタロウさんから送金を受け取るときに、花子さんは受け取り先のアドレスを指定します。
このアドレスは、花子さんの秘密鍵から作られた公開鍵によって作られます。
そして、105番目のブロックで花子さんがタカシさんに送金するときには、同じ秘密鍵を使って署名をします。
秘密鍵そのままだとセキュリティの問題があるため、署名は暗号化されます。
さらに、「花子さんがタカシさんに送金した」という内容も暗号化されます。
暗号化された署名と取引内容は公開鍵で誰でも復号することができます。
秘密鍵と公開鍵はセットになっているので、Aさんの公開鍵で取引が復号できるとしたら、その取引は間違いなくAさんの秘密鍵によって鍵がかけられたもの、すなわち本当にAさんの所有するビットコインから送金されたということがわかります。

電子署名の仕組み

 

さらに、送金を受け取るビットコインアドレスも公開されているので誰でも見ることができます。
しかし、公開鍵から秘密鍵を割り出すことはできないので、花子さんの秘密鍵が他の人にバレることはありません。

秘密鍵を他人に見られてしまうと、勝手に自分の所有するビットコインを送金されてしまうことにつながります。
ですから、秘密鍵の管理は厳重にしなくてはいけません。秘密鍵が誰かに見られてしまった場合、その秘密鍵を破棄して新しいものを使うようにしましょう。

ビットコインの送金手数料

銀行で他の銀行に送金するように、ビットコインを送金する際にも送金手数料がかかります。

銀行に支払う手数料は銀行が送金の手続きをしてくれることに対する手数料で、一律に決まっています。
一方、ビットコインを送金する際に支払う手数料は、取引を承認するマイナーに対する報酬となります。
そして、手数料の額は決まっておらず、自分で決めることができるという特徴があります。

ビットコインの送金手数料は銀行送金などと比べてずっと低額ですが、手数料を少し多めに設定することで優先的に送金してもらうことができます。

取引所でのビットコイン送金手数料ですが、ビットフライヤー・コインチェックともに0.0005BTC(2017年7月18日のレートで約126円)です。

国内の銀行送金の場合、他行に送る場合は手数料が高くなり、土日祝日や営業時間外は送金ができませんが、ビットコインでの送金の場合は24時間365日、国内外問わず一律の手数料で送金をすることができます。

関連記事

この記事のタグ

仮想通貨の投資には
やっぱり情報が大切
LINE@には仮想通貨投資に
役立つ情報がいっぱい

ようこそ
CRIPCY公式LINEアカウントへ

LINE@では今後の価格予想や、気になるICO銘柄、 最新の仮想通貨ニュースを随時配信しています。
PCよりこのページをご覧の方は
下記のQRコードよりLINE@にご登録ください。
※本サービスはLINEの使用(スマートフォン版のみ対応)が必須です。LINE@の解除はいつでも簡単に行っていただけますのでご安心ください。CRIPCY村通信という名前で追加されます。