Skip to main content
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
25 votes
Accepted

Private info in an Ethereum smart contract

Everything on the Ethereum blockchain is public. Therefore you cannot obscure data. This is because each Ethereum node stores a copy of the entire blockchain, and so each node could theoretically ...
Karl Floersch's user avatar
21 votes

What are effective techniques to encrypt/decrypt data stored in a smart contract?

Since all transactions and data on the blockchain are public, you need to encrypt the data outside of Ethereum and insert the already encrypted data. Similarly you need to pull the encrypted data and ...
Péter Szilágyi's user avatar
19 votes
Accepted

When a smart contract is deployed, is its source code publicly viewable?

No, the source code isn't automatically publicly viewable. If you have a publicly usable smart contract then you normally need to publish it so that people will know what they're interacting with, but ...
Edmund Edgar's user avatar
  • 16.9k
13 votes

Private info in an Ethereum smart contract

You can encrypt the data and keep the keys off-chain: See: https://github.com/brix/crypto-js
Denis's user avatar
  • 911
12 votes
Accepted

How to increase my privacy on Ether accounts?

As far as I know the ideas in this article are not implemented yet, but take a look at it. It's an idea developed by Gav and Vlad when they were both on the Ethereum c++ core team. Basically the idea ...
Jacob Czepluch's user avatar
12 votes
Accepted

How do I see the value of a string stored in a private variable?

For the example contract you gave, it looks like there's a bytes32 state variable at slot 1 with the value "A very strong secret password :)". I found this by just calling getStorageAt a couple times:...
user19510's user avatar
  • 28k
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.2k
10 votes

Solidity functions - private visibility

looking for information on if it is possible to prevent people from reading the values of function parameters and local variables There are 2 worlds: inside Solidity, contracts, and the EVM outside ...
eth's user avatar
  • 85.8k
9 votes
Accepted

Accessibility of public variables

A public state variable will have an automatically generated accessor that other contracts can use to read the variable. However, public state variables can only be changed by a function in a ...
eth's user avatar
  • 85.8k
8 votes

How to increase my privacy on Ether accounts?

All blockchain transactions are public so if you transfer money from one account to multiple accounts it will be clear that these accounts are linked. All someone needs to do is look at the ...
JackWinters's user avatar
  • 3,413
8 votes
Accepted

Is it safe to commit truffle build files to Github (open source)?

There are two problems with Truffle compilation output (JSON files), which make it difficult to keep them under version-control: The updatedAt field indicates the compilation time of the source file ...
goodvibration's user avatar
7 votes
Accepted

How can I configure Ethereum to run over Tor or I2P

If Tor or I2P support is not yet practical... Running over Tor currently won't work due to Ethereum's requirement of UDP port 30301, and the fact that Tor only supports TCP. I2P is actually more ...
Richard Horrocks's user avatar
7 votes

With a ring signature mixer, will Ethereum transactions be completely anonymous?

Everybody knows what addresses were inputs to the ring. So when you withdraw, everybody knows your output address is linked to one of the input addresses. But nobody knows which one. This is an ...
Dennis Peterson's user avatar
7 votes

Issue with New version of Metamask: Remix cannot detect the Metamask address

The reason it is not being read is because this version of Metamask enables privacy mode by default. What this does is require you to approve the application to view/use your wallets on Metamask. For ...
Shane Fontaine's user avatar
6 votes
Accepted

What data will zk-SNARKs protect?

There are no final plans. Initially they might only be used ephemerally for transaction voting to prevent censoring votes. Parts of the transaction would be hidden until the transaction is processed ...
nessence's user avatar
  • 570
6 votes
Accepted

With a ring signature mixer, will Ethereum transactions be completely anonymous?

Nope. Nothing in blockchain is fully anonymous. Just very difficult to track down. Almost to the point of not worth trying to unless you did something really bad and there's proof it came from your ...
VoR0220's user avatar
  • 1,710
6 votes

Solidity functions - private visibility

The question is not so much about visibility but accessibility. Contracts on the blockchain are viewable by everyone in bytecode (not in Solidity however). In terms of accessibility- who has ...
Physes's user avatar
  • 1,308
5 votes

With a ring signature mixer, will Ethereum transactions be completely anonymous?

The property of anonymity offered by ring signature mixers is more like what you would intuitively think of as 'plausible deniability', or 'anonymity with respect to an anonymity set'. The actual ...
bekah's user avatar
  • 1,099
5 votes
Accepted

How Right to be forgotten can be applied with Dapps like Akasha?

Tough question. Let’s see how this could be approached in Web 3.0 and Web 2.0 paradigms: Web 3.0 - assuming everyone would have the AKASHA dapp installed with an Ethereum/IPFS node running in the ...
Mihai Alisie's user avatar
5 votes

How Right to be forgotten can be applied with Dapps like Akasha?

At the low, blockchain level it cannot exist, but it could be "emulated" at the UI level... same as for regular web: the result can be filtered from some search engines, but not from archives, copies, ...
fair glu's user avatar
  • 365
5 votes

How to increase my privacy on Ether accounts?

You could use this method described by Peter Todd. Just replace BTC with ETH: "For me personally shapeshift adds a lot of value to Bitcoin, as it gives me much stronger privacy by using Monero as an ...
studycrypto's user avatar
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
4 votes
Accepted

Unlinkability between transactions to a smart contract

The short answer is no, this is not currently possible. There are technologies that would allow anonymous transactions, such as zkSNARKs, ring signatures, and homomorphic encryption, many of which ...
Tjaden Hess's user avatar
  • 37.1k
4 votes
Accepted

using indistinguishability obfuscation to ensure smartContract privacy

This is a question that is really asking about the price of obfuscation and the benefit one can take. While the price is depending on a smart algorithm, the benefit is depending on the entropy the ...
Roland Kofler's user avatar
4 votes
Accepted

Who can access private state variables?

External observers are anyone who access to a block explorer, or is otherwise able to get blocks from the network and parse the data on the blockchain. Note that they can only access data in your ...
Edmund Edgar's user avatar
  • 16.9k
4 votes

Is the content of a function and the data in a smart contract publicly readable?

Yes. The blockchain will contain the EVM bytecode of the functions and anyone can read and analyze them to try to figure out what the functions are doing. They will not have access to the source ...
eth's user avatar
  • 85.8k
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

Should I create a new address for each transaction?

Bitcoin is UTXO based, so you can use an HD wallet(BIP32) to get a new address for each transaction to protect your privacy. However, Ethereum is account based and each account has a single address, ...
Badr Bellaj's user avatar
  • 18.8k

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