how-bitcoin-work

【図解】ビットコインの仕組みをわかりやすく解説(5) マイニング(Proof of Work)

前回は、二重支払い問題と取引の改ざん問題について解説しました。 【図解】ビットコインの仕組みをわかりやすく解説(4) 二重支払いと取引の改ざん 第一回から読みたい方はこちらからどうぞ。 【図解】ビットコインの仕組みをわかりやすく解説 (1)ビットコインの何がすごい? 今回はついに最終回です。ビットコインの取引の承認の仕組みであるブロックチェーンとProof of Work(マイニング)について、わかりやすく説明していきます。 ブロックチェーンとは「取引のかたまりをつなげる」こと まずは、ブロックチェーンのイメージをつけていきましょう。 ブロックチェーンとは、その名の通り取引の入った箱(ブロック)をつないだものです。 ブロックチェーン ブロック:複数の取引が入った箱 チェーン:ブロックをつなげたもの 上の図のように、 単語カードの束をリングでつなげていくイメージです。それぞれの単語カードが取引で、リングをつなげていくようなイメージです。 さて、イメージがついたところで、ブロックの中身をもう少し詳しく見ていきましょう。 ブロックの中には、以下のものが入っています。 ブロックの中身 前のブロックのハッシュ値 複数の取引データ(厳密にはブロック内の全取引から作られるハッシュ値) ナンス(ブロックのハッシュ値を調整するためのデータ) ブロックは、**前のブロックとのつながり(チェーン)を示すために、前のブロックのハッシュ値を持っています。**ブロックのハッシュ値は、これらの前のブロックのハッシュ値、ブロック内の全取引、ナンスから計算されます。 Proof of Work(マイニング) Proof of Workとは直訳で仕事の証明です。具体的には、このブロック内の取引を承認するためのお仕事(ブロックを作成するための手順)です。 ビットコインでは、「ブロックのハッシュ値がある値より小さければ、正式なブロックとして認める(取引を承認する)」というルールを設けています。 ハッシュ値は、データがわずかでも変わると全く別の値になりますので、ナンスを違う値に変えると別の値になります。 取引を承認するためには、ひたすらナンスの値を変えて、このルールを満たすハッシュ値が見つかるなるまでハッシュ値を計算しつづける必要があります。狙ったハッシュ値を作ることはできませんので、これには大変な回数の計算が必要になります。 イメージとしては、ナンスをカレーの隠し味に例えると、美味しい隠し味が見つかるまで、いろいろな隠し味を試して味見をするという感じです。 ルールを満たすハッシュ値が作れるいいナンスが見つかると、そのブロックが承認されます。さらに、最初にナンスを見つけた人はビットコインがもらえます。 大変な計算をこなしたことへのご褒美ですね。このようなインセンティブ設計がうまく働いているため、取引に関わる二者以外に、自らすすんで承認してくれる第三者がいるのです。 このブロックを承認するための 一連の計算は、金(ゴールド)を得るために鉱山を採掘するのに似ているので**マイニング(mining)や採掘と呼ばれています。また、マイニングをする人はマイナー(miner)**と呼ばれています。 このProof of Workによってブロックがつながっていくことで、「いつ取引されたか」、つまり取引の順序が確定します。 改ざんを防ぐ仕組み これまで説明した仕組みを使って、ビットコインのシステムがどのように二重支払いや改ざんを防いでいるのか見ていきましょう。 改ざんの検知 取引を改ざんした場合、ブロックのハッシュを計算するための一部のデータが変わります。そうすると、ブロックのハッシュ値は全く違う値に変わります。 つまり、取引が改ざんされている場合「ブロックのハッシュ値はある値より小さいハッシュ値でなければならない」という ルールを満たさない値に変わっている可能性がきわめて高い ということです。 この改ざん検知のための計算は、1回のハッシュ値計算のみで済むため、ビットコインの参加者は誰でも簡単に改ざんを検知できます。 改ざんを防ぐ仕組み さらに、ビットコインにおいては、「一番長いチェーンを正しいものとする」というルールがあります。 過去の取引を改ざんしたい場合、他のマイナーがどんどん正しいチェーンのブロックを承認し続けているなかで、それ以上のスピードでマイニングを続け、一番長いチェーンを作成しなければなりません。 これを実現するためには、ビットコインのマイニング全参加者の半分以上の計算量が必要になります(この手法は51%攻撃と呼ばれています)。 ビットコインでは、全世界でマイニングに大量の電力が使われていますので、現実的には不可能に近いでしょう。 このように、マイニングの計算パワーが十分大きい状況において、一度確定した取引は改ざんがきわめて難しい仕組みになっています。 二重支払いをしようとする場合も、ブロック内にすでに確定した取引がある状況で、その取引を削除する必要がありますので、 改ざんと同様です。 まとめ これまで全5回に渡ってビットコインとブロックチェーンの仕組みを説明していきました。 ビットコインの仕組み お金の表し方 取引の表し方 取引の承認 ビットコインの仕組みを知っていれば、他の 暗号資産(仮想通貨)もビットコインの影響は多かれ少なかれ受けていますので、理解しやすいと思います。 もし、ビットコインをはじめとした暗号資産(仮想通貨)を購入される場合は、私は、その暗号資産の仕組みを調べてから買ったほうが無難だと思います。 例えば、**改ざんを防ぐ仕組みが脆弱だと、あなたの暗号資産が盗まれてしまうかもしれません。**信用できる第三者がいないということは、裏を返せばすべて自己責任の世界であり、クレジットカードのように盗まれた場合の補償はありません。 もし、ビットコインを買ってみたいという方は、その際にこのシリーズを見返していただければ幸いです。 あとがき ビットコインの仕組みを理解するためには、専門用語や暗号方式など、それなりの前提知識が必要であり、一般向けの入門書やWebではここまで説明していないものが多いです。 ...

