New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Nouns DAO's contributions to the future of DAOs with David Brailovsky and Elad Mallel

Ethereum DenverMon, Oct 9, 2023, 12:00 AM

We share how Nouns DAO works, the beautiful simplicity it launched with, interesting changes and additions to date, and designs we're excited to launch in 2023. Examples include dynamic quorum, ragequit design space, conditional objection period and more. David Brailovsky Smart contract developer Nouns DAO Since April 2022 I've been developing smart contracts for Nouns DAO, working on the core governance protocol to improve security, governance and composability https://twitter.com/davidbrai Elad Mallel Solidity Nouns DAO Working full time for Nouns DAO since April 2022. Before Nouns worked on solidity projects for Tally, Livepeer and several less-known projects. Outside of crypto led software engineering and product teams at startups for 15+ years. I am a husband, and a father of two. https://twitter.com/eladmallel

Transcript

We're from Nouns Dow and um we're going to kick it this talk off with some Nounish vibes. [Music] Cool. So um we're going to talk today about what is Nouns DAO and governance changes we've made since the DAO was born. Um Nouns is a few things. First and foremost, it is an NFT DAO.

Uh we sell membership NFTts on a on an auction on chain every day. Um all of the proceeds are sent straight to the DAO treasury. The DAO is built on a fork of the legendary compound governor Bravo and each noun is equal to one vote and together nouns decide how to deploy the treasury. Nouns is also an open- source brand. Nouns are these pixel characters like a skateboard or a taco.

And all the art is onchain and CC0 meaning anyone can build on top of this brand permissionlessly. And so we're seeing a lot of creativity unlocked on the internet and in real life. Nouns is also an attention business model. Okay. So the basic thesis is people bid on nouns.

Revenues flow to the treasury. Nouns deploy capital to proposals with the goal of those proposals making nouns a known loved brand in the world. growing the brand and the more attention the brand gets, the more bids are going to come into the auction and so the flywheel goes. To date, 629 nouns have been born. We're a relatively small community and that's why we're seeing higher participation rates of over 30%.

Um, we have 27,000 Ethereum in our treasury and we've already spent over 18,000 ETH. So, like we love funding builders. Um, please join us. Some of the stuff we funded are thousands of glasses for kids. A 3D glass sculpture being built in New York City right now.

Um, an extreme sports community called NARS. Uh, amazing float at the Rose Parade. 3D printed fashion, animated stories, a coffee brand, comic books, esports teams, and more. David and I are Solidity developers. Um, we've been working full-time for announce for about a year now and we're also a active governance participants.

So, we kind of feel the pain with the DAO and helping it grow. We're going to talk about changes we've done in funding mechanics, security, and user experience. Starting with funding, um, prop house, an amazing project that came out of nouns, uh, led by one of the founders, Senica. It's basically flipping the auction on its head. We say, "Hey, here's some ETH on the table.

Please come to us and bid with your proposals. What are you going to do with that ETH?" And we and we funded some really cool projects to date. We have open rounds that welcome all kinds of ideas and have really unleashed amazing creative uh community creativity. And we've had mandated rounds where we say, "Hey, we need something specific.

We want people to build new governance web apps. People step up, build amazing things and most importantly everybody then many people then stay onboarded in the community, stay engaged and do follow on work. Prop House solved the problem of deploying smaller amounts of funds without voter attrition. Not everything goes on chain. Smaller amounts few uh less participation works fine.

And we're helping other communities grow like MITs and other communities. deployed over a thousand ETH 150 rounds and we're only we've only started. Over to David. Thanks a lot. Um okay, I'll tell you about a problem we saw after a few months in the Dow.

So um the nouns Dow treasury is held in ETH and that's how the Dow wants to hold its treasury in ETH. But many builders want to get paid in stable coins because they don't want to have some volatility in how they're being paid. So they want to get USDC. How can they do that? So you might say, okay, a naive solution for that would be why don't you add a swap transaction in your proposal?

So when the proposal executes, it swaps some ETH into USDC. So let's say I want to get 50,000 USDC for my proposal. So and ETH is 2,000 USDC at the moment. I'll put this unis swap transaction that says send 25 ETH and get back 50,000 USDC. So what can be the problem with that?

It takes 12 days from the moment the proposal goes on chain until it's actually executed. During that time a lot can happen in crypto markets as you know. So if the price of ETH at that time goes down to a,000 USDC, this proposal is just going to fail because it didn't send enough ETH to the unis swap uh contract. So you might say, okay, I'll put the swap with a high slippage. I'll take it even if ETH goes down to 1,000.

