NounsDAOのデリゲートの仕組み
NounsDAOでプロポーザルを起票するには、Nouns発行数の0.25%を超えるNousを所有している必要があります。
2023/4/11現在、Nouns発行数は674体なので、発行に必要なNounは2体ですが、発行数が800体以上になると、3体必要になってきます。
pNounsではこれに備えて、3体目を購入する議論がなされています。
しかし、自分で3体保持していなくても、プロポーザルを起票する裏技があります。それが『デリゲート』。今回はこの仕組みを解説していきます。
プロポーザル起票の条件
最初に書きましたが、プロポーザルを起票するにはNouns発行数の0.25%を超える(以上ではない)Nousを所有している必要があります。
このコントラクトを追ってみましょう。コントラクトのコードはこちら。
- 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
LilNounsのトークン保有アドレスはこちらです。
これをNounsDAOのコントラクトで見ていきます。
先ほどproposalThresholdBPSを確認したコントラクトを再び見てください。
No.27にNounsTokenのコントラクトアドレスが記載されているので、こちらのコントラクトを見てください。
まずは保有数。「3.balanceOf」で15体保有していることを確認できます。
次は「8.deligates」でデリゲートしているアドレスを確認します。
LilNounsでは保有アドレスから別アドレスにデリゲートしていることがわかります。
そして、プロポーザルの起票条件に出ていた「12.getPriorVotes」。
LilNounsのアドレスが16体分の投票権を保有していることがわかりました。
まとめ
以上で、デリゲートされたNounでも、プロポーザルの起票条件を満たせることがわかりました。
現在のNFT市況と、pNounsNFTの価格(0.0025ETHほど)を鑑みるに、税金含めて40-50ETHの資金を集めるのは難しそう。
実際デリゲートしてくださるNounderがいらっしゃるかわかりませんが、個人的にはこちらの方針の方が有力な気がしてきました。
pNounsは、本家NounsDAOへ直接提案可能な日本で唯一のSUB-DAOです。
ご興味ある方は是非覗いてみてください。
Discussion