Think you’d like to run a secret node? Fill out our interest form.

Hello to the Enigma community! We hope you’ve already gotten a chance to experiment with our public testnet. While we’ve previously written a considerable amount about the purpose of our protocol and project, as well as its many applications, today we are sharing a very important post about our network itself and introducing the concept of secret nodes. We hope this will give you more clarity about the relationship between the Enigma network, our nodes, and ENG itself — so please read on for some crucial information. If you’re already familiar with Enigma, you can scroll down; otherwise, here’s some quick background:

At Enigma, we believe in building a more decentralized world. While blockchain technology is exciting and novel, blockchains alone can only achieve very limited decentralization due to their fundamental limitations such as scalability and privacy. By creating Enigma — a secure computation protocol that solves these limitations — we are providing the critical missing piece to a decentralized future.

Enigma’s protocol is the first to enable blockchains to work with private or sensitive data, significantly expanding the meaningful scope of blockchain-based applications (and beyond). In doing this we have previously introduced the concept of secret contracts, smart contracts that utilize encrypted inputs while never revealing the raw data to the nodes performing computations. Enigma’s nodes are thus capable of computing over encrypted data, keeping secrets even from themselves — hence the term “secret nodes”.

Currently Enigma is built to be interoperable with Ethereum, the most vibrant ecosystem in the blockchain world. Developers who are already building smart contracts with Solidity can leverage the Enigma network for functions in their contracts that require privacy. Some fundamental examples of such secret contracts — which we call “building blocks” — are important functions like voting and auctions.

There are many reasons why you would want to run these functions on the Enigma network rather than publicly on Ethereum. The Enigma network not only handles sensitive inputs but also delivers a better user experience by replacing ad-hoc constructions, such as commit-reveals, with secret contracts. Importantly, while Enigma is currently interoperable with Ethereum, our protocol is intended to be blockchain-agnostic — and it can operate independently of any other blockchain when Enigma’s own chain becomes available. We are open to conversation and welcome collaboration efforts with other blockchains to build bridges between the Enigma protocol and blockchains interested in utilizing our solutions for data privacy and secure computation.

By tackling the difficult problem of secure computation and privacy-preserving smart contracts head-on, we’re revolutionizing decentralized technology and building something bigger than blockchain. But how exactly does this all work? Who are the stakeholders on Enigma? And how do they use our network, token, and protocol? Let’s explore this further.

Enigma Stakeholders

In the Enigma network, there are four primary types of stakeholders:

Secret nodes: Secret nodes are network participants that run a node in the Enigma network and ensure secret contracts are executed in a privacy preserving manner. Nodes in Enigma network can be thought of as performing a function similar to miners in Bitcoin.

Consensus nodes: Consensus nodes operate the Enigma blockchain itself — they validate computations and set the final ordering of state changes. (In Discovery, these type of nodes are not yet available to run as we instead rely on Ethereum for verification. As a result, this post will primarily be focusing on secret nodes. More details on consensus nodes will be released in the future, so keep an eye on this blog!)

Developers: Developers build dApps that require secret contracts for sensitive data inputs. Recently we wrote about a number of early launch partners who are developing on Enigma. As an example: Ocean Protocol, which is building secret voting for their Token Curated Registry (TCR), would qualify as a developer.

dApp user: dApp users are users of dApps with secret contracts. For example, this would include anyone who participates in the Ocean Protocol TCR or votes for a DNS through Portal Network (another Enigma launch partner).

Note that these stakeholders are not exclusive — developers and dApp users can also run their own secret nodes, and node runners can operate both secret nodes and consensus nodes. Now let us examine what these stakeholders can do in greater detail:

For secret nodes: how do I get selected and what is my incentive to contribute?

Enigma is an open source network — anyone can run a node to contribute to the network. In Discovery, the first iteration of our protocol, Enigma nodes have to run Intel SGX enabled devices (either their own hardware or cloud instances). Later iterations of Enigma protocol, which will introduce further improvements to secret contracts such as multi-party computation (MPC), will not be dependent on hardware. Furthermore, consensus nodes (when they become available after the launch of the Enigma chain) will not require any specialized hardware either.

