目前匿名币市场火热,达世和门罗价格受到投资者追捧,ZEC 也一直稳步增长,有心币友也许注意到,2017 年初市值排名 50 左右的 Zcoin,在牛市中一度消失,而如今 Zcoin 团队发布 Znodes 零知识节点测试网络以后市值已经达到 1.5 亿美金左右(Znodes 将于 12 月初正式发布),排名也回到 50 至 60 之间,但是很多币友对 Zcoin 并不了解,甚至认为其是 ZEC 的山寨币,那么 Zcoin 作为首个应用 Zerocoin 协议和零知识证明(Zcoin 发布早于 ZEC 一个月左右)的加密货币究竟有什么特色,相对其他匿名币有哪些优点和不足?本文就从技术方面做出全面叙述,同时本文也可作为匿名技术科普文章供各位币友参考)
本文宗旨在于简要概述当今主流加密货币中实施的匿名机制,特别是 Zcoin 使用的 Zerocoin 协议如何工作的。
区块链匿名是一个特别困难的事情,因为公共区块链的设计使得所有的交易都是透明的,加密货币的供应可以被公开验证。匿名机制必须确保这些要素得到保留,因此在维护可验证性的同时保护匿名是相互矛盾的。要了解 Zcoin 背后的创新,我们需要研究区块链匿名技术的历史。
1. 资金池混币和混币器混币
用于:达世币 Dash
优点:
缺点:
人们试图实现匿名的第一种方法是通过在资金池中混合自己和他人的币来达到目的,混合之后很难证明谁的硬币最初属于谁,从而提供某种程度的匿名。当然,前提是相信别人不会偷你的币。混币器是这种混合理念的改进,消除了匿名发起者窃取币的可能性,它在 Darkcoin (现在称为 Dash)中被广泛使用。但是混币器仍然有很多缺点。
Dash’s implementation of CoinJoin called PrivateSend also is susceptible to cluster intersection attacks.
混币器的其他改进,例如 CoinShuffle++不再需要可信的第三方,但仍然受到混币器的其他缺点的限制,如有限的匿名、参与者必须在线等。
混币器匿名的主要好处是它们相对简单,并且在加密货币的基础上工作,而不需要使用特定的共识规则。通过适当的预防措施,混币器可以提供基础匿名。
Tumblebit 也是一个非常有希望的改进混币器匿名的方案,但超出了本文的范围。与我们将在下一步讨论的其它匿名方案相比,这是一个没有在协议级别实施的匿名计划,但仍然需要其他人提供用于混合的资金。它的主要优点与混币器相同,可以在比特币或任何其他数字货币上实现,而不需要改变其协议。
2.Cryptonote 和环签
用于:门罗币 Monero
优点:
缺点:
我们将要探讨的下一个匿名方案是在 Monero 等 Cryptonote 加密货币中使用的环签,环签方案大大提高了混币器方案的匿名性。在环签中,某人签署了交易,只能追踪到一个组而不能具体追踪到组中的这个人。比如,可知某个「高级白宫官员」签署了环签,但不能追踪到具体哪个官员签署了这条信息。
Cryptonote 和环签可以自动实现匿名功能,无需其他用户指定想要和谁混合,也无需等待其他人提供资金,因为它只是扫描区块链以便使用输出。因为没有混币器,所以你不需要信任任何人。Monero 最近还实施了 RingCT(Ring Confidential Transactions),也隐藏了交易金额。
该加密技术的主要缺点是,它的交易——特别是与 RingCT 的交易——非常大,占用了几千个字节,这大大增加了存储区块链所需的存储空间。目前没有任何办法可以精简已形成的加密的区块链。使用与比特币完全不同的代码库,也意味着第三方必须做更多的工作,将 Cryptonote 加密技术整合到他们现有的生态系统中。
另一种对此种加密技术的批评是,如果它的环签技术有一个 bug,或者一个相当强大的量子计算机,那么整个区块链的记录就会被去匿名化和可追溯,并且无法在事后修正。就像名为 Shadowcash 的 Cryptonote 加密货币,因为 bug 导致所有区块数据全部被解密。
另外还需要注意的是,使用环签来隐藏交易金额,牺牲了供应可审核性。「供应可审核性」可以验证在交易过程中,是否有新的加密货币被秘密生成,并确定在某一时刻加密货币的具体数量。在 Monero 的「环签」的实现中,如果有人打破了支撑环签的离散对数,他就可以在没人知道的情况下伪造加密货币,虽然用目前的技术还很难做到。
尽管有这些缺点,但 Cryptonote 今天已被证明是一种非常好的匿名技术,它唯一公开惨败的例子是 Shadowcash,被全部解密,通过使用混合了零交易的 Monero 交易导致一个级联效应,约 87% 的输入被去匿名化。(https://eprint.iacr.org/2017/338)(随后被新的交易所缓和)。Cryptonote 加密技术解决了加密货币的许多问题,提供了良好的匿名性,但是作为代价,更大的交易规模和区块链扩展性也更难实现。
3.Zerocoin 协议和 Zcoin
用于:Zcoin,PIVX
优点 :
缺点 :
现在,我们来看看 Zerocoin。与之前的匿名方案不同,在使用零知识证明的情况下,Zerocoin 协议完全打破了币之间的交易链接。简单地说,零知识证明是你做某件事或知道某件事的证明,而不泄露任何其他信息。例如,要证明您知道密码,而不需要实际显示密码。
Zerocoin 的工作原理是,熔铸掉你自己的加密货币 (也就是所谓的零币熔铸),然后再兑换等量的做记号的新币 (被称为零币取回)。这些币在没有任何交易历史的情况下出现,与新挖矿而得到币相似。这一证明是用来证明你确实烧过了加密货币,而没有透露你烧过的具体加密货币信息,因此你有权赎回等量的新币。
这意味着,与混币和 Cryptonote 技术(匿名者的数量是由参与者的数量或环的大小所限制)不同,Zerocoin 交易过程中将允许你和任何一个挖矿(或熔铸)的人完全匿名,同时挖矿(或熔铸)的人也即时获得特定面额的加密货币。这就使得匿名者可以在成千上万的人中使用零币熔铸和取回来扩大规模。此外,这些硬币的交易环节也被完全打破,因为它们看起来完全是全新的硬币,与之相比,之前的匿名方法只是掩盖交易环节。
这种匿名模式也有一些缺点。为了获得巨大的匿名性,同时打破交易链接,Zerocoin 需要一次可信的设置来生成初始的参数。在 Zerocoin 中,有两个被摧毁的大质数。如果有人获取这两个巨大的质数,就可以凭空伪造出 Zerocoin。为了解决这一问题,Zcoin 使用了 1991 年的 RSA 质数挑战中的方法,在该挑战中,密码学专家生成并摧毁了两个大质数,并为能在 16 年内成功地将其分解的挑战者提供了 20 万美元的奖金,但无人能破解此难题。时至今日,RSA-2048 方法仍然是我们所知的最好的方法,RSA-2048 方法仍然被广泛使用,直到某天能够专门破解此类难题的量子计算机的出现。
值得注意的是,对这两个质数成功的分解不会影响零硬币的匿名性,因为它只影响熔铸。此外,Zcoin 的总量可查,这样就可以监测硬币的熔铸过程。在项目前期由于编程中的一个 bug(并非 RSA 被破解),硬币的熔铸出现问题,但我们及时检测到了 bug 并进行了修复,因此可见,总量可查是非常重要的。
Zerocoin 的另一个限制是,熔铸和取回只能处理固定面值的货币,相比环签交易,零币的零知识证明的数据大小是 25kb。值得注意的是,不同于 Cryptonote 交易(所有交易都占用同样大小的数据),只有匿名取回的交易占据了 25kb 数据,而普通交易的数据大小与比特币交易的数据大小相同。
错误的或可预见性的熔铸和取回方式(有规律的熔铸和取回,或者使用相同的 IP 地址来熔铸和取回)可能会影响匿名性,因此使用时需要注意。
总而言之,Zerocoin 提供了非常强大的匿名性,但为了实现该匿名,需要信任机制、区块链上的存储空间和额外的计算资源。为了移除信任机制和降低零知识证明数据大小,目前开发团队正在研究和评估采用 Sigma 协议的可行性。
4.Zerocash 和 Zcash
用于:Zcash, Zencash, Komodo
优点 :
缺点 :
我们讨论的最后一个匿名方案是 ZCash 中使用的 Zerocash 协议。Zerocash 采用了零知识证明,并试图改进 Zerocoin 协议。有了 Zerocash 和 zkSNARKs 技术,匿名数据大小现在只有 1kb,并且可快速验证。此外,所有交易金额都是隐藏的,在进行熔铸时不需要使用固定的面额。Zerocash 还允许人们将 Zerocash 的「零硬币」直接转移给对方,而不需要将其转化为等价的基本硬币。它的匿名方法也是之前所有匿名计划中规模最大的一个,包含了所有铸造的硬币,而没有考虑区块链的面值。
粗略来看,就会觉得 Zerocash 技术超出了 Zerocoin,然而,相对 Zerocoin,它也有一些不足。
首先,Zerocash 缺乏可审核性。和 Zerocoin 一样,Zerocash 需要一个信任机制,但 Zerocash 的设置要复杂得多。Zcash 采用了一场涉及 6 人的多方仪式来完成设置,其参数泄露的唯一方式是,所有的 6 人相互串通,并保留相关参数。换句话说,你必须信任这 6 个人中的任何一位,相信他们摧毁了初始参数并且相信这个仪式被正确执行。如果代码中存在 bug,或者密码缺陷或多方信任设置的问题,攻击者可以生成无限的 Zcash,与 Zerocoin 不同的是,这种额外的供应是无法被检测到的。因此,总量可查是非常重要的。
其次 Zerocash 使用一种 zkSNARKs 的新加密算法,它实际上只在 Zerocash 中使用。但是,相对 RSA 技术,其并未经过多年的使用和审查,也并未被广泛使用。许多密码学专家认为 zkSNARKs 的保密性相对较弱。
Zerocash 的另一个主要缺点是,由于需要进行复杂的数学计算,因此,在一台功能强大的计算机上,匿名交易的生成时间要比之前任何一种匿名方式要长得多,特别是对配置较低的计算机来说,这一过程太长。这使得人们无法广泛使用它的匿名功能,也可能会不适用一些功能不太强大的系统,比如移动设备。
因此,尽管 Zerocash 具备可能是最好的匿名性,但它以牺牲总量可查为代价,同时也包括如下缺点:复杂的可信设置,使用过于新的加密技术,创建匿名交易需要很长时间。
在这里列出的所有区块链匿名方案都得到了研究人员的好评,各种匿名方案都很容易理解。然而,现在的加密货币有好几百种,但只有少数能真正实现匿名。以下是新的匿名机制是否可靠的关键因素:
除非你自己是专家,否则这很难确定。检查他们的团队,看看他们的团队或者他们的顾问名单上是否有密码学相关的研究经历。
总结
每一个匿名模式都有自己的利益和权衡取舍,我们相信,对这些匿名方案进行持续的探索和研究,会改善整个区块链的匿名技术。我们坚信 Zcoin 中使用的 Zerocoin 协议与其他匿名方案相比,提供了一个非常全面的匿名方案,它使用经过验证的加密技术,同时还保持了可扩展性和可审计性。
我们将会继续研究并进一步改善 Zerocoin 协议。