防弹

基础知识

引入了@RingCT 来混淆交易金额。 @RingCT 的一个目标是证明输入的总和——@transaction 中的输出等于 0,并且所有输出都是正数。为了实现这一点,构建了两种环签名:一个是整个交易的环签名(证明总和为 0),以及一组交易比特子集的环签名(证明输出是正数),然后使用最初的 Schnorr 签名组合在一起(后来被 Borromean 环签名取代)。在完成这项工作时,一个很大的缺点是这种 ringCT 交易的规模很大。

说到防弹

早在 2017 年, 斯坦福应用加密集团 写了一个 提出了一种新的范围证明,称为防弹。

Bulletproofs 是简短的非交互式零知识证明,不需要可信设置。

与 Borromean 或 Schnorr 签名不同,防弹证明作为范围证明非常有效。证明一大组数据只会产生一个小证明,并且这个证明的大小随着被证明数据的大小呈对数增长。这意味着增加交易中的输出数量只会略微增加证明的大小。 Bulletproofs 还具有允许同时证明多个承诺金额在所需范围内的优势。无需在单独的证明中证明每个输出到每个目的地;整个交易金额可以在一个更大(但仍然很小)的防弹系统中得到证明。

全面的审计流程和实施

由于防弹确实是新事物,而且该小组最初的实现虽然彻底完成,但需要针对我们的特定用例进行重写,因此在 Haven 中实现防弹并不是一件简单的事情。

代码已被编写和重写以遵循仍在开发中的新版本的防弹,但是一旦此 Haven 实现完成,就应格外小心地进行由此产生的部署。

因此,社区开始了审核流程。研究人员联系了 Bulletproofs 论文的主要作者 Benedikt Bünz, OSTIF 一个帮助开源技术改进和保护自己的组织。

OSTIF 将小组引导到几个具有执行审计所需技能的组织。虽然其中一个要求匿名,因此被排除在需要公开的过程之外,但另外两个(QuarksLab 和 Kudelski Security)被选中进行审计。

我们的 3 名审计员由社区资助,以检查实施是否不包含严重错误,以及是否没有任何漏洞利用。

最终报告于 2018 年夏季发布,并提出了一些有用的更正和修复建议,最终的防弹实现首先添加到 Haven Stagenet,然后在 2018 年 10 月网络升级期间添加到主 Haven 网络。

自从防弹部署以来,平均交易规模至少下降了 80%,交易费用也下降了。

关于 Haven 的防弹实现的更多解释可以在 youtube fondajo 频道上找到 与萨朗·诺特的对话.

zh_CN简体中文