在网络中传播数据的基于区块链的系统和方法

文档序号:991704 发布日期:2020-10-20 浏览:5次 >En<

阅读说明:本技术 在网络中传播数据的基于区块链的系统和方法 (Block chain based system and method for propagating data in a network ) 是由 西尔维亚·巴托鲁奇 西蒙娜·马代奥 于 2019-02-08 设计创作,主要内容包括:公开了一种在节点网络中传播数据包的方法。所述方法在所述节点中的一个节点处实现,且包括:生成至少一个第一种类型的数据包;在第一时间段内收集第一种类型的数据包的集合,所述集合包括所述至少一个生成的数据包和从网络中的一个或多个第一节点接收到的至少一个第一种类型的数据包;以及确定集合中的数据包到与节点连接的多个相邻节点的映射,所述映射指示集合中的每个数据包到相邻节点的中继转发预期时间,其中确定所述映射包括确定以下至少一项:第一子映射,其将具有相同中继转发来源的任意两个数据包分配给相邻节点的不同子集;以及第二子映射,其将不同的中继转发预期时间分派给在同一时间间隔内在节点处生成或由节点从一个或多个第一节点接收的任意两个数据包。(A method of propagating data packets in a network of nodes is disclosed. The method is implemented at one of the nodes and comprises: generating at least one first type of data packet; collecting a set of first type packets over a first period of time, the set including the at least one generated packet and at least one first type packet received from one or more first nodes in the network; and determining a mapping of the packets in the set to a plurality of neighboring nodes connected to the node, the mapping indicating an expected time for relay forwarding of each packet in the set to a neighboring node, wherein determining the mapping comprises determining at least one of: a first sub-map that allocates any two packets having the same relay forwarding origin to different subsets of neighboring nodes; and a second sub-map that assigns different relay forwarding expectation times to any two data packets generated at the node or received by the node from the one or more first nodes within the same time interval.)

在网络中传播数据的基于区块链的系统和方法

技术领域

本发明总体上涉及计算机网络,更具体地涉及在节点、电子通信以及联网技术的网络中传播数据的方法和设备。本发明特别适合用于与区块链技术相关的环境。具体而言,本发明涉及数据的安全传输,并且涉及减少潜在的恶意事件和第三方的攻击,即攻击。

背景技术

在本文档中,我们使用“区块链”一词来包括所有形式的基于计算机的电子分布式分类账(ledger)。这些分类账包括但不限于区块链和交易链技术、许可和非许可的分类账、共享分类账,及其变型。尽管已经提出并开发出了其他区块链实现方式,但是区块链技术最广为人知的应用还是比特币分类帐。虽然为了方便和说明的目的在本文中可能会提及比特币,但是应当注意,本发明不限于与比特币区块链一起使用,且替代的区块链实现方式和协议也落入本发明的范围内。本文使用“比特币”一词来包括比特币协议、区块链以及由比特币协议或区块链派生出的实现方式的所有变型。

区块链是一种基于共识的电子分类帐,其实现为基于计算机的分散的分布式系统,所述系统由区块组成,而区块又由交易组成。每笔交易是一种数据结构,所述数据结构对区块链系统参与者之间的数字资产的控制权的转移进行编码,并且包括至少一个输入和至少一个输出。每个区块都包含前一个区块的散列,因此区块被链接在一起,以创建自区块链创建以来写入区块链的所有交易的永久性的不可更改的记录。交易包含嵌入到其输入和输出中的小程序,称为脚本,这些程序指定如何以及由谁访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。

接收到新交易的网络节点将迅速尝试将交易推送到网络中的其他节点。在将新交易发送到其他节点之前,对其进行“确认”,这意味着将根据一组标准对其进行检查,以确保此交易符合根据适用的区块链协议进行适当交易的基本要求。

为了将交易写入区块链,由节点(“矿工(miner)”或“开采节点(mining node)”)将其并入区块,节点被设计为收集交易并使它们在区块中形成。然后,矿工力图完成此节点相关“工作证明(proof of work)”。整个区块链网络中的矿工争抢成为第一个组装交易区块并完成此区块相关工作证明的矿工。成功的矿工将其已确认的区块添加到区块链中,并且此区块通过网络传播,使得维护区块链副本的其他节点可以更新它们的记录。那些接收到区块的节点也对此区块及其中的所有交易进行“确认”,以确保其符合协议的形式要求。

区块链技术(例如,比特币)的公认优势之一是交易的匿名性。比特币用户的个人详细信息并未正式和明确地附加到比特币地址,并且区块链的比特币分类账仅包含公共地址信息。但是,由于区块链被构造为在互联网上运行的分布式点对点(peer-to-peer,也称为“对等”)网络,因此,使用互联网协议(IP)地址信息将用户链接到网络活动的攻击可能会损害交易的匿名性。举例来说,在基于区块链的网络上进行的诸如IP流量分析之类的去匿名化攻击可以使感兴趣的第三方监视网络上用户提交的交易,并且使用可公开获得的信息将交易链接到它们的来源,例如,通过将用户的公钥与他们的IP地址链接在一起。

对于依赖于通过网络节点传播交易以及在网络节点之间传播交易的基于区块链的网络而言,流量分析尤其成问题。网络中接收交易的每个节点都会对交易进行确认,然后将其发送到对等节点。例如,在比特币协议中,节点将向对等节点发送包含交易列表的“INV”消息,并且接收“GETDATA(获得数据)”响应消息,选择在“INV”消息中通告的交易的某个子集。然后,此节点将请求的交易发送到对等节点。针对此节点连接到的每个对等节点执行此流程。攻击者可以拦截并分析在网络中传播交易时所发送的数据,并最终获得可用于链接交易源和交易目的地的信息。

发明内容

期望提供用于在基于区块链的网络中传播交易的技术,这些技术可以降低通过流量分析或其他类型的去匿名化攻击损害网络匿名性的可能性。更一般而言,期望提供用于在点对点网络的节点之间中继转发数据以降低易受去匿名化攻击的可能性的技术。

现在已经设计出这样的解决方案。

因此,根据本发明,提供了如所附权利要求书中限定的方法和设备。

