基于区块链的上链共识算法匹配方法及装置
技术领域
本发明实施例涉及区块链技术领域,具体而言,涉及一种基于区块链 的上链共识算法匹配方法及装置。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算 机技术的新型应用模式。现如今,区块链的应用领域越来越广泛,所涉及 到的业务越来越繁杂,这也导致了区块链的网络性能越来越差。
发明内容
有鉴于此,本发明提供了一种基于区块链的上链共识算法匹配方法及 装置。
本发明实施例提供了一种基于区块链的上链共识算法匹配方法,应用 于与客户端通信连接的服务端,所述方法包括:
获得所述客户端实时发送的上链请求指令;
解析获取所述上链请求指令中包括的欲上链区块信息和待上链区块链 的索引信息;
根据所述索引信息查找出所述待上链区块链,获取所述待上链区块链 中的每个区块包含的区块信息;
基于获取得到的区块信息识别出所述待上链区块链的类型,并基于所 述类型为所述欲上链区块信息以及所述待上链区块链实时匹配对应的共识 算法。
可选地,基于获取得到的区块信息识别出所述待上链区块链的类型的 步骤,包括:
判断获取得到的区块信息中是否存在多重签名信息;
若获取得到的区块信息中存在所述多重签名信息,判定所述待上链区 块链的类型为联盟链;
若获取得到的区块信息中不存在所述多重签名信息,判断获取得到的 区块信息中是否存在读写权限标识信息,若存在所述读写权限标识信息, 判定所述待上链区块链的类型为私有链,若不存在所述读写权限标识信息, 判定所述待上链区块链的类型为公共链。
可选地,基于所述类型为所述欲上链区块信息以及所述待上链区块链 实时匹配对应的共识算法的步骤,包括:
若所述类型为公共链,为所述欲上链区块信息以及所述待上链区块链 匹配工作量证明算法或者权益证明算法。
可选地,基于所述类型为所述欲上链区块信息以及所述待上链区块链 实时匹配对应的共识算法的步骤,包括:
若所述类型为联盟链,为所述欲上链区块信息以及所述待上链区块链 匹配实用拜占庭容错共识算法。
可选地,基于所述类型为所述欲上链区块信息以及所述待上链区块链 实时匹配对应的共识算法的步骤,包括:
若所述类型为私有链,为所述欲上链区块信息以及所述待上链区块链 匹配RAFT共识算法或PAXOS共识算法。
本发明实施例还提供了一种基于区块链的上链共识算法匹配装置,应 用于与客户端通信连接的服务端,所述装置包括:
指令获取模块,用于获得所述客户端实时发送的上链请求指令;
指令解析模块,用于解析获取所述上链请求指令中包括的欲上链区块 信息和待上链区块链的索引信息;
信息查找模块,用于根据所述索引信息查找出所述待上链区块链,获 取所述待上链区块链中的每个区块包含的区块信息;
共识算法匹配模块,用于基于获取得到的区块信息识别出所述待上链 区块链的类型,并基于所述类型为所述欲上链区块信息以及所述待上链区 块链实时匹配对应的共识算法。
可选地,所述共识算法匹配模块通过以下方式基于获取得到的区块信 息识别出所述待上链区块链的类型:
判断获取得到的区块信息中是否存在多重签名信息;
若获取得到的区块信息中存在所述多重签名信息,判定所述待上链区 块链的类型为联盟链;
若获取得到的区块信息中不存在所述多重签名信息,判断获取得到的 区块信息中是否存在读写权限标识信息,若存在所述读写权限标识信息, 判定所述待上链区块链的类型为私有链,若不存在所述读写权限标识信息, 判定所述待上链区块链的类型为公共链。
可选地,基于所述类型为所述欲上链区块信息以及所述待上链区块链 实时匹配对应的共识算法的步骤,包括:
若所述类型为公共链,为所述欲上链区块信息以及所述待上链区块链 匹配工作量证明算法或者权益证明算法。
可选地,基于所述类型为所述欲上链区块信息以及所述待上链区块链 实时匹配对应的共识算法的步骤,包括:
若所述类型为联盟链,为所述欲上链区块信息以及所述待上链区块链 匹配实用拜占庭容错共识算法。
可选地,基于所述类型为所述欲上链区块信息以及所述待上链区块链 实时匹配对应的共识算法的步骤,包括:
若所述类型为私有链,为所述欲上链区块信息以及所述待上链区块链 匹配RAFT共识算法或PAXOS共识算法。
本发明实施例还提供了一种服务端,包括存储器、处理器以及存储在 存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机 程序时实现上述的基于区块链的上链共识算法匹配方法。
本发明实施例还提供了一种计算机可读存储介质,所述可读存储介质 包括计算机程序,所述计算机程序运行时控制所述可读存储介质所在服务 端执行上述的基于区块链的上链共识算法匹配方法。
有益效果
本发明实施例提供的基于区块链的上链共识算法匹配方法及装置,能 够实时获取欲上链区块信息以及待上链区块链中的每个区块包含的区块信 息,基于待上链区块链中的每个区块包含的区块信息识别出待上链区块链 的类型,然后基于类型为欲上链区块信息和待上链区块链实时匹配对应的 共识算法,如此,能够提高共识算法匹配的灵活性,相较于预置单一共识 算法的技术,本实施例所提供的方法能够适应纷繁芜杂的区块链业务场景, 为不同类型的待上链区块链匹配适合的共识算法,进而保证了区块链网络 的性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需 要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些 实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例所提供的一种服务端10的方框示意图。
图2为本发明实施例所提供的一种基于区块链的上链共识算法匹配方 法的流程图。
图3为一实施方式中图2所示的步骤S24包括的子步骤的示意图。
图4为本发明实施例所提供的一种基于区块链的上链共识算法匹配装 置20的模块框图。
图标:
10-服务端;11-存储器;12-处理器;13-网络模块;
20-基于区块链的上链共识算法匹配装置;21-指令获取模块;22-指令 解析模块;23-信息查找模块;24-共识算法匹配模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本 发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描 述,显然,所描述的实施例只是本发明的一部分实施例,而不是全部的实 施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不 同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限 制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本 发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获 得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一 旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步 定义和解释。
发明人经调查发现,随着区块链的应用领域越来越广泛,所涉及到的 业务越来越繁杂,区块链的网络性能也越来越差。究其原因,主要是对上 链共识算法配置较为单一。
以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细 研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例 针对上述问题所提出的解决方案,都应该是发明人在本发明过程中对本发 明做出的贡献。
基于上述研究,本发明实施例提供了一种基于区块链的上链共识算法 匹配方法及装置,相较于预置单一共识算法的技术,本实施例所提供的方 法能够适应纷繁芜杂的区块链业务场景,为不同类型的待上链区块链匹配 适合的共识算法,进而保证了区块链网络的性能。
图1示出了本发明实施例所提供的一种服务端10的方框示意图。本发 明实施例中的服务端10具有数据存储、传输、处理功能,如图1所示,服 务端10包括:存储器11、处理器12、网络模块13和基于区块链的上链共 识算法匹配装置20。
存储器11、处理器12和网络模块13之间直接或间接地电性连接,以 实现数据的传输或交互。例如,这些元件互相之间可以通过一条或多条通 讯总线或信号线实现电性连接。存储器11中存储有基于区块链的上链共识 算法匹配装置20,所述基于区块链的上链共识算法匹配装置20包括至少一 个可以软件或固件(firmware)的形式储存于所述存储器11中的软件功能 模块,所述处理器12通过运行存储在存储器11内的软件程序以及模块, 例如本发明实施例中的基于区块链的上链共识算法匹配装置20,从而执行 各种功能应用以及数据处理,即实现本发明实施例中的基于区块链的上链 共识算法匹配方法。
其中,所述存储器11可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编 程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存 储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读 存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。 其中,存储器11用于存储程序,所述处理器12在接收到执行指令后,执 行所述程序。
所述处理器12可能是一种集成电路芯片,具有数据的处理能力。上述 的处理器12可以是通用处理器,包括中央处理器(Central Processing Unit, CPU)、网络处理器(Network Processor,NP)等。可以实现或者执行本发明 实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或 者该处理器也可以是任何常规的处理器等。
网络模块13用于通过网络建立服务端10与其他通信终端设备之间的 通信连接,实现网络信号及数据的收发操作。上述网络信号可包括无线信 号或者有线信号。
可以理解,图1所示的结构仅为示意,服务端10还可包括比图1中所 示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的 各组件可以采用硬件、软件或其组合实现。
本发明实施例还提供一种计算机可读存储介质,所述可读存储介质包 括计算机程序。所述计算机程序运行时控制所述可读存储介质所在服务端 10执行下面的基于区块链的上链共识算法匹配方法。
图2示出了本发明实施例所提供的一种基于区块链的上链共识算法匹 配方法的流程图。所述方法有关的流程所定义的方法步骤应用于与客户端 通信连接的服务端10,可以由所述处理器12实现。下面将对图2所示的具 体流程进行详细阐述:
步骤S21,获取客户端实时发送的上链请求指令。
在越来越繁杂的区块链业务场景中,客户端会不定时向服务端10发送 上链请求指令,相应地,服务端10会实时接收多个客户端发送的上链请求 指令,并行处理多个上链请求指令。
为便于说明,后续步骤以一个上链请求指令进行说明。
步骤S22,解析获取上链请求指令中包括的欲上链区块信息和待上链区 块链的索引信息。
例如,欲上链区块信息为区块A,待上链区块链的索引信息为InL。
步骤S23,根据索引信息查找出待上链区块链,获取待上链区块链中的 每个区块包含的区块信息。
服务端10根据InL查找出待上链区块链L,获取待上链区块链L中的 每个区块包含的区块信息。
其中,区块信息可以为Mi,其中,i为正整数,i<n,n为待上链区块 链L的区块数量。
步骤S24,基于获取得到的区块信息识别出待上链区块链的类型,并基 于识别出的类型为欲上链区块信息以及待上链区块链实时匹配对应的共识 算法。
请结合参阅图3,本实施例中通过步骤S241、步骤S242、步骤S243、 步骤S244和步骤S245列举了步骤S24的其中一种实现方式。
可以理解,区块链的类型包括私有链、联盟链和公共链,不同类型的 区块链中存在特定的信息或标识,可以利用这些特定的信息或标识实现区 块链类型的确定。
步骤S241,判断获取得到的区块信息中是否存在多重签名信息。
可以理解,多重签名信息是表征联盟链的重要标识之一,判断区块链 的区块信息中是否存在多重签名信息可以直接确定该区块链是否为联盟链。
若存在,转向步骤S242,否则,转向步骤S243。
步骤S242,判定待上链区块链的类型为联盟链。
若区块信息Mi中存在多重签名信息,则判定待上链区块链L为联盟链, 可以理解,联盟链中的每个区块的区块信息中均存在多重签名信息。
其中,区块信息Mi中的多重签名信息可以包括三类签名:基于该区块 链上所有区块信息生成的签名、基于该区块链上除区块信息Mi以外的区块 信息生成的签名、基于区块信息Mi生成的签名,如此,能够确保联盟链上 的区块的身份不丢失。
步骤S243,判断获取得到的区块信息中是否存在读写权限标识信息。
可以理解,若待上链区块链L不是联盟链,还需要判断待上链区块链L 是私有链还是公共链。
其中,私有链是指其写入权限是由某个组织和机构控制的区块链。参 与节点的资格会被严格的限制,由于参与的节点是有限和可控的,因此私 有链往往可以有极快的交易速度、更好的隐私保护、更低的交易成本、不 容易被恶意攻击、并且能够做到身份认证等金融行业必须的要求。
由此可见,判断待上链区块链L是否为私有链的标准是判定区块信息 中是否存在读写权限标识信息,若存在,转向步骤S244,否则,转向步骤 S245。
步骤S244,判定待上链区块链的类型为私有链。
若区块信息Mi中存在读写权限标识信息,判定待上链区块链L为私有 链,可以理解,待上链区块链L的每个区块的区块信息中均存在读写权限 标识信息。
步骤S245,判定待上链区块链的类型为公共链。
若区块信息Mi中不存在读写权限标识信息,判定待上链区块链L为公 共链。其中,公有链是指全世界任何人都可以随时进入系统中读取数据、 发送可确认交易、竞争记账的区块链。公有链通常被认为是完全去中心化 的,因为没有任何人或机构可以控制或者篡改其中数据的读写。
因此,待上链区块链L的类型总共有三种,针对每种类型的区块链, 在进行上链判定时变不能仅仅依靠一种共识算法,而常见的上链判定恰恰 是采用预置的共识算法作为上链准则,如此,难以灵活匹配不同的区块链 业务场景。
其中,常见的区块链共识算法包括但不限于以下几种:
工作量证明算法(Proof of Work,POW),矿工通过竞争解决密码学难 题来完成下一个块的增加和区块链的扩展;参与挖矿的矿工竞争将前一区 块的hash与一个随机的比特串一起来计算出一个hash值,若输出的hash 值满足前若干比特为0,即为解出了该难题。第一个解出难题的人获得扩展 一个块的机会。
权益证明算法(Proof of Stake,POS),相对于以比特币为代表的工作 量证明共识系统中的矿工而言,基于权益证明共识的区块链系统中,参与 者的角色是验证者,他们只需要投资系统的代币并在特定时间内验证自己 是否为下一区块创造者,即可完成下一区块的创建。下一区块创造者是以 某种确定的方式来选择,被选中的验证者将合适的交易打包成块并发布到 区块链上。验证者被选中为下一区块创造者的概率与其所拥有的系统中代 币的数量成正比例,简单来说即拥有300个代币的验证者被选中为下一区 块创造者的概率是即拥有100个代币验证者的3倍。
委任权益证明算法(Delegated Proof of Stake,DPOS),是权益共识的 一种改进版本,共识过程不再需要所有参与节点的大多数通过,而是委托 部分代表来进行,这样可以进一步提高共识效率,也能较好地处理系统节 点不在线的问题。在比特股系统中采用的DPOS共识的原理是让每一个持 有比特股的人进行投票,由此产生101位代表,他们彼此的权利完全平等, 可以将其理解为101个超级节点或者矿池。
实用拜占庭容错共识(Practical Byzantine Fault Tolerance,PBFT),是 一种基于严格数学证明的算法,需要经过三个阶段的信息交互和局部共识 来达成最终的一致输出。可以证明,系统中只要有三分之二以上比例的正 常节点,就能保证最终一定可以输出一致的共识结果,尽管达成共识的时 间不确定。
一致性算法RAFT,包括三种角色:Leader(领导者)、Candidate(候 选领导者)和Follower(跟随者),决策前通过选举一个全局的leader来简 化后续的决策过程。RAFT算法面向对多个决策达成一致的问题,分解了 Leader选举、日志复制和安全方面的考虑,并通过约束减少了不确定性的 状态空间。RAFT核心思想很容易理解,如果数个数据库,初始状态一致, 只要之后的进行的操作一致,就能保证之后的数据一致。
应当注意,以上各个算法具有各自的优缺点,因此,在选择共识算法 时,应该基于区块链本身的类型进行算法的切换和选取,而不应该机械地 预置某一算法。
进一步地,以上算法的优缺点如下:
POW的优点为实现简单、安全可靠且网络资源消耗小,缺点为消耗计 算资源过多、出现分叉概率较大以及共识时间较长,不适用于私有链。
POS的优点为资源消耗少,缺点为实现较为复杂、容易产生安全漏洞 以及网络流量压力大,不适用于私有链。
DPOS的优点为资源消耗少、网络压力小、共识时间短且吞吐量高,缺 点为实现非常复杂且容易产生安全漏洞。
PBFT的优点为共识时间短且占用资源少,但是不适用大规模节点(例 如公共链)。
RAFT的优点为实现简单且共识时间短,但是容易产生安全漏洞,不适 用于公共链。
基于上述算法的优缺点以及三种类型的区块链的类型的特点,服务端 10可以通过如下方式为为区块A以及待上链区块链L实时匹配对应的共识 算法:
若待上链区块链L的类型为公共链,由于公共链安全性较差,且区块 数量较多,为区块A以及待上链区块链L匹配POW算法或者POS算法较 为合适,如此,在保证安全性的前提下还能减少网络资源的消耗。
若待上链区块链L的类型为联盟链,为区块A以及待上链区块链L匹 配PBFT算法。
若待上链区块链L的类型为私有链,为区块A以及待上链区块链L匹 配RAFT共识算法或PAXOS共识算法,其中,以RAFT共识算法为例,该 算法实现简单、共识时间短但是容易产生安全漏洞,因此,需要在信任度 较高的区块链中采用该算法,而三种类型的区块链的信任度由高到低依次 为:私有链>联盟链>公共链,因此,为私有链匹配RAFT共识算法最为合 适。
可以理解,服务端10能够基于外部环境采用人工智能实时识别待上链 区块链L的类型并选择合适的共识算法,如此,能够有效减少网络开销, 保证了区块链的网络性能。
可选地,服务端10能够并行处理多个上链请求指令,对每个上链请求 指令进行解析,并匹配对应的共识算法,进一步保证区块链的网络性能。
在上述基础上,如图4所示,本发明实施例提供了一种基于区块链的 上链共识算法匹配装置20,所述基于区块链的上链共识算法匹配装置20包 括:指令获取模块21、指令解析模块22、信息查找模块23和共识算法匹 配模块24。
指令获取模块21,用于获得所述客户端实时发送的上链请求指令。
由于指令获取模块21和图2中步骤S21的实现原理类似,因此在此不 作更多说明。
指令解析模块22,用于解析获取所述上链请求指令中包括的欲上链区 块信息和待上链区块链的索引信息。
由于指令解析模块22和图2中步骤S22的实现原理类似,因此在此不 作更多说明。
信息查找模块23,用于根据所述索引信息查找出所述待上链区块链, 获取所述待上链区块链中的每个区块包含的区块信息。
由于信息查找模块23和图2中步骤S23的实现原理类似,因此在此不 作更多说明。
共识算法匹配模块24,用于基于获取得到的区块信息识别出所述待上 链区块链的类型,并基于所述类型为所述欲上链区块信息以及所述待上链 区块链实时匹配对应的共识算法。
由于共识算法匹配模块24和图2中步骤S24的实现原理类似,因此在 此不作更多说明。
综上,本发明实施例所提供的基于区块链的上链共识算法匹配方法及 装置,能够提高共识算法匹配的灵活性,相较于预置单一共识算法的技术, 本实施例所提供的方法能够适应纷繁芜杂的区块链业务场景,为不同类型 的待上链区块链匹配适合的共识算法,进而保证了区块链网络的性能。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置 和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅 仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实 施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。 在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码 的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规 定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中, 方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两 个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序 执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个 方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动 作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的 组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个 独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集 成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使 用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发 明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的 部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储 介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服 务端10,或者网络设备等)执行本发明各个实施例所述方法的全部或部分 步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、 磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中, 术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使 得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且 还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品 或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……” 限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还 存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于 本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精 神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明 的保护范围之内。