Dandelion++:门罗的通信层保护技术

“Dandelion++防止别人将你的IP地址和门罗交易关联起来。”Dandelion++Monero建立在它的点对点(P2P)通信网络。网络中感知区块链的计算机,即节点,共享Monero信息,如节点地址、历史区块链数据、挖出的区块以及区块中添加的新交易。Monero的节点根据互联网协议(IP)地址区分,存在观察者根据IP地址找出关联交易的风险,数据变得不再匿名。Dandelion++可以隐藏这种连接,将应用在即将发布的Monero软件中。本文叙述了Dandelion++的工作方式,以及它对门罗用户的用途。
《财富代码》-深度分析、挖掘区块链价值项目,https://www.first.vip/hodl
“Dandelion++防止别人将你的IP地址和门罗交易关联起来。”Dandelion++

Monero建立在它的点对点(P2P)通信网络。网络中感知区块链的计算机,即节点,共享Monero信息,如节点地址、历史区块链数据、挖出的区块以及区块中添加的新交易。Monero的节点根据互联网协议(IP)地址区分,存在观察者根据IP地址找出关联交易的风险,数据变得不再匿名。Dandelion++可以隐藏这种连接,将应用在即将发布的Monero软件中。本文叙述了Dandelion++的工作方式,以及它对门罗用户的用途。

Monero的P2P网络

从概念上,Monero可划分为两个部分:P2P网络与网络中运行的应用程序。应用程序处理地址、密钥和交易,而网络组织维护信息流。要了解Dandelion++,就要理清P2P网络的结构和钱包通过P2P网络通信来交易的方式。

P2P网络结构由全球数千个节点组成,如果算上被动节点,则数上万个。通常每个节点通过互联网连接到其他一小部分节点,即对等节点(peers)。节点使用与Web浏览器和Web服务器一致的传输控制协议(TCP)与其对等节点通信。节点随机连接对等节点,这些对等节点不一定在地理位置相近。通常对等节点为8个,但有些节点可以连接上百个对等节点,每个节点先是询问特殊主节点,来发现自己的对等节点,然后再询问这些对等节点,发现新的对等节点,以此类推。于是形成了一个由众多计算机组成的网络,每台计算机通过TCP与其他分散的,有限的计算机集合进行通信。

Monero钱包必须连接至一个节点,将它作为连接至P2P网络的网关。比如,官方GUI wallet,可以运行自己的节点,而其他的钱包,如智能手机上的MyMonero,总是使用远程节点。钱包通过自己的网关节点创建和传播一笔交易来花费Monero,让交易最终找到矿工节点,并打包进一个挖矿区块中。每笔交易包含的信息有限,但都是一些重要数据,包括一组可能的资金来源。

现在,Monero节点使用洪水(flooding)进程来广播新交易。节点将交易发送给自己的所有对等节点,对等节点又将交易发送给自己的对等节点,此外还做一些检查,防止冗余通信。信息像波浪一样在网络中向四面八方传播。一些加密货币,比如比特币,会随机选择广播的时间,但Monero不会。

面临的问题

“对于像耳朵一样的僵尸网络节点来说,交易创建就像一声巨响”

你的IP地址透露了很多关于你的信息(你可以访问whatismyipaddress.com这样的IP信息站点来了解自己的IP地址)。从你的互联网服务提供商(ISP)或虚拟专用网(VPN)提供商提供的信息,甚至还可以关联到你的名字上。你的IP地址和你创建的交易之间的任何连接都会泄漏信息,包括你不想让别人知道的门罗交易。问题是,Monero P2P网络中的交易广播模式(洪水模式),让他人恰巧能建立起交易与IP地址的关联。

将一个IP地址与一笔交易关联起来,并不容易,也不一定准确。这要消耗观察者一定的功夫。但使用僵尸网络连接Monero P2P网络,通过对时间的分析和已知的对等节点信息的比较,会有比较高的概率可以计算出交易来源。当听到一声巨响时,你会自然地转向那个方向:你的大脑“分析”耳朵听到声音的时间和失真,辨认方向。对在不同地点接收到的通过洪水模式传播的加密货币数据包进行分析,可以让间谍攻击者做同样的事情。僵尸网络节点就像耳朵,创建交易就像发出一声巨响。

Dandelion

为了解决这个问题,伊利诺伊大学的研究人员首先开发了一套技术,他们称之为Dandelion(蒲公英)。最初是想应用在比特币上,但它也适用于MoneroDandelion是先用一种特殊的不可侦测的方式将交易路由到一个远程节点,然后再启动洪水传播

Dandelion的作者深入研究了利用僵尸网络寻找加密货币交易来源的理论和实践。包括制造匿名性的数学模型,分析三种传播技术:

1)基本的洪水传播(Monero的方法)

2)扩散(Diffusion),即随机洪水传播(比特币的方法)

3)代理式扩散

最后一种技术是,首先将交易随机转发给一个节点,然后该节点再使用扩散广播交易。根据作者的数学模型,这三种方法都被发现是不足以抵抗监视的

为了解决三种方法的缺陷,作者提出了Dandelion。Dandelion定义了一个寻找代理节点的进程,称为匿名(或茎)阶段。它还建立了另一个广播进程,称为传播(或绒毛)阶段。一般情况下,这两个阶段使用不同的对等节点集,重要区别是匿名阶段(茎阶段)连接的节点集随时间变化而变化。Dandelion得名于:首先沿着一条特殊的线性搜索路径寻找一个代理节点,然后从这个代理节点迅速对称地广播信息,将信息流的形态组合起来,就像一朵蒲公英

