掌桥专利:专业的专利平台
掌桥专利
首页

一种基于智能合约及拜占庭共识算法的区块链存证方法

文献发布时间:2024-04-18 19:58:21


一种基于智能合约及拜占庭共识算法的区块链存证方法

技术领域

本发明涉及区块链存证领域,尤其涉及一种基于智能合约及拜占庭共识算法的区块链存证方法。

背景技术

数据区块链使用算法来保证容错。传统方法使用工作量证明进行容错。只要多于50%的网络的全部计算能力是诚实的,就可以保证容错的能力。然而工作量证明是需要花费大量的能源。较新的技术使用权益证明进行容错,其中节点需要为它们的区块链版本押上证明或“赌注”。有了权益证明,节点就可以在经济损失的威胁下保持诚实,只要网络中50%以上的“赌注”是诚实的,那么就保证了容错能力。

为了得到一个更有效的权益证明,数据区块链可以使用一个委托负责参与共识的拜占庭容错算法。数据区块链可以通过不同的方式,比如普通节点的投票,任命特别共识决策的节点称为“共识节点”。这些“共识节点”代替整个网络进行共识游戏,提高效率,而仍然确保和完整的网络接近的容错。

虽然“共识节点”可以增加网络找到共识的速度,而和完整的网络有接近的容错,但是诚实的行为没有被鼓励,不诚实的行为也没有被阻碍。普通的节点和“共识节点”都可以随意实施不诚实的行为,而不会有没有任何的处罚。因为“共识节点”不是把自己的利益受到经济损失的威胁,它只是代表普通节点发送命令,所以一个恶意的节点成为“共识节点”会对整个网络造成非常大的威胁。

区块链存证是基于区块链技术,采取多节点共识的方式,或联合法院、公证处、仲裁机构、司法鉴定中心、授时服务机构、审计机构及数字身份认证中心等权威机构节点的电子数据存证服务。

目前通常使用PBFT算法进行区块链中节点的计算,但是其在计算过程中存在容错低、资源耗费高,且其无法及时处理节点故障易造成贫富差距以及区块同步效率低。

因此,有必要提供一种基于智能合约及拜占庭共识算法的区块链存证方法解决上述技术问题。

发明内容

本发明提供一种基于智能合约及拜占庭共识算法的区块链存证方法,解决了目前通常使用PBFT算法进行区块链中节点的计算,但是其在计算过程中存在容错低、资源耗费高,且其无法及时处理节点故障易造成贫富差距以及区块同步效率低的问题。

为解决上述技术问题,本发明提供的基于智能合约及拜占庭共识算法的区块链存证方法,包括如下具体步骤:

S1、存证人员通过智能合约进行证据存证,智能合约将证据hash值和库密钥存入区块链中;

S2、分析模块使用TM-PBFT算法对信任节点列表进行建立;

S3、根据S2中的信任节点列表建立节点信任度评级模型;

S4、区块链中的决策模块根据S3中的节点信任度评级模型对奖惩进行评定;

S5、区块链中的决策模块将评定的奖罚信息输送至区块链存证客户端;

S6、区块链通过网络将证据hash值和库密钥存入区块链存证客户端。

优选的,所述S1包括如下步骤:

S11、存证人员通过客户端实名注册生成基于身份的区块链地址,作为部署和调用智能合约的区块链地址;

S12、存证人员登录客户端,加载存证人员区块链地址,上传存证数据和证据库密钥,服务端将存证数据存放到第三方数据库,并利用sha256哈希算法生成存证数据的hash值;

S13、服务端通过存证人员的区块链地址将具有上传、查询、下载和授权功能的智能合约代码部署到区块链上,该智能合约只有存证人员区块链地址和授权的区块链地址能够调用,智能合约部署成功后,它将证据hash值和库密钥存储到区块链中,同时返回客户端证据hash值和证据hash值ID。

优选的,所述S2具体为:

对区块链中所有节点i进行投票,待投票周期V结束后,统计各个节点i的得票数记为n

