当前位置: 首页 > 专利查询>朱清明专利>正文

区块链中共识区块的生成方法与计算设备技术

技术编号:16132382 阅读:82 留言:0更新日期:2017-09-01 22:33
本发明专利技术提供了一种区块链共识区块的生成方法与计算设备。本方法包括:点对点网络中的节点自愿注册成为候选节点;从在网的候选节点中选出入选节点子集,并随机将该子集的节点分为记账节点以及审计节点;记账节点将交易池中的交易打包成为候选子块,向审计节点广播;审计节点根据预设的审计规则对所有收到的候选子块进行验证,挑选出唯一的候选子块添加审计戳再广播给其他审计节点;当候选子块的审计戳数量超过设定的阈值后,该候选子块成为被收录的入选区块,从而完成一次共识过程。本发明专利技术的方案,随网络性能的改善,无需代码和人为参数变动,自动提高共识区块的收敛速度,并且对大幅提高DDOS和Eclipse攻击的难度。

【技术实现步骤摘要】
区块链中共识区块的生成方法与计算设备
本专利技术涉及区块链技术,特别是涉及区块链的共识实现方法区块链中共识区块的生成方法与计算设备。
技术介绍
2014年开始,比特币背后的区块链(Blockchain)技术受到大家关注,并正式引发了分布式记账本(DistributedLedger)技术的革新浪潮。公认的区块链的原始文献是中本聪所撰写的《比特币:一种点对点的电子现金系统》,论文的内容主要是描述比特币的实现技术。在该篇论文中其中,区块链被描述为用于记录比特币交易的账目历史。现在看来,区块链的基本概念包括:交易(Transaction):一次操作,导致账本状态的一次改变,如添加一条记录;区块(Block):记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识;链(Chain):由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中所有交易内容导致状态改变的结果进行确认。和任何分布式系统一样,区块链系统会面临网络延迟、传输错误、软件错误、安全漏洞、黑客入侵等问题,而且去中心化决定了系统中任何一个参与者都不能被完全信任,可能会出现恶意节点,以及数据分歧等问题。为了防范这些潜在的错误,区块链系统需要一个高效的共识机制来确保每一个节点都可以访问被全网大多数节点公认的账本。这个账本可以是存储在节点本地的账本,也可以是向其他在网节点发出请求后可以访问的账本。虽然分布式系统中各个节点如果都能保证以十分强大的性能(零延迟响应、无限吞吐量)无故障的运行,则实现共识过程并不复杂,简单通过多播过程投票即可。然而,现实中这样“完美”的系统并不存在,如响应请求往往存在时延、网络会发生中断、节点会发生故障、甚至存在恶意节点故意要破坏系统。一般地,把故障(不响应)的情况称为“非拜占庭错误”,恶意响应的情况称为“拜占庭错误”(对应节点为拜占庭节点)。理论上,分布式系统的共识问题是没有理想解的。现有的区块链共识机制主要包括:POS(proofofstake,权益证明机制)、POW(proofofwork,工作量证明)、DPOS(DelegateProofofStake,股份授权证明)和PBFT(PracticalByzantineFaultTolerance,实用拜占庭容错)。从概率角度,PBFT系列算法是确定的,一旦达成共识就不可逆转;而POW系列算法则是不确定的,随着时间推移,被推翻的概率越来越小。POW通过计算来反复猜测一个数值(nonce),使得区块链最后一个区块为基础,加上新的交易数据hash(散列,或称为哈希)后的结果满足预设的条件。保证在一段时间内,系统中只能出现少数合法提案。这些少量的合法提案会在网络中进行广播,收到的用户进行验证后会基于它认为的最长链上继续用这个方法构造新的区块。因此,系统中总是存在分叉(Fork)短链。所有参与延长区块链的节点基于保护自己的利益只会选择最长的链作为计算的输入,因此只会有一条链成为被公认的最长的链。POS是节点记账权的获得难度与节点持有的权益成反比,相对于POW,一定程度上缓解算力竞赛造成的资源消耗。这样生成多个分叉的区块是容易的,这样就大幅降低了分叉攻击的成本。攻击者可以制造符合自己利益的支链,进而在错误的支链上让惩罚机制失效,并和原始的支链形成竞争。DPOS类似于董事会投票,每个股东可以将其投票权授予一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每名代表分配到一个时间段来生产区块,代理他们进行验证和记账。其合法性验证性能、资源消耗和容错性与POS相似。因为大幅缩小参与验证和记账节点的数量,共识验证的时间就更短。DPOS无法处理DDOS(DistributedDenialofService,分布式拒绝服务)和Eclipse攻击(路由表毒化)安全性问题。PBFT算法及其各种改进假定攻击者数量在容错条件下,预设的大多数节点通过依赖一个选举过程达成节点共识,然后由选举的节点按照约定生成区块。这个选举过程会被DDOS干扰,同时选举结果构成单点故障,形成在Eclipse攻击条件,会造成反复选举,从而使网络共识性能下降。
技术实现思路
本专利技术的一个目的是去掉节点的选举过程,要提供一种高效的拜占庭容错的共识区块的生成方法。本专利技术一个进一步的目的是要有效去除DDOS和Eclipse的攻击条件。本专利技术另一个进一步的目的使得区块链中不允许出现空块,从而提高全网的存储效率。特别地,本专利技术提供了一种区块链中共识区块的生成方法,其包括:点对点网络中的节点自愿注册成为候选节点,并在点对点网络中广播注册成为候选节点的消息;从在网的候选节点中选出一个子集作为入选节点子集,并将入选节点子集随机分为记账节点子集和审计节点子集,记账节点子集中节点作为记账节点,审计节点子集中的节点作为审计节点;每个记账节点分别将交易池中的交易记录到新建的区块中,并在满足设定的审计条件后,分别将自身记录的区块打包为候选子块,向审计节点子集广播;每个审计节点分别根据预设的审计规则对所有收到的候选子块进行验证,挑选出唯一的候选子块,对挑选出的候选子块添加自身审计戳后在审计节点子集内广播;每个审计节点在收到其他审计节点广播的挑选结果后,将自身挑选的候选子块与其他审计节点挑选的候选子块进行比较,在确定其他审计节点挑选的候选子块更优的情况下,重新对更优的候选子块添加自身的审计戳,并抛弃自身挑选的候选子块,并重新在审计节点子集内广播;在任一审计节点确定出某一候选子块的审计戳数量超过设定的审计阈值后,认定该审计戳数量超过设定的审计阈值的候选子块成为被收录的入选区块,从而完成一次共识过程。可选地,从在网的候选节点中选出一个子集作为入选节点子集的步骤包括:在网的候选节点按性能进行排序,将此前最近一次得到入选区块作为筛选输入参数从性能排序靠前的候选节点中随机投票选出一个子集作为入选节点子集。可选地,候选节点成为入选节点子集的入选条件包括以下任意一条或多条:节点的账户余额、节点的在网历史记录、网络性能。可选地,成为入选节点子集的候选节点还要求在最近设定次数的共识过程中没有作为记账节点。可选地,设定的审计条件包括:新建的区块的剩余容量不足以填充一条新的交易记录;新建的区块的大小符合区块链系统预定义的大小,并且包括上一次达成共识的入选区块的散列值。新建的区块包括父块的散列值;新建的区块内的交易包括交易发起者的数字签名。可选地,每个审计节点分别根据预设的审计规则对所有收到的候选子块进行验证的步骤包括:每个审计节点分别对收到的候选子块分别进行散列运算,得到候选子块的散列值;对所有收到的候选子块的散列值进行排序,将散列值最大的候选子块或者散列值最小的候选子块作为挑选出的候选子块,并且每个审计节点将自身挑选的候选子块与其他审计节点挑选的候选子块进行比较的步骤包括:将自身挑选的候选子块的散列值与其他审计节点挑选的候选子块的散列值进行比较,在确定其他审计节点挑选的候选子块的散列值更大或更小的情况下,确定其他审计节点挑选的候选子块更优。可选地,在认定出入选区块之后还包括:广播入选区块,将此前一次的入选区块作为父块写入区块链。可选地,在完成一次共识后本文档来自技高网
...
区块链中共识区块的生成方法与计算设备

