0x00 为啥需要匿名币
区块链被广泛认为是下一代互联网,一个提供价值的工具,被认为是生产关系的重建。 它将给人类生产关系带来变化,给人类社会系统带来革新。
但在这一切到来之前,人们需要自己在区块链上的行为是能够受到保护的。特别是在某些特定的环境下,就像早年的互联网,匿名性让人们可以突破一些物理世界的道德约束,为人们提供了更大的自由话语空间。
如果要把现实世界映射到区块链世界,有更多的场景是需要匿名性保护的:
- ⼀家公司想要保护不让竞争对手知道的供应链信息;
- 个⼈不想被公众知道她正在⽀付向破产律师或离婚律师咨询的费⽤;
- ⼀个富有的⼈,不希望让潜在的犯罪分子了解他们的行踪以及试图勒索他们的财富;
- 不同商品的买卖双方希望避免交易被他们之间的中间商公司切断;
- 投资银⾏、对冲基金和其他类型的交易⾦融⼯具(证券、债券、衍⽣⼯具)的⾦融实体,如果其他⼈可以弄清楚他们的仓位或交易意图,那么这些信息的暴露会使交易执⾏者处于劣势,影响他们盈利的能⼒。
然而,在当前主流的区块链网络中,一旦数字钱包地址与其所有者的个人信息相关联,所有关于钱包所有者的账户信息和交易细节都将被暴露,并且不能在整个网络中消除,这将导致严重的隐私泄露问题。当前的主流区块链网络,体现的是最大程度的透明性,而不是隐私性。
这些区块链系统的信息暴露主要体现在以下几个方面:
交易地址不能是匿名的。
比如比特币,交易地址的生成是匿名的,然而一旦地址被使用,与其有关的所有交易历史便破坏了地址的保密性。这也是为啥比特币官方文档推荐每个比特币地址只使用一次。地址余额不能匿名。
导致有大量余额的巨鲸账户被一直盯的紧紧的。地址余额的问题在以太坊和 EOS 是更为突出的。用户的交易行为暴露了他们的个人 IP 与其虚拟货币地址的相关性。
因为区块链网络是一个点对点对等网络,监听交易的中继过程并记录对应的IP地址是可能的。
因此,加强数字货币交易的隐私性一直是区块链行业的重要研究领域之一,也被不少人认为是 2019 年的一个热点。 目前,关注隐私的著名数字货币有达世币( Dash)、门罗币(XMR, Monero)、 大零币(ZEC, Zcash) 等。 SERO (Super Zero Protocol, 超零协议)是最新的后起之秀。
0x01 达世币( Dash)
达世币采用了混币系统来实现一定程度的隐私。 技术上它是以比特币代码为基础的,为了实现混币系统,达世币改造了比特币网络。与比特币只是由矿工组成的单层网络不同,达世币建立了一个由主节点和矿工组成的双层网络。 在第一层网络中,矿工使用 POW 挖矿的方式来计帐和保护网络安全; 混币相关的功能主要由在第二层网络中实现,该层的节点主要用于执行隐私交易、即时交易和网络管理。 Dash 的混币系统服务叫做匿名发送(PrivateSend)。 在此服务中,主节点将多个用户的交易混合在一起,将多方资金合并再一起对外发送,达到无法追踪交易历史的效果。
Dash 隐私保护技术的一个主要问题是其混币技术只能实现交易地址的隐藏。 交易金额是无法被隐藏并且是完全透明。
0x02 门罗币(XMR, Monero)
门罗币使用环签名技术为交易地址提供匿名性。在门罗币的区块链网络中,网络首先将签名者的公钥与其他公钥混合,然后对交易消息进行签名。环签名让交易发送者加入一个交易组中,在交易处理过程中,交易作为一个单元而不是单个私钥签名。 验证者可以证明该交易组的合法性。 这个组中的一方是真正的签名者,但是无法确定哪个签名者实际上在这个组中,这就掩盖了真正的发送者的身份。
在交易金额方面,门罗币采用环密交易(ring-secret transaction)的形式,发送方使用交易各方的共享密钥对交易进行加密,接收方使用他的私钥和交易公钥的组合对值进行解密。 在交易中,发送者不向网络透露交易金额,由钱包自动生成一个 rct (Ring Confidential Transactions) 值,rct 值可以简单的认为是随机数 + 交易金额。 网络可以使用 rct 值来验证交易的输入是否等于输出,以确保 门罗币不是无中生有的,这是通过一个名为佩德森承诺(Pedersen Commitments) 的加密方案实现的。
门罗币有很强的匿名性。 所有交易默认为匿名交易,不提供透明的交易选择。 但与此同时,对于门罗币的运行机制也存在着一些批评。 主要原因是环签名每次交易数量有限,交易成本随环的大小而变化,因此人们更倾向于部署更小的环,但更小的环会增加旁观者猜出环中有效输入的可能性。 在一个由环签名组成的交易小组中,有一种可能性是特定的门罗币将在实际交易之前被移除,通过对交易的时序分析将增加暴露实际交易的可能性。
0x03 大零币(ZEC, Zcash)
Zcash 是最知名的使用零知识证明的区块链系统。与门罗币一样,Zcash 交易可以隐藏交易地址和交易金额。 门罗币在交易处理过程中使用加密方案来确保交易组中的敏感数据的隐私姓,但是如果数据被解密,就会泄露关键数据并损害用户隐私。 Zcash 使用零知识证明技术,可以隐藏交易历史中所有的隐私交易。 它所使用的 zk-SNARKs 零知识证明技术允许发送者用数学方法证明他拥有相应的资产,但却不需要在交易中传递任何资产信息。 其隐私保护的范围包括交易的发送者、接收者和交易金额。 只有持有查看密钥的人才可以看到交易的内容。
零知识证明(Zero—Knowledge Proof),是由 S.Goldwasser、S.Micali 及C.Rackoff 在 20 世纪 80 年代初提出的。它指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明本质上是一个涉及两个或两个以上当事人的协议,是两个或两个以上当事人完成一项任务所需的一系列步骤。 证明人向验证人证明并让验证人相信他或她知道或拥有一条消息,但是证明过程不能向验证人透露任何关于所要证明消息的信息。 Zcash 第一次让 zk-SNARKs 这种零知识证明技术得到广泛使用。 Zcash 可以完全加密区块链上的交易信息,并利用 zk-SNARKs 的零知识证明验证网络一致性规则下交易的有效性。
在打包交易的过程中,矿工的记录只包括"有一个 UTXO 并且生成了一个交易"的证据,而不记录所打包进区块的地址和交易额本身。 在交易过程中,发送者用私钥签署 Zcash 交易,证明他有权使用该 ZEC 交易,并提供零知识证明该交易被授权用于消费。 矿工只需要验证 zk-SNARKs,而不需要知道任何关于地址的信息来打包交易。
在匿名技术中,Zcash 被认为是非常强大的,但仍然存在一些问题。 Zcash 有两个地址: 透明地址和屏蔽地址。 因此,有四种交易方式。 只有屏蔽地址之间的交易是匿名的。 这种交易目前只占 Zcash 交易的一小部分。 在 Zcash 上执行匿名交易时,零知识证明的生成既费时又费钱,从而影响了用户使用匿名交易的热情。
0x04 SERO (超零协议)
和 Zcash 类似,SERO 也是一种基于零知识证明技术的新兴隐私保护货币。 在匿名交易领域,SERO 与门罗币和 Zcash 具有相同的特点。 例如,SERO 具有强大的基于零知识证明的隐私保护,并且是100% 匿名交易。SERO 最大的亮点是, 它支持智能合约。 在区块链的隐私保护领域,这是一个具有突破性的创新。
它具有以下突出特点:
目前主流的匿名区块链系统,如 达世,莫内罗,Zcash 等,虽然在设计隐私保护的加密货币方面取得了一些进展,但这些系统并不是基于智能合约虚拟机的可编程系统。 SERO 通过支持 Solidity 虚拟机,对智能合约提供了相对完整的支持。
在零知识证明方面,SERO 团队建立了基于 zk-SNARKs 的 Super-ZK 零知识证明加密系统。 在零知识证明加密速度方面,当前的 Super-ZK 系统比 Zcash 现有的系统有了数量级上的改进。
作为一般的区块链开发人员,他们可以在需要的时候方便的在 SERO 链上发行自己的隐私代币,以建立自己的隐私生态系统。 这些新发行的代币可以像 SERO 币一样拥有基于零知识证明的隐私交易特性。
由于当前版本 SERO 链智能合约系统的图灵完备性,SERO 也支持发布和交换具有复杂数据结构的隐私数据。 由于对丰富数据结构匿名标注的支持,SERO 扩大了智能合约对隐私数据的支持范围,允许区块链应用程序开发人员安全地将商业相关数据放在链上,而不用担心相关的隐私数据泄露。
目前,主要在支付领域使用的其它匿名币系统在底层主要采用 UTXO 模型。 UTXO 模型本质上是一种历史流水账记录,既是一个过程,也是一个结果,因此在一些需要生成见证证明的应用中具有很大的优势。 这也是为什么现在的匿名币区块链系统基本都是采用 UTXO 模式。 支持智能合约公链通常采用类似于以太坊的账户模型。 因为帐户模型本质上是基于状态的,这个模型很容易引入图灵机,这就是为什么支持图灵完备智能合约的区块链系统大多使用帐户模型的原因。
为了同时支持匿名交易和智能合约,SERO 区块链在底层采用 UTXO 格式,同时在上层实现了基于账户模型的兼容层协议来支持智能合约。 SERO 混合了 UTXO 模型和帐户模型,在需要隐私保护的地方使用 UTXO 模型,在需要运行智能合约的地方使用帐户模型。 SERO 通过交易、共识和佩德森承诺(Pedersen Commitments)算法实现了两个模型的无缝集成。 匿名代币可以通过 SERO 的智能合约任意发行。 一旦匿名代币成功发行,智能合约会将把代币发送到帐户的临时存储地址 PKr。 此时,这些匿名代币将以 UTXO 形式与智能合约帐户分离,并且与 SERO 币一样具有零知识证明级别的安全性。 除了代币之外,SERO 还支持其他复杂形式的匿名资产(例如 ERC721之类的非同质代币)来支持更为复杂的场景。
总结
随着区块链行业的发展,区块链在价值转移方面的功用得到了越来越广泛的认可。但由于人类社会的复杂性,人们对自身资产隐私性的要求从未停止过。在当前大多数主流区块链系统中,所有交易历史都是已知的并且是可以公开追踪的,很多时候这并不符合人类当今社会的实际经济行为。 匿名区块链系统在很大程度上满足了市场对匿名交易的需求。 从混币机制到环签名机制,再到基于零知识证明的复杂系统,与隐私相关的区块链系统从未停止过发展。 支持智能合约的匿名币系统具有很强的灵活性和适应性,是值得我们关注的一个热点。