この内容は Web3 Dev Advent Calendar 2022の6日目の記事です。自分はプログラマで技術、特に新しい技術が好きです。またモノ作りも好きなので、Web3を技術的に勉強して何を作ると面白そうかを考えています。ただ今年の9月にWeb3に興味を持って勉強を始めた所なので、基本的な知識を学んでそれを考えるだけでこの3カ月は使ってしまいました。自分の振り返りを兼ねてここまで学んだことをアウトプットしてみます。
Web3は技術ではなく概念
Web3を技術的にみた時に何を作ると面白そうか?と書きましたが、実はWeb3は具体的な技術を指している用語ではなく、もう少し抽象度が高く、こうあって欲しいという目標に近い概念だと思っています。実際に何がどうなっていればWeb3なのか、具体的なモノでいうと定義すら曖昧だと思います。なので、Web3で何か作ろうとするならWeb3を構成する要素についての理解が必須です。というわけでまずは構成要素の説明です。
ブロックチェーン
Web3でググってみると「Web3を支えるブロックチェーン」という単語が比較的よく出てきます。Web3イコールブロックチェーンではないですが、Web3の根底の考え方である分散化というアイデアを実現する技術としてブロックチェーンは切り離せないものです。
ビットコイン
ブロックチェーンの技術を具体的なアプリケーションとして実装している代表例がビットコインだと思います。ビットコイン以外の仮想通貨は知らないという人も沢山いると思います。僕もそうでした。ではビットコインはWeb3を実現するための技術でしょうか?現状Web3を実現するための仮想通貨で最初に名前があがるものはビットコインではありません。
イーサリアム
Web3を実現する技術としてブロックチェーンの具体的なアプリとして最初に名前が上がるのはイーサリアムです。イーサリアムは、ビットコインにはない特徴があります。イーサリアムの特徴とはスマートコントラクトです。現状Web3の世界ではイーサリアムでしかできないことが沢山あります。
スマートコントラクト
スマートコントラクトとは、契約の自動化です。契約とは例えば「お金を払ったら代わりに商品がもらえる」ことを指します。つまりお金に関わるプログラムが組めて自動化が可能になります。例えば自分が居なくても特定の条件をクリアすれば報酬を払ったり、ある期間が過ぎれば品物が送られてくるようにしたりする仕組みも作れます。この話で、僕は俄然Web3に興味を持ちました。
NFT
そしてWeb3の中で現状一番ホットな要素がNFTだと思います。NFTはバブル的な意味で有名になったので、知っているけれど胡散臭いと思っている人も多いと思います。しかしNFTは技術的にはブロックチェーン上にデジタルデータのIDを記載することで、そのデジタルデータが世界にただ一つであることを証明できるだけのものです。唯一性を担保することで金銭的な価値を見出す方法が騒がれていますが、本来はそれこそ今までなかった表現が出来そうなところがポイントだと思います。
DAO
一方でWeb3の文脈でピンとこなかった要素もあり、自分的な代表格がDAOです。DAOは分散型自律組織です。組織を統率する代表者が存在せず、参加者同士で意思決定がされます。正直これを聞いてうまくいくとは思えませんでした。自分の中で一番学習が足りていないのがこのDAOなので、DAOの技術に対する具体的な事は殆ど分かりません。しかしDAOにブロックチェーンの透明性、スマートコントラクトの自動化、イーサリアムの通貨概念を絡めることで面白い発展を遂げそうな予感は少し持ちました。
メタバース
メタバースはWeb3の文脈でも割と中心的な要素で取り上げられます。Web3に興味がなくてもゲームなどで既に触れている人もいると思います。ただ個人的に今現在あるメタバースの殆どはWeb2のメタバースでWeb3の定義するメタバースではないと感じています。Web3のメタバースは非中央集権で、特定のプラットフォームには依存せず、どのメタバースアプリであってもデータやアバターの行き来が可能になるはずですが、現在は特定のアプリに閉じられた世界の方が多いと思います。ただWeb2のメタバースの延長線上にその世界があるのは間違いないので、そういう意味では今後が楽しみな技術です。
Web3のどの技術で何を作るのが面白そうか?
さて、色々Web3の構成要素を説明しました。ブロックチェーン、ビットコイン、イーサリアム、スマートコントラクト、NFT、DAO、メタバース。すべてWeb3の文脈でよく語られるキーワードです。ではWeb3で何か作るとしたら何が良いでしょうか?例えば、ブロックチェーンに興味を持てば論文を読んで仮想通貨を作るのが一番だと思います。通貨を作った個人など過去を振り返っても一部の王様などを除きほぼ居ないと思うので、これ以上ないぐらい熱いテーマだと思います。が、自分はそこには興味が持てませんでした。またメタバースやDAOに対しては、それを作ってみたいと思えるほどの知識レベルに達していないと思いました。自分はWeb3の中ではスマートコントラクトに引かれました。イーサリアムは既にスマートコントラクトが実装されています。で、あれば自分で作る必要はなく覚えれば作れることになります。そうなるとまたこれで何が作るかという話になり、結果自分としてはNFTで何か作ってみるのが一番面白そうかなと思いました。
NFTで何を作るのが面白そうか?
ではNFTで何が作れるか。NFTを作るのであれば最低限具体的なデジタルデータが必要です。現状はアート作品が多く、そのデータ自体に価値があります。しかし、それはNFTの一側面でしかなく、NFTはまだ世の中にない表現が出来る可能性すらあるものだと思っています。自分としては例えば推しや萌えをといった目に見えない価値に対してIDを振るのが面白そうと思っています。さらにプログラマの自分がNFTを作るために最も貢献できるのは、スマートコントラクトのプログラムを書くことで出来る「動的な表現」だと思っています。少なくとも今日現在ではこの部分はプログラム以外での実現は厳しいと思っています。
結局思いついていないので、続きはイーサリアムについてまとめてみる
というわけでWeb3を技術的に勉強する場合何を作ると面白そうかを考えた結果として、スマートコントラクトのプログラムを書きたいと思っていますが、3カ月で2冊の本を読んだだけではまだそれで何を作るかすら思いついていない状態です。Web3で覚えることは一杯あって、毎日新しい単語が出てきて溺れそうになります。でも、それが凄く楽しいし、何を作るかを考えることは本当に刺激的です。現状ではスマートコントラクトを書くためにはイーサリアムの理解をさらに深めることが重要だと思っています。そこで、次はイーサリアムのアドベントカレンダーを書く予定です。