首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

圣杯的追寻(1):加密隐私技术

前言:上周,10月18日,隐私币的领导者-市值排名前十的门罗币(XMR)在1685555块高度进行硬分叉升级:POW算法由CryptoNight V1升级为CryptoNight V2(CN v2),同时激活Bulletproofs(防弹技术):一项备受期待的旨在使区块链隐私特性更具可扩展性的新技术。

此次Monero成为第一个采用Bulletproofs作为隐私协议的加密货币,参与monero整合bulletproofs的匿名monero密码学人员Sarang Noether Sarang表示, “我们对此很兴奋,我们进行这次升级的部分原因是为了我们可以安全地走在技术最前沿,我认为这是一个非常非常好的进步。”

所以很有可能,Monero会引领Bulletproofs成为下一代区块链中最重要及主流的隐私应用方向。因此,我们认为有必要对匿名币的相关隐私技术包括Bulletproofs做一个整体梳理。

01

匿名币及匿名技术

在理解Bulletproofs之前,我们有必要理解一下匿名币的及交易隐私的原理。区块链的核心并不是公开透明,相反,能够支持公开验证的基础上实现交易的隐私才是区块链的核心精神之一匿名币是密码学技术与区块链技术的集大成者,加密的圣杯

比特币交易时半匿名的,因为比特币网络上的每一笔交易都是公开的,而且是永久的,虽然每个钱包的主人可能都是未知的。但是,如果把地址与现实世界的身份联系起来又相对容易,所以比特币并不算是真正的匿名币。

而其中以Monero(XMR,17亿$)、Dash(DASH,13亿$)、Zcash(ZEC,6亿$)为代表的隐私币三剑客,是匿名技术的集大成者,市值上也排名靠Top20。技术上,他们仍然依赖与比特币式的公共分类账,但使用的匿名技术会混淆交易的路径,从而实现高度的交易匿名。这里包括对交易地址的余额、交易路径(发送者、接受者)、交易金额部分实现匿名。

-混淆技术

混淆侧重于在公开透明的账本上,混淆交易路径。分离交易中的输入输出地址,使得交易更难追踪。

Stealth address:相当于一次性收款地址,隐藏接受者身份,这个地址是用接收者公钥计算出来,接收者可以通过私钥计算出相应的私钥。

Mixing:把交易路径混淆掉,可以中心化或去中心化。中心化类似交易所,发送者的代币转到中心地址后,之后再重新划拨出去。去中心化则是将多笔交易组合成一笔交易发出去,类似比特币的多个地址

CoinJoin:这是Dash主要应用,由Gregory Maxwell开发的,达世币的Mixer主节点资金池进行混币,多笔交易混在一起,拥有多个输入输出,以此来切断直接的交易路径。因为将交易输入和输出关联起来比较困难。

Ring signature环签名:主要是门罗币的应用,使用私钥及其他人的公钥生成一个签名,当其他人想要验证时,利用环成员公钥验证一个环签名是否由某个可能的签名人生成,但无法确定具体的公钥,拥有untraceability

-隐藏技术

隐藏技术对机密信息(发送者、接收者及交易数额)进行隐藏,直接改造账本的全公开逻辑,但在加密状态下,让公共区块链仍然可以验证交易有效性。

Stealth adresses:一次性地址,可以隐藏接收者身份,拥有unlinkability,这在门罗币里面是一个系统级别的强制设计。

Ring Confidential Transaction:隐藏交易数量,只要向节点证明:交易金额为正;进出总金额为0;这也是门罗币的特色

Kovri:门罗币通过Kovri项目,被动网络监控无法揭示用户是否在使用门罗币。这是通过加密门罗币的流量并通过I2P(隐匿互联网项目)节点来实现的。这些节点只是简单地传递消息。不知道传递的消息的内容,也不知道节点是最终目的地或者最终目的地的中转路线。Kovri项目通过保护用户免受区块链外部的审查,极大地提高了门罗币网络的安全性。

零知识证明ZKP: Zcash的经典代表之处,允许双方(证明者与验证者)来证明某个提议是真是的,而且无需泄露除了它是真实之外的任何信息。无需了解原始信息,即可验证交易真实性,根本上推翻了公开发送人、接收人、交易金额的做法,完美解决隐私泄露的风险。

小结:在上述技术中,Stealth address和Mixing是较为简单,加密能力受限。门罗币采用的一系列方案(隐形地址、环签名和环机密交易及正开发的Kovri)较为高效和全面。Zcash在隐私上因为采用ZKP做到了相对极致。因此,我们接下来对机密交易和零知识证明作进一步的分析。

02

CT机密交易与ZKP零知识证明

-CT机密交易

2016年,Greg Maxwell提出了了机密交易的概念,该概念有效地取代了可以由接收方验证的加密承诺的交易金额。机密交易当然可以使用可验证的签名和未使用的金额来实现安全交易,但是使接收方无法确认输入的金额是否大于输出的金额。这就是ZKP零知识证明发挥作用的地方。

如果我们考虑验证机密交易所需的步骤,一般可以通过三个步骤进行总结:

·签名正确:交易指令来自有效节点。

·金额未用:没有双花支出问题。

