はじめに
10月22日から11月6日に開催されていた東京Web3ハッカソンに参加してきました。
場を提供していただいたハッカソン運営の皆さんには、この場をかりてお礼申し上げます。
今年(2022年)の一人アドベントカレンダーは、このハッカソンでの開発を通して学んだことなどを中心に書いていきたいと思います。
なぜWeb3に興味を持ったのか
まず、なぜWeb3に興味を持ったのかということを書きたいと思います。
ブロックチェーン、暗号通貨などをベースとしたWeb3の流れは、賛否両論ありつつも確かな潮流となって拡大しているように見えます。
個人的なスタンスとしては、バブル気味だった投機的な暗号通貨市場やスタートアップ市場、バブリーなNFTなどにはしっかりと距離を置きつつ、様々な技術側面には非常に興味を持っています。
まぁなんというか、Web3界隈はほんとに胡散臭いのもあるし、メタバース=Web3だというのをことさらに騒ぎ立てている人たちも、正直なところどうかと思いますが、一方で詳しく技術やコンテキストを知らずに批判するのも違うのだろうなと思う部分もあります。
また、技術的にも興味深いところは多く、特に個人的に興味がある部分が、Ethereumで使われているSolidityによるスマートコントラクトの仕組み、ZCashの匿名暗号通貨、IOTAのタングルなどです。要は、データ構造、分散システム、暗号、コンピューティングといった側面に非常に興味があるわけです。
そんな折に、以下のようなTweetをしたところ、
と「CryptoZombies」を教えていただきました。
これ以前にブロックチェーンの仕組みは概念的な理解はできていたと思うのですが、実際に手を動かしてSolidityを書いて動かしてというのを進めると、断然理解の解像度が上がっていきました。
だいぶ前になりますが、知人に教えてもらいOHOコインを作ったことがあり、多分その時初めてSolidityを書いたのですが、その時は穴埋めクイズ的な感じであまり理解できていなかったなと、今になって思います。
そんなこんなで、ITエンジニアとして学んだ技術を使って何か作りたいと思い始めたわけです。
締め切り駆動でハッカソン参加だ!
ということで、学んだ結果で何かスマートコントラクトを使って作ってみたいというところで、ハッカソンを知りました。
いつものようにハッカソンで締め切り駆動開発だと参加を決めました。
何を作る?
折角なのでずっと興味を持っているARクラウドに関係するものを作ります。
既存のARクラウドシステムで、コンテンツ管理は基本的にはプラットフォーム提供者が完全に管理します。
一方でこれまでQiitaでも書いてきたような僕の作りたいARクラウドでは、WWWのように、明確な管理者が存在しない分散システムを目指しています。
そこで、場所にARコンテンツを結び付ける仕組みをスマートコントラクト化したらどうなるかということを考え始め、
ハッカソンで作ってみることにしました。
これまで、DNSのような分散システムとして考察していた仕組みですが、考えてみるとスマートコントラクトも要件的には適合しそうです。
実際に、ENSというDNSのスマートコントラクト版のようなものもありますし、おそらく思考の方向性は間違っていないと思います。
そこで、少し色気をだして(ちょっとお金になりそうかもとか…)、CryptoZombiesで学んだNFTの仕組みをベースに作ってみることを考えました。
ハッカソン結果
実際に、独自NFTのスマートコントラクトを作って、それらを操作するWebシステムも作って、OpenSeaで売買できることも確認して、
クライアントのUnityアプリも作って、Unityアプリからスマートコントラクトにアクセスするようにしたりしてと、
かなり多岐にわたる技術を駆使した開発になりました。それだけで面白く、久しぶりにワクワクしながら開発しました。
入賞はかすりもしませんでしたが、一通り動くところまででき、締め切り駆動の目的は達成しました。
感想
完全にオンラインに引きこもってのぼっちハッカソン(オフラインイベントも任意であったが)だったので、これと言って何かというか、いつもの趣味開発の延長的になっていた感じでした。
ただ、最近思うのは、今回のハッカソンというわけでなく、様々なハッカソンで、ペインとか社会的意義・社会課題の解決とかUI/UXとか、なんかそういう高尚な言葉が多く、純粋に技術を用いて作りたいもの、面白いものを作るというスタンスは、少なくなっているのかなぁというところです。
個人的にはそういう技術・開発・動いた!みたいなテンションが好きなんですよね…