Hot answers tagged

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 ...
25 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), ...
20 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 ...
17 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 ...
  • 16.4k
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
  • 891
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 ...
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 ...
  • 52.5k
11 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:...
  • 26.9k
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 ...
  • 79.7k
10 votes
Accepted

How can we write a contract that relies on hidden information?

In simple terms, you can't. In more complex terms, depending on your specific application, there are various forms of cryptography that you can use to achieve something similar to your desired ...
10 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 ...
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 ...
  • 79.7k
8 votes
Accepted

Is there a point to hide Ethereum nodes with TOR?

If you want to conceal your node's network address as the source of your transaction, and thereby preventing others to associate your network address with your Ethereum address, then you might want to ...
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 ...
  • 3,292
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 ...
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 ...
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 ...
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 ...
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 ...
  • 1,308
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 ...
  • 560
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 ...
  • 1,628
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 ...
  • 1,039
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 ...
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, ...
  • 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 ...
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 ...
  • 1,039
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 ...
  • 16.4k
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 ...
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 ...
  • 34.8k
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 ...
  • 79.7k

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