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

Loading player…

J2 PAIN 07 Aron Fischer COLONY

Ethereum ParisTue, Oct 9, 2018, 12:00 AM

Transcript

hello so welcome I'm going to be talking about a colony or some part of colony today so before I start I have to figure out how to change slides there's an on/off and okay so I'm gonna start with a very brief what is colony so colony you probably know is a platform to organize work to organize collaboration on projects on the blockchain our goals are for you know flexible hierarch flexible hierarchies meritocratic governance and a lot of these topics we've talked about in the past at Def Con or past conferences and the big picture is that when you have people all over the world we've got these great tools for cooperating we care we have voice chats video chats text chats emails you know slacks in the West and those are great but when it comes to collectively managing resources and finances and things break down so collective governance mechanisms they're kind of still missing and the hope is that maybe now with the theorem in the blockchain we could actually harness that power get that missing ingredient to really form new forms of organization new forms of work on a global scale so in our white paper which was released late last year we sort of write down our vision of how that might look this white paper describes in detail the smart contracts that will govern colonies the tasks the department's the voting the reputation system that I talked about at DEFCON but a lot of what's in here is sort of really describing the smart contracts how they're gonna work and not so much why so today I want to talk a little bit about the why at least of part of this so if you want to use the blockchain to achieve the goals I mentioned the problems with the blockchain are we all know them block chains are really slow so for example that means that you know if one click takes 17 or 30 seconds or so that's a really sluggish interface and nobody is going to use that unless they're really really convinced that a blockchain is the best thing ever and they'll have to use it so this is this is a problem when you try to onboard users from the web to to web 3 also block chains are expensive every transaction costs money real money which people are not used to so you know that's also a hurdle so and and the result is we want to minimize transactions as much as possible and that's not a call anything that's you know it goes for everyone in this space so the general principle is you don't really go to the blockchain unless you have to so one example is if you agree to buy me a beer after this talk we don't have to go to the blockchain as long as two things hold one of them is we have an agreement off chain and the other one is I can prove it off chain afterwards if I have to I if you refuse to buy me a beer I mean this is a simplified version but you'll recognize this is the main thinking behind payment channel state channels and all the rest and the principle is important so it's unbold you only go on chain if there's a dispute not unnecessarily okay so now let's talk a little bit about voting and no collective decision making you know people love to write about voting and talk about voting on the blockchain you know you probably when people ask you what's smart contract you might even start well you know imagine a multi-sig and several people can suggest spending and then you vote on it and all the rest of it because it's an easy example to give and you know I've certainly done that myself we get interest from you know voting on like boardroom style projects or liquid democracy folks so you know even myself I wrote an article on voting and if you haven't read it do go back and check that out but why do we love to talk about voting well because it's easy to understand it's easy to explain it's relatively easy to implement and a lot of us think of collective governance and voting is really two sides of the same coin that go together you know like we're collectively governing things means we're voting on things together somehow but voting is not you know panacea panic and you know how to pronounce that I've only ever read that so problems with voting voting is slow you're gonna need at least 24 hours voting period if you have a global you know global Dow to allow for all the different time zones and voting is expensive because all the transactions are gonna have costs and also thinking about what how to vote is expensive you're gonna have to look at what the question is decide what you think the right answer isn't that is a lot of cognitive overhead that and that's really expensive like people's thought is not something we can you know you can just can't just throw out votes to people and expect them to have an answer to all of them so you really don't want to have people want don't want a person to vote on things that are they that they don't really have to vote on so the general principle is for colony permissiveness permissiveness means we only vote on chain if there is a dispute you don't vote on on anything a priori so you don't need to ask for approval you don't need to wait for someone to assign you to a task you just do that's of the principle of permissiveness there should be very little hurdle to activity to doing things so zooming in the smallest part of a colony of any collective work project is going to be the unit of work a task this is a task in the colony protocol a task is a smart contract and it has you know several user accounts it has an administrator someone who says does administrative managerial duties it has another description for the work to be done and a due date and some metadata perhaps there's an evaluator account which is the user account which is gonna get asked to say was the work done according to specifications and there's a bounty of course thus the reward was locked in the smart contract which gets paid out to the worker account if the evaluator agrees that the work was done and so on and so forth so this is sort of the smallest little unit we have to describe and if you are the worker and if you submit your work and your work is accepted then you get paid after three days and it's this after three days I want to highlight because that's one of the to allow for the permissive nature you need these delays all over the place these security delays so what is the dispute we want to balance two things in colony we want them to be permissive which means want to be easy to get things done but we want it to be hard to cheat and usually what that means is you can do things but you know you don't need to apply for permission so you could just do things that's it should be easy to do things and it should be hard to cheat means I shouldn't be able to create a task with the description do nothing assign a big bounty assign the task to myself submit it to myself and run off with the money and so what what that means is the actions that we we can do they require some reputation and some tokens that need to be staked and then there are security delays and so for example well when evaluator accepts the work we said there's a three-day delay before paying out and anyone who has enough reputation can object to anything that's going on and I don't want you to think of objections as necessarily I made that task that cheats by trying to pay me you know for doing nothing it could just be something simple as you know here this is a duplicate task should be deleted so that's an objection and once the objection is encountered if nobody else does anything fine the objection holds that task can be deleted it is only when somebody else comes in and says no that objection is wrong and I counter it I insist we want to go the other way that's that at that point that there is a dispute and it's at that point that we vote so for a dispute to happen you have to have people stake their reputation and tokens on both sides of a question and then these then we have a reputation weighted vote to resolve the dispute and even then we'll try to keep the disputes as local and as small as possible because you don't want it to have excessive voting but they can be escalated to a higher domain I'm gonna talk about these points in a minute and the reputation system deeply integrated in in the voting and their incentives for the dispute system not going to talk too much about that today because that's we covered that at DEFCON but let's look at this point here disputes are resolved as locally as possible what does that even mean so if we zoom out a bit the structure of a colony we've got domains which you can divide a colony into that is to divide a huge project into logical subunits maybe departments maybe working groups so for example you've got a colony with a development domain and the development has a go a C++ and JavaScript subdomain each one of these domains will have its own budget and within each domain there will be the tasks like it's funded from that budget and generally when you do work in let's say the JavaScript domain you will earn JavaScript reputation that's local well you will learn JavaScript reputation and development reputation and call me white but when there is a dispute in the JavaScript department it's only the JavaScript developers that get to vote on it at first so we try to keep that as small as possible so that's that's what I mean by that so disputes can be escalated to a higher domain but an extra cost means the following that if there is let's say the JavaScript department is small and the reputation distributed with whom there's kind of lopsided and there's one person who is aggressively trying to push one point of view that everyone else disagrees with you can escalate to a higher department so you can ask all developers to vote on this if you think that the department above the development apartment will agree with you so you can't appeal to a higher boss but you can appeal to a larger group of people but there are risks it's not you don't just always escalate it whenever a decision goes against what you thought just out of good luck because there's strong incentives against doing so you should only escalate if you really think that the rest of the call and you will agree with you and that takes us to this last point the reputation gains and losses for disputes so earning and losing reputation I'm not going to talk a lot about but I will put put I want to highlight one aspect of the system so ok in general yes you earn reputation by doing good stuff lose it by doing bad stuff throughout the colony but the one thing is if you raise a dispute and the vote goes against you in a landslide like everyone else votes against you 90 percent to 10 let's then you're gonna lose a lot of your stake tokens and reputations that you had to put up to get that vote to happen because you should be in communication with the rest of your team with the rest of the colony should have known that that everyone else disagrees with you you really encourage to have communication out of bound but if you do force a vote and you lose it by 51 to 49 your reputation penalty is much much slighter because probably it was a good idea to have an explicit vote because it wasn't so clear what everyone was thinking okay so so much for task the funding system of the colony I haven't talked too much in the past so I'll highlight today has a similar balance with permissiveness and security so it should be easy to allocate funding even if a person just has a small amount of reputation maybe you should should be able to create a task and assign a big budget to it if that's what it needs but it should require really long security delays that if the rest of the colony does disagree everyone has a chance to to see what's going on so you can sneakily miss redirect funds so again we have a bunch of domains in a colony and the general idea is we have a system of funding proposals where funding flows down the hierarchy so at a certain rate tokens get reallocated from a higher domain to a lower domain and this rate depends on for each of these spending proposal depends on how much reputation is backing it so the more reputation is backing a proposal the faster the tokens flow downhill and of course for funding tasks if you have a bigger bounty on the task it'll require more time to fill but if there's more reputation backing the proposal it'll go faster so that those two processes balance out the need for security and and efficiency so what we're aiming for is to have a steady and consistent allocation of funds to departments to work in groups and to tasks and mediated by sort of a reputation weighted well is recreation weighted preferences and that's the basic funding proposals and they govern most or all most all of the day-to-day operations of a colony there is another way of another funding proposal called priority funding proposal if you want to move funds elsewhere if you pay have to pay an external source if you quickly need to move a lot of funds like those things can't come up but for that we need a separate mechanism a priority funding proposal can move funds between any department so even out of the colony there's no rate limitation but they do require a vote before they pass right so that takes care of those finally yes a note on salaries we always get asked about this sequence of tasks based interactions that's not really gonna be how's that that's not really gonna work for all kinds of work and it is possible to do things like salaried positions and our colony as well in fact many different forms of employment are possible what the white paper describes is what happens on the blockchain and the blockchain might only see domains and tasks but that doesn't mean that when we have humans interacting with the applications that run on the colony protocol that you can't have salaries so for example a salary might be realized as a domain with only one member so you own all the reputation in that domain you control all the funds flowing into it and you can always pay yourself out with a fake task whenever you want and so that would then you know if you have the right front end just look like a salaried position but on the blockchain is just tasks and domains and you can do other things as well you can award people with reputation with fake tasks if everyone agrees so the idea is as long as there's consensus we want to be flexible with the kind of things we allow just we need to be secure in a game theoretic level so on the blockchain it's really just these iterative tasks but you know a good front-end can make a much more complex and interesting forms of employment yeah that and and a note on this front-end we are releasing very soon our JavaScript library to our smart contracts that make it easy for anyone to experiment with building new applications that interact with these with the domains and tasks in the colony system in general yeah so what's been going on we've had a beta the colony beta has been running for almost a year or yeah and we've had a second beta start last December and it's been closed that's why you haven't seen a lot of it it's not been public but it's been really successful in many ways it's only a limited subset of what's in the white paper so we don't have the decentralized governance features yet it's just the tasks the bounties and you know the automatic accounting on the blockchain and very basic subset and a front-end application which is like task management with bounties that that interacts with the smart contracts on a private network and interesting to us we had interest in the beta from all over the you know the space the usual suspects the crypto startups but also interestingly huge organizations thought they could use some think they'd have used for this which I found interesting and they all wanted some way of incentivizing work farming out work to people keeping track of who does what and rewarding them in some way or other and yeah so they had used for this even without the decentralized governance and what we learned is well it's hard to assign the value of a task upfront which didn't really surprise us at all but for the game theoretic safety of the contract as we designed it you need to have the bounty locked up that can be paid out when the task is finished so you kind of do need to have that locked up in advance however we can imagine a system where you add up top up the bounties later in a nice front-end and on the back end is just a sequence of tasks again what's on the blockchain doesn't have to be what you see you know so the tasks as a smart contract only have the bounty locked up upfront but the front end can abstract that away and yeah the other thing we found is that the tokens that we were using we're in a private test net they were worthless and meaningless and so unless the employer expenses explicitly was willing to exchange those tokens for ether or money or some other form of real value then people weren't interested in working on the tasks but that really didn't surprise us I mean that's basically what the incentive system of colony is built on this idea right there were boards we need the rewards for people to be interested and yeah so for the huge organizations the interest was they could flexibly assign work to a lot of people and people within the organizations could flexibly pick up work in the system and the system would automatically keep track of who does what and that flexibility was valued by the organization that could find unused talent within the organization or idle workers and the workers benefit too because they can actually move beyond their immediate tasks at their immediate Department as long as they have time and skills so this flexibility was valued on both sides and so that was that was a good thing nice to learn not immediate not what I immediately thought is the first use case of colony but they have it the current status well the beta has been running and we've been incorporating the feedback of all our beta users we have released our smart contracts so if you go to this github repo you can actually deploy them yourself and your own network you can play around with them and the JavaScript library that makes it easy to run taps on the system is also coming really soon I was hoping to announce it today not quite ready but very soon that should make it easy to for anyone to write apps on top of the only calling network we're not the we're right right we're at Colony we are writing a tap to interact with them but we don't want to be the only one we're not the gatekeepers and you're more than welcome to experiment with the smart contracts and with the library to build your own apps this is where you'll find more information at colony do you can sign up for the newsletter and we've been I know we've been kind of hidden in the last two years we've been developing we have had a closed beta we haven't had a lot of big marketing blitzes and token sales but we're now slowly decloaking after all this time and we're looking for a lot of really interesting stuff happening in the next half a year starting with the contract release library release and more coming so do sign up it's gonna be a big year for us thank you [Applause]

Automatic transcript — names and jargon may be misspelled.