#DappCon22 : Day 2 - The Smart Contracts Behind DAOs, Juliette Chevalier

DappCon 2022 · September 2022 · 16:03

Juliette Chevalier examines the smart contracts underpinning DAOs at DappCon 2022, covering the technical building blocks, from voting mechanisms to treasury management, that make decentralized governance possible on Ethereum. The talk situates these contracts within the broader design space for DAO tooling.

Speakers

Topics

From DappCon 2022, hosted by Dappcon Berlin.

Transcript

GM GM GM uh is this sounding correct all right well hello everyone um today I'll be speaking a bit about how we're thinking of trade-offs and within our architecture as the new protocol that we're building at Aragon so to kick things off potentially let's start with a bit of a background of who we are why we're here and why it matters um so Aragon started back in 2017 originally with the idea of crystallizing the process of setting up a Dao um now if you've been around since then you've probably seen that a lot of things have changed we have now around 5 000 created around 17 billion dollars locked in market cap billions in trading

value around 4 million token holders and so there's certainly been a lot happening in this space since Oregon was first argan's product was first created now I'm just wrapping up instead of showing all of that to say that there's been a lot of insights and patterns that we've noticed across the ecosystem even within all these all these bulls and bears and the strongest realization we've had lately is contextualizing that there there is a lot of gibbery jabberish going around in the ecosystem but in reality Taos are merely permission Management Systems so let's lock that in and think a bit about what that means

um if we look at the definition of dows it can get very complex right there's a lot of different organizations doing a lot of different things but ultimately if we look at the stronger pillars that all dials have we run into these three main labels so an initial level of course the community the people organizations are groups of people trying to perform certain actions building a better future and if that's true then we need money and so in an initial and a second pillar we have the treasury and because we have funds that means that we need to manage them Ergo we have a coordination collaboration governance mechanism supporting the management of these assets

now what we've seen across uh the across our experience is that even though these three pillars exist they're working a different part of a spectrum on each organization right there's no single black or white uh best practice road map to set up but down everyone comes at it from a different strategy from a different angle point and as we were doing a lot of our use of research we realized that it was taking Dao Builders anywhere from six months to a year just wrapping their heads around what it means to build a dial with an ecosystem that has so many complexities and so we came up for this three main

um North Star pillars that we're focusing on on an initial level the ecosystem is currently too complex there is too much information out there it's hard to know what information is relevant for me and so it is increasingly important that if we are to increase the amount of dows uh in the world then we have to simplify a lot of the product offering and a lot of the the education around it on a second level uh existing Frameworks were too monolithic ourselves included we were building a framework that was opinionated trying to bring Clarity into an otherwise very abstract concept but the reality today is the Dows are growing an entirely new use cases Niche spaces and we need to be building a

protocol that is modular that is flexible and that is open to all these new possibilities that we can't even imagine today and on the third level because they're going to say agents or groups of people they evolve they change and this is something that uh is hard to conceive in a world where we're building immutable smart contracts that will not change in the future and yet at the same time when we are the people layer when need these organizations to be adaptable and so if we look at the types of actions that every organization is performing yes they're making Collective actions yes they're depositing and withdrawing funds but ultimately they're giving X addresses X permissions to

execute X actions and so all the doubts are is managing permissions and so we're not building this like big you know Mansion or big setup uh that already comes in with freehanded ideas but rather looking at those little Legos the pieces that fit together and can support any type of organization that comes around so let's get to the meat of it so we're looking right now at the basic structure of the architecture of our protocol at an initial level we have the dial contract this is the entry point and you can imagine this contract as being more of like a treasury it's a contract that contains the functions of withdrawing of deposit of executing actions but at the heart of it is the

ACL ACL stands for Access Control lists it is the main contract that allows the creation and distribution of these permissions so that then all of the plugins can perform whatever actions they want to perform so the protocol itself is very lean in the sense that it's merely the the Dow contract and the permission management system and every other functionality that you're able to do with the dial is build through plugins so it took an example hi I'm Jules I have some friends we're gonna set up an investment now right now we just have an alpha telegram chat and we want to turn that into an a vault in

which we can share assets swap tokens stakes and fun stuff right so an initial level I go into the app I click on the create dial button that call on the back that's calling the rsdk or SDK is then initializing a dial instance and this dial instance will have two plugins so on one level the uni swap plugin which allows me to swap tokens in another level the little uh plugin that allows me to stigma our eth now at this stage like I said well telegram chat we vote in polls we don't need something more sophisticated as we're just starting out but then our telegram chat Grows Where we have thousands and hundreds of people

in it everyone wants to be involved in a money making machine and so ultimately our our needs start to differ they start to evolve and now we need a governance mechanism to make sure that we can arrange all of that and we simply add in a new plugin potentially we were using another plugin that we no longer liked maybe we had nfts and we want to switch that to erc20s then we just revoke the permissions of the erc20 token and Grant permissions to the erc21 plugin and so what we're seeing is that even though these contracts are still immutable and unchangeable throughout time because we're managing permissions then we're able to keep the organization adaptable and flexible over time