其中,每个节点仅可以进行一次投票,即理想状态下,总节点数=总投票数=N,因此n

区块链中所有节点最初都是普通节点,普通节点的职责主要是投票,其总数即为N;信任节点由普通节点投票选出,信任节点列表也是主节点候选集,其数目记为N

每隔一段时间,系统会向投票主节点发起投票请求,再投票主节点向其它副本节点广播投票准备消息,之后副本节点选择自己想要投票的节点并将最后结果返回给主节点,待主节点统计完得票结果之后再广播给所有节点。在投票时,每个节点只有一票,可以选择其它节点也可以选择自己。得到的信任节点列表将作为主节点的候选集,可供下一次投票以及共识的主节点进行选用。

优选的,所述S3具体为:

S31、首先通过TM-PBFT算法对当前投票周期内节点的投票信任度进行计算;

S32、对当前投票周期内节点的表现信任度进行计算;

S33、对截止上一个投票周期结束的节点的累积信任度进行计算;

S34、根据投票信任度、表现信任度以及累积信任度建立立体的节点信任度评级模型。

优选的,所述S31中对当前投票周期内节点的投票信任度具体计算如下:

由于在一个投票周期V内包含M个共识周期T,M的值不固定,一个共识周期T又可以划分为m个生产区间t,一个生产区间t内完成一个区块的打包过程;

当前投票周期内节点的投票信任度计算公式如下:

Cr(i)

其中,Cr(i)

优选的,所述S32中对当前投票周期内节点的表现信任度计算如下:

其中,Cr(i)beh为当前投票周期内节点i的表现信任度,n为节点i在当前投票周期V内参加的共识过程的数量;f(x)表示节点i在第x个生产区间t内是否正常验证、产生区块,没有作恶行为,若其行为全部正常,则f(x)=1,反之为0;g(x)为节点i在第x个生产区间t内没有作恶行为,若有则g(x)=1,反之为0,a表示若节点i有作恶时,系统对其进行惩罚的权重。

优选的,所述S33中对截止上一个投票周期结束的节点的累积信任度具体如下:

其满足如下计算公式为:

其中,Cr(i)acc为截止上一个投票周期V-1结束的节点i的累计信任度,也是当前投票周期V刚开始时第一个生产区间的信任度;

节点信任度评级模型计算公式如下:

Cr(i)pro=λ

其中,Cr(i)pro为节点i当前生产区间t内的信任度,λ

优选的,所述S4具体为:

在TM-PBFT算法中,投给同一个节点的投票节点都是希望通过投资该节点使其成为主节点而产生收益,所以各个投票节点之间并不是竞争关系而是合作关系,这些节点之间就组成了一个联盟博弈,S代表的是这n个投票节点有可能组成的合作联盟,(N,V(S))规定在每一个联盟S中每个节点做出的贡献称为边际贡献δ

δ

优选的,所述区块链存证客户端用于将所述生理特征值的所述哈希值与用户的证据数据绑定后存储至区块链网络。

与相关技术相比较,本发明提供的基于智能合约及拜占庭共识算法的区块链存证方法具有如下有益效果:

本发明提供一种基于智能合约及拜占庭共识算法的区块链存证方法,能够对节点中的故障进行精确处理,本方法的吞吐量、通信量大大优于PBFT算法,且容错率有所提高,提高了系统安全性,且通信量由二次正相关降为一次正相关,大大减少通信耗费。

附图说明

图1为本发明提供的基于智能合约及拜占庭共识算法的区块链存证方法的一种较佳实施例的流程示意图;

图2为基于智能合约及拜占庭共识算法的区块链存证方法中步骤S1的流程示意图;

图3为基于智能合约及拜占庭共识算法的区块链存证方法中步骤S3的流程示意图;

图4为基于智能合约及拜占庭共识算法的区块链存证方法中TM-PBFT算法网络模型示意图;

图5为基于智能合约及拜占庭共识算法的区块链存证方法中TM-PBFT算法的流程示意图。

