Myths and Facts of Reputation Systems
Devcon 1 · November 2015 · 12:49
Andres Junge of Yaykuy presents on the myths and facts of reputation systems. The Devcon 1 talk examines what reputation can and cannot do for coordinating strangers online, and which common beliefs about scoring and trust hold up when such systems are built on a blockchain.
Speakers
Topics
From Devcon 1, hosted by Ethereum Foundation.
Transcript
okay hello everybody can you hear me yes good well my name is sandra's you may come from Chile I also work for the consensus amazing people well I'm going to talk about reputation systems I was I'm working on this for almost five months so this is what I've discovered okay why do we want reputation system as a society basically to answer questions right and take decisions faster like if I need to know something about somebody or something then I try to gather all the information that is available and make a decision type is it worth it or how it's going to behave it's like it's
this person going to behave well if I gave him some money is it going to give it the money back to me or not well let's gather all the information I have on his payment history and see how it goes or for example if I have a lot of different products or movies or something and I need to decide which one to choose well let's leverage on the information that's available from other people that says okay this movie is good or this other movies good right so for first question you need to address here is if that's my app really needs a reputation system because one really nice thing about athyrium contracts is that enforced behavior if you have a
game for example or you or you are developing a game on the etherium system or a teener platform and you want at reputation system so you can see if your players are going to behave well we'll ask you first can you play it can play your cheat on your game because if you can cheat because the contract enforcement not there's no way to cheat on the game so why do you need a reputation system for that right people are never going to misbehave I found this book it's very interesting one building web reputation system by dr.
Randall farmer he used to work at the Yahoo and he does a very good definition of reputation systems and also drains older or this little other reputation system in single modules so basically the most basic thing about reputation system is a reputation statement reputation statement is something that somebody says or someone saw or something says about someone or something right so we have three main concepts here the source of the reputation statement the target of the reputation statement and the claim basically what he says right I have some examples yourself reputation statesman
like joe says seems a good developer or Daniel told me that James Roy James Bond movies are the best action movies ever we gather all this information and try to make a single aggregated score or number to help us make this decision but it's one thing missing and I think it's one thing that's really important not to miss is context context is very important in reputation systems I if I do a reputation statement on something or someone that is in a context i can say that tim is a good developer but I can say that Tim is very bad at killing spiders for example and that's not yeah
you know what what I mean team and that's it thus make him a bad developer know in the context of spider killing is really bad but in the context of developer is still very good so the first thing is never ever mix context it's not a good thing never we have a really bad problems in society with this where I came from and I guess this is everywhere if you lose a job and you have loans to pay it's hard for you to pay those loans right so you get a bad payment reputations because you didn't pin long but at some point somebody's think that was a good idea to mix your
credit score or your payment reputation with your working or work and reputation as a worker so you go to a job interview and they say well you are ok but you have a very bad credit score so you don't get a job if you don't get a job you don't get money you can pay your own and you get in this circle that is really hard to get out and it's a very very complicated problem so please don't ever mix context I know it's tempting to have a single score that can help us measure people in some ways to say okay you have a 5.2 score or 3.3 score in you know as a person but that is makes no sense at all really please ok how does
the reputations process goes first we collect and store reputation statements for a context specifically for context then we aggregate those claims to make a term for a target to try to make a single score right and then we take a decision or make a decision based on that reputation score it's ok collect and store reputation statement for a context issue in a contract we are athyrium developers everything goes in contracts right so we can collect and store information and store in the contract but check this in consideration how to code the claims you can code it in a 125 number you can call yourself integral number you can call this a 1 or
0 like the reputation system for like or don't like or star or lost our privacy privacy is very important be ethical on this if you are putting something in a permanent system like a theorem which platform is you might consider them that maybe you are saying something about someone that will be go public so we were be aware of that aging is another problem you are almost all young but when I was young I was really wild and crazy and that's that affect my reputation now do I have can I not change this person if you put something permanent in the web that will stay
forever so consider how this gun is going to be age do you have a time limit or on your contract that after that your reputation claims will vanish or something ownership ownership is very important who owns your reputation do you own him somebody else that source owns it it's a very complicated subject because the owner can do something with the if your program in the contract like erase or not and the cost this is very important in some reputation system i have investigated there's a cost on the cotton putting a reputation statement because you want to try to make it hard for people to make bad reputation
statement or false reputation size stays statesman's about someone but please take in consideration that cost you for this source for the target is mostly you that you want to have good reputations in some way so try to balance this because you want to have a lot of reputations but also you don't want to have false reputation okay we have all these reputations collect and store in the contract let's aggregator and let's make an aggregate function for this in a contract easily it's a contract that reads all the information and makes the score right well here we have more problems which aggregate function do is make a sum of all the numbers to a make
on average well that's not the worst problem the worst problem is that aggregation functions are personal it's like if somebody says this is a good movie and somebody else is if this is a good movie or a bad movie maybe I will trust him more because or I will use this information and not that one because i know i have some kind of like good with him or is my friend I know he likes the same things I like so it's that I use that source better than that other source source we have some kind of weighted by source function right so my weights are very different than your weights so it's a personal function so that's a general function makes sense at
all you have to think about it really well and also always consider or make it very transparent for people to see how that function is calculated because then you can decide if thats functions applies to you or not i have done this little experiment yesterday night to see let's try to buy a action camera on amazon okay I've just a lot of presenting wheel of options all with a number from one to five or 3.8 or something ok I see this is one to five stars and then I see okay the system has three point eight out of 5 stars but well amazon figured out that doesn't helps too much people so you
need to also add how many people have raid that thing because it's different to have a five star with two persons rating it and have five stars or 4.8 having 100 people rating it right but also if they say okay maybe you need the information based on how many people choose each each kind of rating right so they put it this histogram so you can decide it well and after that well I let me let me see how many which are the people that choose 5 stars and why and then I go to see the every statement and i found that ok Sharon Johnson for example says my 12 year old son is very pleased well I'm gonna tell your old kit maybe I don't care about that statement
so that is not good information for me so maybe i will say okay this is a good product for a 12 year old kids another good product for me well then the next last step is to make a decision bake based on the reputation score well let's make a contract that reads the score and take the decision well i don't recommend that at all why as I have pointed out in the last example it's a very human thing to make this decision you need even use just the score just a lot more of other
things I basically first started with the score then go to the histogram then go to each single statement and then the site this statement is not useful this statement is useful based on source based on the content I don't think that is very easy to program on a contract I think this more in the area of artificial intelligence or something like that so in my recommendation is more lib the human to make the decision and not try to make the contract made the decision so a little recap first think about that's my Deb need a reputation system or not it's really
important theorem in forces behavior so maybe you have users or things that doesn't misbehave so you don't need a reputation system at all again don't ever ever ever mix context it's not a good idea it makes a lot of problems for society aggregate functions make sense or not do I need to present the user all the statements so he can make a Nagra gate function or a score or listen or can I make a general function as a recommendations for the user right and last leave decisions to the human at least these decisions that are very hard
at some point don't leave it to contract gracias