使用作者的数学模型分析,当所有节点都使用Dandelion时,被证明可以抵抗一组节点(被动观察者)的监视。有了Dandelion,僵尸网络诚实地加入P2P网络,无法可靠地将交易与IP地址连接起来。

Dandelion++

然而,试图将交易与IP地址联系起来的观察者可能并不被动,也可能不遵守网络规则。一些诚实的节点可能不会运行Dandelion。受到日益增长的加密货币分析市场的推动,如Chainanalysis,作者重新审视了自己早期工作中的假设,一年后与合作者开发了Dandelion++。Dandelion++调整了Dandelion无法抵抗大规模违反规则的去匿名化攻击的弱点。

“Dandelion++正式地保证了抵抗去匿名化”

Dandelion++的发明者建立了一个以僵尸网络为对手的模型,间谍节点分布在整个网络中,形成了整个网络的一些重要部分。在他们的模型中,这些间谍节点不需要遵循规则。它们可以生成任意数量的出站连接到任何诚实或攻击节点。他们使用所有可用的信息,包括发送时间和地址。正是在这种非常恶劣的环境中,Dandelion++成功地保护了匿名性。

Dandelion++,与Dandelion一样,有一个茎和绒毛阶段。在茎阶段,Dandelion++以离散区间,即纪元(epoch)进行动态连接。每个节点都独立地切换纪元,通常每隔几分钟切换一次。在每个纪元间隔,节点从它的出站连接中随机挑选两个新的中继连接。然后,当节点创建自己的交易时,通过其中一个中继发送交易。且在该纪元间隔中发出的所有交易,都将使用这一个中继。在茎阶段,当节点要转发另一个节点的交易,如果节点是一个中继器,它就会从两个中继器中随机选出一个将交易发送出去。

Dandelion++在绒毛阶段使用扩散,即通信时间随机化的洪水模式-,使间谍节点更难找出交易来源。一旦一笔交易开始了扩散过程,它就会继续使用扩散进行传播,不再回到茎阶段。然而,在Dandelion++中,扩散以一种特殊的方式开始。在每个纪元间隔,节点将自己定义为中继器或扩散器(diffuser)。这在每个纪元开启时,便随机确定好了。如果某个节点是扩散器(diffuser),每当它在茎阶段被选择去中继一笔交易时,它不使用广播,而是使用扩散(扩散),从而启动绒毛阶段。

Dandelion++还有一个附加的、互补的套件,称为故障安全机制。在茎阶段,中继交易的每个节点都为交易启动一个计时器。如果时间阈值一过,节点在绒毛阶段没有接收同一笔交易,则节点将启动自己的绒毛阶段。这样做有两个目的:一是利用时间阻止去匿名化的尝试;二是挫败所谓的黑洞攻击,即攻击节点在茎阶段放弃交易,而不是转发交易。

有了这些技术,Dandelion++提供了抵抗去匿名化的正式保证。与需要全局推理的Tor网络不同,Dandelion++使用本地技术来抵抗去匿名化。每个优雅的Dandelion++节点都自行决定自己的行为。于是一种快速、高效、有效的技术诞生了,甚至可以防止高级攻击者将IP地址连接到交易。

与Monero集成

虽然Dandelion++是专门为比特币开发的,但它最近被开发人员Lee Clagett (vtnerd)应用到了Monero上,并正在接受开发人员moneromooo的测试和审核。这些杰出的Monero开发人员做出的讨论与文件修改,可以看作是源代码控制下的更改请求。更改请求是添加新代码到Monero代码库的一个流程。虽然Dandelion++更改请求通过了moneromooo的批准,但在撰写本文时,它还没有完成所有的审查,也没有被合并到Monero代码库中。

上线以后,Dandelion++将在默认的情况下使用。虽然可以将C++代码文件cryptonote_config.h中即将进入绒毛模式的概率定义为100%,来关闭Dandelion++。即使在这种定向重新编译的情况下,Dandelion++也将使用随机延迟的扩散,而不是基础的洪水模式。版本正式上线日期还未确定,不过Dandelion++不需要硬分叉。

Dandelion++存在一些弱点与局限性,添加了交易广播延迟。根据作者的分析与实验评估,茎阶段增加了延迟,可能是几秒钟。绒毛阶段,扩散增加了随机延迟,通常不到一秒。如果网络受到黑洞攻击,发起人等待的确认可能会使传输延迟几分钟。这几分钟延迟不会对网络产生重击。此外,Dandelion++不加密P2P数据包,也不防止ISP或VPN级别的间谍,针对这一点,你可以使用Tor。

结语

一种强大的反匿名预防措施即将在Monero诞生——Dandelion++。最初,这种方法是为比特币开发的,由开发人员Lee Clagett应用于Monero,即使是在大规模的复杂攻击中,它也可以防止攻击者将IP地址连接到Monero交易,它特别能抵抗僵尸网络。在Dandelion++采用的茎和绒毛阶段,信息流呈现出蒲公英的形状,因此得名。如此一来,观察者很难找出交易来源。Dandelion++将增强Monero已经完善的隐私功能,并推动Monero在精益求精的道路上继续前行。

本文由 区块链资讯平台头等仓 作者:筋斗云 发表,其版权均为 区块链资讯平台头等仓 所有,文章内容系作者个人观点,不代表 区块链资讯平台头等仓 对观点赞同或支持。如需转载,请注明文章来源。
《财富代码》-深度分析、挖掘区块链价值项目,https://www.first.vip/hodl

发表评论