![見出し画像](https://assets.st-note.com/production/uploads/images/92465910/rectangle_large_type_2_97b4f5df79f85086d1915885fb9ce9c9.png?width=1200)
ブロックチェーンを学びはじめてからの振り返り
こんにちは。Gaudiyでエンジニアをしている土居(@taro_enginner)です。「Gaudiy Advent Calendar 2022」の3日目を担当します。
今回は会社の事業ではなく、フォーカスを自分に当てて、自分がブロックチェーンを学び始めてからの振り返りをしてみようかなと思います。
エンジニアとしては、スマートコントラクト・NFT に関連したプロジェクトを扱っていたりするので、後述する Web3.0 としては上記の領域だと認識していただければと思います。
興味はあるけれど、まだブロックチェーンの領域を勉強したことがない Web 系エンジニアを対象とした内容で書いていこうかなと思っていますので、よろしくおねがいします。
苦労したポイント
まず一番難しいなと感じたところは、「どんなことができるのか想像できない」点かなと感じました。2021年1月にGaudiy に入社しましたが、当時はまだ世界的にみても、ブロックチェーンがマスに届いているという状態ではなく、ユースケースがまったく想像ができないなぁと思っていました。
また、Web2.0 と何が違うのか?もよくわからない、という感覚も率直にありました。
あと、「聞き慣れない単語・概念が出てくる」こともかなり多く、何がわからないのかもわからないという状態になるのが多かったなと感じます。
今では基本的なことは調べれば日本語でもそれなりに情報が出てくるので、第一歩を踏み出すハードルはかなり低くなったと思いますが、リサーチしようにもどこから調査しようと悩んだ記憶があります。
![](https://assets.st-note.com/img/1669907816257-WvLH7U1DPC.png?width=1200)
とりあえず、私自身なにか新しいものをやったりするときは、形から入るタイプなので、「なにか作ってみるか」と第一歩を踏み出しました(エンジニアとしては普通ですよね)
どう学んでいったのか?
まずは社内でも扱っているスマートコントラクトって何?という疑問があったので、スマートコントラクトの開発から入りました。
当時は日本語で出版されてまもない「Solidity と Ethereum によるスマートコントラクト開発」を参考に、DAppsの開発からはじめました。初心者にもわかりやすくて、「なにか作れている」感覚をもつことができたので、すごく個人的にはよかったです。
ただ、情報はすでに古いので、今からこの本で勉強するのはおすすめしません。
![](https://assets.st-note.com/img/1669907920324-1i7608Qaxd.png?width=1200)
暗号通貨を取引できるアプリを作れたとき、安易な自分は「完全に理解した()」となって、意気揚々としていた思い出があります。
もし今から学びはじめるなら、たくさんの方法があると思うのですが、本当に基本的なブロックチェーンの理念から入るのもいいかなと思います。
本で言えば「マスタリング・イーサリアム」が無難におすすめです。
また、弊社エンジニアの記事はとても参考になるもので(ちょっと宣伝です)、普遍的な情報にリーチすることで、流れの早いブロックチェーンの技術トレンドもあとからキャッチアップできる下地ができるような "学び方" を紹介されています。個人的にも参考にしているし、世の中の「Web3.0 詳しいよ」という人も近いことを紹介している感覚があるので、今から学び始める人は第一歩としていいのではないでしょうか?
![](https://assets.st-note.com/img/1669908052603-xOInFyOEMe.png?width=1200)
さて。スマートコントラクトをちょっと触って、基本的な概念もわかってきたら、なんとなくリサーチの仕方もわかってきました。
現状でもリサーチしていく上で、日本語でまず目を通すのは HashHub Research です。サブスクリプションの料金としては決して安いとは言えないと思うのですが、かなり最新トレンドに近い情報をリサーチャーの方の所感も交えた上で拝読することができるので、気軽に情報を調べる上ではかなり重宝できるなと感じています。
あと Web3.0 でも Twitter は情報を得るのには結構いいなと感じています。有象無象の意見がありながら、リアルな開発の苦しみやトレンドを追うことができるかなと思うので、結構定常的にみていたりします。
なんとなくザッピングできるようになってきたら、次は "深ぼっていく" ことがステップアップになりますよね?
振り返ってみて、私の場合は OpenSea など DApps のコードを読む・動かしてみることをまずやっていたかなと思います。Web2.0でもそうですが、OSS が一番勉強になるし、最先端なところもあったりします。それが DApps なので、よりオープンになっていて(語彙力)、すごく勉強しやすいです。
あと、OpenZepplein のドキュメント、コードをちゃんと読むのが、スマートコントラクトの開発においては一番タメになりやすいかなと感じます。
実際のスマートコントラクト開発に置いても、「監査されているコード」というのが大切で、世に出ているコードで信頼できるコードを使用することが実は大切だったりします。
スマートコントラクト開発の "基本のキ" は、OpenZepplein から学べると思うので、学び始めなら深ぼっていきたいポイントです。
ここまで来たら EIP を読んでいくのも楽しくなってくると思います。EIP の議論を追っていくのはキャッチアップとしても大事で、Ethereum 系での開発においては、これも ”基本のキ” になってくるかなと思います。
ここまで Solidity でスマートコントラクト開発してみると「特段ややこしいことをしている訳ではない、むしろすごくシンプル」なことを体感できます。
Web2.0 と何が違うの?
ここまでお付き合いいただいた方は、「コイツめちゃくちゃ当たり前のことしか書いてないやん…」と感じられているかもしれません。
いや、本当にそのとおりなのです。申し訳ありません。
勉強の仕方も、苦労するポイントも、今までの Web 技術を深めていく方法となんら変わりません。まったく Web に対しての知識がなくて、「まじサーバーって何者?」「ターミナルめっちゃ怖い…」って思ってた時期のほうが、当たり前ですが大変でした。
こんな感じで Web3.0 に足を踏み入れた私ですが、最初に感じた「Web2.0 と何が違うのか?」に対する所感もでてきました。
前提として、Web2.0 でも実現できるよね?ってことは多かったりします。例えば、「クリエイターに二次流通の手数料を入るようにしよう!」や「特定のゲームアイテムを持っている人だけが買える商品を販売しよう!」って今までの技術を使って実現はできそうですよね?
その上でなぜ Web3.0 が必要なのか?という問いに答えるとしたら、デジタルなものにすべての人がパーミッションレスに "価値" をつけることができる、というのが私の1つの回答になるかなと思います。
![](https://assets.st-note.com/img/1669909821033-eG5q71NJNs.png?width=1200)
例えば、ゲームアイテムを持っている人だけが買える商品を販売しよう、で考えてみます。
従来の技術で考えると、ゲームアイテムを持ってるかを確認するために、ゲームを提供している企業に API を提供してもらい、そのデータを使わせてもらうなど、技術的には問題なくできそうです。ただ、このゲームアイテムは企業が所有・証明しているもので、極端な話その企業が潰れたり、ゲームがサ終を迎えると、価値が失われてしまう可能性があるデータです。
あくまでサービスを提供している企業がパーミッションを持っていて、価値を操作できる状態という構造だと言えます。API 連携している企業間だけの閉じられた世界と捉えることもできます。
ここに Web3.0 の概念を加えたとして、ゲームアイテムを NFT にしたとしましょう。NFT は世界中のどの人でも「その人が所有しているか?」を検証することができます。検証ができるので誰でも "価値" をつけることができます。また、サ終を迎えたとしても、アイテムを "自身が所有していることを証明する" ことが NFT だとできます。
つまり、API 連携をするために企業と話し合う必要もありません。パーミッションレスに NFT を中心としたエコシステムをつくることができます。
エコシステムができると、もしこのゲームアイテムがとても熱狂的なファンがたくさんいるようなコンテンツならば、そのコンテンツを中心に勝手に新しい経済圏が生まれそうです。
まさに人種も生まれも関係なく、ファンが自身のデジタルアイデンティティを "証明できる" ことで、"国家" も作れそうではないでしょうか?
NFT というのを題材にしてみましたが、Web3.0 に実際に触れてみることで「人類がまだ体験したことない時代にまさに今一歩進もうとしている」という感覚が、私の中で体験として芽生えてきました。
今後 Web3.0 にどう向き合っていくか?
とはいえまだ想像しにくい世界観だし、大衆に届くほど「おもしろい・便利だと感じる体験」を届けられていないところが課題なのかなと感じています。
どんな価値があるのか?何が楽しいのか?を、Web3.0 をめちゃくちゃ知らなくても感じていただけるプロダクトづくりが必須になると感じています。
そのためにエンジニアとしてできるのは、Web2.0 の技術も含めた "UX の高い体験" を届けることかなと考えています。Web3.0 を最大限に活かしていくために、引き続き Web2.0 の技術も深めていかなければいけないなと考えています。
こんな感じで、Web3.0 プロダクトをつくるには Web2.0 の技術も必要だし、Webエンジニアとしてやってきたことは Web3.0 でも必ず活きます。
ブロックチェーン技術に少しでも興味が湧いた人がいれば、ぜひ本を読んだり、何かをつくってみたり、自分に連絡したりしてください。
(採用ページも置いておきます)
以上で、3日目の記事を終わります。明日は、登内さん(@Kryptostudent)がアドベントカレンダーを担当してくれます。
この記事が気に入ったらサポートをしてみませんか?