【決定版】ビットコインとは?仕組みを図解でわかりやすく解説します。

▼おすすめの取引所ランキング

本記事では初めての方向けにビットコインについて分かりやすく説明をしてみようと思います。

初めての人にとって、ビットコインは何に使われるのかもよくわからないし、なんだか不安ですよね。

今回は特に以下のことに焦点を合わせてご紹介していきます。

  • ビットコインって何?
  • ビットコインの重要な要素
  • ビットコインの課題
  • ビットコインの課題への解決策

これを読んであなたもビットコイン・仮想通貨を正しく理解しましょう!

ビットコインとは

ビットコインとは…
一言で言えば、
管理者なしでトラストレスに
インターネット上で自由に送受信可能なお金

ビットコインは仮想(インターネット上)の通貨。

ただのお金ではなくてメールのように送受信できるお金と考えればイメージしやすいと思います。(しかも管理者が存在せず、安全に。)

ビットコインの所有者はビットコインアドレスを持ち、メールのようにアドレスからアドレスへビットコインを送りあうことができます。

Bitcoinはデジタルマネーエコシステムの基礎となるコンセプトと技術の集合体です。ユーザーはネットワークを通じてbitcoinをやり取りすることで、従来の通貨で行うほぼ全てのこと、つまり 物品の売買から個人や組織への送金、融資まで行うことが可能になります。bitcoin自体も売買が可能であり 、専門の両替機関で他の通貨とも両替することも可能です。bitcoinは高速かつ安全であり、国境を越えて取 引が可能であることから、ある意味でインターネットに使うための最適な通貨ともいえます。 コインは「送信者から受信者へある一定量の額面を移動させる」という 取引(トランザクション)の中で暗に示されるものです。

−mastering bitcoinより

ビットコインアドレスはビットコインを買う取引所に登録する(取引所のウォレット)、もしくは自分でウォレットを登録することで取得することができます。

ビットコイン(Bitcoin)における重要な要素

※まずはじめにビットコインにおいて、Bitcoinはシステムを表し、bitcoinは通貨を表します。この章ではBitcoinに関しての説明をしていきます。

ビットコインと、Suicaのような電子マネーとの最も大きな違いは中央管理者が存在しない点です。

そもそもビットコイン以前にも、ビットコインと同じような中央管理者のいないデジタル通貨は存在しています。(暗号学を利用した)

ですが、二重支払いのようなセキュリティに関する問題(ビザンチン将軍問題)が存在し、普及することはありませんでした。

では、ビットコインはどのようにしてこのセキュリティの問題を解決し、トラストレスな中央管理者の存在しないデジタル通貨を確立させたのでしょうか。その仕組みをこの記事で紹介していきます。

ビットコインにおいて、重要な要素と呼べる3つの要素があります。それは

  • P2Pネットワーク
  • 暗号学
  • ブロックチェーン

この3つです。この要素たちが巧み組み合わさることで、どのようにビットコインに作用しているのか解説していきます。

P2Pネットワーク

まず中央管理者がいない状態とはどのような状態のことか。

それはノード(ユーザー)同士が上図右のように相互に繋がり合っている状態です。

・P2Pとは

P2Pとは、Peer to Peer(ピア・ツー・ピア)の略です。

AさんとBさんがいたらサーバーを介さず、AさんとBさんが直接接続し合うことを指します。

P2Pの端末(Peer)は一般的なPCやノートブック、スマホなどを指します。

この端末(Peer)はノード(Node)と呼ばれることもあります。

使用例:LINE通話・Skype通話等

・P2Pネットワークとは

P2PネットワークはPeerが複数いる状態です。さきほどP2Pの例として、AさんとBさんが直接接続しあっていると言いましたが、このAさんとBさんの他にCさんDさんEさん…と複数存在し、接続しあっている状態をP2Pネットワークと言います。

中央サーバを用意せず個々の端末(Peer)がお互いに信頼しあうことで成立するネットワークとなっています。

端末は他の端末に繋いで情報を交換する、もしくは他の端末のリクエストに応えて情報を共有します。つまり端末ごとがサーバの役割を担っています。

使用例:従来 winny・Torrent

   :現在 ビットコイン等の仮想通貨

このP2Pネットワークによるデジタル通貨というのはビットコイン以前にも存在していました。しかし、このP2Pの状況をセキュアに作り出すことは出来ずに、普及することはありませんでした。ビットコインはP2Pのデジタル通貨をどのようにトラストレスにさせたのでしょうか。

