An attempt at an approximate mechanism to do fast withdrawals


#1

Having felt that Plasma withdrawal time is a major hindrance to adoption, I put together some rough thoughts which I give below

This is an attempt at an approximate mechanism to do fast withdrawals by incentivizing a set of watchers.

  1. Since Plasma can be considered an optimistic approach to consensus, we can say, the need for consensus arises when a user attempts to exit (rather than when a block is produced) and a set of watchers provide the consensus.

  2. A PoS based validator set is formed.

  3. From the validator set, PoS elects a leader/operator for a period, who then produces blocks and earns rewards. The remaining validators are designated as watchers in that period. In different future periods, the previous watchers will get the opportunity to become the leader/operator to produce blocks and earn a reward. In a period in which a validator is a watcher, they can also earn from successfully challenging fraudulent bonded exits. This could provide sufficient incentive for watchers to be continuously online.

  4. Whenever a user attempts to exit, all the currently designated watchers in the validator set verify it by explicitly communicating a “challenge” or “no challenge” as given below

  • If every watcher explicitly communicates a “no challenge”, the exit happens

  • If some watchers communicate “no challenge” and the other watchers challenge then If even one challenge is successful, the exit is prevented

  • If some watchers communicate “no challenge” and the other watchers challenge then If all challenges are unsuccessful, the exit proceeds

  • If a watcher does not communicate anything then the watcher can be slashed and/or evicted from the validator set.

  1. A complete chain exit when a leader/operator produces an invalid block or a block is withheld, it can be handled using a separate function in which the leader/operator can be slashed.
    Edit : I don’t cover this step for fast withdrawals. It can follow the 1 or 2 week withdrawal process for all to exit the chain.

Is this correct or can it be altered to make it work?


#2

Unless I’m mistaken, you can elide away the use of a token and PoS by simply using merged consensus: Permissionless Trust-minimized Side Chains with Merged Consensus. If you want a permissionless validator set for a side chain, with incentives to watch the side chain, then merged consensus is a better alternative to PoS in every way.

There are some issues with using the data availability scheme of Plasma Cash (which is identical to the one used by channels, since Plasma Cash is channels) with watchers that don’t know what to watch specifically. Unless hired to watch specific coins, what happened if a block gets produced and withheld, with a bunch of exits? Do you challenge everything? If all the exits were non-fraudulent, then you’ve just lost your challenge bonds. Blind watching isn’t feasible.

On the other hand, you can use a different data availability proof scheme for your challenges, such as erasure code (which will be used in ETH 2.0 by necessity)…but then you get exactly the solution I proposed in the link above. This proposal doesn’t give you fast exits.


#3

what happened if a block gets produced and withheld, with a bunch of exits? Do you challenge everything?

Withheld blocks is covered by step5. Everybody starts exiting the chain. Here fast withdrawals don’t happen and the normal 1 or 2 week withdrawal is followed.

I’ll also look into the merged consensus approach you’ve given a link to.