本申请描述了一种在节点网络中传播数据包的节点,其中网络中的每个节点具有到其他节点的一个或多个连接。所述节点可以被布置为:生成至少一个第一种类型的数据包;在第一时间段内收集所述第一种类型的数据包的集合,所述集合包括所述至少一个生成的数据包和从所述网络中的一个或多个第一节点接收到的至少一个所述第一种类型的数据包;以及确定所述集合中的数据包到与所述节点连接的多个相邻节点的映射,所述映射指示所述集合中的每个数据包到相邻节点的中继转发预期时间。确定所述集合中的数据包到所述多个相邻节点的映射可以包括确定以下至少一项:第一子映射,其将具有相同中继转发来源的任意两个数据包分配给所述相邻节点的不同子集;以及第二子映射,其将不同的中继转发预期时间分派给在同一时间间隔内在所述节点处生成或由所述节点从所述一个或多个第一节点接收的任意两个数据包。所述节点还可以被布置为根据所确定的映射将所述集合中的数据包发送到所述多个相邻节点。

所述节点可以包括处理器、提供网络连接性的网络接口,以及内存。所述内存可以包括处理器可执行指令,当所述处理器可执行指令由所述处理器执行时,促使所述处理器执行上述操作。

本申请描述了一种计算机实现方法。可以将其描述为一种在节点网络中传播数据包的方法,其中所述网络中的每个节点都具有到其他节点的一个或多个连接。所述方法可以在所述节点中的一个节点处实现,且可以包括以下步骤:生成至少一个第一种类型的数据包;在第一时间段内收集所述第一种类型的数据包的集合,所述集合包括所述至少一个生成的数据包和从所述网络中的一个或多个第一节点接收到的至少一个所述第一种类型的数据包;以及确定所述集合中的数据包到与所述节点连接的多个相邻节点的映射,所述映射指示所述集合中的每个数据包到相邻节点的中继转发预期时间。确定所述集合中的数据包到所述多个相邻节点的映射可以包括确定以下至少一项:第一子映射,其将具有相同中继转发来源的任意两个数据包分配给所述相邻节点的不同子集;以及第二子映射,其将不同的中继转发预期时间分派给在同一时间间隔内在所述节点处生成或由所述节点从所述一个或多个第一节点接收的任意两个数据包。所述方法还可以包括根据所确定的映射将所述集合中的数据包发送到所述多个相邻节点。

在一些实施方式中,确定所述第一子映射可以包括以下步骤:对于所述至少一个生成的数据包中的每一者:识别所述节点先前生成的预定数量的第一种类型的第一数据包;获得与所述第一数据包相关联的中继节点集合的列表,所述中继节点集合包括所述第一数据包被分别中继转发至的相邻节点;以及基于识别与所获得的列表中的中继节点集合不同的相邻节点集合,选择第一中继节点集合。

在一些实施方式中,选择所述第一中继节点集合可以包括任意地选择未包括在所获得的列表中的两个或更多个相邻节点的集合。

在一些实施方式中,所选择的第一中继节点集合可以与所述所获得的列表中的中继节点集合至少有两个节点不同。

在一些实施方式中,可以任意确定入选所述第一集合的相邻节点的数量。

在一些实施方式中,可以根据所述节点的带宽需求来限制入选所述第一集合的相邻节点的数量。

在一些实施方式中,确定所述第一子映射可以包括以下步骤:对于所述一个或多个第一节点中的每一者:识别最近从所述第一节点接收到的预定数量的所述第一种类型的第二数据包;以及确定所述第二数据包到相邻节点的固定集合的第一分配,所述第一分配是从所述第二数据包到相邻节点的满足预定条件的一个或多个分配中选择的。

在一些实施方式中,如果对于所述第二数据包中的任意两个,被分配有两个所述第二数据包的相邻节点的数量小于或等于预定义的阈值,则向所述相邻节点的固定集合分配第二数据包可以满足所述预定条件。

在一些实施方式中,对于所述第一节点中的任意两个,从所述两个第一节点接收的所有第二数据包的集合可以被分配给所述第一分配中的至少两个不同的相邻节点。

在一些实施方式中,所述方法还可以包括确定所述第二数据包到所述相邻节点的固定集合的第二分配,所述第二分配是对所述第一分配的重新布置,用于平衡所述节点的输出接口处的流量。

在一些实施方式中,确定所述第二子映射可以包括以下步骤:对于所述集合中的一个或多个数据包中的每一者:确定所述数据包中继转发到相邻节点的下一个中继转发排定时间(scheduled time);以及在所述下一个中继转发排定时间之后的预定量的时间内中继转发所述数据包。

在一些实施方式中,所述预定量的时间可以是所述第一时间段的倍数。

在一些实施方式中,所述方法还可以包括设置可以从所述一个或多个第一节点中的每一者接收的数据包的最大数量。

本申请进一步描述了一种计算设备,所述计算设备参与用于将实体的内容发送到区块链的流程,其中,所述计算设备被配置为执行本文所述的一种或多种方法的操作。

本申请进一步描述了一种非暂时性处理器可读介质,其存储有处理器可执行指令,以参与用于在节点网络中传播数据包的流程,其中,当所述处理器可执行指令由多个参与节点中的一个参与节点中的处理器执行时,促使所述处理器执行本文所述的一种或多种方法的操作。

本申请描述了用于在网络中提供节点级匿名化的(优选地是基于区块链的)解决方案。更具体而言,本文所述的方法和系统有助于混淆网络内的数据传播方案中的节点的功能。即使攻击者要监视网络中的节点间流量或获得对特定节点的相邻节点的访问权限,本方法也能使这种攻击者很难确定特定节点是在网络中传播的数据包的源节点还是中继节点。通过混淆区块链网络中节点的功能/作用,可以降低网络上去匿名化攻击的效力,且可以提高在区块链上或通过区块链发送数据的安全性。

在本文所述的许多示例性实施方式中,特别引用了区块链交易;然而,应当理解的是,本文所述的方法和设备可以结合非区块链交易传播来实现和应用。更一般而言,本公开中所述的方法和设备可以适用于在点对点网络的节点之间传播各种不同类型的数据。

附图说明

在本发明的一个方面或实施例中描述的任何特征也可以在一个或多个其他方面/实施例中使用。参考本文所述的实施例,本发明的这些和其他方面将变得显而易见。现在将仅通过举例的方式并参考附图来描述本发明的实施例,其中:

图1示出了与区块链相关联的示例性网络。

图2示意性地示出了具有输入缓冲器和输出缓冲器的示例性区块链节点。

图3是用于在示例性节点网络中传播交易的一种协议,即扩散混合协议(DMP)的示意图。

图4示出了根据DMP的节点网络中的交易中继转发的示例。

图5以流程图的形式示出了用于根据DMP在区块链网络中传播数据包的示例性流程。

