見出し画像

ブロックチェーンを使ったサービスデザインで割と重要な承認作業(プルーフ・オブ・ワークス)についてざっくり説明する

ブロックチェーンを活用したサービスの説明をする時に、
いつも苦労するのが「承認作業」すなわち、「プルーフ・オブ・ワーク」の話です。
これはビットコイン(BTC)やイーサリアム(ETH)で使われている仕組みです。

前回のエントリー で書いたとおり、ブロックチェーンのシステムはざっくり言うと既存のクライアントサーバ型のシステムで言うところのサーバの役割を代わりに担うと書きました。
データは分散しており、多数のサーバに格納されます。

このデータのやり取りについて、正しいかどうかを参加しているサーバ全部で監視して、正しい情報だけを記録していくのがブロックチェーンのざっくりとした仕組みです。

データをやりとりした記録をブロックと呼ばれるデータの箱に格納して、
正しいかどうかをネットワーク内のサーバで検証して、
正しい場合にのみ承認作業が完了して次のブロックが生成されます。
あたかもチェーンのようにブロックがつながっていくので、ブロックチェーンと言われるわけです。

この、正しいかどうか検証する作業が承認作業です。ブロックチェーンを活用したサービス設計をする時に、この承認作業をオープンにするか、クローズドにするか、初期の段階で考えなければなりません。
オープンな環境で承認作業をする設計の場合は、パブリックチェーンと呼ばれる仕組みにして報酬を支払って処理に参加してくれる人を募る必要があります。
クローズドな環境で承認作業をする設計の場合はプライベートチェーンと呼ばれる仕組みにして、処理を内部で構築した複数のサーバで行うようにします。

この承認作業はブロックチェーンの中核を成す仕組みなので、今回はざっくりと細かく説明してみたいと思います。

ビットコインを例としてみましょう。
ビットコインは主に決済を目的として作られたブロックチェーンです。商品を購入する際に使える通貨の代替手段で、日本でもビックカメラなどでビットコインを決済手段として使えます。

例えば、ある商品を1BTCで購入する場合、
買い手Aから売り手Bに1BTCが移動します。
この時、AからBへ1BTCを移動する というデータが発生します。

このデータはメモリプールという場所に置かれます。
メモリープールはネットワークに参加してるノードと呼ばれるサーバ群の中に別々に置かれます。メモリープールでは不正な取引を除外したり、二重支払いを除外したりして不正な取引がないか確認が行われます。

ちなみにブロックの情報は公開されているので以下のサイトなどで中身を実際に見ることができます。
https://www.blockchain.com/explorer

ビットコインの場合、10分に1回ブロックが生成される仕様に設定されています。ブロックは前のブロックの承認作業が完了した後に、自動的に生成されます。

ブロックが生成される時に、前のブロックの情報が記述されます。ハッシュという値です。ハッシュ値によってブロックがチェーンのようにつながるので、ブロックチェーンというのだそうです。

このブロックが不正によって生成されていないかどうかを確認するために、
ネットワーク内の計算能力を使って総当たりでブロックに格納されている暗号の一部を解くのです。

この総当たりで暗号の一部を解くために行われる計算回数は、
ビットコインの承認作業だと2018年10月現在でだいたい5000万TH/s出てるみたいです。

ここにハッシュレートと呼ばれるビットコインの現在の全世界の計算パワーを見られるサイトがあります。
https://www.blockchain.com/ja/charts/hash-rate?timespan=30days

もう桁数がよくわかりません。1テラハッシュは1兆ハッシュです。5000万兆ハッシュってことですね。5000万兆円欲しい。
世界中に参加者がいて、専用のマシンで計算しているのでとんでもない値になっています。

このように、ビットコインは計算能力と処理能力が膨大なのですが、そうであるがゆえにセキュリティの高いシステムであると言えます。不正のために改ざんしようとする場合は、これを凌駕する計算能力と処理能力を有しなければならず、それを用意しようとするとコスト割れしてしまうことから、不正や改ざんが理論上あり得ないからです。

まとめます。「プルーフ・オブ・ワーク」とは、
ブロックチェーンのネットワークに参加しているノードと呼ばれる端末で
ブロックに含まれる暗号を解読して正しい値が記録されているかどうかを検証し、承認する作業。

ところで、ブロックチェーンのノードで参加する端末を持っている人たちは、なんでわざわざ膨大なボリュームの処理をしてあげるかというと、報酬がもらえるからなのです。

次はマイニングあたりについて書いていきたいと思います。

多少なりとも、あなたの生活にプラスとなるような情報でしたら嬉しいです。