Skip to main content

What is Marlin?

Marlin is a verifiable computing protocol featuring TEE and ZK-based coprocessors to delegate complex workloads over a decentralized cloud. It allows smart contract based protocols, web or mobile clients and enterprises to reliably and securely rent individual compute instances or deploy serverless functions over a decentralized pool of globally distributed nodes.

Smart contracts can delegate computations to Marlin by posting jobs on to a relay contract which is picked up by the network’s nodes. Results are posted back on-chain along with an enclave attestation or ZK proof to prove that computations were carried out correctly. Marlin enhances the capabilities of blockchains in various ways:

  1. Performance scaling: Marlin boosts the effective throughput of blockchains by allowing computations to happen off-chain in dedicated nodes. The computations are still verifiable on-chain ensuring correctness.
  2. Off-chain data access and relay: Marlin allows programs to reliably access off-chain data using APIs, expose HTTPS endpoints to operate web 2 services and invoke smart contract transactions upon defined events.
  3. Chain abstraction: The middleware is compatible with any blockchain provided the relay and verification contracts are deployed on that chain. As it can support code written in any language and can also host backends, Marlin makes the blockchain transparent for users and developers alike.

The Marlin network consists of different kinds of hardware:

  1. Servers (like Amazon EC2)
  2. Servers with confidential computing support (like Intel SGX, AWS Nitro Enclaves)
  3. GPUs (like NVIDIA A100s)
  4. GPUs with confidential computing support (like NVIDIA H100s)

Users can access these nodes through one of the following sub-networks:

  1. Oyster Cloud - Allows confidential computing instances to be rented individually for any amount of time like one would on AWS or GCP. It comes with monitoring and uptime guarantees, provides developers a dedicated instance and is billed for the entire time it is rented.
  2. Oyster Serverless - Allows jobs to be transparently outsourced to the sub-network without having to bother with picking an instance, renting and paying for it any longer than each execution of the job. It comes with monitoring and uptime guarantees and the sub-network’s nodes are shared amongst all the sub-network’s users. The protocol pays for the nodes to be on standby and is compensated upon every task delegated by users.
  3. Kalypso - Allows ZK proofs to be generated for any circuit listed on the marketplace. The protocol pays for the nodes to be on standby and is compensated for every proof delegated by users.
  4. Marlin Cloud - Allows normal instances to be rented individually for any amount of time like one would on AWS or GCP. It does not come with any monitoring and uptime guarantees, is primarily reputation-based, provides developers a dedicated instance and is billed for the entire time it is rented.

Each of these sub-networks have their own sub-protocol, use cases and set of guarantees. As a permissionless network, any node can join any sub-network provided it fulfills the respective sub-protocol’s requirements. Similarly, as an open-source project, anyone can run and operate marketplace frontends for these sub-networks.

Broadly speaking, some advantages of Marlin over alternate decentralized cloud or ZK coprocessing solutions include:

  1. Tamper resistance: Many decentralized cloud solutions offer vanilla servers which technically allow malicious node operators to manipulate the execution of programs and deliver incorrect results. Marlin’s confidential computing and ZK solution makes the execution tamper resistant.
  2. Data confidentiality: Similar to the point above, many decentralized cloud and ZK coprocessing solutions allow node operators to view data inputs. This prevents users from sending data or outsourcing programs they wouldn’t like to publicly share. Marlin’s confidential computing solution prevents node operators from snooping into programs or any data sent to them by users.
  3. Circuit agnostic: Most ZK coprocessors are designed for certain environments, RISC-V, WASM or MIPS and can only process programs written in compatible languages. Yet others are designed for specific use cases like accessing blockchain history. Marlin’s ZK proof marketplace is circuit and thus language-agnostic, allowing nodes to choose which circuits they would like to support.