【2023/9/10】超初心者がWeb3勉強会に参加してみた
一年以上ぶりのnoteへの投稿でいろいろUI変わってたり、
できること増えてたりしてすごいなと思いながら、
先週の日曜日に参加してきた勉強会について書いていきたいと思います。
(全く知識ないけど大丈夫かなと思いつつ参加したけど大丈夫でしたw)
1.勉強会の内容
①ブロックチェーンの技術を理解する
⇨実際に体験しながら、改ざんの難しさを体感
②NFTとは
⇨NFTについて、技術的に理解する
③ERC20の作成
⇨thirdweb でトークンを作成する
④ERC721の作成
⇨thirdwebでNFTを作成する
⑤Solidityでの簡易コントラクトの作成
⇨簡単なコントラクトを作る
⑥SolidityでのERC20コントラクトの作成
⇨ERC20コントラクトを作る
ほとんど主催の方のX(Twitter)の投稿からの引用ですが、
上記のようなことをやりながら、ブロックチェーンについて学び、
実際にトークン発行してみたり、NFT作成してみたりしてみました。
私自身初心者ですが、参加者にはおばあちゃんぽい方もいたり、
けっこういろんな方がいました。(ただ、いつもの如く女性少ない!)
2.まずは知ろうの前半戦
①ブロックチェーンの技術を理解する
主に主催のユウキさんが書いた上記の記事を参考にしながら
説明を聞きつつ、実際にデモ環境で触ったりして学習しました。
ブロックチェーンって何となくブロックが繋がってるみたいなイメージだけ持ってたのですが、そもそもブロックがどのようなものなのか、なんで繋げていくのかみたいなことを知ることができました。
いくつか使った言葉を・・・
ハッシュ
今回のハッシュはビットコインでも使われている「SHA256」を扱ってご説明いただきました。ハッシュとは、何かしらの分かりやすい文字列をごちゃごちゃした文字列に変えるようなイメージです。
(私的には、パスワードとかセキュリティ的なものとして、ハッシュ化するみたいな感じで聞いたことがある言葉でした)
ブロックとノンス
上のハッシュでは、データだけを入れた状態でハッシュにしたけど、実際には「ブロック」と「ノンス」と「データ」を繋げたものをハッシュ化するみたいです。(デモでやってみるとこんな感じ↓)
Difficulty(ディフィカルティ)
上の「ブロックとノンス」のところのハッシュは最初の4文字が「0000」で始まるようになっています。
これは、ビットコインが採用している仕組みで、最初の何桁かが「0」になるような「ノンス」を一番早く見つけられた人がブロックを追加できるようになっているそうです。
先頭の「0」が増えるほど何度も高くなるので、その難易度の指標を「ディフィカルティ」と言うそうです。
(実際にブロックの追加の競争をする場合には、一度にものすごい計算をする必要があるので、めちゃくちゃ電気代が必要になるそうです。)
ブロックチェーン
上で出てきた、「ハッシュ」が「ブロック」ごとに繋がっている状況をブロックチェーンというような感じです。
1つのブロックのデータを改ざんすると、「ハッシュ」が変わってしまうので、そのブロックの前後の「ノンス」も計算し直して、そこからまた前後にブロックがある場合はさらに計算して・・・となるので、ブロックが繋がっていることで改ざんを防ぎやすいです。
本来はデータの部分に金額っぽい数値や、誰にいくら分配分されているかなどの情報が入った状態で、ブロックが繋がっているイメージになります。
が、説明が難し目なのと長くなるので、まだまだ知りたいよという方は先生(ユウキさん)のnoteへ!mm(すみません)
②NFTとは
「NFT」は、「Non Fungible Token」の頭文字をとったもので、「Fungible」が「代替可能」という意味なので、直訳すると「代替不可能なトークン」という意味になります。
世の中のNFTは、イラストとかが多いイメージですが(私的には)、もし全く同じものがあったとしても、登録的なことをする時にそれぞれにトークンIDがつくので、他には無い、唯一無二のイラストということになります(私的イメージ)。
ちなみに、私の↑に書いている内容はわかってるようなわかってないような感じになっているので、詳しく知りたい方はぜひ下のURLのnoteをどうぞですmm
https://note.com/standenglish/n/nb3436b7ac565
3.いろいろやってみようの中盤戦
③ERC20の作成(トークン作成)
事前にメタマスクに登録しておいてくださいね〜というアナウンスがあったのですが、初めてでよく分からない部分もあったので、勉強会前にみんなでやってみような時間から参加して、登録しました。
ちなみに、そのやり方もめっちゃ分かりやすくまとめていただいてたので、すんなり登録できました↓
https://note.com/standenglish/n/n2e4bf3eb848f
ちなみに、今回は勉強会のために、Asterを配布してもらって進めました。
という状況から、まずはサードウェブにアクセスして、「Get Started」から、次へ次へと進んでいくと、どのwalletと繋ぐかを選択する画面になるので、ここで今回はMetaMaskを選びました。(別のWalletと繋ぐときはつなぎたいものを選ぶ感じになると思います。)
事前に、Chromeの拡張機能でMetaMaskのを入れておいたら、拡張機能が動いてくれて、ポップアップ見たいのが出てきて繋げた気がします。
(繋げられるまでにいろいろボタンクリックしたりすることはあった気がするけど、そんなにややこしくはなかったような気がします)
「Contracts」をクリックして、まずはトークンを作っていきました(確か・・・)。
「Deploy contract」をクリックして、「Explore」の画面に遷移して、「Token」をクリックして、「Deploy now」すると、トークンを作成する画面が出てきます。
Name・・・トークンの名前
Symbol・・・トークンの単位
左下のプルダウンは、どのwalletを使うかみたいなところで選んで、「Deploy Now」をクリックすると、MetaMaskのポップアップで出てきて、これくらいガス代かかるよ、みたいな内容を確認してボタンを押すと、しばらく処理が走って、Successって出てきたらOK。
遷移した画面で、「Tokens」を押すと、「+Mint」というボタンがある画面に遷移します。
「+Mint」を押すと、「Additional Supply」を入力する欄が出てくるので、Mintする数を入れて、「Mint Tokens」をクリッククリックすると、またMetaMaskの確認用ポップアップが出てくるので確認ボタンを押すと、Successと出てきたらOK。
「Transfer」でいろんな人に送ったり、「Burn」でMintした分を減らしたりとかできたりするので、いろいろいじってみて、なるほど、こうやって価値を変えたりとか配分したりとかできるんだな、と思いました。
④ERC721の作成(NFT作成)
トークンを作った時と同じような流れで、
「Contracts」>「Deploy contract」>「Explore」の画面に遷移>「NFT Drop」をクリック>「Deploy now」をクリック
で、トークンを作成した時と同じような、NFTを作成する画面が出てきます。ガス代とかを確認して、NFTを登録する画面に遷移します。
トークンのときは、「Tokens」でしたが、「NFTs」をクリックします。
「+Single Upload」では1つずつ画像データを登録できて、「+Batch Upload」では一気にデータ登録できるそうです。
これで、「Token ID」も発行されて、唯一無二のNFTが発行された感じになります。
NFTも「Transfer」で人に配ったりとかもできるみたいです。
ちなみに、「Embed」では、埋め込み用のコードを確認できたりするので、埋め込みコードを取得して埋め込んだりすることもできるみたいです。
埋め込みコードはこんな感じ↓
<iframe
src="https://embed.ipfscdn.io/ipfs/bafybeihazpt6pkm4azgtupdz7hc2j3o4zpjsvtcgfq4t2keozxkss3ud6q/?contract=0xEB85B3c4255FD0a370387C82E035C6A06F2ED84A&chain=%7B%22name%22%3A%22Astar%22%2C%22chain%22%3A%22ASTR%22%2C%22rpc%22%3A%5B%22https%3A%2F%2Fastar.rpc.thirdweb.com%2F%24%7BTHIRDWEB_API_KEY%7D%22%5D%2C%22nativeCurrency%22%3A%7B%22name%22%3A%22Astar%22%2C%22symbol%22%3A%22ASTR%22%2C%22decimals%22%3A18%7D%2C%22shortName%22%3A%22astr%22%2C%22chainId%22%3A592%2C%22testnet%22%3Afalse%2C%22slug%22%3A%22astar%22%2C%22icon%22%3A%7B%22url%22%3A%22ipfs%3A%2F%2FQmdvmx3p6gXBCLUMU1qivscaTNkT6h3URdhUTZCHLwKudg%22%2C%22width%22%3A1000%2C%22height%22%3A1000%2C%22format%22%3A%22png%22%7D%7D&clientId=9529c8bdbe82720a70d67ef4ca601cbe&theme=light&primaryColor=purple"
width="600px"
height="600px"
style="max-width:100%;"
frameborder="0"
></iframe>
4.プログラミングとしてやってみような後半戦
⑤Solidityでの簡易コントラクトの作成
⑥SolidityでのERC20コントラクトの作成
実際にRemixを使ってSolldityでcontractを作ったりとかもしてみたのですが、私が改めて書くよりも、先生(Yukiさん)のnoteを見た方が絶対に分かりやすいので、またURLを貼らせていただきますmm
https://note.com/standenglish/n/nb42a24fc989b
5.感想とかまとめ
全く知らない分野だったし、特にブロックチェーンについて、セキュリティ的な面などについて知ることができて良かったです。
詳細なところなど理解しきれていないところもあるかもしれないですが、今後何かしら関わることがあったら全く知らないところからよりは良いかな、と思えるレベルにはなれた気がします٩( 'ω' )و
あと、「thirdweb」使った時に、英語苦手な私は、ちょっとだけ、
うへぇ_:(´ཀ`」 ∠): って感じになってたので、英語も少ずつ勉強していかないとなぁ、、、と改めて思いました。
(もちろん、詳しい説明とかフォローとかしていただいたので、ある程度作業自体はついていけてました)
次のWebナイトも次世代技術についてなので楽しみ・:*+.\(( °ω° ))/.:+