The problem then is a proposal once it passes anyone can execute it which means it's prime bait for me bots to sandwich it and make it perform at the worst possible rate. So you either get your proposal failed or you get wrecked by sandwich bots and you lose money for the DAO. Basically what the DAO did until our solution was basically ask for extra funds. This is a quote from one of the proposals. extra funds to allow for this volatility.

Do the swap, return the excess funds. It came with a lot of problems. Some builders didn't swap to USDC and then came to the Dow said, "Oh, we didn't know we should swap. ETH went down. Please give us more money."

Others were uh not doing the swaps correctly and getting exploited by sandwich attacks. So, and the Dow needed to trust them that they'll actually send back the excess ETH that they asked for. Our solution for this is something we called token buyer. It's a side contract and the DAO interacts with it like so. If a proposal asks for let's say that 50,000 USDC in the proposal, the DAO sends ETH to token buyer and registers a request to swap for 50,000 USDC.

At that moment, anyone on the blockchain can interact with token buyer, swap that ETH for USDC as long as the price matches the price the to the token buyer reads from the oracle, like a chain link oracle. Once that happens, the USDC is sent immediately to the builder. All of this happens behind the scenes. And for proposals they just need to request USDC say to which address they want it and it all happens automatically for them. Another um use case that the DAO has is uh paying payrolls.

So some people are want to work for the DAO for a long time and get payrolls with a stream in USDC. The problem with using something like Sablier to create the USDC stream is you have to have USDC in your treasury at the moment of the creation of this stream. Again, the DAO doesn't want to allocate money for USDC. It want to keep to keep that money in ETH. So the solution that we that people did so far was request to send this money to some multisig.

This multisig would create a stream. The issue with that is at the end of the day the stream was controlled by the multisig and the dow didn't have a way to cancel the stream fire a person if they're no longer needed or not doing a good job. So our solution for this was to fork sablier create something we call streamer. It allows to create streams but fund them after they're created. So once that's combined with a previous described token buyer, proposers can ask in the single proposal to get streamed in USDC and all of this happens behind the scene.

It creates a stream that's controlled by the DAO and later the DAO can put a proposal to cancel that stream if they need to. I'm going to talk about some of the security uh upgrades we've done to the governance protocols. So, our biggest security threat is a 51% attack. That means if someone gets enough tokens and puts up a proposal that says, "Okay, send all the ETH to my wallet. If they have enough tokens, they can do that."

There's nothing we can do about it. It's one way and that would pretty much be game over for the DAO. For us, there's no way to codify to put in code whether a proposal is malicious or well-intended. We have no way to do that. And another issue is you don't actually need to have more than half of all the nouns out there.

You just need to have enough tokens more than active honest participants that will vote against you. Our mitigations for this was first of all nouns was launched with a vetoer c it started with the founders now it's with the foundation. It's a good solution but it's a centralized entity and nouns wants to have a completely decentralized protocol and DAO. So, we want to get rid of it eventually. The way we're thinking about mitigating this risk is to make sure that voters have enough time to vote when a bad proposal comes to make a a bad proposal very expensive.

Meaning, you need to get a lot of tokens to do it and to somehow make these attacks less profitable for a potential malicious attacker. But the best solution, of course, is to be able to build a community where the tokens are distributed well, not held with whales, and people are actively participating and voting on proposals. So our first upgrade was something we call dynamic quorum. So quorum is the number of votes a proposal needs to have supporting it so that it gets passed on chain. A dynamic quorum is something we added where if a proposal gets against votes the quorum starts rising.

So for example if there are 600 nouns our quorum is 10% the baseline quorum is 60 votes. If that proposal then gets 10 against votes, the quorum rises to 70 votes until a certain maximum. What this gives us is proposals that are not contentious are going to keep a low quorum and have less friction and can pass more easily. But proposals that are contentious and people starting to vote against will require to have more tokens to actually pass them, making attacks or bad proposals a lot more expensive. The next upgrade that's not out yet, but we're planning to do is something called objection period.

So, this is for the case that let's say there's a weird proposal to send 100 ETH to some random wallet. 30 votes come in and vote against people think, okay, this is not going to pass. It's some random proposal. But at the last block before the voting period ends, someone votes 31 votes for and it passes. Okay.

Voters who want to pass a proposals are actually incentivized to wait until the last moment and not disclose how much voting power they have. What we're introducing is an objection period during which people can vote only against a proposal. This objection periods gets activated. If a proposal a certain time before it ends switches from being defeated to being passed then an objection period is activated and people can come and vote only against that proposal and shoot it down. Back to you all.

