見出し画像

VerylongAnimals雀と学ぶweb3教室[第1話]

この記事は3~5分で読むことができます。

こんにちは。VerylongAnimalsでチュングララ役をやっております河野 太郎です。(チュン太郎と呼んでください)先日株式会社woorth CTO 大石先生にスペースでCosmosチェーンの仕組みなど非常に興味深いweb3講義をして頂きました。

そして、上記の講義の内容をnoteにまとめるためにググりまくっていたのですが、その中でチュン太郎自身もそもそもブロックチェーンの基礎的なことすら分かっていない。MetamaskやOpenseaは普通に使っていますがOpenseaで買ったNFTアートのデータがどのようにブロックチェーン上に保存されているかも分かっていない。ということに気がつきました。
そこで上記の大石先生の講義を、ついさっきVerylongAnimalsというものを知ってweb3に興味を持ったという方でも理解することができるようにブロックチェーンの基礎からチュン太郎と一緒に勉強して、最終的に大石先生の講義を理解できるレベルまで到達しよう!という企画にしてみようと思います。

前書き

企画の目的

  1. 難解なweb3の概念をできる限り簡単に、VerylongAnimalsたちを登場させながら漫画のように説明することで誰でも今すぐにVerylongAnimals、ひいてはお祭り騒ぎのweb3の世界を楽しめるようにする。

  2. チュン太郎が、本業が忙しいと言い訳をしてweb3の勉強をサボることを防ぐ。

  3. Creating a society where everyone can live a happy life.(みんなが楽しく幸せに生きれる社会を作る)

3つ目はチュン太郎の会社のミッションです。僕の行動は全てミッションの実現に繋がっています。この企画もそのうちの1つです。

チュン太郎のバックグラウンド

  1. 大学受験特化型のEdTech事業運営

  2. コーディングレベルは赤ちゃん(swift,rails,python,js。solidityはほんのちょっと)

教育事業者の名に恥じないように頑張ってわかりやすく書きます❤️‍🔥
また、「プログラミングすらしたことないよ?」という人でも分かるようにweb1,2の知識の復習も挟んでいきます!

VerylongAnimals(ベリロン)雀と学ぶweb3教室_構成

「ベリロン雀と学ぶ~web3教室~」は基本的に以下の3部構成になっています。
1.web3理解に必要なweb1,2の知識の復習
2.メイントピックの学習
3.web3キーワードを一言で説明してみた。

では一緒に頑張って、かつ楽しんで学んでいくチュン!

本編

1.web3理解に必要なweb1,2の知識の復習

テーマはCUI(Character-based User Interface),GUI(Graphical User Interface),VUI(Voice User Interface)だチュン!
パソコンやスマホ(計算機)を僕らが触るというのは、それらの計算機と僕らが会話をしているということなのだチュン!
そして僕らが計算機と会話(「Spotifyを開け!」とか命令ばっかりだけどね。。ごめんね。。)するには以下の3つのやり方があるでチュン!Google Chromeを開く場合を例に考えてみるチュン!

①「Google Chromeを開く」コードをターミナルに書く。
② Google Chromeアプリのアイコンをクリックする。
③「Hey,Siri! Google Chromeを開いて」と話しかける。

①「Google Chromeを開く」コードをターミナルに書く。(CUI)
これはコード(プログラミング言語)、つまり言葉(Character)で計算機(パソコン)と会話するのでCharacter-based User Interface、CUIと呼びます。
ただこれではプログラミングができる人しか計算機を使えないので人間はプログラミングをしなくても計算機と会話できる手段(GUI)を発明しました。

② Google Chromeアプリのアイコンをクリックする。(GUI)
これは皆さんが日々お仕事や勉強でパソコンと会話する際に使っている方法だチュンね!ボタンやアイコンをクリックして「MacBookよ!Twitterを開け!」などたくさん命令していると思うでチュン!これをGUIと呼ぶでチュン!Character(プログラミング言語)ではなく、Graphic(グラフィック)でパソコンと会話する方法を発明したことでパソコンを使える人が爆発的に増えたチュン。ここ数年急激に成長しているノーコードは今までCUIでしか出来なかったことをGUIでできるようにしているんだチュン!より多くの人がパソコンと一緒に多様なことを実現できる社会に近づいているのは良いことだとチュン太郎は思うでチュンよ〜〜。

③「Hey,Siri! Google Chromeを開いて」と話しかける。(VUI)
最後は、「OK,Google!」「Hey,Siri!」でお馴染みの音声アシスタントを使った操作だチュンね。これをメインで使って仕事をしている人はまだ少数派だと思うチュンが、GoogleHomeやアレクサなどは皆さんも1度は経験があるかと!(チュン太郎も家では「OK,Google!」のお世話になっているでチュンよ〜。)これはいよいよパソコンを触るのもめんどくさがった人類がついに人間の言葉でパソコンと会話することを可能にしたのだチュン!!なので、Voice User Interface(VUI)と呼ばれんだチュンね〜。

2.メイントピックの学習

