Monthly Update: May 2022
We are pleased to release the first of our developer updates for Orbis. These will be released at the beginning of every month and provide a detailed overview of what we have been working on in the previous month and our progress to date. For this update, we will also provide an overview of the current developer staffing alongside the expertise we have on hand to build Orbis.
Orbis Labs has a team of 17 engineers, mathematicians, and researchers. These people break down by focus and areas of expertise as follows:
Main focus on Orbis:
- zk-SNARK engineers - 6
- Protocol engineers - 4
- Compiler and emulator engineers - 3
- Front-end developers - 1
- Leadership/Operations - 2
- DevOps engineers - 1
Areas of expertise relevant to Orbis:
- Cryptography/zk-SNARKs - 2
- Haskell - 12
- Maths - 6
- Rust - 1
- Formal verification - 1
- Cardano - 5
- Decentralized protocol engineering - 3
- Embedded systems - 1
- Mathematical logic - 1
Work done so far
Orbis Labs has performed thousands of hours of research and development, resulting in hundreds of pages of research and tens of thousands of lines of code. This research and development breaks down into three key areas: zk-SNARKs, the Orbis protocol, and compilers and emulators. Here is what has been done in each of these areas:
- Developing a universal TinyRAM circuit for creating zk-SNARKs verifying the results of smart contract executions. (>60% done)
- Defined a formal circuit specification language (OSL).
- Defined a spec of the circuit for verifying Orbis rollups.
- Defined a process for compiling OSL specs into circuits.
- Developing a formally verified implementation of the process for compiling a circuit spec into a circuit. (<10% done)
- Researching approaches for off-chain recursive proof composition.
- Researching approaches for on-chain proof verification.
- Designing the layer 1 protocol. (>90% done)
- Prototyping the layer 1 contract. (>60% done)
- Designing the centralized layer 2 protocol. (>90% done)
- Designing the decentralized layer 2 protocol. (<10% done)
- Compilers and emulators:
- Developed an LLVM backend for TinyRAM.
- Developed a TinyRAM emulator in Haskell.
- Developed a formally verified TinyRAM emulator in Coq.
- Developing an Untyped Plutus Core (UPLC) to C compiler. (>80% done)
Links to public work:
- Haskell TinyRAM emulator - https://github.com/Orbis-Tertius/tinyram
- Coq TinyRAM emulator - https://github.com/Orbis-Tertius/coq-tinyram
- UPLC to C compiler - https://github.com/Orbis-Tertius/uplc2c
- LLVM TinyRAM backend - https://github.com/Orbis-Tertius/llvm-project/tree/tinyRAM_backend-1
Overall estimates of the state of completion of the design and implementation effort required to release Orbis V1, the ratio (effort expended / (effort expended + effort remaining)) broken down by area and expressed as percentages:
- zk-SNARKs: 30%
- Protocol: 25%
- Compilers and emulators: 80%
The roadmap calls for releasing Orbis V1 in late 2022 or Q1 2023. The project is currently on track to release on this timeline.
Orbis V1 will feature a Cardano-compatible, isomorphic eUTxO data model with trustless on-chain verification of off-chain transactions, including smart contract transactions, implemented using zk-SNARKs. Orbis V1 will not have full decentralization, so it will not be fully censorship resistant or fully trustless. These issues will be corrected in a subsequent release of Orbis.