《精通门罗币》第三章(下)——头等仓连载中
原著 | Serhack
翻译 | 筋斗云_头等仓
3.2.3 环形签名
环形签名是门罗的一项通过混淆花费的门罗币来源,用以保护交易发送者的技术。在讲解环形签名之前,我们先介绍下数字签名。
数字签名是用以确保消息真实性和来源的通用密码学技术。人们可以使用公钥来对签名进行验证,以确认签名者的身份,验证签署的消息是否是完整、未被篡改。哪怕签署的消息被改动了一个字符 (无论是刻意的篡改或意外的通信错误),签名都将显示无效。
加密货币很重要的一个部分就是数字签名的实施。为了花费你的输出,你需要创建一条消息。这条消息描述当下的交易,然后用你的密钥来对消息进行签名,再将结果广播至网络中。在执行交易之前,网络将检查签名的有效性,以验证消息是否被不拥有相应密钥的第三方篡改或伪造。
对于透明的加密货币(如比特币),每条消息都直白地指明被花费的输出是哪一个。这对于简易记账来说是很有用的,因为网络只需简单地维护好未花费输出(UTXO)的记录即可,这些未花费输出将作为是新交易的有效输入。如果有人试图对一笔比特币输出进行双花,第二笔虚假交易将会立即被拒绝,因为网络知道这笔比特币的主人已经花费掉这笔输出了 (他们签署并广播了第一笔交易)。可惜,这种对资金来源和所花费输出进行确定性指示,直白地提供所有权证明的方式,不利于隐私保护。
门罗使用的是完全不同的技术:环形签名。这个群签名方式允许一个成员代表一群人对消息进行数字签名。在这个过程中,群里其它成员的公钥被混合在一起,因此无法判断真正的签名者是谁。在密码学上,我们只能验证有一个环成员签名了消息,但是无法知道是哪一个。
门罗的环形签名将多个输出混合起来,以混淆真实的被花费输出。假设Maria想要花费她的一笔门罗币输出。她的钱包将半随机地选择区块链上的几个(非Maria的)历史输出,并将这些输出混入环形签名中作为诱饵(decoys)。网络只能验证其中一个输出被花费,而诱饵和实际的被花费输出在密码学上无法被识别。
环形签名保护所有交易的发送者,因为接收者和门罗网络无法查明哪一个环成员是资金的真实来源。环形签名的一个显著效果就是让外人无法确定真实的被花费输出。外人也无法辨别任何一个输出到底是真实的被花费输出或诱饵。
鉴于此,你也许会疑惑,门罗币如何防止投机分子重复花费同一个输出?这对于像比特币这种一个输出对应一个花费的透明公开的区块链来说,不成问题。然而,门罗的输出在花费之前和之后都可以加入到环形签名中,所以必须采取其他方式防止输出的重复花费。
这个将由密钥镜像(key images)来完成。密钥镜像只能够由真实被花费的输出生成,并且每一笔交易都会生成和记录它。网络无法确定与密钥镜像关联的环成员,但其他参与者只需检查这个密钥镜像之前是否被使用过。如果一个恶意用户试图双花一笔输出,
门罗网络最初并没有强制执行环形签名,所以导致了无诱饵混入(zero-mixin)的交易出现,危害了整体的隐私性。这些早期的交易和透明区块链中的交易拥有同样的结构和弱点,发送者和接收者暴露无遗,真实的被花费输出也容易被他人知晓。从2016年开始,网络要求每笔签名至少拥有两个环形成员,以推动发送者隐私保护默认化。在2017年晚些时候,环值(ring size)要提高至5,并在2018年年初提高至7。
图3.4:每一笔门罗交易都由一群“环签名”授权,以保护发送者的隐私。
需要注意的是,在2016~2018年间,环值规则只限定每次交易的最小混入数量,而并没有对最大值做限定,所以用户可以按自己的意愿混入更多的诱饵。理论上,大家可能会认为使用更多的诱饵可以获得更高的隐私性。然而,实际上有一个问题需要纳入考量:当大部分的交易都使用最小环值,使用大环值的交易就会显得特别引入注目,这其实恰恰不利于保护隐私。
这个问题在2018年的网络升级中得到了解决:网络不再限定环值的最小值,而是限定一个固定值。在写稿的此刻,所有的交易都必须使用环值为7的环形签名。随着威胁的统计模型不断地调整,最佳隐私保护实践也将不断优化,这个数值在未来也有可能会增加。
3.2.4 Kovri & 流量分析
任何连接至互联网的设备都会被分配一个IP地址,以引导流量流向正确的用户。但是,IP地址很容易与用户的物理地址和身份关联起来。
门罗币的交易等事件若和IP地址关联起来,将带来很多负面影响。对节点连接日志中的IP地址的分析,有可能会使我们之前提到的保护门罗用户隐私的部分加密学措施前功尽弃。
我们有必要考虑当门罗币网络活动和物理地址、身份相关联时会产生的不利局面。
在向门罗币网络广播的时候会显示IP地址,所以收到广播的交易的节点有可能可以确定交易发送者的IP地址。门罗的其它隐私保护措施在防止他人利用链上数据来追踪交易的时候,监视型节点如果观察到多笔交易源自同一IP地址,便可推断出他们之间的关联性。
除了隐私方面的顾虑外,IP地址的暴露也会引发潜在的监管问题。一个恶意节点可以选择不中继广播的交易给特定的个人或群体。更糟的是,对你怀有敌意的人可以通过IP地址暴露出来的地理信息,亲自登门拜访你。
IP地址和门罗网络活动的关联性不仅仅对广播交易的用户造成威胁:通过网络服务提供商和其它监管方,可以看到经过节点的网络流量,这意味着如果当地的政府或网络服务提供商对加密货币比较反感,那么节点拥有者将受到很大的风险。
矿工也有可能因此受到不公正的对待:攻击者可以通过监视矿工的区块寻找攻击机会,或由于意识形态上的分歧,限制非政府或非公司的挖矿实体。
防止从IP地址中泄露网络活动(以及物理地址/身份)显然对门罗币生态的各个部分都有益处。如果你需要保护这方面隐私的话,目前有几种选择。
一个选择是使用虚拟专用网络(Virtual Private Networks: VPN)。用户通过VPN以加密的连接方式发送流量,使网络服务提供方和政府无法监视。其原理是在你和VPN服务器之间建立一条安全的通道,把你的流量和其它用户的数据混合在一起,并从另一个IP地址中广播出去。不过需要注意的是,向你提供VPN的服务方可能会记录你的日志(logs),所以请做好尽职调查,使用可信赖的服务。
另一个选择是使用洋葱路由(The Onion Router: Tor)。TOR使用由数个中继节点组成的私密网络来定向发送用户的流量。Tor起初是由美国海军实验室研发制成,专供记者、情报人员等需要避开监视和审查的人员使用。Tor是免费、开源、去中心化的私密网络,其设计初衷是让网络中的任何人无法识别出任一广播的来源。你可以通过专用浏览器来访问Tor,对隐私性需求更高的用户,可以使用Linux的应用,如Whonix,它可以将所有流量都纳入Tor。
此外,门罗社区也支持Kovri的开发。Kovri是基于去中心化的隐形互联网项目(Invisible Internet Project: I2P)的一个专注隐私性的实现。Kovri使用加密技术和复杂的路由技术,创造一个分布在互联网中的私密网络,同时它也可供其它应用使用。
在Kovri或者相似类型的功能集成至门罗之前,对于网络流量分析有顾虑的用户,请使用Tor或可靠的VPN来保护你们的IP地址和连接隐私。
3.3 结语
门罗币使用数种多的隐私保护技术来保护网络中所有交易、所有参与者的多种信息元素。环形机密交易隐藏每笔交易的金额信息。环形签名隐藏发送者的信息,隐蔽地址隐藏接收者的信息。即将到来的Kovri路由技术则防止他人将你在门罗网络中的活动和你的物理地址/身份关联起来(注:可惜的是Kovri项目目前似乎处于停滞状态)。
在这些技术的共同作用下,门罗币的用户将保持匿名,资金无法追踪。通过在加密学上杜绝所有链上交易分析的可能,门罗实现了货币可互换性(fungibility),这是实用型现金的必备属性之一。读到这里,你应该能够明白在第一章中所描述的门罗是如何保护个人的。
未完待续(历史连载在可免费阅读)
希望你喜欢这段门罗之旅。
原文:
本文来自,仅作分享,存在异议请联系平台删除。本文观点不代表刺猬财经 - 刺猬区块链资讯站立场。