👓

NounsDAOのデリゲートの仕組み

2023/04/11に公開

NounsDAOでプロポーザルを起票するには、Nouns発行数の0.25%を超えるNousを所有している必要があります。
2023/4/11現在、Nouns発行数は674体なので、発行に必要なNounは2体ですが、発行数が800体以上になると、3体必要になってきます。

pNounsではこれに備えて、3体目を購入する議論がなされています。
しかし、自分で3体保持していなくても、プロポーザルを起票する裏技があります。それが『デリゲート』。今回はこの仕組みを解説していきます。

プロポーザル起票の条件

最初に書きましたが、プロポーザルを起票するにはNouns発行数の0.25%を超える(以上ではない)Nousを所有している必要があります。
このコントラクトを追ってみましょう。コントラクトのコードはこちら。
https://github.com/nounsDAO/nouns-monorepo/blob/master/packages/nouns-contracts/contracts/governance/NounsDAOLogicV2.sol#L197-L213
https://github.com/nounsDAO/nouns-monorepo/blob/master/packages/nouns-contracts/contracts/governance/NounsDAOLogicV2.sol#L1066-L1068

  • 206行目で、現在のNouns発行数を取得
  • 208行目の"bps2Uint(proposalThresholdBPS, temp.totalSupply)"(1066行目を呼び出し)で提案に必要な最低保有数を計算しています。
    proposalThresholdBPSは、以下のコントラクトで確認可能です。
    https://etherscan.io/address/0x6f3E6272A167e8AcCb32072d08E0957F9c79223d#readProxyContract
  • 1067行目、"(number * bps) / 10000"の小数点以下は切り捨てになります。
    number=674, bps=25なので、計算結果は1.685となりますが、返される値は 1 です。
  • 戻って210行目のrequireは必要条件を満たしているかチェックする関数です。
  • 211行目のgetPriorVotesはそのアドレスが持っているNouns投票権であり、これはデリゲートされた数も含みます(解説は次章)。 これが ">"でチェックされているため、現時点では ">1"、つまり2体以上の条件になります。

投票権の確認方法

先ほど出てきた getPriorVotes がそのアドレスが持っているNouns投票権です。次はこの計算方法をみていきます。
と言いたいところですが、このコードはとても難解で説明し切る自信がありません。ですので、現物を見ながら、どうやって確認できるかを解説したいと思います。

確認するのは、LilNounsのアドレス。こちらは15体のNounsを保有し、かつ1体のデリゲートを受けています。
https://lilnouns.wtf/vote
https://lilnouns.wtf/vote

LilNounsのトークン保有アドレスはこちらです。
https://etherscan.io/tokenholdings?a=0xd5f279ff9EB21c6D40C8f345a66f2751C4eeA1fB

これをNounsDAOのコントラクトで見ていきます。
先ほどproposalThresholdBPSを確認したコントラクトを再び見てください。
https://etherscan.io/address/0x6f3E6272A167e8AcCb32072d08E0957F9c79223d#readProxyContract

No.27にNounsTokenのコントラクトアドレスが記載されているので、こちらのコントラクトを見てください。

https://etherscan.io/address/0x9C8fF314C9Bc7F6e59A9d9225Fb22946427eDC03#readContract

まずは保有数。「3.balanceOf」で15体保有していることを確認できます。

次は「8.deligates」でデリゲートしているアドレスを確認します。

LilNounsでは保有アドレスから別アドレスにデリゲートしていることがわかります。

そして、プロポーザルの起票条件に出ていた「12.getPriorVotes」。

LilNounsのアドレスが16体分の投票権を保有していることがわかりました。

まとめ

以上で、デリゲートされたNounでも、プロポーザルの起票条件を満たせることがわかりました。
現在のNFT市況と、pNounsNFTの価格(0.0025ETHほど)を鑑みるに、税金含めて40-50ETHの資金を集めるのは難しそう。
実際デリゲートしてくださるNounderがいらっしゃるかわかりませんが、個人的にはこちらの方針の方が有力な気がしてきました。

pNounsは、本家NounsDAOへ直接提案可能な日本で唯一のSUB-DAOです。
ご興味ある方は是非覗いてみてください。
https://pnouns.wtf/

Discussion