图6以流程图的形式示出了用于根据DMP在区块链网络中传播数据包的另一示例性流程。

图7以流程图的形式示出了用于根据DMP在区块链网络中传播数据包的另一示例性流程。

图8以流程图的形式示出了用于发送在区块链网络中的节点处生成或接收到的数据包的示例性流程。

图9以流程图的形式示出了用于发送在区块链网络中的节点处生成的数据包的示例性流程。

图10以流程图的形式示出了用于中继转发在区块链网络中的节点处接收到的数据包的示例性流程。

图11示出了数据包在节点网络中传播的过程中的目的地混合的示例。

图12示出了节点网络中的数据包的延迟中继转发的示例。

图13以框图的形式示出了示例性区块链节点。

具体实施方式

在本申请中,“和/或”一词旨在涵盖所列元素的所有可能的组合和子组合,包括单独列出的元素中的任一者、任何子组合,或所有元素,不需要排除额外的元素。

在本申请中,短语“…或…中的至少一者”旨在涵盖所列出的元素中的任何一个或多个,包括单独列出的元素中的任一者、任何子组合,或所有元素,不需要排除任何额外的元素,也不一定需要所有元素。

首先将参考图1,图1以框图的形式示出了与区块链相关联的示例性网络,其在本文中可以被称为区块链网络100。区块链网络100是不需要其他成员邀请或同意,任何人都可以加入的点对点开放式会员网络。运行区块链协议的实例的分布式电子设备可以参与区块链网络100,区块链网络100按照区块链协议运行。这样的分布式电子设备可以被称为节点102。区块链协议可以是,例如,比特币协议或其他加密货币。

运行区块链协议并且形成区块链网络100的节点102的电子设备可以是各种类型,包括,例如,台式计算机、膝上型计算机、平板计算机、服务器之类的计算机,智能电话之类的移动设备,智能手表或其他电子设备之类的可穿戴式计算机。

区块链网络100的节点102使用适当的通信技术彼此耦接,所述通信技术可以包括有线和无线通信技术。在许多情况下,区块链网络100至少部分地通过互联网实现,并且一些节点102可以位于地理上分散的位置。

节点102维护区块链上分组到区块中的所有交易的全球分类帐,每个区块都包含链中前一个区块的散列。全球分类帐是分布式分类帐,并且每个节点102可以存储全球分类帐的完整副本或部分副本。节点102影响全球分类帐的交易由其他节点102验证,从而保持全球分类帐的有效性。本领域普通技术人员将理解实现和操作区块链网络(例如,使用比特币协议的区块链网络)的细节。

每笔交易通常具有一个或多个输入和一个或多个输出。嵌入到输入和输出中的脚本指定了如何以及由谁访问交易的输出。交易的输出可以是地址,作为交易结果的值被转移到此地址。然后将此值与此输出地址相关联,作为未花费的交易输出(UTXO)。然后,随后的交易可以将此地址引用为输入,以花费或分配(disperse)此值。

节点102可以执行从网络路由到钱包服务的许多不同功能,以维护健壮(robust)而安全的分散的公共账本。“全节点(Full node)”包含区块链的完整且最新的副本,因此,可以验证公共分类账上的任何交易(已花费或未花费)。“轻量级节点”(或SPV)维护区块链的子集,并可以使用“简化的支付验证”技术来验证交易。轻量级节点仅下载区块的标头,而不下载每个区块内的交易。因此,这些节点依赖于对等方(peer)来验证它们的交易。“开采节点”可以是全节点或轻量级节点,负责确认交易并在区块链上创建新区块。通常为轻量级节点的“钱包节点”处理用户的钱包服务。节点102使用TCP/IP(传输控制协议)等面向连接的协议(connection-oriented protocol)彼此通信。

当节点希望将交易发送给对等方时,会向对等方发送“INVENTORY(库存)”消息,以发送对发送节点而言已知的一个或多个库存对象。如果对等方以“GETDATA(获得数据)”消息(即,完整的交易请求)答复,则使用“TRANSACTION(交易)”消息来发送交易。假定是有效交易,则接收交易的节点以相同的方式将其转发给其对等方。

现在参考图2,图2示意性地示出了具有输入缓冲器202和输出缓冲器204的示例性节点200。示例性节点200具有带有多个对等节点的网络接口,被称为intA、intB、intC、intD等。输入缓冲器202示出了来自各个对等节点的输入交易,并且输出缓冲器204示出了与交易相对应的输出网络数据包,以通过相应的接口发送到对等节点。根据节点200的操作系统提供的原语(primitive),在应用级别(application-level)上串行发送和接收网络数据包。假定交易x适合单个以太网/IP数据包,则将其发送到m个对等方需要缓冲m个不同的输出网络数据包。输入和输出网络数据包,以及其他信息,都将包含串行交易和逻辑接口ID,逻辑接口ID表示与发送/接收对等方的TCP/IP连接。

一旦生成交易,源节点就通过网络广播交易消息。一般而言,当客户端生成交易时,将其置于输出缓冲器204中。交易可以立即或可以不立即转发给对等方。在节点网络的一些实施方式中,由称为“扩散传播”的机制来传播交易,由此每个交易源以独立的指数延迟将交易发送到其邻接者。传播中的延迟是随机的,且有助于在恶意攻击者的时间估计中引入不确定性。一旦对等方接收到某个交易,则对等方可能不接受同一交易将来被中继转发;例如,交易哈希(transaction hash)可以存储在对等方的内存池中,从而允许对等方拒绝相同的交易。通过网络进行的交易“扩散”是对称的,这意味着转发节点不会使用有关相邻节点IP地址的信息来影响交易广播。例如,在“标准”扩散流程中,广播节点的对等方都接收同一交易,并且在每个中继转发实例中,每个对等方一次仅中继转发一笔交易。这种“扩散”的对称性质可能会被了解网络的点对点图结构的恶意的第三方利用来进行去匿名化攻击。

本公开提供用于区块链网络上的交易中继转发的替代技术,以提高针对流量分析攻击的保护。更具体而言,所提出的中继转发协议可以用于掩饰、隐藏或混淆交易的源节点与它们的IP地址之间的连接。

提出了一种交易中继转发协议,即扩散混合协议(DMP)。DMP包括两个独立的扩散阶段。第一阶段(“随机差分中继转发”或RDR)允许将中继转发的交易混合以及对交易源进行混淆。在随机差分中继转发阶段,每个节点在向网络广播交易之前等待预定义量的时间,以从其对等方接收并收集多个交易。然后,节点创建连接到其“入口节点”的输出连接,并且将具有近似相同时间戳的不同交易发送到任意(例如,随机地)选择的这些入口节点的子集。节点的各入口节点是可以从此节点建立直接输出连接的那些相邻节点。入口节点选择的随机性和中继转发的交易的多样性可能使攻击者更难以重构网络拓扑。