·输入的总和大于输出的总和:具体来说:输出=输入 - 交易费用。

-零知识证明技术及类别

如前文所述,ZKP可以验证发送人、接收人及交易数额的全加密。其验证过程如下:

证明方向验证方发送一定条件的随机值,这个随机值为“承诺”

验证方向证明方发送满足一定条件的随机值,这个随机值称为“挑战”

证明方执行一个秘密计算,并将结果发送到验证方,称为“响应”

验证方对响应进行验证,验证失败,则表明证明方不具备所谓的“知识”,退出或重复执行

零知识证明又包括交互式证明zk-STARKs和非交互式证明zk-SNARKs。

zk-STARKs:通过证明者与验证者之间的交互来执行,以一种有效的数学方法,使得验证者通过验证每一个步骤,最终确信证明者确实知道某个信息或者拥有某种权益,但是验证者无法推断出消息是什么,从而保证证明者所知道的信息不泄露。

其特点是:证明快、验证快,但证明体积大

zk-SNARKs:SNARK指无需双方交互,证明人单方出具即可,不需要反复在双方之间传递信息,需要利用一些程序,一串序列,这个序列不能被任何人知道。通过程序和序列,证明机制就能自动算出一个证明,并且防止任何一方作假。

其特点是:证明慢、验证快,证明体积小,

小结:零知识证明可以有效解决机密交易的验证问题,通过允许接收者质疑发送者以证明特定断言来扩展机密交易。虽然这种技术从隐私的角度来看是非常有效的,但它们大大增加了交易的规模,并且通常需要可靠的设置,这使得零知识证明的大规模适用性变得困难。 而Bulletproofs协议在这种情况下应运而生。

03

如何理解Bulletproofs(防弹协议)?

Bulletproofs最初发布于斯坦福大学的2017年白皮书中,由密码学家Benedict Bunz和Jonathan Bootle提出,目前代码贡献主要是来自伦敦大学及Blocksteam。从概念上讲,Bulletproofs可以被认为是一种更有效的零知识证明(Zero Knowledge Proof)形式。

一直以来,为了实现匿名,monero依靠了三种不同的相互结合的机制——隐形地址环签名环机密交易。Bulletproofs针对的是后者,即“环机密交易”(ring confidential transaction),或“RingCT”(RingCT),这是monero用于模糊交易中发送的币的数量的方式。

诸如Zcash及Monero等隐私币都是采用零知识证明机制来实现保密交易,帮助用户在公共账簿中隐藏交易金额,同时保证网络的去信任化。为了确保交易的有效性,必须用到range proofs范围证明,但问题是,rangeproof范围证明,是“一项非常缓慢和庞大的操作“,消耗了大量的空间 (普通签名一般小于100字节,只需不到100微秒即可验证,而range proofs大小达到几千字节,需要几个毫秒才能验证)。

Bulletproofs设计精妙,创建了一种更简短、更快和更强大的非交互式零知识证明。bulletproofs通过将信息聚合到新的数据结构中,使其以对数而不是线性的方式进行扩展——这意味着对于包含多个输出的大交易,扩展性变得更加显著。

下图中可以看到,10个证明,算法的复杂性将累加增加因子log(t)而不是线性10倍。如果按传统线性方式来,大小是38797,而采用Bulletproofs则仅为188。

Smaller, Faster, Stronger

一直以来门罗币用户的最大诟病就是账本太大(超过40G),扩容难,交易手续费贵。Bulletproofs 设计旨在实现加密货币中的CT rangeproofs版本(批量验证时,速度提高超过23倍),将交易证明的大小从 10 KB 缩小到 1-2 KB,压缩比率达到80%以上,同时降低80%的交易费用。

Bulletproofs这项技术也得到了比特币核心开发者的重视,因为比特币面临门罗币同样的扩展问题并且更为严重,如果所有比特币交易都是保密的、并且使用了 Bulletproofs,那么 UTXO 集的总大小将仅为 17 GB,而当前使用的证据文件则为 160 GB。

所以,实际上,Bulletproofs技术本身并不会有助于匿名或隐私本身。Bulletproofs技术只是确保机密交易中存储的信息不包含任何虚假信息。但,Bulletproofs革命性地带来了一种比其他区块链隐私方法更快,更灵活,更强大的替代方案。

小结:Monero的防弹协议实施无疑是在区块链社区中更广泛地采用防弹协议的一步,我们应该期待在其他涉及保密交易的隐私币中得到更快的实施。

隐私性问题是目前密码学研究中最令人兴奋的领域之一,密码学与分布式账本技术成就了区块链及加密货币生态的兴起,我们不能预测未来几年在隐私技术上还会取得哪些重大突破,但对于隐私技术的研究将为我们有助于寻找到下一个加密货币项目的圣杯。

参考文献:

1.Bulletproofs: Faster Rangeproofs and Much More,Feb 21, 2018 by Andrew Poelstra

2.Bulletproofs:Short Proofs for Confidential Transactions and More

(Benedikt Bünz, Stanford University/Jonathan Bootle, University College London/Dan Boneh, Stanford University/Andrew Poelstra, Blockstream/Pieter Wuille, Blockstream/Greg Maxwell)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181021G1DAPY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券