暗号学

P2Pの次に出てくる要素が暗号学となります。

ビットコインを代表する仮想通貨は英語では「crypto currency」と呼ばれ、直訳すると「暗号通貨」となります。

この暗号学も、ビットコイン以前のP2Pなデジタル通貨に利用されていました。しかし、ビットコインのようなセキュアでトラストレスな状況を作り出せませんでした。

そこで思うのは、ビットコインは何か革新的な暗号学を使っているのではないか?ということです。

ですが実際は、ごく単純な昔からある暗号学を巧み組み合わせているだけなのです。

(そこにインセンティブ設計もですが、それは後述)

そのごく単純な暗号化技術とは、

  • 公開鍵暗号技術
  • 一方向ハッシュ関数

の2つです。この2つはどのような暗号技術なのでしょうか。

公開鍵暗号技術

ネットワーク社会で暗号を使用する際にまず問題になるのが、どうやって暗号鍵を安全に相手に渡すのかという鍵配送の方法です。この問題を根本的に解決したのが公開鍵暗号なのです。

公開鍵暗号は「公開鍵」と、「秘密鍵」と呼ばれるペアとなった2つの鍵を利用する暗号技術です。

ですが、公開鍵暗号は「暗号」のイメージと異なり、メッセージそのものが暗号化に使われることはあまりありません。

公開鍵暗号の代表的な利用例に下記のようなものがあります。

  • 暗号鍵の交換
  • 電子署名
  • 電子認証

そしてそれぞれの用途ごとに専用の公開鍵暗号技術があります。

公開鍵・秘密鍵

公開鍵暗号の公開鍵秘密鍵はそれぞれ反対向きの計算を行うために使われます。

特に秘密鍵はそれを持っている人にしか出来ない固有の計算能力を示すために使われます。

また、公開鍵はその秘密鍵を使った計算の結果を検証するために使います。

例えばインターネットを介した電子認証を行う場合、自分が本人であることを証明する手段としてユーザーIDとパスワードがありますが、通信相手が信用できない人物で合った場合、この方法を使うのは危険なのです。

信頼できない相手にパスワードを渡すと、悪用される可能性があるからです。

ではどのようにするのか。

パスワードのような自分の秘密の情報そのものを渡すのではなく、自分だけが出来る固有の計算能力を相手に示すことで本人であることを証明すればいいのです。その自分ができる固有の計算のために自分だけの秘密の情報を使うというわけです。

例えば、サービス側が自分の公開鍵を持っている時、サービス側から送られてきたランダムなデータを自分の秘密鍵を使って計算を行い、その結果をサービス側に返します。

サービス側はその人の公開鍵を使ってその計算結果を調べることによって、本人であることが確認できます。

そしてもちろん秘密鍵は絶対に他人には渡してはいけないのです。それを入手した人は本人に成り代わって成り代わってその固有の計算能力を持ってしまうからです。

電子署名

電子署名とは、文書への押印やサインを行う行為とよく似た機能を持つ公開鍵暗号技術です。

電子署名の機能は電子的なメッセージに対して、

「そのメッセージの作成者は誰か」「そのメッセージが1ビットも改ざんされていない」

という2つを証明することが出来ます。

そしてこの電子署名を作成する人を「署名者」と呼びます。署名者はメッセージと自分の秘密鍵を使って固有の電子署名のデータを作成します。この計算を署名作成と呼びます。

この電子署名を利用して、メッセージの完全性などを検証するのは第三者で、「署名検証者」といいます。この署名検証者は、メッセージと電子署名に対して署名作成者の公開鍵を使った計算によって電子署名の検証を行います。この計算を署名検証と呼びます。

ビットコインの電子署名のための公開鍵暗号技術

ビットコインでは、ECDSA(楕円曲線DSA)という電子署名の為の公開鍵暗号技術が使われています。

ECDSAにおける公開鍵暗号の基本性能は以下の3つとなります。

  • 暗号鍵の生成
  • 電子署名の作成
  • 電子署名の検証

暗号学的ハッシュ関数(一方向ハッシュ関数)

さて暗号学的ハッシュ関数を見ていきましょう。

暗号学的ハッシュ関数とは簡単に言うと、

任意の長さの文字列を入力すると一定のサイズのランダムな数値を返すような関数です。

