With the bulk of the protocol development work already well behind us, at Enigma we are focusing our efforts towards securing our upcoming release. Since our last update, we have continued our comprehensive testing of the existing protocol through an extensive suite of integration tests. We are busy uncovering and resolving edge cases where the protocol does not quite work as intended. Here’s a sample of our recent struggles and successes:

The peer-to-peer network is hitting a message limit of 1MB in the underlying pubsub (publish/subscribe) implementation from libp2p. Enigma-p2p uses the pubsub implementation to broadcast messages like the deployment of secret contracts to the network on a given topic, which then gets picked up by the assigned worker. The WebAssembly bytecode is included in the contract deployment messages, and as we experiment with secret contracts of increasing complexity, we are quickly hitting this limit. This is an area of active development — both adjusting the network message limits while considering the tradeoffs to limit spam attacks on the network, and considering compression algorithms (though WebAssembly code already comes decently compressed by default).

First implementation of handling failed Ethereum callbacks that are triggered at the end of the execution of secret contracts. As we discussed previously, secret contracts provide the ability to call a function of any smart contract deployed on Ethereum. The question is how to handle the scenario where that callback fails (for a number of reasons, say wrong function, wrong parameters, or the execution fails a requirement in the contract to name a few). This initial implementation will be revised in the near future (pull request).

Slight discrepancies between the cryptographic primitives used across different programming languages (Rust in the enclave vs Javascript in the client), where a difference in padding — whether a leading zero is included or not — caused random occurrence of an error in the process of establishing ephemeral encryption keys across the network (pull request).

When a computation request is received at the very end of an epoch, and its processing coincides with an epoch transition, it was being mistakenly rejected due to an invalid epoch error. The protocol was adjusted to make the epoch configurable for which state keys are being requested (pull request).

You can see for yourself the active and steady protocol development happening on Enigma’s Github as illustrated in the following snapshots:

One month of development on enigma-core.

One month of development on enigma-contract.

In addition to the GitHub statistics shown above, one of the awesome members of the Enigma Collective has created a website where community members can track our activity across multiple repositories. Check it out here and see more cool visualizations like the screenshot below!

Click here to see more development statistics and an issue tracker.

More resources and information for developers are on their way. For now, please read through our previous protocol development updates for more information about our code and repositories, as well as our path forward. The next step after our testnet developer release will be preparations for the Genesis Game, followed by deploying on Ethereum testnet!

While our devs worked hard, our business team had a very productive experience in New York City for Blockchain Week. We spent time with members of the Enigma Collective and our community, met with dozens of developers and potential partners, and co-hosted a successful privacy meetup with our friends at IoTeX, NuCypher, and Zcoin. Hopefully we’ll have more details to share soon as a result of this incredible week!

For some added fun, we’ve also begun a new transparency initiative this past week, livestreaming a small piece of every business day until Discovery launches on testnet. Check out Day 1 below — you can find the rest of the series by scrolling through our official Twitter.

TL;DR: things are getting much better and moving much faster! As a result, we ask that you please stay tuned to our blog and other official channels — more is coming very soon.

Onwards and upwards,

The Enigma Team