Salad on Enigma blockchain

As most of you know, we have been working on Salad, a transactional privacy tool for Ethereum.

After the Enigma network launch, the development team has been exploring ways to integrate secret contract functionality to the Enigma blockchain. While Salad was initially intended to be an Ethereum mixer, given our goal to ship fast and iterate, the first version of Salad will work on Enigma and will enable transactional privacy for SCRT. In the short term, this may help SCRT holders to anonymously delegate their coins to different validators.

We would also like to remind the community that the development team has no plans to abandon the Ethereum community. Once we ensure a stable Enigma with secret contracts, we plan to work on supporting other blockchain ecosystems. However, in order to deliver fast, get user feedback and iterate, the first version of Salad will be limited to Enigma .

Unlike the previous version with Discovery architecture, Salad for SCRT will not require a relayer/operator. The main advantage of an operator was to obfuscate transactions fees for the users (1 Ethereum gas fee + 1 ENG gas fee). Now users can directly interact with the Enigma . This is an improvement towards full decentralization and censorship resistance. In addition, the use of an operator forced the development team to integrate crypto-libraries inside the contract (the operator must be prevented from decrypting user inputs - see step 1). This meant execution performance of the secret contract was slower than optimal. In addition, since contracts on Enigma blockchain can store coins, we do not require a deposit contract.

Going forward the user interactions with Salad on Enigma blockchain will look like the following:

  1. Alice sends SCRT to be mixed - denomination amounts to be finalized but we can work with the assumption 100 SCRT, 1,000 SCRT, 10,000 SCRT and her locally encrypted recipient address to Salad secret contract
  2. Bob and others follow steps 1)

On the Salad secret contract side, the following will happen:

  1. check whether a quorum is reached after X blocks (currently 2 hours or ~12,000 block) and secret contract has the right amount of SCRT
  2. If 3) is satisfactory, privately decrypt and shuffle all inputs (recipient addresses)
  3. Return shuffled plaintext recipient addresses to the deposit contract for distribution of SCRT to new addresses

As you can see, the new architecture enables us to remove 3 steps and eliminate the need for a relayer, which not only creates a central point of failure but also hinders the performance of the mixer.

Going forward, we are optimistic that Salad will be able to work in a more decentralized manner on the Enigma blockchain. We will continue to pursue our vision of creating an API that dApps can use to provide transactional privacy to their users regardless of their underlying protocol.


Here’s a demo of the work @taariq and I did integrating Salad with MyEtherWallet (MEW).

It will be really exciting to see the next steps for Salad on the Enigma Blockchain!


Here’s the full blog post that captures previous work and plans moving forward with Salad

1 Like