10.02.2016 Views

Bitcoin and Cryptocurrency Technologies

1Qqc4BN

1Qqc4BN

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

a single transaction that combines as many coins as necessary in order to pay the entire amount to a<br />

single address. What if they could avoid the need to merge <strong>and</strong> consequently link all of their inputs?<br />

The merge avoidance protocol enables this by allowing the receiver of a payment to provide multiple<br />

output addresses — as many as necessary. The sender <strong>and</strong> receiver agree upon a set of<br />

denominations to break up the payment into, <strong>and</strong> carry it out using multiple transactions, as shown in<br />

Figure 6.10.<br />

Assuming the store eventually combines these two payments with many other inputs from other<br />

payments it has received, it will no longer be obvious that these two addresses were associated with<br />

each other. The store should avoid re-combining these two inputs as soon as it receives them or else<br />

it will still be clear they were made by the same entity. Also, Alice might want to avoid sending the<br />

two payments at the exact same time, which might similarly reveal this information.<br />

Generally though, merge avoidance can help mitigate the problem of high-level flows: an adversary<br />

might not be able to discern a flow if it is broken up into many smaller flows that aren’t linked to each<br />

other. It also defeats address clustering techniques that rely on coins being spent jointly in a single<br />

transaction.<br />

6.5 Zerocoin <strong>and</strong> Zerocash<br />

No cryptocurrency anonymity solutions have caused as much excitement as Zerocoin <strong>and</strong> its<br />

successor Zerocash. That’s both because of the ingenious cryptography that they employ <strong>and</strong> because<br />

of the powerful anonymity that they promise. Whereas all of the anonymity-enhancing technologies<br />

that we have seen so far add anonymity on top of the core protocol, ​Zerocoin​<strong>and</strong> ​Zerocash<br />

incorporate anonymity at the protocol level. We’ll present a high-level view of the protocol here <strong>and</strong><br />

necessarily simplify some details, but you can find references to the original papers in the Further<br />

Reading section.<br />

Compatibility. ​As we’ll see, the strong anonymity guarantees of Zerocoin <strong>and</strong> Zerocash come at a<br />

cost: unlike centralized mixing <strong>and</strong> Coinjoin, these protocols are not compatible with <strong>Bitcoin</strong> as it<br />

st<strong>and</strong>s today. It is technically possible to deploy Zerocoin with a soft fork to <strong>Bitcoin</strong>, but the practical<br />

difficulties are serious enough to make this infeasible. With Zerocash, a fork is not even possible, <strong>and</strong><br />

an altcoin is the only option.<br />

Cryptographic guarantees. ​Zerocoin <strong>and</strong> Zerocash incorporate protocol-level mixing, <strong>and</strong> the<br />

anonymity properties come with cryptographic guarantees. These guarantees are qualitatively better<br />

than those of the other mixing technologies that we have discussed. You don't need to trust anybody<br />

— mixes, peers, or intermediaries of any kind, or even miners <strong>and</strong> the consensus protocol — to<br />

ensure your privacy. The promise of anonymity relies only on the adversary’s computational limits, as<br />

with most cryptographic guarantees.<br />

185

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!