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), ...
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 ...
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 ...
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 ...
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
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 ...
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:...
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 ...
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 ...
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♦
- 85.7k
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♦
- 85.7k
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 ...
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
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
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
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
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 ...
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 ...
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 ...
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, ...
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
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 ...
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 ...
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 ...
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
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 ...
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♦
- 85.7k
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 ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
privacy × 138security × 19
zksnark × 19
solidity × 17
contract-development × 17
anonymity × 16
contract-design × 13
blockchain × 12
transactions × 11
zero-knowledge × 11
private-blockchain × 9
metamask × 8
wallets × 8
quorum × 8
addresses × 7
cryptography × 7
encryption × 7
web3js × 5
tokens × 5
remix × 4
etherscan × 4
dapp-development × 4
accounts × 4
exchanges × 4
bitcoin × 4