通过向终点支付(P2EP)来改善隐私安全
Blockstream Research

通过向终点支付(P2EP)来改善隐私安全

Matthew Haywood

任何资产要成为交易的中介就必须是可替代的,意即该资产的单位必须易于交易,每个单位的价值都是相等的。对比特币区块链进行分析的话,某家公司可以因为某个比特币的交易历史而宣称该比特币受到了”污染”,从而不接受该比特币的付款。追踪比特币来源及所有权的区块链分析公司侵犯了用户的隐私,使得比特币不能自由而不受偏见地交易。除非基本交易的隐私收到保护,否则比特币就不能算是完全”可替代的(fungible)”。

一个社区工作群体的参与者最近宣布要改善比特币基础交易的隐私保护。我们整理总结了该组织所做的工作,即把如何对付区块链分析公司常用的探索法(heuristic)教给钱包开发者们,以此来提高比特币的可替换性。

该组织的希望能够促进社区讨论,为钱包及支付处理商提供标准化的工作流程来提高隐私性能。

打破区块链分析工具

Meiklejohn等人在其2013年发表的一篇论文中指出了一个常在比特币区块链中用于链接地址的关键探索法。他们发现,区块链分析的一个基本原则就是”如果一笔交易中的输入来自不同公钥的话,那么这些不同的公钥就被认定为是属于同一个人的”。

一个普通的比特币交易就成为了分析公司的突破点,可以追踪某个比特币地址及其所有者。这个工作坊所要打破的正是这个原则。

需要注意的是,要使得这个’常用输入所有权’推测失效,并不需要让每一笔交易都参与任何所提出的解决方案,只需要保证有足够的交易共享来自不同所有者的输入即可。这是区块链分析的基石,只要打破了这个基石并把这个方法普及开来,就基本上不必再担心比特币分析所带来的隐私问题了。

这个方法给了该组织更清晰的目标:

致力于保证交易输入由多方持有属于常见事件,因此’常用输入所有权’推测是无效的。

鉴定必要的要求

目前提出的诸多方案中,许多都有相同的问题,在此就不具体讲是哪个方案并进行具体分析了。这个相同的问题需要得出一个有效的解决方案,这个解决方案要包含下列特征:

  • 点对点参与者之间建立起交互处理过程。
  • 防止或减少UTXO’窥探’攻击(即发送方试图通过反复发送未完成的请求来窥探接收方的UTXO)。
  • 减少不反应攻击造成的影响。

向终点支付(P2EP)方案

多个不同的想法最终孕育了’向终点支付(Pay to EndPoint,简称P2EP)’方案。尽管并非没有弊端,这个方案基本满足既定目标,即使得’常用输入所有权’推测无效,使得点对点交互具有一定的抗攻击能力。

P2EP的基本前提是发送方和接收方都为某一笔交易提供输入,他们的交互方式由接收方提供的终端(endpoint)来进行协调,并通过BIP 21兼容URI来执行。

P2EP并不需要修改比特币协议,P2EP创建的交易难以识别,因为他们都和普通的交易拥有同样的”指纹”。

为了便于理解,下面我们来解释使用P2EP创建交易所要经历的步骤:

第一步

接收方(商户或者终端用户)创建一个BIP 21格式的URI,其中包含一个额外的参数制定他们的P2EP终点。由于BIP 21允许目前尚未被理解的变量存在,这将不会破坏现有的钱包装置。终点地址不一定必须是一个洋葱地址,可以是任何兼容终点的URI。

以下是一个URI例子(从BIP 21例子中得来):

bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?p2ep=3j4tau93wkc8mh32.onion

第二步

发送方通过确认提供的终点可用来向接收方发起交互。如果终点不可用,则该交易将正常进行广播,支付到接收方的BIP 21常用比特币地址。如果接收方的终点可用,则发送方向接收方发送一笔已签名的交易作为UTXO所有权证明。

第三步

接收方接着发送几笔交易给发送方签名。在这些交易中,只有一笔交易包含真正为发送方所有的UTXO,其余的可以从可花费的UTXO池中选择。这些交易将通过系列或平行的方式发送给发送方。两种发送方式在隐私保护和交互速度方面都有其利弊,具体选择哪种方式仍有待商榷。

系列:轮流发送的每笔交易都有可能是接收方的。这个概率取决于接收方选择及签名的交易数量以及发送顺序随机化的方式。当发送方向接收方提交包含了接收方UTXO的已签名的交易时,该交易系列便停止了。

平行:由接收方创建的所有交易都同时发送给发送方。发送方便得到了一组交易,其中一个交易是接收方的。接收方猜中正确交易的概率与接收方选择并发送的交易数量有关。发送方对所有的交易都进行签名并全部同时发回。

不管用哪种方法进行发送,目前预设的交易数量暂定为100,这个数字是权衡了隐私保护和交易双方数据发送/处理任务量之后得出的。

需要注意的是,上述UTXO交易方法也有可能被防弹证明代替。

第四步

不管第三步用的是哪种方法,当接收方受到和他的UTXO相对应的已签名的交易后,他就可以签名并广播这笔交易,这笔交易现在就含有来自发送方和接收方的输入了。

如果该P2EP交易由于某些原因失败了,则该笔交易将作为普通交易进行广播。

P2EP交易例子

假设小红需要支付给小明1 BTC:

  • 小红将3 BTC输入到一个交易中。
  • 小明将5 BTC输入到同一个交易中。
  • 小红收到2 BTC(作为找零)。
  • 小明收到6 BTC(作为他的找零,再加上小红给他的1 BTC付款)。

以上交易破坏了’常用输入所有权’推测,可以通过许多不同的方式来解读。比如说可以解读为,小红要向小明支付6 BTC,于是输入了3 BTC和5 BTC一共8 BTC,然后找零2 BTC。

P2EP的优势和劣势

优势:

  • 打破’常用钱包所有权’推测。即使使用并不普遍,但累积效应将使得普通的非P2EP交易也能获得更好的隐私保护。
  • 打破子集总和分析。
  • 接收方的UTXO消耗可能可以帮助减少”UTXO臃肿”。
  • 接收方可以使用P2EP来巩固他们的UTXO组合。
  • 与传统的面值固定的CoinJoin交易不同,交易类型将不会有明显的”指纹”,因为他们和普通的交易看起来都一样。
  • 发送方的钱包可以是轻量钱包。
  • 发送方和接收方都能受到很好的隐私保护。

劣势:

  • 接收方和发送方都必须在线,该交易才能以P2EP的方式进行处理。
  • 由于P2EP的交互特性,交易广播将有些许延迟。
  • 接收方需要有一个”热钱包”才能对交易进行签名。
  • 由于交易体积变大,发送方所要缴纳的费用可能会更高一些。如果接收方比较重视UTXO巩固的话,可以就此费用进行协商。
  • 与传统交易相比,钱包处理任务量将会增加。
  • 接收方需要拥有一个全节点。

P2EP下一步会走向哪里?

P2EP还处在初步阶段,正式预案提出之前还需要社区进行审阅和修改。

这个想法可以再进一步扩展,包含其他格式的交易,如分摊交易或者简单的比特币交换。

If you have specific preferences, please, mark the topic(s) you would like to read: