見出し画像

PoS を用いて DAO における投票システムを作ってみる

こんにちは。 faunsu です。ブロックチェーンネタを公開していきます。今回のお題は DAO における投票について考えていきます。この仕組みは既に開発済みであり、まずは何を開発してみたのか?から説明していきます。もし、違和感があったりより良いアイディアがあれば是非… 是非にお寄せ下さい。

開発してみたもの

Web3、特にブロックチェーン上で構築された DAO における投票システムを今回開発しました。投票は各ユーザーが発行するトランザクションにより行われます。結果は特定システムのRDB上ではなく、ブロックチェーン上に結果や記録が書き込まれていきます。

PoS Importance poll

開票はブロックチェーンの PoS スコアを用いる

これまで DAO での投票について幾つかの課題意識がありました。以下のようなものです。

  • 入退室の自由な DAO において管理者が辞めても記録が保持され、投票の仕組みも生きたままとなるものにしたい。

  • DAO を構築したブロックチェーンネットワーク全体の参加者が参加可能、かつ不正が難しい投票システムを用意したい。

  • 選挙のように誰かが投票を監視して人的リソースを用いて正当性を担保するのではなく、極力人を介さずに不正な投票を防止したい

特に 3つめの課題が厄介でした。投票に当たって事前に専用の NFT を配って管理、としても配布作業が必要です。しかも不特定多数に毎回等しく配るのは大変です。かつ本人確認を行わなければ一人のユーザーが虚偽申告によって複数の投票権を持とうとしてくるかもしれません。

これに対処する為に今回 PoS のスコアを用いて投票を成立させるようにしました。ポイントは以下の通りです。

  • 投票を開始したい人は最初に集計対象日時を決めます。この集計対象日時になるとブロックチェーン全体のアカウントのスコアを取得します。

  • このスコアは各アカウントが持つ基軸通貨の保有数に応じたネットワーク全体に対する割合です。

  • このスコアを用いることにより、如何にアカウントを複製しようがネットワーク全体の基軸通貨の量は変わらない為、不正投票が出来ません。

  • 投票権に相当するものは事前に投票ユーザーが該当のブロックチェーン上でアカウントを所有していることだけです。投票の管理者は事前に投票用の token 等を配布しておく必要はありません。

何の投票に使っていくか?

今回開発した投票システムは例え今該当アプリをホスティングしている私がいなくなったとしてもソースコードは以下の通り公開されており、同じアプリケーションを公開すればデータや投票ロジック自体はブロックチェーン側に存在する為、誰でも立ち上げる事が可能です。

また、投票は誰でも気軽に開始でき、投票範囲は上記で説明した通りブロックチェーン全体で進める事が出来ます。この機能を活かして以下のようなシーンでまずは活用を進めていきます。

  • ブロックチェーン自体の機能開発や方針検討等、広い範囲の合意や意思確認が必要となるケース

  • なるべく多くの意見、サンプルが欲しいようなケース

  • 稼働中の DAO の運営方針等、将来的に判断の記録を残すべきであるもの、または判断の経緯を常に公開すべきであるもの

まとめ

該当の投票アプリケーションは以下に公開致しました。UI はまだ荒削りな所がありますが、今後使いつつ見直しを図っていきます。もしこういった DAO 向け分散投票システムの利用、もしくは別ツールへの移植等をご検討の際には是非お声がけ下さい。 twitter or discord にて気軽に雑談しましょう!


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