第二阶段(“标准扩散”)确保网络内交易的及时而可靠的传播。在标准扩散阶段,每个节点将同一交易中继转发到其所有入口节点,并且在每个中继转发实例中,每个入口节点一次仅中继转发一笔交易。

应当注意的是,在区块链网络之类的节点网络中,一个或多个节点可能能够实现DMP。具体而言,网络中的一个或多个节点可能能够通过参与DMP将其接收到的数据包中继转发到其入口节点。参与节点可以,例如,在RDR流程和标准扩散流程之间进行选择,以传播特定的数据包。网络中的节点可以选择参与DMP,通过分散的方式或通过加入由中央授权机构(central authority)组装的一组参与节点来加入协议。参与节点根据DMP中继转发其输出网络数据包。具体而言,如果参与节点接收到数据包,则此节点可以使用由DMP规定的规则,根据为此节点选择的传播模式来转发接收到的数据包。

参照图3至图7描述了所提出的用于交易中继转发的DMP。图3提供了DMP的示意性可视化表示。图中示出了节点的示例性区块链网络300。每个节点代表一个网络终端(即区块链节点),而边线则代表节点之间的链接。出于说明的目的,假设对于每个链接,可以一次发送或接收单个比特。

在此示例性网络300中,每个节点维护一组未确认的交易,使得当节点接收到新的交易时,它通过网络传播到所有其他节点。每个节点将确认新交易并将它们存储在它们各自的本地集合中,并将新交易转发到尚未拥有新交易的任何对等节点。由于区块链网络300的点对点性质,所有节点不会同时接收新交易,这意味着新交易要花费一些时间才能到达网络300中的所有节点。

图3示出了用于传播特定交易Tx1的DMP的两个阶段,即随机差分中继转发302和用于Tx1的标准扩散304。交易Tx1的源节点310可以在时间t1生成交易Tx1或从对等节点接收交易Tx1。根据DMP,源节点310在开始广播所接收/排队的交易之前,等待从其相邻节点接收至少一个输入交易。在图3所示的示例中,一旦交易Tx2在时间t2被源节点310接收到,交易Tx1和Tx2就在时间t3被发送到任意选择的源节点310的入口节点的子集。交易Tx1被转发到入口节点310c和310d,而交易Tx2被转发到入口节点310a和310b。图3所示的示例仅是说明性的;具体而言,源节点310可以在传播其任何接收到的交易之前等待接收两个以上的输入交易。

入口节点将接收到的交易中继转发到它们自己的对等方。例如,节点310b和310d分别将交易Tx2和Tx1转发到它们的相邻节点中的一个或多个。在DMP中,交易的每个接收者都独立选择所接收到的交易的传播模式。节点320是选择标准扩散作为其扩散模式的节点的示例。如图3所示,节点320将同一交易Tx1转发到其所有入口节点,即320a、320b、320c、320d,以及320e。

现在参考图5,图5以流程图的形式示出了在DMP的RDR阶段中用于在网络中传播数据包的示例性方法500。方法500由,例如,区块链网络(诸如,网络100)的节点实现。在这种情况下,节点可以被理解为是指区块链网络中的开采节点、全节点、确认节点,或其他类型的离散区块链节点。节点是具有网络连接、计算资源以及实现区块链协议的执行软件的计算设备。

在操作502中,与节点相关联的客户端生成至少一个第一种类型的数据包。在区块链网络的环境中,第一种类型的数据包可以包括区块链交易。也就是说,客户端可以生成要传播到网络中的其他节点的区块链交易。

在操作504中,节点在第一时间段T内收集第一种类型的数据包的集合。也就是说,节点在一段时间内累积第一种类型的数据包。所述集合包括至少一个生成的数据包和从网络中的一个或多个对等节点接收到的至少一个第一种类型的数据包。以这种方式,节点生成的数据包与从相邻节点接收到的相同类型的那些数据包被混合在一起。在区块链网络中,在时间段T内,节点通过监视网络中要中继转发的输入交易来累积一组交易。时间段T的长度可以是预定义的。在一些示例性实施方式中,时间长度可以基于平均连接时间、每单位时间接收到的交易的平均数,或网络内节点的中心性(即,到节点的输入连接的数量)之类的参数而变化。在时间段T内,可以仅允许节点累积第一种类型的数据包,因此可以防止在时间段T的持续时间内发送第一种类型的任何数据包。

在操作506中,所述节点任意选择其入口节点的子集,收集到的数据包的不同集合将被转发到所述入口节点。更具体而言,对于收集到的数据包集合中的每个数据包,节点任意选择其入口节点中的两个或更多个(即,相邻节点,所述节点具有其输出连接),并将所述数据包分派给所选择的入口节点。例如,可以随机选择入口节点。在一些实施方式中,节点可以查询网络,以获得其对等方的新地址。例如,在比特币网络中,节点可以查询嵌入到比特币核心、比特币J或其他区块链协议中并由比特币(或其他区块链)社区成员维护的一个或多个数据库源名称(DSN)。作为响应,所述节点将获得一个或多个DSN记录,这些记录显示可以接受输入连接的可用全节点的IP地址。可以通过让对等方向加入网络的新节点发送包含它们的IP地址和端口号的“ADDR”消息来实现分散版本的对等方发现(peer discovery)。

在一些实施方式中,作为操作506的一部分,网络中的一个或多个节点可以维护表格或其他数据结构,所述表格或其他数据结构跟踪其将每个收集到的数据包分派给所述数据包应当被中继转发至的入口节点。图4示出了在区块链网络中的DMP的RDR阶段中用于源节点410的交易中继转发的示例。表格1是将收集到的交易Tx1-Tx5分派给源节点410的入口节点的示例性分派。入口节点表示为节点A、B、C、D、E、F、G和H。如图4和表格1所示,源节点410将每笔交易中继转发到至少两个入口节点,并且可以通过同一节点中继转发多笔交易。例如,交易Tx3、Tx4以及Tx5都通过入口节点E被同时中继转发。更一般而言,在RDR流程中,转发节点可以将多个数据包同时中继转发到同一对等节点。在给定的DMP实例中,并非所有入口节点都从源节点410接收交易。在表格1的示例中,入口节点C和G没有从源节点410接收任何交易。

表格1

交易/节点 中继转发1 中继转发2 中继转发3
Tx1 节点A 节点D 节点H
Tx2 节点E 节点B 节点F
Tx3 节点E 节点A 节点H
Tx4 节点B 节点E
Tx5 节点E 节点F

再次参考图5,对于每个收集到的数据包,在操作508中,节点将数据包发送到每个(任意地或随机地)选择的入口节点。每个选择的入口节点被配置为使用为此入口节点随机选择的数据传播模式将数据包中继转发到网络中的一个或多个第二节点(例如,入口节点的对等方)。也就是说,每个选择的入口节点使用为此入口节点独立选择的传播模式将接收到的数据包转发到其自身的一个或多个对等方。在图4所示的示例***易中继转发中,交易Tx1-Tx5中的每笔交易被转发到分派了交易的入口节点。

然后,从源节点410接收交易的每个节点随机选择传播/扩散的模式,以用于将接收到的交易转发到其对等节点中的一个或多个(如果有的话)。具体而言,接收交易的入口节点在根据标准扩散流程还是RDR流程中继转发交易之间随机选择。这两个选项之间的选择是随机的。因此,在DMP中,两个扩散流程有概率性地交替,即在RDR阶段和标准扩散阶段之间没有明显的分离。因此,通过这种扩散流程的“混合”,攻击者基于识别通过随机数据传播或通过标准扩散来中继转发节点集合之间的分离来重构网络拓扑变得更加困难。

在一些实施方式中,入口节点对扩散模式的随机选择可以包括除了中继转发的数据包之外,还从源节点接收其他消息。然后,入口节点可以生成随机值(例如,随机数),将其附加到接收到的消息中,并且,例如,使用SHA-256对结果进行哈希处理。然后,入口节点可以检查哈希值且随后基于关于哈希值的预定规则来获得扩散模式(例如,如果哈希的最终字符是数字,则选择RDR作为扩散模式)。可替代地或另外,扩散模式的选择可以使用任何随机化流程(例如,随机数发生器)来完成,其中,选择一个模式的概率可以大于选择另一个模式的概率,这取决于诸多因素,例如,输入和/或输出连接的数量、每单位时间接收到的数据包的平均数等。

在传播特定数据包时,可能期望在传播节点的匿名性保护级别与整体传播速度之间取得平衡。如果用于确保一定程度的匿名性的措施过于繁琐(例如,需要太多的网络资源,故意不充分利用网络节点来中继转发数据包等),则网络在及时分发数据方面的功效可能会受到损害。因此,在一些实施方式中,可以对中继节点对传播模式的随机选择进行加权。具体而言,可以将不同的概率分派给两种或更多种传播模式(即RDR、标准扩散等)中的每一种,以使这些概率反映数据传播匿名性和数据传播速度的比例重要性(proportionalsignificance)。例如,在某些情况下,较高的预定义概率可能与特定网络中的节点的RDR模式相关联,反映出对保留所传播数据的匿名性的更大的重视度。

图5所示的方法500由生成其自身的第一种类型的数据包的节点来实现。具体而言,参与DMP并生成数据包以传播到网络中的其余部分的节点执行方法500。图6示出了由中继节点或者转发或中继转发由不同节点生成的数据包的节点执行的示例性流程。也就是说,中继节点是这样的节点,在中继转发特定数据包期间,其自身不生成要转移的数据,而是起到“中继转发”数据包的作用。在操作550中,中继节点独立地选择其自身的数据传播模式。中继节点可以,例如,在RDR模式和标准扩散模式之间选择。如果选择了标准扩散模式(可以在操作552中确定),则在操作554中,中继节点将数据包转发到其所有入口节点。在图6所示的示例中,传播模式在两个可能的选项之间选择;此示例不是限制性的,而是在其他示例中,可以存在三种或更多种可能的传播模式。在方法500中,如果选择的模式是RDR(可以在操作552中确定),则中继节点执行与图5所示的操作504、506以及508相对应的步骤556、558以及560。

现在将参考图7,图7以流程图的形式示出了用于在网络中传播数据包的示例性流程600。可以在具有连接到区块链网络的其他节点的多个输入连接和输出连接的区块链节点处实现流程600。

流程600的操作602、604、606以及610分别对应于方法500的操作502、504、506以及508。在操作608中,节点在操作610中将收集到的数据包发送到其被分派的入口节点之前,确定是否已经满足触发条件。具体而言,响应于检测到已满足合适的触发条件来执行数据包的发送。当不满足触发条件时,节点继续收集第一种类型的数据包,而不会将任何所述数据包中继转发到其入口/对等节点。

可以采用触发条件来指示节点收集足够数量的输入数据包和/或在足够量的时间内收集输入的数据包。例如,可以基于定义的阈值来确定充足性。通过在,例如,同时将多个输入的数据包传播到网络中的对等节点之前收集所述多个输入的数据包,监视源于此节点的中继转发流量的攻击者可能无法轻松地将此节点识别为被中继转发的数据包的正确的来源。

在一些实施方式中,触发条件可以是自节点在操作602中生成至少一个第一种类型的数据包的时间以来的预定持续时间的期满。也就是说,可以将节点设计为在预定时间段内监视和收集输入的数据包(例如,交易),所述预定时间段从节点生成相同类型的数据包开始,然后再由节点传播所述数据包中的任一者。此条件可能有助于尝试确保在收集到更多可以同时广播的相同类型的数据包之后,传播由节点生成的数据包,从而使攻击者难以正确地将节点识别为所生成的数据包的来源。

在一些实施方式中,触发条件可以是自从节点的对等方接收到至少一个第一种类型的输入的数据包中的第一个的时间以来的预定持续时间的期满。也就是说,可以将节点设计为在预定时间段内监视和收集输入的数据包,所述预定时间段是从接收到此类输入的数据包中的第一个时开始的。此条件可能有助于尝试确保在向网络的其余部分广播之前,此节点收集到了更多的数据包(由节点本身生成的数据包或从其他对等方接收到的数据包)。

在一些实施方式中,触发条件可以是在第一时间段内收集到的数据包的数量达到阈值数量。具体而言,可以将此节点设计为监视和收集输入的数据包,直到第一时间段期满或此节点收集到了预定阈值数量的数据包这两者中的较早者为止。

随机差分中继转发的启发法(Heuristics)

