Question about secret contracts workflow

i make research if Enigma protocol can add privacy functionality to Ethereum multisig wallet( private balance and transaction).

Is there a way to keep Ethereum multisig balance private?

I am curious if I understand correctly how your secret contract works.

1.Task record on Ethereum (commitment of hash of Solidity function signature to Ethereum)

Example: imagine you have Solidity Voting contract and you would like to execute vote() with private parameters

e.g. Keccak256(vote(uint proposalId, bytes32 commitment) public returns (uint voteid) ) -> storage on Ethereum

2.Use of Diffie Hellman key exchange to encrypt an input (function parameters proposalid and commitment) and send it to Enigma

3.Enigma selects a set of nodes (workers) to perform computation. Workers are rotated every epoch.

4.Workers run the same vote function with decrypted input ( proposalid, commitment) in the same Voting contract but rewritten in Rust

5.Workers send a result of computation voteId back to Ethereum.

  1. Workers perform a computation within Intel SGX
2 Likes

Hi @andreiIV, welcome to the forum.

From a high level perspective, you can keep address balances private but it would be different than having encrypted ethereum balance. It would work more like this:

Alice, Bob and Charlie deposit 5 ETH to a deposit contract on Ethereum. Then the send private TXs to Enigma network to send each other TXs. Say Alice sends both Bob and Charlie 1 ETH. This is similar to how lightning network works. Enigma secret state updates balances - Alice 3 ETH, Bob 6 ETH, Charlie 6 ETH. This can happen multiple times and in a future time Alice, Bob and Charlie can settle on-chain. When they are settling on chain they can also use new (clean) addresses. (The addresses would too be private inputs a secret contract, for withdrawal). With a large set of users, the anonymity set would grow Hi @andreiIV, welcome to the forum.

From a high level perspective, you can keep address balances private but it would be different than having encrypted ethereum balance. It would work more like this:

Alice, Bob and Charlie deposit 5 ETH to a deposit contract on Ethereum. Then the send private TXs to Enigma network to send each other TXs. Say Alice sends both Bob and Charlie 1 ETH. This is similar to how lightning network works. Enigma secret state updates balances - Alice 3 ETH, Bob 6 ETH, Charlie 6 ETH. This can happen multiple times and in a future time Alice, Bob and Charlie can settle on-chain. When they are settling on chain they can also use new (clean) addresses. (The addresses would too be private inputs a secret contract, for withdrawal). With a large set of users, the anonymity set would grow