摘要
本文以 Monero,Dash 和 Zcash 为例,介绍了具有隐私性质的支付类通证的基本信息、隐私性的实现方式以及生态等内容。文章一共分为三个部分,其中第一部分对三种通证的基本情况进行介绍,包括其历史、分叉情况以及三者的简单对比;第二部分对这类通证的最重要特征之一:隐私性,进行讨论,包含隐私性的具体含义以及三类通证的实现隐私性的具体方案;第三部分则着重于对三者的生态表现进行分析,并且包含在全球范围内对于隐私通证的监管内容。
简单而言,本文有以下结论:
1. 就三者而言,Monero 具有最高程度的隐私性,而 Dash 和 Zcash 相对较弱,并且只有 Monero 是默认将所有交易匿名,而其他二者都是为用户提供交易可匿名的选项。
2. 虽然三者都属于具有隐私性质的通证,但是三者之间并不存在完全正面的竞争关系。Monero 的去中心化程度更高,其治理完全由社区主导,更加偏向于隐私通证领域的 “Bitcoin”;Dash 的即时转账特性使得其在某些实际支付领域更受欢迎;而 Zcash 则在实际的隐私以及中心化程度上表现最差,但在合规性方面实际表现最好。
3. 在匿名以及隐私保护的层面,加密通证必须具有阻断连接性和追溯性的能力才能真正意义上保护用戶隐私。
4. 隐私性实现和监管许可相悖。
5. 隐私性实现程度和市场接受度正相关。
6. 作为支付通证,隐私性越强的通证等价性 (Fungibility) 越强。
7. 包括本文讨论在内的所有支付类通证,其出现的起因大都是源自 Bitcoin。几乎所有的支付类通证都是为了解决 Bitcoin 中存在的问题而产生。而由于 Bitcoin 的“伪匿名性”,才使得众多致力于解决用户在交易过程中隐私保护的通证出现。对于定位是解决 Bitcoin 的某一个问题而出现的通证,最终只有极少数通证存在价值,并且能够生存下来。而由于隐私性的问题相对于其他问题而言,存在着更为明显的需求,因而定位于隐私的支付类通证的潜在市场更大。
今天分享本系列的第二部分,详尽介绍了三种知名的隐私类支付通证(Monero, Dash 和 Zcash)的隐私性。第一部分见:详解三大知名隐私支付类通证——Monero,Dash 和 Zcash(一),明天会更新本系列的第三部分。
隐私性
支付类通证的隐私性
隐私性一直是加密通证领域中最受关注的话题之一。在 2009 年 Bitcoin 第一次出现在大众视线中时,Bitcoin 的"隐私"特性便成为其被广泛接受的原因之一。人们在用 Bitcoin 作为支付方式时,通常只会被关联一个由一串数字组成的电子地址,而非诸如银行账户等存在身份暴露风险的数据源。此种程度的隐私性我们称之为假名隐私性 (pseudonymous privacy),其类似于在写信时使用笔名来隐藏真实身份。然而,一旦电子地址取得(或者说我们类比的"笔名")与真实生活中的身份或者活动的关联[31](如交易所对用户信息的泄露),此种程度上的隐私性就会被破坏。 当今信息爆炸的时代降低了获得此种关联的成本,较为常见的方式有入侵线上商家数据库或审查一些公开社交媒体的资源。一旦此种关联被建立,窥探者便可以通过区块浏览器审查某个电子地址的全部交易记录并抓取他们所需要的信息。
在评估某种加密通证的隐私性时,我们通常会考虑两个指标:关联性和追溯性。正如我们之前所介绍的,在 Bitcoin 中,通过指定的地址我们便可以追溯到某一交易,同样的,在取得特定的交易信息后,我们也可以将参与交易的地址关联起来。为了解决此类关联性和追溯性问题,诸如 Monero,Dash,Zcash 等专注于隐私性的加密通证陆续被开发出来,他们的出现也为加密通证的隐私属性提供了新的可能性。在隐私类加密通证中,开发者使用零知识证明、环形签名,一次性地址以及改进过的 CoinJoin[32] 方法等技术在一定程度上消除了关联性和追溯性。例如在 Monero 中,由于“公开地址“是一次性的,每一个地址只为一笔特定交易而生成,而真正的公开地址(在 Monero 中称之为公钥)无法在区块浏览器中被查询,所以在得知“公开地址”的情况下,窥探者无法追溯到关于此地址的过往交易记录。由此,隐私类加密通证通过隐藏交易和地址的关联性,使窥探者的追踪和审查几乎无法实现,从而提高了加密通证的整体隐私性并实现了真正的匿名性。
在此分析报告中,我们将以 Momero, Dash 和 Zcash 为经典案例来分析隐私类加密通证的属性和它们隐私属性实现的方式。
Monero、Dash 和 Zcash 的隐私性
链上与链下信息的关联性
如维基百科对隐私的定义,”隐私指的是个人或者群体隔离自身,或者关于自身信息的能力,从而有选择性的表达自己。” 在加密通证领域中,窥探者可以首先通过审查诸如社交媒体、第三方数据库或者掌握指定交易信息等链下信息源来破坏隐私性。通过筛选分类,我们可以将所有这些链下信息源大致分为两类:地址和诸如交易时间和交易金额的交易细节,并将此两类信息源作为链上信息的两大切入点。通过这两个切入点,窥探者可以利用区块浏览器[33] 来获取他们所需要的信息。我们绘制了下图来帮助读者更直观的理解整个审查的过程。
图表1 链下与链上信息关联流程
来源:TokenInsight
我们首先要评估的切入点是地址。在 Dash 和 Zcash 中,除非地址持有者弃用该地址,公开地址将会永久存在,且地址中余额可以在区块浏览器中查询。然而在 Monero 中,可以公开查看的地址只是暂时被生成,且只做一次性使用,所以无法在区块浏览器中查看其过往交易。因此,窥探者并没有动机去收集这些无法与链上信息关联的一次性地址,从而在源头切断了其与链上信息的关联。
我们要评估的第二个切入点是交易信息。Dash 和 Zcash 的区块浏览器沿袭了 Bitcoin 区块浏览器,除非特别标明,包括交易金额和地址等在内的交易细节均可以在交易ID下被查看。如下图所示,在 Monero 中,只有秘钥镜像 (Key image) 和一次性公开地址会在交易 ID 下显示,其他诸如交易金额等可被关联的信息均被隐藏。因此,使用地址对 Monero 进行追踪审查的动机也被消除。
由此可见,Monero 在链下关联链上的环节便阻断了连接,从而加强了其对隐私性的保护,其他两种隐私型通证并不具备该属性。
图表2 Monero的区块信息
来源:Monero Block Explorer
区块浏览器透明度
在上一小节中,我们讨论了链下与链上信息的关联。由于 Monero 已在此环节阻断了关联,我们会在此小节以 Dash 和 Zcash 为例重点讨论加密通证的区块浏览器透明度。在可公开访问的区块浏览器上记录交易信息是加密通证实现透明性的重要途径之一。对于一个加密通证而言,区块浏览器是重要的可被公开访问的信息源之一,且因为其易读性,常常被用作查找区块链信息的重要工具。因此区块浏览器的透明度成为了我们衡量加密通证隐私性的重要维度。在本章节中,我们通过展示各加密通证的区块透明度来分析加密通证的隐私性。
在 Bitcoin 的区块浏览器中,诸如发送者地址,接收者地址,交易金额和地址余额等信息都是公开可见的。通常,这些信息可以被窥探者用于产生信息关联,因此对窥探者而言有极大的利用价值。在这里,我们用此四类信息作为评估区块浏览器透明性的维度,并展开接下来的分析。
图表3 Bitcoin区块浏览器中的交易信息
来源:Bitcoin区块浏览器
图表4 Bitcoin区块浏览器中的地址信息
来源:Bitcoin区块浏览器
Dash
Dash 的区块浏览器与 Bitcoin 的非常相似。然而,由于使用了改进的 CoinJoin 方法,我们在区块浏览器上看到的与地址相关的交易金额并不是该地址真实的交易金额,从而阻断了交易金额与地址一一映射的关系,该种隐匿会在用户选择 PrivateSend 功能进行交易时触发。因此,通过区块浏览器以交易信息作为切入点进行审查无法为窥探者提供足够的价值。值得一提的是,尽管区块内交易信息无足够利用价值,窥探者仍然可以通过区块浏览器查看地址的余额并作为其后续审查的资源。
图表5 Dash 交易与账户
来源:Dash
Zcash
不同于 Bitcoin,在 Zcash 中对于同一笔交易的双方而言,发送方和接收方都有两种地址选择,z- 地址和 t- 地址[34]。交易发送方和接收方选择不同的地址进行交易会产生四种形态的交易:公开交易,加盾交易,除盾交易和私人交易。这四种交易的描述和特点如下表所示。值得一提的是,在 隐私交易状态下,交易不会在区块浏览器上显示。
图表6 Zcash的匿名实现
来源:白皮书, 官网
基于以上对各隐私型加密通证的分析,我们绘制了下表来总结各隐私型通证的区块浏览器透明度:
图表7 区块浏览器透明度
来源:白皮书, 官网
隐私性实现和技术亮点 —— Monero、Dash和Zcash
Monero
使用一次性加密地址来保护接收者的隐私
Monero 用户有两对钥匙,公共查看密钥(查看公钥),私有查看密钥(查看私钥),公共支付密钥(支付公钥)和私有支付密钥(支付私钥)。发送者通过自选随机数,加上接收者的一对公共密钥一起,生成一次性地址。如果另有一个接收者,则这个接受者会生成新的随机数与新的一次性地址进行交易。由于离散对数的难解问题,发送者和窥探者无法计算出接收者的任何一个私钥,因此也不会得到关于接收者任何多余的信息。换言之,拥有接收者的查看私钥的人,可以查看该账户余额;而拥有支付私钥的人,则可以任意支配账户中的 XMR。
隐藏起来的交易金额和发送者身份
在 Monero 的交易中,交易金额是(对窥探者来说)不可见的,交易金额的隐蔽性是通过环加密交易 (RingCT) 和佩德森承诺来实现 (Pedersen Commitments) 的。发送者(也是签名者)的身份也是借助了环形签名(在拥有多个输入的交易里,更具体来说,这个签名机制叫做 MLSAG),环形签名帮助实现了“签名者模糊”,在这种情况下,一个窥探者可以证明签名者属于某个环,但不能将其与其地址一一对应。
下图展示了 Monero 交易的输入与输出包含的内容,帮助解释了 Monero 隐私性的实现。
图表8 Monero交易的输入与输出
来源:TokenInsight
Dash
我们从上文所述的两个切入点,地址和交易信息来分析 Dash 的隐私性实现。在从地址作为切入点来进行审查的情形中,对大多数非隐私性加密通证而言,窥探者可以通过地址反向追踪与此地址相关的交易记录。在 Dash 中,因为有交易被改进过的 CoinJoin 方法处理,即使从区块浏览器中得到某特定地址的过往交易记录,窥探者也无法分辨出发送者在一笔交易中实际发送的金额。在第二种以交易信息作为切入点的审查中,假设窥探者在链下得知一笔交易具体发生的时间和交易金额,得益于改进过的 CoinJoin 方法,窥探者仍然无法通过区块浏览器上所罗列的交易信息来确认该笔交易并从中识别参与者。综上所述,改进过的 CoinJoin 方法阻断了交易金额与地址的一一映射关系,从而实现了地址与交易关联性的割裂。
图表9 Dash隐私性实现流程图
来源:TokenInsight
Zcash
Zcash 为交易者提供了两种转账地址:透明地址和屏蔽地址。透明地址以 t 开始,其功能与 Bitcoin 相似,其交易信息(包括交易双方的转账地址和交易金额)在区块信息中可查。屏蔽地址通常首字母为 z,通过使用简洁非交互的零知识证明隐藏了交易信息,地址信息和此地址的转入与转出金额不在区块信息中显示,非交易双方的第三方将无法通过公开渠道获取屏蔽交易的任何信息,甚至负责记录交易的矿工也无法获得屏蔽地址和其交易额。当一笔有屏蔽地址参与的交易被记录时,矿工负责记录的内容只包括“存在一个未花费余额,且有一笔交易产生”的证明,而不记录屏蔽地址和交易额本身。
值得注意的是,虽然屏蔽地址是 Zcash 最具特色的性能,但在目前 Zcash 的“越冬”阶段, Zcash 的默认功能不是屏蔽地址而是透明地址,屏蔽地址仅作为一个附加功能供交易者选择。为实现屏蔽交易,用户要首先要生成透明地址,将余额存入透明地址后再向屏蔽地址中转入。 因为存储在屏蔽地址中的 ZEC 总量无法统计,为了保证屏蔽的 ZEC 总量可计算,所有屏蔽地址中的 ZEC 必须通过透明地址转入。
在 Zcash 的转账设计中,透明地址和屏蔽地址中的 ZEC 分别存于透明资金池与屏蔽资金池中,一切与屏蔽地址有关的 ZEC 交易都通过 JoinSlipt 转账实现,每一笔交易都有一个 JoinSlipt 信息,说明屏蔽资金池中所有被屏蔽的 ZEC 的来源和走向。
图表10 Zcash 转账示意图
来源:An Empirical Analysis of Anonym
参与者可及性
对于任何一类加密通证而言,由于破坏其隐私性的参与者角色不同,参与者对信息的可及度也会有一定程度上的区别。下表中,我们对各隐私型加密通证的参与者可及性进行了对比分析。不难发现,Monero 在三种隐私型通证中对参与者的辨识程度最低,仅发送者可以获得接收者公开地址并知晓交易金额,其余信息不分参与者角色均被隐藏。而 Zcash 的情况则复杂的多,其隐私程度更多取决于交易的类型。而在 Dash 中,相对于 Monero 和 Zcash,发送者和接收者无论对地址还是信息都有较高的可及程度,一定上增加了隐私被破坏的风险。
图表11 参与者可及性
来源:白皮书, 官网
小结
综上所述,加密通证必须具有阻断连接性和追溯性的能力才能真正意义上保护用户隐私。
从隐私程度而言,由于是唯一能够在链下和链上信息连接阶段切断关联的加密通证,且能够无视窥探者角色进行地址和交易隐匿,Monero 在三种隐私型通证中具有最强的隐私属性。Zcash 在隐私程度上仅次于 Monero,虽然在其隐私交易状态下,包括交易金额、交易地址和交易时间等所有的交易细节都会被隐藏,但只有 0.3% 的地址[36] 会选择此选项进行交易,而且其 z- 地址并不对交易接收者隐藏。而 Dash 在隐私程度方面略逊于 Zcash。 Dash 只通过改进过的 CoinJoin 方法保护用户隐私,窥探者仍然可以通过审查地址余额和出块时间从而对地址进行追踪,这使得聚类启发式算法变得可能。
在隐私灵活性方面,Zcash 为用户提供两种交易地址并允许用户进行四种交易,因而为用户提供了最大的隐私灵活性。在 Dash 中,由于 PrivateSend 是被动功能,此种加密通证也在一定程度上为用户选择匿名与否提供了灵活性。隐私灵活性较差的是 Monero,尽管Monero 为用户提供查看公钥,其交易仅支持一种模式并且在地址生成和电子签名等各个环节对交易进行了加密,使其在一定程度上限制了用户的隐私灵活性。
注释:(以下序号承接第一部分的序号)
[31]
https://www.8btc.com/article/226447
[32]
https://www.investopedia.com/terms/c/coinjoin.asp
[33]
因为区块链网络是一个公开的p2p网络,任何人都可以加入网络而得到所有区块中的信息,而区块浏览器只是区块信息的一种较为易读的表现形式,因而为了读者方便理解,下文中都采用区块浏览器的方式来获取区块中的信息,而且本质上并无区别。
[34]
为交易者提供了两种转账地址:透明地址和屏蔽地址。透明地址以t开始,其功能与Bitcoin相似,其交易信息(包括交易双方的转账地址和交易金额)在区块信息中可查。屏蔽地址通常首字母为z, 通过使用简洁非交互的零知识证明隐藏了交易信息,地址信息和此地址的转入与转出金额不在区块信息中显示,非交易双方的第三方将无法通过公开渠道获取屏蔽交易的任何信息,甚至负责记录交易的矿工也无法获得屏蔽地址和其交易额。
[35]
隐私交易状态下
[36]
https://smeiklej.com/files/usenix18.pdf
网友评论