Liveness and Safety
In discussing the correctness of a distributed system, two properties are usually referred to as safety and liveness.
A safety property of a distributed system means that nothing “bad” ever happens during the execution of a concurrent program. This means the system never enters a state that is considered incorrect by the protocol that it follows.
Liveness, defined informally, is a property that asserts that “good” things eventually happen during the system execution. Meaning, that the system continues operating according to its protocol.
The liveness analysis of Orbis will operate under the assumption of a partially synchronous network, which guarantees that the messages are delivered within some finite time-bound. But in the full asynchronous model, liveness cannot be guaranteed.
We plan for Orbis to be a system that is safe throughout its entire execution, even in a fully asynchronous model.
If congestion exists on L1 (Cardano), Orbis will not be able to push zk-SNARK updates to the verifier smart contract, but it will be able to periodically forge new blocks and eventually push an update to L1 after the congestion is no longer present.