Hot answers tagged

22

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 inspect their copy to find whatever data you wanted to be obscured. That doesn't mean you can't put sensitive data on the blockchain, you just have to encrypt it ...


19

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 decrypt it locally. I'm sure there are a lot of crypto libraries for javascript that will allow you to do this, web3 I doubt contains such functionality as it's ...


13

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 it doesn't happen automatically. The compiled bytecode is on the blockchain, though. It's hard to read but it's not safe to assume somebody won't work out ...


12

You can encrypt the data and keep the keys off-chain: See: https://github.com/brix/crypto-js


12

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), while for verifiers the protocol is slightly slower (16ms vs 10ms). If by shorter you mean size in bytes, Bulletproofs are only smaller than STARKs (1,300B vs 45,...


11

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 obfuscation in the future.


10

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 is to have a smart contract that given two sets of address sources: source and destination, guarantees exactly one of the following two possible outcomes: For ...


10

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 objective, although most of the tooling around this crypto is still being developed.


8

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 hide your node behind Tor


8

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 Asking about people is case #2, and all data on the blockchain is currently visible to everyone. Someone can take your transaction and can analyze it to see ...


7

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 interesting. There are two protocols implemented on I2P: NTCP (NIO-TCP), and SSU (Secure Semireliable UDP). It'd be an interesting project to see if Ethereum could ...


7

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 transaction history on a chain explorer. The devs are looking into various options to enhance privacy. Trust-less privacy will arrive sometime in the future but for now ...


7

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 improvement over the usual situation where funds can be traced from address to address. It's helpful in some situations. Say you have an address which as been linked ...


7

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 your specific issue, you have not yet approved Remix to use your accounts, therefore it cannot read your addresses, as you are seeing. To fix this, enable ...


6

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 and committed but the final result would still be publicly known (sender, receiver, value). Native support for transactions and contract execution is still to be ...


6

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 address. And even then. Linking address to identity is difficult in and of itself.


6

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 is huge. For certain applications, like the one I have to work, that is simply not feasible. We had to choose between a Snark proof in the order of hundreds of ...


5

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 definition of anonymity is given as an adversary having only negligibly greater advantage of connecting the true input-output address pair than if he were to guess ...


5

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, foreign/custom search engines, private or governmental databases, dark web databases, etc. An alternative search engine would still be able to expose the data ...


5

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 contract that changes the variable. If there are no such functions that are accessible to other contracts, the state variable cannot be changed by other contracts. ...


5

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 permission to make calls to your function, you can use modifiers. In this case you would define an onlyOwner modifier earlier in the contract like so: modifier ...


4

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 are described in the blog post you reference. Unfortunately, these systems are not quite ready for prime-time; for the most part they are too inefficient to work ...


4

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 anonymous intermediary point. Specifically, I buy Monero on shapeshift, then sell it to xmr.to, which in turn sends bitcoins to the Bitcoin address of my choice....


4

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 background. At the moment we use the ethereum blockchain to store the IPFS hashes pointing to the content, so removing the “link to content” without any trace ...


4

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 algorithm provides. While it is totally possible to obfuscate to a certain level, the win determines how much effort it will take to unassemble it. There is ...


4

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 contract, they are not able to modify it. So we can all find out the value of your uint private x. If I wrote a contract, the contract wouldn't directly be able ...


4

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 contract; but other's can then use this to preform untraceable transactions with it.


4

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 that if you use it to make payments (as in, you deposit a public key and the intended recipient has the corresponding private key with which to withdraw), even ...


4

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, but it is possible to implement an HD wallet for Ethereum. I think there is already such wallets as Jaxx which provide such ability. So to answer you, if your ...


4

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 to allow for private transactions. See here. Also, Ethereum's plans for plasma would also extend privacy to parent chains off the root chain.


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