この一定のサイズのランダムな値をハッシュ値と呼びます。

暗号学的ハッシュ関数は出力された数値から、元のメッセージに復号化することは出来ません。

この一見利用価値のなさそうな暗号学的ハッシュ関数ですが、下記のような用途が存在するのです。

  • メッセージのダイジェスト(要約)
  • メッセージの完全性を検証する手段
  • データへのコミットメント
  • データ参照の為のポインタ
  • データがメンバーであることやメンバーでないことの証明手段
・ビットコインにおける暗号学的ハッシュ関数の利用

計算式などは分かりにくくなるので説明は割愛しますが、この「一方向ハッシュ関数」を使って、データが改ざんされていないかどうかを調べることが可能です。

ビットコインで使われるハッシュ関数は「SHA256」と「RIPEMD160」です。

ビットコインでは、この暗号学的ハッシュ関数を巧みに利用しています。

簡単に例を挙げると

  • ビットコインアドレスは公開鍵のダイジェスト
  • トランザクションの識別子はトランザクションのハッシュ値
  • ブロック内の情報や含まれるトランザクション郡の内容への完全性の保証
  • ブロックの連鎖構造(ブロックチェーン)においてブロックの順序の保持、追加や欠落を不可能にするコミットメント
  • マイニング計算とそのコミットメント

この他にもビットコインでは、ハッシュ関数を上手く利用することにより、暗号化をしています。

そして、ビットコインではこの二つの暗号学を組み合わせることで、トラストレスな取引を可能としました。次の章のブロックチェーンにおいて、この2つの暗号学が機能しているのです。

ブロックチェーン

そして、最後にブロックチェーンとなります。

このブロックチェーンは、上記した二つの暗号化技術を巧みに組み合わせ、そこにインセンティブ設計を組み込んだ仕組みのことです。

この仕組みこそがP2Pでトラストレスな取引を可能にしたデジタル通貨「ビットコイン」の根幹となります。

そしてインセンティブ設計こそが、ブロックチェーン(ビットコイン)のキモなのです!

まずはじめに、ブロックチェーンとは何かを簡単に説明しましょう。(ここで上記したP2P、暗号学の要素が出てきます!)

ブロックチェーンとは

ブロックチェーンは日本語で分散型台帳技術とも呼ばれています。

皆の取引が記録されていく台帳が、皆で分散的に管理できる仕組みということです!(P2Pですね!)

もう少し具体的に言うと、ブロックチェーンとは、ネットワーク上のやりとりの記録を皆で保管し、監視するシステムです。

そして、この記録は改ざんすることが出来ず、一度記録されたらデータとして残り続けます。

身近な例でいえば、1度記録されたら修正ができない通帳のような記録方法です。

そして、通帳は一定量の記録が溜まると新しい通帳が発行されますよね?

ブロックチェーンも同様、ネットワーク上で一定の取引がなされるとその記録を一つのブロックに保存し、また新たなブロックを発行します。

このブロックが永遠につながっていくため、ブロックチェーンと呼ばれます。

塊と鎖

そこで、もしかしたら語弊があるかもしれませんが、本記事ではブロックチェーンとはデータ構造であると言い切ることにします。例えば、下図のようにデータの塊を鎖のように繋いだデータ構造です。

これは流石に話を単純化しすぎであるとお叱りを受けそうですが、ブロックチェーンは直訳で塊と鎖程度の意味しかない言葉なので、これくらいの認識でもいいのではないでしょうか。

ビットコインはブロックチェーン形式のデータを同期するネットワーク

ビットコインは、ブロックチェーン形式のデータを同期しながら共有して保存する分散ネットワークです。

そしてビットコインネットワークにおいて、共有されるブロックチェーン形式のデータは取引履歴です。以下のようなイメージ。

AさんからBさんへ1BTC移動し、CさんからDさんへ0.5BTC移動といった取引(トランザクション)が定期的にブロックにまとめられてブロックチェーンに追加されます。

このようにビットコインネットワークが取引履歴を保存しているため、ブロックチェーンに保存されている一連の取引履歴を調べることで、Aさんがどれだけのビットコインを持っているのか、Bさんがどれだけのビットコインを持っているのかわかります。

また、新たにトランザクション(BさんからCさんへ0.1BTC移動)等を発行することで、ブロックチェーンに取引履歴が追加され、履歴からわかるBさんとCさんのもつビットコインの数が変動し、価値の移転が可能です。

