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

2023/01/24に公開

前回に引き続き、pNouns⚡️投票システム構想について考えていきます。

前回の振り返り

前回提示したアイデアは以下の3案。
どれも一長一短ですが、個人的には、案Aは1回の投票にかかる経費が非現実的、案BはDAO純度が低くpNounsとして採用すべきでない、ということで案C推しでした。

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

ガスレス投票

これをpNouns⚡️DAOで提案したところ、 pajiさんから第4案のアイデアが。

gnosis safeはブロックチェーンのマルチシグアドレスを管理するシステムで、トランザクションを実行するために、複数アドレスの署名が必要となる仕組みです。この署名情報はオフチェーンに登録されるので、ガス代は不要です。

例えばトランザクションを実行するために3アドレスの署名が必要な場合は、以下のようなフローになります。

  1. アドレスAがトランザクションを登録(ガス代不要、アドレスAは署名済みとなる)
  2. アドレスBが署名(ガス代不要)
  3. アドレスCが署名(ガス代不要)
  4. 任意のアドレスがトランザクションを実行(ガス必要)

これをpNounsの投票に当てはめると、参加者は投票時に署名のみ実施するため、ガス代は不要です。投票された署名情報はオフチェーンに保存します。
投票期間終了後、誰かが投票結果をブロックチェーンに書き込むのですが、このタイミングのみガス代が必要となります。

図で書くとこんな感じ。

本家Nouns方式だと、投票者分のガス代(0.003ETH*50人だと0.15ETH≒3万円!!)が必要なのに対して、ガスレス方式だと、1回のガス代が多少UPして0.005ETHだったとしても≒1,000円で済みます。

ブリッジ投票

ガスレス投票はグッドアイデアだったんですが、このままだと成長するSBTを実現するための、投票者の投票実績をブロックチェーンに保存できないので、投票実績をPolygonに格納するようにしてみました。Polygonならガス代が気にならないレベルです。
投票結果をEthereumとPolygonの間でブリッジ(橋渡し)するので 『ブリッジ投票』 と名付けてみました。

  • 投票者の投票結果はPolygonチェーンに格納する
  • 投票期間終了後、賛成○票/反対○票という結果のみEthereumに登録する
  • Polygon内の投票をポイント化しSBTを変化させる
    (※ポイントは投票以外のDAO活動でも貯める構想があるが投票システムのスコープ外)

EthereumとPolygonの間のブリッジは、Openzeppelin DefenderのRelayというサービスでセキュアに効率化できそうです(edyさん情報ありがとうございます)。この場合、Meta transactionという仕組みでガス代を肩代わりできるため、投票者はMATICを準備する必要がありません。

いつまでも構想していても進まないので、一旦これで進めてみようかと思います。

エンジニア募集のお知らせ

この仕組みに興味のあるエンジニアさんを募集しています。
今のところ、報酬は確約できませんが、今後、この仕組みをNounsサブDAOの一つのモデルとして本家Nounsへ提案できないか検討していきます。
うまくいけば、Nounsからの報酬でDAO活実績を作れるかも!?

Discussion