如上所述,随机差分中继转发表示与用于在节点网络中传播交易的“标准扩散”协议的背离。在实施RDR时,传播节点会将不同的交易同时中继转发到随机选择的入口节点子集。传播节点可以通过向交易应该被中继转发至的一个或多个入口节点随机分派每个收集到的交易来创建数据结构,例如,表格1中所示的数据结构。更一般而言,将数据包中继转发到其对等方的网络节点可以维护其自身的内部路由数据结构,所述内部路由数据结构指定针对由此节点收集到(即,接收到的或本地生成的)的多个数据包中的每一者执行的中继转发的类型。

在本文提出的扩散混合协议的环境下,实现RDR的区块链网络中的每个节点可以独立地构建其自身的路由数据结构或“RDR表格”。RDR表格为采用RDR协议的每个节点定义交易分配方案。也就是说,单个节点的RDR表格用于管理将哪些交易中继转发到哪个对等方以及何时中继转发。RDR表格可以跟踪在给定量的时间(ΔTRDR)内接收到或生成的所有交易,以及交易的来源对等方。RDR表格可以包括额外的信息,例如:交易的第一个实例的到达时间(“ToA时间戳”);所选择的用于对交易进行中继转发的时间(“ToR时间戳”);和/或节点接收到的同一交易的实例的数量的计数器。下文提供了示例性RDR表格。

表格2

交易ID 来源 目的地 数据
tx<sub>1</sub> a,b,d c,e
tx<sub>2</sub> [local(本地)] a,c,e
tx<sub>3</sub> d,e a,b

随着新信息(超时值、接收到或生成的交易)可用,节点的本地RDR表格可以动态(即实时)更新。本公开提供了各种启发法或“子系统”,它们有助于构建和更新各个RDR表格。这些子系统可以被视为规则或准则的集合,可用于更新RDR格表中指定的交易分配。这些子系统中包含的策略在增强交易源混淆和平衡由单个节点的中继转发操作生成的网络流量方面可能很有用。所提出的子系统集合,即来源混合、中继转发混合、目的地混合、到达时间混合,以及来源控制,可以并行作业,而负载平衡模块可用于合并收集到的交易中继转发信息和提供网络资源的优化分配。

现在参考图8,图8以流程图的形式示出了用于发送在网络中的节点处生成或接收到的数据包的示例性方法700。方法700表示根据交易分配方案在网络中传播数据的技术,所述交易分配方案符合所提出的子系统/启发法中的至少一者的规则。方法700由,例如,区块链网络(诸如,图1所示的网络100)的节点来实现。更具体而言,方法700由参与DMP并且被配置为生成或接收第一种类型的数据包(例如,交易)以传播到网络的其余部分的节点执行。

在操作702中,与节点相关联的客户端生成至少一个第一种类型的数据包。数据包可以,例如,包括区块链交易。

在操作704中,节点在第一时间段T内收集第一种类型的数据包的集合。也就是说,节点在一段时间内累积第一种类型的数据包。所述集合包括至少一个生成的数据包和从网络中的一个或多个对等节点接收到的至少一个第一种类型的数据包。以这种方式,节点生成的数据包与从相邻节点接收到的相同类型的那些数据包被混合在一起。

在操作706中,确定收集到的集合中的数据包到连接到此节点的多个相邻节点的映射。此映射指示所述集合中的每个数据包到相邻节点的中继转发预期时间。此“映射”用于为网络节点构造单个本地RDR表格。本公开中所述的一个或多个子系统/启发法可以有助于(并行地或独立地)构造RDR表格。具体而言,可以在确定收集到的数据包到相邻节点的映射中应用一个或多个不同的子映射。子映射可以是至少两种不同的类型。第一种类型的子映射分配具有相同来源(即,始发节点)的任意两个数据包,以中继转发到相邻节点的不同子集。将在下文中更详细描述的“来源混合”和“中继转发混合”子系统是所述第一种类型的子映射的示例。第二种类型的子映射将不同的中继转发预期时间分派给在相同时间间隔内在节点处生成或由节点从对等节点接收到的任意两个数据包。“到达时间混合”子系统是所述第二种类型的子映射的示例。

在操作708中,一旦确定了收集到的集合中的数据包到相邻节点的映射,就根据所确定的映射将所述数据包发送到相邻节点。

将理解的是,各个子系统可以被独立地实现,以更新在RDR表格中定义的交易分配。也就是说,每个子系统可以独立于其他子系统而被单独用于RDR表格。因此,各个子系统可以提供将交易分配给中继节点的不同方式,并且因此提供用于交易传播的不同技术。

来源混合

来源混合子系统的基本原理是,应该将节点本地生成的交易发送到对等方的非重叠子集。举例而言,如果节点x生成两笔交易txi和txi+1,则为中继转发这些交易而选择的对等方集合,分别表示为S(txi)和S(txi+1),满足

S(txi)≠S(txi+1)

也就是说,用于两笔后续交易的对等方集合中至少有一个对等方不同。这种不等性有助于使对节点处生成的交易的初始中继转发的模式的任何恶意搜索复杂化。可以将这个概念扩展到δSM度的来源混合,如下所示:

Figure BDA0002631606370000151

现在参考图9,图9以流程图的形式示出了用于发送在网络中的节点处生成的数据包的示例性方法800。方法800表示根据交易分配方案在网络中传播数据的技术,所述交易分配方案符合来源混合子系统/启发法的规则。方法800由,例如,区块链网络(诸如,图1所示的网络100)的节点来实现。更具体而言,方法800由参与DMP并生成第一种类型的数据包(例如,交易)以传播到网络中的其余部分的节点执行。

在操作802中,与节点相关联的客户端生成至少一个第一种类型的数据包。数据包可以,例如,包括区块链交易。

所述节点确定至少一个生成的数据包到其相邻节点(即,对等方)的第一映射。具体而言,选择对等方的多个子集,以中继转发在节点处生成的数据包。通过第一映射,每个数据包与中继节点的特定子集相关联。对于每个数据包,在操作804中,识别节点先前生成的预定数量的第一种类型的第一数据包。这些数据包可以是已由节点发送到对等方的数据包,也可以是先前生成但尚未中继转发到节点的对等方的数据包。

在操作806中,获得与第一数据包相关联的中继节点集合的列表。中继节点集合包括第一数据包分别被中继转发至(或被分配用于中继转发)的那些相邻节点(对等方)。也就是说,中继节点集合指示被分配有第一数据包中的单独的数据包的节点的对等方的子集。

