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

Loading player…

EthCC 2: Niran Babalola

Ethereum ParisWed, Oct 9, 2019, 12:00 AM

Speaker

Niran Babalola

EthCC 2 EthCC, the Ethereum Community Conference is created by the community, for the community. It brings together great minds and forethinkers, and allows the community to grow. Follow us : @AssethFR https://ethcc.io

Transcript

all right hi everybody thanks for coming my name is Niren babble Ola I work at consensus on the consensus diligence team we do a lot of work trying to make sure that smart contracts do what people say they're supposed to do in particular I work on a product called pen valla and what we're trying to do with pen valla is build a sustainable flow of funding for work that makes the etherium vision actually possible so we've built slate governance as a tool to govern pen bala in particular we think it's a generally useful design for governing decentralized systems that can be used in other places so we're gonna describe how it works in pen bala and how it can be generalized from there so first I'm gonna go through a couple of existing problems that people face when they're trying to design decentralized systems I dive into some blockchain governance systems that are live on channel ready talk about how slate governance works at a high level and then dive into how it works in pan Bala in particular so when people are trying to design these decentralized systems the first thing that they typically run into is 51% of text whether we're talking about proof of work where it's hash power or token voting where it's economic power if you get 51% of the economic power and a network you can more or less do whatever you want but if you look at the real world where you're operating in a corporation and 51% of the shareholders try to take a hundred percent of the assets the somebody's gonna go to jail that's against the law it's against the law for the board of directors of a company to not respect the fiducia to not follow through with their fiduciary duty to 100 percent of the shareholders they can't just care about 51% they have to care about everybody so there's a little centralized legal backstop that makes cooperation and a corporation possible we don't have that on the blockchain where code is Allah and is still love but doesn't help you as much so people have to design ways around this 51% problem before they can even get started a decision overload is another problem that people run into where if they're trying to spread decision-making power throughout the network you want individuals to be able to have input into the decisions that are made if there's lots of decisions to be made you might overload the people who are supposed to be running the system you might end up with a low voter turnout because you have so many things to vote on and people don't actually want to vote on them all the time especially if there are spammy proposals you want some way to limit how many decisions get through to the voters structuralist miss is a problem that these decentralized systems run into where it becomes unclear how decisions you're actually made in decentralized systems and a lot of these systems there's no clear process for a decision making so if you've been involved in the system for a long time you you've learned through experience how decisions actually get made if you have a new proposal for what the system should do you know who needs to be talked to to get over that 51 percent voting hurdle to get the proposal enacted but if you're a small token holder or somebody new to the system it's very opaque you don't know how to get your good proposal through the system and actually implement it on chain so building systems that have more structure to them makes it easier to actually distribute power in these systems because a lot of decentralized systems still have concentrated power because the decision making process is hidden deadlocks are a problem that these systems run into when you're beyond binary decisions to be made in the real world there's many options for which course of action that you can take and you can end up in a situation where there's no majority for any of the options that lie in front of you if you take a brexit for example they're in a deadlock right now there's three options on the table but there's no majority to stay in the European Union there's no majority to take the deal that's actually on the table and there's no majority to leave without a deal they're just stuck and nobody really knows what's gonna happen and that's like not that far away now dead locks are a problem that we have to design our way around if we want to be able to sustain cooperation or else you get too stuck disunity is a problem that arises when it's very easy to leave a system that you've built if you don't get your way and it's very easy to leave then your community splinters over time and doesn't have the ability to sustain their cooperation but on the other end if it's very difficult to leave why would you enter the system in the first place these systems have to strike a balance between making it easy enough to enter and easy enough to leave to be able to sustain cooperation and these different systems strike a different balance on this unity and the last problem that we're concerned with forcely governance is cartel resistance so there's not enough time to go in-depth into the cartel resistance problem but if in in general if you're trying to if you're trying to govern assets and a decentralized system and you have proposals that you're voting on if you're the person making the proposal the best way to get your proposals through the system is to pay the voters money I forgot that inflation of a blockchain and you want your proposals to go through give some of that inflation back to the voters but if that wasn't your intended goal if you were trying to fund actual work but the funds are going to bribes to the token holders you didn't actually achieve your goal you just introduced friction in her system without achieving the goal that she wanted so we have to address these problems when we're designing decentralized systems so there's several systems that already live that work in a more or less decentralized fashion the first one is the Dow it was life the code still exists on chain I guess but back in mid-2016 aetherium had been live for less than a year and people were really excited about the potential to create new kinds of organizations organizations without officers or organizations without CEOs just organizations run by people at the edges so the first design decision dalla ended up making was that proposals would be submitted to a set of curators so that solves two problems if if curators have to approve your proposal and you propose a 51% attack the curators can just say that's clearly a malicious proposal we're not even going to present that to the voters who are just going to exclude it and it also solves the decision overload problem if people are submitting spammy proposals the curators can just decide that they're going to respect the voters attention by excluding them by not allowing those proposals to be presented to the voters another design decision that they made was that if you're on the losing side of a vote in the down you can decide to split your assets from the DAO and create a new dao with everybody else who disagreed so instead of being forced to go along with whatever the majority once if there is a decision that's made and you don't like it you can take your ball and go home and that makes it very easy to decide to participate in the DAO a lot of people decided to participate because it was easy to exit the only problem was that it had a bug that kind of prevented all that stuff from working but it would have been interesting to see how it played out after the dow had its problem the Aragon team really picked the ball when I picked up the ball when it comes to this dream of new kinds of organizations and what they built was a toolset a framework for building these centralized organizations you can basically start with all the basic pieces that they put together and when if you're trying if you have an idea about how to innovate with decentralized governance you plug in your particular solution but still rely on all the other things that you didn't have to build yourself so the most important Aragon organization today is really the Dow that runs the Aragon governance process so the Aragon governance process is the way that they make decisions in the Aragon community about how to use the nonprofit's funds and about general decisions in the community as a whole so what they did with the AGP down is they decided that using the access control list that's a built into Aragon instead of delegating the permission to create proposals to any token holder instead the only people that can create proposals and the AGP Dow are the AGP editors basically they appointed two people to be the editors who can present proposals to the token holders so again that solves the 51% attack problem if there's a proposal that's clearly malicious the AGP editors don't include it and if there are proposals that are spamming again the AGP editors don't include it so that's not the one aragón solution to these governance problems there's it's again it's a general toolkit for building decentralized organizations so if there's an idea that you have about how to solve these problems building on top of Aragon is really the right way to go the moloch Dao is a brand new Dao that launched last month on the maintenance to basically be a grant making down and they were the the goals to build the simplest thing that could possibly work so instead of having arbitrary kinds of proposals being able to send arbitrary transactions all the Mollick Dow does is issue voting rights and let's you will to draw ether from the Dao that's it I can't participate in arbitrary systems you're just deciding who gets to vote and who and you're deciding when to withdraw so existing members can propose that someone contributing ether to Moloch Dao can have a proportional amount of voting rights and they can also decide that if someone's putting in work that they can get voting rights proportional to the work that they're putting in so when there's a proposal like that you have to put down a ten either deposit key to make a proposal and that's aimed to present aim to prevent problems with spam if you're just making lots of proposals that nobody cares about and they're all getting voted down you're going to degrade the ability for the community community to operate the system on the other decision that they made is similar to the original Dao people on the no side of a vote cannolis will to draw what they put in there there's a waiting period of I believe seven days before any proposal takes effect so if you don't like what's happened you can leave and again that makes it very easy to decide to join the Moloch town and if you're interested in these kinds of systems I recommend joining and playing around with what's going on there lastly Maker Dow is the Dow that runs the dice table coin it's probably the most interesting Dow that currently exists mainly because it's producing something that people want and something that people use so they have a couple of different kinds of proposals in their Dow but the one that I'm most interested in is the executive proposals and those are the ones that actually execute on chain so when they want to change the parameters of a system they use something that they call continuous approval voting and the way that that works is it works on a quarterly basis based on the proposals that exist during that time if there are seven different proposals and you're a token holder in that system you like three of the proposals but four of them are clearly bad so you can vote for all three of the proposals that you like and at the end of the quarter the single proposal with the most votes is the one that will actually be executed none of the other seven will be executed so that is kind of a gating mechanism that forces people to come to agreement on one thing to do during a time period and I think that's a very useful mechanism and it's a mechanism that we include in Slate governance so the part of the hypothesis behind why we built slay governance the way that it currently is is that our community is really interpreted decentralization as a mandate for disorder and chaos there's there's nothing wrong with decentralization but decentralization doesn't necessarily mean that you have to have no clear processes for how to do things it doesn't just have to be chaos what decentralization means to me is that instead of having a top-down order you have an emergent order you still have order it just didn't come from somebody saying this is the way things should be came from people deciding that it's the way they wanted to be so if we can build decentralized systems that still produce an emergent order we can probably get a lot more done today together then we're getting done right now so at a very high level the way state governance works is that first only one slate of proposals can execute each quarter so basically a slate contains as many proposals as you want for decisions to make transactions to execute whatever you want to do on chain you can put as many of those things on a slate and people can compete with you by creating new slates they can say this is what I think the consensus of the community actually is and the but only one of those slates can execute each quarter the rest of them are gonna lose secondly if there's only one slate proposed in a quarter that that slates just gonna execute you don't need a vote I was the only slate that was proposed people didn't propose something else because they disagreed with it so we're just gonna execute it thirdly the identity of the recommender of each slate it is emphasized in our voting it's not just about comparing the technical merits of what's being proposed the identity of the people who recommended that slate of proposals is really important and slate governance and last anytime you're recommending a slate of proposals to execute in this system you have to stake tokens on your slate and if you lose if somebody outcompetes you with another recommendation you're gonna lose the tokens that you staked on that slate so some of the desired outcomes that we seek from this system is that instead of building consensus on chain you build it off chain and a lot of decentralized systems today the real debate about what to do really starts when those proposals hit the chain but in Slate governance you build your consensus off chain and then you're just trying to record that consensus on chain the ideas that you've already built so much of a consensus that your slate has a no competition because everybody else agrees that that's what we're going to do and if there is competition that's when that's the result of disagreement about what the consensus was rather than the normal case so votes only happen when the community is divided or when somebody is trying to attack the system so a good analogy for the way that the system works is if you're familiar with plasma most of the themes that happen on a plasma chain involve no transactions on the maintenance you can do everything you want on the plasma chain and then when something goes wrong that's when tons of transactions start getting sent that's when people start to exit the system because something went wrong similarly in Slate governance and the normal case one transaction gets sent they recommend a slate of proposals and nobody competes with it so it just goes through but if something went wrong if what was proposed isn't actually the consensus of the community that's when lots of transactions get sent that's when more slates get proposed that's when hundreds or thousands of transactions get sent to vote in the system but then in the normal case consensus is built off chain and we just recorded on chain so we rely heavily on incumbency in Slate governance so the incumbent is whichever recommender recommended the last successful slate for the last quarter so and the app if you propose a slate again the next quarter after you won the last quarter we're gonna make sure that the community knows that you're the incumbent and the reason that's important in Slate governance is because we want a different status quo than what's typical in decentralized systems and most decentralized systems the status quo is stasis basically nothing happens by default if if there's just disagreement or if if nobody takes any action to make something happen the default thing is that you get stasis you get Bitcoin where it's hard to make a change to a system or you get what's happening to even more systems where it seems harder and harder to make a change every time but in Slate governance we want the status quo to be progress we want the status quo to be continued progress on the same trajectory that the community has been on because they've already reached consensus about how they make decisions and if they won if when you when you're fine with the status quo what you do isn't do nothing you when you're fine with the status quo as a voter you vote for the incumbent so you continue making progress and that's the default that doesn't mean you're gonna always support the incumbent maybe either it's time to change the way we make decisions as a community but instead of stasis being the default progress is secondly we use a top two runoff to encourage more of the consensus to be built off chain think of an example where there are seven different slates competing to be the one slate to rule them all in a single quarter you could end up in a situation where the winning slate has 30% of the votes and it doesn't truly represent the consensus of the community it just as an accident of the state of competition where people split their votes among too many slates so one of the one of those slates one with just 30% we don't want that kind of outcome so one way to avoid it is to use something like Instant Runoff voting where you rank all of your choices and the algorithm just eliminates the candidate with the least votes every cycle but again that leads you to a situation where it's the norm to form the consensus on chain where people don't really know what the outcome is going to be until we all cast our votes we all total up all the tallies as the algorithm runs that ends up being the norm for how you make decisions if you choose Instant Runoff voting so instead what we do is a top two runoff so you rank your first choice late and your second choice sleep and we total up all of the first choice votes for all the slates and we eliminate all of the candidates except the top two if one of the slates got more than 50% of the votes that's the winner and we don't even have to do the runoff but if none of them got more than 50% we count up all the votes from ballots that had their first choice eliminated and we add the second choice votes to the people to the remaining candidates slates and the one with the most votes is the that one's so by doing that it makes it a lot harder to compete on chain so you don't end up if you're a rational competitor you don't end up with seven slates competing to be the slate that gets produced in a particular quarter because you're probably going to lose but instead you end up with two or three viable candidates slates and you're deciding which one of those you support you're building up the consensus off chain and then trying to record it on chain which is the goal of our system so a top two runoff is not a cure-all it doesn't solve all the problems and make it easy to cooperate for people who live here in France it's very clear that a top two or enough does not solve all the problems that's how the presidential system works here and in the last presidential election there were three candidates there is one on the left one on the right and one more or less somewhere in the middle and the top two runoff kind of did its job it steered voters towards the middle ground option but that hasn't produced a happy consensus people who are happy with the way things are going there's still protests in the street every weekend because people are unhappy with the way things are going so it doesn't solve all the problems the ideas that it just pushes more of the consensus to be off chain rather than making it happen on June so we've gone through I'm gonna skip the slide because I'm running out of time so we think that a way to avoid a lot of these governance problems is to decide what you're governing so instead of governing our assets in a smart contract we govern our loyalty the our commitment to one another to continue to cooperate when you're governing assets in a smart contract it's very easy to get into situations where you have these 51% attacks you have these dead locks where it's hard to decide to keep cooperating together but if you governing loyalty it's easier to stick together so in Panvel in particular what we do is we use tokens to organize people who want to make a theory I'm safer so there's a vision that we've been telling people about how can be the hub for a new decentralized internet a new decentralized financial system and we use tokens to organize those people to get that work to be done sustainably so we have a problem in our community where the funding for work that benefits everybody is unsustainable people who are doing this work are funded by teams who raised funds and kind of a one-shot deal they sold tokens and they're not gonna sell tokens again so they're spending funds on to give people grants or to work on their own systems that end up benefiting all of us but when they run out of money that's gonna stop and the second problem is that it's often more lucrative to compete with aetherium rather than to cooperate it's a lot easier to get funding for work that you're trying to do if you create a brand new incentive system that competes with ether rather than cooperating and staying together we can get a lot more done together if we didn't find ways to keep people together rather than splintering apart so what Penn valla does is it wraps the existing ecosystem of grant funders corporate open source projects and volunteers with the token that gives them all a sustainable incentive to find funding together so we start off with a plain old ERC 20 contract take half of the token supply and we put it in a smart contract that we call the token capacitor and what that contract does is it releases tokens at a decane rate over time like the Bitcoin block reward and those tokens that it releases are available for the token holders to distribute they decide what they want to fund so they find the best work that aligns with their mission each quarter and they issue tokens to those workers those workers then have tokens that they can use to govern the system they can decide which teams get future grants but at the end of the day governance isn't the core value proposition of these tokens we want those teams to have a sustainable flow of funding not just the ability to direct where the tokens go so what these tokens are really for is to donate back into the system in Penn Vala you don't donate by putting US dollars into the system or by putting ether you donate by putting its own tokens back into the system itself so the instead of putting your dollars into the system you give your dollars directly to the and you take tokens you buy tokens from the workers who got tokens for doing work and you take those tokens either you use those tokens to govern the system again or you deposit them back into the system that they came out of another way to make donations happen is instead of spending money from your own pocket you use the value that you direct in our economy to drive more value towards pan Bala so instead of going to any business you director your loyalty towards businesses that are donating to make aetherium safer they're getting the same return on investment that they'd get from spending their marketing budget on advertising but instead of giving that money to Facebook and Google they're putting it towards work that makes aetherium safer so workers are getting funds from getting tokens from the token capacitor donors are buying those tokens giving money to the workers taking the tokens and putting them back in the system that they came out of the goal is to reach equilibrium for every token coming out of the system we want one token to be going into the system as a donation and at that point that's a love little cooperation that we can sustain indefinitely that's not they're not doing work because they're speculating on the value of the token they're doing work because we've organized a community of donors organize a community of workers and brought them together so they can get the work done that they always wanted to get done so we've already started doing this we've given out grants to ten different teams twelve different grants they applied they in total they requested 2.6 million tokens but the token capacity are limits which you can actually issue in a quarter there's two point 1 million tokens that they get issue so the applicants have two options they could reduce the amount that they're asking for so everybody could get a grant or they could hold the line say that they wanted more tokens and compete and somebody would get pushed out but for this batch that we issued on February 1st everybody decided to reduce what they asked for so they could all get grants the next batch the application deadline is April 5th and there's going to be two million tokens so there's fewer tokens every period that people are competing for when they apply for work that that makes aetherium safer by scaling the network or making smart contracts more secure we're doing an experiment this week here in Paris where we are trying to demonstrate that we can drive value towards work that makes aetherium safer by being loyal to businesses that contribute so there are seven businesses in this ally guide that we're giving out that if you shop there you'll get you'll earn a badge we'll give you both a physical badge like this one and a ERC 7:21 badge on chain each time you send us a receipt from any of these seven businesses by building a loyal community that's willing to shop at places that donate to making aetherium safer we can drive more of the value that we create in the economy towards the goal that we care about and I am out of time but become a pen Bhama ally let's make it there iam safer and then find out what we're capable of thank you we have a ton of these so if you want an ally guide I will give you some we're running a little bit late but maybe you have time for one question hi it's a voting on these proposals is it is this cartel resistance resistance I I couldn't understand that can you say it one more time the voting process on these proposals is it cartel resistance so it's not cartel resistance so we believe that you solve cartel resistance not by defining a mechanism in your voting system to prevent it I don't believe you actually can but I believe that you solve it by deciding what you govern so in Panvel there's no funds locked up in a smart contract it's just money it's tokens that I literally invented I made up these tokens and that's what we're governing where the real money comes from is from donors so if a cartel gains control of pan valla the donor stopped donating we don't put our assets into this system to govern we govern our loyalty well what we're willing to cooperate to make happen that's what makes it hard for a cartel to capture [Applause]

Automatic transcript — names and jargon may be misspelled.