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.
-
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.
-
A PoS based validator set is formed.
-
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.
-
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.
- 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?