在操作808中,基于识别与在操作806中获得的列表中的中继节点集合不同的相邻节点集合来选择第一中继节点集合。例如,可以通过任意选择未包括在所获得的中继节点集合列表中的两个或更多个相邻节点的集合来选择第一中继节点集合。在一些实施方式中,可以强加两个或更多个对等方选择的第一集合与所获得的列表中的中继节点集合不同的要求。也就是说,可以对属于位于所选择的第一中继节点集合与所获得的列表中的任一个中继节点集合之间的相交集合的元素数量设置上限。

方法800可以由节点在节点处生成单个数据包之后,或者由节点在节点收集多个生成的数据包之后执行。具体而言,节点可以在一段时间内(类似于DMP的RDR阶段)生成并累积第一种类型的数据包,并确定所累积的数据包到中继节点集合的第一映射。在这些情况下,可以将数据包分别分配给任意选择的中继节点的子集,从而确保没有两个这样的子集彼此相等。

可以任意确定入选第一中继节点集合的相邻节点的数量。在至少一些实施方式中,根据传播节点的带宽需求(例如,固定时间帧内的输入和输出数据的累积量)来限制为第一集合选择的对等方的数量。具体而言,可以调整为中继转发本地生成的交易而选择的对等方的数量,以解决网络负载问题或改善来源混淆。例如,包括在第一集合中的对等方的数量可以由下式定义:

m(txi)=mSM±rnd(ξSM)

其中,mSM是标称值,表示为来源混合子系统中的中继转发选择的对等方的平均数,且rnd(ξSM)表示0到ξSM-1之间的随机整数。

然后,可以在第一映射中设置与各自的数据包相关联的第一中继节点集合的选择。换句话说,第一映射可以指示数据包与第一中继节点集合相关联(即,被分配给第一中继节点集合)。在操作810中,根据所确定的第一映射来发送数据包。

中继转发混合

中继转发混合子系统基于这样的概念:节点接收到的交易应该被中继转发到节点对等方的非重叠子集。使用参数λ表示属于为同一节点接收到的两个不同交易选择的中继转发对等方之间的相交集合的元素数量,可以通过下式来捕获中继转发混合背后的概念(idea):

其中δRM是中继转发混合度。不等式(1)定义了一个交易分配问题,即找到满足不等式的中继节点的交易分配。因此,可以通过改变(1)中的参数λ来控制中继转发混合策略。一旦设置了λ,就会对交易分配问题的次优解(suboptimal solution)进行迭代搜索。中继转发混合子系统可能要求节点从其接收一笔或多笔交易的每个对等方pi满足不等式(1)。例如,可以使用从对等方pi接收到的最后的δRM交易

Figure BDA0002631606370000162

通过要求那些交易满足不等式(1)来实现中继转发混合。因此,在一些实施方式中,可以分别为每个对等方pi定义单独的参数λi。以这种方式,可以通过为节点从其接收交易的每个对等方p1,p2,...,pm创建用于交易中继转发的独立数据结构,从而识别所接收的交易到中继节点的分配来实现来源混淆。

可替代地,在其他实施方式中,参数λ可以是:唯一的系统参数;使用特定的时间窗口和存储在RDR表格中的信息来更新的时变参数λt;或对于每个对等方,使用特定的时间窗口和存储在RDR表格中的信息来更新的时变参数

通用对等方的交易分配组合的数量为

Figure BDA0002631606370000172

其中m为节点的对等方的数量,δRM为中继转发混合度,且x为针对中继转发而选择的对等方的平均数。对次优解的迭代搜索可以通过几种可能的方式进行:

·设置最大迭代次数,并选择相交对等方最少的交易分配

·设置最大迭代次数,但是如果达到相交对等方的给定阈值,则会更早中断此流程

·设置最大迭代次数,且如果不满足要求,则增加λ的值,然后使流程重新开始

·设置最大迭代次数,且如果不满足要求,则修改x的值,然后使流程重新开始

·设置最大迭代次数,且如果不满足要求,则减小m的值,然后使流程重新开始

如果将最大迭代次数替换为固定的时间窗口ΔTRM,则可以考虑另一套方法。

可以任意确定入选中继节点集合的相邻节点的数量。在至少一些实施方式中,根据传播节点的带宽需求(例如,固定时间帧内的输入和输出数据的累积量)来限制为所述集合选择的对等方的数量。具体而言,可以调整为中继转发本地生成的交易而选择的对等方的数量,以解决网络负载问题或改善来源混淆。例如,包括在第一集合中的对等方的数量可以由下式定义:

m(txi)=mRM±rnd(ξRM)

其中,mRM是标称值,表示为中继转发混合子系统中的中继转发而选择的对等方的平均数,且rnd(ξRM)表示0到ξRM-1之间的随机整数。在一些实施例中,ξSM和ξRM可具有相同的值。

现在参考图10,图10以流程图的形式示出了用于中继转发在网络中的节点处接收到的数据包的示例性方法900。方法900表示根据交易分配方案在网络中传播数据的技术,所述交易分配方案符合中继转发混合子系统/启发法的规则。方法900由,例如,区块链网络(诸如,图1所示的网络100)的节点来实现。更具体而言,方法900由参与DMP并接收第一种类型的数据包(例如,交易)以传播到网络的其余部分的节点执行。

在操作902中,与节点相关联的客户端接收至少一个第一种类型的数据包。数据包可以,例如,包括区块链交易。

所述节点确定至少一个接收到的数据包到其相邻节点(即,对等方)的第二映射。具体而言,选择对等方的多个子集,以中继转发在节点处生成的数据包。通过第二映射,每个数据包与中继节点的特定子集相关联。对于每个数据包,在操作904中,识别最近由节点接收到的预定数量的第一种类型的第二数据包。这些数据包可以是已由节点发送到对等方的数据包,也可以是先前接收到但尚未中继转发到节点的对等方的数据包。

在操作906中,确定第二数据包到相邻节点的固定集合的第一分配。具体而言,第一分配是从第二数据包到相邻节点的满足预定条件的一个或多个分配中选择的。此操作对应于对上述不等式(1)的次优解的迭代搜索。也就是说,在对满足(1)的中继节点的数据包的分配中,确定唯一的分配(例如,具有最少的相交对等方的分配)。如由(1)所捕获的,如果对于第二数据包中的任意两个,将两个所述第二数据包都分配(用于中继转发)给的相邻节点的数量小于或等于预定义的阈值,则将第二数据包分配给相邻节点的固定集合满足预定条件。

