This section describes the omnichain synchronisation logic on Valio
In the sections above we considered examples of deposits and withdrawals in a system on a single network. Valio is an omnichain system that spans multiple networks and thus there is network synchronisation that happens behind the scenes.
Synchronisation is triggered by certain events such as deposits and withdrawals. During a synchronisation event, the Valio contracts on multiple networks need to arrive at a shared understanding of the global state of the system.
One example is calculating the Net Asset Value. Currently Valio is implemented in a one-to-many synchronisation architecture, but over time will progress to a many-to-many sync model.
Currently there exists an orchestration network - Arbitrum, which queues all of the global events of the system. Deposits and withdrawals are initiated from the orchestration network, since this is the only way to keep track of the sequence of events.
Once an event is triggered, such as a withdrawal, the orchestration network sends messages (using LayerZero) to the other networks, in order to request information about their states. Once the other networks respond with the required information, the orchestration network processes the global transaction, such as releasing deposits on all networks.
As this process is happening, certain restrictions are placed on the system in order to avoid security issues.
With today's technology, there are lags associated with fetching states from other networks, even if block reorganisation times don't need to be hedged. This causes latency which can be avoided in most scenarios. There is technology in development that addresses specifically this issue, and Valio will be able to meaningfully reduce system lags over time.