The Smart Contracts Behind DAOs
ETHCC 5 · July 2022 · 12:58
Juliette Chevalier explains the smart contracts underlying DAOs. The speaker uses Aragon's approach to discuss what those contracts do, why they are structured that way and how they work.
Speakers
Topics
From ETHCC 5, hosted by Ethereum France.
Transcript
right so hello everyone i hope you're having a great time in beautiful paris my name is julia chavalier i am not french but today i will speak to you about the smart contracts behind building daos i'm a developer advocate for aragon and we've been doing lots of research to come to some potentially interesting conclusions about where the ecosystem is headed and what are some of the implications about our behaviors on the technical trade-offs that we've been doing for our contracts so first off i think it'll be good to provide a little background about who we are and and why we were born and what we've been up to until now
so originally aragon was born back in 2017 in many ways to provide some clarity as to the confusion that existed regarding what those were and how they could be implemented so we built a very good tool where you could create a dial within five minutes you go into a button create dial you input your parameters you decide what type of organization you want to be building and immediately you'll have a dial deployed and created for you now this was very revolutionary in its time because it allowed you to have all of it together and realistically since then the ecosystem has changed enormously uh within the past year we saw a rise of
dows of 13x we have now almost 5 000 created around 4 million token holders billions of dollars in transactions and value locked in treasuries and market cap and so it's certainly been interesting to see what happens in the ecosystem within the bulls and the bears and certainly being around since that time has provided really insightful research and lessons about what are some consistencies and patterns that we're seeing across the board now i would say that one of the most important and certainly striking lessons that we've had throughout the journey
has been understanding that when it comes to the ground of it all daos are doing a wide variety of actions but on the meta level they're essentially just permission management systems now let's deconstruct potentially a bit more what that means so if we go back to the roots of the definitions of taos and i'm sure there'll be some dal police in the room but realistically daos usually will contain three main pillars and the center of it all of course stands the community so the community are the contributors they are the stakeholders they are the users that are utilizing the projects
and the initiatives that these dows are outputting now of course if the community wants to run initiatives then that means that they need a treasury and they need funds so the second pillar we have the treasury which holds the assets and in order to use the assets we then need a coordination layer which is what we usually understand as the governance mechanisms and the different types in which these communities are making decisions and performing these initiatives now throughout our research a lot of what it's come up is that it's not as crystal clear as simply like three main pillars or a road map that every organization follows to get to be a successful dao
right this is realistically a process it's a process that varies very much from organization to organization a lot of our data shows that builders today are taking anywhere from six months to a year before they get to a point of establishing and creating their own dao this means that some of them may start from a governance perspective other ones start because they already have a treasury that they want to distribute in a specific way and so even the entry points out of which these dials are being created are certainly fluid and distinct to the different organizations that are rising today and so what ends up happening is that we're able to reach certain conclusions
on the first level the ecosystem is highly complex i don't think this is new for anyone but realistically it comes to a spot where we're in such an ancient era of the dao ecosystem and there is so much information to signal ratio and noise that it can be very hard to dissect precisely which tools do you need what are they for and how to use them and so on an initial level builders certainly need more simple understanding of a roadmap of a process on a second level um the tools that were in the frameworks that were built before were in many ways monolithic they were opinionated so they provided templates and apps as to how to build a dow as a
company how to build a dial as an ngo and the reality today is that it's a lot more modular than that there's niche use cases that are arising every day and we need to provide a framework that allows for those innovations to arise even for use cases that we haven't thought about today and because these organizations are evolving throughout time they are also certainly not static they need to be adaptable and they need to be evolving constantly even within an ecosystem and a technology that deploys smart contracts that may be immutable and not overchanging over time and so when it comes really to that definition of what makes a dao a dao
yes we may spot some patterns right they're making collective decisions they're depositing and withdrawing funds they're executing actions but at the meta level of it all they're managing permissions right who is able to perform which action and why why is one contract able to deploy assets why is one person able to withdraw assets and who decides who is able to do all these actions and so what we're building is not this monolithic sort of way of doing things because the ecosystem is ever evolving but rather we're attempting to build the legos right the building blocks that then allow the communities and the in
the people building these organizations to deploy whatever type of dao they want and so realistically it looks like this at the core of our contracts we have the dao contract which is acting in many ways as the treasury it has a withdrawal function it has a deposit function it sets up the metadata of the dao the name the description the logo um all of sort of the core aspects of deploying a dao instance but the heart of the contracts is realistically not as much the dial contract as it is the acl and acl stands for access control list this is the permission management it's
the one that is able to grant roles to different contracts or externally owned addresses it's the one that revokes them it's the one that frees them and who is it granting these permissions to plug-ins and so plug-ins is really when that where the actions are happening the dow contracts themselves are essentially the building block that then gives permissions to plugins out of a wide array of options and we're going to see an example so let's say i am a builder i go in and i want to create a dao i'm with some friends we're doing some funky treasury stuff and so i want to be able to hold assets together and trade them swap them stake them do some some interesting
things now realistically we're a telegram group we are three friends we don't need something too complex so maybe we're not ready for governance yet but we still want to have the functionalities of a treasury and be able to do a variety of actions with it so i get into the app ui the interface and i call the create dao button at that point i create a dial with a name a description a logo i know that i want to be swapping tokens i know that i want to be staking assets and so at that front i called the sdk which is our software development kit which calls into our contracts and creates dao instance with the plugins and the
metadata that i stated when i first created it so what this means is that now i have a dao instance that with two different plugins and the plugins have the execution role and because they have the execution role then they're able to perform certain actions like depositing like swapping like staking now building a plugin should be as easy as this as long as you have the role that you want to be giving to that plugin you can then initialize it and do something with it you can create whatever action you want it and whoever has the role to perform that action is able to execute it
and this is critical because every dow is unique we cannot try to envision the amount uh and the types of organizations that are gonna come around we don't wanna build only for the first one thousand dollars we're building for the next ten thousand dollars in whichever shape or form those come in and so this brings up interesting benefits on one level we're saving gas right you shouldn't be able to you shouldn't be paying things for paying for things that you're not using and that is critical to allowing organizations to evolve on the second level these organizations are adapting through time which means that contracts should have upgradability
but realistically we don't envision many projects doing that because you're better off just revoking permissions from one contract and granting permissions to another so we're really grabbing into that mentality that the only constant within organizations is change on the third level because it's opinionated you're really empowering any feature to come around understanding that organizations are different and unique and in the fourth level because we have sort of that open system in the flexible architecture we're really creating a framework that allows for solving problems that we can't really envision today so ultimately the ecosystem looks like this
we do have the aragon protocol as the base that is created that is the smart contracts that will fuel both the integrations and the app and the interfaces we're building one of the interfaces but nothing stops any of you from building another interface on top of it and ideally we have an ecosystem of integrations and plugins that then allows builders to create their dao as they need at whichever stage of the project they are now classic question what's the status and this uh so certainly we're in alpha level uh our contracts i would say are almost done we're working on some refactoring uh we're moving on to a next step of working on the sgk to allow the
interface to adapt to it uh our interface is also in a in a fluent state uh and so the next step is opening this up to the world you can already see it on github and map up the progress as well as we're building a really strong developer portal which should support developers in building plugins in a super quick time frame so if you want to check out more please sign up for all alpha testing we really want builders to try it out give us their feedback build stuff on top of it tell us what works and what doesn't um and having that set we're also hiring so if this is something that's interesting to you please feel free to apply and help us in building this vision
thank you [Applause] any questions all right thanks guys see your ends [Applause] you