然后,可以在第二映射中设置在操作906中识别出的第二数据包到相邻节点的唯一分配。换句话说,第二映射可以指示第二数据包(即,节点从其对等方接收的数据包)分别被分配至的中继节点。在操作908中,根据所确定的第二映射来中继转发至少一个接收到的数据包。

方法900可以由节点在节点处接收到单个数据包之后,或者由节点在节点收集多个接收到的数据包之后执行。具体而言,节点可以在一段时间内(类似于DMP的RDR阶段)接收并累积第一种类型的数据包,并确定所累积的数据包到中继节点集合的映射。在这些情况下,可以将数据包分别分配给任意选择的中继节点的子集,从而确保没有两个这样的子集彼此相等。

目的地混合

目的地混合启发法捕获了以下概念:节点的输出连接应该执行由不同对等方中继转发的交易。这种启发法可以被视为是中继转发混合子系统的一种特殊情况,因为后者涉及为来自相同来源对等方的中继转发创建对等方的非重叠子集。在方法900中,可以通过在操作906中确保对于第一节点中的任意两个(即,节点从其接收数据包的节点),从所述两个第一节点接收到的所有第二数据包的集合分配给在第一分配中的至少两个不同的相邻节点来实现目的地混合。例如,图11示出了节点i的目的地混合的示例。目的地混合子系统可确保节点a在给定的时间窗口ΔTDM中不会接收由同一节点c中继转发的两个交易。因此,在节点i从节点c接收到的两个交易中只有一个被中继转发到节点a。

在一些实施方式中,对于每个时间窗口ΔTDM,可以在对等方的不同子集上实现目的地混合。例如,可以通过与所描述的用于使用参数(mDM,δDM,ξDM)进行来源混合的方式相似的方式来分配子集。此策略可以有助于实现对于给定的交易的来源和目的地的去相关。

到达时间混合

到达时间混合启发法实现了数据包的延迟中继转发,从而有助于实现与数据包中继转发有关的来源信息和目的地信息的去相关。例如,可以排定在时间窗口ΔTi中(例如,在DMP的RDR阶段中)收集(或生成)的数据包(例如,交易),以在ΔTi结束时进行中继转发(图12中的RDRi)。到达时间混合子系统使中继转发延迟了RDRi。在一些实施方式中,数据包的中继转发可以被延迟多个qΔTi,例如,RDRi、RDRi+1、RDRi+2等。因此,根据到达时间启发法,中继转发由节点接收到的(或生成的)数据包包括确定将接收到的数据包中继转发到相邻节点的下一个排定的时间,并在下一个排定的中继转发时间之后的预定量时间内中继转发数据包。在ΔTi内收集到的所有交易都可以在ΔTi+qΔT中继转发,或者在ΔTi内收集到的每笔交易j可以在给定的ΔTi+qjΔT被中继转发。

在某些示例中,随机变量q可以具有负指数概率密度函数,

pdfq(x)=c×e-(x+g)

其中c和g分别是乘法常数和加法常数。

来源控制

恶意对等方可能试图多次将同一数据包(或一组数据包)推送到给定节点i,以尝试在i的本地中继转发策略中找到模式。例如,恶意对等节点可创建到节点i的两个连接,并监视i的输入和输出流量如何关联。通过为可以从每个对等方接收到的数据包的数量设置特定的阈值来实现来源控制子系统。如果对等方超出给定数据包的阈值,则其连接将被永久或临时关闭。节点接收给定数据包(例如,区块链交易)的实例的数量可以存储在RDR表格中。

负载平衡

负载平衡可用于周期性地执行其他子系统已分配给对等方用于中继转发的数据包的混洗(shuffle)。负载平衡模块的目的是使对等方之间的中继转发分布平均化,以避免某些对等方连接中出现流量过载或单点故障。可以实现两种不同的负载平衡方法:

·每个数据包j不论大小(即输入数量、输出数量、解锁和锁定脚本大小)都具有相同的权重wj

·每个数据包j都具有自身的权重wj,与它的大小(以字节为单位)成比例

例如,在方法800中,可以确定第二数据包到相邻节点的固定集合的第二分配,所述第二分配是对第一分配的重新布置,以平衡节点的输出接口处的流量。可以为每个对等方i计算排定用于中继转发的数据包数量ni的累计值ci

随后,执行一种迭代方法,对数据包进行混洗以用于中继转发,并获得每个对等方的平均c*值:

Figure BDA0002631606370000202

可以使用各种不同的启发法来解决这种数据包混洗。例如,可以将不同的优先级分派给不同的子系统,以便预期数据包子集的中继转发或增强输出流量的负载平衡。此外,不同子系统的执行还会引入重复或不一致的数据包分配,这需要在激活中继转发之前加以解决。

现在将参考图13,图13以框图的形式示出了参与节点1000的简化示例。节点1000包括处理器1002,处理器1002可以包括一个或多个微处理器、专用集成芯片(ASIC)、微控制器,或类似的计算机处理设备。节点1000还包括内存1004和网络接口1006,内存1004可以包括持久性和非持久性内存,以存储各值、变量,并且在某些情况下,存储处理器可执行程序指令,网络接口1006用于提供通过有线或无线网络的网络连接。

节点1000包括处理器可执行区块链应用程序1008,处理器可执行区块链应用程序1008包含处理器可执行指令,当所述处理器可执行指令被执行时,促使处理器1002执行本文所述的功能或操作中的一个或多个。

将理解的是,可以使用标准计算机编程技术和语言来实现本文所述的设备和流程以及实现所述的用于配置区块链节点的方法/流程的任何模块、例程、流程、线程、应用程序或其他软件组件。本申请不限于特定处理器、计算机语言、计算机编程规范、数据结构,或其他这样的实现细节。

应当注意的是,上述实施例是说明而不是限制本发明,并且本领域技术人员在不脱离由所附权利要求书所限定的本发明的范围的情况下将能够设计许多替代实施例。在权利要求书中,括号中的任何附图标记都不应解释为对权利要求的限制。词语“包括(comprising)”和“包括(comprises)”等不排除任一项权利要求或整个说明书中列出的元件或步骤之外的元件或步骤的存在。在本说明书中,“包括(comprises)”是指“包括或由……组成”,且“包括(comprising)”是指“包括或由……组成”。元件的单数形式并不排除此类元件的复数形式,反之亦然。本发明可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举几个装置的设备权利要求中,这些装置中的几个装置可以由同一硬件来体现。在互不相同的从属权利要求中引用某些措施的事实并不意味着不能有利地使用这些措施的组合。

28页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于公开至少一个密码学密钥的方法和系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类