小学館IDをお持ちの方はこちらから
ログイン
初めてご利用の方
小学館IDにご登録いただくと限定イベントへの参加や読者プレゼントにお申し込み頂くことができます。また、定期にメールマガジンでお気に入りジャンルの最新情報をお届け致します。
新規登録
人気のタグ
おすすめのサイト
企業ニュース

「分散」と「合意形成」で信頼度アップ!ブロックチェーンを実現する3つの技術

2019.03.18

P2Pネットワークでデータを保存する仕組みを詳しく見てみる

「P2Pネットワークは単一障害点がなく、どこかのノードが故障しても通信が継続できる」というのを理解できましたでしょうか。続いてネットワーク上にデータを保存する話に進みます。そう実際にブロックチェーンのデータがどのように管理されているかという話です。

 まずP2Pネットワーク上にデータを分散して保存する仕組みを「P2P分散ストレージ」といいます。P2Pネットワークに接続しているP2P分散ネットワークの中に、取引データや画像ファイル、文書ファイルなどを保存するとき、データの名前が重複しないように気をつける必要があります。そのために「ハッシュ関数」という関数を使って保存するデータのハッシュ値を取得し、さらにブロックチェーンにはこのハッシュ値だけを保存します。このハッシュ値のことを「コンテントアドレス」といいます。ハッシュ値が偶然同じになる可能性は限りなくゼロに近いため重複する心配が殆どありません。

 なぜコンテントアドレスをブロックチェーンに保存するのでしょうか。理由は「ブロックチェーンに記録したデータは変更・削除ができないため」です。そこでファイルの存在(リンク)を示すコンテントアドレスのみをブロックチェーンに保存し、P2P分散ストレージ上のどこに目的のファイルがあるかわかるようにしておけばよいのです。もし目的のファイルの中身が更新されたり改ざんされたりすれば、コンテントアドレスが変わりますから、そのファイルが別物であることがわかります。

■コンテントアドレスのイメージ

 実体のファイルはP2P分散ネットワークストレージに保存しておき、ブロックチェーンにはファイルの情報をハッシュ化したハッシュ値であるコンテントアドレスを書き込みます。

ブロックチェーンの正確性をみんなで確認する「合意形成」の方法

 最後は「合意形成」の方法を紹介します。P2P分散ネットワークで、ブロックチェーンで新しいブロックが接続されたとき、接続しているノードの数が一定であれば「多数決」によって、一番多い同意を得たブロックが正確なブロックということになります。しかし接続するノードの数が常に変動している場合には、総数がわからないので多数決を行いたくても行うことができません。そんなときにブロックが正確であることを合意するのに使う手法が「PoW」(Proof of Work)や「PoS」(Proof of Stake)という手法です。PoSはPoWをより合理的にしたものなので、ここではPoWについて知っておきましょう。

□PoWは「ナンス」の計算を一番のりで行うとインセンティブがもらえる

 Proof of Workには「仕事の証明」という意味があります。ブロックチェーンに新しく接続したブロック(取引データ)に対して、ある特定の値(ナンス)を計算する作業が「マイニング」です。下の図を見ながら続きを読んでください。例えば、取引データのハッシュ値で「0」が50個並ぶようにするために、掛けるナンスを計算してください。と言ったとき、「ハッシュ値 × ナンス=0が50個並ぶハッシュ値」という式が成立します。ナンスの計算にかかる時間を難しくしておけば、見つかるまでひたすら計算が続けられ、ナンスを最初に見つけた人に報酬を与えるようにしたのがPoWです。ナンスを見つけたあとに、ブロックの中身を改ざんするとナンスの値が代わることになるので、ブロックの正確性の証明にもなるというわけです。

■ナンス計算のイメージ

ある条件に当てはまるハッシュ値を計算するのに使う特定のナンスを発見するのがマイニングであり、発見のためにコンピューターの計算性能が求められます。一番先にナンスを見つけた人に報酬が与えられます。

まとめ

ブロックチェーンで用いられている技術について、ネットワーク上の分散を実現し、またブロックチェーンの正確性を確認する「合意形成」の手法を紹介しました。ビジネスの現場では直接関係のないかもしれませんが、これらの技術について理解しておくことで、ブロックチェーンをビジネスに活用する方法をもっと深く考えられるようになります。繰り返し読んでみて理解を深めてみてください。

<補足>ビザンチン将軍問題についても知っておこう

 複数人が合意形成をするとき、わざと違った答えを正しいといい、ミスリードを誘う人がいます。6世紀の東ローマ帝国で起きた、ビザンチン帝国で、複数の将軍から裏切り者が出た実話を基に、「ビザンチン将軍問題」とも言われています。ビザンチン帝国では、複数の将軍の合議で戦争をどのように進行するか決めていました。例えば次の敵国に進軍するか、撤退するかを合議するとき、「撤退する」がより合理的だったとき、反逆者はわざと「進軍する」を選びます。ビザンチン将軍問題に限らず、多数決をするときに起こりうる問題ですね。このときに合理的な合意を行うのが「PoW」や「PoS」という手法であることを理解できれば十分です。

取材・文/久我吉史
現役の金融ビジネスパーソンでもある金融ライター。ネット証券やネット銀行などを渡り歩き、ITから法人営業まで何でもこなす。最近は金融ビジネスをコーポレート(法務・会計)目線で作り上げるような毎日を送っている。
作図/稲岡聡平

@DIMEのSNSアカウントをフォローしよう!

DIME最新号

最新号
2024年4月16日(火) 発売

DIME最新号は「名探偵コナン」特集!進化を続ける人気作品の魅力、制作の舞台裏まで徹底取材!

人気のタグ

おすすめのサイト

ページトップへ

ABJマークは、この電子書店・電子書籍配信サービスが、著作権者からコンテンツ使用許諾を得た正規版配信サービスであることを示す登録商標(登録番号 第6091713号)です。詳しくは[ABJマーク]または[電子出版制作・流通協議会]で検索してください。