# The Colony Reputation Protocol: a verifiable, scalable reputation system

- Channel: [Devcon](https://streameth.org/devcon)
- Date: 2018-10-07
- Duration: 19:23
- Watch: https://streameth.org/watch/yt-pdK5fTo0N90
- YouTube: https://www.youtube.com/watch?v=pdK5fTo0N90

## Description

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/3/the-colony-reputation-protocol-a-verifiable-scalable-reputation-system

Colony relies on a broad reputation system to facilitate governance and decision making. The reputation system we are building is far more complex than anything that could be done in a smart contract alone. Instead the system overcomes scalability/gas cost limitations with off-chain computation of the reputation scores which are provable on-chain to the contract. In this talk we will describe how this off-chain calculation with on-chain verifiability is designed and game theoretically secured. We will also describe what kind of actions in a Colony will earn you reputation, and how reputation is used in our collective decision making process.

Speaker(s): Aron Fischer
Skill level: Intermediate
Track: Society and Systems


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 3 was held in Cancún, Mexico on Nov 1 - 4, 2017
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

[Music] hello yeah hello so I want to talk about the colony reputation system just gonna wait for the slides to appear here we go so you may know colony as a platform for organizing teams collaborating online doing work and that's very much what we're about it's to use the blockchain to help us work together on projects that we care about we like to think of ourselves as the people layer of the decentralized application stack meaning that we're very much a blockchain company but our view of the world is not something like this with a blockchain front and center and people sort of as an afterthought of the periphery it it's about having using the blockchain as a foundation to help us coordinate and really do projects that we care about that teams care about helping them work together to that end we want to create a platform for self-governance without a strict hierarchy that's flexible in in who controls and who influences what goes on and for this to to work we have a reputation system that allows us to wait our decisions it's not about voting per se but it's about people who put in a lot of work in a lot of effort earn reputation and then there's they have more say in the project at hand so what is reputation and reputation is fundamentally something subjective it's sometimes hard to pin down and we often talk about reputation in terms of reputation scores and so these here are not reputations these are scores that might convey reputation that tell you a little bit of information so you might like a movie with a high tomato rating tells you a very specific thing and what that means to you is still subjective because you know you may trust IMDb rateing is more than the tomato ratings and the information in each one of these ratings is very specific reputation really doesn't translate so you know if you have a high credit rating which is a type of reputation score what does that tell you about how good you are at tuning pianos very little right reputation requires context so it has to be more than just a single number like we cannot have you know it just doesn't translate so the reputation system that we're working on today is we're going to talk about it's not just a number it has to be more complicated it keeps track of a lot of things your activity in the colony is what determines your reputation so keeps track of the work you do but also in which domain so domains are like departments or working groups within our colony it keeps track of what skills you used what type of work it was how much you earned as a proxy for how big the work was you know was it a huge task or a little tiny fix how well you did your work but the other people thought about your work and more and more and more so it's very complicated it has to try to keep track of all of these different aspects so as an example suppose in our colony there's this task called you know give our great talk and in our interface it might look somewhat like this so you can see up there I've been selected to do this task there's a bounty of a hundred tokens for it and it's been tagged with the public speaking skill the communications domain which is our communications department the DEFCON three sub domain which is our working group for preparing for DEFCON three and if I do this task and I do it well then I'm gonna earn a hundred tokens in our colony but I also stand to earn reputation and I will earn reputation in the skill public speaking in the domain communications in the DEFCON three working group and so on and so on and how much I earn still depends on how well I do the hundred tokens give us a proxy for how big the task is but if you give me a standing ovation at the end of this talk I can upload a video of that and then I earn extra reputation points for having done really well so I'll get back to you on that later the reputation that I earn helps us in the collective decision-making and what we want why so this system is a civil resistant decision-making mechanism you actually have to actually do work to earn reputation it's also meritocratic not plutocratic I mean what we mean is you have to do good work that your peers like to earn reputation it's not something you can buy so it's not the person with the most funds who has the most say within a colony on this level and although I'm not going to go into it too much I want to emphasize this is not about repeated rounds of voting this is more an implicit decision-making mechanism and votes are just a last resort so it's not bureaucratic and we use this for almost all day-to-day decision-making in a colony that asterisk by the way is refers to our last year's talk at DEFCON 2 about token weighted decision-making which still has a place for questions concerning tokens so token holders must have a say when you're deciding to dilute tokens but for the day-to-day activity it's your reputation that counts so you can get reputation as I said by working on tasks but also doing administrative work administrating tasks evaluating other people's work all of these things could earn you reputation and also policing the colony that is if you see people abusing the system by trying creating wasteful tasks if you go around flagging those that might be valuable you can earn reputation for doing that if you abuse that system and somebody else Flags your flags and essentially initiates the dispute process they could also earn reputation so we're trying to balance all these different actors and if you participate in the reputation mining procedure and that's something I will talk about later in this talk so reputation is an amalgam of all these inputs and it has to be this complex or let's call it nuanced to be useful sorry to be truly useful we wanted to keep track of all these different aspects so the question is is this too complicated and what I mean by too complicated is that on the one hand we've got meaningful reputation scores and they're competing with the gas cost right the more complicated the calculation is the more it's gonna cost to interact with it on the theorem blockchain and that might make it less useful but even more so we're competing with the gas limit right there's a maximum cap for how complex our reputation update calculation can be and I'm gonna let you in on a secret what we're trying to do far exceeds the gas limit like this is not something we can do on chain so does it really have to be on chain does a reputation have to be on chain the easy answer is yes of course it does if you wanted to have any effect on decision making in the decentralized contacts on payouts anything of that sort it has to be on chain because it's that's where this consensus relevant but our answer is it doesn't really have to be on chain like it's not necessarily to do the calculation on chain as long as you can prove to the smart contract what your reputation really is you don't have to do the rest on chain and the system I'm gonna describe scales nicely because no matter how many colonies domain skills or any other tweaks we put into the update formula we're only going to need 32 bytes to be stored on chain so the way that works is the following we have all of these reputations here so maybe our zero down there might be my reputation in our colony for the public speaking skill and our three might be I mean these are all the different reputations if they were on the blockchain the contract could read them what we do instead is we hash them now if those hashes are stored on the blockchain and no count the contract of course would not know what my reputation is but if I supply my real reputation are zero in a transaction the contract could hash it check it against the store hash and then it would also know that what I'm saying is true and the next step should come as no surprise in this conference where Merkel trees are mentioned five times a day we hash them pairwise and pairwise and pair wise until we get to a single hash and that's the only thing we need to store on chain and referencing that anyone can prove what the real reputation is so the only thing we left to do is figure out a way to calculate the reputation route half and to submit it to the blockchain so how does it make it to the blockchain and that's this reputation mining procedure so anyone can calculate the correct route hash everything that goes into changing reputation happens on chain completing a task administrating a task you know taking part in the colony so calculating it is not that hard but we need to figure out who can submit it to the chain and make sure that the submission is correct so the first ingredient is a little bit of game theory you can earn funds by submitting the hash and that you can get punished for being wrong and for that to work we need to be able to prove something wrong so the key inside is you don't have to be able to do the calculation on the blockchain and figure out what the correct hash is as long as you can prove that our wrong hash is wrong and penalize the submitter of the wrong hash so suppose you want to take part in reputation mining you just simply set up your mining farm actually no you just take your laptop all you need it's a small calculation in the off trained world it's only hard in the context of aetherium you need to stake some tokens our colony tokens are needed to become a miner then you run the colony mining client and the colony mining client will monitor the etherium blockchain and collect all of the little events that happen that influence your reputation apply that to the reputation tree figure out the correct new route hash and then submitted to the blockchain having said that all miners of course want to be the one to submit it to the blockchain and we don't want to spam the network with too many submissions so there's this competition going on we're at the start of a submission window very few miners qualify and as the time goes on more and more miners qualify until all the submission slots are full and then a new cycle will start yeah and then miners earn token miners are in turn earning tokens is the paradigm in this space so that's no surprise that happens here as well and so that's the that's the overview of this mining procedure and I want to say just a little bit about this seal and why token so that you don't get the wrong idea by thinking this is all it does any colony has a token to do its internal accounting with and the seal and white token is a token of a colony the so-called common colony which it's a special colony it's it's the one that's responsible for managing the colony network once we're launched in a fully decentralized way it would we don't want to be like us as a colony team want to be responsible for maintaining the network indefinitely we also want to keep that decentralized and there is a special colony whose role it is to maintain the contracts and so forth and it's the this colonies tokens that are used in the mining procedure all other colonies pay a small Network fee to the common colony for the services provided the maintenance of the software and also the mining and if this network is profitable if the common colony is profitable people who hold tokens and reputation could expect a payout so there's an economics involved in this entire network that's more detailed in our white paper okay so let me talk about what happens if someone tries to cheat for our reputation mining to work all we require is a single honest miner which is good but if there are several submissions then one of them all that one of them we assume are wrong and how do we determine that so if there's two submissions all both parties have to submit a justification for what they've submitted which takes the form of another hash the justification root hash and these indices down here are all root hashes of a reputation tree so our h0 down there that's the root hash we agreed on at the end of the last cycle so we're all agreed on that and this one down the other end is the one that the miners submitted the one they claim is the new root hash and each step from our H I to arch I plus one represents a single update of a single person's reputation applied during the update period so if you agree on the very left and disagree on the very right at some point there's a first step where we do agree and what the contract does it challenges parties to prove the inclusion of a single specific reputation update step which is small enough to calculate on chain and by looking at the Merkel proof it can determine where the discrepancy is and after a few iterations either one party will have to stop responding because we found out that they cheated or we actually determined a mistake in the calculation so the wrong hash gets discarded and whatever is left in the end is correct and this is fully automated so if you run our mining client you will never have to deal with this this is all completely automatic and it also doesn't require a challenge response protocol of different actors the challenges come from the smart contract and is fully automated and that's because the reputation update while not being able to be done on chain is completely deterministic based on inputs from on chain events we released our white paper recently in September which just goes into this whole process in far more detail and also describes the economics of the network so why did we spend so much time on this we spent so much time on it because reputation really allows us to fine-tune the incentives we've heard a lot about crypto economic incentive systems and they often involve paying people to do things or penalizing them financially to do to try to get them to behave in a certain way but the reputation system also allows us to reward and penalize people in a lot immediately financial way and we can really fine-tune what we mean by good behavior and bad behavior and tweak that as we see fit and that's especially important because in this context of trying to avoid voting on everything we want call needs to be very fluid where for example if a task is created and I say I want to do that task if nobody objects it will happen there's no need to ask my team members so if you think of the teams you're working in most the time you are agreed in agreement amongst yourselves and if every little action required a vote it would be a or in this headache so it's designed not to use that and if somebody goes in and forces a vote all the time they might they they might actually lose reputation based on abusing the system if they if you do it in just those moments where it really counts the system could pick up on that and you could be rewarded so because the calculation is off chain we can make it as complicated as we need to really fine-tune all the incentives of the actors in the colony and it's much more than we could ever do on chain and yeah one of the aspects that we really can't do on chain is the concept of reputation decay so reputation in our colony is not forever you earn reputation that means you then have influence in the colony but over time that influence decays away and that's a protection against people early on in the colony amassing massive reputation they have a lot of influence but it should not last forever so when you join a colony later you can assume that the people with the most influence now are the ones who did the most work in the recent past and that really evens out the imbalances over time so we think this is a key feature so back to the task that I'm working on right now when I upload the video of your standing ovation I'll get points for that for the talk last year at DEFCON 2 with Elena I will have I still have some points because that was relatively recent Jack right here gave a talk at I've con won his points have completely decayed away if he wants something should really come up here and tell us some more about colony soon thank you so in summary the points are earned for doing good work and good is something that we can tweak and fine-tune to get the incentives right and these the the reputation ways your decisions all throughout the colony but we try to keep them as local as possible again in the call in the interest of keeping making things as unbroke rata k-- as possible keeping them within the small team within a department and don't always go to the full colony for every little decision and maybe importantly i haven't mentioned yet reputation doesn't translate from one colony to another and that's because there could be many different colonies and we have no idea what your there's no way to translate from one to the other what it means to do good work in one colony might have nothing to do with another and it relates to the various tokens so if one colony has a great work and this token is worth a lot the numerical values of the reputation might be quite low elsewhere they could be completely inflated and meaningless so it's within a colony but the reputation mining process updates everyone's reputation in all colonies in all departments in all skills so that's one global system within the colony network this is our team our team has grown quite considerably over the last year and this photo was taken at our last off-site and in fact it's already out of date we've added more people since then it's a great group of people really glad a part of this team so I want to leave you with our advertisement for our blog the blog Conan Doyle has a lot of good content that goes beyond just colony we write about regulatory aspects of token sales of sharing equity agreements in in this the central space there's a lot of good content please do check it out find us on twitter at join colony and i'm now ready for that applause innovation to prove that i've completed my task [Applause] [Music]
