Protocol Development

An important milestone in our journey to networked testnet included ongoing external audits, which were started on November 4th (as we reported in our previous development update). We’re happy to say the first phase of the audit completed last week on November 27th. The overall assessment of the code was positive:

The Solidity code was very well structured, commented and tested, which is important given the very challenging execution environment. Also, the choice of Rust was very advantageous as its memory-safety and tight language constraints mitigate many common vulnerabilities.

No critical issues were found. A number of issues ranging from high risk to informational were uncovered, and the development team started addressing those right away as the audit was in progress, some of which have already been merged, such as:

implementing a stronger input validation on the attestation report (via Contract PR#171, which validates two more fields, Core#256 which introduces a third field, and a forthcoming PR contract-side that will validate that third field, and two additional ones)

updating outdated dependencies and compiler specification, remedying a possible reentrancy vulnerability, and adding a SafeMath directive where missing (all addressed in Contract PR#172)

Separate from the audit, preparatory work for networked testnet included:

Separating staking and operating Ethereum addresses for node runners, where we believe it is important to separate the address from which a large amount of ENG is staked in the Enigma contract from the operating address that worker nodes will need to operate in their daily transactions (Contract PR#177 is work in progress as it requires matching changes in the Core and P2P repos).

Waiting for a configurable number of on-chain confirmations before confirming results and propagating across the peer-to-peer network (P2P PR#251)

Implementing “health checks” on both the P2P (PR#258) and Core (PR#254) to be able to query the status of a running node.

Several small but necessary improvements, mostly on the P2P side, PRs #252, #253, #254, #255, #256, #257, #259, #260, #263, #264, #265

With all these improvements implemented, we remain on track for the launch of our very first networked testnet contract in December!

The (very active!) Enigma P2P repo on Github

In mid-November I (Victor) had the chance to attend Github Universe in San Francisco, where I caught up with the latest developments coming out from Github and enjoyed several very good talks on best practices around open source software development and building online communities of developers. Some highlights included the public release of Github Workflows, which we have immediately adopted for our Continuous Integration(CI) development a replacing other providers we have used in the past (for example implementing CI testing for our newly-created/refactored docker-environment repo: PR#18, as well as the CI testing for salad: PR#36). Among the features that I appreciate about Github Workflows is a better user experience derived from a more tightly-integrated interface with the rest of our workflow in Github, and significantly longer timeouts for builds in public repos (up to 3x longer than some of the alternatives).

On how to build open source software communities, I heard over and over to be kind and welcoming 🤗, excel at documentation 📄, provide clear resources 🛠 on how to contribute, licensing and code of conduct, and PR templates. Some of these we are already embracing at Enigma, and others serve as a reminder on how to continually improve. Last but not least, there was a very interesting presentation on research findings that can be broadly summarized in the pictures below:

Summary of research findings presented at Github Universe: A Data-driven Look at open Source Software Supply Chains.

Enigma Open Community Call

In November we held Enigma’s very first Open Community Call, featuring the members of the Enigma core team as well as some of the Enigma Collective representing our global community. We were excited to share critical project updates and take questions from everyone who joined the live stream in real time. We’re excited to make this a regular tradition and increase our transparency and communication with the Enigma community!

In our thorough recap, you will find the full video of the community call and a summary of what was discussed. Important highlights include:

Introductions of Enigma team members and the Collective

A discussion of our timeline for networked testnet deployment

Thoughts from our CEO Guy Zyskind on Enigma’s roadmap beyond 2020

Changes to secret node economics and the Genesis Game — including increased network rewards for genesis nodes!

A recap of ETHWaterloo, including a summary of what hackers were able to build on Enigma

An overview of our product strategy and Salad, our transactional privacy solution built for Ethereum

ETH Waterloo — Our Most Successful Hackathon!

In November, our US-based team traveled to Canada to take part in ETHWaterloo, one of the most popular Ethereum hackathons in the world. Following up on our great experience at ETHBoston, we were thrilled to be sponsoring yet again and even hosting our own pre-hackathon meetup at the University of Waterloo.

Hackathon participants and students gather for our pre-hackathon meetup (and pizza).

The hackathon was a huge success for us, as we saw a record number of teams attempt to build on Enigma and get further in their progress than at any previous hackathon! We were excited to award $3,500 in prizes to five incredible teams. The breadth of their solutions, and the creativity of the teams themselves, was very encouraging to us. We look forward to seeing what people build on Enigma at future hackathons (like ETHDenver)!

The five winning teams:

Rubber Hose: an application to partition the storage space of a secret contract so that different passwords unlock different sections of the secret contract’s storage

Fonduels: used Enigma to accelerate the gameplay for Cheeze Wizards, a game from Dapper Labs.

“Using the Enigma protocol, we handle both blocks (turn commitments and reveal commitment) within a single a block resolution; this creates a dueling experience that is at least 50% faster for the players!”

uFlo: used Enigma combined with military-grade EEG headsets to pick up on user brain activity in order to monitor when that user was in a “flow” state.

Lootbox Token: created a “lootbox” — an NFT with unknown contents — on Ethereum with Enigma. Like a sealed collectible card deck, you can buy this lootbox and resell it without ever seeing the contents inside.

Enigmachine Learning: experimented with Enigma’s machine learning capability, making significant progress in identifying how Enigma could better support existing ML libraries.

More details on these hacks (and the winning teams) are available in our complete ETHWaterloo Trip Report!

Privacy has never been more important to the decentralized web, DeFi, and people themselves. What was once our secret is now a publicly recognized reality — but we’ve only just begun to build the solutions that our world needs. We feel that Enigma has already done some of the hardest work, and this solid foundation will continue to pay dividends as we launch and scales over the next years.

This year has been exciting and validating for Enigma, and with lots of updates still to come — including the launch of our first networked testnet — we’ve saved the best for last in 2019. Don’t miss our updates — please watch this blog, our official Twitter, or subscribe to our newsletter below!

Onwards and upwards,

The Enigma Team