<aside> ❗
Zones remain in a state of active research at the time of writing.
</aside>
<aside> 💡
Zones are turnkey application environments that make dApp deployment simple, while fully embracing Logos’ core values of privacy, censorship resistance, and decentralisation. Their adherence to the Common Ledger specifications (see Crust) gives Zones strong interoperability with each other, enabling atomic cross-Zone transactions and allowing them to work as one coherent Native Execution Space. Transactions and state updates on Zones are private by default, with Bedrock ensuring their security by validating ZK proofs. Due to these restrictions, Zones allow for less freedom in their implementation compared to Sovereign Rollups, and are constrained by ZK performance limitations.
A key advantage of Zones is their permissionless nature, allowing anyone to participate in ensuring that a Zone remains live. Transactions on Zones are processed by executors, who update the Zone state and generate proofs that are verified by Bedrock validators. Executors are not linked to a particular Zone - rather, they are assigned by the Executor Network Service for fixed block ranges based on the ticketing system in the Crust. In the event that no executors are available to service some Zone, any Logos node can step in and process Zone updates.
Zones adhere to a set of standards that regulate their state and ensure security and compatibility with other Zones. This state is divided into two parts: the Zone’s partition of the Common Ledger, and an internal Zone state. A Zone also defines its state transition function (STF), which are the custom rules a Zone enforces on its internal state.
The ledger partition allows Zones to keep track of notes in their Zone and facilitates note spending within and across Zones. The data fields and owner of a Zone note are hidden from observers, with the Common Ledger providing a mechanism for transferring note value in a private way.
Zones maintain an internal state together with the aforementioned ledger partition. This state is only governed by the Zone’s STF, which is set when the Zone is created. While the internal state may contain any assortment of assets and data without regard for their compatibility with those on other Zones, the Zone must ensure that any state update adheres to its STF. Just like ledger updates, state updates are verified by Logos nodes via ZK proofs posted on Bedrock, ensuring the security and correctness of the Zone state.
The Native Execution Space allows users to engage in cross-Zone activities that are executed simultaneously across all affected Zones, as if all Zones share one execution space. Zone executors coordinate to create transaction bundles spanning their Zones for verification by Logos nodes. This functionality is referred to as synchronous composability, which means that functions in one Zone can call functions in another and use their output as input. Together with privacy guarantees for notes and transactions, synchronous composability opens up a realm of possibilities for private, seamless operations throughout the Native Execution Space. These may include the following, all executed within one block:
The first full implementation of limited synchronous composability on Logos will be known as a PACT - Private Atomic Cross-Zone Transaction. PACTs are used to “teleport” note value between Zones with full privacy and atomic inclusion guarantees - either the state is updated correctly across all affected Zones within the same block, or no update occurs. This protocol operates on an optimistic basis, assuming good faith cooperation among executors but including fallback options in case of misbehaviour. In such a scenario, the transaction and all its associated updates are deemed invalid immediately and will not be included in the block.
At the time of writing, the full array of possibilities introduced by synchronous composability remains complex, to be a focus of research in later stages of the project.
Zones are ideal for developers who want to launch a private, decentralised application that inherits the security of Bedrock with minimal setup required. A Zone only needs to define its state and STF, and the problem of bootstrapping sequencers is solved since Logos executors permissionlessly maintain the Zone. The default toolkit is built with Risc0, allowing developers to write Zone applications directly in Rust and any other Risc0-compatible language. Bridging and cross-Zone communication are built-in to Zones, making them great for applications that accept assets from different Zones. Zones’ private notes and permissionless execution are well-suited for applications where user privacy, infrastructure resilience, and neutrality are paramount.