features of the new pseudonymous token standard Extention of ERC20 with anonymous support
inspired by mybit bounty programme
ideally, it will all be implemented in wallets which support anonymous token transfers. the wallet provider will fund the token contract for paying relayers. So how does it work? it works by using signed messages and one time public keys to create a UTXO model for tokens on Ethereum.
Ideal use case: A user logs onto the wallet, he/she types the address that they would like to send the anonymous token to and press send and thats all the user ever has to care about.
Behind the scenes, the wallet will actually take the request in the form of number of tokens user want to transfer and the hash of the address they would like the tokens transferred to, (Note that wallet providers never know about the address the token is being sent to, it only ever knows the hash of the address), now the wallet will create a new private key for the user, and sign 2 messages with the old key stating the token transfers to the hashes. Note that if the total amount is being spent, then only 1 signed message is generated. Once the signatures are ready, they will be broadcasted to the internet, which can be done in many ways including Tor network, whisper channels, offline relaying and many more. The relayer has the incentive of getting reward if they process the signature and send it in a transaction to the specified contract.
Once the signature has reached the contract, the contract will be able to verify the signature using ecrecover and perform the transfer from hashing the public key (from account) on chain and making sure it was signed with the right private key, after the transfer has been done, the token contract will transfer ETH to the relayer for forwarding the transactions.
In this model, the relayers have the same incentives for the miners and they can adapt the mining strategies already used, and because relaying does not require significant amount of computer, it means that normal laptops can consume wallets api’s to make annonymous token relayers who get paid in ETH.
So how does the bootstrapping work? This is one of the hardest part of the protocol, as the contract must be setup and funds must be aded to the contract so it can pay the relayers. The users can also transfer their keys
What it does
How I built it
Challenges I ran into
Accomplishments that I'm proud of
Building the first ever private token on ethereum
What I learned
Obfuscation is hard to do properly, mixing strategies dont really work
What's next for Annonymous-token-transfers
Making it generalised for