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