Various improvements to Kleros protocol

Kleros protocol

It is the Aragon who inspired me - see the screenshot from the initial commit.

Kleros is not just a bunch of guys building software that runs on the Ethereum blockchain. Kleros is more, Kleros is the protocol.

What does the protocol consists of?

Blockchain does not know what is fair, just, legal, agreeable. Only humans (or sufficiently advanced AI) who can tell. But how to reflect data on the blockchain?

Kleros protocol in a nutshell:

  1. Staking token - rational financial incentives to keep the system honest.
  2. Individual cases - Shelling point
  3. Slashing inactive and dishonest jurors.
  4. The prohibitive cost of 51% attacks

If you can explain in a few sentences in plain English - it is simple enough.

Complexity is the opponent of simplicity and adoption. That is why the current version of the Kleros protocol is simple, the existing apps in production are simple.

Various improvement proposals to Kleros protocol

Based on my active participation in this crypto-economics experiment, I was able to observe some real-life situations.

:one: Winning side is automatically funded for appeals

Look: Proposal: Kleros Cooperative Coommunity Fund (KCCF) DAO and funding the appeals

That conversation landed in the transparency report: https://blog.kleros.io/kleros-transparency-report/

We studied how fee insurance should be structured to maximally encourage the participation of economically self-interested third party insurers. These ideas are important in maximizing the defense against bank attacks and ensuring that there is an environment where actors with modest resources that are parties to disputes are not at too great a disadvantage relative to actors with greater resources.

:two: Explicitly limit to 5-6-7 appeal rounds

Thread: Discussion: limiting the max number of appeals to avoid bleed 🩸 war of attrition

We have jurorsForCourtJump and cost of the appeal in general court=MAX_INT. If you are clever enough and know how to read the code, it means that after a few rounds, the number of juror doubles and cases lands in general court and all the jurors participate, but the cost is MAX_INT so it’s effectively game over.

:three: Require 2/3 majority

Also in that thread: Discussion: limiting the max number of appeals to avoid bleed 🩸 war of attrition

Check the Mysterium token - http://kleroscan.com/dispute/135 - 7 yes, 6 no - such controversial cases should have more scrutiny, more jurors… In the current version of the protocol - no clear enough incentives to fund the losing side. Keen to discuss and experiment the 2/3 threshold and legitimising “0” as unclear / undecided / cannot tell with full confidence.

:four: Legitimate “0” unsure, unclear, it depends, need more info, ambiguous

Currently we “0” catch-all and surely there is a difference between something totally illegal, such as arbitrating assassination market or I was away for Xmas and didn’t vote.

On the same note, legitimate “666” evil (number of the beast), unethical, harmful

:five: Harsher penalties for inactive jurors

More incentives to remain active. Check this out, noone voted: https://github.com/kleros/tokens-on-trial/issues/63

Penalties to be proportional to the staked amount.

Giant whale losing 3000 PNK - not a big deal. Losing 5% (the floor at 3000) is much more painful.

:six: Allow withdrawing with mutual agreement

Kleros might not be the best way moving forward. A or B are neither OK, guys figured option C which is better.

:seven: Allow giving up

Someone may realize it’s game over and save some money.

“I lose, the evidence, the existing votes (and previous rounds) of the jurors are convincing me I’m losing, let’s save money on juror fees, simply give up.”

It can happen also during the vote? 7 jurors, 4 already voted “no”. You know you will lose, maybe you can give up and pay less in fees? (the 3 remaining ones will not get paid, assuming non-concealed votes)

:eight: Weighted vote

See dedicated blog post: Weighting votes "beyond reasonable doubt" - because sometimes a juror might be genuinely not sure... 🤷‍♀️

Data-based approach - more experiments

I wish Kleros 1000+ cases in the coming months - this is required to test some of these protocol improvements in real life.

I hope to meaningfully contribute to creating integrations - marking evidence as fake news, annotating web as fake news. See this tweet:

Kleros on layer 2 - fast enough, cheap enough - we can annotate the whole web. Realistically speaking, critical mass might be an issue, but I can see it coming - a self-fulfilling prophecy, people on the internet choosing a publisher because they use Kleros to verify fake news.

You can also read my observations about fake news: Extending "fake news" prevention mechanism + banning "fake news" (just like you ban chemical weapons, land mines and nukes)

(Shilling “The Great Hack” - https://www.youtube.com/watch?v=iX8GxLP1FHo - on Netflix - it is indeed hack of the epic proportions)

1 Like

Most of the research we have done in the vein of protecting parties with modest resources against bank attacks has been focused on the crowdfunding-type mechanisms like the one that is currently on the t2cr. However, I looked at how one might parameterize the fees if we did something like what you are describing here (basically how much higher the fees would need to be). I have some (extremely drafty) notes on that that you can check out here: https://github.com/kleros/research-docs/blob/master/research-notes/predisputefundingarguments.pdf Note that it is something that could be done as a second layer, where some new smart contract keeps a vault of money that is used to appeal automatically whenever the winning side requires, and parties decide when they write their arbitrable contract whether they want to pay higher fees to make use of that or not.

Absent an identity system (such as what we might eventually have with Proof-of-Humanity), you can’t really do this as whales can always split up their stake into lots of little stakes only one of which would be drawn on a given case. So they can always get back down to the current situation where they lose a percentage of the min_stake.

On 6/7, I agree that a mechanism for parties to withdraw from a dispute even after a ruling/appeals (i.e. they come to some kind of settlement and with unanimous consent whatever was at stake in the original arbitrable contract is unblocked) is a good idea. At that point, other parties might have an economic interest in the ultimate outcome being “honest” (e.g. jurors who voted in earlier rounds or crowdfunders), and might want to keep appealing the ruling, but there is no reason that the parties need to remain hostage to that if they come to an agreement between each other. That kind of setup is already compatible with ERC 792, but it would be good to have more template contracts like that.

I see nice improvements suggested here, particularly point 1, 6 and 7 (maybe with a bit of tweaking to be done).
Are those points being considered/studied by the team ?