Building self-sustaining ecosystems through governance by Will Warren & Peter Zeitz (Devcon4)
Devcon·Wed, Oct 9, 2019, 12:00 AM
Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on IPFS and more. https://archive.devcon.org/archive/watch/4/building-self-sustaining-ecosystems-through-governance At 0x, we would like to move towards progressive decentralization of network ownership and control. As a first step, we will launch a community-managed developer grant program that is intended to provide funding for public interest projects that advance the community’s collective interest and that drive platform growth. To take this one step further, we are developing a roadmap for transferring control of grant distribution and custody of grant funds to an on-chain decentralized governance system administered by the ZRX token holders themselves. The grant program will provide us with a unique opportunity to observe on-chain governance and community social dynamics when the financial stakes are real and no centralized authorities can interfere with the community's decisions. Speaker(s): Will Warren, Peter Zeitz Skill level: Beginner Track: Society and Systems Keywords: governance, ecosystem Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum Learn more about devcon: https://www.devcon.org/ Learn more about ethereum: https://ethereum.org/ Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. Devcon 4 was held in Prague, Czech Republic on Oct 30 - Nov 2, 2018. Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/
Transcript
my name is Wil warren I'm here with Peter Zeitz and we're from the 0x protocol core development team and Xerox just briefly 0x Protocol is an open protocol for peer-to-peer exchange of aetherium tokens we're not gonna be talking about that too much instead we're gonna be talking about how we're thinking about building a self-sustaining ecosystem through governance but before we get into that I'm just gonna provide a little bit of background on 0x the history of 0x and how governance has been a critical piece of the project a core requirement from the very beginning and so I'm gonna talk a little bit about technical protocol governance so initially very on before we were actually working on what is now 0x we were initially building a for-profit decentralized exchange that would be owned by a corporation and would be generating revenues and something that we identified very early on was that we were building this system of smart contracts on top of a rapidly evolving technology stack so etherium was still in its infancy the etherium virtual machine was changing the smart contract programming language was changing everything was you know changing at a very rapid pace and so you know what we realized is that if we were to build our protocol for a peer to build our decentralized exchange in a single monolithic smart contract that there would be some issues when we would have to upgrade and that we would have to upgrade frequently so here you can see in the slide there is this smart contract represented as a triangle you can think of this as containing all of the logic associated with exchange and you have these traders that are depositing their they've deposited their funds into the contract and they're using it to trade and one of the issues that you encounter when you're building on top of a rapidly evolving technology stack and you have to upgrade your smart contracts is that your users have to withdraw their funds from your old smart contract deposit them to a new smart contract and it's a costly in time intensive process now further as you continue to do these upgrades another issue is that you'll have user churn so every time you do an upgrade it's it's a costly and time-consuming process and users will drop off and another issue with doing upgrades in this way is that it can lead to fragmentation so some of the people might decide not to move to the new and most most recent version of the contract and this fragments the network and destroys a lot of the valuable network effects that you get around liquidity so we realized that in order to create a system that would make sense for us long term we needed to build a modular pipeline of etherium smart contracts this pipeline would allow you to replace parts of it without affecting the other parts of the system and you know this is kind of a diagram of what that pipeline looks like and what you can do is you can unhook one module and hook in a new module and it allows your users to seamlessly transition to the most recent and up-to-date version with practically zero friction now when we were building our own for-profit decentralized exchange this was a very easy process for us to do you know we own these contracts we can just decide to upgrade them whenever we want it's our decision but as we spent more time in the etherium space and met with more teams that are developing on top of aetherium we very quickly realized that there are many aetherium projects that require exchange functionality and we determined that all of the work we were doing this system that we were we're confident was designed in a very good way would have much greater impact if we designed it to be an open protocol rather than a proprietary exchange so anyone could build their own exchanges or markets on top of it so in an open protocol there are many different stakeholders there's you know today they're you know there's 15 or more different real layers that are for profit businesses building on top of the same set of smart contracts and a various infrastructure projects that exist so this begs the question who gets to decide on upgrades and who approves them well obviously the answer should be the stakeholders the people that are actually making use of this system should make those decisions so how can we identify who is a stakeholder so the way that we determined was the best way to measure this is you want to measure how much each party values access to the protocol utility and you can measure that through a usage token that is used in order to access that protocol utility so this is just a brief explanation of what technical protocol governance means in the context of 0ex protocol but in you know today there's a vibrant ecosystem that has developed around the protocol and governance has extended beyond just technical protocol governance to be something that's much more important to create a decentralized ecosystem and so that's what Peter is going to talk about now this is Peter sites use Research Fellow focused on governance at zero X so I'm gonna hand it over to Peter [Applause] all right so we'll talk to bunch about upgrades and this process this collective decision-making process where we take our software and we improve upon it we'd introduce an upgrade and that has being this motivation for governance I've had this experience with software upgrades as a user of software you know where Microsoft sends me a list of upgrade to some numeric code and I have a voice here right I can choose to install these or not to install these all right so I have this participate in this decision to upgrade my software and Microsoft at least doesn't do it without my consent and yet I feel don't feel like I'm empowered at all really I feel like I have to choose these upgrades right so my thinking behind this is that really just the ability to approve a change in your software really doesn't give you very much control it's not sufficient to empower you to ensure you get the product you want and so we want to think about how can we change this how can we make it so that our product is something that is constructed to offer users the upgrades that they want to serve them and I really feel that the only way of doing this is giving the users some control over the purse strings right so Microsoft developers they work for Microsoft shareholders they give me these deep resentment with these choices that Microsoft shareholders want me to see and what we want to see instead is is the the developers working for token holders and presenting the Xerox holder the token holder with a choice that he wants to see so he sees the code that he wants to choose to use as opposed to what some investor might want him to choose to see okay so how are you then going to operationalize that so that the token holder controls the purse strings but we're gonna start you know by thinking about a committee as being a rep the your X token holder as electing a committee and this committee is going to work on the behalf of the user the token holder you to influence the allocation of funds for development and our ecosystem and this is kind of like a risky scary prospect we can imagine the users directly choosing you know who gets money to build what frightens it's releasing control you know from our organization to the community and it involves a lot of risk and so we thought the best way of approaching this in order to address this issue of risk was to start small and work and build up from there and so we imagine the short-term of the 0x token holders electing a committee that's gonna be responsible for allocating grant funds to community projects right so these are prod the work and development of the core protocol itself but instead the funding of third party development of projects that are building on the Xerox protocol like these real Ayres or maybe they're making market making tools or maybe they're doing educational videos that will help attract users right we have all these actors in the ecosystem you know that benefit from third party projects which were already funding right so we already have a program within our organization to extend grants to people working to building on our software and we'd like to empower the community to take on that function for us instead of just doing it in a centralized fashion ourselves in the longer term we hope that this experience with community directed grants will inform how we can use an elected committee elected by the CRX token holder to control the development of the core protocol itself right so the developers on the core protocol are working as the employees of users rather than on behalf of someone else okay so I should at the start here note that this is a really hard area to make any kind of commitment so this is not a commitment you know that explains exactly what we're going to do because we don't have sufficient knowledge to know that right now right this presentation is expressing our current understanding of how we see governance in the Xerox protocol evolving but that understanding is almost certain to change in some way you know our long-term plans are gonna change as we you know do this new experiment with governance where we begin to devolve power to our users and get them to administer these grant funds we're gonna observe what they do and we're gonna learn from that to improve our program we're also observing all these other crypto projects and their governance experiments and expecting to learn from that and there's also this big elephant in the room where the legal environment for for allocating funds and you know using user votes is very very uncertain and every kind of blockchain organization faces this legal uncertainty and so we're gonna have to accommodate you know whatever the law allows us to do and you know be flexible with our plans to make sure that we don't face legal risks and that our token holders you know don't face legal risks as well okay so the first element of this is you know we have this committee that the token holders are electing a committee right and and then this committee is going to distribute grants and so the first element I want to explain and help you understand is the the use of grants itself why should we use you know create these grants to pay people to help them use our software right what's the purpose of this well our understanding is that we have sort of this user platform with multiple classes of users and the activities of one class of user have implications that are broader than those guys themselves they they affect the entire ecosystem they make the entire ecosystem more attractive to other participants so that when if we fund projects you know that work in one part of the ecosystem that that not drives growth you know all over across the board it drives it encourages you know more users to come on board in other areas and so there's kind of three kinds of main projects we might fund we could imagine a great the real layers are here so real layers create these specialized asset markets where a certain class of tokens can be traded and those tokens that maybe there's a real layer that trades and utility tokens there might be a real layer that trades and crypto kiddies or you know playing cards you know collectible playing cards or maybe a really other trades and security tokens venture capital funds there are all kinds of specialized asset markets and where these tokens are traded that could be created and so one purpose of grants would be to create more markets to begin to serve new markets using our protocol and then once those markets are opened up that will attract you know traders who are buying and selling tokens right someone wants to buy a crypto could eat and they might arrive at this market place to do so you know someone much might have a bunch of crypto kiddies they've collected and they need to they need to you know pay for their mother's medical bills so they're going to sell all their cryptic kitties to do that and this is the market place is a place they can take those crypto cookies to to to sell them off all right so those are these traders right and as the traders or another place we can target resources right because we can mark it we can develop tools that make it easier for users to enter act in our ecosystem and help people understand how the ecosystem works that deliver them that bring the users to the real layers that improve the environment for traders in different ways right so grants could do that and as we bring on more traders there's another element here which is market makers who provide liquidity right because we have on these exchanges there are sort of retail customers who are arriving there occasionally to buy and sell what they want but they're also sort of consistent participants who do market making hold an inventory of assets of tokens on the relayer and then buy and sell these tokens in response to sort of sporadic demand that comes from these traders who arrive you know to buy and sell when they want to write the more traders we have they're coming to buy and sell the larger inventory of assets it makes sense to hold on this on this real layer you know the more buyers the more people holding inventories the more markets it makes a sense of sense to open up all right so if you have a grant that drives growth in one part of the ecosystem that will then fuel you know follow-on growth in other parts of the ecosystem through sort of a self-sustaining process or a self-perpetuating process all right so the goal of the grants then is to sort of identify aspects of our ecosystem that are bottlenecking that are constraining growth right now and help to alleviate that bottleneck by targeting funding to that area because that's why grants but of course grants do not need to involve the community right we could we have an organization that has some resources we're already using some of those resources to award grants to third party projects as many of the relays that have been created you know are projects that we've had some involvement in you know giving non-dilutive capital just just giving them free money essentially to help them begin building at some point in their life span so we're already doing this and why involve the community in it well as I said before and we want to make sure that the code that's created in Azure X ecosystem is created in order to serve users and we feel that the best way of guaranteeing that is to give users control over the purse strings right so they are the you know the money is being spent on their behalf so we feel that the 0x token holder should exercise ultimate control over resource allocation is your X ecosystem and in order to do that we want to compare the community to determine how grants are allocate what kind of types of projects are created to make sure they get the projects they want in the short term that means community control of grants distributed third party projects that build on our exchange standard and the longer term that means community control upgrades and extensions is that core protocol to the core exchange standard so for example if the users decide that there's a proposal to improve the protocol that's created by some other development team right that that isn't us that they could potentially choose to fund that team instead of the existing group of developers right so you can see probably how that would be really empowering and it would ensure this kind of level of accountability where the developers need to be responsive to user concerns in order to ensure their livelihood okay so what why an elected committee right so we can imagine doing this another ways right it could be that there's a grant proposal a third party project creates and it broadcasts it to all the token holders who read all the details of its white paper and then figure out what do they want to vote yes in this proposal or no and we felt that this for this type of decision having every single user read and vote does not make much sense right in my interpretation there's kind of two main types of collective decisions and depending on what type of decision you're dealing with you know you may want to use participatory democracy to arrive at that collective decision or you might want to have a delegated former to a representative democracy where the token holders elect a representative who then makes makes decisions in their behalf it's a participatory decision you know there may be cases where individuals know exactly what they want just by glancing at the issue right they don't need specialized expertise they don't need a college degree they don't really do a lot of research and reading to figure out to vote yes or no maybe for example there's in my municipality there is a proposal to create a playground and that playground will cost this much to build and the taxpayers will have to pay and say a million dollars to fund it and I have a couple kids I can evaluate now how much benefit my kids get out of playground is it worth it to pay that extra tax money to build that and I don't need to ask an expert right I know right away because it affects you know I can III know as a as a resident that community exactly whether it makes sense to me or not and I can just vote yes or no right those types of decisions it makes a lot of sense to govern the participatory process but there are other type of types of decisions where individuals need to make a serious effort in order to come to an informed decision where someone might need you know a college degree even a graduate degree and then even with these degrees they would need to do a lot of reading and research before they felt like they had sufficient information to have a preference for one outcome one decision over another right so it should we scale the theory of network for sharding or via plasma you know which approach to charting should we use which approach the plasma should be using a dag or a blockchain these are very complex issues or even an expert needs to do it a lot of time to doing research before they can come to an informed preference so for those classes of decisions it makes sense for individuals to hire someone who has expertise to take make that effort on their behalf rather than than making decision directly through a participatory process okay so then the next question I think that arises there is right so we have an expert who's working in the users behalf we already have experts why do we need to elect them we already have for these core developers who spend their entire working life poring over the protocol reading white papers reading about emerging technologies making choices about what types of things to introduce if we already have these experts who are employed to do this you know why do we need more of them okay what is the purpose of creating a you know a separate body so here what I think is really important is that the elected committee you know provide a source of information that's independent from the core development process right so there are people looking over the developers shoulders observing what they're doing trying to learn about the choices they're making and ensuring that those choices are being made on users behalf and the reason for this is that all the core developers are informed experts they're also not particularly good choices for user advocates because they face a conflict of interest right fundamentally they're the employees of the ZRX hold of the Xerox holders have crowdfunded development of this protocol and they're there for the you know the developers are working for them but you they have this issue that continuing to have this job is their source of livelihood right they have this sort of more clean raises this issue in this quote you tell me where a man gets his corn pone and I'll tell you what his opinions is so what's the saying corn pone here is how a man makes its living and that is that I need to you know my imperative is to continue earning my daily bread and I'm just gonna tell you whatever is necessary to make sure that happens right so if we don't if we don't have an independent voice which isn't dependent upon giving certain advice for its livelihood right the users really can't you know trust the infant that the information they're receiving is is reliable all right so the solution then is a committee of outside experts all right so have the users that vote people in in this committee that are outside of development team okay so sort of get a better sense of this you know I'm gonna argue that that users need this access to unbiased information right so they need to know that this source that they've that is providing them with advice is independent from the development process and they also need to have control over funding so they can act on that unbiased information to influence what projects get built so you can imagine some users here and they say how do we get developers to address our concerns and we're not happy with the code they're producing they haven't we the scalability problem they haven't done anything to address it what if we voice our displeasure by refusing to utilize the software they created so the users are considering that the developer might say wait those are critical security upgrades failing to utilize these could put your funds at risk it could put decentralization at risk it could result in someone capturing the protocol and there's this huge danger that means that users need to download these immediately and the users as naive fairly naive participants really don't know how to react that right there's this risk that maybe the developers telling the truth and given that risk most people will just say okay we'll vote yes and they'll be left with this problem still you know how do we get our concerns address and they can take that back to the developer the developer might say we don't have the resources for addressing those concerns or it's infeasible to do that or trying to accommodate what you want would break decentralization which is our key priority and so we can never even consider anything in that direction and the the key problem here is the users really can't evaluate these claims the users need some independent source of information they can consult which can tell them is that legitimate or not legitimate that isn't just the guy writing the code and then they need to be able to act on that by allocating money to someone who's actually going to work to create the code they want okay so how will this work I think the first key thing to focus on is this source of funding right we want to take funny that's currently under the control of Z of our organization is under centralized control shown here and then release it to a committee which is going to be controlled by the community and when that when that happens when this is saying negative one months here is negative one months before one month before the committee is elected we're gonna grant funds to the election process and once we do this once we release these funds there is no centralized control anymore the token holders votes and the the committee they elect are gonna determine how the money is spent and even if we don't like this you know we there's nothing we can do about it without say a hard worker fundamentally changing the code all right so this is like this this key step of moving from centralization to a decentralized community directed process at the same time you know there's needs to be an election process where people are nominated and the token holders I lacked a community a committee of say three people who's going to represent them okay so we're going to move forward and then after this one month nomination election process is over there's this committee that's serving holding these tokens that have in multi-state custody right so this is there's money that's taken from us and transferred to the community control committee and then the committee can look at grant proposals from the community right so independent project startups will ask what will soar be begging for fund and the community the committee will evaluate their proposals and see if they're whether they're worthy or not whether they serve the community interests and say one week later they have a suggestion of a proposal they'd like to fund and they they bring that to the community they announced the community we would like to send this many ZRX tokens to this third party project what do you think all right so this is announced and the community is going to have to again of a week to observe that and if they choose not to act if they say observe what the committee proposes to do and decide to let that happen then this the CRX tokens are released to the third party project and that project is then spit out some some code which help hopefully benefits our ecosystem helps it grow but we might work maybe this committee is corrupt maybe we have bribery or some some problem that's results in this committee being captured so that once they're in office they no longer serve the interests of token holders and so we want the token models to be able to intervene in some way and so this is there's this possibility that then this proposals announced and it's observed for a week and in that weeks time the CRX holders can take action to hold a vote to block the proposed allocation and if they succeed in doing that that will trigger election of a new committee and hopefully this new committee will then go on to act truly on the user's behalf and not propose allocations that result in them being recalled you know by their constituents okay so this is the framework for the grant program and we can think of this as being quite generalizable and adapting it to oh sorry sorry I forgot to so if the proposal is continued if there is no blocking right then then these committees are intended to serve for a one year long time span and so this process of proposing allocation and then having it go through week later would continue over the course of a year until the committee's terms expire and then there they go back to being reelected okay so I was gonna say this process is quite generalizable and it's probably pretty easy to see how we might expand that to encompass not just governance of third party project funding but also governance of core development funding itself and so the couple differentiators of how that you know might need a change to encompass to the core protocol is firstly there mainly be more funds right so we have these larger established organizations with say dozens of employees and they're going to need to be supported by larger allocations and early-stage startups okay so we can imagine more funds going to the committee and the other issue with a larger project with a bunch of employees with an office building it's renting it has this these near-term funding needs that it needs to have certainty over right it can't just be getting funding on a week-by-week basis and be uncertain whether it can actually continue to pay salaries instead it needs to have certainty that it will receive a certain amount of money that will sustain it over say year long period right so in this modified process the committee you know when it holds office and then after being office for five months it will propose an annual budget which will govern all the funding for the core protocol for that year and it could be distributed to say one Development House if there's just one development organization or multiple development organizations if the committee thinks that is a you know better scenario for the users and then you know given that this is a larger decision that the community lends a month to either let the decision go through and then the money will be released to development houses or block it in which case we go to re-election but other than that you know essentially the long term plan is very similar to the small-scale sort of short-term grant program plan anyways thank you guys for listening so this is the end of the presentation I just want to ask if you guys have any questions feedback or suggestions so I can take a question right now if there's time is no no time there's no time sorry sorry you off to the please come talk to me afterwards right now you
Automatic transcript — names and jargon may be misspelled.