Protocol Development

In September, we laid out a high-level roadmap from our current state through the Discovery mainnet launch. The primary goal for the month of October was to stabilize our codebase across all our repos to get ready for an external audit.

We are very pleased to report that the audit started as planned on November 4th, 2019, and is currently underway. Getting the Enigma Protocol codebase reviewed and audited by an external firm is an important milestone that we are accomplishing during this month of November, and the focus now shifts to working closely with the auditors responding to their requests for information and clarification, as well as taking action on their recommendations to make code improvements as needed.

In parallel, the majority of the development team is now working on the infrastructure that we will need to deploy for testnet and mainnet. As we introduced in the September Update, we are building this infrastructure using Kubernetes. Once more, we are pleased to report that we have a live cluster up and running for internal use, and we continue the work that is needed to test it exhaustively in preparation for a production deployment.

We have yet another work stream open engaging with a different external firm that is developing a Block Explorer for the Enigma network using Graph Protocol. We have been working with them for the past three weeks, and after agreeing to the designs and going through various weekly sprints, they are close to delivering a fully-featured product that will be part of our testnet launch. We can’t wait to share it with you once the work is completed!

During the month of October, the Enigma Contract repository saw the most substantial additions in the Enigma Protocol:

Upgradeability of the Enigma Contract is one of the critical features that we need to put in place before launching a public network. We are doing our best to have a secure and robust contract that will act as the “source of truth” for our network, we are testing it extensively, and we are now going through an external audit. No matter how many precautions we take and how many best practices we follow, there is always a risk that something needs to be patched, amended or corrected in the future. This is why we believe having the option to upgrade the contract is imperative, and the functionality to carry out an upgrade was introduced in Contract PR#157.

of the Enigma Contract is one of the critical features that we need to put in place before launching a public network. We are doing our best to have a secure and robust contract that will act as the “source of truth” for our network, we are testing it extensively, and we are now going through an external audit. No matter how many precautions we take and how many best practices we follow, there is always a risk that something needs to be patched, amended or corrected in the future. This is why we believe having the option to upgrade the contract is imperative, and the functionality to carry out an upgrade was introduced in Contract PR#157. A recent addition was the automatic conversion between ENG and ETH when a secret computation includes a callback to Ethereum . All the computation fees in the Enigma network are denominated in ENG tokens, and one single payment/transaction is all that is needed to submit that task to the network for processing. Thus, in those cases that involve a callback to Ethereum as part of that computation, a transaction paid in ETH gas is required, and an automatic conversion between ENG and ETH takes place to that extent: Contract PR#168.

. All the computation fees in the Enigma network are denominated in ENG tokens, and one single payment/transaction is all that is needed to submit that task to the network for processing. Thus, in those cases that involve a callback to Ethereum as part of that computation, a transaction paid in ETH gas is required, and an automatic conversion between ENG and ETH takes place to that extent: Contract PR#168. As a result of the development of the Block Explorer mentioned above, we had to add additional fields to some events that are emitted by the Enigma contract so that that information can be conveniently displayed in the Block Explorer: Contract PR#167

Activity on Enigma Contract repo on Github

Additionally, new features were introduced or modified that affected multiple repositories:

We finalized the functionality to revert the state when the result of a computation fails to get committed on-chain. In that case, even when the computation succeeded inside the enclave and the state was updated accordingly, the state needs to be reverted because the Enigma contract is not successfully recording that state change. Given that the Enigma contract is our “source of truth”, the enclaves need to get in sync with it. Implemented in Core PR#224 and P2P PR#231; with subsequent tests introduced in Core PR#240 and Contract PR#166, and subsequently patched in P2P PR#243 and P2P PR#250.

when the result of a computation fails to get committed on-chain. In that case, even when the computation succeeded inside the enclave and the state was updated accordingly, the state needs to be reverted because the Enigma contract is not successfully recording that state change. Given that the Enigma contract is our “source of truth”, the enclaves need to get in sync with it. Implemented in Core PR#224 and P2P PR#231; with subsequent tests introduced in Core PR#240 and Contract PR#166, and subsequently patched in P2P PR#243 and P2P PR#250. Through an internal review, we discovered that it was theoretically possible to have a collision in the hashing algorithm that the Key Management node uses when an array is involved. This was identified as a possible security flaw because that hash is used to validate variables that are transmitted over the network, and that validation relies on the lack of collisions. The modified hashing algorithm was implemented in Core PR#217 and Contract PR#161.

Last but not least, a coordinated release across our three repositories was pushed out, releasing updated Docker images that our community of Secret Contract developers rely on for their work: Contract PR#165, Core PR#237 and P2P PR#240, and announced on our developer forum.

Hiring

