3

In Bitcoin, you can have increased privacy by never re-using addresses. A single private key can generate many addresses if you are using a key derivation scheme.

In Ethereum, instead of UTXOs you have accounts. And you can use a key derivation scheme on top of Ethereum, to generate multiple private keys for multiple accounts. I want to do the same thing in Ethereum - avoid account re-use in order to increase privacy.

But I can't seem to find an Ethereum wallet that will let you track these multiple accounts, then perform 'coin selection' (really, 'account selection') when sending ether out of the wallet.

Do any ethereum wallets support a 'coin selection' algorithm?

1

As far as I know, there are no wallets for Ethereum that allow coin selection from different accounts. There are wallets such as Parity (at least in conjunction with a hardware wallet), Jaxx, and MyCrypto that use key derivation schemes that enable deterministic account addresses to be generated and used.

Because of the way UTXOs work in Bitcoin, the ability to combine inputs sent to multiple accounts cost the same as combining inputs sent to a single account, there is no downside to receiving Bitcoin in different accounts and combining later. Furthermore, Bitcoin enables the combining of multiple inputs to one or more outputs. Thus, if a payee is expecting 1 BTC in payment, they can look for a single transaction for that amount; the transaction can be made up of one or more UTXOs totalling at least 1 BTC (plus fees) and having a 1 BTC output.

In Ethereum, because of the lack of UTXOs, the cost of a basic transaction from one account to another (denominated in gas) is fixed, regardless of the size of the transaction and the history of the accounts (unlike Bitcoin where it costs a lot to spend "dust"). Every transaction is initiated by exactly one account and, at least at present, I don't think there is any way to rope in other accounts to participate in spending ether other than through a contract (in which case, the contract is the entity with the ether). Thus, trying to send a particular amount of ether to a recipient using multiple accounts would scale with the number of accounts used and the cheapest thing to do is just use a single account. Furthermore, trying to send, say, 1 ETH to an account using n accounts results in n transactions that add up to 1 ETH in outputs. This becomes harder to monitor (and, indeed, with multiple people sending to the same account for different actual transactions of differing amounts, becomes NP-complete).

However, if your interest is in transaction privacy, you can mix coins yourself (which can be expensive) and end up with an account that has the correct number of ether to send in the final transaction or you can exchange your ether for, say, Zcash, and back. Alternately, you can wait for zkSNARKs to be more widely adopted in the Ethereum network; zkSNARKs are already supported on the main net.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.