前書き
ワイ「DAO(ダオ)っていう新しい組織の形があるんかいな。」
ワイ「前澤友作さんの立ち上げたDAOに15万人が集まったとも聞くし」
ワイ「スタートアップをDAOでやったら前澤さんみたいに死ぬほど儲かるんちゃうか?!」
想定読者
- DAOを作りたい人
- DAOを知りたい人
- DAO知らんし作りたくもない人も
今回説明すること
- DAOで実現したい世界観 (ワイ記法で書きました)
- どんなものが作れるのか (図あり)
- どうやって作るのか (作りたいエンジニア向け)
どういう世界観を作りたいのか?
僕がDAOで作りたいスタートアップの世界観を3つ、ワイ記法1で記載します。
トラストレスな組織
ワイ「すごい起業アイディアを思いついたで!うまくいけば100兆円企業や!」
ワイ「無職やめ太郎さんを採用しよう!」
ワイ「やめ太郎さん、起業しようと思ってるんやけどエンジニアやらへん?儲かったら還元するで!」
やめ太郎さん「ええ・・・」やめ太郎さん(まあ確かに事業アイディアはすごくいいと思うけど・・・)
やめ太郎さん(儲かったら還元するっていうけどほんまかいな・・・)
やめ太郎さん(うまくいったとしても会社のお金持ち逃げするかもしれへんしな・・・)
やめ太郎さん(海外に会社作るらしいから持ち逃げされたらほぼ泣き寝入りや・・・)やめ太郎さん「(信用できひんし)やめときますわ」
ワイ「給料とは別でトークンも割り当てるで!」
ワイ「このスマートコントラクトみてや。トークンを持っていればいつでもこのトレジャリーっていう会社の金庫から資金と交換できるコードになってるやろ?」
ワイ「毎月会社の利益の一部をこのトレジャリーにプールしていくから、儲かったらトークンの価値が上がるで」やめ太郎さん(確かにスマートコントラクトにコードでそう書いとるな・・・)
やめ太郎さん(トレジャリーのお金は原理的に社長でも引き出すことができないから持ち逃げされる心配もないし)
やめ太郎さん(ブロックチェーンにデプロイしたスマートコントラクトは変更できないからこのルールは変わることがない)
やめ太郎さん(この人は信頼できないけどスマートコントラクトは信頼できるな)やめ太郎さん「よし分かった!ええで!それで給料の方はなんぼですの?」
ワイ「年棒で200円や!」
やめ太郎さん「やめさしてもらいますわ!」
パーミッションレスな組織
ワイ「なんとかやめ太郎さんを採用してプロダクトができてきたけど、これを世に広めるには人が足りひんな・・・」
ワイ「かといって日本政策金融公庫と消費者金融に借りてなんとか集めた500万円じゃ、人は雇えへん・・・」
ワイ「せや! トークンを無料でばら撒いて興味持ってくれる人を集めたろ!」ワイ(Twitter)「こんな事業やろうと思っててプロダクトも作ってるよ〜! Discord入ってくれたらタダでトークンあげるで!」
ワラワラ・・・
ワイ(たくさん人が集まったな・・・)
ワイ(でもなぜかみんな大阪人や・・・)
ワイ(大阪人はみんな無料が好きってことやな・・・)Aさん「試しに使ってみてバグ見つけといたで!」
ワイ「助かるわ! 100トークンあげるわ!」
Bさん「ここ使いにくかったから勝手にプルリクエスト作成したで!」
ワイ「すごい! 1000トークンあげる!」
Cさん「UIが地味やな。全部トラ柄にしたらええんちゃう?」
ワイ「フィードバック感謝やで!」ワイ「スタートアップとしては考えられない人数がプロジェクトに参加してくれて感謝やな」
Cさん(トラ柄に変えへんのかい。)
Cさん(このプロジェクトに未来はないからさっさとトークンをお金に変えたろ。)
公平な組織
やめ太郎さん「このプロジェクトも成長してコアメンバーも増えたなぁ」
やめ太郎さん「ワイの給与は年棒200円のままやけど、初期からいるからトークンたくさん持ってて多少は報われとるな。」
やめ太郎さん「でも年棒200円は納得いかへん」
やめ太郎さん「給与を上げるには上司である社長に評価されないとあかんからなあ・・・」
やめ太郎さん「しかも社長は株も90%以上握っとるし、不公平や。」
やめ太郎さん「やっぱり人は信用できひんな。」やめ太郎さん「その点、DAOのスマートコントラクトは公平や」
やめ太郎さん「毎月バグを発見した先着100名に100トークンもらえるからルールが明確やし」
やめ太郎さん「毎月誰にどれだけトークンを割り当てるかもみんなで貢献度投票で決めるから公平やし」
やめ太郎さん「誰かがトークンを独占する必要がなく、貢献に応じて公平に分配されとるな」やめ太郎さん「あ、社長」
ワイ「お、やめ太郎さん。がんばってますか?」
やめ太郎さん「頑張っとるで! それにしても社長今日もかっこいいですね」
ワイ「/// 褒めても何もでえへんけど今日は特別に給料2倍にしたるわ!」
やめ太郎さん(媚びを売ったら給料上がるんかいな・・・)やめ太郎さん(スマートコントラクトには媚びを売らなくてもいいから楽やな・・・)
実現したい世界観をまとめると
ワイ記法で以下の3つのキーワードで実現したいことを説明しました。
- トラストレス
- パーミンションレス
- 公平
信頼できる管理者がいなくても、ミッション実現に向かってメンバーが自ら自律的に価値提供ができる仕組みがあって、コアメンバー以外の人々もやりたいと思えばパーミッションレスに関与することができ、そしてその成果に対して公平にトークン報酬が与えられる。
この仕組みをブロックチェーンの技術によって人を介在させずに、スマートコントラクトがコミュニティの中心にいる、そういうDAOを作りたいと思っています。
そんなDAOによって住む場所、年齢、性別などの条件に関わらず、やりたいこと、面白いことに関わるチャンスが生まれると思っています。
こんなものが作れるよ
DAOは「独自トークン」「トレジャリー」「ガバナンス(投票)」の3つが構成要素としてよく使われます。
DAOのパターンはさまざまあり、それぞれのコミュニティでそれぞれの要件に合わせてスマートコントラクトが作られています。
今回の記事では以下の4つを簡単に図で説明しようと思います。
- シンプルな構成
- NounsDAOにおける実例
- 僕たちが作ったDAOの実例
- 利益を生みにくいプロジェクトでも使えそうな構成
シンプルな構成
プロジェクトの初期段階ではスピード感と自由度の高い運営が望まれます。
運営に強い権限のロールを付与し、素早い変化ができます。
一方で、強い権限を持つ運営を信頼する必要があり、完全なトラストレストは呼べず、人による支配が残ります。
プロジェクトが完全に安定化したタイミングで、運営は権限を放棄することが可能のため、段階的にDAO化させていく方針を取ります。
NounsDAOにおける実例
真のDAOと評されるNounsDAOは、人による支配を無くし、スマートコントラクトで成り立つ構成で運営されています。2
そして2022年8月現在、60億円相当のイーサリアムがトレジャリーに存在し、下記のような提案が100以上も出され、実行に移されています。
Nounsのアニメを作るから120ETH(2400万円相当)を使わせてください、という提案。残念ながら却下されています。
僕たちが作ったDAOの実例
僕たちが運営しているEnglister DAOでは、毎スプリント貢献度投票を行っており、その集計結果でトークンの割り当てを決定しています。
似たようなことをやっているプロジェクトを見つけられなかったため、1から自分たちで貢献度投票のスマートコントラクトを書きました。 3
これにより、運営はトークンの分配権限を持つ必要がなくなりました。
利益を生みにくいプロジェクトで使えそうな構成
利益を生みにくいが公共性が高く必要性のあるプロジェクトもDAOを構成することは理論上可能なのではないかと思っています。
上記のようにトレジャリーを公開し、クラウドファンディングで寄付を募れるようにすることで、共感してくれた人や応援したい人たちからの援助が得られる可能性があります。
寄付を原資に貢献してくれた人たちに価値のあるトークンを配ることが可能です。
どうやって作るのか?
エンジニアとしてはこれをどうやって作るのかというところに興味があると思います。
本記事ではイーサリアムネットワーク上に構築することを前提として、言語・開発環境・フレームワークについて記載します。
言語
プログラミング言語としてはSolidityを利用してスマートコントラクトを記述します。
言語仕様を楽しみながら学ぶにはCryptoZombie4がおすすめです。
開発環境
Hardhat5を使うことで、ローカル実行・単体テスト・デプロイが一貫して行うことができます。
フレームワーク
OpenZeppelin6というモジュラーシステムがあります。
例えばERC20の独自トークンを発行したい場合に、全てを自前で実装するのではなく、OpenZeppelinのコードを継承し、必要に応じて関数をoverrideして独自要件を実装します。
スマートコントラクトはなるべく自前で実装する量は減らすべきです。なぜならコードに脆弱性があるままデプロイしてしまうと、そこを突かれてトレジャリーの資産が全て流出してしまうなどの大事故が起こってしまうからです。
テスト環境
イーサリアムのメインネットにデプロイすると、基本的にコントラクトのコードを変更できなくなります。
また、メインネットにデプロイされたスマートコントラクトを動かすには、ガス代と呼ばれるお金が必要になります。
そこでテスト環境のネットワークにデプロイして動かしたいとなるでしょう。テストネットではガス代は不要(正確にはガス代の原資となるイーサリアムが無料でもらえる)です。
goerliテストネット7などが存在します。
相談する人
こういうことを実現したいけどブロックチェーンで実現できるのか?
Solidityの言語仕様が厄介でわからん!
など、実際にDAOをブロックチェーンで作ろうとすると困りごとがたくさん出てくると思います。
そういう時に相談する人が欲しいですよね。
そのために私が存在します。TwitterのDM8もしくはEnglister DAOのDiscord9でいつでも質問や相談をお待ちしております。
最後に: DAOはあくまでも組織の形
ワイ 「あかん、スタートアップをDAOでやってみたけど、潰れてもうた・・・」
ワイ 「自分の履いてるパンツの柄をNFTにする事業で100兆円企業にするのはさすがに無理やったか・・・」
ワイ 「どれだけ素晴らしいDAOを作っても、そのプロジェクトから生み出すものに価値がなければ持続性はないんやな」
ワイ 「失敗したけど勉強になったしよかった!」
やめ太郎さん 「年棒200円で働かされて、持ってたトークン価値も0になって、散々やったわ!」
〜おしまい〜
-
やめ太郎さんリスペクト。ワイ記法でちょっとした要件定義をしてみた話 - Qiita ↩
-
正確にはまだ運営に強い権限があります。 ↩