マンガでわかるブロックチェーン
第3回ブロックチェーンって儲かるの!?〜ハッシュとマイニング
2019年2月25日 06:30
[企画・原作:森 一弥]
[作画:佐倉 イサミ]
主人公・仲元サラが派遣会社を通じてやってきたのはブロックチェーンを主な事業とする会社。ITにも疎く、ブロックチェーンの「ぶ」の字も分からないサラは、果たしてこの会社で生き残れるのか!?話題のブロックチェーン技術を漫画で解説します。
なお、本記事はアステリア株式会社のオウンドメディア「in.LIVE」にて掲載されたものを再編集したものです。
「秋葉原でバイトしている友達に聞いたんですけど、マイニングってお金儲けの手段なんですか?」
「まぁ、そういう側面が無いわけじゃない。」
「マイニングはブロックチェーンを支えている有志がやっている作業のことで、その作業に対する報酬がブロックチェーンっていう仕組み自体から支払われてるんだ。」
「割の良いお仕事なんですか?」
「必ずしもそうとは限らないんだけどな。とりあえず仕組みを説明する。」
「ブロックチェーンってのは、ブロックがつながっているからブロックチェーンって呼ばれているって話はしたよな。ブロックってのは情報の単位みたいなものなんだけど、そのブロックの中身は、概要が書いてあるヘッダと、入金とか出金とかの取引が書かれているトランザクションに分かれてるんだ。」
「タイトルと本文って感じですか?」
「まあそんな感じ。一つのブロックの中のヘッダには『前のブロックのヘッダのハッシュ値』が含まれている。前回のあらすじみたいなもんかな。毎回、前回のあらすじが入っててブロックが全部つながってるので、ブロックチェーンって呼ばれるわけ。」
「つながっているからチェーンっていうのは前に勉強しました!」
「トランザクションには世界中の人が行っている取引がたくさん書き込まれている。取引っていうのは、AさんからBさんにいくら送金する、みたいなものを想像してもらえば大体あっている。」
「たくさん? 上限は決まっていないんですか?」
「そうだな。例えばビットコインの場合は一つのブロックがだいたい10分に一回できているから、その間に取引きされた数にもよるし、ブロックのサイズの上限もある。」
「なるほど…。」
「たくさんある取引は、ひとつひとつハッシュに変換される。そして隣り合った取引のハッシュをつなげて、それを元データにしてさらにハッシュ値に変換する。繰り返していくとトーナメント表みたいなイメージになる。分かる?」
「そして最後に残るハッシュ値をブロックのヘッダに入れる。やり方はややこしいけど、今回のブロックに含まれている取引の概要みたいなものだな。」
「トーナメント表で『優勝』の部分に入っているハッシュ値がブロックのヘッダに入るんですね。」
「まぁ、そんな感じ。ここまでの説明で、ヘッダには前回のあらすじと、今回の概要が入っているってわかったかな?」
「で、さらに、ヘッダの中に入っている前のブロックのハッシュにはルールがあるんだ。特定の数字以下じゃなきゃいけないっていうルールがね。だから元のデータをちょっと書き換えて、ルールにうまく合うように延々繰り返さなきゃいけないわけ。」
「データを書き換えられちゃうんですか!?改ざんできないのに?」
「よく覚えてたな。」
「前回のあらすじも、今回の概要も書き換えられないから、実はブロックの中のヘッダに、このために任意に書き換えられる領域が用意されている。この場所を『Nonce(ノンス、またはナンス)』と呼んでいるんだけどね。ハッシュの値が期待通りになるようなNonceを見つけることを『マイニング』っていうんだ。」
「へー。誰かがハッシュ値を出す計算を繰り返しているってことですか。」
「そう。マイニングをやっている人たちのことを『マイナー』っていうんだけどね。計算をものすごくしている。電気代もかかる。ビットコインだとこのNonceを見つけるまでの時間がだいたい10分になっているので、ブロックができるまでがだいたい10分ってこと。」
「じゃあ運良く早く見つけられれば、ブロックができるあがる時間は10分以下になるんですね。」
「そう。さらに、コンピュータの性能が上がると、ハッシュ値の『特定の数値以下』ってルールも変わって、より計算が難しくなるので今までよりも時間がかかる。計算の難しさが調整されて、だいたい10分になるようになっている。」
「へぇー。でも、マイニングをすると儲かるっていうお話は……?」
「みんなにNonceを探してもらいたいけど、そのためにはモチベーションがないといけないからな。マイニングしている人たちは、トランザクションの最初に一つだけ自分宛ての取引を入れて良いことになっているんだ。今だと、12.5BTC入れて良いことになっている。」
「それが報酬なんですね! でも12.5BTC(ビットコイン)っていくらなんだろ?」
「……って、え!?、ええー!?」
「そ。結構な金額だろ。世界の誰かが10分に一回ぐらいそれだけの報酬を得ている。でも俺達の手元にあるようなPCだと何百年もかかる計算らしいぞ。電気代もすごくかかる。電気代が安い国でやるのが理にかなっているな。」
「そーなのかー、ざんねん。」
「ビットコインみたいなメジャーな仮想通貨以外でマイニングするって手もあるけど、やっぱり専用のコンピューターが必要だったりもするし、あんまりおすすめはしないよ。」
「…わかりました。」
「最近だと太陽光発電の余った電力でマイニングしようとか、いろいろ考えられているみたいだな。ちなみに、今説明してきたNonceを探す方法を『プルーフ・オブ・ワーク』っていうんだ。ま、あんまり詰め込んでもあふれそうだしな、今日のところはこんなもんだろ。」
「あうー。ありがとうございましたぁ。。」
~自席への帰り道~
「今日のはすごく専門的で難しかったけど、ブロックチェーンの仕組みがだいぶわかって来た気がする…!」
「ふむ。なかなかためになるセミナーじゃったな。。ホントにわかったのか?」
「難しい計算をした人が報酬をもらえるんだよね。そしてその人達がブロックチェーンを支えているのはわかったよ。」
「ふむ。その理解で合ってそうじゃの。」
「う、うん… まだちょっと不安だからもうちょっと自分でも調べてみるよ。なんだか分かったと思ったら急にお腹がへってきちゃった!」
「おー、セミナー終わったくま?今晩時間ある?」
「あ、長くまさん、お疲れさまです。今晩ですか?」
「時間あるなら、とあるレストランに僕の代わりに行ってほしいんだけどー」
次回「 ブロックチェーンの活用例、トレーサビリティってなに? 」につづく!
今回の補習授業|ポイントと用語解説
漫画の原作者である、アステリア株式会社 ブロックチェーン推進室長の森が、今回のお話の概要や会話に登場したキーワードについて簡単に解説します!
- ハッシュ
ここではハッシュ関数、もしくはハッシュ値のこと。ハッシュ関数にはいろいろと種類があり、ビットコインで使われているものはSHA-256、SHA-512、RIPEMD-160など。本文の中にもあるように、ブロックチェーン以外でも様々なソフトウェアで使われる基礎技術。 - ハッシュ値
データをハッシュ関数にかけて出力される値のこと。SHA-256であれば、256ビットの値が出力される。慣習的に16進数で表記される場合が多いので64文字で表される。 - トランザクション
ここでは取引データのこと。単純にAさんからBさんへの送金を表す場合もあるが、複数の人の署名があって初めて送金できる「マルチシグ(マルチシグネチャ)」や、送金ではなくデータを記録する用途として使われる場合もある。 - BTC
ビットコインの通貨単位。2017年末〜2018年初頭にかけて、一時的に1BTC=200万円を超えたこともある。なお、小さい単位として「satoshi」が存在している。1 satoshi = 0.00000001 BTC。 - Nonce(ノンスもしくはナンス)
ブロックのヘッダに含まれる、ハッシュ値を調整するために設けられた領域のこと。 - マイニング
ブロックを作成するため、決められたルール(特定の数値以下にする)に従うハッシュ値を生成するためのNonceを探す行為。特定の数値以下にすることは、ハッシュ値の文頭にゼロがいくつか続くことと同義なので、そう表現される場合もある。特定の数値は難易度と表現される。 - プルーフ・オブ・ワーク(Proof of Work)
上記のNonceを探すマイニング行為による、ブロックの生成方法のことをいう。基本的に管理者が存在しない非中央集権型のシステムであるブロックチェーンでは、ブロックの生成をもって、参加者の合意がなされたとみなされる。プルーフ・オブ・ワークは合意形成方法(コンセンサスアルゴリズム)の1つ。他の方法としてプルーフオブステーク(Proof of Stake)、プルーフオブインポータンス(Proof of Importance)などがある。
企画・原作:森 一弥
アステリア(旧インフォテリア)株式会社 ブロックチェーン事業推進室 室長 ストラテジスト。2012年よりインフォテリア勤務。2017年3月までは主力製品「ASTERIA WARP」のシニアプロダクトマネージャーとしてデータ連携製品の普及に務め、特に新技術との連携に力を入れる。 2017年4月より新設されたブロックチェーン事業推進室にて実証実験やコンサルティングなどを実施。またブロックチェーン推進協会(BCCC)では技術応用部会を立ち上げ、技術者へブロックチェーンアプリケーションの作り方を啓蒙している。