【技术保护点】
一种区块链中共识区块的生成方法,包括:点对点网络中的节点自愿注册成为候选节点,并在所述点对点网络中广播注册成为候选节点的消息;从在网的所述候选节点中选出一个子集作为入选节点子集,并将入选节点子集随机分为记账节点子集和审计节点子集,所述记账节点子集中节点作为记账节点,所述审计节点子集中的节点作为审计节点;每个所述记账节点分别将交易池中的交易记录到新建的区块中,并在满足设定的审计条件后,分别将自身记录的区块打包为候选子块,向所述审计节点子集广播;每个所述审计节点分别根据预设的审计规则对所有收到的候选子块进行验证,挑选出唯一的候选子块,对挑选出的候选子块添加自身审计戳后在所述审计节点子集内广播;每个所述审计节点在收到其他审计节点广播的挑选结果后,将自身挑选的候选子块与其他审计节点挑选的候选子块进行比较,在确定其他审计节点挑选的候选子块更优的情况下,重新对更优的候选子块添加自身的审计戳,并抛弃自身挑选的候选子块,并重新在所述审计节点子集内广播;在任一审计节点确定出某一候选子块的审计戳数量超过设定的审计阈值后,认定该审计戳数量超过设定的审计阈值的候选子块成为被收录的入选区块,从而完成一次共识过程...

