ビットコインがどのような仕組みで仮想通貨として成り立っているのかを紹介します。
まずざっくりと概要を説明すると、「ビットコインはP2Pネットワークとプルーフオブワークによってブロックチェーンを維持することで運営されている通貨」となります。
P2Pネットワークを採用することで取引データが分散されます。分散されることによってデータの改ざん・ハッキングを防ぎ、プルーフオブワークでハッキングを無力化し、ブロックチェーンによってデータの改ざんを防いでいます。
仮想通貨を成立させるうえで最も重要なのが「セキュリティ」面です。
これまで多くの仮想通貨案が出されてきましたが、その全てが世に広まることなく姿を消していきました。その理由がセキュリティの安全性を確保できなかったことです。
しかし、ビットコインはセキュリティを強固なものとするために上記の仕組みが採用され、世界中の信頼を得ることができたので現在の繁栄を成すことができました。
ブロックチェーンやプルーフオブワークなど初めて聞いた言葉ばかりで意味が分からないという方も多いと思いますので、一つずつ詳しく説明していきたいと思います。
仮想通貨は全て同じ仕組みで作られたわけではなく、それぞれの通貨によって仕組みは様々です。この記事で紹介する仕組みとは「ビットコイン」の仕組みであって、全ての仮想通貨が同じ仕組みではないということを理解した上でご覧いただければと思います。
ブロックチェーンとは
ビットコインを語る上で欠かせないシステムが「ブロックチェーン」です。
ブロックチェーンは「公開取引台帳」と呼ばれており、ビットコインの取引履歴が書き込まれたデータベースを表します。
ナカモトサトシが発表したビットコイン構想の中でも、このブロックチェーンが非常に画期的で有効なものであったため有識者に評価されました。
ビットコインを含む仮想通貨というものは、既存の通貨と比べ様々なメリットがあるのですが、通貨としての存在よりも「ブロックチェーン」技術の方が革新的だと言われています。「ブロックチェーン」の技術は、多くの大企業(最近ではトヨタ自動車)などがこの技術を自社に取り入れようとしています。
ブロックチェーンを簡単に説明すると「全ての取引履歴の集合体」です。ビットコインを移動させた履歴が全てブロックチェーンに記録され、ビットコインではこの取引履歴のみを信用して通貨の保有量を決定しています。
ブロックチェーンでは複数のブロックをつなぎ合わせることでそれぞれのブロックの整合性を証明しています。
それではもう少し詳しく説明していきます。
ブロックチェーンの役割
ビットコインは特定の発行者・管理者がいません。
このことによって起こる問題が
- 誰が取引を管理するのか
- 取引履歴の正当性の証明(正しい取引履歴かどうか)はどうやって行うのか
この2点の問題が発生します。
この問題を解決することがブロックチェーンの役割です。
法定通貨の場合、管理・発行を中央銀行や国が行っており、個人は各々の銀行に預金をしています。その預金の送金などの履歴は各銀行によって発行された通帳などで「取引履歴」が記載されるようになっています。それが「正しい取引履歴」かどうかを、通帳記帳を行うことで各々が確認することになります。
ではビットコインはどのように管理と取引の証明を行うのかを紹介します。
誰が取引を管理するのか
ブロックチェーンはどこかのサーバーが一元的に管理せずに、多数のコンピューターで形成されたネットワークで公開されていて「全体」として維持されています。
簡単に説明すると「ビットコインを持っている全員のパソコンで管理していて、そのネットワークに取引履歴すべてが公開されている」という状態です。
特定のサーバーなどではなくネットワークに参加しているパソコン同士で管理する仕組みのことを「P2P(ピアツーピア)」と呼びます。
P2Pとは中央管理するコンピュータがなく、個々のコンピューターがインターネットで繋がってデータを送受信するネットワークです。
Microsoft社が提供する「スカイプ」もこのP2P技術を用いた電話サービスになります。
取引履歴の正当性の証明(正しい取引履歴かどうか)はどうやって行うのか
ブロックチェーンではビットコインの過去の取引全てが記録されていて、それがネットワーク上に公開されています。
誰でも見られるネットワークにブロックチェーンは公開されているので、コインを受け取った人はその取引履歴がブロックチェーンに記録されているかチェックできます。
そして、ビットコインを受け取った人はブロックチェーンに記録されているので自分が正当な保持者かどうか認められたことになり、ビットコインを他者に送ることもできます。
偽造貨幣や二重取引を完全に排除した「正しい」取引のみ記録されており、実質的には「なりすまし・改ざん」ができなくなっています。
二重使用の防止
その他に、ブロックチェーンに取引を記録して送金する際に問題になるのが「二重払い」です。仮想通貨を成立させる上での問題は「なりすまし・改ざん」の他に「二重払い」も大きな問題です。
例えば、Aさんは1ビットコイン持っていて、その1ビットコインをAさんからBさんに送ったとします。しかし、Aさんは1ビットコインをCさんにも送りました。Aさんは1ビットコインしか持っていなかったのに2人に1ビットコインを送ってしまいました。
これが「二重払い」になります。
Aさんに悪意があったかどうかは分かりませんが、このような「二重払い」が起こってしまうような状態ではビットコイン(仮想通貨)は信用を得ることができません。
ビットコインでは二重払いを防止するために取引履歴を全て公開していて、先述したようにブロックに記録されるのはネットワーク参加者に認められた「正しい取引」のみです。
「正しい取引」で得たビットコインだと認められると、保有者が自分の保有額分だけ他の人に送ることが可能です。二重払いは認められません。
ある時点でのビットコインの所有者は1人で、同じビットコインを2人が持っていることはあり得ません。同じビットコインを2人目が所持しようとしても1人目の取引履歴が残っているため認められないのです。
この取引履歴が誰もが見られて改ざんや書き換えができないようになっているので二重払いが排除されます。
ブロックチェーンはしばしば不動産の登記簿に例えられます。実は不動産にも二重譲渡の問題があり、これを解決するために「登記制度」があります。不動産の場合、登記所に保管されてある登記簿に記載されている人が正当な保有者です。
ビットコインもこれと同様にブロックに記録されているのが正当な保有者になります。このビットコインと不動産の違いは管理しているところが違います。不動産は国が管理しており、一方ビットコインは記録の履歴の保管をコンピューターの集合で行います。このコンピューターの集合が前述した「P2P」です。
ブロックチェーンの「ブロック」とは
ビットコインのブロックチェーンでは一定期間の取引履歴のことを「ブロック」と呼びます。
1つのブロックにまとめられるものは決まっています。
- 10分程度の全世界の取引記録
- 前のブロックのハッシュ
- ハッシュ値(ハッシュ計算によって出たある数)
1つのブロックを生成するために必要な所要時間は10分です。これはビットコインのシステムで定められていて、システム変更されるまで10分が変更されることはありません。この10分間のあいだに世界中の取引が1つのブロックがまとめられ、正しい取引だと承認されれば取引が完了します。
ハッシュ値を求めるには膨大な「計算作業」が必要になりますが、「計算作業」は簡単にはできません。
ブロックチェーンが生成される流れ
~ブロックチェーン生成の流れ~
- 正しいハッシュ値を最初に見出したコンピューターがブロックをネットワークに流します。※この計算作業を「マイニング」と呼ぶます。正しいハッシュ値を見つけ出すには膨大な計算作業が必要です。
- 各コンピューター(ビットコインのブロックチェーンに参加している人)はその流されたハッシュ値が正しいこととブロック内の取引が正しいかを確認します。※この確認は比較的簡単にできます。
- 確認後そのブロックは前のブロックの後ろに繋がれます。こうしてどんどんブロックとブロックがつながれていきます。それがチェーン=鎖の意味と考えるとわかりやすいかと思います。
ブロックチェーンの今後の課題
ブロックチェーンが抱える問題の一つとしてチェーンの分岐問題が指摘されています。
ブロックチェーンのチェーンは1本の軸となるチェーンからいくつものチェーンが枝分かれしたような構造になっています。
ブロックチェーンは長いチェーンの取引を「正しい取引」だと認めるシステムになっているので、軸となるチェーンに記録された取引のみが「正しい取引」だと認められ、枝分かれした短い方のチェーンに記録された取引は認められずに無効となります。
通常は軸となる長いチェーンの方に取引が記録されることになりますが、短時間のうちにビットコインを複数回送ると送金したビットコインのうちいくつかが分岐された短いチェーンに取引が記録され、いくつかの送金が無効になってしまうことがあります。
例えばAがBに送金し、その数秒後にAがCに送金したとします。すると、Bへの送金だけが成立してCへの送金は無効になってしまうことがあります。
これがチェーンの分岐問題です。
無効化されてもビットコインが無くなる訳ではなく取引が成立しなかったことになります。そのため再度Cへの送金を行う必要があります。
送金作業を行ったからといって送金が確定する訳ではないので対価を払う際は注意しましょう。
課題としてこの問題を抱えてはいますが、このケースに陥る可能性は非常に低いです。
普段ビットコインの取引を行っていると、分岐された短いチェーンに記載されて取引が無効になることはほとんどありません。しかしその可能性があるということは頭に入れておきましょう。
6承認を待つことで取引の無効を避ける
分岐されたチェーンに記録されることはほとんどありませんが、可能性が残っているのであればできるだけ避けたいところです。
そのためには、取引を「6段階の承認」まで待つことで無効化のリスクを無くすことができます。
送金を行う際はまず「0承認」から始まり「1承認」→「2承認」と段階を経て承認を得るシステムになっています。
承認段階を「6承認」まで待つことで取引が無効化される可能性はほぼ0になると言われています。
したがって、どうしても無効化を避けたい場合は「6承認」になるまで確認しましょう。
マイニングとプルーフオブワーク
次に「マイニング」と「プルーフオブワーク」の説明をします。
プルーフオブワークというシステムを回すためにはマイニングという作業が必要になります。
「マイニング」とは
ビットコインの取引を成立させるためには膨大な演算作業を行うことで、取引をまとめたブロック(取引台帳)を作成し更に取引の整合性を確認する必要があります。
ブロックを生成&整合性の確認をする作業を「マイニング(採掘)」と呼びます。そしてマイニングを行う人をマイナーと呼びます。
マイナーが取引の集合体であるブロックチェーンの維持活動を行ってくれているおかげでビットコインの取引を行うことができるので、マイナー無しではビットコインは成り立ちません。
何故マイナー達がブロックチェーンの維持活動をしてくれるかというと、マイナーはブロックチェーンを維持する行為を手伝う代わりに報酬が受け取れるからです。
まず採掘した際に採掘報酬として、1ブロック作成するごとに新たに発行されたビットコインがもらえます。そして、ビットコインの取引を行う際に若干の手数料がかかりますが、これもマイナーの報酬になります。※報酬額などの詳細に関しては記事下部「半減期」項目にて
マイナー報酬として新規発行されるビットコインのみがビットコインの新規発行手段です。ビットコインは他に新規発行する方法はありません。
マイニング(採掘)はどうやって行うの?
マイニングを行うには高機能のグラフィックボードを持ち合わせたPCとマイニング専用のツールが必要です。PCとツールを起動させておくことで自動的にマイニング作業が行われます。
実際にマイニングを行った記事を公開しているサイトがあるのでご参照ください。→ビットコイン採掘(マイニング)で本当に利益が出せるのか実際にやってみた
初期設定さえ行えばマイニングを行う際の実働時間はあまり無いかと思いますが、マイニング装置であるPCを常に稼働させておく必要があるので電気代が異常にかかります。
上記の記事を見ても分かるように、マイニング(採掘)によって得られる報酬(ビットコイン)と電気代を比較してみるとあまり成果はありません。
電気代の安い中国では盛んにマイニング作業が行われていますが、今から新たに日本でマイニングを行って利益を出すというのはあまり現実的ではないでしょう。
プルーフオブワーク(POW)とは
プルーフオブワーク(POW)とは新しいブロックの承認システムのようなもので、マイニング(採掘)を行うことで報酬をもらうという一連の流れをプルーフオブワークと呼びます。
ビットコインはプルーフオブワークを採用してマイナーに報酬を発生させることにより、ハッキングの可能性を限りなく低くしています。
その理由は、例えば悪質な者がブロックチェーンの取引履歴の改ざんを試みたとします。ブロックチェーンでは取引履歴が変われば、ブロックのハッシュ値も変わってしまいます。この悪質な者が改ざんしたブロックを正しいものと見せかけるには、計算作業をもう一度すべて行って値を見出さなければならなくなります。
さらに1つのブロックの値を見出したとしても、その後に続くブロックの値も再計算しなければなりません。これはブロックの値の計算には前のブロックの値も入っているためです。悪質な者はこの改ざんを行い、最新のブロックまで改ざん続けてそれを追い越さないといけません。
これを実行するには、もう一つ正当なマイナーの計算作業を上回る力のあるコンピューターを持っていなければなりません。※これを51%攻撃と呼ぶ
また、ハッキングが行われてビットコインが流出すると、ビットコインの価値が暴落するのでハッキングして得たビットコインの価値も下がるためハッキングのメリットがありません。
ビットコインでは、この「プルーフオブワーク」と「ブロックチェーン」という画期的なシステムを採用することにより安全性を確保して信頼を得ています。
公開鍵・秘密鍵・ビットコインアドレス
ビットコインを使用する際に必要な公開鍵・秘密鍵・アドレスの説明をします。
ビットコインの取引にはまず公開鍵・秘密鍵が必要です。
公開鍵・秘密鍵とは共に数字(0と1の組み合わせ)と記号の組み合わせになります。
基本になるのは秘密鍵(51個の記号と数字の組み合わせ)です。秘密鍵から公開鍵が生成されます。
その公開鍵から次はアドレスが生成されます。(27~34個の数字とアルファベットの組み合わせ。必ず1or3から始まる)
多くの人は取引所やウォレットのサービスを利用して公開鍵・秘密鍵・アドレスを取得しています。(生成プログラムをダウンロードすれば自分でも作れます)
秘密鍵とは
秘密鍵は公開鍵とアドレスを作るための基盤となります。
秘密鍵の数字と記号の組み合わせは使用する本人しか分からないようになっていて、例えるならスマホを使用した二段階認証のようなものです。スマホに二段階認証用の数字が送られてきますが、それは自分意外の人には知ることができず、知られてはならないものです。
ユーザーは自分の秘密鍵を知らないまま使っていることも多いのですが、これを厳重に管理することが重要です、この秘密鍵を他人に知られてしまうことは現金の入った財布を他人に渡す行為と同じになります。
秘密鍵はビットコインを送付する際にビットコインアドレスに署名する際に必要になり、秘密鍵で署名することによって正当な取引だと認められビットコインが送られることとなります。
公開鍵とは
公開鍵は秘密鍵によって作られた数字と記号の組み合わせです。公開鍵はビットコインアドレスを作るために必要です。
秘密鍵は使用者本人しか知り得ませんが、公開鍵は他人に公開しています。
ビットコインアドレスとは
ビットコインアドレスは銀行口座の口座番号のようなもので、ビットコイン送付人と受取人を特定するために使用されます。
自分のアドレスを送付者に通知することでビットコインを受け取ることができます。
アドレスは公開鍵からいくらでも多くのアドレスを生成可能で、例えば100万個のアドレスを作ることもできます。
新しいアドレスを作っても過去のアドレスも生きているので何度も同じアドレスを使用することが出来ます。
ただし、安全上の理由からできるだけアドレスを頻繁に変えたほうがいいでしょう。
電子署名を使用して送るビットコイン
ビットコインを他人に送る際は上記の秘密鍵・公開鍵・ビットコインアドレスを使用して「電子署名」で送ります。
ビットコインの論文の一文には「一つの電子コインは連続するデジタル署名のチェーンと定義される」とあり、ビットコインはデジタルの署名で受け渡しをしています。
ビットコインを移転する際は、なりすましや改ざんを防ぐために以下の三点が必要になります。
- 送金したのは署名者であり、他者ではないこと
- 送金されている途中で、他者に署名を改ざんされて書き換えられていないこと
- 送金者は送金の結果を後になって否認できないこと
この3点の解決案としてビットコインでは「電子署名」というかたちで解決済みです。
電子署名による送金の流れ
~電子署名による送金の流れ~
AさんはまずBさんのアドレスを教えてもらいます。
AさんはBさんに送金する取引内容と公開鍵をBさんのアドレスに加え、Aさんの秘密鍵で暗号化します(ここまでの流れを電子署名と言います)
この署名をブロックチェーン(ビットコインの取引履歴)を維持しているP2Pネットワークに送ります。
Bさんは送られてきたAさんの電子署名を、その電子署名と一緒に送られてきたAさんの公開鍵で解読し、ビットコインを受け取ります。Aさんの公開鍵はネットワーク上に公開されているので誰しもがAさんだと確認できます。もちろん確認はできますがBさんのアドレスに送っていますので受け取れるのはBさんだけになります。
注意することとして、電子署名は正確には送金相手(Bさん)に送るのではなくP2Pのデータベースに送ります。(上記では分かりやすくするため、あたかもAさんからBさんに直接送金したような表現にあえています)
残高などのデータのファイルはウォレットにあるわけではなく元のデータはブロックチェーンにあります。
ウォレットには鍵のデータがあるだけです。ウォレットからブロックチェーンにアクセスし自分の残高のデータをダウンロードします。送金者の署名を送金者の公開鍵でデータを解読し、送り手が確実に送金者と同一か確認できます。
取引履歴は送金者の公開鍵から誰でも確認でき、送金者が誰かを全員が知ることができます。
半減期
2009年にビットコインが始まり、マイナーの採掘報酬は1ブロック毎に50BTCから始まりました。
2013年に最初の半減期があり、報酬は25BTCに減りました。続いて2016年7月に2回目の半減期が訪れ、2017年現在のマイニングによる報酬は12.5BTCになります。
これまでおよそ約4年ごとに半減期が訪れています。
なぜこうなるのでしょうか?
それはブロックの生成時間に関係します。ビットコインの1ブロックの生成時間は約10分で、ビットコインの半減期が訪れる間隔は21万ブロック毎と決まっているのです。
したがって、1ブロック生成に約10分かかり、21万ブロック生成されるのに約4年という計算になります。
ちなみに最後のマイニングの報酬がもらえるブロックは計算すると6929999番目のブロックになり、最後のブロックの生成は現在では2140年と考えられています。
2017年現在ビットコインは約1500万BTCが採掘されていますので、約120年かけて残りの600万BTCを採掘することになります。
フォーク
フォークとは仮想通貨のシステムをアップデートすることで、フォークの中にも「ソフトフォーク」と「ハードフォーク」の2種類あります。
フォークの意味としては食事に使用するフォークのように「分かれる」という意味ですが、仮想通貨で「分かれる」ことはブロックチェーンの分岐を意味します。
ブロックチェーンが分岐すると、過去に使用していたコインが使用できなくなったり新たなコインが生み出されたりします。ケースによって分岐の結果は様々ですが、仮想通貨の機能を向上させる上でフォークは必ず必要になります。
ではソフトフォークとハードフォークでは何が違うのか紹介しましょう。
ソフトフォークとは
ソフトフォークとは、アップデート以前のシステムとの互換性を持ったアップデートのことです。
ソフトという文字通り「若干」のシステム変更を行うことで、これまでのビットコインと同じように使用することができる状態を保つフォークです。
ビットコインはこれまでに軽度のアップデートを何度か行っており、複数回のソフトフォークを経験しています。
ハードフォークとは
ハードフォークとは、アップデート以前のシステムとの互換性を持たないアップデートのことです。
互換性を持たないので、これまでのチェーンとは違った方向にチェーンを繋げることになりチェーンが真っ二つに分岐します。
分岐することにより「これまでのチェーンのコイン」と「新たなチェーンのコイン」の2つのコインに分かれることになります。この2つのコインが両方とも使用されることもあれば、1つのコインは全く使用されなくなることもあります。
アルトコインのイーサリアムは2016年の7月にハードフォークが実施され、アップデートした方の新しいコインが「イーサリアム」になり、元来のコインが「イーサリアムクラシック」となり2つのコインに分裂しました。
イーサリアムのハードフォークが行われた当初は、新しい「イーサリアム」だけが残り「イーサリアムクラシック」は誰も利用しないだろうと考えられていましたが、イーサリアムクラシックはその後も支持を受け続けて現在でも多くの取引が行われています。
イーサリアムはハードフォークが実施されたあとも2つのコインが継続して取引が行われていますが、今後別のコインでハードフォークが起こった際も同じような結果になるかは分からないので気をつけてください。
まとめ
以上がビットコインの仕組みです。
非常に複雑な構造になっていますが、セキュリティ面を保つために考え出された素晴らしい仕組みだと思います。
フォークに関しては分岐することによって混乱が起こることもありますが、ビットコイン(仮想通貨)をより良いものとするためには避けて通れない道です。
仕組みを理解することでビットコインに対する考えが少し変わったという方もいるのではないでしょうか。
この記事の内容を理解してビットコインに関する情報を閲覧すれば、これまで理解できなかった情報もハラオチできるでしょう。
ビットコインの概要を知りたいならこちらの記事↓