一种新的适用联盟区块链的共识算法介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种新的适用联盟区块链的共识算法介绍北京知金链网络技术有限公司叶季青
一、背景介绍
二、随机数共识推举方法
三、工程实现问题
汇报内
容
一、背景介绍
区块链技术是当前人们研究的热点技术,因去中心化
并实现不可更改的记账而为金融、证券、存证等行业所重
视。
(一)联盟链作用特点区块链可以分成三类:公有链、联盟链和私有链。公
有链无中心服务器,参与公有链的节点可以按照系统的规
则自由接入网络,节点之间基于共识机制开展工作。比特
币就是典型的公有链。联盟链是由预先设定参与成员的节
点组成,节点网络接入和退出在联盟内进行。私有链一般
建立在某个企业内部,系统的运作规则根据企业要求进行
设定,进入私有链的成员仍然是由中心控制和制定的。
公有链、联盟链和私有链这三种区块链的类型中,只有公有链真正解决了信任问题,联盟链和私有链还是建立在一定的信任机制的基础之上进行的。而正因为公有链通过挖矿这种消耗的性能也不可小觑,公有链是这三种类型的区块链中性能最低的。
区块链技术综合运用了网络、数据库、密码等技术,包括区块设计、共识算法确定记账者、区块生成、区块挂账等环节,其中记账者确定是重要环节。记账者的确定过程应该满足共识和公正的要求。
(二)共识算法的作用
作为汉语中的一个词组,共识意思是“共同的
认识”,指不同利益的人所寻求的对价值、理想事
物的相同认识、广泛的共同认识。在计算机系统里,
共识机制,就是在一个时间段内对事务处理的前后
顺序达成共识的一种算法。区块链,特别是公有链
和联盟链,作为多组织节点完成一种统一排列顺序
的存储数据结构记账事务,必须要在一定的共识机
制支持下,达成一种业务数据顺序来构建统一的数
据账本。共识机制是区块链技术的重要基础。
(三)适合联盟链共识算法的要求
区块链共识机制的目标是使所有的诚实节点保存一
致性记账,同时满足两个性质:
1、一致性。所有诚实节点保存的区块链账本同样高
度的区块必须一致。
2、有效性。由某诚实节点发布的信息终将被其他所
有诚实节点记录在自己的区块链账本中。
比特币推举记账者的信任机制采用工作量证明方法,即采用“挖矿”的方式,谁率先完成满足一定条件的计算,谁就是记账者。“挖矿”增加了发送信息的成本,降低节点发送消息速率,保证在一个时间只有一个节点(或是很少)在进行广播。目前比特币的“挖矿”推举记账者的信任
机制,是唯一满足随机、公开、共识的要求。由于比特币确定记账者需要进行大量耗时计算,是效率不高的确定记账者的方法,不适应联盟链的要求。目前的联盟链推举记账者的方法并不随机,因而带有中心化的特征。
二、随机数共识推举方法
(一)基本原理
基本原理是联盟的每一个成员(联盟各成员的节点服务器或终端,也称节点),随机产出一个随机数,每个成员将收到的其它所有成员的随机数与自己的随机数累加后计算平均值,离平均值最近的随机数的成员,就是被随机公开推举的记账者。如果有多个成员的随机数离平均值同样最近,它们之间按此方式再进行一次推举。通过递归,最终推举一位记账者。这个方法效率高,随机、公正、公平,适合联盟链节点推举记账者的作用,并且对于联盟链的去中心化具有重要意义。
BCCR(blockchain consensus by random)。
1、一维随机数共识推举方法;
2、多维随机数共识推举方法;
3、随机数共识推举方法。
(二)联盟组成和要素
1、成员。有N个成员,分别记为P
1、P
2
、…、P
i
、…、P
N
;设Z为
一次推举时在线的实际成员数,有Z≤N;P为成员中待推举的节点。
2、随机数。一次随机推举时,记任意一个成员P
i
所产生的随机
数为x
i ,即P
i
持有x
i
,i=1、…、m
Z
;m
i
≤B。B可选值2e,e为用
适量整数,方便取模运算。
3、随机数平均值。一次推举各成员所举随机数的平均值为M。
4、时间与时限。设一次推举开始时间T
k
、每次推举的时间间隔
△=T
k+1–T
k
、各节点随机数产生的时间为t
1
、t
2
、…、t
Z
,要求
t i 应当处于T
k
到T
k+1
之间,且在△时间内完成一次推举计算。
(实际上,为便于算法执行,各节点应当是在一定的时间范围产生和发送随机数x
i
的)
(三)联盟记账者推举过程
推举过程为:
1、产生随机数。各成员产生随机数x 1、x
2、…、x i 、…、x Z 。
2、传递数据数。由PtoP 网络将节点P i 的包含x i 的数据块发布到其它节点,该数据块除包括x i 外,还包括P i 、t i 。
(P to P 网络完成一个节点的数据块传送到其它在线所有各个节点的)
3、各节点计算M 。各节点核对所收到的数据格式和时间,计算△时间内的
M=4、获取候选记账节点。比较各x i 与M 距离(差的绝对值),获取距离最小的节点P 作为候选记账节点。
(注意这里差距,是对x i 与M ,用大的减小的结果。如果用M-x i 取模B 或者x i -M 取模B ,不影响算法的正确性,记账者会发生变化)
5、报告候选记账节点P 、M 和Z 值。各成员通过P to P 网络向其它节点报告候选记账节点P 、M 和Z 值。
6、各节点核对候选节点P 。若各节点推举的候选节点P 不相同,则转1、2、3、4,重新推选计算。
7、各节点核对Z 值。若各节点报告的参与计算的节点数Z 不同,则转1、2、3、4,重新推选计算。
(在算法执行的过程中,可能有节点退出,存在极小概率情况,若干个节点收到的包含x i 的数据块个数不一致,即Z 不一致。6、7步也可以通过其它概率形式确定,而不重新进行1、2、3、4步)
8、候选节点P 节点为记账者。
Z
x Z
1
i i ∑=