现在的比特币还不是真的匿名。尽管比特币地址不一定与真实世界的身份相关联,但可以。监视未加密的对等网络,分析公共区块链以及了解客户(KYC)政策或反洗钱(AML)法规,可以揭示有关谁在使用比特币以及用于什么目的的很多信息。.

从隐私的角度来看,这不是很好。比特币用户可能不一定希望世界知道他们的钱花在哪里,他们的收入或拥有的数量,而企业可能不想将交易详细信息泄露给竞争对手–仅举一些例子.

另外,可追踪的比特币,可能被“污染”,并且可能比其他比特币的价值更低,这与可替代性是矛盾的。这甚至可能会挑战比特币作为货币的价值主张.

但是,有一些潜在的解决方案可以增加隐私并提高可替代性.

这些解决方案之一是“机密交易”。

背景

与大多数数字金融基础设施相反,所有典型的比特币交易都记录在公共区块链上,任何人都可以看到。这是在没有任何集中权限的情况下验证交易所必需的,而且使跟踪从哪个地址发送到哪个地址的多少比特币变得微不足道。.

为了增强隐私性,可以隐藏交易的比特币数量。这个概念的早期版本,后来被称为“具有同态值的比特币”,首先是 建议的 在2013年由hashcash发明家和当前 区块流 总裁亚当·贝克(Adam Back)博士。这个想法后来被提起 比特币核心 以及Blockstream开发人员Gregory Maxwell和Pieter Wuille博士以及Blockstream数学家Andrew Poelstra。这最终导致在Blockstream的testnet侧链中实施机密交易, Α.

怎么运行的

机密交易结合并利用了几种加密技巧,最显着的是 Borromean环签名彼德森承诺计划.

在不深入研究密码细节的情况下,可以应用这些技巧,以便仅交易的发送者和接收者都知道交易量。其他人只会看到比特币被交易了,却不知道有多少.

聪明的事情是,尽管部分或全部金额被“旁观者”掩盖,但这些旁观者仍可以将掩盖的金额用于某些类型的计算。具体来说,可以将交易的所有输入相加,可以将所有输出相加,并且可以对两个总和进行比较,以确保它们相等-全部不泄露任何被掩盖的金额或总和。这样,节点可以验证没有凭空创建任何比特币,而无需知道实际发送了多少比特币.

(附带说明,其中一个金额始终是可见的:采矿费。这是为了确保矿工不会向自己奖励太多费用,并且从隐私的角度来看也不会造成进一步的后果。其他金额也可以显示, (如果发送者或接收者选择)。

软叉

也许令人惊讶的是,机密交易将或多或少地与当前的比特币协议兼容。虽然需要充实细节,但解决方案可以作为 软叉 ‒尽管可能有点“骇人听闻”。

这是如何做.

为了确保“旧”(未升级)节点和“新”(升级)节点保持同步,机密交易中使用的比特币必须首先“通过”“任何人都可以花费”的地址。这是任何人都可以从中花费的比特币地址,即使没有相应的私钥或签名.

还是旧节点好像.

新节点将把地址识别为机密交易的第一步,并且仅接受来自该地址的确实包含正确签名的交易。只要大多数散列功能都遵循这些规则,任何无法控制地址的比特币就不会被无法控制相应私钥的任何人窃取。 (旧节点可能会奇怪,为什么没有人花在免费的可用比特币上。但是,他们也不介意没有人在用;从他们的角度来看,没有违反任何协议规则。)

这就是有趣的地方.

如果从任何人都可以花费的地址进行机密事务,则旧节点和新节点都将看到该事务。但是他们看到了不同的东西。新节点会将交易识别为机密交易,例如,检查是否没有凭空创建比特币。同时,旧节点会被骗到认为这是零比特币交易:他们会认为没有比特币离开任何人都可以花费的地址.

此逻辑适用于每个后续事务。新节点会看到新的交易,并且知道一定数量的比特币可能会从一个地址移到另一个地址-尽管他们不知道有多少个。老节点始终会看到“零比特币交易”,并认为所有比特币仍位于任何人都可以花费的地址中。 (旧节点可能会想知道为什么人们之间会互相发送空交易。但是,他们又不在乎。)

不会造成严重破坏的原因(特别是由于不兼容 UTXO套装)是指通过机密交易收到的比特币最初只能用作机密交易。他们现在被“锁定”在任何人都可以花的地址上,根本看不到在比特币区块链上的移动。.

为了能够再次将这些比特币用于正常交易,它们必须首先“通过”原始的任何人可以花费的地址。机密交易的接收者必须将其发送回任何人可以花的地址,然后从那里开始将硬币重新移到区块链上清晰可见的位置.

一旦它们再次开始清晰地移动,新节点将检查没有移动太多的硬币,而旧节点将简单地假定硬币是自“被锁住”以来第一次移动。

这样,任何人都可以花费的地址有效地充当了隐藏设备。通过任何人都可以花费的地址会使所有节点看不到后续交易的数量。比特币只有回到原始的任何人都可以使用的地址后,才会“重新出现”.

缺点和权衡

不幸的是,保密交易不是保护隐私的灵丹妙药.

最明显的是,尽管“机密交易”掩盖了金额,但旁观者仍可以看到哪个地址在支付哪个地址.

但是也有解决此问题的潜在解决方案.

首先,创建假阴性并向多个地址支付零比特币以掩盖比特币真正去向是微不足道的。此外,机密交易与CoinJoin结合使用时特别有用,该交易将来自多个交易的发送和接收地址合并为一个大型交易.

机密交易的另一个潜在弱点是,被掩盖的金额实际上仅针对该特定交易被掩盖。如果后续交易不是机密交易,这可能毫无意义。来自以后交易的信息有时可以用来追溯计算机密交易中必须涉及多少个比特币.

(例如:如果爱丽丝向鲍勃发送了未知数量的比特币,而鲍勃随后又将5比特币发送给了卡罗尔,向自己发送了2比特币,这显然意味着爱丽丝向鲍勃发送了7比特币。)

这意味着只有在这种交易广泛使用的情况下,机密交易才真正有用。但这给我们带来了一个甚至更大的问题:机密事务非常耗费资源。机密事务大约是正常事务的20倍,而它甚至将计算量增加了30倍。因此,每笔机密交易的费用将比典型交易高得多,这对实际使用它们的人造成了不利影响-也降低了其对其他所有人的用处.

最重要的是,机密交易的庞大规模使它们在可伸缩性(因为比特币网络将能够处理更少的交易)或分散化(因为更少的用户将能够运行一个完整的节点并验证所有交易)方面产生冲突。 ), 或两者.

最后但并非最不重要的一点:尚不清楚每个人都同意比特币应该更加私密或可替代,这可能会使推出此类潜在的软分叉变得更加复杂.

感谢Pieter Wuille,Adam Back和 门罗 首席开发人员Riccardo Spagni,以获取信息和增加反馈.