Skip to main content
Share Your Experience: Take the 2024 Developer Survey
28 votes

zk-SNARKs vs. Zk-STARKs vs. BulletProofs? (Updated)

A few of your points are valid (e.g. SNARKs and STARKS are both faster than Bulletproofs) but there are also some mistakes: STARKs are only faster than SNARKs at the prover level (1.6s vs 2.3s), ...
Paul Razvan Berg's user avatar
12 votes

zk-SNARKs vs. Zk-STARKs vs. BulletProofs? (Updated)

Starks are almost better than Snarks all around: they require weaker crypto assumptions, don't require a trusted setup and are post-quantum resistant. But they have a major drawback, as in the proof ...
Alex Pinto's user avatar
11 votes

Is there any way to hide a transaction?

No. All information on the blockchain is visible to all participants. Having said that, some clever uses of encrypted data exist for specific use cases. zkSnarks may provide general-purpose ...
Rob Hitchens's user avatar
  • 55.3k
9 votes
Accepted

What are zkSNARKs? How do they work?

I'll not enter on crypto hard details, because I don't know that much about it, and it needs pages and pages to be explained correctly. But let's try it!!! ZKSnarks also known as: Zero Knowledge ...
CPereez19's user avatar
  • 2,835
6 votes
Accepted

Is there any working zk-snark implementation (even if experimental) among the existing Ethereum clients?

Please find the zksnarks solidity code: https://gist.github.com/chriseth/f9be9d9391efc5beb9704255a8e2989d The transaction can be seen on Etherscan and was made on the testnet.
sunwarr10r's user avatar
6 votes
Accepted

How to use the zksnarks capability of Ethereum?

A full answer would take a lot of time and space, and the general situation right now is that there's no easy way to use the zkSNARK precompiles. The general outline are as follows: Construct a ...
Tjaden Hess's user avatar
  • 37.1k
5 votes

Is there any way to hide a transaction?

There's ring mixing contract with source code here which has similar (in fact, flipped) properties to Monero's ring signature mixes. It offers anonymity to recipients rather than senders, meaning ...
bekah's user avatar
  • 1,099
5 votes

Can ZKSnarks be implemented on the Ethereum ecosystem?

Disclaimer : I am not a cryptographer nor a mathematician nor a low level software engineer. Please correct me if any information provided below is incorrect. Very short answer: Yes Short answer: ...
PhABC's user avatar
  • 522
4 votes
Accepted

Is there a way to privately send ether?

The sending and receiving addresses and the amount are available for anyone to view. (EtherScan for reference). In the future, Ethereum does plan to implement privacy features - zero knowledge proofs ...
Karen S's user avatar
  • 432
4 votes

Is there any way to hide a transaction?

Sort of. There's some work going to get zCash running on ethereum here: https://z.cash/blog/zksnarks-in-ethereum.html. It seems like the ideas is: you would probably have an initial, traceable ...
John Henry's user avatar
4 votes
Accepted

Is there a decentralized zk-SNARK (zero-knowledge Succinct Non-Interactive ARgument of Knowledge)?

Yes, the verification key can be computed using multiparty computation (MPC). In this setup, n people participate in the construction and each independently and randomly generate the secret input. The ...
Tjaden Hess's user avatar
  • 37.1k
4 votes

Is there any working zk-snark implementation (even if experimental) among the existing Ethereum clients?

My answer is a fairly dumb one, as I've only had a look around in the code, and I haven't looked into zk-SNARKs properly yet, so apologies in advance if it's no help. The cpp-ethereum implementation ...
Richard Horrocks's user avatar
4 votes

Efficiency of zkSNARKs as an Ethereum smart contract vs Zcash

Now we can compare, since a few days ago the Ropsten network just verified a Zcash transaction via a zkSNARK. Check it out here. Confirmation time: the same as for a usual Ethereum transaction. The ...
István András Seres's user avatar
4 votes
Accepted

Can Ethereum verify zk-SNARK proofs?

Yes! There is a project called Zokrates, it allows you to create the algebraic circuit necessary for your proof and creates the smart contract that verifies it. You can find the toolbox you can get ...
Jaime's user avatar
  • 8,350
4 votes
Accepted

Why wrong proof accepted in Zokerates?

