pNouns⚡️投票システムの投票について考える

2023/01/18に公開

pNouns⚡️投票システムは、本家Nounsへ提案・投票するためのDAOシステムです。
前回システム構想を書いてみましたが、投票機能についてはガス代問題があり、あまり言及しませんでした。(投票システムはEthereum)
この記事では投票機能のあり方を考えていこうと思います。

pNounsの投票機能(案)

以下に3案とそれぞれのメリット・デメリットを上げていきますが、

  • 純度の高いDAOを目指すpNounsとして外せない「DAO純度の高さ」
  • 現実問題開発者のスキル・工数の限界があるため「開発のしやすさ」
  • 資金が潤沢でないため「ガス代の節約」

を基準に考えていきます。

【案A】本家Nounsと同じ

本家Nounsと同じしくみを利用します。(文末の補足参照)
この案は、フルオンチェーンでDAO純度が高い上、本家Nounsから流用できる部分が多く、開発工数が(他案に比べて)低く済みます。
ただし、投票にかかるガス代は、投票者あるいはトレジャリーウォレットが支払わなければなりません。試算すると、投票1回のガス代は0.003Ether程度(20Gwei)。投票者30人で年100回投票した場合、 年間で合計9Ether必要となります(個人負担だと0.3Ether)。

【案B】オフチェーン補助システム

snapshot.orgのようなpNouns⚡️NFTを投票権とする投票システムを独自に構築します。
それならsnapshot.orgで良いのでは?という疑問が出てきますが、snapshot.orgだと、Nounsでプロポーザルが出来上がる度に運営の誰かがsnapshot.orgに登録し、また、投票結果も運営の誰かがブロックチェーンに登録しなければならず、中央に運営がいる状態から脱却できません。自動化するにはpNouns投票専用の独自システムが必要になります。
オフチェーンシステムのメリットは、投票者が投票するごとにガス代がかからないことです。(ただし、pNounsMemberによる投票が完了後、投票結果や投票者のポイントをブロックチェーンに登録する時にはガス代が必要になります)
また、独自に構築するため柔軟な設計が可能となりますが、DAO純度は低いものになります。

【案C】レイヤー2補助システム

EthereumのpNouns投票システムの補助システムとして、ガス代の低いレイヤー2(Polygon,Solanaなど)に構築します。
実行頻度の高いpNounsMemberの投票機能と、これに伴って成長するSBTをレイヤー2に配置します。
Ethereumの投票システム(A)とレイヤー2の補助システム(B)間でブリッジが必要な機能は以下です。

  • プロポーザルを(A)から(B)へ登録
  • 投票結果を(B)から(A)へ登録
  • pNouns⚡️NFT保有数に伴う投票権を(A)から(B)へ登録

ブリッジの仕組みはオフチェーンになりますが、双方の整合性は各々のブロックチェーンに刻まれたデータから検証できるため、【案B】に比べるとDAO純度は高いと考えます。

まとめ

3案のメリット・デメリットを比較すると以下になります。

DAO純度の高さ 開発のしやすさ ガス代の節約 判断時の考慮ポイント
【案A】本家Nounsと同じ × DAO純度は高いがお金も高い
【案B】オフチェーン補助システム × DAO純度が低い。成長するSBTにお金がかかる
【案C】レイヤー2補助システム レイヤー2を許容するか?

個人的には【案C】かなぁ。
皆さま、ご意見お待ちしております。

(補足)本家Nounsの投票機能

本家Nounsの投票は下図赤枠の関数 castVotecastRefundableVote で実施しています。

castVote

実施していることは、以下の通り。

  1. 投票対象のプロポーザルが提案中かのチェック
  2. 投票内容が、賛成・反対・棄権のいずれかであるかのチェック
  3. 投票者が投票済みでないかのチェック
  4. 投票者の投票ポイントをNounsTokenから取得(Nouns保持数や委譲数で計算される)
  5. 投票ポイントを賛成・反対・棄権のいずれかの累積数に加算
  6. 投票者の投票を記録(投票済み、賛成・反対・棄権のいずれか、投票ポイント)

castRefundableVote

実施内容はcastVoteと同じですが、実行した際のガス代が投票者へ送金される仕組みになっています。
過去の実績を見ると、投票1回のガス代は0.003Ether程度(20Gwei)でした。

Discussion