In this proposal, we are requesting funding to audit the smart contract changes necessary to introduce the new stream-based minority protection design. We begin by sharing the thought process that led to this design and conclude with the funding request.
We are using this proposal to get a clear signal from the DAO: do you want us to code and deploy this design?
For an overview of how the suggested mechanism would work, please read this recent spec.
The essence of minority protection is allowing members to leave while taking some funds, thereby minimizing the potential gains of a majority attack on the DAO. We cannot continue with the fork as it is currently designed because DUNAs do not allow distributions to members, especially those that result in profit.
We considered several alternatives before settling on the streams design:
As long as Nouns has a significant treasury and members can join permissionlessly, it will continue to be a honeypot—meaning there is an incentive to acquire enough voting power to take control of the treasury. A 51% attack is the extreme case, but there are more subtle scenarios, as 4156 wrote in this post.
Similar to the reasons why the fork mechanism is not allowed, a DUNA cannot make distributions to its members, especially those that result in profit.
Setting the exit value to the original auction amount is not feasible. Since the DAO primarily spends funds rather than generates them, it cannot guarantee having enough funds to pay back everyone.
Taking this into account, we could set the exit value similarly to ragequit but cap it at the original auction price of that noun to eliminate the opportunity for profit. However, there are several issues with this option. Firstly, profit is denominated in USD. If ETH appreciates between the auction and the exit time, it would be considered profit for tax purposes. To address this, we would need to change the auctions to be in USD instead of ETH. Secondly, this approach is still too similar to a distribution to members due to the basic ragequit calculation of dividing the treasury assets by the number of nouns.
This is the mechanism originally suggested by wag, in which the exit value of a noun is determined relative to the contribution it made in its auction, while taking into account all the expenses since it joined. This is similar to capital accounts used in partnerships. While considering this option, we encountered significant technical challenges that were not trivial to solve. Additionally, we were advised that this option would not work well within the constraints of a DUNA.
In this design, upon auction settlement, the auction proceeds go into an escrow contract that streams the funds from the buyer to the DAO. The buyer can return their noun, cancel the stream, and receive any unstreamed funds. If a stream is canceled, the unstreamed funds never belonged to the DAO in the first place. This means there is no transaction between the DAO and the noun holder, eliminating distributions and, consequently, the possibility of profit.
We believe that providing minority protection without the risk of making distributions is an ideal “sweet spot.”
The primary downside of this design is limited liquidity for the DAO. Funds are not immediately available, which restricts the DAO.
Another downside is the risk of reduced minority protection compared to the fork. If the amount of already streamed funds grows large, it reintroduces the honeypot risk. To mitigate this risk, the DAO is encouraged to spend the funds soon after they are streamed.
Additionally, this design involves giving up group exit in favor of individual exit. We do not have a fully developed and advisor-approved design for group exits but remain optimistic that it can be achieved. We chose to focus on individual returns for simplicity, which reduces the risk of unexpected bugs and time delays. We can explore a fork-like group-return design in the future and strongly believe that implementing this simpler version is the right decision given the DAO’s current context.
We do not have a mainnet-ready version of this code, so we do not have an exact quote from our auditors. Our funding request is based on their estimate plus an uncertainty buffer of 40%.
A spec of the change is available here.
This proposal’s single transaction approves the verbs multisig to spend the requested budget, similar to past audit funding requests. Unused funds will remain in the treasury.
In this proposal, we are requesting funding to audit the smart contract changes necessary to introduce the new stream-based minority protection design. We begin by sharing the thought process that led to this design and conclude with the funding request.
We are using this proposal to get a clear signal from the DAO: do you want us to code and deploy this design?
For an overview of how the suggested mechanism would work, please read this recent spec.
The essence of minority protection is allowing members to leave while taking some funds, thereby minimizing the potential gains of a majority attack on the DAO. We cannot continue with the fork as it is currently designed because DUNAs do not allow distributions to members, especially those that result in profit.
We considered several alternatives before settling on the streams design:
As long as Nouns has a significant treasury and members can join permissionlessly, it will continue to be a honeypot—meaning there is an incentive to acquire enough voting power to take control of the treasury. A 51% attack is the extreme case, but there are more subtle scenarios, as 4156 wrote in this post.
Similar to the reasons why the fork mechanism is not allowed, a DUNA cannot make distributions to its members, especially those that result in profit.
Setting the exit value to the original auction amount is not feasible. Since the DAO primarily spends funds rather than generates them, it cannot guarantee having enough funds to pay back everyone.
Taking this into account, we could set the exit value similarly to ragequit but cap it at the original auction price of that noun to eliminate the opportunity for profit. However, there are several issues with this option. Firstly, profit is denominated in USD. If ETH appreciates between the auction and the exit time, it would be considered profit for tax purposes. To address this, we would need to change the auctions to be in USD instead of ETH. Secondly, this approach is still too similar to a distribution to members due to the basic ragequit calculation of dividing the treasury assets by the number of nouns.
This is the mechanism originally suggested by wag, in which the exit value of a noun is determined relative to the contribution it made in its auction, while taking into account all the expenses since it joined. This is similar to capital accounts used in partnerships. While considering this option, we encountered significant technical challenges that were not trivial to solve. Additionally, we were advised that this option would not work well within the constraints of a DUNA.
In this design, upon auction settlement, the auction proceeds go into an escrow contract that streams the funds from the buyer to the DAO. The buyer can return their noun, cancel the stream, and receive any unstreamed funds. If a stream is canceled, the unstreamed funds never belonged to the DAO in the first place. This means there is no transaction between the DAO and the noun holder, eliminating distributions and, consequently, the possibility of profit.
We believe that providing minority protection without the risk of making distributions is an ideal “sweet spot.”
The primary downside of this design is limited liquidity for the DAO. Funds are not immediately available, which restricts the DAO.
Another downside is the risk of reduced minority protection compared to the fork. If the amount of already streamed funds grows large, it reintroduces the honeypot risk. To mitigate this risk, the DAO is encouraged to spend the funds soon after they are streamed.
Additionally, this design involves giving up group exit in favor of individual exit. We do not have a fully developed and advisor-approved design for group exits but remain optimistic that it can be achieved. We chose to focus on individual returns for simplicity, which reduces the risk of unexpected bugs and time delays. We can explore a fork-like group-return design in the future and strongly believe that implementing this simpler version is the right decision given the DAO’s current context.
We do not have a mainnet-ready version of this code, so we do not have an exact quote from our auditors. Our funding request is based on their estimate plus an uncertainty buffer of 40%.
A spec of the change is available here.
This proposal’s single transaction approves the verbs multisig to spend the requested budget, similar to past audit funding requests. Unused funds will remain in the treasury.