こんにちは、ペリッパーです。
皆さんはブロックチェーンがどのような仕組みにより成り立ってるかご存じでしょうか。
ほとんどの方は、何となくでしか理解できていないはずです。なぜならブロックチェーンはこれまでにない技術であり、理解することが非常に難しいためです。
本記事では、そんな複雑な仕組みを初心者にも分かるように簡潔に説明します。
最後まで読むと、ブロックチェーン特有の特徴とこの技術が普及すると日常生活においてどのように変化が起こるのが説明できるようになるかと思います。
目次
ブロックチェーンとは
ブロックチェーンと聞くと、まず思い浮かべるのは、上のようなブロックが”連鎖”している図ではないでしょうか?
画像にある通り、パソコンやタブレットにチェーンが付いて保存されている状態をブロックチェーンといいます。
ブロックチェーンは、『第2のインターネット』と言われているように、非常に画期的な技術です。
「知らなかったなー」という方もいるかもしれませんが、実は知らなくて当然です。
この図は、仮想通貨を何らかの形で触ったことがある人(2166人)に対して取ったアンケートです。
つまり、「仮想通貨をやっている人」ですら、ブロックチェーンについて理解している人って実は2.7%しかいないのです。
ブロックチェーンの特徴
では早速、ブロックチェーンとは何かについて解説していきます。現在のあらゆる取引は、中央集権型と呼ばれる体制で行われています。一方、ブロックチェーンは中央集権型とは反対の、分散型というこれまでにない特徴が持っています。
中央集権型と分散型の違いは、管理者がいるかどうかです。
例えば、あなたが友人にお金を送るとしましょう。
友人にお金を振り込む際、銀行を介して友人へ送金しますよね?最近だと、PayPayなどの電子決済の方が主流かもしれません。いずれにせよ、この送金する際に、銀行や企業などの大きな『組織』を介しています。この組織に信用をおいてる体制を中央集権型と呼びます。
一方分散型とは、組織を介さず、お金やデータを受け渡しすることができます。
先ほどのお金で例えるならば、銀行ではなく知らない人を経由して支払いが完了するようになる。それもその知らない人も誰から送られたか知らない状態で。これが分散型です。
ブロックチェーンを活用するメリット
ブロックチェーンを活用するメリットとしては大きく3つあります。
①分散型集権性、②システム利用コストの安さ、③データの対改ざん性です。
分散型集権性
分散型が実現すると、データの改ざんができなくなります。
現状の中央集権型だと、組織を経由するため、組織の情報が洩れると悪用する危険があります。また大元のデータベースが万一、稼働しなくなった場合、そのサービスを使っている方は何も使えなくなります。
その点、分散型は他のネットワークを経由してやり取りすることが可能なため常にサービスを使用することができます。銀行の振込不可の時間帯でも振り込めるみたいなイメージをすると理解しやすいかもしれませんね。
システム利用コストの安さ
システムやサービスを使う際、利用料は直接利用料を安く抑えることができます。
従来の中央集権型であれば、システムを提供するにあたり当然提供している企業は利益を確保しないといけないため、大元のデータベースの開発に伴う経費や人件費を考慮に入れた価格設定がされています。
では、分散型ではどうなのか。
完全に分散した状態が生み出せると、利用コストがかかることなく、送金を行えたりする未来が待っています。ただし、完全に分散化した状態を生み出すのはなかなか難しく、現にまだほとんどができていません。
例えば①のようにこのブロックチェーンのサービスを利用するためには、②のようにブロックを形成してくれる人がいなくてはなりません。
ブロックを形成する役割を果たすことにより、ようやく分散型としてワークします。
逆にブロックを生成するお手伝いをすると、仮想通貨を手に入れることができます。それをマイニングといいます。
お手持ちのPCにひと手間加えるだけで、マイニングを開始できると思いますので是非やってみましょう。
PCが勝手に処理を行い仮想通貨を生み出してくれるので、一度設定したらあとは寝るだけです。
話を戻して結論です。分散型のコストというとこの維持費用(ネット回線費と電気代のみ)になることから総じて安いと言われています。
データの対改ざん性
メリット1で話した通り、分散型になるとシステム上、データを改ざんすることが不可能になります。
現状の中央集権型だと、組織を経由するため、組織の情報が洩れると悪用する危険があります。
この仕組みについては次章でお話しします。このブロックチェーンの仕組みを理解することが大切です。(仮想通貨に投資しているだけの人はあまり理解できていない部分だからです)
ブロックチェーンの仕組み
ここまでで「なんとなくブロックチェーンって良さそう」って感じて頂けたかと思いますが「じゃあそれってどうやって実現しているの?」という謎に迫っていきましょう。
流れとしては、下記の感じでシンプルです。
①暗号化した情報をブロックに格納する
②ブロックに鍵をつけ、他のブロックに収納する
ブロックに情報を格納する
ブロックとは、情報の入れ込む器のことです。
例えば、「A君からBくんへ1BTC送った。」これが一つの情報です。
次に、この情報をHash関数と言われる任意のデータを別の文字や数字に値を変換することができる関数に当てます。Hash関数は、主に「検索やデータ比較処理の高速化」だったり、データ改ざんの検出に使われたりします。
特徴としては、図のように情報が1文字でも違うと全く別の数列になります。
そのため、ブロックチェーンの特徴である改ざんが極めて困難という状況を生み出すことができます。(ビットコインなんかはこのブロックを10分ごとに新しく生成する仕組みを持ち、改ざんできないようにしているため信頼が大きく、取引もされています)
話は戻りますが、Hash関数により暗号化された情報(トランザクションと呼ばれる)をブロックに収納します。(以下Tx)
つまり1つのブロックには何個もTxが入っている状態です。※肝心なブロックはどうやって作るのか少し複雑なので、後ほど解説します。
チェーンで鍵をかける
ではブロックを作れたとしましょう。次にやらないといけないことは何でしょうか?それは、”各ブロックに情報が改ざんされないよう、鍵をかけること”です。この役割を担っているのがチェーンと呼ばれる情報を保存する形式です。
イメージとしては、ブロック①の情報に鍵をかけ、ブロック②に格納します。
そうすることで、自分が格納した情報をブロックに入れているものの、鍵がないため、自分で解除することができなくなります。つまり、自分で入れた情報が手に入らないということは、同じブロックに入っている他の人の情報も取り出すことはできないのです。
では自分のブロックに他のブロックの鍵が入ってるであれば、自分が持ってる鍵を使えば他の人の情報を見ることができるのではないかといった疑問も出てくるでしょう。その対策としてチェーンと言われる特別な鍵のかけ方にひと手間加えているのです。
この鍵のかけ方はあまりに専門的な話になるので今回は簡潔に。
鍵は①Hash値、②nonce、③ターゲットによってかけることができます。
nonceとは”Number Used Once”の略で、図のように一度しか使えない数値や文字を返す暗号通信の技術のことです。
このように、使い捨てのnonceを、ある一定のルールのもとで前のブロックと後ろのブロックが鎖のように連結することで、鍵をかけることができます。nonceを利用して鍵を変えることで、対改ざんが実現できるのです。
ブロックの作り方(専門性あり)
肝心のブロックの作り方について話していきます。これを理解することで、いよいよ仮想通貨につながっていきます。
そもそも、ブロックチェーンネットワークでは、世界中に散らばる(=ネットワーク参加者)によって新しくつくられたブロックが、ノード間で伝播することにより、リアルタイムでのデータ同時共有が実現されています。
ノードは、「コンセンサスアルゴリズム」(後ほど解説します)と呼ばれるルールに基づいて、特定の条件を満たすことでブロックを生成することができます。
コンセンサスアルゴリズムとは、間違った情報も数多くある中、どのデータが正しいか決めるための方法のことです。その方法は、ブロックチェーンプラットフォームの種類によって違っています。
代表的なところでいえば、次のような種類があります。
ビットコイン(BTC):PoW(Proof of Work)
イーサリアム(ETH):PoS(Proof of Stake)
リップル(XRP):PoC(Proof of Consensus)
PoWは、「情報量の多さ(CPUの計算量)」に基づいて最多である情報を正としています。
一方、PoSは「保持しているコインの数量」で決めます。
イメージとしては、
”みんながたくさんそう言ってるから正”→PoW
”実績がある人の言葉は信頼性があるから正”→PoS
こんな感じです!
BTCはPoWでその他のコインが基本的にPoSを使ってると思っていいでしょう。今回はBTCに使われている、PoWのブロック作成方法をお伝えます。(やっと本題です。)
ブロックの生成には「ブロックのメタ情報に関する計算に成功することが必要」と公式が発表しています。要は難しい関数で処理に成功するとブロック生成できますよってことです。
今回は概要だけ覚えておきましょう。
先ほど鍵をかける際にお伝えした、「Hash関数」と「nonce」と「Target」をここでも利用しています。
図を要約すると、Hash関数で暗号化した情報がTargetの値以下になれば、その値を返してください。といった内容になります。
これがブロックを作る仕組みになります。※この辺りは、プログラミングの知識がどうしても必要になります。
もし、ブロックチェーンのアルゴリズムを駆使して、新たなサービスを生み出したいという方は、既存のもの(イーサリアムのオープンソース)から真似して作ると早くできるかもしれません。
最後に
今回はブロックチェーンとはなにかとその仕組みについて解説しました。
最後少し専門的な部分が入りましたが、ブロックチェーンの理解が深まったでしょうか?
まだまだ日常的に使われる場面はそう多くないですが、そう遠くない未来に一般的に使用されると思います。筆者は、PoWにおいて分散化に必要なマイニングをメインに行っています。マイニングは取引処理の手伝いをすることで、仮想通貨を獲得する行為のことを意味しています。
ご自宅にPCがあれば、誰でも簡単に始められるので、良ければ下記記事より始めてみてはいかがでしょうか。
毎日どの程度マイニングにより報酬が入っているかは、筆者のTwitteerにて確認することができます。気になる方は下記よりチェックしてみてください。
それでは。