Enigma: Smart Contract, JavaScript Library, P2P and Open-Sourced Discovery Protocol

Paradigm
Paradigm
Published in
7 min readApr 9, 2019

Biweekly update 26th March — 9th April

This is not financial advice.

During the last two weeks Enigma team showed impressive results in development. Enigma Development Update provides a brief guide to the currently visible components in its repository. The Enigma smart contract written in Solidity provides the consensus layer for the Discovery release of the Enigma Protocol. Moreover, the contract is broken down into several smaller, more modular contracts and libraries that provide different parts of its functionality while JavaScript Enigma Library provides the interface for secret contract and DApp developers to use the Enigma protocol. The repository also provides the peer-to-peer networking functionality to each of the enclaves above forming a decentralized network. Finally, Enigma has open-sourced its Discovery protocol repositories for the first time. This code will soon go live on testnet first, and mainnet next.

Development

Github metrics
Developer activity (from Coinlib.io)

Development update involves a brief guide to the currently visible components in its repository:

Enigma Contract and Enigma Library: The Enigma smart contract written in Solidity provides the consensus layer for the Discovery release of the Enigma Protocol. One instance of this contract will be first deployed on the Ethereum testnet and later on mainnet. Due to the complexity of the contract, and the limitations of the Ethereum Virtual Machine, the contract is broken down into several smaller, more modular contracts and libraries that provide different parts of its functionality. Look at the contract migrations to understand how all these contracts and libraries come together into what we refer to as the Enigma Contract.

This repository also includes the JavaScript Enigma Library, which provides the interface for secret contract and DApp developers to use the Enigma protocol. The source code is written in ECMAScript 6 (ES6); is bundled with Webpack and exported in UMD format so that it works everywhere. The repository includes more than 100 unit tests that both provide code coverage up to 98% and comprehensively describe the functionality provided both by the Enigma Library and the Enigma Contract.

Enigma Core: The code of this repository lies at the core of the Enigma Protocol, hence its name. Written in Rust, it includes the code that runs inside the enclave (trusted) and its counterpart that runs outside the enclave (untrusted) and interfaces with the rest of the network. Following Rust code architecture, this repository organizes its code into several crates that provide several different components: the Enigma implementation of the WebAssembly (WASM) interpreter in Rust, the Enigma Runtime, cryptographic (AES, ECDSA, ECDH) and hashing (Keccak256) libraries, and the Remote Attestation client.

This repository also includes the Key Management Node written in Rust, as well, that runs inside an enclave (trusted) and manages the keys to encrypt the state for all contracts in each epoch. It responds to legitimate requests from all other enclaves in the Enigma network for the encryption keys assigned to any such nodes.

Enigma Core provides support for simulation mode, in which the software can be run on computers without Intel’s SGX support for development purposes (that is for DApp developers to develop and test their secret contracts before deploying them on the real network). However, once the Enigma network has been deployed on testnet and mainnet, only enclaves running in hardware mode (on hosts with SGX enabled) will be able to join the Enigma network.

Enigma Peer-to-Peer (P2P): Written in Javascript, and forking off libp2p, this repository provides the peer-to-peer networking functionality to each of the enclaves above forming a decentralized network. Both Enigma-Core and Enigma-P2P will typically run on the same host, but are structured as two separate repositories because they are coded in different languages (Rust and Javascript, respectively) and provide very different functionality. Enigma-P2P runs in Node.js and provides a command line interface (CLI), although it will typically run automatically from a configuration file.

The Enigma-P2P packages various autonomous runtimes that communicate between each other through a main controller. The communication is done via channels, which are bi-directional message-sending implementations, and through actions, which are predefined messages that have specific functionality attached to them. This infrastructure is optimized for asynchronous communication that reacts to notifications between the various components.

This code represents over 2377 combined commits across three repositories over the past months. Contained in these repositories are nearly 60,000 lines of new code and documentation that are now available publicly for the first time.

Source

Social encounters

DECENTRALIZE THIS!

Today Enigma’s podcast “Decentralize This!” features Alexis Gauba, the cofounder of Mechanism Labs, an open-source research lab focused on studying consensus, scalability, usability, and other aspects of decentralized systems. She is also the cofounder and executive director of SHE256, a non-profit focused on increasing diversity and breaking down barriers to entry for the blockchain and decentralization space.

On this episode Alexis talks about diversity of builders and users in the blockchain space, how mentorship and education can contribute to a more sustainable and open ecosystem, and the role of design and design thinking in creating products that get adopted by millions of users worldwide.

See also:

“Privacy” can generally be broken down along two major lines: transactional privacy versus computational privacy.

Transactional privacy is what most people think of when they think of privacy for decentralized apps and blockchains. In a private transaction, certain aspects are hidden from the public. The sender, recipient, and amount of the transaction can all be obfuscated, and while this can be computationally expensive, we have the tools and networks that enable it today.

Computational privacy in a decentralized network has a few basic requirements. First, input data must be encrypted and kept secret from all nodes running on the network, and also from observers of network transactions. Second, the nodes need to be able to perform computations on this encrypted data. Finally, we must have good guarantees that the results returned by nodes running these computations are correct.

If these conditions can be met reliably, a computationally private network can retain the benefits of a decentralized, permissionless blockchain, while also keeping information secure and private; it enables general-purpose computation (not just simple things like transactions) without exposing all the data on the network.

Finance

Token holders and the number of transactions (information from Etherscan.io)

Roadmap

Source: t.me/EnigmaProject

What’s next?

  • A snapshot of mainnet ENG holdings.
  • Implementation of WASM to compute secret contracts
  • Discovery on testnet by 2019Q1 (Discovery is the name of the testnet that is being launched. It’s the first networked iteration of Enigma protocol, and it will allow developers to create secret contracts (smart contracts that preserve the privacy of input data).

Rumours

  • Node rank
  • Mainnet dates
  • Enigma’s consensus algorithm
  • Consensus deadline
  • The rules of game

Social media metrics

Social media activity
Social media dynamics
Social media dynamics

Enigma community continues to grow, there is a constant increase in the number of subscribers of Enigma social media channels. However the number of subscribers of Enigma official Telegram chats slightly decreased these weeks.

Telegram — Telegram HQ for the Enigma Project.

Secret Nodes Community Telegram — a community-led group of individuals who care about privacy, data ownership, and are dedicated to supporting secret node runners.

Twitter — Official announcements channel. Average number of retweets is 40 for one post. Publications with 30–100 likes.

Reddit — Threads with 6–20 comments, 10–30 upvotes.

See also:

Enigma’s secret nodes sub-forum

Forum

The graph above shows the dynamics of changes in the number of Enigma Facebook likes, Reddit subscribers and Twitter followers. The information is taken from Coingecko.com

This is not financial advice.

Subscribe to detailed companies’ updates by Paradigm!

Medium. Twitter. Telegram. Reddit.

--

--