发新帖

Zcoin 和Zcash: 相似性和不同处

admin 8月前 620


Zcoin QQ群社区:304390133


此文来自于Zcoin博客:


最近常见的问题就是:Zcoin 和 Zcash 到底有什么不同?

Zcoin和Zcash是仅存的两个使用零知识证明而达到零知识级匿名的加密货币。两者之间确实有很多波折纠缠。Zcoin使用 Zerocoin Protocol  零币协议(此文发表时已被学术引用208次), 而Zcash使用 Zerocash Protocol  ZeroCash协议(此文发表时已被学术引用104次).

Zcoin(Zerocoin协议)和Zcash(Zerocash协议)的最大不同为以下几点:

1) Zcash可以隐藏转账金额,但Zcoin并没有这种功能。因此相对Zcoin,Zcash不容易遭到时序攻击(边信道攻击),但也因此Zcash有可能存在无法检测到的无限通胀币量发行问题。(无限量发行代币)

可以利用获知某人正在用Zerocoin“铸币”而进行时序攻击。

Zerocoin协议有两大步骤:第一步:“zerocoin铸币”阶段,“Public coin”(公开币,没有隐私属性)进入一个叫做 accumulator(收集器)的数据结构中。Accumulator收集器回答关于候选者是否为成员的请求,而不揭示成员身份。第二部为“Zerocoin花销”阶段,该阶段使用者可以实现零知识证明,显示某人在accumulator中拥有币而无需告知拥有哪个币。有了零知识证明的“Zerocoin花销”证明,就可以产生一个完全没有历史交易记录的新Zcoin。

因为每个Zerocoin在通过“zerocoin 花销”实现匿名前,都需要执行“Zerocoin铸币”, 通过分析“zerocoin铸币”与“zerocoin花销”间的时序可以进行攻击。使用者有可能在“zerocoin 铸币”转账之后马上进行“zerocoin 花销”转账, 因此假设有这种行为,就会产生假定几率,即一个“zerocoin 铸币”与一个特定“zerocoin 花销”相关联。但是,只要在“zerocoin铸币”和“zerocoin花销”之间等稍微长时间,即可防止时序攻击。

因为ZCash隐藏了转账数量,相对于Zcoin,能够更有效防止时序攻击。但也因此带来一个更大的隐患:

本质上,对于Zcash没有“稀缺性”一说,很少有人能够以数学/加密学位第一原则为基础对其进行证明。Zk-Snark使用极度复杂的加密学。只有一小撮加密学学术专家才能理解ZK-Snarks原理。Zerocoin背后的加密学原理存在时间较长,Zerocoin论文也是近年加密学学术引用的常客。并且大部分加密学学术专家能够理解Zerocoin原理。

Zcahs的bug在于,有人可以无限制印钞,而且无人能知。利用这个bug,可以无限通胀货币供应量,并操纵市场。这种通过改变货币供应量而导致崩盘的例子不少。最典型案例是2010年比特币价值溢出(value overflow)bug,这个bug使比特币总量达到900亿。

“2010年8月15日,比特币74638区块,一个184,467,440,737.09551616个比特币的转账设计三个地址。2个地址分别收到922亿比特币,并且找到这个块的人都多获取了之前不存在的0.01比特币。据技术人员分析,黑客是通过利用大整数溢出漏洞,绕过了系统的平衡检查,成功实现了这次攻击


在Zcash中,这种bug悄无声息而无人察觉。如果Zcash有相似的bug,那么在无人得知的情况下,一个人就能拥有99.9%的Zcash市值。

最近的一例加密货币bug就是The DAO,惨遭黑客对价值5000万美元代币的攻击

在okTurtle博客中,Greg Slepak写到

然而这种情况比The DAO更严重,Zcash的代码比The DAO复杂程度搞出数个指数级别,其失败结果也是指数级别高的严重。Zcash的现状是:根本不可能知道攻击是否成功。除非破坏者自己发出警告,我们才可能知道Zcash被攻击,木已成舟。Zcash价值越高,危险性越高。根本没有回撤键。

