ここからはWeb3を成り立たせている技術を見ていこう。
既に触れてきたように、ブロックチェーンがWeb3の中心を成す。ブロックチェーンを特徴付けるのは「ブロック化された帳簿データ」「暗号ハッシュによる同一性の担保」「伝搬アルゴリズム」「公開鍵暗号を利用した認証」「合意形成アルゴリズム」の5つだ(図2-1)。
まずブロック化された帳簿データとは、ブロックチェーンにおけるデータの記録方式を指す。ブロックチェーンでは記録するデータを「ブロック」という単位で分割し、それをつないで管理する。ブロックの中には記録するデータそのものであるトランザクション(取引)データと、前のブロック全体を要約したデータ(要約データ)が入っている(図2-2)。
「ブロックチェーンは改ざんが困難」と言われる理由は、要約データがあるためだ。データをどこか1カ所書き換えると、以降のブロックの要約データに不整合が生じる。トランザクションデータを改ざんするためには、以降すべてのブロックの要約データを書き換えなければならない。
この書き換えを困難にするのが、2つ目の暗号ハッシュによる同一性の担保である。具体的には前述の要約データの作成にハッシュ関数を適用する。これにより改ざんされた際に検知できるようになる。前ブロックのハッシュ値をトランザクションデータと共に書き込むことで、改ざんを難しくする。
こうしたブロックの連なりは、ブロックチェーンに参加する全ノードが保持する。ブロックチェーンが「分散型台帳」と呼ばれる由縁だ。ノード同士は直接P2P▼方式で通信する。これが3つ目の伝搬アルゴリズムだ。クライアント-サーバー方式▼と異なり、各ノードが対等の立場でデータをやりとりする。1つのノードが停止しても、別のノードがデータを保持する。このためブロックチェーンは誰かが独断で運用を止めようとしても止められない。
4つ目の公開鍵暗号による認証により、参加者の個人情報を開示しなくてもブロックチェーンの利用を可能にする。鍵ペアを生成し、それを通じてブロックチェーンとデータをやりとりする。
最後の合意形成アルゴリズムは、追加されたトランザクションデータをノード間で共有し、ブロックチェーンに追加するための仕組みだ。トランザクションの発生からブロックチェーンへの登録までの流れを確認しよう(図2-3)。あるノードでトランザクションが発生すると、ノードはそれをブロックチェーン全体へ通知する。他のノードも同じように全体へトランザクションを通知していく。
だが、誤った情報が流れてくる場合もある。どのトランザクションを追加し、ブロックチェーン全体で共有するかを合意形成アルゴリズムによって決める。合意形成アルゴリズムによって認証に成功した場合、トランザクションがブロックチェーンに登録される。失敗した場合には破棄される。