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

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

前回は、ビットコインにおいてお金は取引の履歴で表されることを説明しました。 【図解】ビットコインの仕組みをわかりやすく解説 (2)お金の表し方 今回は、その取引をビットコインではどう表しているかについて説明します。 少しコンピュータの要素が強くなってきますが、電子署名、ハッシュといった専門用語についても、非エンジニアに向けてやさしく解説していきます。 第一回から読みたい方はこちらからどうぞ。 【図解】ビットコインの仕組みをわかりやすく解説 (1)ビットコインの何がすごい? 取引の表し方 取引は主に以下の情報です。 誰から 誰に いくら送った ビットコインにおいてもこれらの情報のカタマリとして表現しています。さらに、ビットコインにおける取引には2つのポイントがあります。 取引のポイント 送金する人は、送金する分以上のお金を持っている状態からでないと送金できない 送金する権利は、送金する人にある これは、現実世界の銀行振込でも同じですね。銀行振込でAさんからBさんに100円を送る場合は、Aさんの100円以上入っている銀行口座から、Aさんの通帳と銀行印で本人であることを証明します。 これをコンピュータ上で表すための仕組みを説明してきます。以下の図の例では、Aさんが100円持っている状態からBさんへ100円送る取引を示しています。 Aさんが100円持っていることを示すために、100円持っている状態の取引から、Bさん宛の取引を作成します。 そして、**Aさんが本人であることを証明するために、電子署名という仕組みを使っています。**取引の情報(Bさん宛のアドレス、金額)をハッシュ値という値に変換し、それに対してAさんしか知らない鍵(通帳と銀行印に相当)を使って署名をします。 これで、AさんからBさんへいくら送ったかという取引の情報を示せます。 さて、ハッシュや電子署名といった専門用語がでてきたので、これらについて説明していきます。 ハッシュとは ハッシュとは、あるデータを一定長の小さなデータに変換することです。 ハッシュには以下の特徴があります。 ハッシュの特徴 ハッシュ値から元のデータには戻せない 改ざんが困難。 元のデータを少しでも変えるとハッシュ値は全く別物になる 元のデータを小さなデータに変換し、その値が元のデータを一意に示すという性質が便利なことから、いろいろな場面で使われており、電子署名にもこのハッシュが使われています。 ハッシュについては、ここだけでなく、取引の承認の仕組みでも使われていますので、記憶にとどめておいてください。 送金者を証明する仕組み「電子署名」 電子署名とは、あるデータについて、それを作成したのが作成者本人であることを示すための仕組みです。 電子署名には公開鍵暗号方式という暗号の仕組みが使われています。公開鍵暗号方式とは、秘密鍵(人に公開しない鍵)と、公開鍵(人に公開する鍵)のペアの鍵を使って暗号化する仕組みです。 電子署名では、上の図のように、署名者の秘密鍵にて署名(暗号化)したハッシュ値は、署名者の公開鍵にて復号化 する (元のデータに戻す)という形で使います。 これによって誰でも、署名者(Aさん)の公開鍵で復号化したハッシュ値と、取引データから計算したハッシュ値とを突き合わせることで、取引が改ざんされていないことが確認できます。 公開鍵は、ビットコインにおいては宛先を示すアドレスとしても使用しています。先の取引を示す図での「Bさん宛」を示す情報は、実はBさんの公開鍵です。 公開鍵からは秘密鍵が推測できないようになっており、公開しても秘密鍵が漏れることなく安全です。ただし、秘密鍵が漏れると、送金の権利が漏れるということなりますので、その人のすべてのビットコインが盗まれるということになります。 取引の履歴=電子署名のチェーン 取引の構造としては、以下の図のようになります。 ビットコインにおいて、 お金(取引の履歴)は、電子署名のつながり(チェーン)として表現している というわけです。 次回:取引の承認の仕組み 次回からはいよいよビットコインの肝となる取引の承認の仕組みについて説明していきます。 https://amzn.to/2JJmjrX 【図解】ビットコインの仕組みをわかりやすく解説(4) 二重支払いと取引の改ざん

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

【図解】ビットコインの仕組みをわかりやすく解説 (1)ビットコインの何がすごい?