We gave our last hiring update in our July Development Update, where we outlined some of the open roles at Enigma and our intent to continue growing our amazing team! As mentioned before, we’re excited to focus our hiring in Israel — a country which is consistently at the forefront of privacy and cryptography research, and which has one of the highest concentrations of engineers, mathematicians and physical scientists in the world.

Today we’re excited to introduce two of our most recent engineering hires — Reuven Podmazo and Assaf Morami!

Reuven!

Reuven is obsessed with building correct and reliable software, and especially if that software empowers people to do things they could not do before. He has 5 years of experience working for well known players in the cyber security industry, including CheckPoint, mostly in Python, working with both low and high level networking protocols in the traditional internet infrastructure. Recently Reuven discovered the Rust programming language, which quickly became his new hobby. Since then he has studied the ins and outs of the Rust language and ecosystem, becoming very experienced. He joined Enigma in order to apply his new skills and knowledge to help build the next generation of internet protocols!

Assaf!

Assaf is an avid open source and free market believer. He’s an experienced software engineer with a demonstrated history of working in the cyber security industry. He prides himself on being highly motivated, a self-learner, ambitious, and above all — a team player. Assaf is interested in systems design, performance, efficiency, simplicity and UX. Prior to joining Enigma, he worked on multiple high impact cyber security projects at the IDF. Assaf holds a Bachelor’s degree in Software Engineering from Ben Gurion University.

Want to work alongside Reuven, Assaf, and the rest of the team? You’re not alone! Enigma was previously named one of the ten most desireable Israeli companies to work for, and we’ve already processed hundreds of applications in the past few months. If you know of (or are) a great candidate in Israel, let them know they are welcome to apply — and send them this application form. We’d love to hear from you.

Community Updates

Finally, but most importantly — some updates for our community.

The biggest change in the life cycle of any company or project is the move from pre-product to post-release. While we’ve poured years of development work into Enigma and Discovery, we have not reached our most important milestone: the full public release of our protocol. Our latest developer testnet release in June was a massive step forward for our project, but it was just part of the long journey towards building a sustainable privacy-first protocol, network, and ecosystem.

We’ve been preparing for this moment for a long time, working with our established partners (including our initial investors like Pantera, Fenbushi, and Hashed) and our newer strategic partners (including Outlier Ventures) to ensure the long-term success of Enigma. Everything we do is in service of the five-year plan to make Enigma a pillar of the nascent decentralized web. We cannot stress this enough: development is still extremely early and uncertain for the fundamental technology that will power the DWeb. But based on the universal need for privacy, scalability, and usability, we are confident that Enigma will form a critical piece of its foundation.

Our technical development continues at rapid speed, but we’ve also been working internally on our launch plan for many months — everything from our product strategy, to our developer relations strategy, to new strategic partners, to enterprise opportunities, to secret node support and incentives, to our communications and marketing, and much, much more. The time to share many of these updates and plans with our community — and the decentralization community at large — has finally come.

The biggest change Enigma needs to make as we approach the launch of Discovery is to greatly increase the level of transparency and collaboration we achieve with our community. Community is the cornerstone of any open-source project, and we are committed to engaging Enigma’s community every step of the way forward.

We already hold all-hands calls with the Enigma Collective, allowing our most committed community members direct access to our core team so that we can work together on critical projects. Now for the very first time, we will be opening these calls to the entire Enigma community, with our first open community call happening in the next two weeks! We will share more information on exact timing and format by early next week.

On this call, we will be sharing very important news and information for node operators, developers, and the community at large. Collective members will be able to participate directly on the call, and anyone else in the community can watch live and submit questions for the Enigma team to answer on the call via Twitter, Discord, Telegram, or our live stream. We are really looking forward to hearing from you!

October took our team many places, including the Diffusion hackathon in Berlin, World Crypto Con in Las Vegas, San Francisco Blockchain Week, and many more locations around the world. Now we’re at ETHWaterloo supporting and sponsoring yet another awesome Ethereum hackathon! We’re constantly learning from our experiences as more developers get hands on with our protocol, so we intend to continue this type of engagement over the coming months.

As we stated in September, we take our roles as educators and advocates inside and outside the decentralization space very seriously. And here we believe we have already succeeded. 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 technically speaking, we’ve only just begun to build solutions. We feel we’ve already done some of the hardest work, and this solid foundation will continue to pay dividends as Enigma launches and scales over the next years.

We now invite our community to become a part of this foundation, either by running their own secret nodes, joining the upcoming community call, or joining the Enigma Collective. Our next major step is the launch of our networked testnet and the beginning of the Genesis Game. Don’t miss our updates — please watch this blog, our official Twitter, or subscribe to our newsletter below!

Onwards and upwards,

The Enigma Team