Two users make frequent transactions and update state. The current state is not posted to the DAG but stored by each party. The state reflects their relative balances. The state is represented by a (non-broadcasted) transaction that pays to an interim address that can be spent:
- only after large timeout - by any party - must pay exact agreed amounts to each party
When the parties create each new consecutive state, they also give each other a “kill switch” that allows each party to grab the full amount in case the other party publishes the previous state. The interim address can also (or-condition) be spent by party A, without timeout, if it supplies preimage of hashB. When the state is the last agreed state, party B, doesn’t tell A the preimage. When the state is replaced with a new one, B reveals its previous state’s preimage to A.
Our system works on the punishment-based payment channels, where funds are blocked in multisig contract between the channel sides and to ensure the correctness of actions, the parties sign transactions that are carried out, but not published on the network.If a party publishes old data, it is punished and deprived of all means.
Full information here: https://docs.google.com/document/d/19s4LYDfbWDREzVzUwxPuoKANeIGOgPGKV2zI9jTsPSg/