具体实施方式

下面结合附图和实施方式对本发明作进一步说明。

请结合参阅图1、图2、图3、图4和图5,其中,图1为本发明提供的基于智能合约及拜占庭共识算法的区块链存证方法的一种较佳实施例的流程示意图;图2为基于智能合约及拜占庭共识算法的区块链存证方法中步骤S1的流程示意图;图3为基于智能合约及拜占庭共识算法的区块链存证方法中步骤S3的流程示意图;图4为基于智能合约及拜占庭共识算法的区块链存证方法中TM-PBFT算法网络模型示意图;图5为基于智能合约及拜占庭共识算法的区块链存证方法中TM-PBFT算法的流程示意图。基于智能合约及拜占庭共识算法的区块链存证方法,包括如下具体步骤:

S1、存证人员通过智能合约进行证据存证,智能合约将证据hash值和库密钥存入区块链中;

S11、存证人员通过客户端实名注册生成基于身份的区块链地址,作为部署和调用智能合约的区块链地址;

S12、存证人员登录客户端,加载存证人员区块链地址,上传存证数据和证据库密钥,服务端将存证数据存放到第三方数据库,并利用sha256哈希算法生成存证数据的hash值;

S13、服务端通过存证人员的区块链地址将具有上传、查询、下载和授权功能的智能合约代码部署到区块链上,该智能合约只有存证人员区块链地址和授权的区块链地址能够调用,智能合约部署成功后,它将证据hash值和库密钥存储到区块链中,同时返回客户端证据hash值和证据hash值ID。

S2、分析模块使用TM-PBFT算法对信任节点列表进行建立;

对区块链中所有节点i进行投票,待投票周期V结束后,统计各个节点i的得票数记为n

其中,每个节点仅可以进行一次投票,即理想状态下,总节点数=总投票数=N,因此n

区块链中所有节点最初都是普通节点,普通节点的职责主要是投票,其总数即为N;信任节点由普通节点投票选出,信任节点列表也是主节点候选集,其数目记为N

每隔一段时间,系统会向投票主节点发起投票请求,再投票主节点向其它副本节点广播投票准备消息,之后副本节点选择自己想要投票的节点并将最后结果返回给主节点,待主节点统计完得票结果之后再广播给所有节点。在投票时,每个节点只有一票,可以选择其它节点也可以选择自己。得到的信任节点列表将作为主节点的候选集,可供下一次投票以及共识的主节点进行选用。

S3、根据S2中的信任节点列表建立节点信任度评级模型;

S31、首先通过TM-PBFT算法对当前投票周期内节点的投票信任度进行计算;

由于在一个投票周期V内包含M个共识周期T,M的值不固定,一个共识周期T又可以划分为m个生产区间t,一个生产区间t内完成一个区块的打包过程;

当前投票周期内节点的投票信任度计算公式如下:

Cr(i)

其中,Cr(i)

S32、对当前投票周期内节点的表现信任度进行计算;

当前投票周期内节点的表现信任度计算如下:

其中,Cr(i)beh为当前投票周期内节点i的表现信任度,n为节点i在当前投票周期V内参加的共识过程的数量;f(x)表示节点i在第x个生产区间t内是否正常验证、产生区块,没有作恶行为,若其行为全部正常,则f(x)=1,反之为0;g(x)为节点i在第x个生产区间t内没有作恶行为,若有则g(x)=1,反之为0,a表示若节点i有作恶时,系统对其进行惩罚的权重。

S33、对截止上一个投票周期结束的节点的累积信任度进行计算;

其满足如下计算公式为:

其中,Cr(i)acc为截止上一个投票周期V-1结束的节点i的累计信任度,也是当前投票周期V刚开始时第一个生产区间的信任度。

S34、根据投票信任度、表现信任度以及累积信任度建立立体的节点信任度评级模型。

节点信任度评级模型计算公式如下:

Cr(i)pro=λ

其中,Cr(i)pro为节点i当前生产区间t内的信任度,λ