つまり、ビットコインは、取引履歴を定期的にブロックにまとめてみんなで保存するタイプの分散型のデータベースであるということができます。

では、このような分散型のデータベースの強みは何でしょうか?

巧みなインセンティブ設計(Proof of Work)

さて、このブロックチェーンがうまく機能するのには、巧みなインセンティブ設計が存在しています。このインセンティブ設計がProof of Work(プルーフオブワーク)という仕組みです。

まず、Proof of Workとは「コンセンサスアルゴリズム」のことを指します。

仮想通貨の元にある技術ブロックチェーンは管理者がいない非中央集権的なシステムです。

しかし管理者はいなくても取引が発生した時、誰がその取引に不正がないかチェックしなければなりません。

コンセンサス・アルゴリズムとはこのときの「誰がチェックするか?」を決める方式(アルゴリズム)のことです。

コンセンサス・アルゴリズムの言葉を分解して理解しましょう!

「コンセンサス(合意)」+「アルゴリズム(方法)」

つまり、合意を取る方法のことを指しています。

Proof of Workとは

本題に入っていきます。

さてそのコンセンサスアルゴリズムであるProof of Workはどのようなものなのでしょうか。

Proof of Workは直訳すると「仕事量の証明」となります。

文字通り仕事量(CPUの計算量)に応じて、ブロックチェーンに取引を記録する「誰か」を決めるという仕組みです。

詳しい説明は次の章で行っていきます。

Proof of Workの仕組み

私たちの世界ではビットコインを使って様々な取引を行っています。(AさんがBさんに3BTC送る等)

その取引内容はブロックチェーン上に記録されて、ネットワーク上のすべてのパソコンに同期されます。

この取引内容をブロックチェーンに記録することをマイニングといい、それを行う人たちのことをマイナーといいます。

先程述べた「誰がチェックするか?」というのはこのマイナーから選ばれることとなります

ただ、このマイナーに悪意があり、自分にメリットがあるように取引を記録しようとする場合も想定できます。

Proof of Workは、あえて取引を記録する際に難しい過程(計算問題を解かせる)ことで、これを防ごうとしているのです。

簡単な取引記録までのフロー:

  1. 取引のデータがまとめられたブロックが作られる。
  2. そのブロックをブロックチェーンに追加するために、計算問題を解く
  3. 一番早く答え(ナンス)を発見した人が、他のマイナーたちにそれを発表する
  4. 答えの正誤判断が行われ、正解であればブロックチェーンに新しく追加される

この流れを通じて、取引がブロックチェーン上に記録されます。

▼マイニングについて詳しく

マイニング(mining)という言葉を聞いたことがありますか? ここでは、 ①そもそもマイニングってなに? ②マイニングって実
この記事では採掘難易度(Difficulty)について解説しています。採掘難易度とは、マイニングによるブロック生成の際の計算難易度の指標であり、この採掘難易度に

また、最初に計算問題を解きブロックをチェーン上に繋げた人は報酬(インセンティブ)を得ることが出来る仕組みとなっています。そしてこの計算結果がブロックに組み込まれ、前のブロックにつながれ、ブロックチェーンはつながっていきます。

この計算問題は決して難しいものではありません。頭のいい人が紙とペンを使って解くようなものではなく、単純なあてはめ問題です。

ただ、あてはめる数が膨大な量あるので、とても人間の作業では行えず、スーパーコンピュータ等が用いられます。

もしPoWがなかったとすると…

誰もが自由にブロックの生成ができてしまいます。つまり、改ざん・不正されたトランザクションもブロックに書き込まれてしまうということです。

そして従来のP2P(ピアートゥーピアー:個人対個人)ネットワークの仕組みのように、IPアドレスごとに同等のブロック生成権が与えられた場合、悪意のある攻撃者が大量のIPアドレスし大きな力を持ってしまう可能性が高いのです。

中央管理者がいないビットコインだからこそ、取引記録をブロックチェーンにつなげるためにあえて負荷のある計算問題を置き、その仕事(計算問題)の結果で追加できる人物を決めるのです。

このようにビットコインには簡単に言うと、

悪さをするインセンティブ  ルールを守るインセンティブ

という要素があることで、P2Pでトラストレスな取引を可能にしているのです。

