在业界一直在探讨和致力于解决公链项目的“可扩展性”问题之后,我们认为下一个值得整个行业关注的重要问题将是区块链技术如何实现“隐私保护”。今年涌现出来的不少技术驱动型项目,已经将“隐私保护”作为核心方向,开始了在该领域的深入探索。
这是一个庞大而复杂的话题,其实很多谬误都是常见的。感谢美国两位年轻学者撰写的关于区块链和加密货币“隐私保护”基础知识的文章。链闻将其推荐给各位读者,希望能够帮助读者理清和理解该领域的基本知识。对于高级读者,建议阅读链闻此前发表的另一篇深度文章:《》。
虽然本文介绍了一些科普知识,但它仍然是一篇“硬核”技术文章,需要花时间去思考和理解。阅读它的最佳方式是先“收藏”,然后仔细阅读。并且,欢迎您转发它,将有价值的信息传播给更多人。享受吧!
在媒体上,加密货币经常被描述为“匿名的”,但其他文章指出,加密货币交易很容易被追踪,甚至比法定货币交易更容易。要在这两种说法之间达成共识,重要的是要了解:加密货币隐私保护到底意味着什么?
这个问题并不像看起来那么容易回答,因为“隐私保护”在区块链世界里有很多含义。
要想成为一名精通区块链技术的开发者、投资者或加密货币参与者,了解加密系统中“隐私保护”的真正含义至关重要。我们撰写本文是为了分享我们在这方面的一些经验和技巧。
想象一下,Alice 开设了一个 Venmo 账户,需要提供并验证她的真实姓名。由于 Venmo 知道她的真实姓名,并可能与他人分享这些信息,因此 Alice 失去了部分身份隐私。如果 Bob 通过 Venmo 向 Alice 转入 20 美元,并在她的信息流中分享这笔交易,那么 Alice 的交易信息是公开的,但她个人账户里到目前为止有多少钱只有 Venmo 知道,其他人都不知道。假设 Alice 创建了一个比特币地址,并要求 Bob 向她转入价值 20 美元的比特币。与 Venmo 交易相比,Alice 在真实身份方面获得了一定的隐私保护,因为她的比特币地址与她的真实姓名没有关联。但是,比特币从 Bob 的地址转移到 Alice 的地址,以及 Alice 收到比特币转账后的比特币总额,对比特币区块链中的每个人来说都是透明的信息。
因此,我们可以看到,通过使用比特币,Alice 在某些方面获得了隐私,但在其他方面却失去了隐私。
在不同的加密货币之间进行交易时,这种情况很常见。
在加密货币的世界里,我们认为隐私保护主要包括三个层次:
区块链协议可以利用密码学使得外部人员无法或极难知道或计算出上述各个环节的不同部分。同时,想要利用区块链特性的攻击者可以通过组合不同的信息碎片来猜测甚至直接总结出他们想要的信息。隐私保护的手段变成了通过协议设计在特定属性领域向潜在攻击者暴露尽可能少的信息。
重要的是,特定属性是否具有隐私保护并不总是黑白分明的。例如,它可能对某些外部观察者透明,但对其他观察者却不透明,或者外部观察者可能偶然猜到,但不一定。这种模糊性意味着诸如“XX 币确保隐私”或“币 A 比币 B 更具有隐私保护”之类的简单陈述往往不成立。而且有时,如果措辞不当,这样的陈述会引起混淆和误解,因此有些人会精心设计这样的陈述来误导他人。
我们建议使用更详细的声明,例如“ 交易金额受到隐私保护”甚至“由于 ZCash 币的某些匿名设置,发送者的地址受到隐私保护”。
正如我们将在本文后面讨论的那样,在某些情况下,零知识证明等加密工具可以帮助我们量化甚至为此类主张提供严格的证据。
首先,让我们从与加密货币相关的隐私保护开始。
身份隐私,即匿名
当人们听到隐私这个词时,首先想到的往往是匿名性,这意味着用户的行为与他们的现实世界的身份信息没有联系。
实现这种隐私保护的一种方式是易于实现的“假名”方法;事实上,我们在接受各种网络服务时已经习惯使用假名,例如注册电子邮件名称,而不是使用真实姓名。在这种情况下,在该网络协议的大多数交互中,所有者的真实/法定姓名(假设是 Alice Jones)不会被暴露。
在大多数加密货币中,例如比特币,用户使用公钥/私钥对进行签名,其中公钥就像用户名,私钥就像密码。关键在于,只有当有人知道你的确切私钥时,无论是合法获得还是非法获得,才能创建由你“签名”的消息,也就是说任何人都可以使用你的公钥查看拥有私钥的人发送的消息。此功能允许用户使用他们拥有的几个公钥或地址之一接收比特币等加密货币,并使用他们自己的私钥发送加密货币,所有这些都无需中心化权威的干预。这些概念构成了现代数学密码学的基石。然而,拥有私钥/公钥对只是一种在去中心化环境中“使用假名”来掩饰真实身份的方式。
“使用假名”往往是加密货币背后协议的自然属性,导致媒体和公众误以为所有加密货币都是“匿名”的,或者至少比仅仅使用假名更匿名。毫不奇怪,这种误解驱使用户使用加密货币进行一些非法活动,例如在线赌博或暗网交易。然而,实际的隐私保护水平可能会让这些用户失望。他们确实可以使用公共地址发送或接收比特币,而无需在交易中涉及真实姓名,但用户的某些行为可以将公共地址与现实世界中的真实身份联系起来。
首先,大多数用户在交易所用法定货币购买比特币。法定货币交易通常需要与现有的银行系统挂钩,而这需要对现实世界的身份进行验证。由于比特币中的所有交易数据都是完全公开的,如上一节所述,这意味着每个人都可以看到交易所数据库,并将特定地址与现实世界的身份联系起来。例如,如果 Alice 从她控制的地址提取了 0.1 比特币,那么她的真实姓名将与该地址挂钩。如果她从非法的在线体育博彩网站提取了 0.2 比特币,外部观察者可能能够推断并提供不可改变的公开证据,证明 Alice 正在参与非法的在线赌博活动。
等公司采用了这种称为区块链分析的技术,将公共地址与其所有者的身份联系起来并分析交易模式。
图中为2009年至2012年区块链分析的早期示例;数据来源:
其次,进行加密货币交易需要通过互联网发送一些信息。在某些情况下,这些交互的元数据可用于追踪用户发起这些交易所使用的 IP 地址,即使他们使用 Tor 等所谓的安全浏览器。
以上两个原因的结合意味着,仅基于加密货币的假名性质来利用元数据进行匿名交易几乎是一项不可能完成的任务。
交易数据隐私保护
当人们谈论所谓的“隐私币”时,他们通常意味着这些币的交易在某种程度上是私密的。
广义上讲,交易是用户修改区块链状态的操作。例如,Alice 从她控制的地址向 Bob 控制的地址发送 X 个代币。从鸟瞰图来看,这个极其简单的例子也包含多个数据:
更复杂的交易可能包含其他类型的信息,例如以太坊中的智能合约代码。不同的区块链以不同的方式显示交易数据,其中一些方式允许某些部分对第三方不可见,第三方只能看到原始的区块链数据。因此,我们将本节命名为“交易数据的隐私保护”而不是“交易的隐私保护”,因为不同类型的交易数据可以受到不同程度的保护。
能够得到保护的最重要的数据就是Alice和Bob的地址,如果它们受到保护,就无法识别交易的发送者和接收者的真实身份,从而阻碍前面提到的区块链分析技术。
例如,如果 Alice 从交易所 购买了具有此技术特征的 并提取了这些货币, 将无法将此次提取与 Alice 随后对这些货币的操作联系起来。同样,如果 Bob 从 Alice 那里收到了 ,他将无法知道 Alice 从 购买了这些货币。
但让问题变得更加复杂的是,交易数据是否私密并不是一个黑白分明的问题。例如,以 Alice 的地址为例,这可以通过匿名集的大小来衡量,匿名集是区块链数据可以识别的交易发送者地址的最小集合。匿名集越大,区块链交易数据中关于发送者的信息就越少。例如,比特币的匿名集大小为 1,而门罗币的匿名集则大得多。
国家隐私
在比特币区块链中,所有的交易数据都是公开的,这意味着看到区块链中所有区块的外部观察者可以还原账本并找出这些地址的账户金额,尽管这些金额可能被分配到不同的“未使用的交易输出 UTXO”,也就是我们所说的区块链的整体状态。但是,如果交易的某些部分是秘密的,即使掌握了整个区块链的信息,用户也不会知道整体状态。这些信息在不同用户之间共享,区块链确保了用户信息的一致性。
虽然用户对区块链状态特定属性的了解仅取决于协议和触发该状态的交易信息,但两者之间的联系会触发复杂的交互。因此,状态的不同特征可以在一定程度上保持私密。
这里有一些例子:
让我们举一个简单的例子:ZCoin 中每笔交易的金额都是公开的,但发送者和接收者的地址是私密的,这意味着用户的账户余额仍然是私密信息。另一方面,在隐私保护区块链格式中,每笔交易的具体金额是私密的,但发送者和接收者是公开的,这提供了另一种保护用户账户余额隐私的方法。用户必须保证自己的账户余额信息安全,因为区块链只存储有限的信息,以确保用户不会超支。
在大多数情况下,在交易中加入更多隐私保护措施对个人用户有利,但对区块链的整体状态而言,可能不是一件好事。例如,如果某种加密货币的总发行量是私密的,用户就无法确定区块链协议的具体属性,如总供应计划;此外,利用算法漏洞或协议后门进行未经授权铸币的攻击者也很难被检测到。
一些现有区块链协议的隐私保护特性
保护隐私的不同方法
到目前为止我们主要关注的是某些信息是公开的还是私密的。此外,梳理一下不同区块链技术所采用的隐私保护方法是有帮助的。我们已经大致梳理了这些不同的隐私保护方法。
第 2 层协议
“第二层”协议建立在底层区块链技术之上,例如闪电网络、状态通道,或者允许一小群用户相互进行“链下”交易。这意味着所有中间状态都存储在这些用户之间,只有状态变化会定期写入主区块链。因此,中间状态对于外部观察者是不可见的,因为它们永远不会写入主区块链。当然,第二层协议本身也可以拥有或选择不拥有针对所有用户的链下状态的不同级别的隐私保护,因此这更多的是设计理念而不是隐私保护技术的问题。因此,我们不会进一步关注第二层协议,尽管在感兴趣的读者眼中,有很多内容值得探索。
关于“第二层”协议的开发细节,可以参考链闻此前发布的文章:《
杂交种
混合方法是针对交易的输入和输出使用不同的隐私保护策略,将它们合并为一笔大交易,并故意模糊发送者和接收者之间的地址联系。这其中包括加密世界中一些最古老的隐私保护策略,例如比特币、以太坊和门罗币。
零知识证明
当协议用户提供零知识证明时,就会有基于零知识证明的隐私保护,例如,显示对消息的了解但不显示消息本身。如果正确应用,这种加密技术可以同时确保交易/状态的隐私和区块链功能的完整性。
关于“零知识证明”的相关信息,可以参考链闻此前发布的文章:《
用户最佳实践
即使加密货币不具备任何隐私功能,也有办法在一定程度上防范网络安全威胁和区块链分析技术。为了防止恶意行为者使用网络元数据匿名化用户,用户可以使用 Tor 或 I2P 来掩盖其交易的来源 IP。为了防止区块链分析,通常建议用户对收到的每笔付款都使用一个新地址。 和 Verge 等加密货币将此功能作为原生选项提供,尽管在某些加密货币中,这些地址仍可能与用户的后续操作相关联。
可信执行环境 TEE
可信执行环境是一种处理器,比如英特尔SGX,它声称使用密码技术来保护在其上运行的数据和代码的完整性和机密性。包括宋晓东教授领导的Oasis实验室在内的几个协议都声称使用了可信执行环境。例如,用户账户余额可以通过私钥加密并存储在可信执行环境中,并且只能在“可信执行环境”中解密和修改。这实际上将确保隐私保护的责任放在了可信执行环境上,而可信执行环境本身也可能存在弱点。例如,侧链攻击可能能够破解私钥。英特尔SGX早些时候就暴露了此类漏洞。此外,现有的可信执行环境可能需要制造商的许可,或者允许制造商破解数据机密性。当然,诸如和之类的替代方案试图解决这个问题。
关于宋晓东教授创办的基于可信执行环境的区块链项目Oasis Labs的具体发展情况,可参考链闻此前的报道:《
总之,在考虑加密货币的隐私时,请避免使用“我们的货币比他们的更私密”之类的模糊表述。我们建议尝试澄清以下问题:关于世界状况的哪些信息是保密的、何时保密、对谁保密?这使我们能够更具体地分析隐私保护技术及其进行的交易。