CN115398940A - 用于分布式无线网络的快速账本共识系统和方法 - Google Patents
用于分布式无线网络的快速账本共识系统和方法 Download PDFInfo
- Publication number
- CN115398940A CN115398940A CN202180026862.XA CN202180026862A CN115398940A CN 115398940 A CN115398940 A CN 115398940A CN 202180026862 A CN202180026862 A CN 202180026862A CN 115398940 A CN115398940 A CN 115398940A
- Authority
- CN
- China
- Prior art keywords
- computing device
- event
- voting
- committee
- events
- 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 description 49
- 238000012790 confirmation Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 230000002452 interceptive effect Effects 0.000 description 10
- 238000010187 selection method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000001413 cellular effect Effects 0.000 description 7
- 230000007613 environmental effect Effects 0.000 description 5
- 230000000644 propagated effect Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- HRANPRDGABOKNQ-ORGXEYTDSA-N (1r,3r,3as,3br,7ar,8as,8bs,8cs,10as)-1-acetyl-5-chloro-3-hydroxy-8b,10a-dimethyl-7-oxo-1,2,3,3a,3b,7,7a,8,8a,8b,8c,9,10,10a-tetradecahydrocyclopenta[a]cyclopropa[g]phenanthren-1-yl acetate Chemical group C1=C(Cl)C2=CC(=O)[C@@H]3C[C@@H]3[C@]2(C)[C@@H]2[C@@H]1[C@@H]1[C@H](O)C[C@@](C(C)=O)(OC(=O)C)[C@@]1(C)CC2 HRANPRDGABOKNQ-ORGXEYTDSA-N 0.000 description 1
- 241000209202 Bromus secalinus Species 0.000 description 1
- 108091035707 Consensus sequence Proteins 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/325—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/40—Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/06—Authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mobile Radio Communication Systems (AREA)
- Traffic Control Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
Abstract
一种计算设备作为使用无线网络实现的分布式数据库系统的成员。链图的成员版本存储在所述计算设备上。所述链图包括由所述计算设备创建的事件和通过所述无线网络从作为所述分布式数据库系统成员的其它计算设备接收的事件。所述计算设备确定所述计算设备是否是投票委员会成员,所述投票委员会仅包括作为所述分布式数据库系统成员的计算设备子集。当所述计算设备是投票委员会成员时,所述计算设备使用所述无线网络与所述投票委员会的其它成员一起参与分布式共识算法以定义所述链图中的事件的顺序,并将该顺序作为新事件存储在所述链图的所述成员版本中。
Description
技术领域
本公开涉及用于车联网(vehicle-to-everything,V2X)网络中的分布式数据库的系统和方法。
背景技术
车联网(V2X)通信使车辆能够与其它车辆、蜂窝塔、接入点、道路基础设施元件、智能电网元件和行人等周围实体通信。例如,V2X通信可以包括:设备到设备通信,例如车辆到车辆(vehicle-to-vehicle,V2V)、车辆到基础设施(vehicle-to-infrastructure,V2I)、车辆到电网(vehicle-to-grid,V2G)和车辆到行人(vehicle-to-pedestrian,V2P);以及设备到网络(device-to-network,V2N)通信,例如基于蜂窝网络的C-V2X通信和基于无线局域网(wireless local area network,WLAN)的通信。已经或正在开发不同的协议来支持V2X通信,例如,包括2012年发布的基于WLAN的IEEE 802.11p协议、在第三代合作伙伴计划(3rdgeneration partnership project,3GPP)版本14和15中定义为长期演进(long-termevolution,LTE)V2X的V2X协议,以及根据版本15开发的V2X协议。
在一些应用中,V2X网络中的实体提供和接收到的信息可能会影响交通控制系统和单独的车辆控制系统的操作,而且保险公司和政府等实体也可能信任这些信息。鉴于V2X网络中交换的信息可能存在安全、财务、法律和监管影响,因此保持信息的完整性至关重要。在这方面,对于可信中央系统或机构管理的中央数据库,V2X通信可以纳入传统的数据完整性保护。
但是,在一些情况下,车辆可能离线或相对于可信的集中式机构访问受限。例如,如果车辆不在蜂窝网络的范围内、蜂窝网络由于网络容量问题或其它原因拒绝接入车辆、蜂窝网络与集中式机构之间发生通信中断、或者集中式机构发生了临时故障或当前由于其它原因不可用,则可能发生这种情况。
因此,需要一种实现车辆等实体的分布式数据库的方法和系统,其中,分布式数据库不依赖于对可信的集中式机构的访问。不依赖可信的集中式机构的分布式数据库系统的一个已知示例是用于比特币(Bitcoin)等加密货币的对等(peer-to-peer)区块链数据结构。然而,这类系统在设计上效率低下,而且受限于每秒只能处理少量事务。
因此,需要一种高效的实现车辆等实体的分布式数据库的方法和系统。
发明内容
根据本公开的第一示例性方面,提供了一种在作为使用无线网络实现的分布式数据库系统成员的计算设备处执行的方法。所述方法包括在所述计算设备处存储链图的成员版本。所述链图包括由所述计算设备创建的事件和通过所述无线网络从作为所述分布式数据库系统成员的其它计算设备接收的事件。所述方法包括确定所述计算设备是否是投票委员会成员,其中,所述投票委员会仅包括作为所述分布式数据库系统成员的计算设备子集。当所述计算设备是投票委员会成员时,使用所述无线网络与所述投票委员会的其它成员一起参与分布式共识算法以定义所述链图中的事件的顺序,并将所述顺序作为新事件存储在所述链图的所述成员版本中。
在一些示例性实施例中,所述投票委员会的成员资格在所述计算设备是所述分布式数据库系统的成员的时间段内变化,所述确定所述计算设备是否是投票委员会成员在所述时间段内多次执行。
在一些示例性实施例中,所述方法包括使用无线网络与其它计算设备交换事件,其中,所述计算设备根据闲谈协议(gossip protocol),向所述其它计算设备随机发送已经创建的事件,以及从所述其它计算设备接收事件。在一些示例实施例中,所述分布式共识算法包括拜占庭协议。
在一些示例性实施例中,所述确定所述计算设备是否是所述投票委员会成员包括:确定与所述计算设备关联的成员ID是否匹配预定标准,如果匹配,则确定所述计算设备是所述投票委员会成员。在一些示例中,所述确定与所述计算设备关联的成员ID是否匹配预定标准包括:确定所述成员ID内的位序列是否匹配预定位序列。在一些示例中,通过循环移位所述成员ID的位以固定时间间隔来更新所述成员ID。
在所述第一示例性方面的其它示例中,所述确定所述计算设备是否是所述投票委员会成员包括:确定所述计算设备是否已从作为所述投票委员会现有成员的计算设备接收到投票委员会令牌。在一些示例中,所述方法包括从所述其它计算设备中指定用以替换所述计算设备的替换计算设备,作为所述投票委员会成员。在一些示例中,所述指定替换计算设备包括:随机选择作为所述分布式数据库系统成员的所述其它计算设备中的一个作为所述替换计算设备;将所述投票委员会令牌发送给所述替换计算设备;从所述替换计算设备接收确认;在认证所述确认后,向作为所述投票委员会成员的任一其它计算设备通知所述替换计算设备指定为所述投票委员会成员。
根据第二示例性方面,公开了一种用于作为使用无线网络实现的分布式数据库系统成员的计算设备。所述计算设备可用于执行所述第一示例性方面的方法。在一些示例中,所述计算设备包括:处理器系统;无线收发器,连接到所述处理器系统,用于使用无线网络与其它计算设备交换信号;非瞬时性存储器,连接到所述处理器系统。所述非瞬时性存储器存储配置所述处理器系统进行以下操作的指令:在所述计算设备处存储链图的成员版本,其中,所述链图包括由所述计算设备创建的事件和通过所述无线网络从作为所述分布式数据库系统成员的其它计算设备接收的事件;确定所述计算设备是否是投票委员会成员,其中,所述投票委员会仅包括作为所述分布式数据库系统成员的计算设备子集;当所述计算设备是投票委员会成员时,使用所述无线网络与所述投票委员会的其它成员一起参与分布式共识算法以定义所述链图中的事件的顺序,并将所述顺序作为新事件存储在所述链图的所述成员版本中。
在至少一些示例中,所述第一示例性方面的方法和所述第二方面的计算设备实现了在实际持续时间内达成共识的V2X分布式数据库系统。
附图说明
图1为本公开示例性实施例提供的V2X分布式数据库系统的示意图。
图2为示例性实施例提供的可用于实现图1的分布式数据库系统中的节点成员的计算设备的框图。
图3为示例性实施例提供的链图的表示。
图4示出了示例性实施例提供的图3的链图中的事件。
图5为可用于选择投票委员会的随机非交互式选择程序的一个示例的流程图。
图6为可用于选择投票委员会的随机交互式选择程序的示例的流程图。
图7为图6的随机交互式选择程序的另一流程图。
图8为示例性实施例提供的计算设备执行的方法的一个示例的流程图。
具体实施方式
为了方便起见,本公开描述了关于机动车辆的方法和系统的示例性实施例,例如汽车、卡车、公共汽车、小船或轮船、潜艇、飞机、仓库设备、建筑设备、拖拉机或其它农场设备。本公开的教导不限于任何特定类型的车辆,并且可以应用于非载客车辆和载客车辆。除其它外,本公开中描述的方法和系统可以在非自动驾驶车辆、半自动驾驶车辆和自动驾驶车辆中实现。
示例性实施例涉及使用级联消息传递技术来实现V2X分布式数据库。除其它外,分布式数据库在一些应用中可以增强以下一个或多个数据通信相关功能:认证、可审计性、防止伪造和完整性保证。在一些应用中,分布式数据库可以有助于以下一项或多项:降低V2X基础架构的成本、减少提供冗余所需的开销、促进并行处理以及提供离线数据库支持。
图1为可以实现分布式V2X分布式数据库的环境的示意图。图1示出了多个实体,包括多个车辆102(1)至102(m)(统称为车辆102,单独的车辆一般称为车辆102(i))和基础设施元件106(例如,固定杆装式交通摄像机、交通灯、可编程交通标志等)。车辆102(1)至102(m)中的每一个分别包括能够用于无线通信的机载处理器启用的计算设备115(1)至115(m)(统称为计算设备115,单独的计算设备一般称为计算设备115(i))。类似地,至少一些基础设施元件106可以包括能够用于无线通信的机载处理器启用的计算设备116。在示例性实施例中,车辆102的计算设备115和基础设施元件106的计算设备116分别用于通过无线广域网(wide area network,WAN)136(例如,蜂窝网络)与远程集中式机构130通信。例如,计算设备115和116可以用于使用一个或多个蜂窝车辆到网络(cellular vehicle-to-network,C-V2N)协议通过WAN 136进行通信。此外,计算设备115和116还能够使用无线局域网彼此对等通信。在这方面,计算设备115和116可以用于使用一个或多个车联网(V2X)协议来启用对等侧行链路(sidelink,SL)V2X通信网络140。例如,通信网络140可以是新空口SL兼容网络。因此,在示例性实施例中,对等SL V2X通信网络140提供使计算设备115(1)至115(m)和计算设备116能够彼此交换无线信号的介质或连接。
在示例性实施例中,除了处理器启用的计算设备115(i)之外,作为计算设备115(i)的一部分或除了计算设备115(i)之外,示例性车辆102(i)还包括多个其它机载处理器启用的电子设备110(1)至110(k)。除其它外,电子设备110(1)至110(k)可以包括能够感测、收集和处理关于车辆102(i)的环境的信息的数据捕获设备或单元。例如,与车辆102(i)关联的机载电子设备110(1)至110(k)可以包括感测和处理关于车辆周围物理环境的信息的一个或多个设备,例如光探测和测距(light detection and ranging,LIDAR)单元、无线电探测和测距(radio detecting and ranging,RADAR)单元和/或摄像机单元。电子设备110(1)至110(k)还可以包括收集和处理关于目标车辆102(i)的物理操作环境的信息的设备,例如惯性测量单元(inertial measurement unit,IMU)、速度计单元和其它车辆物理操作环境测量单元。例如,除其它外,关于由电子设备110(1)至110(k)生成的目标车辆102(i)的物理操作环境的信息可以包括表示以下一个或多个的参数:车速、发动机RPM、角加速度、线性加速度、油门位置、转向角、刹车位置、车辆位姿、引擎温度、车内外噪音水平、车载人数和驾驶员注意力。电子设备110(1)至110(k)还可以包括收集和处理关于车辆102(i)的地理位置的信息的设备,例如,全球定位卫星单元。基础设施元件106的计算设备116还可以包括或连接到其它处理器启用的电子设备,所述电子设备感测和收集关于基础设施元件周围物理环境的信息。
在示例性实施例中,当计算设备115、116相对于WAN 136在线时,它们可以通过WAN136与一个或多个远程中央系统(包括集中式机构130)通信。在示例性实施例中,集中式机构130包括一个或多个计算机系统,例如服务器,用于实现可信中央账本系统132。当计算设备115、116在线时,它们分别可以通过WAN 136与中央账本系统132通信,以实现数据认证、跟踪和审计功能。
然而,当一个或多个计算设备115、116相对于集中式机构130离线时(例如,当一个或多个车辆102位于不由WAN 136服务的区域中,或者计算设备115、116以其它方式被拒绝访问WAN 136或集中式机构130时),计算设备115或116不能通过WAN 136与集中式机构130的中央账本系统132通信。在计算设备115或116离线时需要可信中央账本系统132的功能的情况下,这种情况可能存在问题。例如,在车辆102(i)涉及事故而其相应的计算设备115(i)离线的情况下,保险提供者可能希望能够确认由电子设备110(1)至110(k)中的一个或多个生成的在事故发生时关于车辆102(i)的周围物理环境或车辆的物理操作环境的记录的时间和真实性。
因此,在示例性实施例中,车辆102的计算设备115(1)至115(m)分别被配置为作为共同实现V2X分布式数据库系统150的相应节点或成员。在至少一些示例中,基础设施元件106的计算设备116(在图中标记为代表性成员F)也充当V2X分布式数据库系统150中的成员。在示例性实施例中,由计算设备115、116实现的分布式数据库成员之间的数据交换使用对等SL V2X通信网络140执行。
图2为可用于实现V2X分布式数据库系统150的基于车辆的分布式数据库模块的计算设备115(i)的示例的框图。如上所述,计算设备115(i)可以连接到或包括多个机载电子设备110(1)至110(k),所述车载电子设备110(1)至110(k)可以包括能够感测、收集和处理关于车辆102(i)的周围物理环境和物理操作环境的信息的设备或单元。在一些示例中,计算设备115(i)可以连接到车辆系统,如驱动控制系统和机电系统。
计算设备115(i)包括处理器系统101,处理器系统101通过通信总线耦合到多个部件,通信总线提供部件与处理器系统101之间的通信路径。处理器系统101耦合到存储器126,存储器126可以包括随机存取存储器(random access memory,RAM)、只读存储器(readonly memory,ROM)和持久(非易失性)存储器,如闪存可擦除可编程只读存储器(erasableprogrammable read only memory,EPROM)(闪存)。计算设备115(i)包括一个或多个无线收发器131,其使得计算设备115(i)能够与WAN 136和对等SL V2X通信网络140交换数据。计算设备115还可以包括用于从定位卫星网络接收卫星信号的卫星接收器。计算设备115(i)还可以包括一个或多个I/O接口137,如触摸屏和音频输入/输出接口。处理器系统101可以包括一个或多个处理单元,例如包括一个或多个中央处理单元(central processing unit,CPU)、一个或多个图形处理单元(graphical processing unit,GPU)和其它处理单元。
计算设备115(i)的存储器126上存储有可由处理器系统101执行的软件指令集,这些软件指令集使计算设备115(i)实现多个模块161。除其它外,模块161还包括分布式数据库模块162,分布式数据库模块162配置计算设备115(i)充当V2X分布式数据库系统150中的成员,如下面将更详细地描述。模块161还可以包括其它模块164,例如,可以包括通信模块、映射模块、导航模块、自动和辅助驾驶模块、气候控制模块、媒体播放器模块、电话模块和消息传递模块。
存储器126还存储用于支持模块161的各种数据,包括表示链图180的数据。
在示例性实施例中,基础设施元件106的计算设备116可以使用类似于计算设备115(i)的电子部件布置方式来实现。
在示例性实施例中,每个分布式数据库模块162用作V2X分布式数据库系统150中的成员。在这方面,在图1和整个其余的图中,字母A至E用于标记在车辆102(1)至102(m)上实现的对应成员,字母F用于标记在基础设施元件106上实现的成员。
在示例性实施例中,成员A至F用于操作数据,包括存储、修改和/或删除数据。在一些实施例中,成员A至F可以实现关系数据库、对象数据库、后关系数据库和/或任何其它合适类型的数据库。例如,成员A至E可以存储与车辆物理操作环境和周围物理环境相关的数据。通常,数据可以包括任何参数值集,参数可以是能够取不同值的任何数据对象和/或数据库字段。
在示例性实施例中,在计算设备115(i)或116上实现的成员A至F可以与由其它计算设备115(i)、116实现的成员A至F交换事件,存储成员接收的事件,并根据由事件之间的引用模式定义的部分顺序计算事件的顺序。在这方面,在示例性实施例中,事件集及其互连可以形成链图180(参见图3,示出了成员A至E)。在示例性实施例中,在任何给定时间,成员A至F中的每一个存储自己版本的链图180,该链图180表示该成员对构成V2X分布式数据库系统150的所有成员A至F的事件和互连的感知。
在这方面,基于通过V2X SL网络140的成员间通信,在每个成员处构建链图180的相应版本。在示例性实施例中,成员用于共同实现闲谈协议以交换链图信息。如本领域已知的,闲谈协议配置成员随机地相互重复通信,以将存储在各成员中的信息同步。
在这方面,图3是链图180的示例的图形表示,链图180随着时间的推移而增长。每个成员A至F存储自己版本的链图180。该链图180包括每个成员的事件线程304,每个事件线程304包括多轮(如图3中的R1至R4所示)发生在成员处的一组事件302。一个成员的事件线程304上的事件302可以连接到一个或多个其它成员的事件线程304上的一个或多个事件302,如线程间连接306所示。为了便于说明,图3中仅示出了成员A至E的事件线程304。事件在这里一般由标号302表示,特别是通过图3所示的标记(Xa,b)表示,其中,X标识创建事件302的成员,“a”标识创建事件302所在的轮次,“b”标识在第“a”轮内创建事件302的顺序。例如,B1,2是指成员B在第1轮内创建的第二个事件。
每个事件302是记录或数据结构,其示例在图4中示出。在示例性实施例中,每个事件302包括两个先前事件的哈希(H1、H2)、断言成员创建事件的时间的时间戳(time stamp,TS)timestamp(例如,日期和UTC时间)、级联消息(数据)和成员应用于事件的数字签名(签名)。除其它外,数据可以包括由实现成员的车辆102的电子设备110(1)至110(k)中的一个或多个产生的信息。例如,数据可以包括关于车辆周围物理环境和车辆物理操作环境的环境数据。
在示例性实施例中,哈希(H1、H2)将链图180中的每个事件302链接到两个较早的事件。在一些实施例中,哈希H1、H2以密码哈希为基础,使得链图180是哈希图。在示例性实施例中,哈希H1是自父事件哈希(self-parent event hash),这意味着它是创建哈希的成员的线程上的先前事件的哈希,而哈希H2是其它父事件哈希(other-parent event hash),这意味着它是另一个成员的线程上的先前事件的哈希。例如,图3中的事件D1,2是自父事件D1,1和其它父事件C1,1的子。事件D1,2的哈希H1是事件D1,1的哈希,事件D1,2的哈希H2是事件C1,1的哈希。因此,在示例性实施例中,链图180直接编码部分顺序,这意味着如果事件Y包括事件X的哈希,或者如果Y包括包含X的哈希的事件的哈希,则已知事件X在事件Y之前出现。然而,如果没有从X到Y或从Y到X的路径,则部分顺序不定义哪个事件先出现。因此,成员可以根据部分顺序计算总顺序。这可以通过任何合适的确定性函数来完成,以便成员都计算相同的顺序。在一些实施例中,成员可以在每次同步后重新计算此顺序,最终这些顺序可以收敛,以使得共识出现。如下面将更详细地解释,在示例性实施例中,只有成员的子集(例如,投票委员会的成员)负责根据部分顺序计算总顺序,然后使用闲谈协议通过其它成员传播该总顺序。
在一些实例中,由成员记录的第一个事件302可以包括由另一个分布式数据库模块162定义的单个事件的哈希。在这些实例中,成员还没有先前自哈希(例如,该成员先前定义的事件的哈希,例如,参见图3中的事件E1,1)。在一些实例中,分布式数据库中的第一个事件不包括任何先前事件的哈希(因为该分布式数据库没有先前事件,例如,参见图3中的事件D1,1)。
在示例性实施例中,事件的哈希(例如,在事件D1,2中用作哈希H1的事件D1,1的哈希)可以是从哈希函数返回的值,该哈希函数使用该事件的预定字节选择作为输入。在其它实施例中,与事件关联的任何其它合适的数据(例如,标识符、序列号、代表事件的特定部分的字节等)可以用作哈希函数的输入,以计算该事件的哈希。任何合适的哈希函数都可以用来定义哈希。
分布式共识算法可用于确定链图180中的事件302的顺序和/或存储在事件302中的数据的顺序。事件的顺序反过来可以定义数据库的状态,作为根据顺序执行这些事件的结果。数据库的定义状态可以存储为数据库状态变量。
虽然不同的共识算法可以应用于各种示例性实施例中,但在一个示例性实施例中,Swirlds哈希图共识算法被修改以用于V2X分布式数据库系统150中。以下参考文献中描述了Swirlds哈希图共识算法的示例:[1]“Leemon Baird.The Swirlds HashGraphConsensus Algorithm:Fair,Fast,Byzantine Fault Tolerance.SWIRLDS TECH REPORTSWIRLDS-TR-2016-01.May 31,2016,Revision date:March 18,2018”(LeemonBaird.Swirlds哈希图共识算法:公平、快速、拜占庭容错。SWIRLDS技术报告SWIRLDS-TR-2016-01。2016年5月31日,修订日期:2018年3月18日),其内容通过引用并入本文。Swirlds哈希图共识算法是一个无领导系统,所有成员都参与投票。但是,这样的系统可能需要很长时间才能收敛,而且需要大量资源且难以在V2X环境中高效、可扩展地使用。
因此,在示例性实施例中,修改共识算法,使得投票由成员的子集或委员会完成,而不是基于所有成员的投票。例如,给定一个具有完整成员集{A、B、C、D、E、F、G、H、I}的哈希图,间歇性地通过随机选择完整成员集的子集作为投票委员会来选举投票委员会。例如,可以随机选择包括成员子集V={A、B、C、D、E}的新投票委员会作为投票委员会VC,用于确定特定轮次(例如轮次R3)R2的事件顺序。每轮随机选择投票委员会VC可以缓解欺诈攻击,同时还提供可在动态V2X环境中实现的可扩展技术方案。
非交互式投票委员会选择
在一个示例性实施例中,使用随机非交互式选择程序以间歇性间隔选择投票委员会的委员会成员。在此方面,图5示出了可用于选择投票委员会VC的随机非交互式选择程序500的一个示例。程序500在每个成员处独立执行。当成员加入对等SL V2X通信网络140时,它成为V2X分布式数据库系统150实例的一部分,用于记录当成员是对等SL V2X通信网络140的一部分时发生的事件302。在加入V2X分布式数据库系统150后,每个成员经历初始化程序,其中该成员被随机分配成员ID(块502)。在图5的说明性示例中,随机成员ID是10的二进制数字ID。在一些示例中,随机成员ID可以由投票委员会VC的现有成员分配,在一些示例中,随机成员ID可以是自分配的。在一些示例中,随机成员ID可以基于委员会分配和自分配的组合。在示例性实施例中,随机成员ID可以以与在移动网络中生成临时移动用户标识(temporary mobile subscriber identity,TMSI)号码类似的方式分配。例如,成员可以使用其自己的永久成员ID加入V2X分布式数据库系统150,然后被分配随机成员ID,如下面将描述的,随机成员ID间歇性地更新,例如,以固定时间间隔T。
在V2X分布式数据库系统150的操作期间,成员被配置成根据他们当前分配的成员ID来自我评估他们是否在投票委员会中。例如,成员的成员ID可以与预定标准(块506)进行比较(例如,4个最低有效位(least significant bit,LSB)是否与预定的4位值匹配?)。如果成员的成员ID匹配预定标准,则成员自行确定它是投票委员会VC的一部分(块510),否则,成员自行确定它不是投票委员会VC的一部分(块508)。如块512所示,在成员是投票委员会VC成员的时间间隔内,该成员将参与在该时间间隔内发生的任何共识投票。在一些示例性实施例中,成员创建事件302以记录它已经成为投票委员会的成员。
如上所述,成员ID间歇性地更新,例如,以预定义的时间间隔T(块509、514)。在所示的示例中,更新是通过成员ID循环左移1位来执行的。然后,考虑到更新的成员ID,执行块506及以后指示的动作。在一些示例性实施例中,成员创建事件302以记录它已经不是投票委员会的成员。
交互式投票委员会选择
在替代的示例性实施例中,使用随机交互式选择程序以间歇性间隔选择投票委员会的委员会成员,在该程序中,成员通过V2X SL网络140交互。
在此方面,图6和图7示出了可用于选择投票委员会VC的随机交互式选择程序的一个示例。图6示出了当初始化V2X分布式数据库系统150的实例时成员发生的初始化程序600。每个成员被分配相应的成员ID(块602)。此外,还为成员的子集提供了投票委员会令牌(例如8位字符串)。例如,成为成员的前N个节点可以最初被分配投票委员会令牌。
在一些示例中,最初被分配投票委员会令牌的成员可以在预定义的固定时间间隔T内充当初始投票委员会VC,之后每个成员指定对等成员(peer member)作为其投票委员会成员替代者,如成员指定程序603所示。在一些示例中,最初被分配投票委员会令牌的成员可以立即指定其它成员作为投票委员会成员替代者,如成员指定程序603所示。
如图所示,在成员指定程序603期间,当前是投票委员会VC一部分的成员(例如,在说明性示例中的成员B)随机选择至少一个其它成员(例如,在本示例中的成员E)作为预期被指定成员,其中该至少一个其它成员是V2X分布式数据库系统150一部分。现任投票委员会成员(成员B)将其成员ID和投票委员会令牌发送给随机选择的被指定成员(成员E)(块604)。然后,现任投票委员会成员(成员B)从随机选择的被指定成员(成员E)接收表示接受或不接受的确认(块606)。如果确认表示接受,它将包括被指定成员的成员ID(分配的成员E的成员ID)。然后,现任投票委员会成员(成员B)对被指定成员(成员E)进行认证(块607)。在所示的示例中,认证基于投票委员会、被指定成员的成员ID和投票委员会令牌的组合。例如,如果以下测试等式为真,则现任投票委员会成员(成员B)可配置为对被指定成员(成员E)进行肯定认证:
投票委员会令牌=(现任投票委员会成员ID)XOR(被指定成员ID)XOR(投票委员会令牌)。
如果被指定成员(成员E)通过认证,则现任投票委员会成员(成员B)通知其它现有的现任投票委员会成员,该成员(成员E)将在投票委员会VC上由被指定成员(成员E)替换(块608)。在示例实施例中,该通知可以通过发送给每个其它投票委员会成员的直接消息来执行。此外,即将离任的投票委员会成员(成员B)在其线程304上发布指出被指定成员(成员E)已成为当前投票委员会VC的一部分的事件302。在一些示例中,所述发布指出被指定成员(成员E)已成为当前投票委员会VC的一部分的事件302也可以用于向其它投票委员会成员通知新的被指定成员(成员E),因为该事件会通过闲谈协议在成员中传播。在这种情况下,块608和610的“通知”和“发布事件”动作可以被组合。
如图6所示,如果在块606中预期被指定成员(成员E)不接受投票委员会的指定,或者在块607中没有通过现任投票委员会成员(成员B)的认证,则现任投票委员会成员(成员B)将投票委员会令牌发送给成员中的不同的随机预期被指定成员,重复块604、606和607的过程,直到被指定成员接受并通过认证。
图7从被指定成员(本示例中的成员E)的角度示出了接受程序700和新的投票委员会成员指定程序603。特别地,在从现任投票委员会成员(成员B)接收到投票委员会令牌(块702)之后,被指定成员(成员E)向包括被指定成员的成员ID的现任投票委员会成员(成员B)发送确认,作为接受投票委员会VC指定的指示的一部分(块704)。然后,被指定成员(成员E)成为投票委员会VC的现任成员,并参与即将进行的共识投票(块706)。在作为现任投票委员会成员参与了预定持续时间T(块708)之后,现任投票委员会成员(成员E)然后以与上述相同的方式进行新的投票委员会成员指定程序603,以在投票委员会VC中取代自己。
共识投票
现在将参考图3的示例性链图180描述由投票委员会VC的成员执行的基于委员会的共识投票过程的示例。
如图3所示,每个成员(成员A、B、C、D和E的子集如图3所示)创建和/或定义事件302。在一个示例性实施例中,事件302的总顺序可以通过按事件302的接收轮次(在此也称为顺序值)对事件302进行排序,按其接收时间戳打破平局,并按其签名打破这些平局来计算,如下所述。
以下段落指定了用于计算和/或定义事件的接收轮次和接收世代以确定事件的顺序的函数。
“父”:如果事件Y包括事件X的哈希,则X是Y的父。例如,在图3中,事件D1,1的父包括事件D1,1和事件C1,1。
“祖先”:事件X的祖先是X、其父、其父的父、依此类推。例如,在图3中,事件E2,1的祖先是事件E1,1、D1,1、B1,2和B1,1。事件的祖先可以说成链接到该事件,反之亦然。
“后代”:事件X的后代是X、其子、其子的子、依此类推。
“N”:投票时投票委员会VC的成员总数。
“M”:大于N的一定百分比(例如,大于N的2/3)的最小整数。例如,如果N=5,并且百分比定义为2/3,则M等于4。
“自父”:事件X的自父是由同一成员创建和/或定义的其父事件Y。例如,在图3中,事件D1,2的自父是D1,1。
“自祖先”:事件X的自祖先是X、其自父、其自父的自父、依此类推。
“序列号”(或“SN”):事件的整数属性,定义为事件的自父的序列号加1。例如,在图3中,事件D1,2的自父是D1,1。由于事件D1,1的序列号是1,则事件D1,2的序列号是2(即,1加1)。
“世代号”(或“GN”):事件的整数属性,定义为事件的父的世代号的最大值加1。例如,事件E2,1有两个父,事件E1,1和B1,2分别具有世代号4和2。因此,事件E2,1的世代号是5(即,4加1)。
“轮次增量”(或“RI”):事件的属性,可以是0或1。
“轮次号”(或“RN”):事件的整数属性。在一些实例中,轮次号可以定义为事件的父的轮次号的最大值加事件的轮次增量。例如,在图3中,事件E2,1有两个父,事件B1,2和E1,1,这两个事件都有一个轮次号1。事件E2,1还具有轮次增量1。因此,事件E2,1的轮次号是2(即,1加1)。在其它实例中,如果R是这样的最小整数,即,使得事件可以强看见(stronglysee)(如本文所述)由不同成员定义和/或创建的均具有轮次号R–1的至少M个事件,则该事件可以具有轮次号R。如果没有这样的整数,则事件的轮次号可以是默认值(例如,0、1等)。在这种实例中,可以不使用轮次增量来计算事件的轮次号。例如,在图3中,如果M被定义成是大于1/2倍N的最小整数,则M为3。然后,事件E2,1强看见M个事件D1,1、C1,1和E1,1,每个事件都由不同的成员定义,并且具有轮次号1。事件E2,1不能强看见由不同成员定义的轮次号为2的至少M个事件。因此,事件E2,1的轮次号为2。在一些实例中,V2X分布式数据库系统150中的第一个事件包括轮次号1。在其它实例中,分布式数据库V2X分布式数据库系统150中的第一个事件可以包括轮次号0或任何其它合适的编号。
“分叉”:如果事件X和事件Y是由同一成员定义和/或创建的并且二者中任一个也不是另一个的自祖先,则事件X是与事件Y的分叉。
分叉的“标识”:分叉可以由在彼此分叉的两个事件之后创建和/或定义的第三事件“标识”,如果这两个事件都是第三事件的祖先事件的话。在一些实例中,分叉的标识可以表示特定成员作弊。
事件的“标识”:如果事件X没有与祖先事件Y分叉的祖先事件Z,则X“标识”或“看见”Y。例如,在图3中,事件E2,1标识(也称为“看见”)事件B1,1,因为事件B1,1是事件E2,1的祖先,事件E2,1没有与事件B1,1分叉的祖先事件。在一些实例中,如果事件X不标识事件Y之前的分叉,则事件X可以标识事件Y。在这种实例中,即使事件X标识了在事件Y之后定义事件Y的成员的分叉,事件X也可以看见事件Y。事件X不标识在分叉之后该成员的事件。此外,如果一个成员定义了两个不同的事件,这两个事件都是该成员历史上的第一个事件,则事件X可以标识分叉,而不会标识该成员的任何事件。
事件的“强标识”(在此也称为“强看见”):如果事件X标识祖先事件Y,则事件X“强标识”(或“强看见”)由与X相同的成员创建和/或定义的祖先事件Y。如果存在满足以下条件的事件集S,则事件X“强标识”不是由与X相同的成员创建和/或定义的祖先事件Y:(1)包括X和Y;(2)是事件X的祖先;(3)是祖先事件Y的后代;(4)由X标识;(5)均可以标识Y;(6)由至少M个不同的成员创建和/或定义。例如,在图3中,如果M被定义为是大于N的2/3的最小整数(即,M=1+floor(2N/3),在本示例中是4),则事件E2,1强标识祖先事件D1,1,因为事件集D1,1、C1,1、B1,2和E2,1是至少4个事件的集合,这4个事件是事件E2,1的祖先和事件D1,1的后代,分别由4个成员D、C、B和E创建和/或定义,事件E2,1分别标识事件D1,1、C1,1、B1,2和E2,1,事件D1,1、C1,1、B1,2和E2,1都标识事件D1,1。同样,事件X(例如,事件E2,1)可以“强看见”事件Y(例如,事件D1,1),如果X可以看见由不同成员创建或定义的至少M个都可以看见Y的事件(例如,事件D1,1、C1,1、B1,2和E2,1)的话。
“第R轮第一个”事件(在此也称为“证人”):如果一个事件(1)具有轮次号R,并且(2)具有轮次号小于R的自父或没有自父,则该事件是“第R轮第一个”事件(或“证人”)。例如,在图3中,事件E2,1是“第2轮第一个”事件,因为其具有轮次号2且其自父是轮次号为1(即,小于2)的事件E1,1。在一些实例中,当且仅当事件X“强标识”至少M个“第R轮第一个”事件时,X的轮次增量被定义为1,其中,R是其父的最大轮次号。例如,在图3中,如果M被定义成是大于1/2倍N的最小整数,则M为3。然后,事件E2,1强标识M个事件D1,1、C1,1和E1,1,所有这些事件都是第1轮第一个事件。E2,1的两个父都是第1轮事件,E2,1强标识至少M个第1轮第一个事件,因此E2,1的轮次增量为1。图中标记为“RI=0”的事件都无法强标识至少M个第1轮第一个事件,因此它们的轮次增量为0。
“著名”事件:如果(1)第R轮事件X是“第R轮第一个”事件(或“证人”),并且(2)通过在投票委员会成员之间执行拜占庭协议达成“赞成”的决定,则第R轮事件X是“著名”的,如下所述。在一些实施例中,拜占庭协议可以由投票委员会VC成员的分布式数据库模块162执行。例如,在图3中,示出了5个第1轮第一个事件:D1,1、C1,1、B1,1、A1,1和E1,1。如果M被定义成是大于1/2倍N的最小整数,即3,则E2,1为第2轮第一个事件。随着协议运行的时间更长,链图180向上增长,如图3所示,其它4个成员也有第2轮第一个事件。每个第2轮第一个事件将对每个第1轮第一个事件是否“著名”进行“投票”。事件E2,1将对D1,1、C1,1和B1,1是著名的投赞成票,因为这些事件是事件E2,1可以标识的第1轮第一个事件。事件E2,1将对A1,1是著名的投反对票,因为E2,1无法标识A1,1。对于给定的第1轮第一个事件,如C1,1,其“著名”与否的状态通过首先计算每个第2轮第一个事件的投票来决定它是否著名。然后,这些投票将传播到第3轮第一个事件,然后传播到第4轮第一个事件,依此类推,直到最终就C1,1是否著名达成一致。对于其它的第一个事件,重复同样的过程。
拜占庭协议可以收集和使用“第R轮第一个”事件的投票和/或决定来标识“著名事件”。例如,如果“第R+1轮第一个事件”Y可以“标识”事件X,则Y投赞成票,否则投反对票。然后,为每个轮次G计算投票,G=R+2、R+3、R+4等,直到所有成员作出决定。在作出决定之前,为每个轮次G计算投票。其中一些轮次可以是“多数票”(majority)轮次,而其它一些轮次可以是“硬币正反面决定”(coin)轮次。在一些实例中,例如,第R+2轮是多数票轮次,之后的轮次被指定为多数票轮次或硬币正反面决定轮次(例如,根据预定义的时间表)。例如,在一些实例中,之后的一个轮次是多数票轮次还是硬币正反面决定轮次可以任意确定,但条件是不能有连续两个硬币正反面决定轮次。例如,可以预定义的是,将有5个多数票轮次,然后是1个硬币正反面决定轮次,然后是5个多数票轮次,然后是1个硬币正反面决定轮次,只要达成协议,就会重复。
在一些实例中,如果第G轮是多数票轮次,投票可以计算如下。如果存在第G轮事件,其强标识至少M个第G–1轮第一个事件的投票V(其中V为“赞成”或“反对”),则共识决定为V,拜占庭协议结束。否则,每个第G轮第一个事件计算一个新的投票,该投票是每个第G轮第一个事件都可以强标识的第G–1轮第一个事件的多数票。在平局而不是多数票的实例中,投票可以指定为“赞成”。
同样,如果X是第R轮证人(或第R轮第一个事件),则可以计算第R+1、R+2轮等轮的投票结果,其中每轮证人都在投票决定X是否是著名的。在第R+1轮中,每个能看见X的证人都投赞成票,其它证人投反对票。在第R+2轮中,每个证人根据它能强看见的第R+1轮证人的多数票来投票。同样,在第R+3轮中,每个证人都根据它能强看见的第R+2轮证人的多数票来投票。这可以持续多轮。在平局的情况下,投票可以设置为“赞成”。在其它实例中,平局可以设置为“反对”,也可以随机设置。如果任何一轮至少有M个证人投反对票,则选举结束,X并不是著名的。如果任何一轮至少有M个证人投赞成票,则选举结束,X是著名的。如果“赞成”和“反对”都没有至少M票,则选举将继续到下一轮。
例如,在图3中,考虑在图中所示事件之前的时间轴中发生的某轮第一个事件X。然后,每个第1轮第一个事件将对X是否著名进行投票。事件E2,1可以强标识第1轮第一个事件D1,1、C1,1和E1,1。因此,事件E2,1的投票基于事件D1,1、C1,1和E1,1的投票。如果这是多数票轮次,则E2,1将检查{D1,1、C1,1、E1,1}中是否至少M个投赞成票。如果确实有至少M个投赞成票,那么决定是“赞成”,协议已经达成。如果他们中至少有M个投反对票,那么决定是“反对”,协议已经达成。如果投票在任一方向没有至少M个,则E2,1的投票是D1,1、C1,1和E1,1那些中的多数票(如果平局,将通过投赞成票来打破平局)。然后,该投票将在下一轮中使用,继续进行,直到达成协议。
在一些实例中,如果第轮G是硬币正反面决定轮次,投票可以计算如下。如果事件X可以标识至少M个第G–1轮第一个事件的投票V(其中V为“赞成”或“反对”),则事件X将其投票更改为V。否则,如果第G轮是硬币正反面决定轮次,则每个第G轮第一个事件X将其投票更改为伪随机确定结果(在一些实例中类似于掷硬币),该结果被定义为事件X签名的最低有效位。
同样,在这种实例中,如果选举达到第R+K轮(硬币正反面决定轮),其中K是指定的系数(例如,3、6、7、8、16、32或任何其它适当数字的倍数),则选举不会在该轮结束。如果选举达到这一轮次,它可以继续至少一个更多的轮次。在这样的轮次中,如果事件Y是第R+K轮证人,那么如果它可以强看见第R+K–1轮中的至少M个证人正在投票V,那么Y将投票V。否则,Y将根据随机值投票(例如,根据事件Y的签名的位(例如,最低有效位、最高有效位、随机选择位),其中1=“赞成”,0=“反对”,或反之亦然,根据事件Y的时间戳,使用密码“共享硬币”协议和/或任何其它随机确定)。这种随机确定在创建Y之前是不可预测的,因此可以提高事件和共识协议的安全性。例如,在图3中,如果第2轮是硬币正反面决定轮次,并且投票是关于第1轮之前的某个事件是否著名,则事件E2,1将首先检查{D1,1、C1,1、E1,1}中的至少M个是投了赞成票还是反对票。如果是这样的话,那么E2,1将以同样的方式投票。如果在任何一个方向上都没有至少M个投票,则E2,1将有随机或伪随机投票(例如,基于E在创建和/或定义事件E2,1时为事件E2,1创建的数字签名的最低有效位)。在一些实例中,伪随机确定结果可以是密码共享硬币协议的结果,例如,其可以实现为轮次号的阈值签名的最低有效位。
成员的分布式数据库模块162可以被配置成使用用于计算上述伪随机确定结果的任何一种方法来实现V2X分布式数据库系统150。在一些实例中,分布式数据库模块162以某一顺序循环通过不同的方法。在其它实例中,分布式数据库模块162可以根据预定义的模式在不同的方法中进行选择。
“接收轮次”:如果R是这样的最小整数,即,使得至少一半的轮次号为R的著名的第R轮第一个事件(或著名证人)是事件X的后代和/或可以看见事件X,则该事件X具有“接收轮次”R。在其它实例中,可以使用任何其它适当的百分比。例如,在另一个实例中,如果R是这样的最小整数,即,使得至少预定百分比(例如,40%、60%、80%等)的轮次号为R的著名的第R轮第一个事件(或著名证人)是事件X的后代和/或可以看见事件X,则该事件X具有“接收轮次”R。
在一些实例中,事件X的“接收世代”可以计算如下:查找是哪个成员创建和/或定义了可以标识事件X的每个第R轮第一个事件;然后确定该成员的可以标识X的最早事件的世代号;然后将X的“接收世代”定义为该列表的中位数。
在一些实例中,事件X的“接收时间戳”T可以是包括每个成员的标识和/或看见X的第一个事件的事件中的时间戳的中位数。例如,事件D1,1的接收时间戳可以是事件C1,1、B1,1、B1,1和E1,1的时间戳的值的中位数。在一些实例中,事件D1,1的时间戳可以包括在中位数计算中。在其它实例中,X的接收时间戳可以是作为每个成员的用于标识或看见X的第一个事件的事件中的时间戳的任何其它值或值的组合。例如,X的接收时间戳可以基于时间戳的平均值、时间戳的标准差、修改的平均值(例如,通过从计算中删除最早和最晚的时间戳)等等。在其它实例中,可以使用扩展的中位数。
在一些实例中,事件的总顺序和/或共识顺序可以通过按事件的接收轮次(在此也称为顺序值)对事件进行排序,按其接收时间戳打破平局,并按其签名打破这些平局来计算。在其它实例中,事件的总顺序可以通过按事件的接收轮次对事件进行排序,按其接收世代打破平局,并按其签名打破这些平局来计算。
在一些实例中,可以在达成共识之后定义V2X分布式数据库系统150的状态。例如,如果S(R)是投票委员会VC的第R轮中的著名证人可以看见的事件集,那么最终S(R)中的所有事件都将具有已知的接收轮次和接收时间戳。此时,S(R)中事件的共识顺序是已知的,不会改变。一旦达到此点,成员就可以计算和/或定义事件的表示及其顺序。例如,成员可以按S(R)中事件的共识顺序计算这些事件的哈希值。然后,成员可以对哈希值进行数字签名,并将哈希值包括在成员定义的下一个事件中。这可用于通知其它成员,该成员已确定S(R)中的事件具有不会更改的给定顺序。在投票委员会VC的至少M个成员(或任何其它适当数量或百分比的成员)对S(R)的哈希值进行签名(并因此同意哈希值所代表的顺序)之后,事件的共识列表以及成员的签名列表可以形成一个单一文件(或其它数据结构),该文件(或其它数据结构)可用于证明共识顺序是S(R)中事件所要求的。在其它实例中,如果事件包含更新分布式数据库系统状态的事务(如本文所述),则哈希值可以是在以共识顺序应用S(R)中事件的事务之后分布式数据库系统的状态。
在示例性实施例中,V2X分布式数据库系统150的两个成员之间SL WLAN网络140中的事件同步信号流可以如下。特定地,在一些实施例中,分布式数据库成员(例如,成员A和B)可以交换事件以获得收敛。成员A可以随机选择与成员B同步。在一些实施例中,由于成员B可以由成员A从属于分布式数据库系统150的计算设备集合中选择,因此成员A可以连续多次选择成员B,或者可以在相当一段时间内不选择成员B。
如上所述,图3示出了具有5个成员A至E的投票委员会VC的链图180的示例。除了每个成员的第一个事件外,本示例中的每个事件都有两条向下线(一条深色线指向同一成员,一条浅色线指向另一个成员)。时间向上推进。
在成员A和B的示例中,它们之间的同步可以描述如下:成员A向成员B发送存储在成员A的哈希图180版本中的事件;成员B创建一个新事件,其中该新事件包含:成员B创建的最后一个事件的哈希H1和成员A创建的最后一个事件的哈希H2,以及成员B的数字签名;成员B向成员A发送存储在成员B的哈希图180版本中的事件;成员B创建一个新事件,其中该新事件包含:成员A创建的最后一个事件的哈希H1和成员B创建的最后一个事件的哈希H2,以及成员A的数字签名。成员A向成员B发送该事件;成员A计算事件的总顺序,作为成员A的哈希图180版本的函数;成员B计算事件的总顺序,作为成员B的哈希图180版本的函数。
在图3的示例中,事件B4,2是由成员B创建和/或定义,作为与成员C同步的结果和之后的结果。事件B4,2包括事件B4,1(成员B创建的先前事件)的哈希H1和事件C4,1(成员C创建的先前事件)的哈希H2。例如,在一些实施例中,包括在事件B4,2中的事件B4,1的哈希包括指向其直接祖先事件(事件A3,2和B3,2)的指针。因此,成员节点B可以使用事件B4,2引用事件A3,2和B3,2,并使用指向先前事件的指针重建哈希图。在一些实例中,事件B4,2可以说成是链接到链图180中的其它事件,因为事件B4,2可以通过较早的祖先事件引用链图180中的每个事件。例如,事件B4,2通过事件B4,1链接到事件A3,2。又如,事件B4,2通过事件C4,1和事件D3,2链接到事件E3,1。
如上所述,在示例性实施例中,每个事件302包括数据(Data),该数据可以包括关于车辆周围物理环境和车辆物理操作环境的环境数据。此数据可用于使用自成员的前一事件以来发生的环境活动信息来更新哈希图事件。例如,事件B4,2可以包括自事件B4,1创建以来由成员B记录的环境数据。因此,当将事件B4,2与其它成员同步时,成员B可以共享此信息。因此,由成员B记录的环境数据可以与事件关联,并与其它成员共享。
在示例性实施例中,成员之间的同步仅限于未知事件。例如,成员A不向成员B发送成员B创建的事件,也不发送所述事件的祖先事件。同样,在这些实施例中,成员B向成员A发送成员A尚未存储的事件,并且不发送成员A已经存储的事件。
在示例性实施例中,一旦事件已经由投票委员会的成员排序和认证,该信息就被表示在新事件中,然后使用随机同步交换来传播到V2X分布式数据库系统150的其余成员。
随机投票委员会共识过程概述
作为总结,图8示出了可以由作为SL V2X通信网络140内V2X分布式数据库系统150的成员的计算设备115(i)执行的方法。如块802所示,计算设备115(i)存储链图180的成员版本。链图180包括由计算设备115(i)创建的事件302和通过无线网络从作为V2X分布式数据库系统150成员的其它计算设备115接收的事件302。如块804中所示,计算设备115(i)确定其是否为投票委员会VC的成员,该投票委员会VC仅包括作为V2X分布式数据库系统150的成员的计算设备115的子集。如块806中所示,如果计算设备115(i)是投票委员会成员,则计算设备115(i)使用SL V2X通信网络140与投票委员会VC的其它成员一起参与分布式共识算法,以定义链图180中的事件302的顺序,并将所述顺序作为新事件302存储在链图180的成员版本中。
在示例性实施例中,投票委员会VC的成员资格在计算设备115(i)为V2X分布式数据库系统150的成员的时间段内变化,并且确定计算设备115(i)是否为投票委员会成员在所述时间段内多次执行。
在示例性实施例中,计算设备根据闲谈协议向其它计算设备随机发送其已经创建的事件,以及从其它计算设备接收事件。在示例实施例中,分布式共识算法包括拜占庭协议。
在示例性实施例中,计算设备115(i)通过如图5所示的随机非交互式选择程序500被指定给投票委员会VC。在此方面,计算设备115(i)用于通过以下方式确定计算设备115(i)是否为投票委员会VC成员:确定与计算设备115(i)关联的成员ID是否匹配预定标准,如果匹配,则确定计算设备115(i)是投票委员会成员。在一些示例中,确定与计算设备关联的成员ID是否匹配预定标准包括:确定成员ID内的位序列是否匹配预定位序列(例如,4LSB匹配)。在一些示例中,计算设备115(i)通过以固定时间间隔循环移位成员ID的位来更新其成员ID。
在示例性实施例中,计算设备115(i)通过如图6和图7所示的随机交互式选择程序被指定给投票委员会VC。在此方面,计算设备115(i)用于根据计算设备115(i)是否已经从作为投票委员会VC的现有成员的另一个计算设备115接收到投票委员会令牌,确定计算设备115(i)是否为投票委员会成员。此外,在计算设备115(i)已经是投票委员会VC成员之后(例如,在预定义的时间间隔之后),计算设备115(i)用于从其它计算设备115中指定用以替换计算设备115(i)的替换计算设备115(j),作为投票委员会VC成员。在示例性实施例中,指定替换计算设备115(j)包括:随机选择作为V2X分布式数据库系统150成员的其它计算设备115中的一个作为替换计算设备115(j);将投票委员会令牌发送给替换计算设备115(j);从替换计算设备115(j)接收确认;在认证确认后,向作为投票委员会VC成员的任一其它计算设备115通知替换计算设备115(j)指定为投票委员会VC成员。
概述
本公开是参考附图做出的,附图中示出了实施例。但是,可以使用许多不同的实施例,因此描述不应解释为局限于本文中阐述的实施例。相反,提供这些实施例是为了使得本公开彻底和完整。所示系统、模块和设备的功能元素的单独框或所示分离不一定需要这些功能物理分离,因为这些元素之间的通信可以在没有任何这种物理分离的情况下通过消息传递、函数调用、共享内存空间等方式发生。因此,尽管为了便于解释,本文单独说明了这些功能,但是这些功能不需要在物理或逻辑上分离的平台中实现。不同的设备可以具有不同的设计,使得尽管一些设备在固定功能硬件中实现一些功能,但其它设备可以在可编程处理器中实现这些功能,该处理器具有从机器可读介质获得的代码。
还公开了公开范围内的所有值和子范围。此外,尽管本文所公开和示出的系统、设备和过程可以包括特定数量的元件/部件,但是可以修改这些系统、设备和部件以包括更多或更少此类元件/部件。例如,尽管任何所公开的元件/部件可以为单个数量,但是可以修改本文所公开的实施例以包括多个此类元件/部件。本文所描述的主题旨在覆盖和涵盖所有适当的技术变更。
尽管就方法而言至少部分地描述了本公开,但本领域普通技术人员将理解,本公开还涉及用于执行所描述的方法的至少一些方面和特征的各种部件,无论是通过硬件(DSP、GPU、ASIC或FPGA)、软件或其组合。因此,本公开的技术方案可以体现在非易失性或非瞬时性机器可读介质(例如,光盘、闪存等)中,该介质中有形地存储有可执行指令,该可执行指令使处理设备(例如,车辆控制系统)执行本文公开的方法的示例。
本公开可以其它特定形式体现,而不脱离权利要求的主题。所描述的示例实施例在各方面都仅仅是示意性的,而不是限制性的。本公开旨在涵盖和覆盖所有适当的技术变化。因此,本公开的范围由所附权利要求而不是由上述说明书来描述。权利要求的范围不应受到示例中阐述的实施例的限制,而应给予与整个说明书一致的最广泛的解释。
Claims (20)
1.一种在计算设备处执行的方法,其特征在于,所述计算设备是使用无线网络实现的分布式数据库系统成员,所述方法包括:
在所述计算设备处存储链图的成员版本,其中,所述链图包括由所述计算设备创建的事件和通过所述无线网络从作为所述分布式数据库系统成员的其它计算设备接收的事件;
确定所述计算设备是否是投票委员会成员,其中,所述投票委员会仅包括作为所述分布式数据库系统成员的计算设备子集;
当所述计算设备是投票委员会成员时,使用所述无线网络与所述投票委员会的其它成员一起参与分布式共识算法以定义所述链图中的事件的顺序,并将所述顺序作为新事件存储在所述链图的所述成员版本中。
2.根据权利要求1所述的方法,其特征在于,所述投票委员会的成员资格在所述计算设备是所述分布式数据库系统的成员的时间段内变化,所述确定所述计算设备是否是投票委员会成员在所述时间段内多次执行。
3.根据权利要求1或2所述的方法,其特征在于,包括:使用闲谈协议与其它计算设备交换事件。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述分布式共识算法包括拜占庭协议。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述确定所述计算设备是否是投票委员会成员包括:
确定与所述计算设备关联的成员ID是否匹配预定标准,如果匹配,则确定所述计算设备是所述投票委员会成员。
6.根据权利要求5所述的方法,其特征在于,所述确定与所述计算设备关联的成员ID是否匹配预定标准包括:确定所述成员ID内的位序列是否匹配预定位序列。
7.根据权利要求5或6所述的方法,其特征在于,包括:通过循环移位所述成员ID的位以固定时间间隔来更新所述成员ID。
8.根据权利要求1至4中任一项所述的方法,其特征在于,所述确定所述计算设备是否是投票委员会成员包括:确定所述计算设备是否已从作为所述投票委员会现有成员的计算设备接收到投票委员会令牌。
9.根据权利要求5或8所述的方法,其特征在于,包括:从所述其它计算设备中指定替换计算设备,以替换所述计算设备作为所述投票委员会成员。
10.根据权利要求9所述的方法,其特征在于,所述指定替换计算设备包括:
随机选择作为所述分布式数据库系统成员的所述其它计算设备中的一个作为所述替换计算设备;
将所述投票委员会令牌发送给所述替换计算设备;
从所述替换计算设备接收确认;
在认证所述确认后,向作为所述投票委员会成员的任一其它计算设备通知所述替换计算设备指定为所述投票委员会成员。
11.一种计算设备,其特征在于,用于作为使用无线网络实现的分布式数据库系统的成员,所述计算设备包括:
处理器系统;
无线收发器,连接到所述处理器系统,用于使用无线网络与其它计算设备交换信号;
非瞬时性存储器,连接到所述处理器系统,并存储配置所述处理器系统进行以下操作的指令:
在所述计算设备处存储链图的成员版本,其中,所述链图包括由所述计算设备创建的事件和通过所述无线网络从作为所述分布式数据库系统成员的其它计算设备接收的事件;
确定所述计算设备是否是投票委员会成员,其中,所述投票委员会仅包括作为所述分布式数据库系统成员的计算设备子集;当所述计算设备是投票委员会成员时,使用所述无线网络与所述投票委员会的其它成员一起参与分布式共识算法以定义所述链图中的事件的顺序,并将所述顺序作为新事件存储在所述链图的所述成员版本中。
12.根据权利要求11所述的计算设备,其特征在于,所述投票委员会的成员资格在所述计算设备是所述分布式数据库系统的成员的时间段内变化,所述指令配置所述处理器系统在所述时间段内多次确定所述计算设备是否是所述投票委员会成员。
13.根据权利要求11或12所述的计算设备,其特征在于,所述指令配置所述处理器系统以使所述计算设备使用闲谈协议向所述其它计算设备随机发送其创建的事件。
14.根据权利要求11至13中任一项所述的计算设备,其特征在于,所述分布式共识算法包括拜占庭协议。
15.根据权利要求11至14中任一项所述的计算设备,其特征在于,所述指令配置所述处理器系统在与所述计算设备关联的成员ID匹配预定标准时确定所述计算设备是所述投票委员会成员。
16.根据权利要求15所述的计算设备,其特征在于,如果所述成员ID或所述成员ID内的位序列匹配预定位序列,则与所述计算设备关联的所述成员ID匹配所述预定标准。
17.根据权利要求15或16所述的计算设备,其特征在于,所述指令配置所述处理器系统通过循环移位所述成员ID的位以固定时间间隔来更新所述成员ID。
18.根据权利要求11至14中任一项所述的计算设备,其特征在于,所述指令配置所述处理器系统在所述计算设备已从作为所述投票委员会现有成员的计算设备接收到投票委员会令牌时,确定所述计算设备是所述投票委员会成员。
19.根据权利要求15或18所述的计算设备,其特征在于,所述指令配置所述处理器系统从所述其它计算设备中指定替换计算设备,以替换所述计算设备作为所述投票委员会成员。
20.根据权利要求19所述的计算设备,其特征在于,所述指令配置所述处理器系统通过以下方式指定所述替换计算设备:
随机选择作为所述分布式数据库系统成员的所述其它计算设备中的一个作为所述替换计算设备;
使用所述无线收发器将所述投票委员会令牌发送给所述替换计算设备;
使用所述无线收发器从所述替换计算设备接收确认;
在认证所述确认后,向作为所述投票委员会成员的任一其它计算设备通知所述替换计算设备指定为所述投票委员会成员。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/843,612 US11722589B2 (en) | 2020-04-08 | 2020-04-08 | Rapid ledger consensus system and method for distributed wireless networks |
US16/843,612 | 2020-04-08 | ||
PCT/CN2021/086027 WO2021204220A1 (en) | 2020-04-08 | 2021-04-08 | Rapid ledger consensus system and method for distributed wireless networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115398940A true CN115398940A (zh) | 2022-11-25 |
Family
ID=78006245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180026862.XA Pending CN115398940A (zh) | 2020-04-08 | 2021-04-08 | 用于分布式无线网络的快速账本共识系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11722589B2 (zh) |
EP (1) | EP4122184B1 (zh) |
CN (1) | CN115398940A (zh) |
WO (1) | WO2021204220A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230370278A1 (en) * | 2022-05-16 | 2023-11-16 | Ford Global Technologies, Llc | Vehicle network hashing |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107968998A (zh) * | 2017-11-28 | 2018-04-27 | 浙江理工大学 | 一种基于信任机制的分布式无线网络安全保障方法 |
WO2018118930A1 (en) * | 2016-12-19 | 2018-06-28 | Swirlds, Inc. | Methods and apparatus for a distributed database that enables deletion of events |
US20190058592A1 (en) * | 2016-02-23 | 2019-02-21 | nChain Holdings Limited | Blockchain implemented counting system and method for use in secure voting and distribution |
CN109964446A (zh) * | 2018-06-08 | 2019-07-02 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
US20190289068A1 (en) * | 2017-06-07 | 2019-09-19 | Zhongan Information Technology Service Co., Ltd. | Method, apparatus and system for realizing communication between blockchains |
WO2020005328A2 (en) * | 2018-02-09 | 2020-01-02 | Orbs Ltd. | Decentralized application platform for private key management |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030055719A1 (en) * | 2001-09-20 | 2003-03-20 | Faigle Christopher T. | Remote participation and voting in a meeting |
US9117220B2 (en) * | 2003-06-16 | 2015-08-25 | Meetup, Inc. | Web-based interactive meeting facility with revenue generation through sponsorship |
US20050263594A1 (en) * | 2004-06-01 | 2005-12-01 | Therese Onischuk | Computerized voting system |
JP4505763B2 (ja) * | 2007-01-31 | 2010-07-21 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | ノードクラスタの管理 |
GB2459640A (en) * | 2008-04-03 | 2009-11-04 | Hewlett Packard Development Co | Selecting content for delivery to a group of users comprising receiving a plurality of user identifier tags |
US8108780B2 (en) * | 2008-04-16 | 2012-01-31 | International Business Machines Corporation | Collaboration widgets with user-modal voting preference |
US9548950B2 (en) * | 2008-09-26 | 2017-01-17 | Jeffrey David Henshaw | Switching camera angles during interactive events |
US10454997B2 (en) * | 2012-09-07 | 2019-10-22 | Avigilon Corporation | Distributed physical security system |
US20180007178A1 (en) * | 2016-04-13 | 2018-01-04 | Dinesh Subhraveti | Method and system of decoupling applications from underlying communication media through shim layers |
US10672092B2 (en) * | 2016-04-22 | 2020-06-02 | FiscalNote, Inc. | Systems and methods for mapping to milestones in a policymaking process |
US9646029B1 (en) | 2016-06-02 | 2017-05-09 | Swirlds, Inc. | Methods and apparatus for a distributed database within a network |
SI3539026T1 (sl) | 2016-11-10 | 2022-05-31 | Swirlds, Inc. | Postopki in naprave za porazdeljeno bazo podatkov, vključno z anonimnimi vnosi |
US20200059369A1 (en) * | 2017-05-16 | 2020-02-20 | Peking University Shenzhen Graduate School | Determining consensus by parallel proof of voting in consortium blockchain |
US11626993B2 (en) * | 2017-05-22 | 2023-04-11 | Visa International Service Association | Network for improved verification speed with tamper resistant data |
KR20190067581A (ko) * | 2017-12-07 | 2019-06-17 | 한국전자통신연구원 | 블록체인 트랜잭션 분산 처리 장치 및 방법 |
US20200026699A1 (en) * | 2018-07-20 | 2020-01-23 | True Blockchain Technology Ltd. | Highly Performant Decentralized Public Ledger with Hybrid Consensus |
CN108964926B (zh) | 2018-08-28 | 2021-02-02 | 成都信息工程大学 | 一种用户信任协商建立方法、用户行为数据存储方法及介质 |
-
2020
- 2020-04-08 US US16/843,612 patent/US11722589B2/en active Active
-
2021
- 2021-04-08 EP EP21785686.3A patent/EP4122184B1/en active Active
- 2021-04-08 WO PCT/CN2021/086027 patent/WO2021204220A1/en unknown
- 2021-04-08 CN CN202180026862.XA patent/CN115398940A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190058592A1 (en) * | 2016-02-23 | 2019-02-21 | nChain Holdings Limited | Blockchain implemented counting system and method for use in secure voting and distribution |
WO2018118930A1 (en) * | 2016-12-19 | 2018-06-28 | Swirlds, Inc. | Methods and apparatus for a distributed database that enables deletion of events |
US20190289068A1 (en) * | 2017-06-07 | 2019-09-19 | Zhongan Information Technology Service Co., Ltd. | Method, apparatus and system for realizing communication between blockchains |
CN107968998A (zh) * | 2017-11-28 | 2018-04-27 | 浙江理工大学 | 一种基于信任机制的分布式无线网络安全保障方法 |
WO2020005328A2 (en) * | 2018-02-09 | 2020-01-02 | Orbs Ltd. | Decentralized application platform for private key management |
CN109964446A (zh) * | 2018-06-08 | 2019-07-02 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
Also Published As
Publication number | Publication date |
---|---|
EP4122184A4 (en) | 2023-10-11 |
US20210319010A1 (en) | 2021-10-14 |
WO2021204220A1 (en) | 2021-10-14 |
EP4122184B1 (en) | 2024-05-15 |
EP4122184A1 (en) | 2023-01-25 |
US11722589B2 (en) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111601258B (zh) | 一种基于区块链的车联网节点数据安全通信方法 | |
Guo et al. | Blockchain-inspired event recording system for autonomous vehicles | |
CN109451467B (zh) | 一种基于区块链技术的车载自组织网络数据安全共享与存储系统 | |
EP3698518B1 (en) | Primary and secondary blockchain device | |
Guo et al. | Proof-of-event recording system for autonomous vehicles: A blockchain-based solution | |
CN109840767B (zh) | 基于区块链技术的多方公平合约存证方法和系统 | |
US11539693B2 (en) | Method for providing random numbers for control units of a vehicle network, and vehicle network for performing said method | |
CN109949034A (zh) | 基于可信性评估的区块链共识方法 | |
CN110445788B (zh) | 一种车载自组网环境下面向内容的信任评估系统及方法 | |
CN113268543A (zh) | 一种车联网中基于区块链的安全内容共享管理方法 | |
CN112990921B (zh) | 基于区块链的数据处理方法、装置、计算机及存储介质 | |
US20220398149A1 (en) | Minimizing transport fuzzing reactions | |
CN112116349B (zh) | 面向高吞吐率的图式账本的随机化共识方法和装置 | |
CN115398940A (zh) | 用于分布式无线网络的快速账本共识系统和方法 | |
CN115714650A (zh) | 基于区块链的船舶数据交换机制及航行事件通告和验证系统 | |
CN113992526A (zh) | 一种基于可信度计算的联盟链跨链数据融合方法 | |
US20220283796A1 (en) | Software updates based on transport-related actions | |
KR20200050150A (ko) | 블록체인 기반의 교통 정보 처리 방법 및 시스템 | |
US20240025293A1 (en) | Transport battery health | |
Diallo et al. | An improved PBFT-based consensus for securing traffic messages in VANETs | |
Tang et al. | PSSBP: A privacy-preserving scope-query searchable encryption scheme based on blockchain for parking lots sharing in vehicular networks | |
US20230226941A1 (en) | Electric transport charging determination | |
US11411766B2 (en) | Secure controller area network (CAN) transceiver | |
US20220222762A1 (en) | Transport recharge notification | |
Rajendar et al. | Blockchain for Securing Autonomous Vehicles |
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 |