System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及区块链领域,特别涉及区块链共识方法、系统和存储介质。
技术介绍
1、区块链技术的核心是如何平衡一致性与可用性从而在分布式网络实现共识。共识机制是影响系统性能的重要因素。在没有中心化服务器的区块链中,每个节点必须要做的就是通过一定的规则让自己的账本与其他节点的账本保持一致,共识结果决定了谁来构造区块并维护区块链的统一。共识技术是区块链中的一个重要组成部分,共识算法的安全性决定了区块链整体的安全性。同时,共识算法的执行效率决定了区块链的吞吐量、确认时延。paxos(一种基于消息传递且具有高度容错特性的一致性算法)、raft 等经典的分布式一致性算法并不能解决拜占庭容错问题,而 pow(proof of work,工作量证明)、pos(proofof stake,权益证明) 等公链系统的共识算法又因其巨大的能源成本或协议本身的设计缺陷而无法满足特定场景下的性能需求。
技术实现思路
1、本申请的目的是提供一种区块链共识方法、系统和计算机可读存储介质,能够解决当前共识节点多带来的速度慢、通信复杂度高和可扩展性差等问题,降低了所需要的服务器数量。
2、为解决上述技术问题,本申请提供一种区块链共识方法,具体技术方案如下:
3、客户端向区块链中所有服务器节点发送请求;所述服务器节点运行在可信执行环境中,包括主服务器和若干从服务器;
4、在可信执行环境中,所述主服务器为所述请求分配序列号,根据所述序列号利用可验证随机数构造准备消息,并将所述准备消息发送给
5、每个所述从服务器在收到所述准备消息并验证所述可验证随机数的合法性后,利用所述可验证随机数构造提交消息,并向其他服务器节点多播所述提交消息;
6、其中,当所述服务器节点接收一个所述请求,执行对应的请求操作,并利用所述可验证随机数构造回复消息并向所述客户端返回一个回复消息;
7、若所述客户端在设定时间间隔内接收到预设数量的匹配的所述回复消息,完成所述请求。
8、可选的,所述客户端向区块链中所有服务器节点发送请求之前,还包括:
9、根据当前视图数和所述区块链的数量确定主服务器对应的编号;
10、将编号外的其余服务器作为从服务器。
11、可选的,将编号外的其余服务器作为从服务器之后,还包括:
12、每个所述服务器节点产生自身对应的公私钥对;其中,所述公私钥对中的私钥处于保密状态,所述公私钥对中的公钥允许被其他服务器查看。
13、可选的,每个所述服务器节点产生自身对应的公私钥对包括:
14、每个所述服务器节点基于椭圆曲线算法生成自身对应的公私钥对;
15、其中,所述椭圆曲线算法包括设定椭圆曲线上的公开参数,包括、、和,其中、是大素数,是定义在有限域上的椭圆曲线,是椭圆曲线上阶的第一基点,则私钥设为,公钥为。
16、可选的,客户端向区块链中所有服务器节点发送请求包括:
17、客户端生成请求,并利用自身私钥对所述请求进行签名;
18、向区块链中所有服务器节点发送所述请求;所述请求包括操作名称、请求标识符、客户端请求消息的签名和客户端名称。
19、可选的,在可信执行环境中,所述主服务器为所述请求分配序列号,根据所述序列号利用可验证随机数构造准备消息包括:
20、所述主服务器获取所述请求中的摘要信息;
21、在视图中为每个所述请求分配序列号;
22、根据所述摘要信息和所述序列号利用可验证随机数构造准备消息构造准备消息。
23、可选的,根据所述摘要信息和所述序列号利用可验证随机数构造准备消息构造准备消息之前,还包括:
24、验证第一可验证随机数的状态是否为未使用状态;
25、若是,调用可验证随机数构造函数为所述准备消息产生第二可验证随机数和相应的证据。
26、可选的,调用可验证随机数构造函数为所述准备消息产生第二可验证随机数和相应的证据包括:
27、输入当前视图数、区块链的序列号、所述摘要信息、所述第一可验证随机数和主服务器的私钥,得到所述第二可验证随机数和相应的证据。
28、可选的,输入当前视图数、区块链的序列号、所述摘要信息、所述第一可验证随机数和所述主服务器的私钥,得到所述第二可验证随机数和相应的证据时,还包括:
29、变更所述第一可验证随机数的状态为使用状态。
30、可选的,输入当前视图数、区块链的序列号、所述摘要信息、所述第一可验证随机数和主服务器的私钥,得到所述第二可验证随机数和相应的证据时还包括:
31、输入消息和所述主服务器的私钥;
32、选择第一随机数,利用第一哈希函数将所述消息映射到椭圆曲线上的第二基点;
33、根据所述第一随机数和所述第一基点得到第一中间参数,根据所述第一随机数和所述第二基点得到第二中间参数;
34、根据所述第一中间参数和所述第二中间参数利用第二哈希函数将所述消息映射为第一参数;
35、根据所述第一随机数、所述第一参数、所述主服务器的私钥和所述第一基点的阶数确定第二参数;
36、根据所述主服务器的私钥和所述第二基点确定第三参数;
37、利用第三哈希函数将椭圆曲线上的第三参数映射为一个整数,得到所述第二可验证随机数;
38、根据所述第一参数、所述第二参数和所述第三参数得到所述第二可验证随机数相应的证据。
39、可选的,每个所述从服务器在收到所述准备消息并验证所述可验证随机数的合法性时,还包括:
40、验证所述第一可验证随机数是否处于未使用状态;
41、若否,触发视图转换。
42、可选的,若所述第一可验证随机数处于未使用状态,还包括:
43、调用证据可验证随机函数验证所述第二可验证随机数和所述第二可验证随机数对应的证据是否有效;
44、若均有效,所有服务器节点调用所述可验证随机数构造函数为所述提交消息产生第三可验证随机数和相应的证据。
45、可选的,还包括:
46、将所述第一可验证随机数的使用状态由未使用状态变更为已使用状态,同时将第二可验证随机数的使用状态设为未使用状态。
47、可选的,所述所有服务器节点调用所述可验证随机数构造函数为所述提交消息产生第三可验证随机数和相应的证据包括:
48、调用所述可验证随机数构造函数根据当前视图数、所述序列号、所述摘要信息、主服务id号、各个从服务器对应的id号、所述第二可验证随机数和各所述服务器节点的私钥生成第三可验证随机数和相应的证据。
49、可选的,若所述从服务器未收到所述准备消息,还包括:
50、检测是否收到包含有效可验证随机数的有效提交信息;
51、若是,对所述有效提交信息重构造并发送。
本文档来自技高网...【技术保护点】
1.一种区块链共识方法,其特征在于,包括:
2.根据权利要求1所述的区块链共识方法,其特征在于,所述客户端向区块链中所有服务器节点发送请求之前,还包括:
3.根据权利要求2所述的区块链共识方法,其特征在于,所述将编号外的其余服务器作为从服务器之后,还包括:
4.根据权利要求3所述的区块链共识方法,其特征在于,所述每个所述服务器节点产生自身对应的公私钥对包括:
5.根据权利要求4所述的区块链共识方法,其特征在于,所述客户端向区块链中所有服务器节点发送请求包括:
6.根据权利要求5所述的区块链共识方法,其特征在于,在可信执行环境中,所述主服务器为所述请求分配序列号,根据所述序列号利用可验证随机数构造准备消息包括:
7.根据权利要求6所述的区块链共识方法,其特征在于,所述根据所述摘要信息和所述序列号利用可验证随机数构造准备消息构造准备消息之前,还包括:
8.根据权利要求7所述的区块链共识方法,其特征在于,所述调用可验证随机数构造函数为所述准备消息产生第二可验证随机数和相应的证据包括:
9.根
10.根据权利要求9所述的区块链共识方法,其特征在于,所述输入当前视图数、区块链的序列号、所述摘要信息、所述第一可验证随机数和所述主服务器的私钥,得到所述第二可验证随机数和相应的证据包括:
11.根据权利要求10所述的区块链共识方法,其特征在于,每个所述从服务器在收到所述准备消息并验证所述可验证随机数的合法性时,还包括:
12.根据权利要求11所述的区块链共识方法,其特征在于,若所述第一可验证随机数处于未使用状态,还包括:
13.根据权利要求12所述的区块链共识方法,其特征在于,还包括:
14.根据权利要求13所述的区块链共识方法,其特征在于,所述所有服务器节点各自调用所述可验证随机数构造函数为所述提交消息产生第三可验证随机数和相应的证据包括:
15.根据权利要求1所述的区块链共识方法,其特征在于,若所述从服务器未收到所述准备消息,还包括:
16.根据权利要求12所述的区块链共识方法,其特征在于,调用证据可验证随机函数验证所述第二可验证随机数和所述第二可验证随机数对应的证据是否有效包括:
17.根据权利要求1所述的区块链共识方法,其特征在于,还包括:
18.据权利要求17所述的区块链共识方法,其特征在于,执行视图更改操作,并使用新服务器成为主服务器包括:
19.根据权利要求1所述的区块链共识方法,其特征在于,若所述客户端在设定时间间隔内未接收到预设数量的匹配的所述回复消息,还包括:
20.一种区块链共识系统,其特征在于,包括 :
21.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-19任一项所述的方法的步骤。
...【技术特征摘要】
1.一种区块链共识方法,其特征在于,包括:
2.根据权利要求1所述的区块链共识方法,其特征在于,所述客户端向区块链中所有服务器节点发送请求之前,还包括:
3.根据权利要求2所述的区块链共识方法,其特征在于,所述将编号外的其余服务器作为从服务器之后,还包括:
4.根据权利要求3所述的区块链共识方法,其特征在于,所述每个所述服务器节点产生自身对应的公私钥对包括:
5.根据权利要求4所述的区块链共识方法,其特征在于,所述客户端向区块链中所有服务器节点发送请求包括:
6.根据权利要求5所述的区块链共识方法,其特征在于,在可信执行环境中,所述主服务器为所述请求分配序列号,根据所述序列号利用可验证随机数构造准备消息包括:
7.根据权利要求6所述的区块链共识方法,其特征在于,所述根据所述摘要信息和所述序列号利用可验证随机数构造准备消息构造准备消息之前,还包括:
8.根据权利要求7所述的区块链共识方法,其特征在于,所述调用可验证随机数构造函数为所述准备消息产生第二可验证随机数和相应的证据包括:
9.根据权利要求8所述的区块链共识方法,其特征在于,所述输入当前视图数、区块链的序列号、所述摘要信息、所述第一可验证随机数和所述主服务器的私钥,得到所述第二可验证随机数和相应的证据时,还包括:
10.根据权利要求9所述的区块链共识方法,其特征在于,所述输入当前视图数、区块链的序列号、所述摘要信息、所述第一可验证随机数和所述主服务器的私钥,得到所述第二可验证...
【专利技术属性】
技术研发人员:麻付强,
申请(专利权)人:苏州元脑智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。