EOSIO / eos

An open source smart contract platform
https://developers.eos.io/manuals/eos
MIT License
11.27k stars 3.76k forks source link

EOS support for ANONYMOUS transactions (TXs)? Like zk-SNARKs? zk-STARKs? #3772

Closed hsk81 closed 5 years ago

hsk81 commented 6 years ago

As a block-chain user I want 3 things: (1) SCALABILITY, (2a) CENSORSHIP RESISTANCE and (2b) ANONYMITY.

ANONYMITY mitigates also the low number of BPs, which will probably grow over time very powerful, and hence might develop outlandish ideas like (command and) control. So, my minimal requirement for a functional block-chain is reduced to two points:

You could add a point (3) DECENTRALIZATION (also implying CENSORSHIP RESISTANCE), but in this context that's a no-brainer. After this theoretical chit-chat, my (practical) question(s):

What I would love to have, is a system where the average common man has full privacy via anonymous TXs (by default), but we can insist on public entities (like governments, local bodies etc.) to have (selectively) public TXs. Is that possible? I don't consider pseud-anonymous systems like Bitcoin (or Ethereum) as safe, since such public bock-chains are susceptible to third party analysis.

jgiszczak commented 5 years ago

There are no plans to implement support for zk-SNARKs or zk-STARKs in the baseline code.

EOS.IO is well equipped to run the verifier program in a zk-SNARK scheme. Execution time of a contract on chain is limited such that some zk-STARK verifications may fail due to excessive CPU usage. Transaction throughput of a zk-SNARK verifier on any individual account is limited by the network bandwidth staked. A substantial stake would likely be required for more than the throughput used by the typical daily transaction rate of an individual as zk-SNARK payloads are very large (in excess of 9 MB).

Anonymous transactions using the native token transfer functions of EOS.IO are not possible.