Web3の概要とブロックチェーン(1)

2023年4月21日(金)
梅田 弘之(うめだ ひろゆき)
第1回の今回は、ブロックチェーンの基礎とハッシュを使ったデジタル署名について解説します。

はじめに

最近、Web3(ウェブスリー)という言葉をよく耳にするようになりました。「うん? ブロックチェーンのこと?」「NFTだよね?」「トークンとウォレットだっけ?」「たしか分散型ネットワークのことだったよね?」「いや拡張空間じゃない?」「セマンティックWebで聞いたよ」…などなど。

はい、どれも正解です。ただ、知識が断片的できちんと説明できない人も多いと思います。これからWeb3の時代を迎えるにあたり、このあたりで一度、きちんと理解しておきたい。この連載はそんな方々にお届けします。

インターネット利用形態で見る3世代

Web3は、2014年にイーサリアム共同創設者のキャビン・ウッド氏によってネーミングされたと言われています。イーサリアムは仮想通貨で、そこで使われていたのがブロックチェーンの分散型ネットワークという概念です。この言葉はその後の仮想通貨やブロックチェーン、NFTの広がりを背景に2021年頃からバズワードとしてよく聞くようになりました。

Web3の「3」は第3世代を意味します。と言うと第1世代と第2世代がなんだったかが気になりますね。そこで、まず、第1世代から第2世代を経て、第3世代としてどのような世界が広がろうとしているのかを把握しておきましょう。図1に人がインターネットを通してどのように情報をやり取りしたかという変遷をまとめました。この図を用いて3つの世代の違いを説明します。

情報アクセスの世代変化

図1:情報アクセスの世代変化

第1世代(Web1.0)

1990年代半ばにインターネットが登場したことによって、人々は企業が作成するホームページから簡単に情報を入手できるようになりました。それ以前は、展示会に行ってリーフレットをせっせと集めたり、高額な企業年鑑を購入して情報を得るしかなかったのですが、本当に便利になったものです。そして、その頃に登場したのがYahooやGoogleなどのポータルサイトで、アマゾンや楽天市場のようなeコマースサイトも続々と誕生しました。

第2世代(Web2.0)

2000年代半ばになると、FacebookやTwitterなどが登場し、人々はこれらのSNSを使って双方向で情報をやり取りするようになりました。LINEやInstagram、YouTubeなどさまざまなSNSが次々と花開き、eコマースの世界でもフリマアプリのメルカリが誕生しています。

この新しい潮流をWeb2.0とネーミングして広めたのは、オライリーメディア創立者のティム・オライリー氏です。オライリー氏が2005年にWeb2.0を提唱したことでバズワードとなり、それまでの「情報の送り手と受け手が一方的な流れになるWeb利用法」がWeb1.0とされたのです(映画と同じく、twoができたら最初のがoneだったってことになるわけです)。つまり、Web1.0がRead Onlyだったのに対し、Web2.0はRead & Writeなのです。

第3世代(Web3)

2009年に世界初の仮想通貨であるビットコインが誕生し、その技術基盤としてブロックチェーンが注目されました。この技術が仮想通貨だけでなくトークンエコノミー、NFTなどに広まり、これらをWeb2.0に続く新しい潮流としてWeb3と呼ぶようになりました。

Web2.0とWeb3の違いを説明するのは、Web1.0とWeb2.0の違いを説明するよりも少し難しいです。どちらもユーザーが双方向でやり取りする仕組みは同じだからです。一番の違いは集中型と分散型です。Web2.0がFacebookやTwitterなどのビッグカンパニーが提供する集中型サービスであるのに対し、Web3はユーザー同士が自律的に情報交換を行う分散型ネットワークであるところが違いと言われています。仮想通貨で言えば○○Payなど企業が取りまとめているのがWeb2.0で、ビットコインのように集中管理者がいないP2P(ピアツーピア)ネットワークがWeb3です。

要素(社会・潮流・技術など)で見る3世代

上記がオーソドックスなWeb3の説明です。しかし、世代というのは、社会や技術の潮流を後からまとめたものなので、いろいろな見方があります。もう少し枠を広げて見てみましょう。図2に世代ごとの主な要素をまとめたので、今度はこれを使って説明しましょう。

要素の世代変化

図2:要素の世代変化

Web1.0(1990年代の中頃〜)

インターネットが社会に広がり、企業がホームページを作成して情報発信できるようになりました。また、ネットでモノやサービスを買うことが当たり前になり、ポータルサイトを使って欲しい情報にたどり着いたり、ニュースフィードなどで自分に合ったニュースを読むようになりました。技術的には、HTMLやCSS、XMLなどが幅広く使われ、JavaやJavascriptが全盛です。

Web2.0(2000年代の中頃〜)

