liamzebedee / retrust

Subjective consensus algorithm and value governance protocol 🌎
15 stars 3 forks source link

Protocol design/analysis #3

Open liamzebedee opened 5 years ago

liamzebedee commented 5 years ago

PRESTO cryptoeconomic framework for system analysis.

liamzebedee commented 5 years ago

More thoughts

last thought, this is a design for reputation consensus I'm brewing over. Nodes perform work for some user U. The work is expensive/impossible to verify, so it is merely notarised onchain. 

The mechanism we are desigining is so videos are transcoded correctly to some quality level.

We can reduce our exposure (function of event) to something without understanding the event itself.

We can reduce our exposure to encoding issues without understanding good quality encoding ourselves.

How do we determine correct quality level? It's a market.

As long as we can reduce the bad apples, we will be okay.

How do we know bad apples? By reputation

If a node transcodes poorly, they will receive poor reviews.

How do we know poor transcoding? 90% percentile.

You pay and you review. If the quality was bad, you can attest to it. Other nodes then adjudicate, by either voting or reproducing the work. 

The node then is placed lower in the queue in terms of reputation, and incurs a penalty.

Realistically, reputation is a mechanism which insures against the group's subjectivity.

Reputation mechanics are different to POW consensus, because they rely on a subjectively valued work that can't be approximated with an objective function like POW. 

Transcoding network =
    proof of work = transcode a video
    reward = reputation
    payment = network token
    objectives:
        video is encoded to agreed standard
    mechanism:
        work is given to those who have reputation
        adjudication can occur when work is disputed
        the community can vote BASED on their reputation as to the outcome

mechanisms:
    reputation is used for voting
    users buy reputation from other members
    they then pay the network for services
    if there is adjudication necessary, those trust relationships are used

    you buy TRANSCODE tokens from some node
        they can mint these proportional to their reputation
    you exchange them to another node for services
    the node thus gains an endorsement from the node that sold them to you
    however if the services are poor, then adjudication occurs
    node's place votes on whether it was up to scratch

    basically a way to scale trust
    we record all bonds created between exchanges
    so a transcoder performs transcoding for you, I give you a good recommendation
    how does my reputation mean to another person? 
    the value of the transcoding is measured in x
    but the risk of malfeasance is measured in y
    y is reputation
    we want the risk to be minimised
    so if a validator is bad - this can be claimed
    the node claims it, which puts their reputation on the line
    their reputation is related to the node who gave them the original reputation

    where does reputation initially come from?
    how do we link that nodes reputation to the original node?

    to become a node with reputation, you need to do work
    you stake an initial amount of the network token
    which then entitles you to entry
    thereafter you can build up your reputation

    in uber, if you fuck up, then you are banned
    in uber, you undergo other things to get your reputation
    or entry into the group

    we can maybe just forgo this, and instead require an initial staked deposit from every member

    so everyone stakes some amount
    and then the trust is generated
    from there on out

    entry can be gained by endorsement

    reputation is gained from doing good work
    and whenever there is a claim, the arbitration takes place according to the members of the network
    if the votes show that the claim is valid, then that reputation is lost

    what stops members from colluding? 
    the fact that reputation is weighted
    there is no single figure that attains massive status
    forking is part of the process

    then how do they coordinate?

    if we have a globally weighted interest
    then maybe we could require that to join the system
    nodes stake some token amount

    somewhere incorporate an exponential function

    ie. for a node to do work, they stake reputation
    they can get more reputation by staking the native token

side effects -
    the reputation of the node remains
    the payment from work is not refunded

what if -
    reputation cant be transferred
    big whales own lots of reputation, get lots of work
    smaller party wants to challenge whale-
        the whale cannot vote
        but the influence must be proportional to the value of the community
        such that the whale is not ousted, due to a smaller minority
        there needs to be disincentive to simply oust other members
        communities need to reproduce the work, stake their reputation, and risk ruin

They are also different to DAO voting, because they can't be plutocratic in nature. 

