Hello to the Enigma community! As you know, we’ve been hard at work developing our public testnet and introducing new functionality such as simulation mode. As part of our development work over the past couple of months, Enigma has been focusing on certain technical “building blocks” to help the current blockchain ecosystem achieve higher levels of decentralization.

At Enigma, our mission is to enable a more decentralized future. And while blockchain technology is a major step towards decentralization, it’s not possible to achieve true decentralization without also introducing solutions for challenges like privacy. We are contributing by building Enigma, a scalable privacy protocol that enables privacy-preserving smart contracts, or as we call them — secret contracts.

As part of this contribution, we have decided to create “building blocks,” or libraries that other developers can use while building on their network of choice (for example, Ethereum) and thus achieve a higher level of decentralization and privacy when required. As a protocol, our commitment is building a strong ecosystem of developers and projects. There is no better way to achieve this goal than building contracts that can be plugged into dApps to help them achieve both a better user and developer experience.

Today, a large number of projects are centralizing certain parts of their application in traditional databases like AWS. As we work to create the new internet, this is not a sustainable design choice. Enigma is focused on leveraging our technology and working with strong partners to create decentralized alternatives.

After analyzing the current dApp ecosystem and talking to numerous projects building in this space, we identified a few primary building blocks that are frequently required that Enigma will initially concentrate on: voting, auctions and coinmixing. We will explore all these building blocks in the post below — and if you’re interested in any of these components, we’ll tell you how to get started building with Enigma! Please read on for more details.

Voting & decentralized governance

Decentralized governance will be a monumental piece of our emerging ecosystem. For governance, voting is a key component both at protocol layer and application layer. Famously Ethereum used voting to decide for the hard fork after the DAO Hack. (Note — we’ll use voting and polling somewhat interchangeably for this post).

Currently a coin vote is being used for EIP-186, which is a vote about ETH block rewards in anticipation for the PoS hardfork. There are countless examples to such governance practices on protocol layer. Similarly a lot of applications use voting as an integral part of their solution, most notably Token Curated Registries (TCR)s.

On-chain voting, without privacy, has three major problems:

i) voter anonymity is not preserved,

ii) current commit-reveal scheme creates a suboptimal user experience requiring voters to interact with the network twice (commit during the voting and reveal after the voting is over). We have heard from our friends in the space that they will even send calendar reminders to ensure voters reveal their votes.

iii) contractual bribery attacks: since one’s vote is recorded on chain, anyone can write a smart contract which would automatically pay voters based on their on-chain stored vote that is visible to everyone.

These shortcomings are discussed in detail in this post in the context of TCRs.

We are passionate about decentralized governance and how Enigma’s technology can improve it. Over the past couple of months, we have become regular attendees at the SF TCR meetup. We have presented on decentralized voting and demoed a secret voting contract. We also have been collaborating with projects in the space and contributing to the discussion around Dark DAOs. We are encouraged by the positive reaction to our work from leading projects exploring the governance field.

Auctions

Similar to voting, auctions are an important part of the decentralized ecosystem — especially with the rise of Non-Fungible Tokens (NFTs). Currently projects like Gnosis and Rarebits are focusing on Dutch Auctions for exchange of ERC-20s and ERC721s. Vitalik Buterin also recently talked about using auctions to determine network TX fees during the Ethereum meetup in Zug in July 2018.

Similar to voting, auctions without privacy either reveals all the bids and provides a front-running opportunity, or they depend on the cumbersome commit-reveal schemes described above. We have been equally excited about the potential to revolutionize auctions, and we believe this will grow in importance as NFTs start representing broader concepts such as licenses.

Coinmixing

Coinmixing enables transactional privacy on the Ethereum network. While at a basic level coinmixing can be used for purely transactional purposes, it’s also integral to more complex systems. Decentralized lending projects often want to hide the identity of transaction parties. In addition, coinmixing becomes relevant in cases where the outcome of a smart contract can endanger the process itself.

Bribery attacks on TCRs is another great example. Even if one can lower the risk of bribery attacks using secret votes with Enigma protocol, since TCRs involve a payout that is correlated to the outcome of the vote, secret voting itself doesn’t create protection against adversaries with deep pockets. However, secret voting mixed with coinmixing creates perfect anonymity both for the votes and the resulting pay-outs.

How can you get involved?

In anticipation of our protocol’s full launch, we have spoken to a number of projects working in these verticals. We’ve received great feedback that has helped us to refine our design choices and to build a better Enigma protocol. This puts us just one step closer to realizing a more decentralized future.

Very soon, Enigma will be announcing our initial launch partners that are collaborating with us on developing these components and working with our privacy technologies. If you are working on a decentralized application or project that leverages any of these building blocks, please get in touch with us today! We would love to learn more about your project and directly support you in your journey.

You can also join our new developer forum, where we often discuss these types of use cases for Enigma and many other technical topics. We’d love to help you get integrated into our community and started with our testnet.

Let’s keep building together :)

Onwards and upwards,

The Enigma Team