Skip to content

Instantly share code, notes, and snippets.

@liamzebedee
Last active February 7, 2022 20:06
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save liamzebedee/c1bb4f79b67b3e7a39215b7ac3a80771 to your computer and use it in GitHub Desktop.
Save liamzebedee/c1bb4f79b67b3e7a39215b7ac3a80771 to your computer and use it in GitHub Desktop.
Ideas on Trust, PageRank, Networks/Communities and how Blockchain can make us closer
This is design based on gut feeling.
PageRank lets us normalise relationships in a network.
With a blockchain, we can have an immutable ledger of edges.
We can use PageRank for reputation and identity?
People make votes
ie.:
a -> b
a -> b
a -> b
b -> c
Sybil attacks are an interesting area:
we can generate an unlimited number of identities
and create an infinite number of votes moderated by the economics of it
what else can we do with pagerank?
normalisation:
take all a node's votes
normalise the value they ascribe
ie 1000 vA == 1 vB if A is always making with 1000x more weight in their votes
the principal eigenvector is an interesting score of relativity
in pagerank, it represents the relative importance of a page
can we incentivise social connectivity?
PageRank on the network = get the relative integration of each node in terms of connected to other nodes
Something like the Gini coefficient
Something about X > 0.5 then we trust. It's a threshold system.
A : 0.8
B : 0.2
something like that:
We are looking at the clusters of the network and summarising them
ABCD = 0.5
DEHIJ = 0.5
Maybe we can use subjective logic?
Use the threshold as an uncertainty value
We want to be able to trust any person
To do that, we need to follow a line of trust
We want to incentivise social connectivity (?)
Direct votes are worth more than foreign votes (?)
Trust in A from B's perspective:
direct trust relations? = that
none?
is there a route to A?
[graph routing ew]
what if I transfer some of my trust to them only when I invite them?
digital empathy or something
if there isn't:
a priori
join the network
Liam invites Marijn
This is a trust contract:
I'm staking my reputation onto Marijn
There is some threshold hit for Marijn being trusted by other people now
For example:
I invite Marijn, and stake my EMP on him
Now Marijn makes some interactions
The ideal is that interactions are free
If Marijn does something good, I get rewarded, and the people who trust me get rewarded
The more closely connected our good actions are, the more weight in the network or something
Imagine you digitse the relationships of geopolitics for example
Big clusters (hierarchy of power: head of state -> government officials --> citizens)
Are the big clusters as trusted as smaller ecentralized clusters
Then later, we can stake our EMP on interactions
Thus, if someone screws someone else over, we can arbitrate the EMP or something
The importat thing to guard against, is mob mentality and tyranny of the majority
So you basically can allow a threshold value of the majority you will allow
If you imagine multiple independent communities that aren't connected yet by an EMP edges
We can tell this literally by constructing the graph and seeing which networks aren't connected
The threshold value represents the collective weight of the network must stake to vote in this
Collectively speaking:
PageRank over one network, get each node's relative weight of their vote.
How? We assume this exists, and the pagerank is somehow bootstrapping mechanism for EMP allocation. Also keeps it equitable with new entrants.
The networks can partition if there's a major failure in the arbitration process?
In doing so, the stakes are destroyed for both parties.
So, how to trust someone?
Within your network, it is your trust in them moderated by their past actions moderated by the people that have reported them.
REDUCE
FOCUS
Reduce:
Your trust in them
Their past actions
Moderated by
The people that have reported them
How do we achieve the last point?
What if two people are in two networks? Then how does their reputation work? Is it global or just network-specific...
I guess it's relative to each network.
Each path even.
All people give varying levels of trust to varying amounts of people
And you see these visuals and patterns emerging on a grander scale
Focus:
how can we know how much to trust another person?
Based on:
- our senses and gut instinct
- the situation in which we meet them
- who introduced us to them
- what we know about their past
how do we establish trust?
trust is reliability
re-liability - the idea that we make ourselves liable multiple times for someone else
ie. we stake something in the relationship, and it ?pays off?
What is the payoff?
If I trust you will pay me back, in future you can ask something of me.
Or maybe you will have better recommendation from me for someone who DOESNT KNOW YOU.
basically the payoff is always socially external(?)
We build up trust over our lifetimes
We lose it when we fail people
The more trust, the less overhead in communication
Communication = collaboration
Something something resourcefulness, leverage, history of humanity.
A scalable reputation and trust coordination protocol
Liam Zebedee - 25 Oct 2018
===
There are many reputation tokens, but we're not there yet. We want something that is an immutable log of someone's behaviour. But not for dystopian purposes - only arising from natural need.
We want to establish more trust with people, but not solely based in economic stake - ETH as a staked currency would make trusting people a costly action, which eliminates the benefits.
We could implement it as a separate reputation token. The problem then, is how do we coordinate the minting of the token - the whole value of a reputation protocol is that it is universal: being malicious in one domain should affect your reputation in all.
Lastly, Sybil attacks are always noted: how can we achieve the properties, while mitigating the risk of many generated identities and claims to trust from gaming the system?
## Proposed design
People are identified by their address.
Thesis: Trust is reliability. Trusting someone is reputable, means you can repeat liability on yourself that they will act reputably.
Liability in this case is represented as a token stake.
Acting reputably is up to the reader. This proposal assumes it is some protocol interaction which was good.
Trust token is minted when two people bond. Consider actors Alice and Bob.
Alice -> BOND(Bob)
Bob -> BOND(Alice)
Ledger:
From To
----- ---
Alice Bob
Placing bonds with people is akin to creating a mutual stake.
Problem 1: How do we mint the reputation token?
When a bond is created, this is where reputation is minted. The `from` actor will create bond tokens for the `to` actor.
The amount does not matter for now. It can be normalised.
Problem 2: How do we find out how much we trust any actor?
Using something like subjective logic, we can calculate a value for our trust in any node based on how we know the other nodes.
The key is that we must have a path between two nodes.
Question: what is a priori trust?
Subjective logic lets us contend with this question in a different frame: uncertainty. Trust itself can be a setting on the client.
Problem 3: How do we stop Sybil attacks?
If someone can submit mass bonds to one actor, they achieve nothing. However
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment