Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

勉強会タダ飯人間問題を暗号通貨とNFTでなんとかしたい

ジャストアイデアなのでできるかどうかとかは全然考えていない。思い付いたのでメモという感じ。NFTで金儲けみたいな話では一切ないです。そこ勘違いしないよう。

前提

勉強会でタダ飯を喰らう人間がいて迷惑している、という話がITエンジニアならよく知る話だと思うが、これが最近は大きなメディアにも取り上げられだしたようで、一般の人間の識るところとなりつつある。

さいわいにも自分が運営しているScalaわいわい勉強会にはそういう人間は出ていないように思われる(もしかしたら気付いてないだけかも)が、なんでそういう人間が出現するのかというとタダだからである。 タダだから障壁が低くなり、われわれがコストを負担させられるという構造になっている。

有料化すべし

そこで、勉強会は有料にするのが良いのではないか、と思っている。有料といっても数万円取るのではなくて、思い留まるくらいであればよい。3000円とか取るのがよいだろう。しかし学生にはこれは堪えられないと思うので、学生は学生証を出してもらえばタダということにしたい(自動的に学生かどうかを判定する機構は知らない)。 id:tanishiking24 くんにこの話をしたところ、集めたぶんは言語やOSSを作ってる組織や人に寄付したらいいのではないか、という話になった。たいへんカッコ良いイケてる話だと思う。それはそうと軽食は出してあげたい。学生の交通費をこれで払うのも面白いかもしれない。

しかし、こういう会を運営したことがある人ならばよく分かると思うが、集金するというのは大変である。誰からいくら貰ったかをきちんと記録しなければならないためである。チャリンチャリン。小銭しかない人。万札しか持ってない人。子どもクラブの集金、サークルの集金、PTAの集金、老人会の集金、死んだら六文銭、人生は集金に満ちている。しかし自分は人間の顔を覚えるのが大変苦手で、高校でも大学でも苦労させられた。自分はソフトウェアエンジニアなので、ソフトウェアで問題を解決したい。

そこで、ネット上で送金を完結させ、参加者のIDと紐付けられればよいと考えた。しかし、Stripeといった送金サービスは個人をターゲットとしていない。どっちかというとビジネス向けであって、われわれのような勉強会をやってる小さいコミュニティが使うにはハードルが高い。

暗号通貨どうか

しかし暗号通貨ならこのハードルを突破できるのではないかと考えた。参加者は事前に参加費を暗号通貨、ビットコインでもイーサリアムでもなんでもいいが払ってもらい、受付でそれを確認する方法を用意しておけばいい。暗号通貨は比較的自由に決済履歴を検証できる機構が整っている。暗号通貨を受け渡すにはウォレットというソフトウェアが必要になるが、たとえばイーサリアムの場合MetaMaskという良く出来たウォレットがあり、スマホアプリもちゃんとある。

しかしここでいくつかのハードルが新たに生える。

  • 送金手数料が高い
  • そのユーザが送金したことを現地で確認するのが難しい
  • 暗号通貨を購入するハードルが高い

それぞれについて考えてみる。

送金手数料が高い → Polygonネットワークを使う

暗号通貨にあまり詳しくない人に向けて説明しておくと、暗号通貨は自由に誰にでも送金できるかわりに、基本的に手数料と呼ばれる差額を取られることになっている。これは誰に渡るのかというと、その通貨を維持しているマシン、いわゆるマイニングしている人たちへ払われる。このインセンティブがあることで暗号通貨は成り立っている。逆に銀行の手数料などが無料なのは、それで我々を囲い込むだけのメリットがあるということである。

手数料は時価で変動し、例えばイーサリアムの場合はこの記事を書いた時点で1~3ドルくらいかかる。ビットコインもそのくらいかかる。普段我々は無料で決済できることに慣れきっているので、これがハードルになる可能性はそこそこある。だいたい参加費3000円のうち300円くらいを手数料で取られるのはだいぶしんどい。

とはいえ、イーサリアムの場合はネットワークと呼ばれる概念を切り替えて、イーサリアムの仕組みは同じだが別の暗号通貨を送る、という方法を利用することで安く送金することもできる。Polygonというやつが有名で、こっちの手数料はかなり安い。0.01ドルとかそういうレベルである。なので、Polygonで使われるMATICをどこかで買ってもらう、という感じになる。ちゃんとPolygonネットワークで動くMATICを買う必要がある。コインチェックとかで問題なく買えるようだ。(このへんの理解はまだ勉強中)bitflyerは今のところPolygonには対応していないみたい。DMMも同様。

そのユーザが送金したことを現地で確認するのが難しい → 領収書としてNFTをあげる

暗号通貨の送金記録は長ったらしいウォレットアドレスで表示されるので、これをユーザIDと紐付けるのはけっこう大変だ。現地で「ぼくwindymeltなんですけど、このウォレットアドレスでして……」というのを毎回やるのはつらすぎる。覚えらんねーよ。

そこで発想を転換して、送金してもらったらNFTをあげちゃう、という仕組みにするのはどうかと思った。これはそのまま参加記念品にもできる。現地ではNFT持ってるね~、ということだけ確認すればよい。 嬉しいことに、NFTを送ること自体は手でやれるので、0円で参加した学生にもこれをあげられる。NFTで利用するアドレスはウォレットのアドレスなので、NFTを受け取るための追加の機構が必要ないのが利点。

勉強会開催前にあらかじめNFTを予定枠数だけ発行しておき(ギョーカイ用語でこれをMintと呼ぶ)、送金してもらったらそこに送ればよい。 自動的に発行される機構にしたらかっこいいけど、面倒なので裏で僕がチマチマ送信してもいい。

勉強会の開催が無事完了したら、余っているNFTの在庫は存在しないアドレスに送って捨ててしまう(ギョーカイ用語でこれをBurnと呼ぶ)。これでまさに参加賞になる。

暗号通貨を購入するハードルが高い → 最悪人間が交換するということで……

マネロンとかが怖いので、コインチェックとかDMMとかの取引所にサインアップして日本円を入れるまでの本人確認はけっこう厳しい。といっても普通は数時間もかからず終わる。 最悪、自分があらかじめMATICをたくさん用意しておいて、知り合い限定で現地で交換すれば良いといえば良い……。そういうことが自由に可能なのが暗号通貨の面白いところ。さすがにガチで知らない人に交換したくない気がする。 しかし人によっては日本国籍を持ってなかったりするかもしれない。そうなると取引所が使えないかもしれない。その場合の対応も考える必要がある。

いかがでしたか?

いかがでしたかじゃねーよ。タダ飯人間に死を…………。といってもしょうがないので、面白く技術で解決したいですね。Scalaわいわい勉強会は8月下旬~9月上旬に開催予定!予定を開けておくように!

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?