Following the dicussion in another thread:
One example which does not involve money staking:
- Each user has “reputation” expressed as a number, starting with 0.
- When you connect with someone, you put your reputation at stake and the other side can steal it.
- We design a game similar to prisoner’s dilemma. If both sides cooperate they both get their reputation increased. Otherwise one side gets an increase and another side loses reputation, or they both lose.
- The effect is delayed and reputation increases/decreses gradually over some period. So you can’t know immediately what the other side did and if you made several connections it’s hard to know who exactly stole your stake.
This should incentivize you to connect only with people you know well.
To keep core of BrightID simple and benefit from the important feature of BrightID enabling definition of different verifications, we can implement such a feature as an application beside other apps using BrightID.
Suppose we have a staking app under IDChain context where BrightID users can use to deposit some IDChain Dai and select some of friends and specify how much should be staked on each person.
Such staking app can be implemented as web3 js client working with the staking smart contract and using the way explorer load connections data to load required information.
If we have such a staking app, different verification algorithms can consider the staking smart contract data as an input.