over budget
Orbis: Layer 2 ZK Rollup
Current Project Status
Unfunded
Amount
Received
$0
Amount
Requested
$1,000,000
Percentage
Received
0.00%
Solution

Orbis is a ZK(zero-knowledge) rollup layer 2 protocol for Cardano. Moving computation off-chain scales Cardano’s throughput significantly.

Problem

Cardano can’t scale to support millions of users and currently proposed scaling solutions make compromises on security and decentralization.

Addresses Challenge
Feasibility
Auditability

Team

2 members

Orbis: Layer 2 ZK Rollup

Orbis is the first ZK rollup layer 2 solution for Cardano built to support decentralized finance (DeFi) applications and a thriving blockchain ecosystem. Orbis offers the level of scalability and transaction throughput necessary for blockchain to realize its aim to become a truly global financial system. Transactions occur off-chain on the Orbis layer 2 and are bundled together into a single ZK (zero-knowledge) proof which is submitted on-chain to the Cardano layer 1 and verified. This proof provides a mathematical and unfalsifiable proof that the transactions have happened on Orbis. It uses Plutus smart contracts and is effectively an extension of Cardano’s main chain.

Zero-knowledge proofs are a cryptographic method by which a prover can prove to a verifier that a statement is true without revealing any information apart from the fact that the statement is true. Orbis utilizes zkSNARKs (Succinct, Non-interactive, ARgument of Knowledge), a type of zero-knowledge proof which gives small proof sizes which do not require a two-way interaction between the prover and verifier allowing off-chain proofs to be submitted on-chain in a single transaction. Orbis additionally uses recursive SNARKS which allow proof generation to be split into pieces which can be farmed out to different computers. This property will allow it to scale linearly without limit.

Orbis has two main components: the Prover and the Verifier.

The Prover is an off-chain system and its purpose is to construct zkSNARK proofs verifying the occurrence of transactions. The Prover has an API similar to a blockchain node which allows users to inspect the state of the rollup and post transactions. The Verifier is an on-chain smart contract. Its function is to settle transactions happening on-rollup on Cardano. The Verifier contract accepts on-chain asset inputs, locking them up in the contract so they can be used on the rollup without the risk that they will be double-spent. The Verifier contract additionally validates transactions created by the Prover which contain outputs from the rollup and proof that those transactions have resulted from a set of valid transactions based on inputs provided to the Verifier contract.

Orbis provides an off-chain context in which smart contract validator code can run. Instead of being run to create transactions on the Cardano layer 1, in this context a validator code is run to create transactions on the layer 2 rollup. Orbis will enable PlutusTx smart contracts to be easily ported over. In addition, Orbis will support new programming languages called Pluto and Plutarch. Pluto and Plutarch are alternatives to PlutusTx for writing on-chain scripts. They optimize for efficient on-chain deployment by using zero-cost abstractions over Plutus Core. Pluto is simple and easy to learn. Plutarch is a Haskell-embedded domain specific language, which means all the facilities of Haskell are available to assist in writing Plutarch programs.

Halo 2:

Orbis is built using the Halo 2 ZK proving system developed by Electric Coin Co.(Zcash). It allows us to make a much more efficient system due to it being highly multithreaded allowing for both fast verification and proving times. It is completely trustless and supports recursive proofs where we can trivially prove execution of Plutus smart contracts in such a way that the time complexity of proving is the same as the time complexity of executing it normally. We can have a more decentralized system due to the recursive nature, meaning that aggregations of proofs can be aggregated.

Layer 3:

Utilizing recursive ZK proofs, Orbis will support the development of application specific rollups for specific use cases such as DeFi, NFTs, supply chains and micropayments. We expect the general user and developer community on Cardano to find a familiar environment on the Orbis layer 2 with more niche applications building their own bespoke rollup solutions which remain composable with other rollups and the underlying layer 2 Orbis. A thriving DeFi ecosystem built on Orbis can seamlessly interoperate between various rollups and the main chain.

Decentralizing Orbis:

Initially, Orbis will launch with a single prover operated by Orbis Labs. Orbis will transition into a fully decentralized, distributed stack whereby network participants will exist in an open, permissionless network. Full decentralization of the prover means that there is no computer, individual or trusted entity which is a single point of failure. Full decentralization of the prover is not in scope of the initial release but is an eventual goal and commitment of the project.

