Enigma Development Update - January 2019


Hello from the Enigma team! What follows is our latest development update, containing details on recent progress towards deploying Discovery on testnet, including an important internal release of Discovery. Please read carefully!

Since last month’s update, the engineering team at Enigma has been working hard on the final stages of development for Discovery, the first networked iteration of our protocol. (Please reference our latest roadmap here.)

We’re happy to share that we have nearly completed end-to-end full round-trip integration tests for deploying and executing secret contracts in our upcoming Discovery release. What will follow is extensive stress-testing of the Enigma network, the computation engine, and the Enigma Javascript library — then, finally, our long-anticipated testnet deployment. At that time, members of the Enigma community will be able to run “secret nodes”, worker nodes on our network which perform privacy-preserving computations.

Our dedicated and highly-skilled team of developers has been working swiftly and efficiently on about a dozen parallel work streams integrating the different components that make the Enigma protocol a reality. To just name a few of the tasks we have accomplished in the last month:

  • Implementation of gas metering in the WebAssembly Virtual Machine for secret contracts denominated in ENG tokens (adapted from the Parity WASM interpreter).
  • Implementation of the Ethereum bridge for secret contracts, which allows for calling arbitrary functions of regular smart contracts as part of the business logic of any secret contract.
  • Defined the specifications for all messages used between the various components in the network, and implemented the communications following those specifications. The technologies used to communicate between components include JSON-RPC between the Enigma client library and the Enigma peer-to-peer network, publish-subscribe architecture between the nodes in the peer-to-peer network, and ZeroMQ for InterProcess Communication (IPC) between the worker node in the network and its associated enclave.
  • Exhaustive suites of unit tests for every element in the network that validate that every function and component perform as designed.
  • Randomization of the worker selection algorithm implemented inside an SGX enclave in a trustless environment, guaranteeing fairness and impartiality.
  • Created a growing set of sample secret contracts that demonstrate the capabilities of the features packed in the Discovery release.

What now?

From now until the release of Discovery on testnet, the Enigma team has a number of major priorities to ensure we’ll be ready for an effective launch. On the development side, this includes doing an internal release of:

  • a dockerized network where each component runs in its own container,
  • where there are at least three worker nodes and one key management node, all running on SGX-enabled hosts
  • with at least five different secret contracts deployed on the network,
  • with all the signature verifications and key exchanges in place
  • where the network runs through at least three different epoch transitions (this is when there is a change on what worker nodes are assigned to work on what contracts, and they have to “pass the torch” between them)
  • where we can have an instance of the Millionaire’s Problem running,
  • and all the above runs smoothly and successfully.

We will then proceed to share this internal release with our launch partners and continue to support them in writing and deploying the first real-world applications involving secret contracts, with the prospect of having battle-tested applications and real uses-cases by the time we launch Discovery on mainnet.

Our team is always pursuing more use cases and partners, and we continue to collaborate with many projects and organizations that have not yet been announced. We believe secret contracts are the critical missing piece that will drive meaningful adoption of decentralized applications for millions of users, not just hundreds. If you are a developer looking to implement secret contracts in your own applications, or if you are a project interesting in building on the Enigma protocol, please submit this form to get in contact with our team directly.

In parallel with the above activities we will conduct internal and external audits, in addition to stress-testing the network and fine tuning the various initial parameters that we need to set in preparation for the mainnet launch.

If you are interested in running a secret node for Discovery, you’re in good company! We’ve received substantial interest from the community already and look forward to creating more detailed materials supporting secret node operators — the backbone of Enigma’s network. We expect to have more documentation and walkthroughs available for node runners around testnet launch. In addition, we expect to make another communication this month with more details around node economics that will give node runners a better understanding of potential returns. If you have specific questions, please post on our Developers Forum or join the community Secret Nodes telegram.

To recap: with internal testing nearing completion, Discovery is finally close to launch! Here are some of the features that are to be included in this release:

Stateful (Encrypted) Secret Contracts: Secret contracts are capable of maintaining a state, allowing to persist encrypted data between private computations or different tasks. Stateful contracts enable many more use cases than stateless computations.

Secret Contracts decoupled from Smart Contracts: The Enigma network only relies on Ethereum as the consensus layer, but is otherwise decoupled from the requirements and limitations of Ethereum. This means that secret contracts can have their own runtime and programming language (Rust, instead of Solidity).

Private Outputs: In addition to private inputs, the network supports storage of computation outputs by storing the contract state encrypted on chain and sending results encrypted directly to the dApp user.

Economic Incentives: Each node receives a financial reward for participating in the network. Nodes are randomly selected to work in any computation by lottery weighted by the amount of ENG tokens they stake.

Ethereum integration: Secret Contracts may call arbitrary functions of any other smart contract deployed on Ethereum.

Peer-to-peer and storage layers: Completely redesigned from scratch, these functions are now an integral part of the Enigma network and no longer rely on Ethereum.

As we remain on track for our projected Discovery testnet release this quarter, please keep watching this space and our other social channels to see our latest updates! You can find links to these channels (and our mailing list) below. If you have any questions or comments about this update, please post here!

Onwards and upwards,

The Enigma Team

Dev Nodes and a Subscription Model for dAPPs

Crossposted from the Enigma Blog: https://blog.enigma.co/enigma-development-update-january-2019-1f4996a75bdf


I think private outputs are a significant add to usability and new use-cases. We’ve talked about apps like poker, access control, et cetera – all these become possible with private outputs. This plus state on Enigma is a good step towards meeting the design requirements we’ve seen described by launch partners and other projects.