The Enigma network uses a Proof of Stake model for worker selection, which means the probability of a worker node to be selected to run the next secret contract is proportional to the amount of ENG tokens staked by the node. This means that the greater your stake, the greater the cumulative rewards you can earn, as your likelihood to be sampled increases proportionally. There will also be a minimum amount of ENG required to run a staking node. That number is expected to be higher in the early days, and gradually to decrease to accommodate thousands and potentially tens of thousands of nodes. You can expect significantly more details on node running and staking to be released closer to our mainnet launch.

For developers: how do I write a secret contract?

We want to make it as easy as possible for developers to operate with the Enigma network. That’s why we let developers build their secret contracts in Solidity and denote specific functionalities that require private or sensitive inputs. For more details on this, please refer to the system architecture section of our documentation. As we develop the next iteration of our network, we will make more information available on our future architecture — so stay tuned.

For dApp users: how do I submit sensitive data into a secret contract?

Users can send encrypted inputs to secret contracts with the help of the Enigma.js library, which hides away the complexity of all underlying cryptographic functions happening between the dApp user and the Enigma network (worker node). dApp developers who want to leverage the network need to install Enigma.js library into their application.

Role and Utility of ENG

The ENG token is critical to the function of the Enigma network, playing two primary roles: as payment for computation and as a requirement for staking. Critical networks like Enigma are made possible by the existence of utility tokens like ENG that serve as an alignment mechanism. Below we provide more detail on the ENG token and its utility within our network.

Primary role of ENG: paying for computations in the Enigma Protocol

The primary function of ENG in the Enigma protocol is to pay for computations, very similar to the function of Gas (ether) in the Ethereum network. When an application runs a secret contract on the Enigma network, end users who interact with the application (or the entity that deployed the application) has to spend ENG to get the computation done in a privacy-preserving way. Let’s go over a simple example to better illustrate the point:

We are currently working with Datawallet to solve one of the biggest problems in the blockchain space: sybil prevention. Datawallet has algorithms that determine whether a user is a real person or a bot, using her Facebook data. Currently the algorithms run locally, which means that Datawallet has access to the user data. By using the Enigma network, Datawallet can run this same algorithm as a secret contract. The sensitive user data would now be an encrypted input to the decentralized Enigma network, instead of a data feed to a centralized server. In this case, the user would pay ENG to run the secret contract that determines whether she’s a bot or not. This would be useful for a user trying to participate in a fundraising event or participate in a competition/game.

Secondary role of ENG: staking for secret and consensus nodes

As mentioned previously, the Enigma network utilizes a multi-tiered ENG staking system (secret nodes and consensus nodes). In this system, the more tokens a secret node stakes, the more likely she is to be selected to work on the next secret contract. Nodes acquire and stake ENG to increase their chance of running secret contracts and thus earning a return on their stake.

Here is an oversimplified example to better illustrate this point:

If there are 2 secret nodes both staking 10,000 ENG, their odds of working on the next secret contract is 50–50. If worker 1 is staking 1,000 and worker 2 is staking 9,000, then worker 1 has 10% chance of working on the next secret contract.

As you can see, staking ENG is essential to the healthy functioning and growth of the Enigma network.

Conclusion

If you’ve been confused or curious about Enigma, nodes, our network, or ENG itself, we hope the above post has provided some clarity! Secret nodes and consensus nodes are critical to Enigma.

If you’re interested in running nodes on our network, we will provide much more information as we approach future releases of our protocol. That information will be shared on this blog and across all our social channels. You can also discuss secret nodes and consensus nodes on our developer forum.

Think you’d like to run a secret node? Fill out our interest form.

We look forward to sharing more soon on nodes, development progress, new partners, and other important updates… stay tuned :)

Onwards and upwards,

The Enigma Team