SNS(Social Networking Services)の時代です。スマホが普及し、人々はスマホのカメラで写真や動画を撮影してアプリを使って相互に発信し合う時代となりました。また、オンプレミスからクラウドに切り替わり、ビッグカンパニーはアプリやクラウドを使って個人データを収益化するモデルを確立しました。技術的には、ビッグデータやNoSQLのほかエコシステムが広がってAPI接続が主流となっています。

Web3(2020年代の中頃〜)

何ごとも世代が上がるにつれて多様化します。Web3の定義や範疇もこの法則通り多様化しており、何を持ってWeb3と称するのかを整理する必要があります。図2でWeb3の要素をいろいろと挙げていますが、これらを3つのグループに分けてみます。

a. 分散型ネットワーク
要素の1つ目は分散型ネットワークです。ブロックチェーンやNFT、DApps、トークンエコノミー、インターオペラビリティ(Interoperability:相互運用性)などがこのグループでしょうか。Web2.0が「企業が個人データを収益化するモデル」だったのに対し、Web3は「個人が自分のデータを収益化するモデル」とも言われています。

b. セマンティックWeb系
2つ目はセマンティックWeb(semantic web)に代表されるもので、オントロジー(ontology)やRDF、AIなどがこのグループに入ります。構想自体は古く2005年ごろに脚光を浴びた技術ですが、AIが進化してようやくセマンティックWebの情報を活用できる時代になったことで、再び注目されてWeb3に含められています。話題のChatGTPは、インターネットの中からもっとも適した情報を選んで、いい塩梅にまとめて回答してくれますが、これとセマンティックWebを組み合わせたらすごい世界が展開できそうです。

c. 空間Web系
3つ目は空間Web系(Spatial Web)のもので、メタバースやウェアラブルデバイスによるAR、VRなどがこのグループです。

このように分けたとしても、まだ、あいまいなものがあります。例えば、上記ではオントロジーとの関連でAIを第3世代にしましたが、AIはビッグデータとセットで第2世代の方がふさわしいかも知れません。また、メタバースとの関係でメガネなどのウェアラブルデバイスを第3世代に入れましたが、これもスマートデバイスとセットで第2世代にしても良いでしょう。プロ野球の松坂世代などと同じく、あくまでも要素が社会に登場するのが先で、後からそれを世代でくくろうとしていることを理解しておいてください。

さらに、前の世代が廃れたから世代が変わったというわけではありません。第1世代の上に新しい潮流として第2世代が乗っかり、さらにその上に第3世代が生まれるような感じです。層が積み重なりながら全体が大きく膨らんでいると考えてください。

本連載では、ここに挙げた各要素を順番に取り上げていきながら、Web3のキホンを理解していきます。まずは、P2P分散型ネットワークから理解していきましょう。今回はビットコインの仕組みをもとに、ブロックチェーンについて説明します。

ブロックチェーンとは

今日ではさまざまな仮想通貨(暗号資産)がありますが、始まりはビットコインです。2009年にビットコインが運用開始してからまたたくまに世界に広まり、その後にイーサリアム、リップルなどのさまざまな仮想通貨が誕生しています。

そしてブロックチェーンは、ビットコインの取引情報を記録するために一緒に誕生した技術です。2008年に「ビットコイン:ピアツーピア電子キャッシュシステム」というタイトルのホワイトペーパーで紹介され、ピアツーピアの分散型ネットワークという新しい技術基盤となっています。

分散型台帳

ブロックチェーンは、ひと言で言うと「分散型台帳」です。図3のようにブロックと呼ばれる単位でトランザクション(取引情報)を記録し、それをチェーン(鎖)のように連結してすべての取引を分散管理します。

ビットコインの場合は、だいたい10分に1回のペースでブロックが作成され、1回のブロックには1MBの取引情報が格納されています。Web2.0や最近検討が始まったデジタル円であれば、どこかの企業や銀行がデータを一元管理していますが、ブロックチェーンはそのような集中管理者がいないためP2Pネットワークに参加している数千のノードで情報を共有しています。

ブロックチェーン

図3:ブロックチェーン

各ブロックには、前のブロックヘッダのハッシュ値が書き込まれています。前のブロックには、その前のブロックヘッダのハッシュ値が書き込まれています。この構造がチェーンと言われるゆえんです。2009年の取引開始から今日まで1本の長いチェーンでブロックがつなげられ、今でも10分に1回ブロックが伸びています。つまり、2009年からのすべての取引情報がチェーンでつながっているブロックに蓄積されており、参加しているノードがその(全ブロックの)情報をそれぞれで共有して持っているのです。

各ブロックが長いチェーンのようにつながっている仕組みにしているのは、取引記録の改ざんを防止するためです。仮に、あるブロックのデータを変更した場合、後続のブロックをすべて正しく書き換えなければなりません。次回以降で詳しく説明しますが、“正しく書き換える”という作業を意図的に難しくしており、その仕組みによってデータの改ざんが困難になっています。

