🎉

まだWeb2で生きてるの?時代はWeb3だよ?

2023/01/03に公開

煽ってしまいごめんなさい・・・

初めに

本記事はすべてフィクションですので、正確性については期待しないでください。何か間違っていたらこっそり教えてください 🥺

2022年年末くらいに、筆者が友人に「Web3は概念が新しいからなー。Web2エンジニアにはわからないかw」と言われて💢っと来てしまい、年末年始使ってWeb3について少し勉強した時の乱雑なメモ帳です。いわゆる全体の概要記事とかではなく、私が気になったポイントのみをメモ程度にまとめたものですので、Web3の概要から知りたいという方はReferenceに書いたような他記事をお勧めします。

NFTとかWeb3について勉強していると、二言目には

  • 「NFTは投資的価値があるので今がチャンス!」
  • 「今ならここで無料でNFTを配ってます!URLをクリックして登録してね!」

みたいなことを宣う詐欺まがいのサイトばっかりで嫌になるのですが、これだけ話題になるからには革新的な部分があるのだろうし、食わず嫌いはよくなかろうということです。
ちなみに、本記事では、特に断りがない限りブロックチェーンとしてイーサリアムを想定します。

本記事はいわゆる仮想通貨やNFTに対する投資行動を勧めるものではありません。

結局Web3って誰がどう幸せになるの?

結論、筆者にはよくわからなかったです。。というだけでは話が終わってしまうので、無理やりにでも価値を見出すとすれば、以下くらいでしょうか。

  • 画像や音楽といったデジタルなデータを、一部のプラットフォーマーでなく皆が分散してデータを保持・保管することができる
    • 一部のプラットフォーマーがつぶれても、そのデータが消えることはない
    • 明示的な管理者が不要で、自律分散で成り立つ。DAOともいうらしい
  • 誰がどのデータをどう保有しているか、その流通経路も含めて皆が参照可能なので、非常に透明性が高い
    • 改ざんも事実上困難
    • そのデータを保有していることを "証明" できるので、所有欲が満たされる。

組織に貢献したものにはご褒美(Ethereumでいうgas)が与えられることにより、自律的な組織を運営可能にした、というところがポイントなのかなと思っています。そのご褒美がモチベーションになるうちは、勝手に貢献する人間が現れるので、健全な運営が可能になっている。こうして聞くと結構興味深い感じではあります。
所有欲というところを結び付けるなら、ゲームとは相性良さそうなのかなと思っています。例えば、「このアイテムは全世界で私しか持ってない!」ということを保証できるといった感じ。

ただし、以下の疑問がやはり解消されず。

  • ブロックチェーン上には、画像や音楽などのデジタルデータそのものは(多くの場合)保存されない
    • メモリ上のポインタのみがブロックチェーン上に載っていて、ポインタの先は別の場所にあると考えるとわかりやすかった
    • 結局 OpenSea などといったマーケットプレイスやプラットフォーマーに依存してないか??
  • ブロックチェーン上に乗ったデータは半永久的に残ってしまう
    • オンラインにしちゃまずいデータをうっかりブロックチェーンに乗せてしまうと、デジタルタトゥーどころの騒ぎではない
  • 皆がそのチェーンに興味をなくしたときにはどうなる?
    • まあこれ言い出すと、いわゆるFIAT通貨も同じですけどね

ゲームにしても、結局そのデータを保持するのはプラットフォーマーなのでは・・・というのがもやもや感すごい。そして、Web3に投資していくぞ!ということを大企業が率先して言い出していたりしますが、Web3の概念からしてそれはおかしくないか?というのがどうにものどに刺さった小骨のような感じになってます。

技術的な内容に関するまとめ

あとから追記するかもしれません。

NFTって結局何なの?

デジタル資産に対して、所有欲を満たすためのもの、という理解です。「実際に所有できているの?」というところはあえて何も言いません。

このサイト に素晴らしいまとめがありました。

