forked from Zerocoin/zerocoin.github.io
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathindex.html
More file actions
147 lines (117 loc) · 10.8 KB
/
index.html
File metadata and controls
147 lines (117 loc) · 10.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="">
<title>
Zerocoin
</title>
<meta name="description" content="">
<meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link href="/media/css/bootstrap.min.css" rel="stylesheet">
<link href="/media/css/bootstrap-responsive.min.css" rel="stylesheet">
<link href="/media/css/style.css" rel="stylesheet">
<link href="/media/css/stickyfooter.css" rel="stylesheet">
<link href="/media/css/nav.css" rel="stylesheet">
<link href="/media/css/typography.css" rel="stylesheet">
<link rel="shortcut icon" href="/media/images/favicon.png">
<link rel="apple-touch-icon" href="/media/images/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="/media/images/appleimgim-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="/media/images/apple-touch-icon-114x114.png">
<script>
var _gaq = [['_setAccount', 'UA-40085231-1'], ['_trackPageview']];
(function(d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
g.src = '//www.google-analytics.com/ga.js';
s.parentNode.insertBefore(g, s);
}(document, 'script'));
</script>
</head>
<body class="index">
<div id="wrap"> <!-- Wrap for sticky footer -->
<div class="row-fluid">
<div class="span7 offset3">
<div class="navbar">
<a class="btn btn-navbar collapsed" data-align="left" data-toggle="collapse" data-target="#foobar">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="nav-collapse" id="foobar">
<ul class="nav">
<li class="active"><a href="index">Home</a></li><li><a href="people">People</a></li><li><a href="contribute">Contribute</a></li><li><a href="software">software</a></li><li><a href="q_and_a">Q and A</a></li><li><a href="talks_and_press">Paper, Press, etc</a></li></ul>
<div class="pull-right twitter-div" >
<a href="https://twitter.com/zerocoinproject" class="twitter-follow-button" data-show-count="false" data-show-screen-name="false">Follow @zerocoinproject</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
</div>
</div>
</div>
</div>
</div>
<div class="row-fluid banner">
<div class="span6 offset3" />
<h1>
<a class="brand" href="index.html">
<img src="/media/images/zq_bw_72.png"/>erocoin
</a>
</h1>
</div>
</div>
<div class="row-fluid">
<div class="span6 offset3">
<h4 id="libzerocoin-alpha-version-available-see-software"> We will be updating this site soon to include details of our new version described by Matt Green at Real World Crypto 2014</h4>
<h3 id="what-is-zerocoin">What is Zerocoin?</h3>
<p>Zerocoin is a proposed extension to the Bitcoin payment network that adds anonymity to Bitcoin payments. Just as paper currency once gained its value from being redeemable for gold, zerocoins gain their value from being redeemable for bitcoins. We believe that tools such as Zerocoin are necessary as the current Bitcoin payment network does not offer strong privacy protections. The main idea behind Zerocoin is to place anonymity technology into the Bitcoin network itself. This is substantially different from previous anonymization technologies such as “laundries”, since Zerocoin does not rely on a trusted centralized party that can fail or become corrupted.</p>
<p>What makes Zerocoin different from previous approaches:</p>
<ul>
<li>
<p>Zerocoin operates in the <strong>Bitcoin network</strong> and is implemented as a series of extensions to the existing Bitcoin protocol. This approach means that Zerocoin can be deployed without relying on a central coin issuer or bank (as used in previous e-cash schemes). Moreover, since no single trusted party operates the Zerocoin system, attacks on Zerocoin must take on a substantial fraction of the Bitcoin network.</p>
</li>
<li>
<p>Zerocoin uses provably <strong>secure cryptographic techniques</strong> to ensure that Bitcoins cannot be traced. These techniques allow users to conduct transactions on the Bitcoin network while receiving strong mathematical guarantees that the transactions cannot be traced. These guarantees remain in place even if a portion of the Bitcoin network is compromised by an attacker.</p>
</li>
<li>
<p>Other anonymous cash systems rely on distributing the work of anonymizing users amongst a set of parties. This approach works well if all parties are fully available but can be subject to “denial of service” attacks where a small number of nodes are taken offline. Because Zerocoin is built on top of Bitcoin, it is <strong>widely distributed</strong> among all the Bitcoin peers, ensuring that the system can remain available even when many nodes are compromised.</p>
</li>
</ul>
<h3 id="the-problem-bitcoin-is-not-private">The problem: Bitcoin is not private</h3>
<p>The Bitcoin payment network offers a highly decentralized mechanism for creating and transferring electronic cash around the world. Unfortunately, Bitcoin suffers from a major limitation: since transactions are stored in a public ledger (called the “block chain”) it may be possible to trace the history of any given payment — even years after the fact. Worse, since the Bitcoin ledger is public, any party can recover this information and data mine to identify users and patterns in the transactions. In other words: Bitcoin transactions are conducted in public.</p>
<p>The Bitcoin protocol and clients address this in two ways: (1) all Bitcoin transactions are conducted using public keys as identifiers, and these public keys are not linked to individual names. And (2) Bitcoin clients are capable of generating many public keys (“identities”) to help users resist tracking. Unfortunately, a growing body of research indicates that these protections are insufficient. This information may allow data miners to link individual transactions, identify related payments, and otherwise trace the activities of Bitcoin users. </p>
<p>The most common solution to this problem is to use Bitcoin laundries – services that mix together many users’ bitcoins in order to obfuscate the transaction history. Laundries suffer from a number of potential drawbacks, however, as they must be trusted to return coins. Moreover a compromised or malicious laundry offers no anonymity.</p>
<h3 id="how-zerocoin-works">How Zerocoin works</h3>
<p>Zerocoin operates like a distributed laundry where the laundry is implemented within the Bitcoin network itself. </p>
<p>Zerocoin achieves this by creating a separate anonymous currency that operates side-by-side with traditional Bitcoin on the block chain. Zerocoins can be thought of literally as coins. They’re issued in a fixed denomination (for example, 1 BTC), and any user can purchase a zerocoin in exchange for the correct quantity of bitcoin. This purchase is done by placing a special new “Zerocoin Mint” transaction into the block chain.</p>
<p>Once a Mint transaction has been accepted by the Bitcoin peers, the same user can redeem her zerocoin back into bitcoins. She simply embeds a (preferably new) destination Bitcoin address into a “Zerocoin Spend” transaction, then sends it into the network. If the transaction checks out, the Bitcoin peers will treat it just like a normal Bitcoin transfer – meaning that she’ll receive the full bitcoin value of the coin (minus transaction fees) at the destination address.</p>
<p>The key to this process is to ensure that the bitcoins received at the end of this process are completely unlinked to the bitcoins that were used in the beginning. This is accomplished using a variety of cryptographic components, including digital commitments and zero-knowledge proofs. The end result is that it is mathematically infeasible to link the particular bitcoins used at the beginning and end of this process, other than through educated guesswork.</p>
<p><img alt="" src="/media/images/zerocoin_blockchain.png" title="Zerocoin block chain example" /></p>
<p>For a more detailed explanation of the Zerocoin system you can see the original <a href="/media/pdf/ZerocoinOakland.pdf">research paper</a> or <a href="http://blog.cryptographyengineering.com/2013/04/zerocoin-making-bitcoin-anonymous.html" title="Zerocoin: Making Bitcoin Anonymous">this</a> blog post that gives a high-level summary.</p>
<h3 id="the-road-ahead">The road ahead</h3>
<p>We have released an alpha version of libzerocoin, a library suitable for integration into Bitcoin clients. See <a href="software">software</a>. </p>
<p>We still need to:</p>
<ul>
<li>Continue to improve the library.</li>
<li>Provide a <a href="https://en.bitcoin.it/wiki/Bitcoin_Improvement_Proposals" title="Bitcoin Improvement Process">BIP</a> style specification of the Zerocoin protocol</li>
<li><em>Get someone integrate it into bitcoin/litecoin/*coin</em></li>
</ul>
</div>
</div>
<div id="push"></div> <!-- for sticky footer-->
</div> <!-- / sticky footer wrap -->
<div id ="footer" class="row-fluid footer">
<div class="span6 offset3">
<p>Created by <a href="http://hms.isi.jhu.edu/index.php/people/11.html">Ian Miers</a> <a href="https://twitter.com/imichaelmiers">@imichaelmiers</a></p>
</div>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="/media/js/libs/jquery-1.9.1.min.js">\x3C/script>')</script>
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<!--[if lt IE 7 ]>
<script src="/media/js/libs/dd_belatedpng.js"></script>
<script>DD_belatedPNG.fix('img, .png_bg'); // Fix any <img> or .png_bg bg-images. Also, please read goo.gl/mZiyb </script>
<![endif]-->
</body>
</html>