Anonymous Zether solidity contracts developed by J.P. Morgan and implemented in pure Javascript.
Whisper the balance b on chain by encrypting b using the shared secret.
Idea suggestion by Zhou Zhiyao @zzy96
Given:
- balance of transaction
- index of the receiver
- public key of the receiver
- secret of the receiver
- public view key
Computing the proof hiding the balance for receiver

Retrieving the secret balance from the sender

- index of the sender
- secret of the sender\
Computing the proof hiding the balance for receiver

Retrieving the secret balance from the sender

Proving to someone that the transaction sent amount b to the receiver i without revealing who the sender was.
Idea suggestion by @benediamond
A proof (c,s) is computed as follows:
- balance of transaction
- index of the receiver
- public view key
- cipher text
Prover - generating proof (c, s)
- Claim
Given r such
Choosing a random element k in F_q and
- computing
c
- computing
s
Verifier - verify proof (c, s)
- computing
K_r
- computing
Y_r
- equation verification
It enables Zether to be used as a native currency to pay the gas in Zether to the miners accepting it as gas.
- miner fee
- amount
- cipher text
- Homomorphically subtract
b and gas from the sender
- Homomorphically add
b to the receiver
- Homomorphically add
0 to the decoys
- Add
gas to the miner. Homomorphically add can be performed as well
- J.P. Morgan codebase of Zether https://github.com/jpmorganchase/anonymous-zether
- J.P. Morgan - Anonymous Zether Proposal and Tehnical Report https://github.com/jpmorganchase/anonymous-zether/blob/master/docs/AnonZether.pdf
- J.P. Morgan Additional features on Zether https://github.com/jpmorganchase/anonymous-zether/blob/master/docs/AnonZether.pdf
- Zether: Towards Privacy in a Smart Contract World https://crypto.stanford.edu/~buenz/papers/zether.pdf
We want to express our gratitude for the implementation and the help offered us over slack and github.
Main contributors
Benjamin Diamond @benediamond
J.P. Morgan @jpmorganchase
Zhou Zhiyao @zzy96 for the Whisper Protocol