ビットコイン生みの親は誰?

2008年にSatoshi Nakamotoという名前で、「Bitcoin:A Peer-to-Peer Electronic Cash System」という論文がネットで発表されました。そのAbstract(要旨)の1行目がこちらです。

“A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution.”
「純粋なピア・トゥ・ピアの電子マネーができれば、金融機関を通さなくても、ある人から別の人に直接オンライン支払いを可能にするだろう」

その後のブロックチェーンや電子マネーの普及を目の当たりにしている今、この文を読むとそのすばらしい発想と先見性に感動します。この論文の翌年2009年にはソフトウェアがネットに発表され、最初の採掘が行われて運用が開始されました。

ところが、Nakamoto氏自身は2年ほど活動してから忽然と姿を消しました。実はこのビットコインの生みの親であるNakamoto氏の正体がいまもって不明で、日本人なのか外国人なのか、1人なのかグループなのかもわかっていないのです。莫大なビットコイン資産を持っていると推測されるSatoshi Nakamotoが誰なのか、いろいろな人がその謎解きにチャレンジしていますが、いまだに解明されず興味深いミステリーになっています。

公開鍵暗号方式とデジタル署名

次回からブロックチェーンの詳細説明に入りますが、その前にブロックチェーンでも使われている公開鍵暗号方式について基本を理解しておきましょう。公開鍵暗号方式とは、秘密鍵と公開鍵(共通鍵とも言います)という2つのペアの鍵を使って暗号化/復号化を行う方法です。

送信データの暗号化

図4は、送信データの暗号化の流れを説明したものです。最初に秘密鍵と公開鍵をペアで作成し(①)、公開鍵の方を送信者に送って(②)、それを使ってデジタル文章を暗号化してもらいます(③)。そして暗号化された文章を送付してもらって(④)、それを秘密鍵を使って復号化します(⑤)。

秘密鍵は受信者しか持っていないため、万一、この暗号化された文書が第三者に渡っても解読されないということになります。

公開鍵暗号方式を使った送信

図4:公開鍵暗号方式を使った送信

デジタル署名の暗号化

この公開鍵暗号化方式は、デジタル署名でも使われます。いろいろな方法がありますが、基本的な仕組みを図5を使って説明しましょう。最初に署名対象の電子文書をハッシュ関数を使ってハッシュ値に圧縮します(①)。ハッシュ(hash)という言葉は、ハッシュドポテトと言うように“切り刻む”という意味ですが、コンピュータの世界では元データを固定長の数値に変換することを言います。

例えば、SHA-1(後述)というハッシュ関数を使うと、あらゆる電子文書を40桁(160ビット)の英数字に変換します。異なる文書が同じハッシュ値になることは天文学的な確率なので、ハッシュ値が同じであれば元の電子文書は同一であることとみなされます。

次に秘密鍵を使ってハッシュ値を暗号化し、これがデジタル署名となります。そして、受領者には電子文書とデジタル署名(紙の文書にサインしたイメージですね)、そして公開鍵をセットで送ります(③)。受領者は同じハッシュ関数を使って電子文書をハッシュ値に変換し(④)、公開鍵を使って復号化した(⑤)ハッシュ値と比較検証します(⑥)。

②でハッシュ値を暗号化したものをデジタル署名としているので、それを⑤で複合化したものが最初のハッシュ値となるわけです。ハッシュ化しなくても(図5からハッシュ関連を削除)デジタル署名は成り立ちますが、ハッシュ化して圧縮するほうが容量も処理速度も小さくできるのです。

ここで注意してほしいのは、ハッシュ化は暗号化ではないということです。ハッシュ化は不可逆性であり、ハッシュ化されたデータから元データを割り出すのは非常に困難とされています。一方、暗号化は可逆性な変換で、暗号化されたデータを復号化できなければなりません。

公開鍵暗号方式を使ったデジタル署名

図5:公開鍵暗号方式を使ったデジタル署名

ハッシュ関数

ついでにハッシュ関数についても説明しておきます。SHA-1(シャーワン)は、アメリカ国家安全保障局(NSA)が設計し、1995年にアメリカ国立標準技術研究所(NIST)によって標準化されたハッシュアルゴリズムです。これが事実上のハッシュ標準として広まり、さまざまなアプリケーションやプロトコルに使用されました。しかし、2017年にオランダの研究機関CWIとGoogleが、2つの異なるデータから同じハッシュ値を生成する“衝突”に成功し、その2つのPDFファイルを公開しました。