now building a plugin should be as easy as this uh we're simply creating an action plugin that can or may not inherit from our base plugin you decide and then from then on that plugin will have a permission and of course an initializing a function a Constructor and then from there it has a function to do something based on the permission that that function has and this in the account that's signing that transaction so if we look a bit deeper into what the architecture looks um it's something like this so when we're speaking about me in the app interface I'd be in this corner calling or SDK to initialize a Dao my Dow Factory will create a dial

instance that doubt instance is saved in our dial registry mayor managa and ens subdomain and from then on it becomes a plug-in game so I go in I hover my plugins as developers we're building the plugins the plug-in contract will contain the plug-in logic it may be supported by simple helper contracts around and once the logic is completed that each plugin will have a plug-in manager the role of the plug-in manager is dealing with the versioning and supporting the deployment of that plugin into the plugin registry the plugin registry holds all the plugins that exist within the ecosystem so that then

the Dows using the plug-in installer can install the Dows onto their specific plugin now what are the benefits of this number one gas so because we're only using whatever we need on each transaction on our dials then we're saving on gas through batch calls we can do on or off-chain transactions we can do metadata sorry meta transactions and so we're not paying for functionality that we're not using on the second level uh we're we know that the only constant within the ecosystem is change and we're optimizing for that so we're allowing the revoking and granting and freezing of permissions to make sure that organizations can

evolve we're allowing our contracts to be upgradable um but in reality it should be more of a role management and permission management than it is in upgrading of the contracts on the third level it is unopinulated so we're taken into account that we don't know the use cases of the future for dolls and we're building a framework that should be so lean that should allow for any crazy idea to surface and then of course at a fourth level this should be flexible and open so that everyone can build on top of it and do whatever they want with this uh public good so what I'm trying to get at is that ultimately each organization is unique and if we're really supporting that new

reality then we need to make sure that within these three pillars that I mentioned earlier developers can do whatever they need for so for supporting those requirements and so the way we're envisioning this as a gross is that it should be a hyperstructure ecosystem so we have in one end the protocol extremely lean extremely small and then from there we have the plugins which feed and and add and add themselves onto the Aragon protocol now Engineers will speak to these contracts through our software development kit and end users will get to it through the Aragon app and so we're building one interface for this protocol but nothing is stopping any of

you from building another interface tapping into your own vertical uh use case that you want to be tapping into and the idea is that the Aragon app in many ways serves as this home base So currently we're looking at a dial ecosystem that is extremely fragmented there's a bunch of different tools out there if you're not technical or you're just starting out getting to understand the interfaces of all these different products can be very intimidating and the idea is that the Aragon app serves as your visual dashboard where all of these organizations combine and you can manage them all within the same space so when is this done and out um so contracts are done yay uh we're

currently going through the first initial phase of the audit there will be two more um and then on Parallel of course the app and interface is being developed uh we presume that by the end of uh first quarter of next year all of this should be out Meanwhile we're testing stuff out um we're very open and wanting to receive feedback so if you want to check out our GitHub repo and look at some stuff uh please scan the QR code I'm more than happy to get more builder feedback and of course listen to your needs to make sure that uh this works well with all of the crazy ideas that you may be building um and ultimately looking forward to

building it with you thank you [Applause] thank you Juliet uh we have time for some questions foreign yes is there a rage quit functionality in

Aragon that's a great plugin um so not embedded but that's kind of the idea right the idea is that if there's a functionality that anyone wants it can easily be added as a plug-in and everyone can make use of it what is Rage Quit for those of you don't know um it's a functionality added by the molok contracts which allows Dow members to rage quit from their organization and then get a bit of the assets that they had put into first uh join the organization what has been the biggest learning you got over the years in terms of how users interact and operate uh the platform

the Aragon platform yes yes so there's a few um number one the and there's a few different kicks there because I think and a big lesson there is that we're looking always at kind of two framed two layers so on one layer we have the protocol layer and another layer we have the the app right and I think uh that's a key distinction because the protocol layer should remain entirely unopinionated lean flexible open to whatever crazy ideas the world may have whereas an interface layer certainly there is we're talking then to end users and so the game and the strategy there is different so that's one I think diving deeper into that it means that uh where we got from client was

that even though we had all these functionalities and all these possibilities uh to be built on the protocol it wasn't until we provided the front and wording and features around it the people actually started using using some of this so to put an example um we had a lot of like Finance Ops voting apps these different apps already embedded but it wasn't until we put it like a model that asked like what type of organization are you building it was like company NGO political party uh that people actually understood kind of like how to bundle them together and use them and I think the key insight there again looking at those two layers and how and how they play differently is a key

aspect of the learning experience and then in a third level um it's that a lot of the flywheel that we got from Integrations and client we got the moment that we launched the SDK connect and so what that means for me is that developers don't want to build so much solidity code they'd rather write JavaScript and how can we make sure that we're building an ecosystem with uh enough packaging and software development kits to make it like easy to just build and Firewheel a lot faster you're welcome all right I think if there's no more

questions yeah we'll wrap it up there thank you Juliet [Applause]