CoinPool, exploring generic payment pools for Fun and Privacy



Summary:

The CoinPool proposal involves a multiparticipant offchain update mechanism, where the output at each state of the update mechanism is a splitting construction. At each update of the state, all participants must sign off on the new state. The proposal suggests using the WabiSabi protocol during negotiation of a new state. Participants can operate as WabiSabi clients and use credentials to sum up to the correct value. They can exchange credentials among the participants to perform value transfers inside the WabiSabi construction. To hide transfers from the elected WabiSabi server, participants can maintain two coins in every state, and move coins randomly across the two coins they own at each state update. It is noted that a desired feature for CoinPool is that a participant can exit, and the CoinPool would still remain valid, but only for the remaining participants. However, this is arguably a mild privacy leak, as every other participant now knows how much that particular participant took out from the CoinPool. In order to hide how much each participant owns in the CoinPool from other participants, unilateral closes must expose all the current outputs, without trying to identify which participant exited the CoinPool, preventing anyone else from figuring out exactly how much each other participant actually owns in the CoinPool on exit.To disincentivize a participant from closing unilaterally for trivial reasons, the SIGHASH_ANYPREVOUT can be used to force whoever performs a unilateral close of the CoinPool to pay the onchain fees involved.


Updated on: 2023-06-14T02:23:41.611538+00:00