『Web3.0が結局わからない問題』から理解する「web3」
「Web3.0」が結局わからない問題
「Web3.0とは」というワードで検索すると、大抵の場合は「次世代の分散型インターネット」や、「ブロックチェーン技術などを基盤とする分散型インターネット」といった説明がされています。しかし、どの記事においても説明が微妙に違っており、その説明だけで概念をはっきりと理解することは難しいです。
なぜこの単語は人によって説明が違っているのでしょうか?
答えはいたって簡単で、「説明が難しすぎるから」です。
この単語が簡単に説明できない理由として、
複雑な歴史を持つ
複数のテクノロジーを土台としている
という2点があります。
これらのコンテクストは数行ではとても説明しきれず、それらを無視するとどうしても先ほど例に挙げたようなふわっとした説明になってしまうのです。
この記事では上記2点を考慮しながら「web3」という単語が持つ意味を初心者にもわかりやすく説明しつつ、「web3」という単語が示す広い概念についても説明していきます。(なぜタイトルや本文で「Web3.0」と「web3」という異なる表現を使用しているのか?という問題も後ほど説明します。)
この記事を読めば、単語の意味と歴史、現在の状況(執筆時点まで)がまるっとわかるようになっています。
ブロックチェーンって何?
まずは、よく「web3」という単語の説明にも出てくる「ブロックチェーン」について説明します。残念ながらこの単語の理解なしでは「web3」は絶対に理解できません。
「ブロックチェーン」とは、ざっくりと言えばデータ構造のことです。また「ブロックチェーン技術」というと、このデータ構造を利用した改ざんされにくい(セキュリティの高い)データベースを作る技術を意味します。
ブロックチェーンは何に優れているのか?
一般的な他のデータベースよりも「セキュリティがずば抜けて高いこと」です。ここでいうセキュリティとは、特に「データの改ざん耐性」のことを指し、情報セキュリティの3要素のうち、完全性(Integrity)にあたるものです。
https://www.fujitsu.com/jp/solutions/business-technology/security/secure/column/201703-1/
ブロックチェーンに保存されたデータは、永続的に保持され、改ざんもできません。もし改ざんしようとした場合、データが書き換わったことが必ずわかるようになっています。
この仕組みについて詳しく見ていきましょう。そこまで難しくもなく、とても頭のいい仕組みです。
どのようにしてそのセキュリティを生みだしているのか?
ブロックチェーンにおけるデータベースは、以下のような形をしています。
上記の図の通り、四角形(ブロック)同士が線(チェーン)でつながっています。
ブロックの中にはデータが含まれており、誰かがデータベースに新たなデータを追加すると、新しいブロックが生成され、一つ前のブロックとチェーンによって繋がります。
この「チェーン」こそが、ブロックチェーンの強固なセキュリティの源なのですが、これがどうセキュリティを担保するのかを理解するにはもう一つ説明しなければいけない要素があります。
それは「ハッシュ関数」です。
ハッシュ関数について
ハッシュ関数という関数があります。非エンジニアだと「関数」という単語に聞きなじみがないかもしれませんが、ここでは「何かを入れたらそれが加工されて何かが出てくる工場」のようなものだと思ってください。
ハッシュ関数には任意のデータを入れることができます。つまり文章とか適当な数字とか、とにかくどんなものでも入れることができます。
そしてハッシュ関数に何らかのデータを入れると、内部で加工されて一定の長さの文字列が出てきます。
文章で説明してもわかりづらいので、ちょっと実践してみましょう。
https://emn178.github.io/online-tools/sha256.html
上記のリンクにアクセスして、上の空欄に好きな文章を入れてみてください、何でもいいです。
ページ中央の「Hash」を押すと、ページ下部の四角に謎の文字列が出現していると思います。
それがあなたが最初に打ち込んだ文章から生成された「ハッシュ値」です。
何度か試してみるとわかるのですが、最初に入れる文章の内容が1か所でも違えば、全く違うハッシュが生成されるのがわかると思います。
「1234567890」と入れた場合のハッシュ値は「c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646」
ですが、入力を1文字だけ変えて
「1234567891」と入れてみると、ハッシュ値は「523aa18ecb892c51fbdbe28c57e10a92419e0a73e8931e578b98baffccf99cdd」
という全く別のものに変わります。
総じて、
好きな文字列を入力できて
それに対応した一定の長さの文字列(ハッシュ値)が返ってくる
1か所でも違えばハッシュは完全に別のものになる
という特徴を持っています。
これでブロックチェーンの最低限の説明ができる要素が揃ったので、ようやくブロックチェーンの仕組みの話に入ることができます。
まずはブロックチェーンにデータを追加してみましょう。データはすべてブロックの形で追加されていくので、これはブロック生成と呼ばれています。
ブロック生成の流れ
まずは保存したいデータを集めてひとまとまりのブロックにします。
次に、ブロックの中身を丸ごとハッシュ関数に入れます。
ハッシュが出てきます。
これをブロックとセットにします。
完成!
これで一つブロックができました。
では、もう一つブロックを作ってみましょう。
保存したいデータを集めてひとまとまりのブロックにします。
次に、ブロックの中身と一つ前のブロックのハッシュをセットにして、これをハッシュ関数に入れます。
新たなハッシュが出てきます。
これを2でセットにしたものにくっつけます。
完成!
先ほどとの違いは、最初のブロックから生成したハッシュが2個目のブロックの内部にデータとして取り込まれている点です。
3つ目のブロックには同じように、2つ目のブロックのハッシュをデータとして加えてからハッシュ化します。
以降のブロック生成は同じことの繰り返しで、ブロックnにはブロックn-1のハッシュが含まれています。
これらを図に書き起こすと以下のようになります。
では、試しに2番目のブロックに入っているデータを書き換えてみましょう。そうすると、ハッシュ関数に入力するデータが変更されるためブロックのハッシュが本来の0x2222...から0xAAAA...へと変化してしまいます。
2番目のブロックのハッシュが別のものに変わっているので、3番目のブロックのハッシュも自動的に別のものに変わってしまいます。もし新たにブロックが追加されても、改ざんされたものと改ざんされていないものでは常にハッシュが別のものになり続けます。ハッシュさえ見ていれば、書き換えられていることがわかるのです。
これがブロックチェーンの改ざんが難しい理由です。
分散型とは何か?
「web3」の説明には、ブロックチェーンと共に「分散型」という単語がよく出てきます。これについても説明していきましょう。
「分散型」とはネットワークの状態の説明で、そのネットワークの主導権(データの変更をする権力や新しくデータを追加、変更する権力)がどこにも集中していないことを指しています。
分散型でない、従来のインターネット
今までのインタ―ネットは、中央にあるデータサーバーにほぼすべてのデータがあり、それらの移動や書き換えの権力、つまりネットワークの主導権は、それを所有している企業に集中していました。
これをこの界隈では「集権的」や「中央集権的」と表現します。
これに対し分散型のものは、「非中央集権」と表現されることが多いですね。
この状態では企業やサーバーの持ち主の人間にデータの操作権が集中しているため、たとえばその管理者が改ざんや盗み見等を行った場合でも、外部のユーザーは検知できないという構造上の欠点があります。
これはブロックチェーンの発明以前までは当然のことで(今でもほとんどがこの形式)、普通はその企業を信頼し任せるという形でユーザーは納得していて、欠点とも表現されてこなかったのですが。
ブロックチェーンはこれをどのように分散化したのか?
ブロックチェーンは、これらの改ざんなどの行為を、「そもそも誰もできないように」する仕組みです。そしてそれをする手段が、分散化だといえます。
全てを説明すると一冊の本が書ける程の分量になってしまうので、ある程度全体感がつかめる程度の粒度で書いていきます。
まず、データを保管しているサーバーが1台ではなく、複数台あります。少なければ2台でもいいのですが、多ければ多いほど良いです。これらのサーバーはすべて同じデータ(ブロックチェーン)を保管しています。
何の仕組みもなしに同じデータを保管しているサーバーを増やしてしまうと、どのサーバーが一番新しく、どのように新しくデータを追加し、どのサーバーが正しいのかが全くわからなくなってしまいます。
なので、基本的には何らかの方法で代表者(サーバー)を1ブロックごとに1人決め、その代表者が新しくブロックを作成し、みんなでそれが間違っていないかどうかを確認する、というルールになっています。この一連の流れを「コンセンサスアルゴリズム」と呼び、ビットコインであれば「PoW」、イーサリアムであれば「PoS」という仕組みを採用しています。
全員がこのルールに従うことによって、複数台のサーバーで単一のデータベースを操作できるわけです。
誰か個人が一人の力でデータベースを操作することはほぼできなくなっており、これをもって「分散化している」と表現できるのです。
また権力に加えて地理的な分散という特徴もあります。世界各国に存在するサーバーが同じデータを持っているので、サーバーの1か所や2か所が火事や地震で失われても、他のサーバーに保存されているのでデータが消えることはありません。
先ほど説明したハッシュ関数による改ざんの検知と、サーバー分散化とコンセンサスアルゴリズムによる「権利の分散化」によって、ブロックチェーンは実質的に改ざんが不可能となっています。
さて、最初に上げた「web3」がわかりづらい要因である「複数のテクノロジーを土台としている」については説明できましたが、もう一つの「複雑な歴史を持つ」についても解説していきます。この歴史をさかのぼることによって、はじめて「web3」という文化の詳細について理解することができるでしょう。
ブロックチェーン、ビットコインのはじまり
言わずと知れた最初のブロックチェーンはビットコインです。まずはこのビットコインができた歴史から話していきましょう。
まず、ビットコインを作ったのはSatoshi Nakamotoという人物であることが知られています。
彼は2008年10月31日に、自身の所属するコミュニティのメーリングリストにてビットコインの論文を初めて掲載し、2009年1月3日から実際に動き出しました。
ビットコイン以前から、b-moneyやbitgoldという、自律したデジタル通貨を作成する試みは行われてきましたが、どれも通貨としては何らかの欠点を抱えていました。
それらで使用された技術を少しづつ組み合わせ、最終的に通貨として問題なく動作するビットコインが完成した、という歴史があります。
イーサリアムの考案、「web3」の提言
ビットコイン以降、ビットコインを拡張したり、ビットコインに別の機能を付けた新たなブロックチェーンを作る動きが活発になりました。その流れで、イーサリアムが登場します。
2013年にVitalik Buterinという当時19歳の青年によって考案され、それをコードに落とし込んだのが後の「web3(またはWeb3.0とも)」の発案者であるGavin Wood氏だと言われています。
2014年に、Gavin Wood氏によって最初にweb3という単語に関する記事が出ました。この記事の内容はブロックチェーンを利活用した新しいインターネットとそのコンポーネントの説明になっており、現在定義されている「web3」とは少しだけ範囲の違う意味を持っています。
WiredのGavin氏へのインタビュー記事での説明が、現在一般的に使用されている「web3」の定義になっています。
「At the most basic level, Web3 refers to a decentralized online ecosystem based on the blockchain.」(最も基本的なレベルでは、Web3はブロックチェーンに基づく分散型オンライン・エコシステムを指す。)
この定義は最初期のものとは明らかに違っており、最初期は「新しいインターネットの構造」としてのweb3でしたが、今では「イーサリアムやビットコインを含むブロックチェーンに基づく様々なエコシステム」という意味に変わっています。
またイーサリアム財団による現在の説明では、「Web3 has become a catch-all term for the vision of a new, better internet.(Web3は、新しい、そしてより良いインターネットのビジョンを示す包括的な単語になっている。)」という説明をしており、こちらはあえて明確な定義はしていないように見えます。
結局「web3」って何?
ここで改めて、ここまで説明してきた歴史と現在の状況を踏まえて、矛盾のないように「web3」という単語を説明するのであれば、以下のようになるのではないでしょうか。
「web3とは、ブロックチェーン等の技術を基盤とする分散型のエコシステムを中心とした、新たなインターネット上の文化とそのムーブメント。」
最後に何故「新たなインターネット上の文化とそのムーブメント」と付け足したかについてですが、「web3」自体は、実態としてこのブロックチェーンを推し進めていく現在の各ブロックチェーンや関連企業の流れそのものと表現するほうがしっくりくるからです。
言語学の世界には、「ドリフト」という概念があり、単語の意味が人々に使用されるうちに無意識に変化していく現象のことです。「web3」という単語も、人々の間で使われていく毎に、というか主に使用する人々のマジョリティの層が変わっていったことによって意味が少しづつ変化していっているのでは、と考えています。
この記事が読んでくださった方々の「web3」に対する解像度が上がったのであれば幸いです。
おまけ
ちなみに表記は何が正しいの?
Web3.0だとか、web3.0だとか、Web3とかweb3とか複数の書き方をされていますが、これはどれが正しいのでしょうか?
最初に答えを言ってしまうと、「どれでもいい」です。
大文字小文字の表記に意味的な差異を持たせる方々もいますが、発案者にはそのような意図は確認できないのと、差をつけるにしてもほぼ浸透しておらず広まっていないので、そうする意味はないと私は考えています。
今回の記事ではweb3で統一していますが、これにも特に意味はないです。
Web3.0には2種類あって、片方は完全に別物という罠
実は、Gavin Wood氏が「web3」と言い出す前から、全く別の概念の「Web3.0」が存在していました。
インターネットの生みの親ともいえるTim Berners-Lee氏が、Web2.0から進化した、セマンティック・ウェブを含む新たなインターネットとして「Web3.0」というものを1999年に提唱しています。ですが、これは全くもって我々が話しているブロックチェーン技術とは関係ない別のWeb3.0なのです。単語としてはこちらが先に存在しており、ブロックチェーン技術を基盤としているほうの「Web3.0」は後発なのですが、現在はWeb3.0というと基本的にブロックチェーンを基盤としているほうを指します。
大企業のウェブサイトでもこれを混同している場合があったり、最初は混乱するポイントかと思われます。
さいごに
私が代表を務めるクリプトリエでは、企業によるNFTのビジネス活用を簡単かつ迅速に実現する、NFTマーケティング・プラットフォーム「MintMonster」を提供しているほか、法人向けにweb3領域のコンサルティングや受託開発サービスを提供しています。Web3 / NFTのビジネス活用にご興味ある企業様はお気軽にお問い合わせください。
NFTマーケティング・プラットフォーム「MintMonster」公式サイト
https://mint-monster.io/
そして、このnote以外にX(Twitter)でもWeb3に関する情報発信をしていますので、ぜひnoteへのスキ/フォローに加えてXのフォロー/いいねもいただけたら嬉しいです!
X(Twitter)アカウント
https://twitter.com/yasuo_tezuka