【技术特征摘要】
1.一种区块链中共识区块的生成方法,包括:点对点网络中的节点自愿注册成为候选节点,并在所述点对点网络中广播注册成为候选节点的消息;从在网的所述候选节点中选出一个子集作为入选节点子集,并将入选节点子集随机分为记账节点子集和审计节点子集,所述记账节点子集中节点作为记账节点,所述审计节点子集中的节点作为审计节点;每个所述记账节点分别将交易池中的交易记录到新建的区块中,并在满足设定的审计条件后,分别将自身记录的区块打包为候选子块,向所述审计节点子集广播;每个所述审计节点分别根据预设的审计规则对所有收到的候选子块进行验证,挑选出唯一的候选子块,对挑选出的候选子块添加自身审计戳后在所述审计节点子集内广播;每个所述审计节点在收到其他审计节点广播的挑选结果后,将自身挑选的候选子块与其他审计节点挑选的候选子块进行比较,在确定其他审计节点挑选的候选子块更优的情况下,重新对更优的候选子块添加自身的审计戳,并抛弃自身挑选的候选子块,并重新在所述审计节点子集内广播;在任一审计节点确定出某一候选子块的审计戳数量超过设定的审计阈值后,认定该审计戳数量超过设定的审计阈值的候选子块成为被收录的入选区块,从而完成一次共识过程。2.根据权利要求1所述方法,其中,从在网的所述候选节点中选出一个子集作为入选节点子集的步骤包括:在网的所述候选节点按性能进行排序,将此前最近一次得到入选区块作为筛选输入参数从性能排序靠前的候选节点中随机投票选出一个子集作为所述入选节点子集,并且所述候选节点成为所述入选节点子集的入选条件包括以下任意一条或多条:节点的账户余额、节点的在网历史记录、网络性能。3.根据权利要求2所述的方法,其中,在使用所述网络性能作为入选条件时,从在网的所述候选节点中选出一个子集作为入选节点子集的步骤包括:对在网的所述候选节点的网络性能进行排序,得到排序靠前的网络性能优秀的候选节点子集,用最新一次达成共识的入选区块的散列值作为命中函数的输入,对排序得到的候选节点子集中的候选节点...

【专利技术属性】
技术研发人员:朱清明
申请(专利权)人:朱清明
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1