blockchain

ブロックチェーンって何?~②簡単な仕組み~

投稿日:

前回の記事では

ブロックチェーンとは改ざん・コピーできないデータベースである

ということをお伝えしました。

 

今回は

何でそういう性質があるのか?という疑問に答えるために

ブロックチェーンの仕組みについて簡単に説明しようと思います。

 

また前回と同じように

簡単な説明から

だんだん詳しくしていきます。

 

あらましだけでいいなら最初の方だけ読んでください。

 

仕組みが分かると今度紹介するブロックチェーンの欠点についても理解しやすくなります。

 

まず、注意。

ブロックチェーンはもともと、ビットコインのためのシステムとして生まれました。

 

ここでの説明は

ビットコインに使われているブロックチェーン

を考えています。

 

そのほかのブロックチェーンと基本的には同じなのですが、

大きく違う部分もあります。

違う部分については後ほど。

 

また、ビットコインのブロックチェーンはパブリック型である、

ということも大きなポイントです。

 

※パブリック/コンソーシアム/プライベート ブロックチェーンとは

それぞれ、特定の管理者が、いない/複数いる/一ついる ブロックチェーンのことです。

 

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

まずは大まかなイメージから見ていきましょう。

 

 

データが大きさ(容量)の決まったブロックに入れられています。

 

ブロックは一定時間ごとに新しくつくられ、前のブロックにつなげられていきます。

このように全てのブロックが前のブロックとチェーンのようにつながっているため、

チェーンの途中のブロックだけを改ざんすることはできません。

 

チェーンの先端部分、新しいブロックが繋がれるところを見てみましょう。

 

 

まだブロックに収めされていないデータがあります。

チェーンに繋がったブロックに収められて初めて「正しいデータ」と認められるのです。

 

色んな人が

新しいブロックに入るデータが変なものではないか、競って検証しています。

一番最初にそのブロックに入る分のデータの検証を終えた人

それらのデータが入った新しいブロックを作り、報酬をもらいます。

 

データの検証を行っている人は、この報酬目当てにやっています。

これが噂の「マイニング(採掘)」です。

マイニングのイメージ図

 

ビットコインの場合、

もらえる報酬が新しく発行されたビットコインなので、

「金(きん)を掘る」ことになぞらえてこう呼ばれるようになったようです。

 

 

多くのマイナー(マイニングする人)が検証を行っているので

改ざんが難しいのです。

 

 

また、最初から最新まで全てのブロックの情報を管理している人が沢山います

 

 

これらのコンピューターが

