Origo (ORIGO) Review – A Scalable Privacy Preserving Smart Contract
|White Paper URL||https://origo.network/whitepaper|
Origo is a decentralized application platform that protects your privacy. It offers scalability through improved consensus and its highly portable virtual machine. Origo’s flexible design allows users to choose public or private transactions for different use cases and privacy needs.
Table of Contents
The Idea and the Team Behind Origo
Origo is a smart-contract enabled blockchain whose goal is to promise complete privacy to users. While other cryptocurrencies have tried to solve this problem by supporting confidential transactions, they do not support smart contracts. Origo does both with a protocol that combines on-chain and off-chain computation to preserve the privacy of smart contracts through zero-knowledge proofs.
The Origo team includes Fran Fang, a former Pinterest Senior Engineer with deep knowledge of distributed system, encryption algorithms and trusted computing. He holds a masters in computer science from Carnegie Mellon and a bachelor’s in computer science from Tsinghua University. Yijia Zhang is a former Google Assistant founding team member and tech lead as well as having been a Google Senior software engineer. He holds also holds masters in computer science from Carnegie Mellon and a bachelor’s in computer science from Tsinghua University.
It is not yet known how much time these team members are donating to Origo and what their roles are.
Origo has real-world applications in a number of industries in which people want to keep information private, including finance (think of private exchange, credit scoring, online lending, insurance, options and futures contracts); enterprise (salary/bonus contracts, employee stock incentive plans, supply chain contracts, corporate compliance); health care (personalized medicine, diagnostics, medical records); and others, including IoT, voting, auction, and fundraising (i.e. token fundraising).
The Origo Technology
The Origo technology has several important components that serve to enable the network to function:
Zero Knowledge Proofs
Origo’s technology is based on the concept of zero knowledge proofs (ZKPs). Zero knowledge proofs function when two parties, the prover and the verifier, where the verifier must construct a question (i.e. a proof) for the prover. This question is based on the idea that the prover can prove to the verifier that this proof holds while not sharing any information about why it holds.
ZKP must be able to verify the following:
- Completeness – If the proof or information is true, the verifier will be convinced.
- Soundness – No one who doesn’t know the proof (i.e. a cheater) can convince the verifier to reveal it.
- Zero Knowledge – The proof does not leak any additional information.
After a contract is completed in Origo, a Zero Knowledge Proof (ZKP) will be generated. The blockchain will then verify the transaction, and funds will be distributed according to the result of the zero-knowledge proof.
Origo Consensus’ architecture consists of an identity chain that uses widely adopted blockchain consensus such as Proof of Work (PoW) or Proof of Stake (PoS), or any other consensus resilient to sybil attack. The identity chain consists of blocks that contain nodes that can be transaction chain validators. The Practical Byzantine Fault Tolerance (pBFT) algorithm is the consensus of the transaction chain. Since pBFT functions best in a small network with a few hundred nodes, Origo has a fixed number of validators that are randomly elected from nodes in the identity chain to perform pBFT consensus.
Origo Consensus Architecture
Sharding allows for more transactions per second than in blockchains like Ethereum or Bitcoin. Origo has two types of sharding: computation sharding and state sharding.
The first type of sharding Origo uses is computation sharding. Computation sharding allows nodes in Origo to be split into multiple groups, each group with the ability to process a subset of transactions. This means that the more sharding groups in the network, the more transactions it can process. To ensure grantee security, a deterministic random generator is essential. Random numbers are generated with pre-elected validators, and then the shard assignment is recorded in order to send transactions to corresponding shards. Origo ensures all transactions are from the same account by using the sending address of a transaction as the sharding criteria.
State sharding is the second type of sharding Origo employe to improve scalability. State sharding has a number of challenges compared with computation sharding. They include:
- Extensive work is necessary to make it secure
- Cross shard communication, though often necessary, hurts overall throughput
Due to the complications involved in state sharding, Origo aims to first focus on computation sharding while continuing to develop state sharding to allow for minimum cross-sharding communication.
Origo’s Virtual Machine (VM) is based on the WebAssembly (WASM), a new portable, size and load-time efficient format. It is currently being designed as an open standard by a W3C Community Group. Origo’s VM supports C++ as the language of smart contract initially and plans to support additional languages like Python or Java in the long-term. Origo VM instances are designed to run both publicly and privately while preserving smart contracts. As a result, Origo’s VM is built based on Ethereum’s Virtual Machine (EVM) but with extended ability to support ZKP for proof and verification within circuits. Solidity is the language Origo has chosen for privacy preserving smart contract language because minimum effort is required in order to migrate smart contracts from Ethereum to Origo.
How Origo executes a smart contract
Offchain verification allows for increased performance that is slowed down by the ZKP system. It is critical, however, that offchain computation be able to prevent malicious nodes from determining misleading results. Origo intends to solve this challenge by developing a trustless protocol based on a penalty policy and game theory that will allow its network to be secure, scalable, and efficient.
Origo’s protocol ensures the details are kept private but at the same time that the contract is executed correctly.
The Origo Protocol consists of three major phases:
- Commit – Each party freeze their coins and commits their private input and coin. Both are private and cannot be changed after commitment. This phase ends either after all parties have committed or the period has timed out.
- Execute – Each party reveals their private input to an offline executive. This executive executes the smart contract offline so as to ensure privacy.
- Settle – After execution, a ZKP is generated to ensure the contract is executed correctly. After the blockchain is verified, the fund is distributed based on the execution result.
The Origo Tokens
The total number of Origo tokens available has not yet been disclosed, nor the amount that will be distributed to the team and advisors.
However, Origo has outlined a number of uses for their tokens, including serving as a “gas” function similar to Ethereum. The tokens will power the network, being a requirement for performing certain tasks. Participants will also need to pay to participate in certain activities using the Origo token. In addition, good participants will receive Origo tokens as rewards while bad participants will lose them as a punishment for bad behavior.
Roadmap and Future Updates
Origo’s official roadmap is to issue their ERC-20 native token in Q3 of 2018, and to start test net in December of 2018.
By September 2019, they plan to have a mainnet release and switch to the Origo Token, converting it from the ERC-20 at a 1:1 ratio.
By December 2019, they plan to enable built-in privacy for preserving smart contracts.
By June 2020, Origo plans to enable developers to be able to develop their own Privacy Perserving, Secure and Verifiable smart contracts.