Cardano is in need of a scaling solution which makes minimal compromises to achieve maximum results and Hydra will not solve every scaling problem. We propose Orbis as the best possible scaling solution as it maintains all the core design principles of the Cardano blockchain while having the ability to scale the network to where it can safely host RealFi and DeFi applications at mass scale. The potential of ZK technology to transform the world in general and blockchains specifically cannot be understated. Orbis will enable all dApps on Cardano to achieve true mass adoption.

N/A

Statuses of individual system components:

Arithmetic circuits - research, design, and prototyping underway.

TinyRAM LLVM backend - development well underway, works on some simple examples.

Untyped Plutus Core to C compiler - development well underway, works on some simple examples.

Pluto - completed prototype; moving on to next language design phase which will introduce types, modules, and other major enhancements.

Plutarch - actively being used to develop smart contracts.

Prover node - protocol specification underway.

Verifier contract - prototyping underway.

Halo 2 verifier primitive for Plutus - specification underway.

TinyRAM emulator and assembler - validation underway.

To be added soon.

Founder:

Ryan Matovu - Ardana (Cardano Stablecoin DeFi Project) Founder

<https://www.linkedin.com/in/ryan-matovu-517988203/>

Chief Technology Officer:

Tom Sydney Kerchove - Msc in Computer Science

<https://github.com/NorfairKing>

<https://www.linkedin.com/in/tomsydneykerckhove>

Developer Team:

Morgan Thomas - MA in Philosophy and Mathematics

<https://github.com/morganthomas>

<https://www.linkedin.com/in/morgan-thomas-29a923b7/>

Daniel Firth - MSc in Mathematics

<https://github.com/locallycompact>

<https://www.linkedin.com/in/locallycompact/>

Las Safin

<https://github.com/L-as>

Mason Mackaman - BSc in Mathematics

<https://github.com/ursi>

<https://www.linkedin.com/in/mason-mackaman-685312166/>

Marcin Bugaj - Msc in Electronics and Telecommunications

<https://github.com/marcinbugaj>

<https://www.linkedin.com/in/mmbugaj/>

Faez Shakil

<https://github.com/faezs>

Quinn Dougherty - CC in Mathematics

<https://github.com/quinn-dougherty>

<https://www.linkedin.com/in/quinn-dougherty/>

Avi Dessauer

<https://github.com/Avi-D-coder>

Aravind Gopal

<https://github.com/aravindgopall>

<https://www.linkedin.com/in/aravind-gopal-mallapureddy-15b671148/>

Matthew Croughan -

<https://github.com/MatthewCroughan>

<https://www.linkedin.com/in/matthew-croughan-77b9231b6/>

Lee Hughes - Bsc in Computer Security

<https://github.com/nixinator>

<https://www.linkedin.com/in/lee-hughes-36a99735/>

John Bargman

<https://github.com/DarthPJB>

<https://www.linkedin.com/in/john-a-bargman/>

Statuses of individual system components:

Arithmetic circuits - research, design, and prototyping underway.

TinyRAM LLVM backend - development well underway, works on some simple examples.

Untyped Plutus Core to C compiler - development well underway, works on some simple examples.

Pluto - completed prototype; moving on to next language design phase which will introduce types, modules, and other major enhancements.

Plutarch - actively being used to develop smart contracts.

Prover node - protocol specification underway.

Verifier contract - prototyping underway.

Halo 2 verifier primitive for Plutus - specification underway.

TinyRAM emulator and assembler - validation underway.

Success looks like Orbis as a decentralized layer 2 protocol which inherits Cardano’s benefits of security and decentralization while scaling the network in terms of throughput to a level which is able to support global finance and other mass-scale applications such as DIDs, DeFi, social graphs, NFTs, and micropayments. Success will look like Orbis advancing the backend of a blockchain-based application stack where anyone can use services built on Orbis without being aware that they are using DLT-based applications, just as how most people aren't immediately aware of the wonders of TCP/IP or cloud-based storage and computing. Success will be apparent when Cardano, together with Orbis, is able to prove itself as a best in class next generation modular blockchain.

New Proposal

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3m 24s
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4m 3s
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3m 48s
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2m 16s
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3m 14s
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3m 19s
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4m 59s
    Darlington Kofa
0:00
/
~0:00