CN116318735A - 用于在节点的网络中传播数据分组的系统和方法 - Google Patents
用于在节点的网络中传播数据分组的系统和方法 Download PDFInfo
- Publication number
- CN116318735A CN116318735A CN202310302992.2A CN202310302992A CN116318735A CN 116318735 A CN116318735 A CN 116318735A CN 202310302992 A CN202310302992 A CN 202310302992A CN 116318735 A CN116318735 A CN 116318735A
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- data packets
- relay
- mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 114
- 230000001902 propagating effect Effects 0.000 title claims abstract description 25
- 238000013507 mapping Methods 0.000 claims abstract description 77
- 230000004044 response Effects 0.000 claims abstract description 15
- 239000013598 vector Substances 0.000 claims description 18
- 230000008569 process Effects 0.000 description 54
- 238000002156 mixing Methods 0.000 description 16
- 238000009792 diffusion process Methods 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000000644 propagated effect Effects 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 230000001010 compromised effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 101100378953 Emericella nidulans (strain FGSC A4 / ATCC 38163 / CBS 112.46 / NRRL 194 / M139) amdR gene Proteins 0.000 description 1
- 101100126165 Escherichia coli (strain K12) intA gene Proteins 0.000 description 1
- 101100126166 Escherichia coli (strain K12) intB gene Proteins 0.000 description 1
- 101100126167 Escherichia coli (strain K12) intD gene Proteins 0.000 description 1
- 101100126180 Escherichia coli (strain K12) intS gene Proteins 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W40/00—Communication routing or communication path finding
- H04W40/02—Communication route or path selection, e.g. power-based or shortest path routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
- G06F21/6254—Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Bioethics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
公开了在节点的网络中传播数据分组的方法,包括:在第一时间段期间收集第一数据分组的集合,该集合包括从第一节点接收的至少一个数据分组;生成第一映射,将用于中继的所述集合的第一数据分组分配给连接到该节点的一个或多个邻居节点;计算第一映射的去相关度量值;确定第一映射的去相关度量值是否满足第一条件;响应于确定第一映射的去相关度量值不满足第一条件,生成第二映射,将用于中继的所述集合的第一数据分组分配给连接到该节点的一个或多个邻居节点,第二映射定义与第一映射的分配不同的分配;计算第二映射的去相关度量值;以及响应于确定第二映射的去相关度量值满足第一条件,根据第二映射,将集合的第一数据分组传输到邻居节点。
Description
本申请是中国申请号为2019800325841(对应于PCT国际申请号PCT/IB2019/053826)、申请日为2019年5月9日、发明名称为“用于在节点的网络中传播数据分组的系统和方法”的发明专利申请的分案申请。
技术领域
本发明大体上涉及计算机网络,并且更具体地涉及在节点、电子通信和联网技术的网络中传播数据的方法和装置。它特别适合与区块链技术相关地使用。特别地,它涉及数据的安全传输,并且从而用于减少第三方进行的潜在的恶意事件(即攻击)。
背景技术
在本文档中,我们使用术语“区块链”来包括电子的基于计算机的分布式分类账(ledger)的所有形式。这些包括基于共识的区块链和交易链技术、许可的和未被许可的分类账、共享分类账及其变型。尽管已经提出并开发了其他区块链实现方式,但是区块链技术最广为人知的应用是比特币分类帐。尽管为了方便和说明的目的在本文中可能提及比特币,但是应当注意,本发明不限于与比特币区块链一起使用,并且替代的区块链实现和协议落入本发明的范围内。术语“用户”在本文中可以指人或者基于处理器的资源。术语“比特币”旨在包括源自(原始)比特币协议/实现/平台的协议/实现/平台的所有版本和变型。
区块链是一种点对点的电子分类帐,被实现为基于计算机的去中心化的分布式系统,该系统由区块组成,而区块又由交易组成。每个交易是一种数据结构,该数据结构对区块链系统中参与者之间的数字资产控制权的转移进行编码,并包括至少一个输入和至少一个输出。每个区块都包含前一个区块的哈希值,以使得区块被链接在一起来创建所有交易的永久、不可更改的记录,这些交易自其开始就已经被写入区块链。交易包含嵌入到其输入和输出中的称为脚本的小程序,这些小程序指定如何以及由谁可以访问交易的输出。在比特币平台上,这些脚本是使用基于堆栈的脚本语言编写的。
为了将交易写入区块链,必须对其进行“验证”。网络节点(矿工)执行工作以确保每笔交易有效,而无效交易则被网络拒绝。安装在节点上的软件客户端通过执行其锁定和解锁脚本来对未花费的交易输出(unspent transaction,UTXO)执行该验证工作。如果锁定和解锁脚本的执行评估为真,则该交易有效,并将该交易写入区块链。因此,为了将交易写入区块链,必须:i)由接收交易的第一节点验证该交易–如果交易经过验证,则该节点将其中继(relay)到网络中的其他节点;ii)将该交易添加到由矿工建造的新区块中;以及iii)该交易被挖掘,即,被添加到过去交易的公共分类帐中。
尽管区块链技术因使用加密货币实现方式而被广泛了解,但数字企业家已经开始探索使用比特币所基于的加密安全系统以及可以存储在区块链上的数据这两者以实现新系统。如果区块链可以被用于不限于加密货币领域的自动化任务和过程,那这将是非常有利的。这样的方案将能够利用区块链的好处(例如,事件的永久性、防篡改记录、分布式处理等),同时在其应用中具有更多用途。
区块链技术(例如,比特币)的公认优势之一是交易的匿名性。比特币用户的个人详细信息并未正式和明确地附加到比特币地址,并且区块链的比特币分类账仅包含公共地址信息。但是,由于区块链被构造为运行在互联网之上的分布式对等网络,因此交易的匿名性可能因攻击而受到损害,该攻击使用互联网协议(IP)地址信息将用户链接到网络活动。举例来说,在基于区块链的网络上进行的去匿名化攻击(例如,IP流量分析)可能使感兴趣的第三方能够监测由用户在网络上提交的交易,并能够使用可公开获取的信息将交易链接到其来源(source),例如,通过将用户的公钥与其IP地址链接起来。
对于基于区块链的网络而言,流量分析尤其成问题,该基于区块链的网络依赖于网络节点进行的交易的传播以及网络节点之间的交易的传播。网络中接收交易的每个节点都会验证交易,然后将其传输到对等节点。在比特币协议中,节点将向对等节点发送包含交易列表的“INV”消息,并接收“GETDATA”响应消息,该消息选择在“INV”消息中通告的交易的某个子集。然后,该节点将请求的交易发送到对等节点。针对该节点连接到的每个对等节点执行该过程。攻击者可能拦截和分析当在网络中传播交易时传输的数据,并最终获得信息,这些信息可用于链接交易的来源和目的地(destination)。
发明内容
期望提供用于在基于区块链的网络中传播交易的技术,该技术可以通过流量分析或其他类型的去匿名攻击来减少损害网络匿名性的可能性。更一般地,期望提供用于在对等网络的节点之间中继数据的技术以降低去匿名攻击的脆弱性。
现在已经设计出这样的方案。
因此,根据本发明,提供了如所附权利要求书中限定的方法和装置。
本发明可以提供一种在节点的网络中传播数据分组的计算机实现的方法。网络中的每个节点可以具有到其他节点的一个或多个连接。该方法可以包括:在第一时间段期间收集第一数据分组的集合,该集合包括从网络中的一个或多个第一节点接收的至少一个数据分组;生成第一映射,该第一映射将用于中继的所述集合的第一数据分组分配给连接到该节点的一个或多个邻居节点(neighbouring nodes);计算第一映射的去相关度量值;以及确定第一映射的去相关度量值是否满足第一条件。响应于确定第一映射的去相关度量值不满足第一条件,该方法还可以包括:生成第二映射,该第二映射将用于中继的所述集合的第一数据分组分配给连接到该节点的一个或多个邻居节点,第二映射定义与第一映射的分配不同的分配;计算第二映射的去相关度量值;以及响应于确定第二映射的去相关度量值满足第一条件,根据第二映射来将所述集合的第一数据分组传输到邻居节点。
在一些实现方式中,第一映射可以指示该集合的每个第一数据分组到邻居节点的中继的预期时间,并且生成第一映射可以包括确定以下至少一项:第一子映射,其将用于中继的具有相同的来源任意两个数据分组分配给一个或多个邻居节点的不同子集;以及第二子映射,其将中继的不同的预期时间分配给任意两个数据分组,所述任意两个数据分组是在同一时间间隔内在节点处生成的或由所述节点从一个或多个第一节点接收的。
在一些实现方式中,生成第二映射可以包括:对于该集合的至少一个第一数据分组,确定邻居节点的第一集合,所述至少一个第一数据分组通过第一映射被分配给邻居节点以用于中继;选择与第一集合不同的邻居节点的第二集合,该第二集合具有与第一集合相同的基数(cardinality);以及将用于中继的至少一个第一数据分组分配给邻居节点的第二集合。
在一些实现方式中,该方法还可以包括:对于该集合的任意两个不同的第一数据分组,获得两个第一数据分组通过第一映射被分别分配至的邻居节点的集合之间的相似性的测度;以及响应于确定相似性的测度满足第二条件,生成该集合的第一数据分组到一个或多个邻居节点的第三映射。
在一些实现方式中,邻居节点的集合可以表示为向量(vector),并且相似性的测度包括邻居节点的集合的向量表示之间的余弦相似性。
在一些实现方式中,确定相似性的测度满足第二条件可以包括确定余弦相似性落在预定值范围之外。
在一些实现方式中,在计算第一映射的去相关度量值之前,可以获得邻居节点的集合之间的相似性的测度。
在一些实现方式中,确定第一映射是否满足第一条件可以包括:计算第一映射的去相关度量值S(R,n)与第一去相关度量值Snc(R,n)之间的差,基于在第一时间段期间收集的第一数据分组的总数和通过第一映射分配给一个或多个邻居节点中的相应邻居节点的第一数据分组的数量来计算第一映射的去相关度量值;以及将计算的差与预定义的阈值差进行比较。
在一些实现方式中,第一映射的去相关度量值可以被计算为
其中,ci表示通过第一映射分配给相应邻居节点的第一数据分组的数量,n表示一个或多个邻居节点的总数,并且R表示在第一时间段期间收集的第一数据分组的总数。
在一些实现方式中,第一去相关度量值可以被计算为
Rn=Rmodn
其中,n表示一个或多个邻居节点的总数,并且R表示在第一时间段期间收集的第一数据分组的总数。
在一些实现方式中,该方法还可以包括:在数据库中存储:生成用于中继的所述集合的第一数据分组到一个或多个邻居节点的新映射的迭代计数;与计算的同第一去相关度量值的最小差相关联的当前去相关度量值;以及与当前去相关度量值相关联的当前映射。
在一些实现方式中,该方法还可以包括:确定迭代计数是否等于预定义的次数;以及响应于确定迭代计数等于预定义的次数,根据当前映射将所述集合的第一数据分组传输到邻居节点。
在一些实现方式中,该方法还可以包括:响应于确定第一映射的去相关度量值满足第一条件,根据第一映射将所述集合的第一数据分组传输到邻居节点。
本发明可以提供用于执行如上或本文其他地方所限定的方法的计算机实现的系统。
本发明可以提供一种存储处理器可执行指令的非暂时性处理器可读介质,其中,处理器可执行指令在由处理器执行时,使处理器执行如上文或本文其他地方所限定的方法。
在本文所述的许多示例实现方式中,具体参考了区块链交易;然而,应了解,本文中所描述的方法和装置可结合非区块链交易传播来实施和应用。更一般地,本公开中描述的方法和装置可以适用于在对等网络的节点之间传播各种不同类型的数据。
附图说明
本发明的这些和其他方面将从本文描述的实施例变得显而易见并参考这些实施例而阐明。现在将仅通过示例的方式并参考附图来描述本发明的实施例,在附图中:
图1示出了与区块链相关联的示例网络。
图2示意性地示出了具有输入缓冲器和输出缓冲器的示例区块链节点。
图3是用于在节点的示例网络中传播交易的协议(扩散混合器协议(DMP))的示意图。
图4示出了根据DMP的节点的网络中的交易的中继的示例。
图5以流程图形式示出了根据DMP用于在区块链网络中传播数据分组的示例过程。
图6以流程图形式示出了根据DMP用于在区块链网络中传播数据分组的另一示例过程。
图7以流程图形式示出了根据DMP的用于在区块链网络中传播数据分组的另一示例过程。
图8以流程图形式示出了用于传输在区块链网络中的节点处生成或接收的数据分组的示例过程。
图9以流程图形式示出了用于传输在区块链网络中的节点处生成的数据分组的示例过程。
图10以流程图形式示出了用于中继在区块链网络中的节点处接收的数据分组的示例过程。
图11示出了节点的网络中的数据分组的传播中的目的地混合的示例。
图12示出了节点的网络中的数据分组的延迟中继的示例。
图13以流程图形式示出了用于将数据分组中继到对等节点的示例过程。
图14以流程图形式示出了用于将数据分组中继到对等节点的另一示例过程。
图15A-15C示出了用于生成中继到对等节点的分配的示例算法。
图16以框图形式示出了示例区块链节点。
具体实现方式
在本申请中,术语“和/或”旨在涵盖所列元件的所有可能的组合和子组合,包括单独列出的任一元件、任何子组合或所有元件,而不必排除附加元件。
在本申请中,短语“……或……中的至少一个”旨在涵盖所列的元件中的任何一个或更多个,包括单独列出的任一元件、任何子组合或所有元件,而不必排除任何附加元件,也不必需要所有元件。
首先将参考图1,其以框图形式示出了与区块链相关联的示例网络,该示例网络在本文中可被称为区块链网络100。区块链网络100是对等开放成员网络(peer-to-peer openmembership network),任何人都可以加入,而无需邀请或无需经其他成员的同意。运行区块链协议的实例的分布式电子装置可以参与到区块链网络100中,区块链网络100在该区块链协议下运行。这种分布式电子装置可以被称为节点102。区块链协议可以是例如比特币协议或其他加密货币。
运行区块链协议并且形成区块链网络100的节点102的电子装置可以是各种类型,包括例如诸如台式计算机、膝上型计算机、平板计算机、服务器之类的计算机,诸如智能电话之类的移动装置,诸如智能手表或其他电子装置之类的可佩戴计算机。
使用适当的通信技术将区块链网络100的节点102彼此耦合,该通信技术可以包括有线通信技术和无线通信技术。在许多情况下,区块链网络100至少部分地在互联网上实现,并且一些节点102可以位于地理上分散的位置。
节点102维护被分组成区块的区块链上的所有交易的全局分类帐,每个区块都包含链中前一个区块的哈希值。全局分类帐是分布式分类帐,并且每个节点102可以存储全局分类帐的完整副本或部分副本。影响全局分类帐的通过节点102的交易由其他节点102验证,从而全局分类帐的有效性得到维护。本领域的普通技术人员将理解实现和操作区块链网络(诸如使用比特币协议的区块链网络)的细节。
每个交易通常具有一个或多个输入和一个或多个输出。嵌入到输入和输出中的脚本指定如何访问交易的输出以及由谁访问交易的输出。交易的输出可以是值作为交易的结果而被转移到的地址。然后将该值与该输出地址相关联,作为未花费的交易输出(UTXO)。然后,后续交易可以引用该地址作为输入,以花费或分散(disperse)该值。
节点102可以履行从网络路由到钱包服务的许多不同功能,以维护鲁棒且安全的去中心化公共分类账。“全节点”包含区块链的完整且最新的副本,并且因此可以验证公共分类账上的任何交易(已花费的或未花费的)。“轻量级节点”(或SPV)维护区块链的子集,并可以使用“简化支付验证”技术来验证交易。轻量级节点仅下载区块的区块头(header),而不下载每个区块内的交易。因此,这些节点依靠对等方(peer)来验证其交易。“挖掘节点”可以是全节点或轻量级节点,它们负责验证交易并在区块链上创建新区块。通常为轻量级节点的“钱包节点”处理用户的钱包服务。节点102使用诸如TCP/IP(传输控制协议)等面向连接的协议来彼此通信。
当节点希望向对等方发送交易时,会向对等方发送“INVENTORY(库存)”消息,传输对于传输节点而言已知的一个或多个库存对象。如果对等方以“GETDATA(得到数据)”消息进行答复(即完整的交易请求),则使用“TRANSACTION(交易)”消息发送交易。假定它是有效交易,则接收交易的节点以相同的方式将其转发给其对等方。
现在参考图2,其示意性地示出了具有输入缓冲器202和输出缓冲器204的示例节点200。示例节点200具有与多个对等节点(被称为intA、intB、intC、intD等)的网络接口。输入缓冲器202示出了来自各个对等节点的传入交易(incoming transaction),并且输出缓冲器204示出了与交易相对应的输出网络分组,以便通过相应的接口传输到对等节点。根据节点200的操作系统提供的原语(primitive),在应用程序级别上串行发送和接收网络分组。假定交易x适合单个以太网/IP数据分组,则其到m个对等方的传输需要缓冲m个不同的输出网络分组。输入网络分组和输出网络分组两者以及其他信息将包含序列化的交易和表示与发送/接收对等方的TCP/IP连接的逻辑接口ID。
一旦生成比特币交易,源节点就通过网络广播交易消息。通常,当客户端生成交易时,将该交易放入输出缓冲器204中。可以将该交易立即或可以不立即转发给对等方。在比特币网络的当前实现方式中,交易通过被称为“扩散传播”的机制进行传播,由此每个交易源以独立的指数特性延迟将交易传输到其邻居。传播中的延迟是随机的,并且可用于在恶意攻击者的时间估计中引入不确定性。一旦对等方接收到某个交易,则该对等方就可能会不接受同一交易的未来中继;例如,交易哈希值可以存储在对等方的内存池中,从而允许对等方拒绝相同的交易。通过网络进行的交易“扩散(diffusion)”是对称的,这意味着转发节点不会使用影响交易广播的有关邻居节点的IP地址的信息。例如,在“标准”扩散过程(在比特币协议中使用)中,广播节点的对等方都接收相同的交易,并且在每个中继实例中,每个对等方一次仅中继一个交易。已经了解网络的点对点图结构的恶意的第三方在进行去匿名化攻击时可以利用这种“扩散”的对称性质。
本公开提供用于区块链网络上的交易中继的替代技术,以提高针对流量分析攻击的保护。更具体地,提出的中继协议可以用于掩盖、隐藏或模糊交易的源节点与其IP地址之间的连接。
提出了一种交易中继协议,即扩散混合器协议(DMP)。DMP包括两个独立的扩散阶段。第一阶段(“随机差分中继”或RDR)允许中继的交易混合以及交易源的模糊。在随机差分中继阶段期间,每个节点在向网络广播交易之前要等待预限定的时间量,以从其对等方接收并收集多个交易。然后节点创建到其“入口节点”的外发连接(outgoing connection),并且将具有近似相同时间戳的不同交易发送到这些入口节点的任意(例如,随机地)选择的子集。节点的入口节点是能够从该节点建立的直接外发连接所连接至的那些邻居节点。入口节点的选择的随机性和中继的交易的多样性可以使攻击者更难以重构网络拓扑。
第二阶段(“标准扩散”)确保网络中交易的及时且可靠的传播。在标准扩散阶段中,每个节点将相同的交易中继到其所有入口节点,并且在每个中继实例中,每个入口节点一次仅中继一个交易。
应当注意,在诸如区块链网络之类的节点的网络中,一个或多个节点能够实现DMP。具体而言,网络的一个或多个节点能够通过参与DMP来将其接收到的数据分组中继到其入口节点。参与节点可以例如在RDR过程和标准扩散过程之间进行选择,以传播特定的数据分组。网络的节点可以选择参与DMP,通过去中心化的方式或通过包含在由中央授权机构组装的成组的参与节点中来加入协议。参与节点根据DMP中继其输出网络分组。特别地,如果参与节点接收到数据分组,则该节点可以使用由DMP规定的规则,根据为该节点选择的传播模式来转发接收到的数据分组。
参照图3至图7描述提出的用于交易中继的DMP。在图3中提供了DMP的示意性可视化。示出了节点的示例区块链网络300。每个节点表示网络终端(即,区块链节点),而边缘则表示节点之间的链接。为了说明的目的,假定对于每个链接,可以一次发送或接收单个比特。
在该示例网络300中,每个节点维护未确认的交易的集合,使得当节点接收到新的交易时,该新的交易通过网络被传播到所有其他节点。每个节点验证新的交易并且将新的交易存储在其相应的本地集合中,并将新的交易转发到尚未拥有新交易的任何对等节点。由于区块链网络300的点对点性质,所有节点不会同时接收到新的交易,这意味着新交易到达网络300中的所有节点将花费一些时间。
图3示出了用于传播特定交易Tx1的DMP的两个阶段,即,用于Tx1的随机差分中继302和标准扩散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,其以流程图形式示出了在DMP的RDR阶段中用于在网络中传播数据分组的示例过程500。过程500由例如诸如网络100的区块链网络的节点实现。在这样的背景下,节点可以被理解为指代区块链网络中的挖掘节点、全节点、验证器节点或其他类型的离散区块链节点。该节点是具有实现区块链协议的执行软件、计算资源和(一个或多个)网络连接的计算装置。
在操作502中,与节点相关联的客户端生成至少一个第一类型的数据分组。在区块链网络的背景下,第一类型的数据分组可以包括区块链交易。也就是说,客户端可以生成将被传播到网络的其他节点的区块链交易。
在操作504中,节点在第一时间段T期间收集第一类型的数据分组的集合。即,节点累积在一段时间内的第一类型的数据分组。该集合包括从网络中的一个或多个对等节点接收的第一类型的至少一个数据分组和至少一个生成的数据分组。这样,将由节点生成的数据分组与从邻居节点接收的同一类型的数据分组混合在一起。在区块链网络中,在时间段T期间,节点通过为待中继的传入交易监测网络来累积交易的集合。时间段T的长度可以是预限定的。在一些示例实现方式中,时间的长度可以基于诸如平均连接时间、每单位时间接收到的交易的平均数量或网络内节点的中心性(即,到节点的传入连接的数量)之类的参数而变化。在时间段T期间,可以仅允许节点累积第一类型的数据分组,因此可以防止在时间段T的持续时间内发送任何第一类型的数据分组。
在操作506中,该节点任意选择其入口节点的子集,收集到的数据分组的不同集合将被转发到其入口节点的该子集。更具体地,对于收集到的数据分组的集合中的每个数据分组,该节点任意选择其入口节点(即,邻居节点,该节点与所述邻居节点具有外发连接)中的两个或更多个,并将用于中继的数据分组分配给选择的入口节点。例如,可以随机选择入口节点。在一些实现方式中,节点可以查询网络以获得其对等方的新地址。在比特币网络中,节点可以查询一个或多个数据库源名称(DSN),该一个或多个数据库源名称(DSN)被嵌入在比特币核心、比特币J或其他区块链协议中并由比特币(或其他区块链)社区成员维护。作为响应,该节点将获得一个或多个DSN记录,这些记录显示可以接受传入连接的可用全节点的IP地址。可以通过让对等方向加入网络的新节点发送包含其IP地址和端口号的“ADDR”消息来实现对等方发现的去中心化版本。
在一些实现方式中,作为操作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中,两个扩散过程概率性地(probabilistically)交替,即在RDR阶段和标准扩散阶段之间没有明显的分离。作为扩散过程的这种“混合”的结果,攻击者基于识别经由随机数据传播或经由标准扩散进行中继的节点的集合之间的分离来重构网络的拓扑变得更加困难。
在一些实现方式中,扩散模式的入口节点的随机选择可能涉及从源节点接收除了中继的数据分组之外的消息。然后入口节点可以生成随机值(例如,随机数),将其附加到接收到的消息中,并且例如使用SHA-256对结果进行哈希处理。然后入口节点可以检查哈希值并随后基于关于哈希值的预定规则来获得扩散模式(例如,如果哈希的最终字符是数字,则选择RDR作为扩散模式)。替代地或附加地,扩散模式的选择可以使用任何随机化的过程(例如随机数生成器)来完成,其中,选择模式之一的概率可能大于选择另一种模式的概率,这取决于诸如传入(incoming)和/或外发连接的数量、每单位时间接收到的数据分组的平均数量等因素。
在传播特定数据分组时,可能需要平衡传播节点的匿名性保护级别与总体传播速度。如果用于确保一定级别的匿名性的措施过于繁琐(例如,需要太多的网络资源,在中继数据分组时有意地不充分利用网络的节点等),则网络在及时传播数据方面的效率可能会受到损害。因此,在一些实现方式中,中继节点对传播模式的随机选择可以被加权。尤其是,可以将不同的概率分配给两种或更多种传播模式(即,RDR、标准扩散等)中的每一种,以便这些概率反映匿名性和数据传播速度的比例重要性。例如,在某些情况下,较高的预限定概率可能与针对特定网络的节点的RDR模式相关联,从而反映出按比例更大地强调了保留传播数据的匿名性。
图5的过程500由生成其自己的第一类型的数据分组的节点来实现。特别地,参与DMP并生成用于传播到网络的其余部分的数据分组的节点执行过程500。图6示出了由中继节点或转发或中继由不同的节点生成的数据分组的节点执行的示例过程。即,中继节点是自身不生成要在特定数据分组的中继的期间转移的数据的节点,而是起到“中继”数据分组的作用的节点。在操作550中,中继节点独立地选择其自己的数据传播模式。中继节点可以例如在RDR模式和标准扩散模式之间进行选择。如果选择了标准扩散模式(其可以在操作552处确定),则在操作554中,中继节点将数据分组转发到其所有入口节点。在图6的示例中,传播模式的选择在两个可能的选项之间;该示例不是限制性的,因此在其他示例中,可以存在三种或更多种可能的传播模式。如果在过程500中选择的模式是RDR(其可以在操作552处确定),则中继节点执行与图5的操作504、506和508相对应的步骤556、558和560。
现在将参考图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 | 来源 | 目的地 | 数据 |
tx1 | a,b,d | c,e | … |
tx2 | [本地] | a,c,e | … |
tx3 | d,e | a,b | … |
随着新信息(超时、接收到的/生成的交易、节点输入/输出容量限制等)变成可用的,可以动态更新(即,实时)节点的本地RDR表。本公开提供了各种启发法或“子系统”,其有助于构建和更新各个RDR表。这些子系统可以看作是规则或准则集,其可以被应用于更新RDR表中指定的交易分配。这些子系统所包含的策略对增强交易来源混淆和平衡由单个节点的中继操作生成的网络流量有用。提议的子系统(即,来源混合、中继混合、目的地混合、到达时间混合和来源控制)的集合可以并行工作,同时负载平衡模块可用于合并收集的交易中继信息并提供网络资源的优化分配。
现在参考图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,如下所示:
现在参考图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中,根据确定的第一映射来传输数据分组。
中继混合
中继混合子系统以以下概念为前提:节点接收到的交易应该中继到节点对等方的非重叠子集。使用参数λ来表示属于为同一节点接收的两个不同交易选择的中继对等方之间的交集的元素的数量,中继混合背后的思想可以通过以下不等式捕获:
其中,δRM是中继混合的程度。不等式(A)限定了找到满足不等式的到中继节点的交易的分配的交易分配问题。因此中继混合策略可以通过改变(A)中的参数λ来控制。一旦设置了λ,就对交易分配问题的次优解进行迭代搜索。中继混合子系统可能要求,对于节点从其接收了一个或多个交易的每个对等方pi,满足不等式(A)。例如,从对等方pi接收到的最后δSM交易 可以用于通过要求那些交易满足不等式(A)来实现中继混合。因此,在一些实现方式中,可以分别为每个对等方pi限定单独的参数λi。以这种方式,来源混淆可以通过以下方式来实现:为节点从其接收交易的每个对等方p1,p2,...,pm创建用于交易中继的独立数据结构,识别接收的交易到中继节点的分配。
·设置最大迭代次数,并选择具有最小数量的相交对等方的交易分配
·设置最大迭代次数,但是如果达到相交对等方的给定阈值,则会更早地中断该过程
·设置最大迭代次数,并且如果不满足要求,则增加λ的值,然后重新启动该过程
·设置最大迭代次数,并且如果不满足要求,则修改x的值,然后重新启动该过程
·设置最大迭代次数,并且如果不满足要求,则减小m的值,然后重新启动该过程
如果将最大迭代次数替换为固定的时间窗ΔTRM,则可以考虑另一套方法。
可以任意确定被选择为包括在中继节点的集合中的邻居节点的数量。在至少一些实现方式中,根据传播节点的带宽需求(例如,在固定时间帧内的传入和传出数据的累积量)来限制为集合选择的对等方的数量。特别地,可以调整为中继本地生成的交易而选择的对等方的数量,以解决网络负载问题或改善来源混淆。例如,包括在第一集合中的对等方的数量可以由下式限定:
m(txi)=mRM±rnd(ξRM)
其中,mRM是标称值,其表示在中继混合子系统中为中继选择的对等方的平均数,并且rnd(ξRM)表示0到ξRM-1之间的随机整数。在一些实现方式中,ξSM和ξRM可以具有相同的值。
现在参考图10,其以流程图形式示出了用于中继在网络中的节点处接收到的数据分组的示例过程900。过程900表示根据交易分配方案在网络中传播数据的技术,该交易分配方案符合中继混合子系统/启发法中的规则。过程900由例如诸如图1的网络100等的区块链网络的节点来实现。更具体地说,过程900由参与DMP并且接收第一类型的数据分组(例如,交易)以传播到网络的其余部分的节点执行。
在操作902中,与节点相关联的客户端接收第一类型的至少一个数据分组。数据分组可以例如包括区块链交易。
该节点确定至少一个接收的数据分组到其邻居节点(即,对等方)的第二映射。特别地,选择对等方的多个子集以中继在节点处生成的数据分组。通过第二映射,每个数据分组与中继节点的特定子集相关联。对于每个数据分组,在操作904中,识别节点最近接收的预定数量的第一类型的第二数据分组。这些可能是已由节点传输到对等方的数据分组,或者也可能是先前接收到但尚未中继到节点的对等方的数据分组。
在操作906中,确定第二数据分组到邻居节点的固定集合的第一分配。特别地,第一分配是从第二数据分组到满足预定条件的邻居节点的一个或多个分配中选择的。此操作对应于对上述不等式(A)的次优解的迭代搜索。即,在数据分组到满足(A)的中继节点的分配中,确定唯一的分配(例如,具有最少的相交对等方的分配)。如由(A)所捕获的,如果对于任意两个第二数据分组,所述两个第二数据分组都分配给至(用于中继)的邻居节点的数量小于或等于预限定的阈值,则第二数据分组到邻居节点的固定集合的分配满足预定条件。
然后第二数据分组到在操作906中识别的邻居节点的唯一分配可以被设置在第二映射中。换句话说,第二映射可以指示第二数据分组(即,该节点从其对等方接收的数据分组)分别被分配到的中继节点。在操作908中,根据确定的第二映射来中继至少一个接收到的数据分组。
过程900可以在单个数据分组在节点处被接收之后或者在节点收集多个接收到的数据分组之后,由节点执行。特别地,该节点可以在一段时间内接收并累积第一类型的数据分组(类似于DMP的RDR阶段),并确定累积的数据分组到中继节点集合的映射。在这些情况下,数据分组可以分别被分配给任意选择的中继节点的子集,从而确保没有两个这样的子集彼此相等。
目的地混合
目的地混合启发法捕获了以下想法:节点的出站连接(outbound connection)应执行由不同对等方中继的交易。这种启发法可以被认为是中继混合子系统的特殊情况,因为中继混合子系统涉及创建来自同一来源对等方的用于中继的对等方的非重叠子集。在过程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,等。因此,根据到达时间启发法,由节点来中继接收到的(或生成的)数据分组包括:确定用于将接收到的数据分组中继到邻居节点的下一个预计时间(scheduled time),以及在用于中继的下一个预计时间之后的预定时间量内中继数据分组。在Δ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的大小(即,输入的数量、输出的数量、解锁和锁定脚本的大小)不同,但是每个数据分组j均具有相同的权重wj
·每个数据分组j具有与其字节的尺寸成比例的其自己的权重wj
例如,在过程800中,可以确定第二数据分组到邻居节点的固定集合的第二分配,该第二分配是第一分配的重新布置以解决该节点的输出接口处的流量的平衡。可以为每个对等方i计算在预计要中继的数据分组的数量ni上的累计值ci:
随后,执行迭代过程以对要中继的数据分组进行置乱并获得每个对等方的平均值c*:
解决这种数据分组置乱的各种不同的启发法可能是可用的。例如,可以将不同的优先级分配给不同的子系统,以便预期数据分组子集的中继或增强外发流量的负载平衡。此外,不同子系统的执行会引入重复或不一致的数据分组的分配,这需要在激活中继之前解决。
数据路由信息的动态评估和更新
上述技术提供了如何构造和更新数据路由信息的示例。在节点处维护数据结构(RDR表),用于至少指定:在该节点处接收和/或生成的哪些数据分组将被中继到网络中的对等节点;哪些对等节点将被选择作为数据分组的中继节点;以及何时将数据分组中继到选择的对等节点。在基于流言的广播协议的背景下,RDR表的使用可能特别有用,在该协议中,信息在节点的整个网络中散播。子系统是可以有选择地用于实现用于控制RDR表的更新的各种逻辑的指令(directive)。具体地,一个或多个子系统可以用于限定和更新用于中继的数据分组到网络节点的对等方的分配。
本申请引入了用于评估RDR表在提供数据中继/广播的安全性、匿名性和及时性方面的有效性的方案。节点的RDR表的评估可以实时进行。基于评估结果,节点可以继续进行如在当前RDR表中限定的中继分配,或者可以修改或重新生成RDR表以获得新的中继分配。例如,如果在评估后确定节点的RDR表不令人满意,则该节点可以被配置为自动重新生成其RDR表,以获得数据分组到节点的对等方的新分配。另一方面,如果根据评估的结果确定当前RDR表令人满意,则节点可以根据当前RDR表的中继分配继续进行对数据的广播/中继。以这种方式,可以为节点限定“反馈循环”,该反馈循环评估和重新生成节点的RDR表,直到确定RDR表是令人满意的(根据评估的结果)为止。该评估过程可以促进满足网络节点的性能和/或有效性的预定义标准的中继分配的导出。
为了描述用于评估网络节点的RDR表的框架,引入有助于中继分配信息的计算操作的RDR表的不同表示可能是有用的。更具体地说,表示RDR表(例如,表2)中的节点的中继分配的模型可以被扩展,使得包含在RDR表中的中继分配数据被映射为适合于定量分析的形式。在至少一些实现方式中,RDR表可以被映射到具有条目μij的kxn矩阵M,其中
即,如果RDR表分配了要被中继到对等节点pj的数据分组txi,则μij条目被设置为1;否则,该条目被设置为0。因此,矩阵M的列对应于节点的对等方,并且矩阵M的行对应于将由节点中继到其对等方的数据分组。可以为矩阵M限定以下数量:
-R:被分析的交易中继的总数
参数k和n是可以针对每个节点全局或本地固定的系统参数。因此,通过应用上述一个或多个子系统/启发法构造和更新的RDR表可以被转换为能够定量表示RDR表中包含的中继分配信息的形式。
在评估RDR表中限定的中继分配时,几种不同的标准可以是可接受的,以衡量其在数据传播的安全性、匿名性和/或及时性方面的“性能”或有效性。衡量RDR表的匿名性能的一种可能方法是考虑对等方的集合之间的成对相交集,任意两个不同的数据分组被分配给这些对等方以进行中继。特别地,可能期望的是,分别被分配了任意两个不同的数据分组的对等方的集合尽可能不相交。换句话说,RDR表(以及其中所包含的中继分配)的有效性可以通过成对的不同数据分组的中继节点的集合具有什么样的多样性来表征。中继节点的集合的这种多样性可能阻止或阻碍攻击者识别数据中继中的模式,从而起到保护数据分组来源/来源的身份的作用。
为了数据中继的匿名性而导出数据分组到中继节点的最佳分配的运用可以以定量的方式被定义。特别地,对于RDR表的矩阵表示M,得出所述最佳分配的概念可以对应于最小化M的每列的非零条目的数目。换句话说,该最小化问题可以对应于最小化由节点中继到同一对等方的不同数据分组的数目。在一些情况下,最小化问题可能受到以下项的约束:节点要中继的数据分组的总数和/或一个或多个数据分组中的每一个的预定数目的中继。
为了测量RDR表的匿名性能的目的,可以有用地定义数量测度(quantitativemeasure)。给定这种测度,就可以将从经验RDR表获得的结果与理论上最佳的RDR表进行比较,该经验RDR表经由被上述子系统影响的数据分组的随机分配而生成。
在信息论中,熵被定义为由数据的随机源生成的平均信息内容。熵是状态的不可预测性或等效地其平均信息内容的测度。增加过程的匿名性可以对应于使表示该过程的数据结构的熵最大化。
系综(ensemble)X=(x,Ax,Πx)(其中,x表示随机变量的值,其采用具有概率Πx={π1,...,πn}(其中,Π(x=ai)=πi)的可能值的集合Ax={a1,...,an}中的一个)的熵可被定义为下式,,
在矩阵M表示RDR表的背景下,每个概率πi可以被定义为第i个对等方具有ci中继的概率,其中,i=1,…,n。更具体地,其中,/> 表示每个对等方的中继的数据分组的数量,并且R是到对等节点的第一数据分组的中继的总数。
现在参考图13,其以流程图形式示出了用于将数据分组中继到对等节点的示例过程1000。过程1000由例如区块链网络(例如,网络100)的节点来实现。
在操作1002中,节点在第一时间段期间收集第一数据分组的集合。该集合包括从网络中的一个或多个第一节点接收到的至少一个数据分组。即,该集合包括从与节点本身不同的来源传输的一个或多个数据分组。
在操作1004中,生成第一映射,该第一映射将用于中继的收集到的集合的第一数据分组分配到与该节点连接的一个或多个邻居节点。第一映射定义数据分组到对等节点的中继分配。第一映射的生成可以对应于节点的RDR表的构造,这可以通过实现过程500、600、700、800和900中的一个或多个来完成。
例如,第一映射可以基于应用各种子系统的逻辑(例如,上述的来源混合、中继混合等)来生成和更新,从而限定中继分配。因此,第一映射可以指示该集合的每个第一数据分组到邻居节点/对等节点的中继的预期时间。此外,当采用一个或多个子系统来构造RDR表时,生成第一映射可以包括确定第一子映射和第二子映射中的至少一个,该第一子映射将用于中继的具有相同来源的任意两个数据分组分配到邻居节点的不同子集,该第二子映射将中继的不同的预期时间分配给任意两个数据分组,这两个数据分组在同一时间间隔内在网络节点处生成或由网络节点从一个或多个第一节点接收。
在至少一些实现方式中,第一映射可以取决于节点的输出接口容量。即,第一映射可以至少部分地基于将节点连接到其一个或多个对等方的输出接口上的容量约束来生成。输出接口容量信息可以与收集到的第一数据分组的细节(例如,大小、类型等)组合以生成和/或修改第一映射的中继分配。
在操作1006中,计算在操作1004中生成的第一映射的去相关度量值。去相关度量值可以表示例如与针对由第一映射定义的中继分配的去相关度量相关联的值。去相关度量可用于检查用于生成和更新RDR表的算法有效地混合并分配了到对等方的数据分组中继。特别地,去相关度量可用于评估用于将数据中继分配给对等方的算法在多大程度上将被中继的数据分组从其(一个或多个)来源“去相关”。去相关度量可以例如是匿名水平的指示符/测度,其可以由第一映射所指定的分配的数据中继来实现。也就是说,去相关度量可以反映算法在将被中继的数据分组与其来源/来源去关联方面的有效性。
在一些实现方式中,可以使用等式(1)来计算去相关度量值。即,去相关度量值可以表示与数据分组到中继节点的映射的限定的中继分配相关联的熵。特别地,给定参数R(第一数据分组到对等节点的中继的总数)和n(对等节点的数量),去相关度量值可以通过计算下式来获得:
其中,ci表示通过第一映射分配给相应对等/邻居节点的第一数据分组的数量。ci可以例如从与第一映射相对应的RDR表(“M-RDR表”)的矩阵表示来确定。特别地,ci是M-RDR表的列中的非零条目的数量。
可以获得与使用等式(1)计算的度量不同的其他度量,这些其他度量适合于测量第一映射的匿名性能。
在操作1008中,确定为第一映射计算的去相关度量值S(R,n)是否满足第一条件。例如,去相关度量值S(R,n)可以与预定义的数值(例如,阈值)进行比较。在至少一些实现方式中,去相关度量值S(R,n)可以与第一预定义的(“最佳”)去相关度量值进行比较,以衡量两个去相关度量值的接近程度。第一预定义的去相关度量值可以与被认为是“最佳”的数据分组到中继节点的分配相关联。可以计算去相关度量值S(R,n)与第一预定义的去相关度量值之间的差,并且可以将计算出的差Δentr与阈值差进行比较,以确定第一映射与“最佳”中继分配的接近程度。具体地,如果计算的差Δentr小于或等于阈值差∈,则可以确定第一映射的去相关度量值S(R,n)满足第一条件。
可能有许多不同的方式来定义数据分组到对等节点的“最佳”中继分配。定义这种“最佳”中继分配的一种方法是最小化中继到任何单个对等节点的数据分组的数量,从而避免多个不同数据分组的发送者之间出现重叠。即,如果数据分组被均匀地分配到对等节点以进行中继,则中继分配可以被认为是“最佳”或接近最佳。例如,最佳分配可以对应于将个数据分组分配给具有Rn=Rmod n的M-RDR表的第i列(即,第i个对等方,i=1,…,n)。可以找到索引的模置换的最佳分配的多个等效解。
例如,如果R=23且n=5,则M-RDR表的每一列将接收 个数据分组。剩余的Rn个数据分组可以根据预定的算法来分配。例如,Rn个数据分组中的一个可以被分配给M-RDR表的最左列中的每一个,直到耗尽完为止。通常,分配给对等方ci的数据分组的数量可以表示为:/>
基于对n个对等方和要被中继的R个数据分组的最佳分配的这种定义,可以使用等式(1)计算最佳中继分配的去相关度量值:
在图15A-15C中示出了定义最佳中继分配的另一方法。在一些实现方式中,最佳分配可以基于输入参数的给定集合和中继上的某些约束来确定。例如,该输入的集合可以包括:要被中继的数据分组的数量k;对等节点的数量n;交易中继的总数R和包含每个数据分组的中继数的向量r=(r1,...,rk)。向量r可以例如在生成数据分组到中继节点的第一映射时确定。即,由第一映射确定的每个数据分组的中继的数量可以用作最佳中继分配的约束。
图15A至图15C示出了在给定集合输入和每个数据分组的中继数量的约束的情况下,用于构建对应于“最佳”中继分配的M-RDR表的算法(对角分配算法(DAA))。如这些图所示,要中继到对等方的数据分组被“沿对角线地”分配。在图15A中,示出了5×8M-RDR表,在给定每个数据分组的中继的数量(r=(2,5,2,4,3))的约束的情况下,要分配的中继的总数为R=16。
一旦将M-RDR初始化为空矩阵,该算法便开始将数据分组中继分配给对等方,并构造最佳M-RDR表。为了避免重叠,填充矩阵,直到所有给定的数据分组沿对角线移动地被分配。可以基于索引/对等方的置换来构建多个等效的最佳方案。
在第一轮中,该算法通过为i=1,...,5设置μii=1并将向量r更新为r`=(1,4,1,3,2)来更新M-RDR表的条目。添加到M-RDR表的最后一个非零条目是μ55。在第二轮中,从第6列开始分配数据分组,以避免重叠。将条目μ16,μ27,μ38,μ41,μ52设置为1,并且将包含针对每个数据分组的中继的向量更新为r``=(0,3,0,2,1)。
该算法继续填充M-RDR表,直到耗尽了用于分配的中继为止,如图15C所示。更一般地,DAA的主要步骤可以如下限定:
1.定义输入参数ξ=(k,n,r,R)
2.初始化kxn矩阵Mopt
3.从主对角线开始沿对角填充Mopt
4.更新向量r→r`
5.选择新的对角线以分配数据分组以进行中继。如果n>k,则对于i=1,...,n,更新μi,(k+i)mod n=1,
6.更新向量r`→r``
7.迭代直到r=(0,...,0)为止。
无论是使用等式(2)还是基于DAA计算第一预定义的去相关度量值,在操作1008中,节点会计算第一映射的去相关度量值S(R,n)和Sop(R,n)之间的差,并将计算出的差与预定的阈值进行比较。
如果去相关度量值S(R,n)不满足第一条件(例如,计算出的差大于阈值),则在操作1010中,生成第一数据分组到邻居节点的第二映射,其中,该第二映射定义与第一个映射的中继分配不同的中继分配。即,一旦确定了第一映射没有足够“接近”定义的最佳中继分配,就生成数据分组到对等方的第二个不同的映射。
在一些实现方式中,生成第二映射可以包括:修改对于一个或多个第一数据分组中的每一个的中继的对等方的选取。特别地,对于收集到的第一数据分组中的至少一个,可以选择邻居节点的第二集合,该邻居节点的第二集合与至少一个第一数据分组通过第一映射被分配至的邻居节点的集合不同,并且至少一个第一数据分组可以被分配给选择的邻居节点的第二集合。以此方式,每个数据分组的中继的数量可以是固定的,并且可以仅对将数据分组中继到对等方的选择进行改变。
在操作1012中,使用上述技术来计算第二映射的去相关度量值S2(R,n)。类似于操作1008,去相关度量值S2(R,n)可以与最佳中继分配的去相关度量值Sop(R,n)进行比较,以确定S2(R,n)是否满足第一条件(即,计算出的差Δentr=|S2(R,n)-Sop(R,n)|≥∈)。
以这种方式,可以定义“反馈循环”,以迭代地生成映射/中继分配并评估关联的去相关度量值,直到获得满足预定条件(例如,接近最佳中继分配)的映射/中继分配。在某些情况下,为了避免RDR表生成和数据中继中的过度延迟,反馈循环的最大迭代次数可以是预定义的。这样的最大迭代次数可以被本地(每个节点的)或全局(整个网络的)限定。
因此,在至少一些实现方式中,可以维护生成用于中继的收集到的集合的第一数据分组到节点的一个或多个对等方的新映射的迭代计数(例如,存储在数据库中)。此外,还可以存储当前去相关度量值和当前映射/中继分配,该当前去相关度量值与到目前为止计算的与第一去相关度量值的最低差相关联,该当前映射/中继分配与当前去相关度量值相关联。然后节点可以确定迭代计数是否已经达到预定义的最大数量,并且如果达到的话,则根据当前映射来传输收集到的集合的第一数据分组,即,不执行反馈循环的进一步的迭代。
在操作1016中,一旦获得了满足第一条件的映射,那么第一数据分组就被节点根据获得的映射传输到其邻居节点/对等节点。在至少一些实现方式中,第一数据分组到对等方的传输可以同时或几乎同时进行。
现在参考图14,其以流程图形式示出了用于将数据分组中继到对等节点的另一示例过程1100。过程1100由例如区块链网络(例如,网络100)的节点来实现。
操作1102、1104和1108-1118分别对应于过程1000的操作1002、1004和1006-1016。处理1100包括附加操作1106,其用于在创建子系统级别的RDR表期间进行实时检查。具体地,在操作1106中,对于收集到的集合的任意两个不同的第一数据分组,节点获得所述第一数据分组通过第一映射被分别分配至的邻居节点的集合之间的相似性的测度。操作1106允许测量被分配了不同数据分组的对等方的集合的相似性。如上所解释的,期望的是,将两个不同的数据分组中继到不同的对等方的集合,即,用于不同的数据分组的中继节点的集合不相交。
相似性的一种示例测度是余弦相似性。给定两个具有相同维数的向量A和B,余弦相似性s由下式给出
该数量在区间[-1,1]中取值。足够接近或等于1的值将意指向量A和B之间的相关性强,s=0表示两个向量完全去相关,而s=-1表示两个向量相反。
M-RDR表的行对应于为数据分组的中继选择的邻居节点的集合。特别地,可以将行表示为向量,其中,M-RDR表的行的每个非零条目都以对应的向量形式显示为非零条目。因此,可以基于行的矢量表示(即,用于中继的邻居节点的集合)来计算M-RDR表的任意两个不同行之间的余弦相似性。余弦相似性可用于获得有关数据分组的中继的差异程度的估计。例如,如果两个行/向量的余弦相似性接近s=1,则可能表示中继没有充分地变化,并且该节点应在RDR生成阶段期间重置一个或多个子系统的参数。可以在构建RDR表的同时实时进行此测量,以提高中继的性能。在一些实现方式中,可以在计算第一映射的去相关度量值之前(即在生成第一映射期间或之后立即)获得的相似性的测度。
因此,响应于确定相似性的测度满足第二条件(例如,s=1,或至少落在预定值范围之外),可以生成集合的第一数据分组到一个或多个邻居节点的第三映射(与第一映射不同)。
现在将参考图16,其以框图的形式示出了参与节点900的简化示例。节点1600包括处理器1602,该处理器1602可以包括一个或多个微处理器、专用集成芯片(ASIC)、微控制器或类似的计算机处理装置。节点1600还包括存储器1604和网络接口1606,该存储器1604可以包括持久性存储器和非持久性存储器,用于存储值、变量,以及在某些情况下,用于存储处理器可执行的程序指令,该网络接口1606用于在有线或无线网络上提供网络连接性。
节点1600包括处理器可执行区块链应用程序1608,该处理器可执行区块链应用程序1608包含处理器可执行指令,该处理器可执行指令在被执行时使处理器1602执行本文所述的功能或操作中的一个或多个。
将理解的是,可以使用标准计算机编程技术和语言来实现本文描述的装置和过程以及实现所描述的用于配置区块链节点的方法/过程的任何模块、例程、过程、线程、应用程序或其他软件组件。本申请不限于特定的处理器、计算机语言、计算机编程约定、数据结构或其他这样的实现细节。
应当注意,上述实现方式说明而不是限制本发明,并且本领域技术人员将能够设计许多替代实现方式而不脱离由所附权利要求书限定的本发明的范围。在权利要求书中,括号中放置的任何附图标记都不应解释为对权利要求的限制。词语“包括”和“包含”等不排除任何权利要求或整个说明书中列出的元素或步骤之外的元素或步骤的存在。在本说明书中,“包括”是指“包含或由……组成”并且“包括有”是指“包含有或由……组成”。元素的单数引用并不排除此类元素的复数引用,反之亦然。本发明可以通过包括几个不同元件的硬件以及通过适当编程的计算机来实现。在列举几个器件的装置权利要求中,这些装置中的几个可以由一项且相同的硬件来实施。在互不相同的从属权利要求中记载某些手段的事实并不表示不能有利地使用这些手段的组合。
Claims (13)
1.一种在节点的网络(100)中传播数据分组的计算机实现的方法,所述方法包括:
在第一时间段期间收集第一数据分组的集合(1002),所述集合包括从网络中的一个或多个第一节点接收的至少一个数据分组;
生成第一映射,所述第一映射将用于中继的所述集合的第一数据分组分配给连接到所述节点的一个或多个邻居节点(1004);
计算所述第一映射的去相关度量值(1006);
确定所述第一映射的去相关度量值是否满足第一条件(1008);
响应于确定所述第一映射的去相关度量值满足第一条件而:
根据所述第一映射将所述集合的第一数据分组传输到邻居节点(1016)。
2.根据权利要求1所述的方法,其中,所述第一映射指示所述集合的每个第一数据分组到邻居节点的中继的预期时间,并且其中,生成所述第一映射包括确定以下各项中的至少一项:
第一子映射,其将用于中继的具有相同的来源的任意两个数据分组分配给所述一个或多个邻居节点的不同子集;以及
第二子映射,其将中继的不同的预期时间分配给任意两个数据分组,所述任意两个数据分组是在相同时间间隔内在节点处生成的或由节点从所述一个或多个第一节点接收的。
3.根据前述权利要求中的任一项所述的方法,还包括:
对于所述集合的任意两个不同的第一数据分组:
获得两个第一数据分组通过所述第一映射被分别分配至的邻居节点的集合之间的相似性的测度;以及
响应于确定所述相似性的测度满足第二条件,生成所述集合的第一数据分组到所述一个或多个邻居节点的第二映射。
4.根据权利要求3所述的方法,其中,邻居节点的集合能够被表示为向量,并且其中,所述相似性的测度包括邻居节点的集合的向量表示之间的余弦相似性。
5.根据权利要求3至4中的任一项所述的方法,其中,在计算所述第一映射的去相关度量值之前,获得邻居节点的集合之间的相似性的测度。
6.根据前述权利要求中的任一项所述的方法,其中,确定所述第一映射是否满足第一条件包括:
计算第一映射的去相关度量值S(R,n)与第一去相关度量值Snc(R,n)之间的差,所述第一映射的去相关度量值是基于在第一时间段期间收集的第一数据分组的总数和通过第一映射分配给所述一个或多个邻居节点中的相应邻居节点的第一数据分组的数量来计算的;以及
将计算出的差与预定义的阈值差进行比较。
9.根据权利要求6至8中的任一项所述的方法,还包括:在数据库中存储:
生成用于中继的所述集合的第一数据分组到所述一个或多个邻居节点的新映射的迭代计数;
与计算的同第一去相关度量值的最小差相关联的当前去相关度量值;以及
与所述当前去相关度量值相关联的当前映射。
10.根据权利要求9所述的方法,还包括:
确定所述迭代计数是否等于预定义的次数;以及
响应于确定所述迭代计数等于所述预定义的次数,根据所述当前映射将所述集合的第一数据分组传输到邻居节点。
11.根据前述权利要求中的任一项所述的方法,还包括:
响应于确定所述第一映射的去相关度量值满足第一条件,根据所述第一映射将所述集合的第一数据分组传输到邻居节点。
12.一种用于执行根据前述权利要求中的任一项所述的方法的计算机实现的系统。
13.一种非暂时性计算机可读介质,其存储用于使计算机系统适于执行根据权利要求1至11中的任一项所述的方法的指令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1807835.2 | 2018-05-15 | ||
GBGB1807835.2A GB201807835D0 (en) | 2018-05-15 | 2018-05-15 | Computer-implemented system and method |
CN201980032584.1A CN112119620B (zh) | 2018-05-15 | 2019-05-09 | 用于在节点的网络中传播数据分组的系统和方法 |
PCT/IB2019/053826 WO2019220281A1 (en) | 2018-05-15 | 2019-05-09 | Systems and methods for propagating data packets in a network of nodes |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980032584.1A Division CN112119620B (zh) | 2018-05-15 | 2019-05-09 | 用于在节点的网络中传播数据分组的系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116318735A true CN116318735A (zh) | 2023-06-23 |
Family
ID=62623406
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980032584.1A Active CN112119620B (zh) | 2018-05-15 | 2019-05-09 | 用于在节点的网络中传播数据分组的系统和方法 |
CN202310302992.2A Pending CN116318735A (zh) | 2018-05-15 | 2019-05-09 | 用于在节点的网络中传播数据分组的系统和方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980032584.1A Active CN112119620B (zh) | 2018-05-15 | 2019-05-09 | 用于在节点的网络中传播数据分组的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11496945B2 (zh) |
EP (2) | EP3794795B1 (zh) |
JP (2) | JP7339965B2 (zh) |
CN (2) | CN112119620B (zh) |
GB (1) | GB201807835D0 (zh) |
WO (1) | WO2019220281A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201807835D0 (en) * | 2018-05-15 | 2018-06-27 | Nchain Holdings Ltd | Computer-implemented system and method |
US11961142B2 (en) * | 2019-08-26 | 2024-04-16 | Compound Labs, Inc. | Systems and methods for pooling and transferring digital assets |
CN112566211B (zh) * | 2020-12-11 | 2022-04-15 | 安徽大学 | 一种基于区块链智能合约的蜂窝小区中继协作通信方法 |
CN113590721B (zh) * | 2021-06-25 | 2024-01-30 | 中国人民银行数字货币研究所 | 一种区块链地址分类方法和装置 |
US11902426B2 (en) * | 2021-06-26 | 2024-02-13 | Ceremorphic, Inc. | Efficient storage of blockchain in embedded device |
CN115396918A (zh) * | 2022-08-09 | 2022-11-25 | 中国联合网络通信集团有限公司 | 区块链数据传输方法、装置及存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6266704B1 (en) | 1997-05-30 | 2001-07-24 | The United States Of America As Represented By The Secretary Of The Navy | Onion routing network for securely moving data through communication networks |
ES2760905T3 (es) | 1998-10-30 | 2020-05-18 | Virnetx Inc | Un protocolo de red agile para comunicaciones seguras con disponibilidad asegurada de sistema |
US7739497B1 (en) | 2001-03-21 | 2010-06-15 | Verizon Corporate Services Group Inc. | Method and apparatus for anonymous IP datagram exchange using dynamic network address translation |
EP2164258A4 (en) * | 2007-06-11 | 2011-06-22 | Sharp Kk | DEVICE FOR CONTENT DELIVERY, PROGRAM AND RECORDING MEDIUM |
US8302161B2 (en) | 2008-02-25 | 2012-10-30 | Emc Corporation | Techniques for anonymous internet access |
JP2011109471A (ja) | 2009-11-18 | 2011-06-02 | Oki Electric Industry Co Ltd | 通信経路制御装置及び通信経路制御方法 |
EP2676406A2 (en) * | 2011-02-17 | 2013-12-25 | Rockstar Consortium US LP | Next hop computation functions for equal cost multi-path packet switching networks |
KR101889378B1 (ko) * | 2011-10-14 | 2018-08-21 | 삼성전자주식회사 | 사용자 단말 장치 및 그 컨텐츠 공유 방법 |
US8934389B2 (en) * | 2012-01-18 | 2015-01-13 | Microsoft Corporation | Mechanism for connecting a mobile device to a network |
US9264974B2 (en) * | 2013-10-07 | 2016-02-16 | Avaya Inc. | Mobility integration with fabric enabled network |
JP6737086B2 (ja) * | 2016-09-06 | 2020-08-05 | 大日本印刷株式会社 | アドレス管理装置、データ管理システム及びプログラム |
CN106534085B (zh) * | 2016-10-25 | 2019-09-06 | 杭州云象网络技术有限公司 | 一种基于区块链技术的隐私保护方法 |
CN107294963B (zh) * | 2017-06-14 | 2019-09-06 | 广东工业大学 | 一种基于联盟区块链的数据的安全加密方法及装置 |
GB201802347D0 (en) * | 2018-02-13 | 2018-03-28 | Nchain Holdings Ltd | Computer-implemented system and method |
GB201807835D0 (en) * | 2018-05-15 | 2018-06-27 | Nchain Holdings Ltd | Computer-implemented system and method |
-
2018
- 2018-05-15 GB GBGB1807835.2A patent/GB201807835D0/en not_active Ceased
-
2019
- 2019-05-09 CN CN201980032584.1A patent/CN112119620B/zh active Active
- 2019-05-09 EP EP19732730.7A patent/EP3794795B1/en active Active
- 2019-05-09 JP JP2020562715A patent/JP7339965B2/ja active Active
- 2019-05-09 US US17/055,448 patent/US11496945B2/en active Active
- 2019-05-09 CN CN202310302992.2A patent/CN116318735A/zh active Pending
- 2019-05-09 EP EP22171013.0A patent/EP4102781A1/en active Pending
- 2019-05-09 WO PCT/IB2019/053826 patent/WO2019220281A1/en unknown
-
2022
- 2022-11-07 US US17/982,488 patent/US11937162B2/en active Active
-
2023
- 2023-08-25 JP JP2023136871A patent/JP2023159363A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
JP7339965B2 (ja) | 2023-09-06 |
EP4102781A1 (en) | 2022-12-14 |
JP2021523619A (ja) | 2021-09-02 |
EP3794795B1 (en) | 2022-06-15 |
JP2023159363A (ja) | 2023-10-31 |
CN112119620B (zh) | 2023-04-18 |
US11496945B2 (en) | 2022-11-08 |
US20230128585A1 (en) | 2023-04-27 |
EP3794795A1 (en) | 2021-03-24 |
WO2019220281A1 (en) | 2019-11-21 |
GB201807835D0 (en) | 2018-06-27 |
CN112119620A (zh) | 2020-12-22 |
US20210204189A1 (en) | 2021-07-01 |
US11937162B2 (en) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111801925B (zh) | 在网络中传播数据的基于区块链的系统和方法 | |
CN112189328B (zh) | 用于在节点的网络中传播数据分组的系统和方法 | |
CN112119620B (zh) | 用于在节点的网络中传播数据分组的系统和方法 | |
CN111406396B (zh) | 用于诸如区块链网络等网络中的数据传播和通信的计算机实现的系统和方法 | |
US11895123B2 (en) | Systems and methods for random differential relay and network coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |