Hi, is there any plan to implement state channel in base wallet? This will be a huge advantage when instant transaction is enabled between users/business.
Indeed it will be and it would result in a much smoother experience for users. I had been writing proposals for what I imagine this would look like. You can read it here. Recently I’ve put together what such app would require from a purely techical point of view, you can read it here. As you’ve already noticed, it is a lot of work and there is some progress being made in that direction already. I am not sure if I can share more information, so stay tuned
Good to hear that. Also you wrote in your first link:
Then we get another prompt when our state channel opening transaction has enough confirmations so we can start doing off-chain interactions in a safe manner.
If we had to wait for enough confirmation as happen now (not using state channel), then it’s not really instantaneous. Please correct me if I’m wrong.
There are 2 types of State Channel transactions:
- on-chain ones - those are all transactions that are intended to land on-chain and to modify the channel object that is persisted on-chain. Examples for those will be:
channel_createtransaction that locks coins from participants and creates the channel object on-chain
channel_witdrawaltransactions that lock more/unlock some tokens from the channel object
Those are transactions that are expected to happen every once in a while. In order for a participant to be safe from the on-chain transaction being in a micro fork, one should wait for a few confirmations as one would with any other on-chain transaction type. Note that it is up to participants the number of confirmations to wait. The first confirmation can be expected in a matter of seconds but every next (key block) confirmation would take ~3 minutes. On-chain transactions are not instant.
- off-chain ones - those are transactions that are exchanged between participants. They don’t land on-chain, they don’t change the on-chain channel object but rather change the channel’s off-chain state. Off-chain transactions don’t need to be mined by miners but co-authenticated by both parties instead. In that sense - their speed is limited only by:
- internet speed between participants
- CPU intensiveness of the updates - updates are executed by both participants in order to achieve trustlessness
- time needed for authenticating the off-chain update - although not a technical problem, I put this here for completeness
In that sense - off-chain transactions’ speed and throughput is limited only by internet connection and CPU power This can easily lead to a soft-real time systems built upon State Channels based on off-chain updates.
A side note would be that with introduction of Virtual State Channels (where you open a channel within a channel) the confirmations expectation for opening/witdrawal/deposit/close of Virtual State Channels will be dropped and they will be as fast as any off-chain transaction.
I hope this answers your question regarding speeds of transactions.
thanks for the thorough reply. I appreciate it.
talking of VSC，it’s exciting！when will the VSC be finished？
VSC consists of a couple of problems, that depend on each other:
- on-chain protocol
- FSM implementation
- network resolution
At the moment we are aiming having the on-chain protocol for VSC for Lima hard fork