S4、区块链中的决策模块根据S3中的节点信任度评级模型对奖惩进行评定;

在TM-PBFT算法中,投给同一个节点的投票节点都是希望通过投资该节点使其成为主节点而产生收益,所以各个投票节点之间并不是竞争关系而是合作关系,这些节点之间就组成了一个联盟博弈,S代表的是这n个投票节点有可能组成的合作联盟,(N,V(S))规定在每一个联盟S中每个节点做出的贡献称为边际贡献δ

δ

S5、区块链中的决策模块将评定的奖罚信息输送至区块链存证客户端;

S6、区块链通过网络将证据hash值和库密钥存入区块链存证客户端。

区块链存证客户端用于将所述生理特征值的所述哈希值与用户的证据数据绑定后存储至区块链网络。

请参阅图5,TM-PBFT算法流程如下:

(1)节点编号。设系统中的节点总数为N,系统会为每个节点分配唯一的序号i(1≤i≤N),并且每个节点需要维护、记录自己的节点信任度。

(2)投票建立信任节点列表。系统的初始信任度相等,在系统发起投票后,每个节点可以给系统中任一节点投票。若系统需要H个信任节点,则在投票结束后按照得票排名将前H位节点组成信任节点列表,这H个节点会依次作为主节点进行区块打包、共识过程。

(3)收益分配。在一轮投票周期V结束之后,系统会为成功打包的节点分配代币作为收益,同时系统会按照收益分配算法将每个信任节点的收益分配返回给信任节点,最后由信任节点进行分发。

(4)节点信任度计算。在上一轮的收益分发完成之后,需要重新计算新一轮的节点信任度。信任度计算的请求由在共识周期内第一个成功打包的主节点,向系统中其它节点发起。其它节点在收到请求后,自行计算系统中每个节点的最新信任度,计算完成之后,将信任度计算结果提交,并且添加自己的签名,发送给主节点。

(5)节点信任度更新。首先主节点验证节点的信任度是否正确,如果相同的结果超过2N/3个,则节点信任度验证通过。之后将节点的最新信任度存储在本地进行更新。

(6)节点信任度广播。主节点需要及时将最新的信任度消息广播给系统中其它节点,以备下次投票选举以及共识过程进行参考、使用。其它节点在收到广播消息之后,要及时进行更新,将最新的信任度结果存在在本地。

综上:

1、TM-PBFT算法支持在共识阶段开始之前,加入投票阶段,即通过投票选出信任节点并组成信任节点列表,每个节点仅有一票;其次,为使节点慎重投票,对其信任度进行建模,通过该信任度模型使恶意节点成为主节点的概率降低;最后,为了鼓励各节点积极、谨慎地投票,结合沙普利值设计了新的奖惩方案,本算法结合时间因素,使节点的收益分配与各自的投票节点以及投票时间息息相关,也使节点之间的收益分配更加合理。通过实验对比,本算法的吞吐量、通信量始终优于PBFT算法,且容错率有所提高,提高了系统安全性。

2、根据TM-PBFT算法中节点信任度,对各节点进行分组,并设置信任度及格线,若未及格,只可为其他节点投票但无法被投票,超过及格线的节点进行分组投票,可减少节点间信任度及收益的贫富差距;其次,在共识阶段对于系统中出现的节点故障,本算法增加了主节点更换协议,可以增加系统的健壮性;最后,对于系统中区块同步过程,通过分组信息来进行分组广播,减少系统同步耗时。此外,通过实验验证算法性能,本算法吞吐量始终优于PBFT算法,通信量由二次正相关降为一次正相关,大大减少通信样费。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种基于区块链智能合约的电子数据存证方法
  • 一种基于区块链存证平台自定义存证系统的方法和装置
  • 一种用于区块链的拜占庭容错共识优化方法
  • 一种区块链上基于vrf和实用拜占庭算法的共识方法
  • 基于拜占庭容错算法的区块链的共识方法、装置及系统
技术分类

06120116481082