ビットコインは知っているけど、なんだかよくわからない。でも、どういう仕組みで動いているのか気になる。 マイニングってなんだろう。 ビットコイン(Bitcoin)を始めとする暗号資産に興味はありつつも、このような疑問を持っている方は多いのではないでしょうか。 初心者向けの書籍には、仕組みについてはあまり触れられておらず、一方で非エンジニアにとっては専門書は難しすぎるかと思います。 そこで、非エンジニアの方々に向けて、なるべくわかりやすく理解できるように仕組みの解説を試みました。 その試みとして、カシカさん( @miraiwoka4ka)の主催するコミュニティ「マネーリテラシーの森」にて、試しにZoomのオンラインミーティングで解説してみました。そこで使ったスライドをベースに、こちらでも解説していきます。 注意 この記事は、技術的な情報の提供を目的としたものであり、暗号資産への投機や投資を推奨するものではありません。投資は各自のご判断に基づいて自己責任でお願いします。 読んで得られること 今回からのビットコインの仕組みシリーズの記事を読むと、非エンジニアでも図解と丁寧な解説でビットコインの仕組みを学べます。 仮想通貨の入門書を読んでも、よく仕組みがわからない、もう少し知りたいけど、難しそうで諦めていたという方にも読んでいただければ幸いです。 また、他の暗号通貨やブロックチェーンもビットコインがベースなので、ビットコインの仕組みを理解しておくと他の暗号通貨についても理解しやすくなります。 イーサリアム(Ethereum)、リップル(Ripple)、そして最近話題のFacebookのリブラ(Libra)を理解する足がかりにもなります。 さらには、ブロックチェーン関連のニュースも深く理解できるようになるかもしれません。 ビットコインのなにがすごい? ブロックチェーン自体のメリットとしては、分散して障害に強いシステムを安価に作れるなど言われることがありますが、ビットコインそれを目的としていません。 ビットコインの革新的なところは、一言で言うと**「価値の移転をテクノロジーのみで実現できるようにした」**ということです。 言い換えると、第三者の信用が必要ない仕組み(トラストレス)を実現したということです。 なぜこれが革新的かというと、それにはまず「お金の本質」を理解する必要があります。 **お金の本質は「信用」であり、共同幻想です。**お金に価値があるとみんなが信用し、認めているから、お金に価値があるのです。 お金の本質や成り立ちについては詳しく解説しませんが、深く知りたい方は、「サピエンス全史」読むとわかりやすいと思います。 これまで考案されたもののうちで、貨幣は最も普遍的で、最も効率的な相互信頼の制度なのだ。 (引用)ユヴァル・ノア・ハラリ (著), 柴田裕之 (翻訳)、サピエンス全史 文明の構造と人類の幸福 https://amzn.to/32ydybA さて、どんなものであれ、価値があるとみんなが信用すれば、それは価値を持ちます。この信用を支える仕組みは、ビットコイン以前は信頼できる第三者(国、銀行、その他企業など)による担保が必須でした。 法定通貨はかつては金(ゴールド)によって保証され、現在では国が通貨の価値を保証しており、それをみんなが信用しているから成り立っています。 例えば一万円札を持っていれば、誰が見ても一万円分の価値を所有していると認められ、一万円札を誰かに渡せば、その分のモノやサービスを買えるというわけです。 銀行振込やクレジットカードでの買い物も同様に、お金が移動したことを企業が担保し、それをみんな信用しているから実現しています。 このお金の移動が正しいかどうかという「信用」を不特定多数のコンピュータのみによって担保できるようにしたということが、ビットコインの仕組みの肝です。 ブロックチェーンってなに? ビットコインの核となる技術をブロックチェーン(Blockchain)と命名したのがブロックチェーンの始まりです。「ビットコインではブロックチェーンが使われている」と言われることがありますが、実は歴史的には逆なのです。 ブロックチェーンの特徴としては、以下のようなものがあります。 ブロックチェーンの特徴 複数の取引をブロックの中にまとめる ブロックをつなげる(チェーン) みんなで共有(分散台帳) この仕組みを使うことによって、世界で初めてお金の移動(取引)を誰もが正しいと認めることができるようになりました。 一体どのような仕組みなのでしょうか。 次回:お金の表し方 ビットコインの仕組みのの要素は以下の3つです。 ビットコインの仕組みの要素 お金の表し方 取引の表し方 取引の承認 大事なところは「取引を承認する仕組み」で、ブロックチェーンはそのために使われています。ですが、それを理解するためには、まずビットコインでお金がどう表されているかについて理解しておく必要があります。 次の記事からはビットコイン仕組みについて、図解しながらわかりやすく説明していきます。 【図解】ビットコインの仕組みをわかりやすく解説 (2)お金の表し方 【図解】ビットコインの仕組みをわかりやすく解説(3) 取引の表し方 【図解】ビットコインの仕組みをわかりやすく解説(4) 二重支払いと取引の改ざん 【図解】ビットコインの仕組みをわかりやすく解説(5) マイニング(Proof of Work) https://amzn.to/30C15Sk

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