Aron Fischer presents Colony @ Talan Labs
Ethereum Paris·Tue, Oct 9, 2018, 12:00 AM
Aron Fischer (core dev Ethereum) était de passage à Paris et est venu présenter le projet Colony: https://colony.io/index.html Outre ce projet, Aron contribue sur Ethereum notamment à Casper et surtout à Swarm, le système de partage de fichiers décentralisé de la Fondation. Il est docteur mathématiques (univeristé de New York) avec une spécialisation en topologie algébrique, ses recherches portent principalement sur la notion d'homotopie. Cet événement a été organisé en partenariat avec TalanLabs que nous remercions chaleureusement pour leur accueil et leur soutien. Pour en savoir plus sur Talan Labs : https://blog.talanlabs.com/cat/technologies/blockchain/ Pour adhérer à l'Asseth: http://www.asseth.fr/adhesion/
Transcript
you [Music] what makes an attorney [Music] no excused or let's say they bombed etc see way except L know popsdookie dookie let's pop some this photo corrode metal on CompuServe Ramones people in the project who waved and well know mr. Garre pianura disabilities or the exit and Estrella yeah yeah well not leave it alone that's more and even more himself our but the top removing camel even apartment is more even motto Dada it Arab community conference to accept six he was at all not suffice a very casual affair to conferences person Amelie bustable oh no I'm something the speaker so cafeteria to plastic film with a mere security at the Romans gonna be the ugly motors shows which developed normal put away the profile also they care who could Chozen invest equivalent this to tell the speaker and also Etsy see their CC point you really the job Oliver DM o hadouken so indifference pick up from the genocide notes as well as well unlimited amok I want to show just EC we just pick him up so the sign of this one only I said only don't I read feature is a core developer of material is someone is working on swamp swamp water quality to decentralize storage solution based on material and also on the project attorney that he is gonna tell us more about today Aaron the floor is yours hello hi good evening yeah okay so I am going to speak in English so what I want to do today is give you an overview of the colony system that we have planned I was one of the co-authors of the white paper and that has been finished it's published in the last fault and now our developers are really working on implementing those ideas and we've given talks at DEFCON going back several years and always highlighting a particular aspect but today I want to give you a full overview of the system and I think this will be the most complete presentation of colony I've given to date so let's start with what is colony when we start talking at colony we talk about working together coordinating large groups of people to self-govern and self organize to run projects whatever project they're interested in so it's about coordinating people and um we want to do this in a way that's not a strict hierarchy who wants to be horizontal the network and all these good things that you know we'd like to talk about but the question is how do you achieve something like that how do you implement it so no we look at the big picture we can start thinking of well we want people who work together we want it to be we don't want the rich to control everything we want it to be fair whatever fair one thing to be flexible wants to be scalable you start running through all these different criteria so what might this look like like what what kind of a project could even imagine so suppose somebody makes a proposal a want a mission to the moon what would that take right it takes people who can learn on our little example graphic shirts I mean it's for entertainment purposes so you've got any pilots you need engineers you need administrators you need got to take you need lawyers and how would you ever coordinate such a huge group of people there's actually precedent for something like this is the Hyperloop project I don't know if you're aware of it that maybe it's but one of the teams competing organized via Reddit and got incredibly far was just this reddit group and at first it was great a lot of people wanted to contribute but towards the end when they actually had success and it became real question about time and money and budgets they had a lot of problems because they had no governance structure so calling aims to be that kind of a platform where large teams can coordinate and self manage so I'm gonna zoom in all the way to the smallest part the atomic unit of a colony which is a task a task is a little piece of work the smallest unit to be subdivide every project into so a task is this is a smart contract by the way when I write it like this in the contract so it's something on the field block shape that encodes the interactions we're going to have so there's a manager of every task which is just the user account who handles some administrative functions there's a description of the work to be done and the due date and other metadata on the blockchain you just have some kind of a half and that half refers to an IP FS file or a swarm file or something so we know we do we have another user account who's responsible for evaluating they're the ones who after the work is submitted get to say it's like The Doors not accepted great quality there's a bounty there were the money to be paid for the worker and Vandenburg valuator also get paid so that's locked up in this smart contract and the rules for how it gets paid up are encoded into it and finally there's a worker which is the user account assigned to actually providing whatever whatever the work is that is described so that the workflow would be like this you create a task your silo manager you describe the work write the brief you know say when is it of pay the written success what are you expecting you assign a budget you're silent evaluator and finally you assign a worker and at that point the worker should do the work and we expect that to be a lot of communication back and forth like if you assign someone in your team to write a brief for you for something they'll send it back to you you send it back with Corrections I mean there's all kinds of communications that you have in any working team that are not represented on the blockchain because that would be ridiculous and expensive but at some point a blockchain action occurs which is when the worker says I'm done I submit the work and on the blockchain that means they submit I have something that proves they did the work whatever that may be and then the evaluator would accept the work and that unlocks the payment and then everyone gets paid and everyone also earns reputation in the colony and I will have a lot more to say about reputation as we go along then yeah briefly reputation is an attribute you earn by doing work and it's not something you can transfer it's not a token that you can sell and move to other accounts you get paid in tokens and you can move those tokens to anyone and pay for things and exchange them but the reputation gets stuck to your account it's a measure of how much work you did and how many good contributions you did to this colony and once you have reputation you can do more things in the colony you can create tasks trait domains you can apply for funding and a lot of the day-to-day decision-making in a colony is weighted by reputation so as those people that do the most work and get you know the best ratings from their peers end up having the most influence it's not something you can buy you can't buy influence in the colony you have to actually earn it all right zooming out a level we can subdivide larger projects into different parts so a colony itself has some structure we call them domains so there's a colony wide domain that's everyone contributes it to anything in the colony and I can be subdivided into sub domains and subdomains of that and sub domains of that and the idea being that big projects get broken down into departments get broken down to work you know do work groups and all the way down to something that's manageable and a lot of decision making happens on the local level so all right let me give a more detailed view so here's an example of a colony which has a development domain and the development domain has go C++ and JavaScript subdomains and each one of these domains has its own budget and budget gets assigned from higher up to lower down lower down to lower down and within the domains they assign it to the tasks and the whole structure of how these funding flows happen I have a few slides later on and within all the domains are the various tasks so when you do a task in the go domain down here on the bottom left of my screen then you will earn reputation in go you will earn reputation in development and you will earn reputation at the colony level but you will not earn reputation in the C++ domain right so in reputation is local and also decisions and votes are local whenever there's a need for voting that's a there's a real big fight amongst the JavaScript developers about which way to go if they can resolve that dispute within the JavaScript to me it never has to bother anyone else higher up so try to keep things as local as possible and I think the sort of the idea behind this is while voting is easy to describe on the blockchain and a lot of people like saying oh well your sin side transactions the contract accounts everything from a human perspective voting is hard work price a lot of cognitive overhead has time there's also costs involved so you want to minimize voting and you want to in in many ways possible one is limit the number of votes the other one is limit the number of people who have to have an opinion on every particular question so that's why everything is kept local and the reputation is local so you ask the relevant reputation which means that the developers can't interfere with the logo design which is a very good feature to have unless well before I said that it's always possible to force a vote going up the hierarchy so you cannot appeal to a higher manager and his manager and his boss and his boss but you can do is always appeal to a larger and larger and larger group of people and the ultimate decider is a colony wide vote but the hurdles to get there are pretty high because you don't want that to be used unless it's really needed right so now put a dive into some of these mechanisms alright so and I have slides on pretty much these six topics and I'm gonna go through them but not in this quarter this is how I designed the slides this afternoon so we have the funding mechanisms for tasks in the main so we want to collectively manage funds of course that has to be secured but also has to be flexible it's always we always have this balance between being able to do something and being able to do it security so we can talk about that then there's earning and losing reputation we want to reward good behavior and punish bad behavior so how does that work then there's this reputation mining which is a procedure I'll talk about at the end I did it's I gave a presentation about it at DEFCON and it's about calculating everyone's reputation score off the blockchain because it's a complicated calculation but in such a way that you can still use it on the blockchain security disputes what happens when there's fights and Agreements how do we deal with those then a note about the tokens that colonies use and finally how the network fits together and the special called me the common colony what that is so let's start with disputes a dispute is happens when there's a disagreement so up until that point the first thing we need what I'm going to do is want to make me have it easy to do things it shouldn't really be hurdles for you jumping in a colony agreeing to do a task and just doing work right if if there's no everything if that's okay if nobody objects that should just be able to go along without ever needing a vote on the other hand it should be really hard to cheat and those things sometimes do get in conflict and the easier it is to do things the easier it is to do bad things and the main mechanism we have to deal with this visa this problem is that any action you do requires you to have reputation and it requires you to put up some token as a security deposit and if nobody objects everything happens fine if people do object and then there is a dispute then you could lose your security deposit so there's a bit of game theory involved so yes it should be easy to do things we want up not you don't want to be bureaucratic we don't want to have to apply for permission so that's the mean by easy to do things a permissive colony and it should be hard to cheat so suppose I create a task with the description do nothing I assign myself as manager and evaluator and worker I submit the work and actually pay and run off with the money that should be impossible or really really hard so all actions require either reputation or some state tokens or both so you know to create a task in a domain you need to have at least I'm making up the number I don't remember one percent of the reputation in that domain that qualifies you to be able to create a task and then you have to put up some tokens in the security deposit as well and there this is only there so that you can get punished if it was wrong if you did something wrong but for the moment you require two tokens and reputation we have security delays before happens so example once your work is accepted by the evaluator in that task you don't get paid until three days later and during those three days if you did do something naughty like trying to pay yourself out for doing nothing somebody can say hold on everybody look here this is wrong and then they can start triggering a dispute process anyone with enough reputation can object to anything you see anything going on in your workgroup in your department that's not right no it doesn't have to be obviously fraudulent maybe we just had a conference call in our team and we agreed we're going to do things one way and then the person who didn't agree with us during the call immediately creates the task to do it the other way then I could call them objection just say this is not what we agreed to come on so I can start that objection and if if that's all that is my objection stands and the task gets automatically deleted again we don't need another vote it's only yeah right or if this task is a duplicate it should be deleted it could be a small objection like that if no but nothing else happens it will be deleted right the objection passes but if somebody counters it says none of them your objection is wrong this I stand by what I did or you know somebody takes the counter side to you that's when we have a dispute and that's when we need to go into voting to resolve the conflict so for that to happen somebody has had to say I object and put up their tokens and reputation somebody else will have have to say nope I the objection is wrong we should this the whatever we had here was correct so I take the opposite side and then we have a vote and the vote is weighted by reputation again the people already the most reputation have the most weight they can have the most influence within their domain and right the final point is if we cannot agree you know if there's a fight in a JavaScript department and they really don't disagree in they're really angry at each other you can always escalate it one level higher to ask all the developers to weigh in on the quest and you could escalate it even higher to a higher domain but every time you do you have to stake more tokens and you're likely to lose more the decision goes against you so your incent device to keep things local yeah and you get reputational rewards and punishments based on how you use or abuse this system right so that ties into right nicely to reputation well payment for tasks is a financial question we also can tweak because we're in control of reputation in the colony system we can award reputation for certain kinds of behavior we can very specifically target this behavior be like this we don't like it you try to govern the incentives of everyone in the system that way so earning and losing reputation now you earn reputation by doing good things whatever good means then you lose reputation by doing bad things you earn it by completing work that was the basic example that's the most common you also earn it by managing or evaluating work you know that still it's administrative work it's not it doesn't look like the worker tag of a task but it's still you do have real-world activities you get paid for it and you get reputation in the management skill or the evaluating skill no yeah and by winning disputes you also get you gossip rewarded by by own reputation so and the last one is this reputation mining which is special and I'll talk about that later and you lose reputation by failing to do work that you were supposed to do by losing this boot and by doing nothing what that means is that your application decays over time so if you earned a lot of reputation early on in the colony it doesn't mean that forever and ever you'll have this huge set of influence no you have to stay active in order to keep influence in your application so that's yeah that's where we find to the incentives and so here's an example if you raise a dispute on a question like you force a vote and the vote goes 90% against you that means that everyone was against you and you should have known you're supposed to be in communication with the rest of the team so you're just causing a nuisance and you have a big punishment for that you will lose your state reputation and tokens entirely but if you force a vote and it goes against you 51 to 49 you only lose a tiny percent because maybe it was right to force a vote because it wasn't clear that there is a consensus so those are the kind of things we do to find you we want people to use the dispute resolution when it's needed but not you know don't spam everything like object everything just just because and the decay I have just mentioned earlier yes reputation drops off over time and this this means that even if there's a call here which is already pretty old you can join that call you can start doing work and if you do a lot of work within about a year you very just as good as someone who's been there since the beginning like you can really earn your part in it and you can start creating tasks and start governing because that's tearing the project so the project belongs to whoever's working on it in some sense and yeah the other reason which is sort of hidden and not be discussed that much in the way is that reputation gets scaled by how much you get paid like if you do a task worth a hundred tokens you will earn a hundred reputation plus or minus depending on if you did good or bad work but more or less that's the only measure we have now a token might be worth ten cents at the beginning of a colony and if it's lucky goes to hundreds of dollars that means that later on a task pays much smaller amounts and then the numerical rewards for reputation are much smaller and if reputation didn t cave and everyone who did work really early on would forever and ever hold an unsurpassable so with this with this decay we have no what we call the reputation aristocracy everything decays in overtime any fluctuation and your token value is also buffered out and reputation really mean something yeah so that's reputation and the reason we like using reputation is because you earn it for doing good work it's not something you can buy and all the day-to-day operations are governed by this right we don't want owners to come in buy a bunch of tokens and then change the direction of the colony because it's not theirs to do but every once in a while we do need to ask the token holders to decide something know there's some high-level decisions like if you want to create new tokens that's not something that only reputation holders should be able to decide because it affects people who own the tokens and there are there is a mechanism for this kind of large board level decision-making it has to and don't rinse what you can do it depends yeah the difference between reputation and tokens I can tell you tokens are tokens are a cryptocurrency only Athiya blotted so you can transfer them freely between accounts and you can sell them on exchanges and follow intensive purposes they can function as a currency if you want them to but they're transferable asset reputation is stuck to your account if you do work at a colony you will earn reputation which has stuck to your account and you cannot transfer it or sell it you can only use it by making your voice heard in the colony and that means that if you do work for a colony and you get paid in tokens but you're not wealth you don't have a lot of money so you immediately have to sell those tokens in order to pay rent your reputation still stays with you we still remember that you did good work for the colony even though you don't have the payment still because you used it for something else so we want to split those two things the financial side with the purely working alright so I'm gonna talk now about how this funding works how we how we are delegate funds it's an important part now I mentioned have that every domain has its own funding pot and generally we have two methods of funding the one is the called the basic funding proposal it's the most common and what it does it funds flow down this hierarchy at a certain rate and in this in the in the spirit of this permissiveness that i mentioned before that things should be just allowed to happen you don't have to vote upon everything all the time also these funding proposals just have so if I say I want you know so many tokens from the colony route domain to go into the development domain that will just start to flow in in a certain sense but if at any time before my funding proposal is completed somebody objects they can cause a dispute so I should first check with my peers what we want to spend it on but on the blockchain it happens and the more reputation you have backing a proposal like you can make a proposal fun development and I can jump in yes I agree and the other guy says I agree and the more people have committed to agree the faster it flows so we have a kind of balance how long the security deposit is if a single if a person with very little reputation wants to direct the huge amount of money it's got to take a long time and during that entire time people can force a vote if it was not agreed upon or they can join it and say I agree and then it flows a little bit faster so there's that kind of a flow and well I don't want to get into that but flowing a constant stream of funds is not exactly possible on the blockchain because nothing happens unless there's an interaction but all that means is if it wants to well somebody has to send a ping transaction to update all the balances but we can simulate a flow it's not it's it's not really a big technical hurdle but so when you read our white paper you see a lot of description of these pinging contracts and updating these balances and it doesn't really explain why we're doing this but a lot of the reason why is there's certain things you just can't do on the blockchain it's a very different kind of environment to be working in like you cannot you can't have something wrong autonomously you cannot iterate over an array because if the array grows too long you'll run out of gas so you know there's all kinds of considerations when you build these systems and our white paper goes into them in some detail okay the other funding proposal is called a priority funding proposal that can move funds in other directions it can move them up the dire hierarchy across the hierarchy out of the colony and tired and they can be much faster like we need to build we need to pay this guy now that can happen but it requires a vote right clear but so that with this mechanism in place all the limitations from the continuous flow allocation anything that not good enough for in that system can always do a priority proposal and I can execute it as soon as the vote passes yeah and yeah that brings us to call any tokens that had the currency if you want it's not always a currency it can be what I want it to be but every colony has its own token and that means it's a it's a token that can be transferred mr. fungus accounts and this allows you if you start in a colony you can start paying people in your own colony tokens before they have a value before you have investors right like a startup offering shares in it or like a split of the company we can have a fully functional colony right from the start you can just create a bunch of tokens and start assigning token rewards and if somebody believes in your project and can afford to you know different payment for a while you can join in do work for these tokens and hope that maybe you can sell them in the future but so this is a good way to get things started and only bounties in the colonies own token will actually earn you reputation what that means is that if you do work for the tokens of a colony you want to be part of the project you want to earn influence you want to govern you want to you know have a say in the direction this project goes and you're part of the project and you will earn reputation but if you say no no I'll do work for ether but I don't want to have anything to do with your colony where it's tokens you know just pay me for the work and I'm out that's fine as well and external contractors might do that you know they pick up work and you call me that you're paying in dollar tokens or your ether tokens or whatever else but they will not earn reputation so reputation is only for the colony zone token and yeah check I mentioned this earlier but this worth repeating changes in the token supply are possible we can create new tokens we are it's not it's not a fixed supply but changes require very high hurdles a majority of reputation has to agree and a majority or supermajority of token holders has to agree before where they can be diluted in this way no this is this is silica there's a lot of lots of components to this whole project and I'm trying to tie them all together in one talk which I haven't tried before so do stop me at any time I like questions but my next chapters on the common quality and so once the Common Core needs a colony and its has its own token the CL NY and it is responsible for the further development of the colony Network like right now ask the company collectively intelligent are developing the colony smart contracts and we're developing a min application and interface that makes it easy to interact with these smart contracts and so on but ultimately we don't want to be in control even not just that you know each individual colony is controlled by its members the entire colony Network and development should be in control of a decentralized community and that is this common colony the carbon colony happens functions just like any other colony except that its mission is to further the development of the network and it's also the one that's responsible for the reputation updating the reputation mining procedure yeah this reputation mining system uses the common colony token and it's if you do mining you earn reputation within this common colony that's the only special thing about it and for its efforts it gets rewarded there's from the rest of the network pays the common colony for the service it provides namely running the reputation system and coordinating for the development so what does that mean when it this is the first time I mentioned the network feed what is the fee I should say something about that so ultimately the whole network should be self-sufficient and there are real costs involved in running it especially with all the off chain calculations that we need I will talk about those later but the idea is that whenever about T is claimed so you don't need to see we just the idea is that when about his claim that is the very last step of the allocation procedure so it goes from a domain to a subdomain to a task and then once the work is submitted the evaluator has accepted the work and the security delay is over and that's when the tokens finally leave control of the column you get paid out that step one percent gets redirected back towards the network and it collects either as in the common colony directly or in a central part the various currencies where they get auctioned off for common colony tokens but this is the sort of the feedback loop where a small key goes back into the network and the common call the benefits from it yeah so that's an income for the common colony that the others don't have but any colony could have an income could be profitable they could be none so some colonies might be businesses that the real business model others might just be nonprofits or you know clothes that you can give your token whatever meaning you want they could be up you know just meaninglessness of those but you can create new tokens with your little call me as you guys see fit and you don't have to give it a financial meaning but it could and you can offer services to be paid for in your token or not but whatever happens at some point it's possible that somebody pays your colony so somebody sends you money what happens if somebody pays you back in your own tokens that's great you can immediately reallocate them to new tasks so it's just just clean up clean loop but if somebody pays you in other things like ether or dollar tokens or any number of other tokens then that counts as revenue and so it's held in a special revenue account and every once in a while that gets processed and the quakers process is that most of it goes straight back to working capital to be assigned to new tasks and payment but some of it gets allocated to so reports I wrote 90% and 10% here but those numbers could change and the colony can't change them but what it means is we get to if you own tokens and reputation a colony you get a share of the rewards it's just the profits gets spread out to its members notice I say tokens and reputation it's not just token so you can't buy tokens from some unrelated colony and hope to just earn revenues from from other people's work no you have to be a member of this colony have to have done some work and the amount of rewards you get paid depends on an average of both tokens and reputation so the more you have of both the more you're likely to get of this revenue of this profit payout rewards yeah so yeah I think that's all I will say about when I say a note on salaries the reason that I put up the slide is because it we always get asked but you know what if for what about non transactional work right not every kind of work is so easily profitable into little units of work and what happens if like no there's a when we talked a lot of startups a lot of startups come with yeah but what about the founder who's coordinating everyone else but he isn't actually doing any tasks themselves how do we deal with that and the answer is you can do almost anything you want as long as there is consensus right as long as you agree so many forms of employment are possible if you want a salary position the way we would do that in on the blockchain is there would be a special domain of which you are the only member and that domain has a certain flow of funds which we call your salary and every once in a while you can in that domain which you have all reputable you create a task to pay yourself out and all of this stuff these this this construction can be abstracted away by a good interface like it doesn't matter that on the blockchain is represented by a domain and of task no if you have a nice colony app it could render this as a salaried position separately so there's a lot of front-end abstraction you can do but for security reasons and you know other reasons we want to keep the contracts as simple and as basic as possible so you know just domains and tasks if we've got those rights that's great and then we can do more on the front end by you know making a salary position or yeah the other thing we get out is rewarding people with extra reputation you know like a founder if you did a lot of great work early on but then sort of stepped back in the year later when the developments done all their reputation has decayed away and we all think that's kind of unfair because it was their idea we can agree to make a special task which says you know pay this person you know thousand tokens and to qualify for that task they have to pay us a thousand token service or just laundered them through and voila they have a new reputation so all of these tricks and games are possible really the takeaway here is as long as you agree amongst yourselves you can do these things like we we don't want to impede doing which are they just whenever there's dispute and disagreement that's where you have to be sure that we're secure not capable and that brings me to my final chapter which is reputation mining and these slides are there from my DEFCON three talk I gave up a run down of the reputation mining protocol and yeah you'll see there's red there's a reference to dev calling these so your reputation is not just a number that's tied to your account because we keep track of what work you did in which domains using which skills learning how many tokens and how you were evaluated and what your peers thought and so on and so on and so on like it's a complex list of things that affect your score and I want to remember your JavaScript reputation your C++ reputation your public speaking reputation and all these different skills I want to keep them separately so that you can so we can use that relevant reputation in the various domains if there's votes so it keeps track of a lot of things so yeah an example if the task is to give a kick-ass talk at DEFCON three a task every recently completed I hope so you can see this is what a task would look like in our current data you can see it's got domains communications and the sub domain DEFCON three it's also got a skill tag I didn't really mention those yet but there's a skill tag system and you earn reputation in the skills as well so if I do this task I will get paid sorry up there it says tokens 100 in the top row so if I if I do this task I will get paid 100 tokens and I will also earn reputation and it's not just one reputation but I will earn public speaking reputation that's the skill tag I will learn communications two main DEFCON three subdomain and more so it affects my all my reputation score is going all the way up and how many points I get also depends on what the evaluator thought if they gave me five stars to learn another little more than a hundred and if you give me three stars it'll be less than a hundred but that's a wrap about what I will get so reputation we want it to be this complex rather this nuanced so that it makes sense so that we can use it when we want if we have relevant reputation to ask I'm not gonna ask the lawyers about development right if there was just one level of reputation so in a lawyer who does one hour of work and gets paid as much as a staff writer in a week that doesn't mean that they should have that much more influence over you know a question that doesn't concern the legal department so reputation has to be this nuance to be useful and the question is is this too complicated and now we get back to the fact that we are working with the etherium blockchain so we fundamentally have this conflict between meaningful reputation scores on one hand and gas cost on the other so every transaction you do on aetherium it has a gas cost and gas cost to ether which is real-world value it's expensive but even more so than the gas cost there's the gas limit which means every block in the theorem can only process so much gas so complex a reputation so and the truth is and so this is not so much of a secret anymore but maybe try to keep it for a while what we're trying to do exceeds the block gas limit by far so our reputation update is not possible to do on the blockchain it doesn't have to be on the blockchain is the obvious next question the easy answer is yes of course it has to be on the blockchain because we wanted to have real-world consequence we want people to be able to vote with the reputation as a weight and based on how they vote money gets transferred amongst pseudonymous accounts like this an unchanged security relevant thing so it has to be on chain on the other hand the answer we came up with it doesn't have to be on chain itself the only thing the smart contracts need to do is they they need to know how much reputation you have the calculation itself can be off chain as long as you can prove to the smart contract the correct what you're correct reputation is right so if it's provable on chain that is enough and what we came up with is a system that scales just leading 32 bytes on chain and captures the entire state of the reputation system and at any one point only this 32 byte value has to be updated on the blockchain so here's how it works so suppose these down here are your reputation so r0 is my public speaking is reputation in this colony and you know r3 is you're like all the different things listed right so if these were all stored on the blockchain you could just point to the smart contracts see here that's my reputation right that's fine but that's way too much data so now suppose we run it through a hashing function then each one of these reputations get reduced to just 32 bytes and those 32 bytes the smart contract doesn't know that means it's just 32 bytes but if you want to use your reputation like you'd want to use r2 then you can say to the smart contract look I have r2 and you send what the reputation is the smart contract can run the hashing on that input and see that it corresponds to the hash that was stored so no you're telling the truth but only at the moment where you're actually using the reputation doesn't need to know and it was absolutely certain that you're telling the truth even though only the hash of it was stored on chain and so the rest should come as no surprise to people who are developing this field you have the hashes and you hash the hashes in you have the hashes until there's only one left and whenever you want to use any of the reputations down in the bottom row you provide a list of partner hashes so you can do as a so-called Merkel proof that proves to the smart contract unlimited you see that you're telling the truth even though it didn't store anything else so that's the reputation root hash so all we need to do is every every so often calculate what everyone's reputation is build this tree and submit the root hash to the blockchain and we're done that's what the reputation mining is about so how does the reputation would have made it to the blockchain and that's the process we call reputation mining and it has similarities to cryptocurrency mining which is why we call it this though so the truth is anyone can calculate the route hash this is not like a Bitcoin mining where you need huge server farms the calculation while it's impossible to do on ethereal if here is really really really slow and limited like on a laptop you're done like it's a quick calculation so anyone can do it it says somebody has to submit the result so the way to do this you could earn rewards by submitting the correct result and you can get punished for submitting a wrong result that's of the game here behind it and the way this works is it except you cannot prove on tane that the submitted hash is correct because if you wanted to do that you'd have to run the entire calculation which is precisely what we cannot do but if there's two submissions the smart contract can't determine which one is wrong so you can always prove a wrong one wrong you can't necessarily prove a right to the right with the limits so yeah this is not what reputation - I as I said all you need is a laptop and a stake in colony tokens these are the tokens of the root colony and again the stake is necessary for game theoretic thing you have to have something at stake that you lose if you're cheating you run the colony mining client which is a extra bit of software which scans the blockchain and calculates the correct hashes the yeah everyone's reputation and therefore the correct route - and the miners compete with each other to submit and there's like some hurdle so that not everyone floods the transactions at the same time doesn't they compete and the first and I think here it says 12 you have to submit every hour so we updated every hour and that's also so that we want the reputation updates to be relatively smooth because reputation waits your decision-making and we never want you to start thinking oh I will have to try to get this vote in before 12 because at 12 o'clock my reputation drops from that thing I did last week and so like we don't want any of that those kind of thinking going on so the smoother the updates are the less timing matters to you so that's why once an hour is what we came up with right and miners going to call any tokens I think miners burning tokens is a well-established paradigm oh yeah actually okay so I don't need to talk about this because I've already told you that the common colony tokens common colony has these 20 tokens and they're used for mining and they pay a network fee and you can expect rewards that you have tokens and reputation right I mentioned all of this to you today it was just this is the DEF CON audience overview that there are incentives to do mine you can earn our tokens and you rewards based on the entire network because of the fees collected by the colony so right what happens if a miner tries to cheat by submitting a false hash or rather if there's two submitted hashes how can the contract determine which one is wrong and so we play this game whereby you have if all the miners have to submit a justification which is another hash looks like this so if you see our h0 in the bottom left hand corner that is the reputation root hash from an hour ago and our h1 is what happens when you apply the first person's reputation update in the first domain of the first skill over there in our update log for the hour and so on step by step by step by step until you get to the bottom right rhn which is what you submitted claiming to be the new correct route and you have to submit to the route justification crash for all of this and then the contract challenges you to say ok prove that you did the step correctly going from the 10th to the 11th and that corresponds to a single reputation update in a single skill to a single domain by a single person that calculation is simple enough for the contract to verify and then if both submit a proof that they did that one correctly the smart contract sends another index trying to forth trying to 50th and there's a systematic way where the contract can hone in on where the discrepancy is and at some point it will have queried queried and index where one of the parties can no longer prove that they did it correctly because they didn't so after time either one party fails to respond or a mistake is found and yeah so if you run the mine in clients you wouldn't have to worry about this this is all automatic but this is the system to weed our false submissions yeah so that that is that that's how that's secured yeah so the reputation of these are entirely deterministic if you look at the blockchain you can see what happened you can see everyone's actions which tasks are paid out which votes took place so it is it's entirely deterministic to calculate the correct would have which is that's why that's how where we can do this thing on chain if you are familiar with systems of off chain calculation like true--but this is an absolute baby version of that true--but does a similar thing where you can calculate all kinds of things off chain really complex calculations and then it can track steps within the execution to see if you've done it correctly and there's a similar game here but this is far simpler and we hope therefore also safer at first right all of this is described in the white paper which I said came out last fall we're still updating it daily as we get feedback and as the developers bump into new issues implementing it but it's a colony dot IO and yeah you will get everything else at today plus more the gory details and finally what's the current status the current status is we have beta of our app and what our app is is a like a task management interface that makes it easy to create tasks assigned people to task assigned bounties and all the rest it's got a block during a test that blockchain in the background and a thing is still hierarchical so we don't have the distributed governance system yet you still have administrators and workers at two different levels but where there's actual people using it for their teams and we're getting real feedback they tell us what works and what doesn't so that's the the app that's being developed is just in their second beta but it's close so I can't show you just yet it will be opened up soon and on the in terms of the smart contracts ever since the white paper was finished several that was sitting down to actually implement what is written and that work is moving on a pace to and we hope to have something working in this quarter on a test net so just minimal working like MVP and it will have the tasks and the domains and the paths but maybe not the full disk resolution but a basic version is coming really soon and yeah this is where you can find us calling it Ohio is the website we can sign to the newsletter the blog dot calling in Ohio I like to point out special especially because it's a really good vlog there's not just updates from our team but we've also done work in for legal questions like how do if you start to raise funds what are they what are the legalities of said of me selling tokens you know what you have to watch out for or making agreements with the members for equity and chairs and tokens and so there's a lot of that kind of information there too so I really recommend you check that out and that's all I've got for today thank you make these beautiful objects to ask well okay so without what happens on tain so the secret that I haven't told you about is that as this as written in the white paper this is not gonna fly on the theory mean it it's simply too expensive so there's the scaling side is a whole separate discussion and we're definitely focused very much on what can be moved off chain and what can't but for now a task itself has to be on chain because it's it has its it's a contract that holds the bounty in escrow and that can pay it out based on the rules of completion but we do encourage at all stages of the process to have communications amongst your team in a side channel outside of the theorem we should know what your team members are thinking so that you don't even get to a dispute you know we're really supposed to be communicating and it shouldn't happen that someone creates a task you only get this do it because you should have already but if you think about how you work day to day with your team you guys are agreement on what you're doing or you have a team meeting and you decide who's gonna do what you don't then afterwards need to have a vote on may I start this work yes you know all that so if you're working well together there's very limited number of steps that have to hit the blockchain they needs the creation of the task which can you can do it with the metadata like the assigned accounts apply for the bounty and then submit the work and submit the evaluation and then claim the reward so those are just those steps they are security relevant everything else like sending the first draft your review or getting it back the second one all that stuff there's no reason that you'd ever be on the blockchain and we are looking at methods of scaling and seeing what can like the whole reputation system we wanted to move it off chain early on because it was too complex and then after we realized that we moved it off chain we could now make it far more elaborate and nuanced which is where we got all these little rewards for the various actions that was fortuitous it wasn't the original plan and yeah like that we're looking at moving as much obtain this cat as we can but first you know there's also the question that if you have a collie where you can where you know who the members are like I have to apply to become a member and the others have to agree with you then there's a lot different security relevant relevant questions and just any account can start doing can start doing stuff in the fully decentralized world with you you don't know how many accounts are controlled by how many people and a number of accounts can grow then we are a lot more locked down with what we can allow securely gain theoretically so I think the last also see in real life how these colonies are used and what what is relevant in real world or what was premature optimization or premature gain theory as they say yeah so that kind of stuff asking for more budget to a task ice I would expect that it's fully possible to do that on the front end abstraction like if if so adding a lot more tasks what would happen in the background would be you'd create another task on the blockchain which is also assigned to you which has the extra budget and when they evaluate agrees they agree to both so if the front-end could show it like as an extra budget to your task and then it gets abstracted into the back-end that's just a sequence of tasks costs so right and that was actually one of the first things we got this feedback from people using the beta saying no no we need to be able to change the budget as we go along and yes but I expect in the backend it'll just be a sequence of tasks yeah you can change the structure the domains all the time creating a domain is just like creating a task anyone can do it as long as they have enough reputation so you can come and say hey we should really have you know a PR department with drawings of it you can create that and what happens is you put up a stake then you create Department and that state will be locked up until I think the first task in that domain has successfully completed because that's the one you realize okay it was probably fine that you create didn't you get your security deposit back but yes any that that the department's can change and people aren't members of departments like you can apply to do work in any department in any colony even and as long as the administrator sir except the manager I call them here except you you'll become a worker and if you earn the tokens you'll then become a member of that colony so you're more likely to be a sort of sort of member in many common in many domains just how much of a member you are I was kind of question of how much of the reputation in a domain is yours yeah to change the position you've changed the position of a domain what do you mean well so it's easy to subdivide the domain further so when previously only have a development domain you can then create C++ and JavaScript later but moving at the main I don't think is possible but so what happens when you when you earn reputation in a domain like JavaScript you will also earn development to make reputation and you will earn calling by reputation but if you do tasks in development you will only learn in the development and upstairs and if you lose reputation in our domain you will lose the same number of reputation points going all the way up and you will lose the same proportion of reputation going all the way down in all the children so I don't think you can move a particular domain but you can always stop divided even further so great job on the way you've laid out the mechanisms of reputation and three months now this project party on the chain and not on the chain and someone else creates Corona which is the same features posted on the central server and presumably with more feature what's the problem with implementing exactly that those features on a central server that you solve by putting it on the blockchain well so if you do this on a central server you could do it a lot faster and a lot cheaper and a lot simpler and the server can steal everyone's phones but you have no security guarantee you're completely dependent on this third party not just to host your stuff and not just to not run away with the funds we're not you know cheat and mess around with the balances but also that you have to trust them to stay up right so the nice thing about call me on the blockchain is not just the security of having the funds locked into the part contract logic that nobody can circumvent but nobody can kill a project as long as people want to keep working on it right if there's a colony and you can just dump in and start doing work and you know as I said you you apply for work nobody objects you can do the work you can start burning reputation and as long as there's people actively working on a project over time they will be that project like everyone else's reputation will have decayed away but nobody can stop you continuing like a project cannot be killed by somebody running no there's no centrioles off switch so except the majority to the corners the majority token holders well so if reputation holders and token holders are in disagreement they can kind of grind everything to a standstill in some level I suppose well even that's not quite true but yeah the security the reason we do it on the dissenters block changes so that we can act with people in other countries and also it's all these things we're here in the West we're not so sensitive to the need for trusting third parties but it's not just that you know you don't have to trust your local telecom or your local government so if you're in a country with really corrupt institutions it also helps you being able to sell your services to an audience outside because you can say to everyone look I'm not dependent on these guys you can work with me directly over the blockchain so and because we want to allow this vast coordination over the internet with pseudonymous entities there really is no logical yeah there is no third party that could host it in a way rotation system it's because let's say someone wants to propose an ID and that person has 40% of the reputation for public policy and as most of the reputation so we vote for him I will pass his ideal person I will allow some orientations so we gave you the most reputation gets even more and your people so if there is a very imbalanced reputation within our colony then it is possible for the people who hold the supermajority to steer things so that they keep that supermajority and that would be our colony by colony thing I would hope that we make it really obvious when colonies have that problem and then you just don't work with them there's no reason why they shouldn't be allowed to exist but we should make it obvious to people that this is not not you know the control is very centralized but one more aspect I didn't mention whenever some people lose reputation and others win reputation based on some dispute the total reputation still goes down it is lost so it's you can't use this to to serve through the backdoor make a reputation transfer from one person to another which I said was impossible so you could try to say oh I want to give him my reputation so we're just gonna make a dispute where I lose and he wins but the way it's done there is always lost in these kind of processes so I really do want to disincentivize the dispute system but now ya know it's a good point not every colony will be fair and meritocratic but that's ok they don't have to be you can create one with you and your three friends and give yourself all the tokens and reputation in your colony you want and yeah nobody will probably join you and work for your tokens like if I saw that I'd say I do work for you just wouldn't join you know having more and more and more because the more you have the more you have chances to get but you would still need to actually be doing work and being paid and so while you have more influence you don't have full control and besides is also the bigger a colony gets the harder is going to be the more domains there are the harder it's going to be to control the top-level domain and that's also one of the reasons why we have the escalation system so we do think it's possible that with a smaller team somebody just ends up with an overwhelming majority of reputation but if you have this you know one JavaScript developer who was doing most of the work for the last six months and ends up with 80% within that domain if they make decisions that everyone else just doesn't like they can say no let's ask the entire development team because you think this one guy is wrong and so that this reason of being able to escalate is precisely to filter out the imbalances and the smaller units and also the punishment so I said if it goes 59 to 41 percent against you it's fine if it's 90 to 10 you lose a lot that's also not quite true I was simplifying things because in the threshold for for you losing everything what we call a landslide loss in a dispute is 90% when it's in a small domain but it's two-thirds when it's all the way up so then saying that the lower down you go the higher the imbalance has to be before it hurts you I don't want to figure what yeah you don't do you only want to escalate the dispute if you have a reasonable sum that you're gonna win and that's just to prevent spamming and constant escalation thing but that that's why we come here I mean vessel as you want to encourage people to communicate to know what their team members are thinking before they use the blockchain for dispute resolution all right how is it decreasing it is the way it's written it's an exponential decay with a half-life of I think six months I mean lot of these numbers in the way thank the hal fire for the 90% here the 0.1% stake here we just made them up there's no way to know what's a good value until we've seen some colonies in action and we've got to collect a lot of empirical data too - yeah but it's it's an approximate exponential decay because it's gonna change for now as written it's the same for everybody else we can think about making it a adjustable parameter but the more the more parameters you allow a call need to change for each parameter you have to think well what are their views potentials what are the long-term consequences do the token holders need to have a boat or just the reputation olymic and there's of course the conceptual like the work the cognitive where people would have to do of studying what is this weird variable i've never heard of so we try to not make them all we try to come up with good defaults ourselves rather than saying all the college to set them themselves because that's just you know that's one way of us not doing the work say oh yeah you said that but no so we want to come up with good defaults that work in most cases and a few like the 1090 splits where 90% of the incoming you ghosts back to the colony and 10% gets paid out that is clearly something that should be changeable that kind of a resolution can only be triggered so how do you tokens get created who gets to decide and wouldn't devalue the existing tokens so at first tokens are created when the colony is created or rather in the same vein of this continuous flow we thought it might not be a good idea to all the tokens sitting in the common colony's budget in the common central part of the colony what actually happens is we set a ceiling this is how many tokens can will will be created and a token generation rate so that rate they become available to the colony mind part the top domain and they can assign it to other domains and so there's a continuous allocation and then all the reputation holders together can modify the rate at which they get created but only within I think 10% per month maximum they want to increase it if they find they're running out because there's so much activity and once the token that hits the ceiling then they can no longer create anymore that have to rely on earning back their tokens one way or another and if beyond that you want to create new tokens yes you will dilute all the token holders and they will with value so they have to agree to it so for that kind of a thing to happen we need a vote that requires a supermajority of token holders to me and reputation to agree and have enough lead-in time that if you disagree with it you can sell and get out like we want of course you don't we don't want to have some people just screw around with your tokens by suddenly inflating the supply but we realize that we need a mechanism by which it is possible you know just like a company might I don't want to say too much about shares because then I give people wrong ideas about what these things are but there's a similar kind of mechanism you if you all agreed to print more to create more than it should be possible it just should be everyone should be in agreement as much as possible and I think we said super majority of both reputation and yeah and that's the one instance we're really we have a token weighted vote and usually we don't like those because we want we don't want you know people with the most money on who you often the best people to make decisions in management for the day-to-day operations but this clearly is a case where they have to the ComicCon will also have a ceiling yes every they're in no talkin inflates unbounded but if you're running out and you don't agree to an increase then you might end up with the situation where you just have to close domains and fire people I mean we're not create tasks I mean yeah you run out of funds then you have a problem if you're earning funds back because you're selling your own services for your own tokens or you're earning tokens by another mechanism you can be sustainable without creating new tokens and we're hoping that you know there at least will be colonies to get to that state maybe so what kind of company is calling is for that's a very interesting question because we got interest from very very different companies we were surprised in some ourselves but mean what is the small start-up yeah in this crypto space clearly it's an example but we also have found interest from humongous companies like with thousands and thousands of employees who want to use this internally because they found it's a nice way of defining what work needs to be done separately from who does it so they can far more flexibly assign work within their organization while still keeping an account of exactly who did what so the task management and the and the accounting they're all are so fused together and they can find pockets of unused talent within their huge workforce so underused people because it gives already gives people in the company the ability to put an extra work or try to show that they can do things beyond their nominal department so yes we've got that those extremes coming to us and then maybe one more that's interesting is digital agencies that are used to having a small work force maybe 10 15 people and a few hundred contributors to do one-off projects so they they would use colony internally to manage their their affairs and whenever they give work to one of their contractors it would be in one of these ether denominated contracts where the person gets paid but doesn't earn reputation because it's an external currency so managing a lot of external contributors especially for that kind of work which can be submitted digitally is - and with computer savvy people anyway they're also good very fit but in the long term we want we hope it will be so flexible that whole new organization structures will appear from this but yeah for this version 1.0 task management with bounties and adding some horizontal management we'll see where it goes one last question so the original image was that of an ant colony without a queen I would assume in this case but it's it's the little tasks done by individual workers that together produce something far greater than they could ever have imagined they do influence each other in what they do but nobody is really the commander decides everything but collectively so it's this thing of collective intelligence like sometimes you call it wisdom of the crowds would be like to call the collective intelligence the more people work together in a structured way that enhances their cooperation you get these grand projects and you couldn't have envisioned beforehand yeah so it adds to it young power that govern this small no-no so yeah that specifically don't want to go with the political colonies and colonies we have in mind when you see the board remember you this this has been half we haven't people have confronted with this before word but we're now we're sticking with it we will add some ants to the logo to me I'm not I don't have a little reputation I can't just wave on that yeah it's what we're trying to say is this lots of little and he's coming together to work on a brand new project that's sort of the image we're trying to convey all right well guys thank you so much I do want to keep talking with you I just don't want to hold the microphone any longer so let's continue the conversation over whatever looks really tasty back there [Applause] [Music]
Automatic transcript — names and jargon may be misspelled.