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

Loading player…

BitDAO 🛠 Dao Tooling: Proposal Performance Bonds

ETHGlobalSun, Oct 9, 2022, 12:00 AM

Join afkbyte of BitDAO for a workshop titled, "Dao Tooling: Proposal Performance Bonds." This workshop is part of ETHNewYork 2022, a three-day in person hackathon that will feature hackers, mentors, enthusiasts, sponsors and speakers who are all gathering in New York June 24-26, 2022 to talk about the future of money, finance, the web, ownership, the way software works and the way power is distributed. We're excited about a new frontier. ---------------------------------------------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com

Transcript

[Applause] [Music] hi everyone um so before we get started uh sorry about that delay earlier i'm not sure why my computer wasn't playing nice with everything but we're ready to get started and hopefully we don't run over time so what i'm going to be doing during this little uh workshop is a high level high level overview of the bitdow performance bonds uh which is like a sort of subset of dow tooling that we came up with in order to sort of improve the proposal process to reduce counterparty risk for daos so yeah let's talk now to like how familiar are people in here with daus who's heard of a dao interacted with one so adao was a decentralized autonomous organization there's like many levels of it it could be a bunch of people in our group chat who's just decided that they want to share like control of a multi-sig to like multi-thousand user organizations that have token stake vote voting um where they make decisions over like treasuries that are worth hundreds or even billions of dollars um before we get started over here if you guys want to pull out your laptops and just open up this repo um we're gonna be doing a little code walkthrough of what we've got over there um later on um but yeah uh before we get started if there's anyone not familiar with the dao is anyone have any additional questions on what exactly a dow is yeah basically it's like a co-op we've brought it on chains it's like fully transparent like who's voted for what and so on and so forth and why things have or have not passed um i'm going to leave this up for like 30 more seconds and that should be good so okay if you guys are already familiar with dallas you're probably familiar with what the voting process sort of looks like for the majority of dows these days so typically you'll have like an initial proposal thing on a forum like discourse right um and then they'll use some sort of combination of the gnosis safe um like safe snap plug-in um and snapshot in order to sort of push proposals in in order to move funds on chain um interact with contracts on chain with the uh dow multisig um are any of you unfamiliar with any of these platforms so um like our existing process is sort of like people can go and propose something on our discourse forum write up a proposal being like oh hey i want x bit in return for these deliverables right um if it receives enough interest on it we then take it to a vote on our snapshot forum if that makes sense and if it passes the vote on our snapshot forum what ends up happening is we then allow execution via our orgnosis safe uh and to uh transfer funds over um so basically what's the problem with this process um so we basically at bit da we wanna fund projects and associated entities to grow sort of the bit ecosystem but you sort of face counterparty risk when doing so right so let's say that um someone puts a proposal in and they're like you know i'm going to build a house i want 10 000 bit or something like that it's going to be like a charity or something like that um there once you release the funds to them there is no way to sort of guarantee um these funds um they can they can rock pull you fairly easily right they can just simply be like oh screw you i'm not gonna build this i'm just gonna take the funds and run and we've seen cases of this before through malicious proposals on other dows yeah the solution that we sort of came up to this was performance bonds so basically we're trying to implement a performance bond process wherein folks are required to stake some sort of collateral um into our proposal process um so and it to this sort of helps solve this problem by providing an economic guarantee for the dao itself we're locking this collateral into an intermediary contract that can be slashed so certain goals are not met so we're going to come up with a cute example here we have blimp dao let's say there's only like seven blimps in the world so this is kind of a high risk venture let's see this dow comes to us and they're like you know we want to buy one of those seven blimps um and we want a 100k bit to buy one of these blimps um with the performance mod in place what we'd effectively do the bitdown member community members can request that the blimp dow community members post about 100 ethan collateral before releasing the funds if the proposal passes and then there's two possible outcomes to this either blimp down would buy a blimp and the 100 ethan collateral is returned or blimp dow fails to buy the blimp and a hundred eath is about recouped by the dao itself and sort of yeah do you have a question so for blimp dow because their initial condition for success was you know wanting to buy a blimp um there are only two states for this either you successfully have bought a blimp or you have not successfully bought a blimp obviously there can be like multiple tiers to this yeah oh so collateral can be staked so uh the contracts that i'm gonna be walking through later they're effectively like middleman contracts so you're able to post collateral into um that are that can be um slashed uh by um like guarantors or individuals from the dow um if certain criteria are not met but we're going to be walking through the contract for that shortly yeah um yeah so like why would we choose performance mods in this particular context basically it's because it increases community engagement proposals it's forcing like the other entities community to participate within it because obviously who else is going to be posting collateral for this right it sort of formalizes on versus off-chain interactions um it imposes basically consequences like i mentioned before on rug-pull-like behavior and it's a good vehicle for dow co-investments basically so let's say that um one dow wants to invest in another dow who's building some sort of tooling the other dow can fund the performance bond completely from their own treasury uh to sort of formalize the agreement um together right so i'm gonna be doing like a really quick code walkthrough as well of the contracts themselves um if you were able to pull that up yeah so this is the um like when ranger treasury things this is where we keep most of our dow tooling and treasury related tooling um code and so on and so forth um so i'm gonna be walking you guys through uh a pretty simple uh like single collateral uh multi-reward bond right so this is a bond where you can stake in some sort of erc 20 collateral and then receive some arbitrary set of erc20 tokens or something as rewards or redeem from that particular bond itself um so everything is fairly permissioned by sort of like other members of right now itself you can see that we have like obviously a deposit function over here uh where uh people are able to stake sort of a claim within this now um within this reward mod itself there is a sort of particular lock-up period um that they have to deposit their funds to this uh bond uh during or else they won't be able to like like meet the rewards yeah um which is all sort of set um during the initialization um so we passed in like sort of um metadata like describing the bond that sort on chain we were passing in settings uh to sort of govern like the parameters of the dow uh obviously like on the initialization oh is it hard to read i'm really sorry is this better yeah um and we're basically able to like emit this right um that's just like the basic deposit contract um we also have a like a time lock multi-reward one so this is um what we no pictures please thank you it's not great sorry um we also uh have a um like a reward contract that people will be able to have their words deposited into and uh redeemed afterwards if um the bond actually does succeed in this particular context um that maps and is tied to a particular bond deposit contract right um so basically it's pretty simple so we have like a mapping of the claimant itself so the person who deposited the guarantor who deposited funds into the original bond contract to their reward pool debt ratio which is just an integer representing like the amount or like the ratio of the tokens that they had within the initial pool um and we have a like individual reward pools so um the tokens that they will be eligible to like with sort of withdraw from and a redemption timestamp over here which is like the point at which we know that like some if it if the bond has not been slashed they should be able to redeem sort of all other collateral um so yeah basically um sort of once uh funds are available so when the redemption time stamp sort of is set and it has passed you're sort of able to iterate over and collect any of the arbitrary erc20 token rewards or like initial um stick that you've deposited uh within these uh and the time lock has sort of expired um and so on and so forth it's like a pretty simple like single pool style solution for these things um it's pretty similar and to um i would even call it like staking reward management uh it's just allowing for like a one-to-many sort of redemption pool that we have over here um [Music] yeah so you can see how we sort of calculate the reward debt over here as well after like the redemption the corresponding lockup period um so you can have your claimant um like the the dead tokens that they were issued upon them staking within our bond um the total supply of it it's just basically a very simple like they're owned like a portion of the rewards pool depending on um depending on how much they deposited originally and yeah it's pretty standard um over here um yeah something that we do find uh i do find a bit more interesting within this is like the permissioning system that we have in place so if we step out a little bit we also have pretty cool like roll access control like on a dow level for who's able to sort of control each of these pools and so on and so forth because we're basically being deploying these pools on sort of like a per dao basis um so i'm actually going to go into a con one of the contracts where we store all of these roles um which is in the roles contract over here um so we have like the dow admin and the dow creators who are able to be deploying these bonds and manage the admin functions such as um setting time stamps and so on and so forth um within them we have dao meeple which is like typical dow users who are then able to like interact and maybe like stake and claim guarantors we have the super user which obviously has sort of all permissions within it and then we have a system admin who is sort of able to set pause and unpause contracts and sort of in case of emergency i can sort of show you guys how that ties into our um bond contracts over here if we take a look at uh the uh not the bond creator contract it is in the yeah sort of like bond factory and bond mediator contracts um so effectively um we're not these all inherit from the um the role access control um document over here and what ends up happening is that you're unable to create bonds for particular dows unless you are um unless you have the role for a particular dial so we have a cool encoding system where you might have like a unique dow id uh linked to um like a particular address and um roles for those particular addresses unique to that particular dao um and because um we have multiple we might have multiple entities or multiple other dows and sort of counterparties um to like our on-chain um to our like on chain like investments and so on and so forth we want to make sure that only those counterparties sort of have access to creating these um bond uh and like staking sort of contracts right um so we basically have independent factories uh for each of these individual things um and only um the admin folks from each of these dows are able to deploy both like the rewards and fund the rewards and like create individual bonds uh sort of for each of them um yeah i guess that's sort of a high level overview of um what the bond sort of does and what it is and i'm curious if people sort of have questions uh about a little bit like a few more questions about um what exactly use cases or like the implementation details themselves okay um yeah so i mean uh we also have like interfaces for like what a typical single collateral bond would look like where you're just depositing like some arbitrary erc20 as collateral um again the the functions are fairly uh standard when it comes to things like this um you're able to deposit a certain amount of collateral redeem a certain amount of collateral um an interesting parameter of um ethereum is that there's no um like floating point math right so um when you are like redeeming your collateral like based on the ratio of using positive there'll always be like trace amounts of dust tokens left within it so we also have like a sweep erc20 thing to remove all the remaining tokens into it and back into the original dow treasury so that we're not leaving dust tokens on contracts all over the chain um yeah i guess i can also talk about sort of the slashing mechanism over here so um like remember what i mentioned in the blimp down example if they don't meet their particular um like goal like being able to buy a blimp versus not being able to buy a blimp um we have like an implementation of a slash function where you're able to enact a penalty for the individuals who stake their funds within that bond contract um which is which just allows uh for a super user or a dow admin um to basically call out the amount that they're slashing from it and having to put in like a string for the reason and do it on chain if that makes sense and this would just sweep the amount of tokens or like the collateral from that particular bond back into the um the dow who's put up put up the collateral's treasury if that makes sense um yeah i i guess do people have any other questions about um like how this improves the proposal proposal um flow or i guess sort of other tooling uh within the our ecosystem a high risk of regulation for this system the bond sort of payment system um so i like to sort of think of them as like a formalization of a contract on chain so uh basically this is just sort of a method of posting up some sort of like collateral um this often happens like off chain right where you might be trusting some sort of middleman otherwise it's just that this is sort of happening in a much more um like transparent and regulated sort of way uh i think maybe in the states uh the dao bond tokens or like the debt tokens that you receive as a part of the bond because it can be redeemed for things that might cause some issues uh but i think that in more dow friendly jurisdictions um that it shouldn't be too much of an issue um but like we all know that um the states is not particularly friendly uh for tokens or anything uh regarding um like daos or what might potentially be securities um yep yeah so this is usually what like the majority of dow proposal processes sort of look like um like like i mentioned before um many of them use discourse which is a sort of like a forum plug-in if you're like familiar with like bb forums this course is just sort of like an alternate uh newer version of that people are able to sort of post up like ideas or things that they want funding for proposals they have to have like big formal write-ups often times people aren't looking at it too closely i know some folks are probably familiar with the unswap proposal i just sort of proposed that they paid schools like a bunch of money for very ill-defined um returns um yeah so um yeah so usually the initial things that are put to vote on on a snapshot have to reach consensus or like interest on like the discourse forum first yeah so it's not uh so it's a website and if you're interested in proposing something in the bitdow discourse you can just go to our website and we have a link to our discourse like in the top bar yeah um yeah but i i think that this might not be like the best solution for the problem at hand right because you're effectively shorting whatever token that you've put into the bond uh enrichment return for like the rewards token uh but uh it starts it's a step towards sort of improving what is sort of a very uninvolved uh proposal process right um an issue that we've seen facing us um the majority of the time is that proposals are sort of pushed through by insiders i don't know if you guys are familiar with like the soul end drama that's going on right now where initially the vote was like 94 you know we don't want to um do uh take this liquidation and do it otc right um and then you know some folks stepped in with a lot of insider tokens and one guy voted and it suddenly got pushed to oh hey we're actually going to be liquidating at otc um we think that putting up things like this sort of incentivizes the community to come together and vote more and it puts hasn't put more stake in the game and it allows them to be on a more equal footing as folks are sort of able to um like post like n collateral um like sort of all by themselves um we're sort of also looking for more tooling um along those lines that sort of makes the proposal process more engaging and more accessible to community members sort of overall um we actually do have a prize available sort of today um i'm going to pull it up in our medium oh my god where we're looking for like more ideas for how we can improve our proposal process um from uh what we have today so we're offering about like ten thousand dollars in prizes uh we have sort of two tracks with this we have dow treasury deployment um so basically we found that large dowel treasuries have to be managed like really conservatively to avoid like principal loss through like systemic failure for example you put like all your money into some yield farm and that yield farm gets hacked right um or like oracle ms fires or like other mechanical exploits right and we're basically looking for solutions or like which can be tool tooling visualization dashboards operating structures and so on and so forth that would help allow douse to help deploy their treasuries at size for a yield um for example like something like that you could build could be like a gnosis safe module that allows sort of like whitelisting and passive deployment of treasury assets to like blue chip yield farms or like collateralized or margin loans that you could people could take out from the dow treasury for some sort of interest uh track two which sort of fits more into line um with the little um presentation that we have today is the trying to improve the dow proposal process um sort of like i mentioned before again the majority of proposals are created like in the in private right and the initial version that's been proposed on the forum itself has already been like reviewed by core stakeholders and insiders and generally like we already know it's gonna be pushed through the moment it's been posted on the forum um yeah it's it's not great um this process can take like many many months and it's usually unpaid and so people aren't really incentivized to do this unless they already have like a large stake within the dow itself leading to sort of like insider conclusion on these job proposals um we want to be able to find a way to like leverage a wider range of community contributions for ideas and development without them having to go through this process and that's just not something that's happening with like the current dow status quo and we're just looking for solutions to try to incentivize the construction of dow proposals in like a public way right um whether it be through like community participation and like bonds whether it be through community participation and like open ideation on um what exactly the proposal contents are and without members being able to signal that they're opposed to certain parts of it in a very explicit and formalized way um yeah so it's definitely beneficial um this could be definitely beneficial to the ideation process in terms of like dow rebrandings in terms of like protocol functionality upgrades particle parameter changes and like sort of any other aspects that many dows have their users sort of vote on on chain on a day-to-day basis um yeah so if you're interested or you have any ideas for what you could sort of build for either of these tracks i'm happy to like meet you at the bitdown booth and chat a little bit more um and yeah thank you i guess for coming to the talk today it's 5 30 exactly

Automatic transcript — names and jargon may be misspelled.