実は、これに先立つ2005年にSHA-1への攻撃法が発見され、SHA-1が絶対に安全とは言えないことからSHA-2への移行が推奨されつつある状況でした。とは言え、衝突を起こすためには約900京通りものSHA1計算が必要であり、これはCPU計算で6500年、GPU計算でも100年分の処理量です。そのため実際に破られることはなかったのですが、2015年からAI碁(AlphaGo)と同じGoogleクラウドのインフラを使って大規模演算処理を続け、ついに衝突攻撃に成功したのです。

現在は、SHA-1を使ったセキュリティからSHA-2やSHA-3に切り替わっています。SHA-1は160ビットでしたが、SHA-2のビット数は224、256、384、512の4つのバリエーションがあります。最も普及しているのがSHA-256で、ビットコインもこれを採用しています。Webサイトのhttpsで使われているSSL/TLSサーバー証明書のデジタル署名にもハッシュ関数が使われていますが、認証局もSHA-1からSHA-2に切り替えが終わっています。

なお、SHA-2はまだ衝突は発生していませんが、方式はSHA-1と同じです。そのため代替え候補探しのコンペが行われ、2012年にSHA-3が標準化されています。これは、コンペに勝ち抜いたKeccakという別のハッシュ関数にSHA-3という名前を付けたもので、内部構造は全く異なっています。現在はSHA-2が主流ですが、今後、量子コンピュータなどのスケールアップなどにより、SHA-2の絶対安全性が脅かされるようであれば切り替わるかも知れません。

まとめ

第1回の今回は、以下の内容について学習しました。

  • Web1.0はHP、Web2.0はSNS、Web3はP2Pである
  • Web3の要素は「分散型ネットワーク」と「セマンティックWeb」と「仮想空間」がある
  • ブロックチェーンは暗号通貨の取引情報をブロックに蓄積している分散構造のデータベース
  • ビットコインのブロックは2009年から1本のチェーンでつなげられ、今も伸び続けている
  • 各ノードで全ブロックの情報を保持している(共有できる仕組みがある)
  • 公開鍵暗号方式には、公開鍵で暗号化したものを秘密鍵で復号化するケース(送信の暗号化)と秘密鍵で暗号化したものを公開鍵で復号化するケース(デジタル署名)がある
  • ハッシュとは情報を固定長に変換する技術で、現在主流のハッシュ関数はSHA-2である
  • ハッシュ関数のアウトプットは予想がつかない(意図的にハッシュ値を作れない)
  • ハッシュそのものは暗号化ではない(ハッシュは復号化できないため)

今回は、ブロックチェーンの基礎とハッシュを使ったデジタル署名について理解しました。次回からはより詳しい内容として「マイニング」や「コンセンサスアルゴリズム」「コインの取引とデジタル署名」「UTXO」などを説明していきます。お楽しみに!

著者
梅田 弘之(うめだ ひろゆき)
株式会社システムインテグレータ

東芝、SCSKを経て1995年に株式会社システムインテグレータを設立し、現在、代表取締役会長。2006年東証マザーズ、2014年東証第一部、2019年東証スタンダード上場。

前職で日本最初のERP「ProActive」を作った後に独立し、日本初のECパッケージ「SI Web Shopping」や開発支援ツール「SI Object Browser」を開発。日本初のWebベースのERP「GRANDIT」をコンソーシアム方式で開発し、統合型プロジェクト管理システム「SI Object Browser PM」など、独創的なアイデアの製品を次々とリリース。

主な著書に「Oracle8入門」シリーズや「SQL Server7.0徹底入門」、「実践SQL」などのRDBMS系、「グラス片手にデータベース設計入門」シリーズや「パッケージから学ぶ4大分野の業務知識」などの業務知識系、「実践!プロジェクト管理入門」シリーズ、「統合型プロジェクト管理のススメ」などのプロジェクト管理系、最近ではThink ITの連載をまとめた「これからのSIerの話をしよう」「エンジニアなら知っておきたいAIのキホン」「エンジニアなら知っておきたい システム設計とドキュメント」「徹底攻略 JSTQB」を刊行。

「日本のITの近代化」と「日本のITを世界に」の2つのテーマをライフワークに掲げている。

連載バックナンバー

ITインフラ技術解説
第10回

世界を1つのグラフデータベースとするトポロジー

2023/11/29
第10回の今回は、セマンティックWebの壮大なロマンと、それを実現するための技術について解説します。
ITインフラ技術解説
第9回

Layer Cakesで見る「セマンティックWeb」の技術要素

2023/11/9
第9回の今回は、Web3のテーマの1つであるセマンティックWebについて、「Layer cake」の第1層と第2層に示された技術要素について解説します。
ITインフラ技術解説
第8回

「DeFi」と「ハイプ・サイクル2023」

2023/9/28
第8回の今回は、ブロックチェーンを基盤とした分散型金融の「DeFi」と、毎年ガートナー社が公開する「ハイプ・サイクル2023」で注目されるテクノロジーについて解説します。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています