○ ここからはWeb3を成り立たせている技術を見ていこう。
既に触れてきたように、ブロックチェーンがWeb3の中心を成す。ブロックチェーンを特徴付けるのは「ブロック化された帳簿データ」「暗号ハッシュによる同一性の担保」「伝搬アルゴリズム」「公開鍵暗号を利用した認証」「合意形成アルゴリズム」の5つだ。
まずブロック化された帳簿データとは、ブロックチェーンにおけるデータの記録方式を指す。ブロックチェーンでは記録するデータを「ブロック」という単位で分割し、それをつないで管理する。ブロックの中には記録するデータそのものであるトランザクション(取引)データと、前のブロック全体を要約したデータ(要約データ)が入っている。
「ブロックチェーンは改ざんが困難」と言われる理由は、要約データがあるためだ。データをどこか1カ所書き換えると、以降のブロックの要約データに不整合が生じる。トランザクションデータを改ざんするためには、以降すべてのブロックの要約データを書き換えなければならない。
この書き換えを困難にするのが、2つ目の暗号ハッシュによる同一性の担保である。具体的には前述の要約データの作成にハッシュ関数を適用する。これにより改ざんされた際に検知できるようになる。前ブロックのハッシュ値をトランザクションデータと共に書き込むことで、改ざんを難しくする。
こうしたブロックの連なりは、ブロックチェーンに参加する全ノードが保持する。ブロックチェーンが「分散型台帳」と呼ばれる由縁だ。ノード同士は直接P2P(Peer to Peer)方式で通信する。これが3つ目の伝搬アルゴリズムだ。クライアント-サーバー方式と異なり、各ノードが対等の立場でデータをやりとりする。1つのノードが停止しても、別のノードがデータを保持する。このためブロックチェーンは誰かが独断で運用を止めようとしても止められない。
4つ目の公開鍵暗号による認証により、参加者の個人情報を開示しなくてもブロックチェーンの利用を可能にする。鍵ペアを生成し、それを通じてブロックチェーンとデータをやりとりする。
最後の合意形成アルゴリズムは、追加されたトランザクションデータをノード間で共有し、ブロックチェーンに追加するための仕組みだ。トランザクションの発生からブロックチェーンへの登録までの流れを確認しよう。あるノードでトランザクションが発生すると、ノードはそれをブロックチェーン全体へ通知する。他のノードも同じように全体へトランザクションを通知していく。
だが、誤った情報が流れてくる場合もある。どのトランザクションを追加し、ブロックチェーン全体で共有するかを合意形成アルゴリズムによって決める。合意形成アルゴリズムによって認証に成功した場合、トランザクションがブロックチェーンに登録される。失敗した場合には破棄される。
EthereumがPoSを導入。
こうしたブロックチェーンの基礎はBitcoinによって作られた。しかしWeb3ではBitcoinはあまり使われていない。スマートコントラクトの実装には不向きだからだ。
Web3でよく使われるのはEthereumだ。Ethereumはスマートコントラクトの自由度が高い点が特徴だ。Dappsが開発しやすく、仮想通貨以外の用途を開拓してきている。
Ethereumは現在、登場以来最大のアップデート「The Merge」を目前に控えている。2022年後半実施予定のThe Mergeは、Ethereumが抱えていた課題のいくつかを改善する。
The Mergeでは合意形成アルゴリズムが変わる。これが最も重大だ。これまでの計算量が多く時間がかかるPoW(Proof of Work)を採用していた。それが短時間で計算が終わるPoS(Proof of Steak)に変わる。
PoSは「保有に基づく証明」と訳せる。ブロックチェーンで出回るトークン、Ethereumでいえば仮想通貨「Ether」を保有してきたノードであれば、そのブロックチェーンを害する(信頼性を損なう)行為はしないはずという考えに基づいている。仮に不正を働けば信頼を失ってEtherの価格が下落し、保有者も損をしてしまう。
PoSではトークンを一定量以上保有するノードを「バリデーター」と呼び、ブロックを追加する担当者をバリデーターの中からランダムで選出する。ブロックを追加したノードはトークンを報酬として受け取る。
チェーンを分割して処理を高速化。
もう1つの大きな変化は「シャーディング」の実装だ。ブロックチェーンを「シャード」と呼ぶグループに分割して、処理速度を高める仕組みだ。
シャードごとにチェーンの一部を検証、後に各シャードの検証結果をつなぎ合わせる。これにより複数のトランザクションを並列に処理できるようになり、処理速度の向上が期待できる。
ただし合意形成アルゴリズムとしてPoWを採用するブロックチェーンがシャーディングを実施するのは難しい。シャード単位に分割した際に、特定のノードにシャードを乗っ取られる可能性があるためだ。
逆に言えば合意形成アルゴリズムをPoSに変えることで、シャーディングが実装可能になった。PoSでは特定のノードが特定のシャードを担当し続ける状況は発生しづらく、乗っ取りの恐れが少ないからだ。
ガス代低減に期待。
The MergeにおけるPoSとシャーディングの実装は、Ethereumが抱える課題の1つであるガス代問題を解決すると期待される。ガス代とはEthereumにトランザクションを追加する際に発生する手数料だ。ブロックチェーンではトランザクションを処理する際、認証したノードに報酬として手数料を支払う。これがガス代になる。
ガス代はトランザクション処理の需要によって変動するが、近年値上がり傾向にあった。Dappsの利用が活発になり、トランザクション処理の需要が急増したからだ。Etherの送金コストも、銀行を通した法定貨幣の送金よりはるかに高額な状況が続いていた。
The MergeによりEthereum全体の処理速度が向上すれば、トランザクション処理の需要が増えてもガス代は高騰しにくくなる。
Ethereum VMが処理を実行。
もう1つEthereumを特徴付けているのが「Ethereum VM」という仮想マシンの存在だ。EthereumではこのVMを使ってスマートコントラクトを実行する。Ethereum VMは「チューリング完全」な実行環境といわれる。これにより、Ethereumで理論上どのようなプログラムも実行できるようにしている。
Ethereumのスマートコントラクトは専用の言語を使って記述する。「Solidity」がよく使われる。Solidityで記述したスマートコントラクトをコンパイルして、それをブロックチェーンに書き込むことで、仮想マシンがコントラクトを処理するようになる。
トークンが規格化。
Ethereum上でやりとりするトークンにはいくつかの規格が用意されている。こうした規格があるので、1つのウォレットで異なるNFTを管理できるわけだ。
多くのトークンに使われるのが「ERC(Ethereum Request for Comments)20」だ。ERC20によりトークンを共通のインターフェース上で扱えるようになった。
だがERC20には運用上の問題があった。存在しないアドレス宛てにトークンを誤って送信した場合、スマートコントラクトがトランザクションを処理できず、トークンが消失してしまうという問題だ。実際ERC20に基づいて作られたトークンのうち、数億円分が消失したといわれる。
そこで新たに登場した規格が「ERC223」だ。ERC223は「token Fallback」という関数を実装して前述の問題を解決している。token Fallbackを使うとトランザクションの処理に失敗した際に、送信元へトークンを返却できる。ERC223はERC20と互換性を持つため、ERC20に対応したスマートコントラクトは、ERC223のトークンにも適用できる。
ERC20とERC223は仮想通貨のような交換可能なトークン(FT:Fungible Token)用の規格だが、「ERC721」というNFT専用規格も作られている。ERC721はトークンの所有者や譲渡履歴を書き込める関数を備える。それらを書き込んだ状態でブロックチェーンに流すことで改ざんできない情報となり、NFTとして成立するというわけだ。
「ERC1155」というハイブリッドな規格も生まれた。ERC1155では、1つのスマートコントラクトでFTとNFTの両方を扱える。またERC1155では複数のトークンを一度に送信できる。