こんな風に一つ一つ直接つながっています。(P2P

 

普通のネットワークの場合、

こんな風に情報を一括して管理してるやつがいます(真ん中の黒いやつ)。

このタイプの場合、真ん中の黒いやつがダウンしたりハッキングされたらもうオシマイです。

 

しかし、ブロックチェーンの場合は

ブロックの情報を管理しているコンピュータのうちいくつかがぶち壊れたりハッキングされたりしても

他の多くの正常に動いてるコンピュータともつながっているので

全体としては大丈夫

というわけです。

 

 

ビットコインの最初から最新までのブロックのデータと言うとかなりの量になります。

普通の人はこれを管理することはありません。

またマイニングのように、明確なインセンティブがあるわけでもありません。

なぜ管理を行うかと言うと

  • 他者を信頼せずに済むため
  • 純粋な興味、ビットコインの発展のため

などが考えられます。

自分で全ての情報を管理していない場合は他の人から情報をもらうしかありませんが、自分で管理していれば自分情報を見ればよいということです。

 

少し詳しく:ブロックが前のブロックとつがっているということ

これを理解するにはまずハッシュというものを知っておいた方が良いでしょう。

 

ハッシュとは?

簡単に言うと

データを要約したものです。

 

例を見てみましょう。


「47322」

こんな5桁のデータがあるとしましょう。

「各位の和を11倍して、下2桁をとりだす」という操作を考えます。

4+7+3+2+2=18

18 x 11=197 →97

というふうに5桁のデータを2桁に要約することができました。

次にデータをほんの少しだけ変えて

「47323」

としてみましょう(1足しただけです)。

同じ操作をします。

4+7+3+2+3=19

19 x 11=209 →09


 

データがちょっと変わると要約した値は大きく変わりました

この性質が重要です。

 

ここでは元データが1増えたら結果は11増えるという単純なものでしたが、本当はもう滅茶苦茶に変わってしまいます。

 

前のブロックとつながっている、ということ

ブロックは

こんな構造をしてます。

すべてのブロックに直前のブロックのハッシュ値(要約値)がはいっているのです。

 

例えばBlock No.256の

「Dennis から Bob, 1.3BTC」

「Dennis から Bob, 1.1BTC」に改ざんしたとすると、

Block No.256のハッシュ値(要約値)が変わってしまいます

つまり、No.257に収められている「前のブロックのハッシュ値」と合わなくなってしまうのです。

よって、すぐに改ざんがばれてしまいます。

 

これがつながっている、ということ

ブロックチェーン

と呼ばれる所以でしょう。

 

マイナーは何をしているか?

競って検証を行っていると言いましたが、

具体的には何を行っているのでしょうか。

先ほどの図に戻りますが、

Nonce (number used onece)」(ナンスかノンスと読みます)

というものがブロックに入っています。

 

ブロックのハッシュ値には条件があり、

その条件を満たさないと有効なブロックにはなりません。

 

マイナーは

ナンスを変化させて新しいブロック全体のハッシュ値を計算し、それが条件に合うか

ということを繰り返しています。

 

また、例を見てみましょう。

先ほどのハッシュの例です。

 


「47320」もとのデータです。(5桁)

これにナンス(N)をつけたして、

「47320N」としましょう。(6桁)

操作は同じで「各位の和を11倍して、下2桁をとりだす」ことにします。

ハッシュの条件を「10以下」としておきましょう。

これでN=0から順番に試していきます。

操作を行った結果だけ書いていきます。

N=0 →76

N=1 →87

N=2 →98

N=3 →09 OK


 

ハッシュ値はデータが少しでも変わるとメチャクチャに変わってしまうのでした。

よって順次ナンスを試していかなければならないのです。

また、本当のハッシュはもっと桁数も多いので試さなければいけないナンスの数も膨大です。

 

いったんナンスを見つけてしまうと、そのナンスを含んだブロックのハッシュ値を計算するのは容易です。

 

しかし、ブロックの中身のデータが変わってしまうと、条件を満たすナンスも全く違うものになってしまいます。

 

 

マイナーはナンスを探すという作業によって

ブロックの信頼性を担保し、

その対価として新たなビットコインを得ているのです。

 

 

まとめ

今回はビットコインのブロックチェーンの仕組みについて紹介しました。

改ざん出来ないのはチェーン構造とマイナーの存在、

落ちないのはネットワーク構造(P2P)のおかげでした。

 

ブロックチェーンはなんだか難しいですね。

イメージをつかめていただけたら幸いです。

 

今後はビットコインや仮想通貨以外への応用の可能性

ブロックチェーンの課題出来ない事否定的な意見

などについて紹介していきたいと思います。

-blockchain
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Segwitによって解決されたトランザクション展性(マリアビリティ攻撃)とは?

ビットコインについて調べていると「segwit」という言葉をよく目にします。 その目的として以下の2つが挙げられています。 スケーラビリティ問題の解決(改善) トランザクション展性(マリアビリティ攻撃 …

【図解】公開鍵暗号方式をわかりやすく直観的に!

わかりそうでわからない「公開鍵暗号方式」 ビットコインとかブロックチェーンについて調べてると 「秘密鍵」 という言葉によく出会います。   秘密鍵って何?って感じで調べると、 秘密鍵、公開鍵 …

マイナーのジレンマ(The Miner’s Dilemma)

■目次 ・「マイナーのジレンマ」の内容を一言でいうと ・前提知識(知ってたら飛ばしてください)  →マイニングプールとは  →囚人のジレンマとは  →(無限)繰り返し囚人のジレンマとは  →Block …

WindowsでGethをインストールしてマイニングを体験![初心者向け]

Geth(Go Ethereum)をインストールしてイーサリアムで遊んでみたい! けど自分windowsだし、パソコン詳しくないし難しそう…ってな方向けに ・Windows10で ・gethをインスト …

ブロックチェーンってなに?~①簡単な特徴(長所)~

  ブロックチェーンを布教していると すぐにある難題に直面します。   「ブロックチェーンってなに??」   この純粋無垢な質問に僕はタジタジになってしまうのです。 &n …