2019-07-25 · 1 分 · mild.investor
how-bitcoin-work

【図解】ビットコインの仕組みをわかりやすく解説(4) 二重支払いと取引の改ざん

前回は、ビットコインで取引がどう表されているかを説明しました。 【図解】ビットコインの仕組みをわかりやすく解説(3) 取引の表し方 今回は、今まで紹介してきた取引の仕組みだけでは解決できない問題点について触れていきます。 第一回から読みたい方はこちらからどうぞ。 【図解】ビットコインの仕組みをわかりやすく解説 (1)ビットコインの何がすごい? 取引の作り方を前回説明しました。これで取引ができるようになり、取引の履歴を作れるようになったので、お金として機能しそうです。 しかし、今まで説明した取引の仕組みだけでは、以下の2点問題が発生してしまいます。 二重支払い問題 取引の改ざん問題 今回は、これらがどういう問題か説明します。 二重支払い問題 二重支払い問題について説明します。 Aさん(図の左側の黒い人)が100円を持っているとします。送金者であるAさんにこれを送金する権利がありますので、Aさんが取引を作成します。 Aさんは、Aさんの100円をBさんに払う取引を作成します。それを確認したBさんは、Aさんにチョコレートを渡します。 一方で、Aさんは、Cさんにも100円払う取引を作成できます。それを確認したCさんは、Aさんにりんごを渡します。 ちょっと待ってください。Aさんは、もともと100円しか持っていないのに、200円分の支払いをしています。これはおかしいですね。 今まで説明してきた「Aさんに送金する権利がある」という仕組みだけだと、「Aさんが100円を持っている」という状態から、Aさんが自由に複数の取引を作成できてしまいます。 どちらの支払いが正しいのでしょうか。最初に取引したBさんのものが正しく見えますが、取引には「いつ」という時間情報が入っていないので、どちらが正しいか見分けることができないのです。(仮に取引情報に時間を含めても、Aさんが悪意を持っていれば、両方の取引に同じ時間を設定できてしまうので、信用できない) このような問題を二重支払い問題といいます。 取引の改ざん問題 次に、取引の改ざん問題について説明します。 例えば、AさんはBさんへ100円支払い、チョコレートをもらったとします。 その後、Aさんがその取引データを削除し、なかったことにできるとしたらどうでしょう。Aさんの100円は支払われなかったことになり、Bさんからチョコレートをただで奪ったことになります。 当然、このようなことはあってはならないですよね。 このように、誰かの好きなように取引を書き換えたり削除できる問題を取引の改ざん問題といいます。 取引の承認 取引に直接関わる2者だけの仕組みでは、二重支払いや取引の改ざんができてしまうことがわかりました。 現実の通貨での銀行振込では、これを防ぐために、銀行などの信用のある第三者がチェックしています。つまり、コンピュータの仕組みではなく、社会の仕組みによって信用を担保しているというわけです。 ビットコインのすごいところは、このような社会的に信用できる第三者がいないなかでも、これらの不正がないことを保証する仕組みを発明したところです。 次回:取引の承認の仕組み 二重支払い問題と取引の改ざん問題について、解説しました。 次回は、これらを解決するための取引の承認の仕組みであるブロックチェーンとProof of Workについて解説します。 【図解】ビットコインの仕組みをわかりやすく解説(5) マイニング(Proof of Work) https://amzn.to/2y52cO3 https://amzn.to/2SwIaW8

2019-07-24 · 1 分 · mild.investor
how-bitcoin-work

【図解】ビットコインの仕組みをわかりやすく解説 (2)お金の表し方

前回は、ビットコインの何がすごいのか、ブロックチェーンの特徴は何かというお話をしました。 【図解】ビットコインの仕組みをわかりやすく解説 (1)ビットコインの何がすごい? 今回からは仕組みのお話です。まずはじめに、ビットコインの仕組みの要素と、ビットコインでのお金の表し方について説明します。 ビットコインの仕組みの3要素 今回からビットコインの仕組みとして、以下の3つの要素を説明していきます。 ビットコインの仕組みの要素 お金の表し方 取引の表し方 取引の承認 ブロックチェーンは、このうちの「取引の承認」のために使われる技術です。 ブロックチェーンにを理解するためには、その前にまずコンピュータ上でお金がどのように表現されているかについて理解しておく必要があります。 お金の表し方 さて、ビットコインではお金をどうやって表しているのでしょうか。 結論から言うと、**ビットコインではお金を「取引の履歴(台帳)」として表現しています。**誰がいくら持っているというお金そのもののデータは持っていません。 なぜこれでお金を表現できるのでしょうか。 取引とは簡単に言うと 「誰から」 「誰に」 「いくら送ったか」 という記録です。 例として、いくつかの取引を並べてみましょう。 上の図では、Xさん、Aさん、Bさん、Cさんがそれぞれ誰にいくら送ったという記録が並んでいます。 これをBさんが関わった取引のみ抽出してみましょう。 上の図のように、Bさんの銀行通帳のような形になります。BさんはAさんから100円もらい、Cさんへ30円送っています。 これを集計すると、Bさんは70円持っていることがわかりますね。これは他の人についても同様に計算できます。 つまり、 取引の履歴のみで、それぞれの人がいくら持っているかがわかる というわけです。誰がいくら持っているかというデータを直接持つ必要はないのです。 次回:取引の表し方 ビットコインでは、このように取引の履歴(台帳)で、お金を表現しています。 次回は、この「お金」を表すために必要な「取引」の表し方について説明していきます。 【図解】ビットコインの仕組みをわかりやすく解説(3) 取引の表し方 https://amzn.to/32D7xub

2019-07-20 · 1 分 · mild.investor