フロントエンドチーム小林です。
イーサリアムなどのブロックチェーンでは、スマートコントラクトを使い、非中央集権で自動的に処理を行うことができます。その性質を用いて、投票や決定、報酬分配などのルールを自動化するDAOという考えでのプロジェクト運営が行われるようになってきています。
分散型投票システム上での提案・決定
実際にDAOがどのように運営されているかをsnapshot(https://snapshot.org/#/) というサイトで見てみます。
開くと、スクロールしきれないほど多くのプロジェクトがあります。2022年8月18日時点では8893件あり、ENS, Uniswap, PancakeSwapなどの有名なプロジェクトもあリました。
ここでは試しに、PancakeSwapのページを見てみます。意思決定を伴う提案が多くなされていることがわかります。
実際どのように決定されているかを見てみます。終了でフィルタリングし、詳細を見てみます。
この提案では、Don't add dero coin が 93.8%で、否決になっています。投票には、CAKEVOTEというトークンを使っており、一人1票ではなくて、CAKEVOTEをたくさん持っているだけ票を入れることができるという仕組みです。CAKEVOTEとは、CAKEトークンをステーキングしているともらえるトークンです。なので、CAKEをたくさんステーキングしているほど、意思決定に影響力があると言えます。なお、投票のリンクを辿るとBscScanへ飛ぶことから、PancakeSwapは、Binance Chainを使って投票を行なっていることがわかります。
作るもの
今回は、「snapshot」のデモサイト(https://demo.snapshot.org/#/) を使ってDAOを作ってみます。
ステップ
スペースの作成
左の+ボタンを押して、スペースを作成するページを開き、Get started をクリックします。クリックするとウォレット接続を求められるのでMetamaskをクリックして接続します。
ENSの登録
次にENSを登録します。
ENSとは
ENSとはウォレットアドレスの代わりに使うことができるものです。Webサイトでいうドメインのようなものです。
例えば、「nick.eth」は、「0xb8c2C29ee19D8307cb7255e1Cd9CbDE883A267d5」というアドレスという意味です。nick.eth宛におくるだけで、0xb8c2C29ee19D8307cb7255e1Cd9CbDE883A267d5へ送ったことになるため、覚えやすく送信ミスも防ぐことができます。また自分であることの証明にも使えるため、コミュニティでの活動に便利です。
テスト用のETHの準備
実際にENSを使うにはお金がかかりますが、今回はテスト用のトークンで払うので無料で利用できます。
テストネットは、Rinkebyを使います。FAUCETなどで、テスト用ETHを取得ください。
テストネット用のENSページで、ENSを登録する
https://app.ens.domains/
今回はpalettetest.ethという名前で取得してみます。テスト用ETHで払うので、期間や金額は気にしなくて構いません。
Request to registerをクリックします。
一分経ったらRegisterをクリックします。その後Set As Primary ENS Nameをクリックすると完成です。
これで「palettetest.eth」が自分のウォレットアドレスとして使えるようになりました。
ENSをスペースと紐付ける
元の画面に戻ると、既存のENSドメインを使用してくださいと表示されるようになります。palettetest.ethを選択し、登録するボタンをクリックします。
Space controllerはそのままクリックします。
その他
提案の作成と投票
試しに提案を作成し、投票してみます。
無事投票ができました。
ERC20を使った投票
もう一工夫してみます。
上で紹介したPancakeSwapのように、トークンを持っている量に応じて、投票の票数を変えてみましょう。
設定からストラテジーをerc20-balance-ofに変えて、自分が持っているトークンに設定してみます
2KBY2と表示され、一度に複数票を入れることが可能になりました。
まとめ
今回は、投票システムを使ったDAOの構築を行いました。トークンを用いた投票など、プロジェクトに合った意思決定ができるのが、革新的だと感じました。