ブロックチェーン上に記録された一意なトークン識別子をその保有者のアドレスと紐付ける情報、およびそれを状態変数として保持するスマートコントラクトのこと。

結構いろんなサイトを見ましたが、これに尽きると思います。デジタルアセット(デジタル資産)に唯一無二性を付与するとかよく言いますが、ブロックチェーンにはデカいデータは基本乗りません。(ブロックチェーンは世界に散らばったコンピュータが全部コピーして持っていることを考えると当然ではある)
じゃあブロックチェーンには何が乗っているかというと、デジタルデータへのポインタです。例えば画像データがあるURLなどといったメタデータが乗ります。方法にもよりますが、そのURLをホストしているプラットフォーマーはデータ自体を改ざんできてしまいますよね。また、データ自体はいくらでもコピー可能です。 Ethereum の FAQ では以下のような回答がされていました。

Well, yes. But does googling an image of Picasso's Guernica make you the proud new owner of a multi-million dollar piece of art history?

所有欲とは難しいですね。価値観の問題なので。

さらに、NFTはいくらでも発行しようと思えば発行可能です。ある特定のデジタル資産に対して、何個でもNFTを発行できてしまいます。唯一無二性とはいったい。NFTの希少性は、それが指すデジタル資産そのものというよりは、NFTを発行する人が勝手に決めたトークン数に大きく依存するという感じです。勝手にNFTを発行できるということは、他人が作成したデジタルデータに対して、勝手にNFTを発行するということも可能であるということ。これって問題にならんのか・・・という気もしますが、誰か教えてください。

スマートコントラクトって何なの?

「合意」を機械的に、自律分散的に結べるものという理解です。

ビットコインのチェーンでは、「AさんからBさんに1 bitcoinを渡す」みたいなことしか表現できませんでした、これをさらに抽象化して、「AさんからBさんに何かを渡すことを合意する」ことを誰でも実装可能にしたのがイーサリアムということだと思います。

イーサリアムのサイトを以下に引用します。

コントラクトとは、単なる合意です。 つまり、あらゆる形式の合意は、契約条件内に包含することができます。 多くの場合、口頭での合意や書面によるコントラクトは受け入れられますが、欠陥が含まれることがあります。

スマートコントラクトを実装するにあたっては、EVM (Ethereum Virtual Machine)上で動作するアプリケーションを書かないといけないです。その実装言語で有名なものに Solidity があります。ちょうど、JVM (Java Virtual Machine) 上で動作するアプリケーションを実装するためにJavaがあるようなものですね。

EVM (Ethereum Virtual Machine) って何なの?

ブロックチェーン上の仮想的な計算基盤、という理解です。ブロックチェーン上で state を表現することにより、turing complete な基盤としてイーサリアムのブロックチェーンは使えるようです。

ブロックには特定の状態(例えば、ある変数 A には 1 が代入されている) が記録されており、あるスマートコントラクトを使うことによって、その変数に 1 を加算することができる。その結果を別のブロックに書くことにより、状態の保存・共有が可能になるというもの。なんとなく、データベース界隈でよく使うRedo logみたいなものを想像しました。

ここが詳しいです

トランザクションの確定ってどうなっているの?

長いもの勝ち。ビットコインでもそうだったが、Ethereumでもその辺は変わっていないらしい?というか交換所が勝手に決めてる感あるけどそれでいいのだろうか

ブロックチェーンについて少し勉強し始めた人が疑問に思うこととして、「いつブロックチェーンでのトランザクションって確定するの?」というのがあります。独立した複数のマイナーがほぼ同時に計算が終わった際に、どちらのブロックチェーンを信用するか、という問題で、調べた限りまだその辺は確定するまでに一定の長さの後続チェーンができるまで待つ(定期的にポーリングする的な)、みたいなのが一般的な様子。
この仕組みのおかげで並行性とかの難しい問題を気にせず直列なトランザクションが行えているとはいえ、何らかの数学的な保証が欲しいところ。

Reference

勉強するにあたって、以下のサイトを活用・参照させていただきました。

Discussion