DevelopmentZcoin blog

Lelantus: Zcoin的下一代隐私协议

By 四月 14, 2019 No Comments

技术从不停滞;特别是在区块链匿名领域。在短短几年内,我们已经从简单的混合解决方案(如混币)转向更高级的加密应用,如环签,Zerocoin(由Zcoin使用)和Zerocash(在Zcash中使用)。

破解区块链匿名的工具也变得更加复杂。区块链分析现在已经广泛使用,而且Ian Miers等备受尊敬的研究人员认为,基于“诱饵”的系统,如环形签名(用于Monero)和Mimblewimble(用于Grin或Beam),可以被破解匿名,尤其是当有重复交易时

虽然Zerocoin提供了非常好的匿名性,但它有三个主要问题:

  • 固定面额
    你必须以固定的面额燃烧和兑换Zerocoins。如果你烧掉10个Zcoins,你也只能提回10个Zcoins。这极大地限制了可用性,并且将匿名集限制在使用相同的面额的组内。它也带来了找零的问题:你怎么能比最小的面额发送更少的Zcoin。一些其他项目将找零作为矿工费用,并重铸为其它种类的余额,但这不是理想的性能,并带来了额外的开销。
  • 性能<
    如果Zcoin达到目前的比特币交易量,Zerocoin的表现仍然足够。证明尺寸为相对较大的25 kb,但它们在降低安全性的情况下可以减少到10 kb。验证时间(节点检查证明有效性所用的时间)较慢,大约耗费300-400毫秒,尽管它可以通过功能强劲的Znodes来加速。但是,如果要切换到“默认匿名”模式,这个性能任然是不够的。我们需要更好的性能以便广泛采用。
  • 预信任机制
    预信任机制是Zerocoin和Zerocash系统的一项特点。它需要生成特定参数,然后销毁。如果没有正确销毁,会让某些人能够凭空创造硬币。但是Zcoin使用了一项著名的20年前的学术质数挑战中的参数,这降低了后门的可能性,但仍然不能完全排除被攻破,它可以降低用户使用前需要对系统的预信任程度。

我们之前已经研发了Sigma(即将上线),它具有较小的证明尺寸且无需预信任机制,但它仍然没有解决固定面额问题。

因此,我们很自豪地介绍Lelantus:Zcoin的最新研究成果,由我们的密码学顾问Aram Jivanyan主持,Martun Karapetyan和Levon Petrosyan协助。

更易于使用

Lelantus以Sigma为基础,允许用户燃烧任何金额,然后从中赎回任何部分金额,同时保持其余部分处于燃烧状态。

使用传统的Zerocoin或Sigma,匿名取回153个硬币的最有效方式是需要100 + 50 + 1 + 1 + 1个硬币:意味着你需要至少5个Zerocoin取回操作,占用125kB的空间。并分别花费300毫秒进行验证,总验证时间大约为1500毫秒。这还是假设您已经提前熔铸好了这些Zerocoin的前提下:如果他们手头没有提前熔铸好相应面额,大多数用户需要更多的Zerocoin取回操作。

借助Lelantus,这得到了极大的改善。同样是获得153个硬币的相同匿名取回,用户只需使用他们以前做过的任何熔铸 – 任意金额 – 并花费。现在需要的最小取回数量为一个,批量验证需要20到30毫秒,单个证明需要300到400毫秒。

Lelantus证明大小仅为1.5 kB,因此整个交易占用资源相比原Zerocoin协议非常之小。

更强的匿名性

Zerocoin交易的匿名集是基于每种面额的熔铸数量。在熔铸并取回1个Zcoin时,匿名集基于所有面额为1的Zcoin熔铸数量 – 而不是10,25,50或100等各种面额的熔铸数量和。

根据我们的观察,某些熔铸面额(如25和50)的使用率低于其他面额,这降低了他们的匿名性。

此外,因为你总是必须完全兑换Zerocoins,这意味着如果你燃烧10你总是要兑换10,那么你可以猜测哪个兑换与哪个燃烧相对应,特别是如果有一个模式。

使用Lelantus,每种面额不再有单独的熔铸组:所有熔铸都混合在一起。这消除了某些面值比其他面值匿名性更强的担忧。

对于Zerocoin,存在“污染找零”的问题,其中小于最小面额的量不能被铸造,因此它可以对用户进行去匿名化。而Lelantus能够实现取回精确的金额,意味着所有“找零”都处于熔铸状态,因此用户无需担心这一点。

默认匿名

当匿名需要被勾选时,很少有人会选择这样做,以免除进行匿名交易的额外步骤。这会降低系统的匿名性,因为使用该功能的人越少,相对的去匿名化就越容易。因此,我们的目标是交易时默选择用Lelantus进行匿名交易。

Lelantus默认使用匿名交易,同时提供不使用匿名交易的选项,以便与交易所和其他提供确定性交易的钱包集成时较为方便。

更好的性能

除了证明尺寸外,批量验证还可以有效降低验证时间。

Lelantus证明,基于Sigma,需要300-400毫秒来验证每个证明,这与Zerocoin接近。然而使用批量验证,将证明捆绑在一起验证,此时匿名集为32,678,验证100个证明大约需要2967毫秒。

这意味着使用批量验证技术时,验证单个证明的成本仅为30毫秒。使用Pippenger和Straus技术等多次幂运算的最新发展可以进一步大大改善这一点。

这可以通过并行化和预计算进一步优化,并进一步缩短这个时间。

竞争者

下图将Lelantus与其他先进的匿名技术进行了比较:

如你所见,Lelantus在所有维度中表现都很好; 提供高度匿名性,良好性能和很小的证明尺寸,而不依赖于不成熟密码学。 我们相信Lelantus提供当今最全面的隐私协议。

我们预计Lelantus将在2019年末或2020年初的某个时候完成部署,因为我们正在等待Lelantus论文的进一步同行评审。 Sigma将于2019年第二季度临时部署。

完整的学术论文在Eprint发表,我们可以展望更进一步的改进。

我们要感谢Jens Groth,Benedikt Bunz,Ariel Gabizon,Sarang Noether和Markulf Kohlweiss,他们对Lelantus提供了宝贵的反馈。

您可以在下面查看Lelantus上的一些视频: