主页 > imtoken安卓官方下载 > 区块链主链加并行多子链随机并行拜占庭容错共识方法专利

区块链主链加并行多子链随机并行拜占庭容错共识方法专利

imtoken安卓官方下载 2023-07-06 05:25:04

请参考图1,图1是本发明提出的主链加多个平行子链的系统逻辑图。 本发明包括1条主链和n条平行子链,其中n=1….X,每个节点存储主链的数据,系统初始分配存储某条子链的所有数据,并且每个节点还包括子链跨链消息队列。 其中,主链数据不存储具体的交易,而是存储系统的全局信息,至少包括:子链的数量、子链的区块头、账户与子链的映射关系、合约与子链映射关系、数据节点与子链映射关系、验证节点与子链映射关系、跨链请求/响应通知信息、所有合约代码、子链负载、是否子链-链生效等。 其中,跨链通知消息为子链跨链消息队列中的消息详情对应的通知消息。 每个子链都有一个子链id,每个节点都有一个节点id。 本文中子链信息指的是子链id,子链位置包括源子链的子链id和对应的子链节点连接信息。 子链节点连接信息存储在数据节点子链映射表中,主要包括位于这些节点上的子链、这些节点的IP地址和端口。 [0050] 其中,系统初始分配给每个节点的子链的所有数据包括对应子链的账户、合约和交易。 子链所有数据中的合约,不仅包括合约代码,还包括合约状态等完整信息。 其中,子链跨链消息队列包括两种类型,一种是跨链请求队列,一种是为每个目标子链创建,存储发送到目标子链的请求消息详情,以及不同的目标子链被划分到不同的队列中; 另一个是跨链响应队列,它是为每条源链创建的,用于存储发送到源链的响应消息的详细信息,不同的源链分为不同的队列。

所述各节点通过P2P网络实现点对点访问,实现上述架构方案,在网络层中,除了包括主链P2P外,还包括子链P2P,主链P2P网络用于子链向主链提交数据(子链区块头、子链向主链修改信息、跨链通知信息)、主链数据传播、跨链通信协调(跨链节点间通知信息通信) ). 子链P2P又分为两类:子链数据P2P和子链验证P2P。 每个存储子链所有数据的节点通过子链数据P2P网络同步子链交易和区块。 每个负责验证同一子链交易的节点通过子链验证P2P对交易和区块进行验证和签名。 对于某个节点,它可能是某个子链数据的存储者,参与子链数据P2P网络,也可能是同一条子链或其他子链的验证者,参与子链验证P2P网络。 节点的子链角色初始由系统分配,存储者角色相对不变,而由哪条子链负责的验证是动态随机调整的,每个出块周期为不同的。 这是为了在实现可扩展性的同时保证可扩展性。 安全,避免 1% 攻击的方法。 请参考图2所示,为本发明中单节点的架构图。 每个节点存储主链数据、分配的子链数据和子链的跨链消息队列。 请同时参考图。 图5是基于图4节点架构的多节点部署方案。 3. 该方案中的示例列出了 6 个节点 A、B、C、D、E 和 F。

sitehzd.com 区块链主链_子链USDT与主链区别_区块链主链和侧链

每个节点存储主链的数据,其中节点A、B、C最初由系统分配存储子链x的数据,形成子链x的数据P2P网络。 节点 D、E、F 是系统初始分配的,用于存储子链 y 的数据,形成子链 y 的数据 P2P 网络。 图中所示的方案包括一条主链和两条平行的x,y子链。 图中此刻,节点A、D、E负责验证子链x的数据,节点B、C、F负责验证子链y的数据。 请参考图4,主链+平行多子链系统架构下主链与子链的交互。 子链生成区块后,会通过主链P2P广播子链区块头、子链对主链的修改、子链集合跨链请求/响应通知信息网络。 所有子链的提交将形成主链区块并广播给所有节点。 每个节点收到主链区块后,会更新本地主链,保持所有节点的主链一致,根据主链区块头中的跨链请求/响应通知消息,通知其他子链对当前子链的获取请求或响应的链。 链信息,直接连接到其他子链节点获取请求/响应细节并进行处理。 [0054] 在该架构下子链USDT与主链区别,其他子链交易可以使用主链区块头进行验证。 在这种架构下,由于每个节点最初都是由系统分配来存储某条子链的所有数据,因此是其对应子链的全节点。 同时,每个节点存储主链的数据,是所有其他子链的轻节点。 每个节点都是主链的全节点。 [0055] 默克尔证明:轻节点向全节点发起证明请求,询问全节点的完整默克尔树中是否存在指定的数据或交易; 全节点返回一个默克尔给轻节点的Gram证明路径,由轻节点计算验证存在性。

子链USDT与主链区别_sitehzd.com 区块链主链_区块链主链和侧链

上述方案中,实际交易不通过主链完成,主链只记录子链的汇总信息,大大提高了区块链的性能,随机选择子链的验证节点,可避免总量的1%,大大提高了安全性能。 该技术方案利用轻节点的特点和默克尔证明进行无状态验证,其原理如下: [0057] 每个验证节点都会存储主链的完整数据,主链的每笔交易记录包括每个子链的区块头信息,区块头包含子链状态树的根哈希、交易树的根哈希和回执树的根哈希,即每个验证节点是一个每个子链的轻节点。 [0058] 每个提案节点将存储其子链的完整数据。 提案节点在提交新区块时,需要将每笔交易、交易执行过程中访问的数据、数据的默克尔证明路径、执行结果集打包在一起,广播给验证节点。 验证节点执行提案节点提交的交易,执行过程中遇到的数据需要通过默克尔认证路径验证数据的有效性。 执行完成后,执行产生的结果集和提案节点提交需要进行比较,验证正确性。 [0060] 验证节点广播通过验证的新子链区块,负责主链共识的节点将子链新提交的区块头作为交易打包到新区块中存储它在主链上。 [0061] 本发明的REPB共识算法的最终目标是为主链和各子链选择共识节点来完成交易。

sitehzd.com 区块链主链_子链USDT与主链区别_区块链主链和侧链

REPB共识算法中,R代表Random(随机选择共识节点),E代表Encrypt(AES加密随机值),P代表Parallel(并行处理多链数据),B代表BFT(拜占庭容错共识机制)。 [0062] 基于上述系统架构,所有节点包含主链的数据,每个节点包含系统分配的某条子链的所有数据。 REPB共识算法的核心是:在每一轮共识开始时,从所有节点中选出负责主链的共识节点(提案节点、背书节点和验证节点),并从存储所有节点的节点中选出子链数据 负责该子链的提案节点,从其余所有节点中选出负责该子链的背书节点和验证节点。 以1050个节点为例,每个节点都存储了主链数据,每21个节点分配同时存储某条子链的所有数据,共50条链,链1...链50、每次共识开始时,从全部1050个节点中随机抽取21个节点作为主链共识节点,包括主链提案节点、主链背书节点、主链验证节点。 然后从链1剩余的1029个节点中的21个节点(或少于21个)中随机抽取7个共识节点作为子链1的子链提案节点,并从链1剩余的1022个节点中随机抽取7个背书节点和7个验证节点。 其他子链等等。 链 1 的背书节点和验证节点是从 1050 个节点中随机选择的,所以总共可以抵御 1% 的黑客攻击。

区块链主链和侧链_子链USDT与主链区别_sitehzd.com 区块链主链