When you generate a proof in ZoKrates, it is always valid. You might be confusing the program returning 0/1 and the proof being valid/invalid. You can invalidate the proof by fiddling with it (...
dark64's user avatar
  • 56
3 votes

What are zkSNARKs? How do they work?

zkSNARKs will offer the possibility of private transactions, or confidential transactions. While the math and the cryptography behind it are quite complex, you can find an overview of it in Ethereum'...
Tudor Constantin's user avatar
3 votes

Is there a decentralized zk-SNARK (zero-knowledge Succinct Non-Interactive ARgument of Knowledge)?

You also might want to check out the following resources. The ING blockchain team has submitted their proposal for efficient ZKP's to ethereum. It's not a SNARK but a range proof. https://github.com/...
Nico Vergauwen's user avatar
3 votes

Updated: Is it possible to hide the sender or receiver of transactions by "zk-SNARK" or "Bulletproofs"?

Roughly, there are three aspects relative to privacy of transactions. Hiding the sender of the transaction -> Ring Signatures. See Will be a ring signature scheme possible to implement at Ethereum?...
ivicaa's user avatar
  • 7,519
3 votes

An example on using "zk-SNARK" in "smart contract"?

The only thing that is in solidity are precompiled contracts for Ellyptic curve operations. For implementations check out Is there a decentralized zk-SNARK (zero-knowledge Succinct Non-Interactive ...
Nico Vergauwen's user avatar
3 votes

Is "Pinocchio zk-SNARK" a specific type of zk-SNARK?

Pinocchio is one of the early implementation of SNARK ( Succinct Non Interactive Arguments of Knowledge) without the aid of Probabilistic Checkable Proofs (PCP). In 2010, Groth constructed a Non ...
Gokul Alex's user avatar
3 votes
Accepted

zkSTARK verifier in Solidity

Nothing identical The zkSnark ones are made by the IDEN folks with their snarkjs library: https://github.com/iden3/snarkjs The only thing I know of is this: https://github.com/starkware-libs/...
thefett's user avatar
  • 3,890
3 votes
Accepted

zK learning, don't know where to start

Alright, here is my list of recommendations. I have summarized it because in my experience, people don't look at everything if there is too much to look for. So I'll give you the best of the best (IMO)...
upavloff's user avatar
  • 1,110
3 votes
Accepted

About bitwise in circom

From the Cirom docs: The shift operations also work modulo p and are defined as follows (assuming p>=7). For all k with 0=< k <= p/2 (integer division) we have that x >> k = x/(2**k) ...
Arran Schlosberg's user avatar
2 votes
Accepted

Would be possible to hide a function execution with zkSNARKs?

zkSNARKs prove, in zero-knowledge, that a certain argument is true. Zero-knowledge here means that it leaks nothing about the argument except whether or not it is true. An example -- if you picked a ...
bekah's user avatar
  • 1,099
2 votes

Private Variables

State variable data in solidity is public. You'd have to encrypt the data you're storing if you don't want the data to be exposed in plain text.
Miguel Mota's user avatar
  • 5,163
2 votes

Private transactions

Yes, but you can already do that. You can take a phone number add a salt and hash it to get a hidden phone number. But what you can do with zksnarks is prove that your phone number is in a list ...
user34374's user avatar
2 votes

Private transactions

IMHO, the best entry point on this topic in the context of Ethereum is this high-level overview blog post written by Consensys: https://media.consensys.net/introduction-to-zksnarks-with-examples-...
ivicaa's user avatar
  • 7,519
2 votes

zk-SNARK use cases in blockchain (except payment)?

The main feature of ZK-SNARKs is to "cryptographically verify the correctness of a computation". In extreme, this means that you could offload lot of smart contract computation from the chain, but be ...
ivicaa's user avatar
  • 7,519
2 votes

Difference between zero knowledge succint non interactive of knowledge proof (zk snarks) and zero knowledge range proofs (zkrp)

A very good explanation from ING's paper on ZKRP: ZK-SNARKS, are a ZKP-variant, that requires no interaction necessary between the prover and verifier. The most appealing example of ZK-SNARK is its ...
ivicaa's user avatar
  • 7,519
2 votes

Updated: Is it possible to hide the sender or receiver of transactions by "zk-SNARK" or "Bulletproofs"?

Strictly speaking, it is not possible to hide the sender of an Ethereum transaction. This is due to the fact that it is possible to extract the public key of the sender, and thereby the address, ...
DurandA's user avatar
  • 130

Only top scored, non community-wiki answers of a minimum length are eligible