一种基于信用证明PoC的区块链共识机制及实现方法
技术领域
本发明属于区块链技术领域,尤其涉及一种基于信用证明PoC的区块链共识机制及实现方法。
背景技术
目前,业内常用的现有技术是这样的:
共识机制是区块链的核心技术之一,用于在异步分布式网络中实现对交易以及区块的验证,并达成全网共识,保障区块链账本的有效性和唯一性。其中,关键问题是在异步分布式网络中为每一个区块周期确定唯一一个区块生成者。基于工作量证明(PoW)的共识机制,是首个区块链共识机制,应用于比特币系统。PoW设定基于非对称密码学的Hash难题。计算机求解Hash难题需要大量复杂计算,不易得到答案;但是答案的正确性验证可以快速完成。基于PoW的区块链,其用户通过竞争求解Hash难题来争取区块生成权。第一个得到Hash解的用户,将其得到的解封装在区块中,发送给其他用户进行验证;如果通过验证,那么该区块就得到了其他用户的认可,该用户作为区块生成者也就得到了其他用户的认可。然后,由于PoW共识过程需要消耗大量计算资源和电能,对环境不友好,共识机制在向权益证明(PoS)方向发展。授权证明(PoA)是以太坊基金会开发的一种共识协议,该协议通过投票选举一系列用户作为区块生成的控制节点,但是该协议并没有给出授权节点评选的标准,同时缺乏对授权节点的行为约束;信任值证明(PoT)是一种基于信任值评估的共识协议,通过选取满足一定信任条件的用户作为区块生成节点,但是该协议缺乏对信任节点的约束,没有给出取消授权节点资格的必要条件。共识机制,仍然是区块链领域亟需突破的技术问题之一。
综上所述,现有技术存在的问题是:
基于工作量证明的共识机制,需要消耗大量计算资源和电能,其工作方式不可持续;
基于权益证明的共识机制,目前还需要进一步完善,包括安全性、稳定性等问题。
解决上述技术问题的意义:
本发明所提出的基于信用证明(PoC)的共识机制,首先,可以避免类似比特币中基于工作量证明的计算资源和能量消耗;其次,利用区块链技术建立起分布式网络中的信用评估体系,同时信用评估体系又可以提高基于权益证明的共识机制的安全性和可靠性;第三,本发明所设计的基于信用证明(PoC)的共识机制易于应用推广。
发明内容
针对现有技术存在的问题,本发明提供了一种基于信用证明PoC的区块链共识机制及实现方法,基于信用的区块链共识机制及实现方法。在本发明中,提出了一种新的名为信用证明(PoC)的共识协议,该协议向区块链引入了一个信用子系统和一个基于授权组的区块认证机制。与现有共识机制相比,PoC通过设计信用评价和动态授权组,从而具有安全性和鲁棒性的优势。
所述一种基于信用证明的区块链共识机制及实现方法包括:
信用子系统实现区块链网络中用户的信誉评估,从而尽可能避免不诚实的用户或者不诚实的交易;
区块授权组机制确定区块链网络中有权生成新区块的用户组;授权组只允许信誉高于指定门限值的用户申请加入;通过授权组内成员投票方式确定新成员加入以及旧成员的剔除;通过设定最长允许当值之间进行授权组成员的动态轮换,以确保授权组的安全性;确定每个区块周期负责区块封装与生成的授权者;
共识协议实现交易验证、区块封装与生成、区块验证过程;授权组所有成员均会收集并验证在区块链网络中传播的交易;当值授权者会将有效交易封装成区块,同时更新区块授权组状态,在对区块数字签名后将其发送到区块链网络;
区块链网络中所有的用户均可对新区快进行验证,当大部分用户通过验证后,新区块成功生成。
进一步,信用子系统实现区块链网络中用户的信誉评估的方法包括:
信用分数获取方法,具体获取信用分数的方法包括交易得分和区块认证得分;在信用子系统中,作为交易发起者的用户在交易成功完成之后获得一定的信用分数;信用分数与交易量成正比,记为CStransaction=βTransVolume;作为授权用户的用户在成功生成一个区块后,获得一个恒定的信用分数作为报酬,记作CSauthentication。
用户信用积分算法,用户信用积分为统计最近N个区块周期内获得的积分和,可表示为
其中,CSaddress.height表示地址为address的用户在高度为height的区块中得到的信用分数,currentheight表示当前区块高度。
进一步,区块授权组机制的方法包括:
授权组初始化:在创世区块中制定第一组授权者,并且所有的授权者的地址都被记录到创世区块的extra字段中;设定CreditThreshold为申请授权者的信用门限分数;初始化第一组授权者的信用分为K*CreditThreshold,其中K是一个正整数;为每个授权者设定服务时间计数器,记为DutyTimer,并记录在extra字段中;
授权权限分配:确定生成当前区块的授权者;用NumAuthorizers表示授权组成员数目;每个授权者根据自己的address在授权组中进行排序,获得一个位置偏移量AuthorizerOffse;根据以下算法计算得到一个布尔值currentheight%NumAuthorizers==AuthorizerOffset;
如果一个授权者返回的布尔值为真,表示该授权者为当值授权者,其他授权者为非当值授权者;
区块封装和签名:当值授权者将收集并通过验证的交易封装成区块,更新授权组状态以及各个授权者的DutyTimer值;利用私钥对新区快进行数字签名,并将签名附在区块头的extra字段中;将新区块送到区块链网络进行共识验证;
申请授权者资格:当一个普通用户的信誉值高于信用门限分数CreditThreshold,就可以将申请发送给区块链网络;授权组中每个授权者会在本地维护申请者的选票统计数据库;每一轮区块生成过程中,当值授权者会给本地数据库中的其中一个申请者投票,并将投票结果写入新区块中;其他授权者在收到新区块后会记录有效投票,并更新本地选票统计数据库;当一个申请者获得的超过区块授权群的一半投票时,该申请者即成为有效的授权者;
取消授权者资格:一个用户可以申请取消指定授权者的资格;授权者组会在本地数据库维护取消授权者资格的投票计数;每一轮区块生成过程中,当值授权者可以给本地数据库中的其中一个被列入取消资格的申请者投票,并将投票结果写入新区块中;其他授权者在收到新区块后会记录有效投票,并更新本地选票统计数据库;超过区块授权群的一半投票赞成取消某一个申请者资格时,该授权者即成为普通用户;任一个授权者,当其DutyTimer超过最大连续任职时间MaxDutyTime时,将被取消资格;否则,DutyTimer加一;当授权者被取消资格后,地址和相应的信息将从下一个生成的区块的区块头删除。
进一步,共识协议包括:
发起交易:用户根据所需服务调用相关智能合约,在填写完智能合约所要求的参数后,将服务请求封装成一个交易,用户对该交易进行数字签名后将交易发送到区块链网络;
交易验证:区块链网络上的其他任何用户,在收到交易后对交易进行验证,包括检查交易提出者的签名和账户余额、智能合约的规范性、交易费用;如果交易通过验证,用户将该交易传播给它的相邻节点;否则,交易将被丢弃;
区块生成:授权用户组中的所有授权者负责收集并验证区块链网络中广播的交易;轮值授权者将通过验证的多个交易打包成一个数据区块;并且将授权用户组的信息更新和授权用户的信用评分也记录到区块中;轮值授权者新区块进行数字签名并广播到区块链网络;
区块验证:任何接收到新区块的用户对其进行验证,包括所涉及交易的有效性、授权用户组的更新信息、授权用户的信用评分以及授权用户的合法性;如果用户成功地验证区块,将该区块连接到区块链账本并存储在本地,否则丢弃该区块;当大多数的网络节点成功地验证区块之后,即认为完成了交易共识证明和新区块生成。
本发明的另一目的在于提供一种实现所述基于信用证明的区块链共识机制及实现方法的计算机程序。
本发明的另一目的在于提供一种实现所述基于信用证明的区块链共识机制及实现方法的信息数据处理终端。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的基于信用证明的区块链共识机制及实现方法。
本发明的另一目的在于提供一种实现所述基于信用证明的区块链共识机制及实现方法的互联网停车管理平台。
本发明的另一目的在于提供一种实现所述基于信用证明PoC的区块链共识机制及实现方法的基于信用证明PoC的区块链共识机制及实现控制系统。
综上所述,本发明的优点及积极效果为:
表1 PoC共识协议与现有代表性共识协议比较
共识机制涉及区块链中区块生成的控制、效率与安全,是区块链的核心技术之一。本发明所设计的基于信用证明(PoC)的区块链共识机制,从技术层面具有如下有点:
如表1所示,PoC采用的策略是基于信用评价的动态授权组管理机制,通过区块链共识实现分布式网络中信用评价的可靠性,通过信用评价和动态管理实现区块生成授权组的可信与可靠;PoC不允许一个区块授权者连续生成区块,实现区块生成授权的分散性,提高区块链网络的安全可靠性;PoC提供了取消区块授权者资格的机制,进一步加强了系统的安全性;PoC对区块生成授权者的最大任职时间做了限制,进一步加强了系统的可靠性;此外,PoC属于权益证明类共识机制,避免了类似PoW的计算资源消耗。
从应用角度,本发明具有如下积极效果:PoC提出的信用评估体系,可用于区块链节点成员社会信用的评估,保障守信节点的权益,加强区块链系统的稳定性和可靠性;PoC采用的动态授权组机制,易于实现,避免了高能耗的复杂计算,其基于信用评估的投票机制和动态退出机制,实现了区块授权行为的分散化,保障区块链分布式系统的稳定性。将此协议在一个基于区块链的新型停车服务网络上进行实现和应用测试。通过运行测试证明了该协议具有安全性和鲁棒性的优势。
附图说明
图1是本发明实施例提供的基于信用证明(PoC)的共识过程示意图。
图2是本发明实施例提供的各个测试节点的信用分数走势图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有技术的互联网异步环境数据处理中,容错率相对较低,而且扩展性较差。
为解决上述技术问题,下面结合方案对本发明的应用原理作详细描述。
本发明实施例提供的基于信用证明的区块链共识机制及实现方法,所述基于信用证明的区块链共识机制及实现方法包括:
信用子系统实现区块链网络中用户的信誉评估,从而尽可能避免不诚实的用户或者不诚实的交易。
区块授权组机制确定区块链网络中有权生成新区块的用户组;授权组只允许信誉高于指定门限值的用户申请加入;通过授权组内成员投票方式确定新成员加入以及旧成员的剔除;通过设定最长允许当值之间进行授权组成员的动态轮换,以确保授权组的安全性;确定每个区块周期负责区块封装与生成的授权者。
共识协议实现交易验证、区块封装与生成、区块验证过程;授权组所有成员均会收集并验证在区块链网络中传播的交易;当值授权者会将有效交易封装成区块,同时更新区块授权组状态,在对区块数字签名后将其发送到区块链网络;区块链网络中所有的用户均可对新区快进行验证,当大部分用户通过验证后,新区块成功生成。
下面结合PoC技术方案对本发明作进一步描述。
1、在本发明实施例中,信用子系统的信用分数获取方法包括交易得分和区块认证得分;在信用子系统中,作为交易发起者的用户在交易成功完成之后获得一定的信用分数;信用分数与交易量成正比,记为CStransaction=βTransVolume;作为授权用户的用户在成功生成一个区块后,获得一个恒定的信用分数作为报酬,记作CSauthentication。
用户信用积分算法,用户信用积分为统计最近N个区块周期内获得的积分和,可表示为
其中,CSaddress.height表示地址为address的用户在高度为height的区块中得到的信用分数,currentheight表示当前区块高度。
2、在本发明实施例中,区块授权组机制包括:
授权组初始化:在创世区块中制定第一组授权者,并且所有的授权者的地址都被记录到创世区块的extra字段中;设定CreditThreshold为申请授权者的信用门限分数;初始化第一组授权者的信用分为K*CreditThreshold,其中K是一个正整数;为每个授权者设定服务时间计数器,记为DutyTimer,并记录在extra字段中。
授权权限分配:确定生成当前区块的授权者;用NumAuthorizers表示授权组成员数目;每个授权者根据自己的address在授权组中进行排序,获得一个位置偏移量AuthorizerOffse;根据以下算法计算得到一个布尔值currentheight%NumAuthorizers==AuthorizerOffset。
如果一个授权者返回的布尔值为真,表示该授权者为当值授权者,其他授权者为非当值授权者。
区块封装和签名:当值授权者将收集并通过验证的交易封装成区块,更新授权组状态以及各个授权者的DutyTimer值;利用私钥对新区快进行数字签名,并将签名附在区块头的extra字段中;将新区块送到区块链网络进行共识验证;
申请授权者资格:当一个普通用户的信誉值高于信用门限分数CreditThreshold,就可以将申请发送给区块链网络;授权组中每个授权者会在本地维护申请者的选票统计数据库;每一轮区块生成过程中,当值授权者会给本地数据库中的其中一个申请者投票,并将投票结果写入新区块中;其他授权者在收到新区块后会记录有效投票,并更新本地选票统计数据库;当一个申请者获得的超过区块授权群的一半投票时,该申请者即成为有效的授权者。
取消授权者资格:一个用户可以申请取消指定授权者的资格;授权者组会在本地数据库维护取消授权者资格的投票计数;每一轮区块生成过程中,当值授权者可以给本地数据库中的其中一个被列入取消资格的申请者投票,并将投票结果写入新区块中;其他授权者在收到新区块后会记录有效投票,并更新本地选票统计数据库;超过区块授权群的一半投票赞成取消某一个申请者资格时,该授权者即成为普通用户;任一个授权者,当其DutyTimer超过最大连续任职时间MaxDutyTime时,将被取消资格;否则,DutyTimer加一;当授权者被取消资格后,地址和相应的信息将从下一个生成的区块的区块头删除。
3、在本发明实施例中,共识协议包括:
发起交易:用户根据所需服务调用相关智能合约,在填写完智能合约所要求的参数后,将服务请求封装成一个交易,用户对该交易进行数字签名后将交易发送到区块链网络。
交易验证:区块链网络上的其他任何用户,在收到交易后对交易进行验证,包括检查交易提出者的签名和账户余额、智能合约的规范性、交易费用;如果交易通过验证,用户将该交易传播给它的相邻节点;否则,交易将被丢弃。
区块生成:授权用户组中的所有授权者负责收集并验证区块链网络中广播的交易;轮值授权者将通过验证的多个交易打包成一个数据区块;并且将授权用户组的信息更新和授权用户的信用评分也记录到区块中;轮值授权者新区块进行数字签名并广播到区块链网络。
区块验证:任何接收到新区块的用户对其进行验证,包括所涉及交易的有效性、授权用户组的更新信息、授权用户的信用评分以及授权用户的合法性;如果用户成功地验证区块,将该区块连接到区块链账本并存储在本地,否则丢弃该区块;当大多数的网络节点成功地验证区块之后,即认为完成了交易共识证明和新区块生成。
4、在本发明实施例中,PoC数据结构规范包括:
表1PoC区块头
详细定义PoC协议的数据机构及规范对它的可实现性是至关重要的,本发明所设计PoC数据结构符合以太坊区块链规范。
本发明实现PoC的所有链上的数据都被指定并记录到了区块头中,如表1所示。主要通过以太坊区块链中Extra,Coinbase和Nonce三个字段的复用实现PoC数据格式的规范化。
Extra,是可变长度的保存在区块头中,并且可以写入任何信息。因此,这个数据字段被用来记录地址、信用分数和每个授权用户的DutyTimer。来自授权用户的区块签名也被写在Extra字段。改进后的Extra的数据结构规范如表1所示。因为区块生产者的地址可以通过它的签名得到,PoC中没有使用PoW的消耗电力的哈希难题。
在区块头中的CoinBase和Nonce字段可以在投票过程中重用。
具体来说,投票授权用户的地址列在CoinBase字段中,并且投票结果显示在Nonce字段,如表1所示。注意,为了清晰的显示,在我们的工作中调整了CoinBase的显示顺序。
下面结合测试及验证对本发明的应用作进一步描述。
对信用子系统进行了测试。本次测试使用了8个全功能节点,其中4个节点设置为信用评分为120000分的初始授权用户,其他4个节点设置为初始信用评分为0分的普通节点。交易奖励的平均信用分数设置为5。CSThreshold=60000,CSreward=100。信用分数统计持续时间N=1000。节点1不发送交易。节点2~7发送的交易时间从200毫秒每次增加50ms到500毫秒。每个节点的信用分数如图2所示。
实验结果表明,节点1在实验过程中保持沉默,经过一次统计时间后,其授权用户身份被取消。节点7和节点8由于没有获得足够的信用分数,无法成为授权用户。交易频繁的节点2~5有足够的信用分数再授权组中稳定,这与从原型中对授权用户的调查保持一致。
下面结效果对本发明的应用作进一步描述。
在本发明中,提出了一种新的共识协议PoC,它的特点是一个信用子系统和由一个专用的授权小组负责区块生成机制的联合设计。PoC避免了电力消耗共识证明,并且保证了停车链的可信任性和可靠性。基于以上工作,并通过在停车链原型上的运行结果证明了PoC的安全性和鲁棒性。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。