※本記事ではブロックチェーン内で、暗号技術がどのように作用しているのかは割愛しています。より詳しく知りたい方はこちらのmastering bitcoinに詳しく書いてありますのでどうぞ。

ビットコインの課題

もちろんこのビットコインにも課題は存在します。この課題を解決しなければ、ビットコインが一般層に普及することはないでしょう。

スケーラビリティ問題

ビットコインはユーザーの増加に伴いブロックチェーンが長くなるにつれて、容量制限の問題に直面しています。

そもそもブロックチェーンでは、取引記録を一つにまとめてブロックを作り、約10分ごとにブロックチェーンに書き足すという処理を行います。

このブロックのサイズには制限があり、10分ごとに1MB分の取引記録しか書き込めません

このブロックサイズの制限により、平均して1秒あたり7回の取引しか処理できない欠点があります。

これをビットコインのスケーラビリティ問題といいます。

一般にビットコインのメリットとして取引が早いと挙げている方もいらっしゃいますが、取引量が爆発的に増えた現在はその逆なのです。

Visaの決済ネットワークは毎秒2万4千件の取引を処理できることと比較するとその取引の遅さが際立ちます。

つまりスケーラビリティ問題とは・・・

ビットコインにブロックサイズの制限が存在すること
これにより取引量が増えれば取引スピードが遅くなってしまうなどの問題が発生する
この問題が解決しなければ、送金時間にとんでもない時間がかかってしまったり、手数料のやすいはずのビットコインが、手数料が高くなってしまうという問題が起きてしまうのです。

ビットコインの課題の解決策

segwit

このsegwitは取引の際のブロックに一度に取引記録に記録する情報量を少なくするというものです。

より具体的には認証の確認が取れた場合に、取引記録に加えて短いメッセージ(これを分離署名またはSegwitと呼ぶ)を送るという仕組みです。

これにより1ブロック当たり4倍近い取引記録を処理できるようになります

ライトニングネットワーク

まずライトニングネットワークの仕組みを理解する前に、ライトニングネットワークを導入しない以前の取引はどのようになるのかを説明します。

  1. ビットコインの送金の際に行うフローは、
    送金ごとにトランザクションを作成
  2. ノードが検証
  3. OKであれば、ブロックに追加といったものです。

ライトニングネットワークを導入した際に、これらの送金周りの取引をオフチェーンにて処理します。

オフチェーンとは?

オンチェーンの対義語です。ブロックチェーン上でトランザクションを処理することを「オンチェーン処理」と言います。
対して非ブロックチェーン上で処理をすることを「オフチェーン処理」と呼びます。

途中のトランザクションをオフチェーンで行い、最終的な結果だけオンチェーンで処理をすることによって、その分のデータはブロックチェーンに書き込まれないので、節約になります。

もう少し踏み込んだ話をしていきます。

(もう十分!という方は読み飛ばしていただいて構いません!)


Wikipediaより引用

上の画像のように、参加しているピアの間にペイメントチャネルが開かれます。

先程のWikipediaで書かれていた

The Lightning Network is a second layer payment protocol that operates on top of the bitcoin blockchain.(Wikipediaより引用

の a second layer payment protocolの意味がなんとなくイメージできたのではないでしょうか?

このペイメントチャネルがインターネットの様な網の目上に構築され、取引を処理しています。

このペイメントチャネルを通してバリュー(ハッシュ関数を入れるための値)をやり取りし、バリューが1度送られるごとに、チャネル内の状態が変化し、以前の状態から上書きする形で、最新の状態を保存します。

このチャネルを閉じると最新の状態(最終的な結果)のみがブロックチェーンに書き込まれます。

このように最終的な結果のみをブロックチェーンに記述していくことで、今まで記録していた余計な部分をブロックチェーンに記録せずに済むのです!

まとめ

本記事ではビットコインとはについて、解説してきました。

正直、難しい要素もあるのですが、ビットコインがいかに巧みな仕組みで動いているのかがわかっていただけたでしょうか。

実際に今後、ビットコインが世間に普及するかはわかりません。

しかし、ブロックチェーンを基盤とした仮想通貨は、大きな可能性を秘めています。

その原型であるビットコインを調べることは大いに意味のあることではないでしょうか。

是非本記事を読んで、さらに深くビットコインを知りたいと思った方はこちらのmastering bitcoinを読むことをおすすめします。


ビットコイン (bitcoin) ブロックチェーン マイニング 仮想通貨