今回のメイントピックはブロックチェーンだチュン!と言ってもブロックチェーンはスマートコントラクト・P2P方式の分散型データストレージ・暗号化技術・コンセンサスアルゴリズム・電子署名・ハッシュ関数などの複数の技術が融合してできており全てを説明するのは難しすぎるチュン。。。
また、この「ベリロン雀と学ぶ~web3教室~」は技術超初心者にイメージを持ってもらい自分でググれるようになってもらうことが目標なので
第1回の今回はこの中から
1.スマートコントラクト
2.P2P方式の分散型データストレージ
3.コンセンサスアルゴリズム
の3つをメインに学習していくチュンよ〜〜!!
画像いっぱい使って説明していくので頑張ってついてきてほしいチュン!

①スマートコントラクトってなんだチュン?
→ブロックチェーン上に書き込まれたプログラム(ソースコード)
まず、「プログラムって言われてもいまいちなんだよな〜」という人へTwitterを例に、プログラムとデータベースの感覚を掴んでもらうチュン!

ある朝、チュン太郎はこう思いました。

そしてベッドの上のスマホをつかみ、Twitterを開いて朝のひと鳴き。

ツイートがきちんと投稿されたことを確認してそのまま二度寝に入りましたとさ。。おしまい。(色んな意味で。笑)

さて、今の「ツイートをする」という行為はプログラムとデータベースのおかげできちんと行われています。では実際にどのように行われているのでしょうか?

まず、プログラムとは何か?を簡単に説明すると、人間が計算機(パソコンとかスマホ)に「こんなことがあったらこう対処してね。」と事前に手渡したマニュアルのことだチュン!計算機は真面目なので、このマニュアルに書いていることは100%、ミスなく実行してくれるチュン!ただ、マニュアルにないことは一切やってくれないのだチュン。。
また、このマニュアルはマニュアルを作成した会社のサーバー(データベース)に保存されているチュン!今回はTwitterなのでTwitter社のサーバーの中に保存されていることになるチュンね!
今回、チュン太郎が「ツイートする」というボタンをクリックした瞬間!計算機(スマホ)からTwitter社のサーバーに①「ツイートする」というボタンがクリックされました!という情報が伝達されるんだチュンね。そうすると、Twitter社のサーバーの中にいるコンピューターは

「「ツイートする」というボタンがクリックされたらどうするんだっけえ?どうするんだっけえええ早くしないとイーロンに怒られちゃうう!!!」

と必死にマニュアルを探して対処法を探すわけです。
そして
「あった!なになに??「ツイートする」というボタンがクリックされたら、すぐさまそのツイートを表示しろ
「やばいいいい!!早くしないとおおおおおおおお!!(イーロンに宇宙へ飛ばされるううううう!!!!)」
と焦って②マニュアル(プログラム)を実行し、チュン太郎のスマホの画面に③ツイートが表示されました。めでたしめでたし。

②P2P方式の分散型データストレージってなんだチュン?

さて、では話を戻しましょう。

冒頭でチュン太郎は
スマートコントラクト=ブロックチェーン上に書き込まれたプログラム(ソースコード)
とお話ししましたチュン。
つまり、プログラム=マニュアル。スマートコントラクトはマニュアルなわけだチュンね。
では、サーバー(データベース)はweb3では何が該当するんだチュン?
それが、P2P方式の分散データストレージと呼ばれるものだチュン。これはブロックチェーンを構成する1つの要素に過ぎないんだチュンが、このP2P方式の分散データストレージをブロックチェーンと呼んでいる人もいるのでややこしくなっているチュンね!
表にまとめると以下のようになるチュン!スマートコントラクトもプログラムなのだチュンが、ブロックチェーン上に書かれるプログラムをスマートコントラクトと特別な名前で呼んでいると考えて頂ければOKだチュン!

さて、ここからはデータベースの話をしていくチュン。
サーバーやストレージ、クラウドストレージ(クラウドとみんなが呼んでいるやつだチュン!)などという言葉を聞くと

と思いますよねチュン?(チュン太郎が がめつい関西人だから?)
そうです。データベースには容量というやつがあって、〇〇GBまで!という上限があるんだチュン。
だからTwitter社のサーバー(データベース)とかはチュン太郎のしょーもない鳴き声とかのデータも保存しているので上限は〇〇TBでは済まず、〇〇PB(ペタバイト)、〇〇EB(エクサバイト)とかありそうだチュンね〜。(調べたけど非公開のためわからなかったチュン!)
サーバーなら容量が足りなくなると

のように物理的な数を増やせば解決します。
では、各ブロックチェーン上のP2P方式の分散データストレージはどうやって容量を増やすのでしょう??
ここで、「コンセンサスアルゴリズム」やら「PoW(プルーフオブワーク)」やら「PoS(プルーフオブステイクス)」やら「マイニング」やらが登場してくるんだチュングラララ!!!
基本的にブロックチェーン上に保存される情報は各ブロックの中に書き込まれる。ということはつながっているブロックの数がそのブロックチェーン上のP2P分散データストレージの容量ということになるんだチュン。
つまり、容量を増やそう!となった際は
サーバー→物理的にサーバーの数を増やす
P2P分散データストレージ→ブロックを増やす
となるチュン。

③コンセンサスアルゴリズムってなんだチュン?

では、ブロックってどうやって増やすのチュン?
ここでマイニングという作業が出て来るんだチュン!ただこのマイニングという作業を細かく書くと数学の世界に突入してしまう(興味のある人は「ナンス値 ブロックチェーン」とか「ハッシュ値 ブロックチェーン」 でググってもらえるとどうやって改ざんできないようにしているか?が出て来るチュン!チュン太郎もこれを理解するのには結構時間がかかった+まだ細部はそういうものだとして処理してしまった部分がある のでまだ第1回の今は飛ばすチュンね!)
マイニング
=コンセンサスアルゴリズムに基づいてブロックを生成すること(データの容量を増やすこと)
コンセンサスアルゴリズム
=ブロックをそのブロックチェーン上に生成する際のルール
と把握してもらえれば先に進めるチュン!細かいことは第2回以降でやるチュングラララ!!!
そして、今ここでコンセンサスアルゴリズムの説明をもう一度見直してほしいんだチュンが、「ブロックをそのブロックチェーン上に生成する際のルール」つまり、ブロックチェーンごとにコンセンサスアルゴリズムは違うんだチュン!
その代表例が、「PoW(プルーフオブワーク)」や「PoS(プルーフオブステイクス)」だチュン。
では、PoWとPoSを簡単に説明するチュンね。以下のお話を読んでみてほしいチュン。

第1回ブロック生成大会_ルール
1.とてつもなく計算量の多い計算問題を10分に1回出題する
2.それに最初に正解した者に1つのブロックを生成する権利を与える

。。。。
結局、この第1回ブロック生成大会は、より強い(CPUの計算能力が高い)機械を持っている人がより多くのブロックを生成できる確率が高いゲーム。となり、チュン太郎のように夏場の電気代をケチってカフェにいるような学生にはしんどい戦いになるんだチュンね。。
そして、この第1回ブロック生成大会のルールこそがPoW(プルーフオブワーク)だチュングラララ!!!
再度整理するチュンね。
コンセンサスアルゴリズム
=ブロックをそのブロックチェーン上に生成する際のルール(つまりブロック生成大会のルール)

コンセンサスアルゴリズム(ルール)の1つにPoWがある。

ルールの詳細は

第1回ブロック生成大会_ルール
1.とてつもなく計算量の多い計算問題を10分に1回出題する
2.それに最初に正解した者に1つのブロックを生成する権利を与える


より強い(CPUの計算能力が高い)機械を持っている人がより多くのブロックを生成できる確率が高い。つまり、機械に投資できるお金と電気代にかけられるお金が多ければ多いほど有利。

そしてチュン太郎はルールを考え直し、第2回ブロック生成大会を行います。

第2回ブロック生成大会_ルール
1.くじ引きで1つのブロックを生成する権利を与える人を決める
2.くじの当選確率は持っているこのブロックチェーン上のコインが多ければ多いほど高くなる

と、第2回ブロック生成大会は
1.計算能力の高いコンピューターが全てのブロックチェーン上のマイニングで有利になり彼らがブロックチェーン全てを支配するリスク
2.電力を過剰に消費して環境を破壊しすぎるリスク

この2点を解消したとして第1回よりもマシになったと言われながら行われていきましたとさ。第3回大会ではどのようなルール変更があるのでしょうかチュン?それは第2回以降の「ベリロン雀と学ぶ~web3教室~」でお話しすることにするチュングラララ!!!

3.web3キーワードを一言で説明してみた。

今回のキーワードはPFPだチュン!

PFP
Twitter等SNSのアイコンを想定した画像(Profile Picture)

第2回に続く。。

編集後記

第2回はMirrorで書いてみようかな〜。あとOdyseeっていうweb3版YouTubeにも投稿してみたいチュンね。テスト的に記事を画面共有しながら解説した動画でも上げてみるチュンか〜〜。

読者の皆さんへお願い

最後までお読みいただきありがとうございます!最後に読者の皆さんへお願いをさせて下さい。
チュン太郎自身、まだまだweb3勉強中の身であります。そして
「きちんとアウトプットできるレベルまでweb3を勉強しよう。またweb3に限らず学習したことを皆さんへどんどん発信していけるような仕組みを作ろう。」
と前々から考えていて、この度大石先生の講義をまとめている中でこのような企画を思いつきました。
チュン太郎自身理解があやしい部分はきちんと調べて記事を書くようにしていますが、記事の中に間違いがあったり、簡単に説明しようとしすぎたことにより事実と異なる表現になっていることもあると思います。
そのような点を見つけてくださった方はぜひ以下のTwitter(https://twitter.com/izin_taro_k)でチュン太郎にご連絡くださると嬉しいです。その内容をもとにチュン太郎自身再度勉強して記事を修正させていただきます。
このnoteを読んだことがきっかけで、とっつきにくかったweb3がわかるようになった!今まで怪しいと思っていたNFTの背景がわかってより興味が湧いた!などweb3の裾野を広げる力に少しでもなることができたら嬉しいです。次回もよろしくチュングラララ!!!


この記事が気に入ったらサポートをしてみませんか?