手工客

关注公众号 shougongke

关闭
手工客 > 区块链 > 正文

比特币开发又有新进展,Core开发者提出能更好的交易隐私性

比特币核心(Bitcoin Core)开发人员Amiti Uttarwar正在致力于修改比特币的网络重播逻辑,以在交易重播过程中引入更多的隐私。

比特币开发又有新进展,Core开发者提出能更好的交易隐私性

图片来源:Pixabay

Uttarwar是Bitcoin Core团队的一个相对较新的成员,于2019年10月首次被聘为加密货币初创公司Xapo的Bitcoin Core开发人员。她现在的主要重点是一项拟对比特币的重播逻辑进行更改的提案,Bitcoin Core开发者Pieter Wuille此前曾强调说该提案是众多有希望的点对点实施项目之一。

正如Uttarwar在2019年9月的演讲中解释的那样,当用户发起比特币交易时,他们需要广播交易——这意味着他们必须向其他节点发送INV消息,并确保该交易处于其他人的内存池中。

但是,初始广播并不总是成功广播出去。例如,中继过程可能存在问题,或者当其他交易支付的手续费较高时,该交易可能会从内存池中撤出。如果出现此类问题,用户将不得不发送另一条INV消息并将其重新广播给其他节点。

在解释作出这种重播更改的动机时,Uttarwar说:“当前的重播逻辑对于隐私而言是可怕的。”

该更改怎么运行的

她说,在当前系统下,只有源钱包会重新广播交易。结果,如果一个间谍节点看到来自同一节点的同一笔交易的两条INV消息,则可以推断出该节点是源钱包,“这时候交易隐私就是一个破绽”。

她说:“这为一种被粉尘攻击的漏洞留下了空间。”当攻击者将少量BTC发送到许多不同的地址并观察各种钱包的重播行为时,就会发生粉尘攻击,从而破坏网络的隐私功能。

Uttarwar提出的机制将通过具有更私密的重播行为(不会泄露交易的来源钱包)来迁移此漏洞。如果比特币网络实施了她提出的这种替代设计,那么所有节点将转播他们认为“应该已经确认”的转播,而不仅仅是源钱包发送的转播信号。

她说:“我将逻辑从钱包中提取到节点中,并使用区块汇编器,以便我们可以以与节点如何看待它类似的方式识别内存池的顶部。我更新了钱包逻辑,以将未确认的交易重新提交给节点,而不是直接将其发送给其他节点。我在区块创建逻辑中添加了新近的过滤器,以便我们可以忽略新近的事务。”

发展道路

这个pull request(PR)于2019年8月首次开放,Uttarwar告诉The Block她从那以后对提该案进行了相当大的更改。

她说:“最大的变化之一是,我已经能够将大型PR的功能分解为一个独立的更改。因此,我目前正在努力实现这一转变。一旦我们将其合并,我将返回到这个更大的转播项目。”

另一个重大更改涉及一种机制,该机制可以跟踪一个人可以重新广播过渡的最大时间。虽然Uttarwar先前计划将其作为她的重播提案的后续措施,但她最近决定在审核员强调缺少此更改后如何使其成为攻击媒介之后再进行构建。

Uttarwar还指出过多的带宽使用是其设计选择背后的潜在问题之一。

她说:“我认为带宽是我们应该仔细考虑的问题,如果做错了,可能会出现问题。”

为了避免出现全网范围的极端带宽高峰,Uttarwar采用了一些预防机制,包括每个节点的重播定时的泊松分布和用于重播候选对象的过滤逻辑。

这个PR已经开展了七个月,但她表示不急于推动该提案通过。

她说:“我不太关心时间表,而更关心每一步的稳健性。我不希望任何东西过早地合并。”

阅读全文