除了非本意的bug外,还有另外一个问题。因为ZK-Snarks的高冷技术,对于Zerocash的底层加密学原理几无同行评审的可能。但Zerocoin却没有这方面顾虑。能懂Zcash加密学理论的学术专家极少。如果在数百万美元诱惑下,及时最高尚的学术专家也可能跨越道德界限。相比之下,Zcoin即使有bug,也是在阳光之下,每个人都能知道总量没有发生变化。

2) 加密算法参数:

Zcoin使用25年前的RSA析因挑战加密算法,数十年安全无忧。如今Zcoin使用期算法参数与新的加密学项目。无可辩驳的是,因为与NSA(国土安全)的合作关系,RSA近年来算不上一个伟大公司。但RSA析因挑战算法产生于1991年,是RSA的初期阶段,RSA算法的创始人对自己公司的把控度较高的时期。另一方面,Zcoin的机制被破坏的几率变小的因素:每个人都能看到Zcoin的供应量。但相比之下,如果Zcash被攻破,超级通胀的发行量无人能察觉。

Zcash依靠的假设条件是,所有加密算法参数生成者都不会合谋作恶。只要有一个公正不作恶者,那么久安然无恙。否则,他们可以任意双花。

但是,我们的看法是,Zcash的机制还是可以的,因为大部分情况下,应该至少有一个公正不作恶者。两者的机制都不是很理想,但都能照常工作。

3) Zcash对内存占用很高,并且转账时间比Zcoin要长很多。另一方面,Zcoin占用存储空间比Zcash要求高很多。

根据 Zcash’s benchmarks性能测试:

“在一个4核服务器测试,生成一次隐私转账占用3.2GB内存和50秒运行时间”

这对内存要求相对较高,大部分笔记本只有4GB RAM。即便对于8GB RAM的及其,3.2GB的内存占用会让转账占用物理内存。进入物理内存,即便是最先进的SSDs固态硬盘,也比DDR-3慢十倍。在老设备上,会慢30倍以上。所以对于常见4GB RAM设备,Zcash运行时间需要10到30分钟。运行一次隐私转账需要这么长的时间。

Zcoin的隐私转账不像Zcash那样对内存要求颇高。在一个四核性能测试服务器上,产生一次隐私转账只使用10秒运行时间。因此发送Zcoin隐私转账是Zcash的5至200倍快。当然因设备而异。

另一方面,Zcoin的隐私(匿名)转账字节数比Zcash大50倍。这个问题并不是一个限制因素,理由有好几点。会有方法解决块链修剪:

中本聪在他的白皮书里提到“修剪”块链解决比特币未来扩展性问题。当Zcoin转账需求超过其容量后,完全可以进行块链修剪。

修剪掉merkle树(数据结构所说的树)不需要的枝节,Zcoin的区块链修剪完全可以按照中本聪白皮书的方式执行。

如果最近的交易已经被纳入了足够多的区块之中,那么就可以丢弃该交易之前的数据,以回收硬盘空间。为了同时确保不损害区块的随机散列值,交易信息被随机散列时,被构建成一种Merkle树(Merkle tree)[7] 的形态,使得只有根(root)被纳入了区块的随机散列值。通过将该树(tree)的分支拔除(stubbing)的方法,老区块就能被压缩。而内部的随机散列值是不必保存的。

中本聪白皮书中的图例:

satoshidiagram

However, as for now, Zcoin’s transaction volume capacity is more than enough. Even with 50 times larger proof sizes, storage is a low priority concern because of Moore’s Law. As Satoshi describes in the whitepaper:

然而,就目前而言,Zcoin的转账容量完全足够,即使是50倍大小,依照摩尔定律,存储空间仍然不是重点。正如中本聪所言:

2008年,PC系统通常的内存容量为2GB,按照摩尔定律的预言,即使将全部的区块头存储于内存之中都不是问题。


在此,作为Zcoin,我们相信多样的零知识加密货币对这个社会而言都是一种福祉。像Zcoin一样,Zcash也致力通过提高商业隐私实现个体自由和商业开发。我们对Zcash是团队给予掌声。认识到Zcoin和Zcash各有长短很重要。通过获悉优缺点,专注隐私的用户可以根据需要选择不同的加密货币。


最新回复 (0)
返回
发新帖
admin
主题数
276
帖子数
21
注册排名
1