メディア
連載
» 2020年10月30日 09時30分 公開

踊るバズワード 〜Behind the Buzzword(7)ブロックチェーン(1):ビットコインの正体 〜電力と計算資源を消費するだけの“旗取りゲーム” (6/8)

[江端智一,EE Times Japan]

「ブロックチェーン」の疑問点を書き出してみる

 では、ここから後半に入ります。ビットコインを離れ、ブロックチェーンの話、特に現時点での私の疑問点を書き出しておき、次回以降の課題にしたいと思います。

 前半ではビットコインのアルゴリズムについてお話してきましたが、ビットコインを成立させる技術とは、私が理解した範囲では、ざっくり以下の6つと思っています。

 上記の、(A)〜(D)と(F)については次回以降に御説明致します。ここでは、(E)の「コンセンサス(同意)アルゴリム」について、ビットコインと絡めて、簡単に説明いたします。

 ビットコインとは、「旗取りゲーム」で、ゲーム機に適当な数値を打ち込み続けて、そのゲーム機に所定の値(例:上3桁が000になる数値)を、最初に出せたら勝ちというゲームです。これをマイニング(発掘)と言います。なんで、これが「発掘」と呼ぶのか私には分かりません ―― 「むなしいゲーム」だとは思っています ―― が、勝者は台帳を1ページ追加することができます。

 で、この台帳の1ページを「ブロック」、そして、この台帳全体を「ブロックチェーン」と言います。つまり、ブロックチェーンとは、台帳を厚くしていく作業のことです。

 勝者が「勝者であること」を証明する方法は簡単です。勝者の打ち込んだ値を、敗者に知らせて、敗者の持っているゲーム機に入力させるのです ―― まあ、簡単に言えば、勝者の入力した数値を自分のゲーム機(ゲーム機は完全に同一機種が配られている)に入力を試すことで、敗者が「敗北を認める(確認する)」ことになるのです。

 ドヤ顔の勝者が解答(入力値)を配って、渋い顔した敗者に正解(出力値)を確認させる ―― これが「コンセンサス(同意)アルゴリズム」です。

 ところがですね、この正解の数値(例:上位3桁が000)になる数値が、同時に登場するケースがまれに登場するのです。例えばレイシアが”123456789”を入力したら、ゲーム機から”000132435”が出力されて、メトーデが”987654321”を入力したら、ゲーム機から”000534231”が出力されたとします。

 もっとも、この場合でも、レイシアの出力が早ければ、レイシアの勝利になりますが、ネットワークには「伝送遅延」という厄介な問題があるのです。つまり、レイシアとメトーデが、正解をほぼ同時に出力した場合に問題になります。つまり前述のように、出力値は違うけど、上位3桁が000という点においては同じ、というケースです。

 この時、レイシアの答えが、メトーデの答えより先に、マリアージュとこうかに伝わり、メトーデの答えが、スノウドロップだけに伝わった場合、レイシア側が3人、メトーデ側が2人となり、レイシアの勝ちが決まります。要するに、多数決で決定されます。この多数決も「コンセンサス(同意)アルゴリズム」です。

 ところが、多数決の集計が間に合わない場合があります。この場合には、2つの正解が、正解のまま取り扱われて、2つの台帳が作り続けられる場合もあります(1年に4回くらい、こういうケースが発生するそうです)。

 こういうケースを説明するのに良く見られる絵が、これです。

 これ分かりますか? 私は分からなかったです。

 ブロックチェーンは、台帳の厚みのイメージで記載した方が良いと思います。つまり、こうです。

 このような二重台帳問題も、敗者が直ちに判断できます。簡単にいえば、2冊の台帳が届いた場合、ページの少ない台帳は捨てしまうのです。

 これもタイミングによっては、台帳が1冊しか到着しない場合もあるかもしれませんが、いずれはページ数の多い台帳が到着します。そして、ページの少ない台帳は廃棄されていくのです。

 これを具体的な運用イメージに落して時系列順に現わしてみると、こんな感じになります。

 以上、コンセンサスアルゴリズムの3つの特徴を説明してみました

 もっとも、コンセンサスアルゴリズムには、この他の方式もあり、また各種の問題点もあります。次回以降、説明したいと思います。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.