Barry Whitehat has proposed an anonymous Identity and Signaling protocol using zk-SNARKS to enhance privacy features on Ethereum blockchain. The new proposed protocol comes weeks after he released Miximus on Ethereum test net. Zk-SNARKS allow one to prove possession of information without revealing the information.

Understanding Miximus and zk-SNARKS

On June 21, 2018, Miximus went live on Ethereum’s Rinkeby testnet. It can be used to prove that a leaf node is a member of a Merkle tree without revealing which leaf it is. Suppose a user sends 1 ETH to the smart contract on Ethereum blockchain. This creates a new leaf to the Merkle tree. Every node in the Merkle tree is a public key and the user can provide a private key to withdraw the 1 ETH. The user can withdraw the amount by providing a zk-SNARK proof to that node.

Also every leaf node can be accessed only once. This ensures there is no risk of double spending Ether tokens. Only the user who can provide an unique zk-SNARK proof to that node of the Merkle tree can withdraw funds.

Why we need Signaling

A potential problem could arise if we use the signing proposed in Miximus. To overcome those drawbacks we need to use signaling. According to Whitehat,

“So to sign things we add the idea of a signal to be the sha256 hash of a JSON string which defines the rules of the Signal. This makes things super general so other people should be able to build their own signaling mechanism on top of this.”

This protocol can be used in multiple cases such as voting and an anonymous social network. Every vote is a leaf node on the Merkle tree which can be accessed only once by providing an unique zk-SNARK solution to it. Hence Signaling can be used to ensure that all voters use the same nullifiers.

Whitehat has said that he is excited to see a zk social network for blockchain governance. He may not be able to lead these projects but is willing to help any other developer who wants to continue his work.

Image provided by Pixabay.