请参考图5,系统合约存储了共识节点的信息,包括节点公网IP地址、节点初始权重、节点地址、节点公钥、用节点加密的AES密钥公钥。 系统合约对外提供管理共识节点的接口,管理权限归部署青石链的节点账户所有。 新的共识节点需要满足一定的硬件要求,需要有公网IP。 通过CA认证节点认证后,即可作为共识节点,记录在系统合约中。 [0065] 整体共识流程如下 [0066] S1:客户端通过P2P网络广播交易请求,并附上交易发起人的签名。 [0067] S2:网络中所有参与的共识节点监听P2P网络中的交易请求,并缓存在本地内存中。 S3:原主链共识节点根据主链当前区块高度、上一个区块的提议者地址、上一个区块的根哈希、上一个区块的vrf值计算出512个哈希,使用一个随机数函数从 512 位哈希值中随机选择 16 位,用取模法分别计算出主链和各子链当前高度区块的提案节点、背书节点、验证节点。 在选择子链提案节点时,从负责存储子链所有数据的节点中随机选择一个一个。 [0069] S4:子链共识节点进行拜占庭共识,区块生成后子链USDT与主链区别,将区块头以交易的形式提交给主链。 [0070] S5:主链对子链提交的区块头信息进行拜占庭共识生成区块,本轮共识结束。

sitehzd.com 区块链主链_子链USDT与主链区别_区块链主链和侧链

[0071] 请参见图6,为子链共识流程。 [0072] S4-1:子链提案节点验证并执行客户端提交的交易,将交易、交易执行结果状态、交易使用的读写集、默克尔路径打包产生区块的数据证明。 S4-2:子链背书节点收集网络中的提议区块,确认提议者是否有签名权、签名的正确性、vrf值的正确性,为最高的提议节点背书验证通过后的权重进行签名,然后广播到P2P网络。 [0074] S4-3:子链验证节点收集网络中背书节点的投票区块,对得票最高的区块进行无状态验证和签名,然后广播到P2P网络。 [0075] S4-4:将子链中2/3验证节点签名的区块作为最终不可逆区块记录在子链上。 [0076] 主链共识流程 [0077] S5-1:主链提案节点收到50个子链共识节点发送的新区块的区块头后,进行签名验证,确认子链验证节点的签名-链 2/3 。 然后使用google的开源代码计算出一个新的vrf随机值,经过AES加密后,写入一个新的区块头。 计算vrf随机值开源代码地址:。 S5-2:主链背书节点,收集网络中的提议区块,确认提议者是否有签名权,签名的正确性,vrf值的正确性,为最高的提议节点背书验证通过后的权重进行签名,然后广播到P2P网络。

[0079] S5-3:主链验证节点收集网络中背书节点的投票区块,对得票最高的区块进行验证和签名,然后广播到P2P网络。 [0080] S5-4:将主链中2/3验证节点签名的区块作为最终不可逆区块记录在主链上,本轮共识结束。 [0081] REPB共识算法的单链性能指标如表1-1所示,多链指标如表1-2所示。 [0082] CPU内存共识节点数出块时间TPS6 core i7 16G 21 1s 1500 其原理解释如下: [0087] VRF:Verifiable Random Function,可验证的随机函数。 结合密钥的哈希函数,通过私钥对哈希数据进行签名,通过公钥验证哈希结果签名的正确性。 [0088] AES: Advanced Encryption Standard,高级加密标准,是一种对称密钥加密算法。 [0089] Sha512:Secure Hash Algorithm,一种512位的安全哈希算法。 默克尔树:区块链底层基础数据结构是二叉树,叶子节点的值是数据集的单元数据,非叶子节点的值是根据值计算的哈希值的叶节点。

[0091] 无状态验证:验证节点不需要将所有数据存储在链上,但可以根据交易和交易所需的读写数据集执行交易并验证交易的真实性, Merkle 树路径证明。 [0092] tps:transaction per second,每秒交易量,是表示区块链系统处理能力的性能指标。 1%攻击:分片技术需要解决的问题,如果:1000个节点负责100个分片,每个分片由10个节点处理,那么黑客只需要控制其中的10个节点,即:1%的节点可以完全控制一个碎片。