Reputation is about the node's value within the group's notion of value.

The value = subjective criteria

"The greatest shortcoming of the human race is our inability to understand the exponential function."
liamzebedee commented 5 years ago
reputation established initially through stake
if a node does something bad, they vote, and then their stake is slashed
they use reputation to vote on whether things conform to the system's value
reputation can be gained by endorsements from other peers

nodes gain more evidence for their reputation by the more successful work done
but the reputation is a relative value

occasionally to strengthen ties, the system asks nodes to perform verification by random sampling

this auditing is not without collusion
to combat this

reputation is only gained from valid work transactions
work transactions can only be filled in accordance with the marketplace
the marketplace specifies that reputation signals fulfillment

any tx is challengeable
users can vote to arbitrate

what happens when the arbitration is called just to oust a node? 
ie. the quality is not the issue
where is the incentive to align quality with the voting period?

arbitration does wat?
    if it's bad, burns the reputation in proportion to the transaction
    slightly poor = slightly burnt
    very poor = very burnt

the token is used for payment

how do we allow access by reputation into the system? 

nodes can vouch for other nodes
they get paid in fees for doing this
the node then receives the reputation

say it's transcoding:

transcode video - get 1 TRN, 1 REP
now the node has lots, they decide to post a fake tx, and then arbitrate
there is an arbitration fee
the nodes with highest rep then get a say

how do we prevent collusion? 
allow every node with good reputation to cast a vote

sybil-resistant reputation
every node can vote 
if they don't agree with the arbitration, they can fork

the communities then split

the members benefit from the brand of the community
the arbitration services are charged at 3% or something
that's the stability fee

the uber driver gets reputation for doing their job
the user gets rep too

the user can downvote them
in which case arbitration can ensue
and the driver can seize the users stake if they are wrong

the reputation comes first in the community
before stake does

reputation is the value being created
stake is the collateral in case it doesnt exist

if you are doing work, you need to be collateralised
the collateralisation is determined by the community itself

you put in stake, you can become in the listings
there is some one-way bonding curve

what is the cost of a wrong job? 

what is the cost of insurance? 
ie. total insurance staked is blah

what is the price of a service
then we can do it in free market fomrat

bitcoin = blah
ethereum = blag
livepeer = noot

we just let reputation be generated

you can cast bets on nodes
everyone must vote
delegating is default

so if a node is entered into the system
we assume trust from the beginning
with some collateral as bond

if the node does bad, then the system absorbs her bond

reputation = (reliability in quality) = (repeat liability for quality)
quality = video transcoding
repeat = persistent quality
liability = reputation or stake OF the person

nodes perform work
work = video transcoding
transaction = work for money
review = judgement on work
reputation = reliability of quality of work

marketplace = 
    list of asks
    fulfill based on best reputation

    price = 
        | signal of actor quality (reputation)
        | signal of ecosystem quality (token)

        required in native tokens

    minimum conditions for participation:
        seller = reputation > 0.5 || stake = 50 TOKEN
        buyer  = 0

sybil attack     = faking reputation through lots of endorsements
collusion attack = manipulating voting

sybil attack is mitigated by:
    fixed ecosystem cost for reputation

fraud/risk is mitigated by:
    order matching requiring equal stake to be escrowed
    ie. buyer and seller lose access to reputation/stake for time being

the community can vote, arbitration is done by holocracy

how is the token limit decided? 
some sort of % of reputation minted is the minimum

ebsl is really only useful for computing consensus 
because it lets you figure out who has the biggest weight in trust

if you make sure the network is strongly connected (by a hub for example), that would be great
ie. every node trusts the hub with their stake and equally in return

consensus = economic security

the consensus is given by all node's reputation, and therefore stake

when a node tx's, then it is given reputation by whoever transacted with it
the transactor needs to buy into the network token to build reputation
the minimum of such token is some % of the total reputation
however reputation is rewarded after, ensuring that the system is somewhat resilient to plutocratic scenarios