Thank you. All right. So um another cool security project is Ragequit. Some people already might know what rage quit is. Simply put, it's um I'm Dow member that says, "Hey, I I I have I've had enough.

I feel like I've been bullied or or this is a malicious proposal. I want out. I'm burning my token and I want to receive my fair share of the treasury." Now, why is that interesting for nouns? Well, we described the majority attack, right?

Let's say someone actually buys 51% of nouns. There's nothing we can do to stop them from, let's say, creating a proposal, sending them the entire treasury. What we can do is provide a last resort where all the honest noun holders can quit, take their fair share of the treasury, and the attacker is basically left with zero profit. Uh, furthermore, we have the vidor, which is a centralized entity. We want to get rid of it.

Um, and we think that rage quit will take us a huge step in that direction. And you might also ask, why research rage quit? There are already vanilla solutions out there with Mollik Dow and others. And the answer is that there are regulatory and cultural risks we're trying to mitigate. So if we had vanilla rage quit, people might try to buy nouns for cheap on secondary and or on auction and then rage quit with them and basically arbitrage and that messes up with the Dallas culture and as I said adds some regulatory risk.

What we are hoping to build is a threshold rage quit, which basically says that we're only going to let people quit if a significant percentage of token holders choose to quit, say 20%. And all those quitters need to vote the opposite of a proposal's outcome. So let's say a proposal passes, they all need to be in the camp that voted against a proposal. So we're adding some friction to mitigate the arbitrage opportunity to make this a rare event that is really happening in emergency case. Upon rage quit, we're spinning up a new DAO and um basically all the quitting accounts get the same amount of tokens in the new DAO.

Their fair share is sent to that DAO and they can kind of have a fresh start on over there in the new DA. So that was a quick update on security. Now a tiny bit on UX and we're wrapping up. Um, so at Nouns, we've tried to cultivate healthy communication on proposals before they go on chain. Um, we've so far failed at that.

We have a discourse. People post, nobody answers, then people go on chain, and then they get bombarded with feedback, and then they're like, "Uh, okay. Uh, I hear you, but I'm not going to cancel my proposal and resubmit it because I'm on the clock here. I need the funds. So, I'm just going to make some promises on Discord on how I'm going to do things differently.

uh I might refund you if if we disagree on the amount. All kinds of off-chain stuff we don't like. So we're adding uh editing period in the beginning of so when when the proposal goes on chain before people start voting there's going to be an editing period and then proposers can receive feedback and actually update the proposal on chain so we get the best version before voting begins. And another super cool project we're actually kicking off right now. So, we've went we went on Prop House and we said, "Hey, um we want to figure out how to do private voting."

And a bunch of ZK teams have said, "Hell yes, we're in." So, we're we're about to launch a project where three teams are going to research for 3 months how to build private voting that works with awesome UX on mainet for nouns and of course for other Dows. Part of what excites us here is the contribution to the DAO ecosystem. So, that'll be kicking off soon. our main motivation uh which many of you may be familiar with this feeling of uh if I vote no I might be pissing off a friend or making enemies um and so private voting holds the promise of you being able to vote the way you feel for real and um you know what one of the concerns is if you're voting privately then you basically have no accountability and you might um see all kinds of perverse behaviors.

Um, so we're not sure we're doing it yet, but we're certainly doing the research to make it available to us and other doubts. Some more ideas on our minds. Um, I'm really excited about choice rank proposals. The idea that a proposal doesn't have to be binary, but instead a proposer can say, "Hey, here are like three different packages to different kind of sets of work that I could do for you." And voters can rank them and the best option wins.

And you basically have a better information exchange between the proposer and the DAO. It's more efficient this way. And dynamic proposal friction on the security side. Wouldn't it be cool if we want if someone wanted to spend half the treasury for that proposal to require uh stricter uh conditions like a super majority or a much longer voting period. So right so things get harder to pass as a function of a rising risk.

So those are some examples of ideas we're probably going to build in the future. And we're wrapping up. So, just what's next for y'all? Um, if you want to stay in the nouns loop, we have some uh Twitter accounts you can follow. Check out our website, of course.

Um, if you want to create a nouns like DAO, if you think this model is cool, um, nouns builder is a super cool noode tool where you can fork our repo if you're a coder. Um, if you already have a DAO and want to try new tools, go on prop house or look at our side contracts. And if you want to discuss any cool challenge you have, please hit us up on Twitter. And finally, thank you very much, a QR code to the presentation and a QR code to an amazing new nouns explainer video that the Nounish team released yesterday. Um, and thank you so much for your attention.

Come talk to us about anything you love about nouns or dows. So long.

Automatic transcript — names and jargon may be misspelled.