CN110445778B - 一种应用于联盟链的共识算法 - Google Patents

一种应用于联盟链的共识算法 Download PDF

Info

Publication number
CN110445778B
CN110445778B CN201910708359.7A CN201910708359A CN110445778B CN 110445778 B CN110445778 B CN 110445778B CN 201910708359 A CN201910708359 A CN 201910708359A CN 110445778 B CN110445778 B CN 110445778B
Authority
CN
China
Prior art keywords
nodes
block
node
blocking
super
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910708359.7A
Other languages
English (en)
Other versions
CN110445778A (zh
Inventor
岳勇
艾阳
郭仲勇
原艳娜
许高锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongdun Cloud Chain Guangzhou Information Technology Co ltd
Original Assignee
Zhongdun Cloud Chain Guangzhou Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongdun Cloud Chain Guangzhou Information Technology Co ltd filed Critical Zhongdun Cloud Chain Guangzhou Information Technology Co ltd
Priority to CN201910708359.7A priority Critical patent/CN110445778B/zh
Publication of CN110445778A publication Critical patent/CN110445778A/zh
Application granted granted Critical
Publication of CN110445778B publication Critical patent/CN110445778B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

本发明涉及应用于联盟链的共识算法,可有效解决区块链系统浪费能源,交易吞吐量低的问题,其解决的技术方案是,区块链上有交易发生后,向所有打块节点广播交易信息;当打块节点产生新区块后指定当前区块为预提交状态,立即向其余打块节点广播区块信息;其余打块节点对收到的区块信息进行验证;当有2/3以上的打块节点都确认后,该区块经过第一次验证;2/3以上生产者对第一次验证状态的区块都签名通过时,打块节点将该区块链接上主链,完成共识算法,本发明避免采用大量算力运算节省了大量资源,且共识过程速度快,时间短,效率更高,极大的提高了区块确认速度,有巨大的社会和经济效益。

Description

一种应用于联盟链的共识算法
技术领域
本发明涉及区块链系统共识算法,特别是一种应用于联盟链的共识算法。
背景技术
共识算法是构建区块链信任特性的基础,共识字面意思就是共同的认识,所以共识算法就是为了达到共同认识所涉及的算法,主要解决多点统一意见的问题,日常生活中,几乎所有的事情都是达成共识的过程;而区块链最核心的问题也是如何在去中心化的环境中让所有节点达成共识。
区块链系统中所有的节点都是平等的,每一个节点都可以记账,最终就会产生很多个不同的账本,但只需要一个账本或者很多个相同的账本,保证一段时间内只有一个节点生成合格的账本的过程就是共识过程,使用共识算法的目的就是在一个区块链系统中让所有节点通过算法中预设的条件和操作在公平公开的环境下达成一致观点,一是解决由哪个节点来记账,二是确保节点记账后的全网账本同步。
POW( Proof of Work)工作量证明(比特币,莱特币),这种方法主要依赖机器进行数学运算来获取记账权,主要用于交易结算领域,包括转账、支付、借贷等,但POW浪费能源区块的确认时间难以缩短,交易吞吐量较低。
POS(Proof of Stake)权益证明(以太坊,NXT),主要思想是节点记账权的获得难度与节点持有的权益成反比,该共识机制容错性和POW相同,它是POW的一种升级共识机制,根据每个节点所占代币的比例和时间,等比例的降低挖矿难度,从而加快找随机数的速度,除交易系统以外,主要被用于众筹和一些简单的区块链游戏,但POS还是需要挖矿,浪费能源在本质上没有解决商业应用的痛点,所有的确认都只是一个概率上的表达,而不是一个确定性的事情,理论上有可能存在其他攻击影响。
DPOS(Delegated Proof of Stake)股份授权证明(比特股,EOS),与POS的主要区别在于节点选举若干代理人,由代理人验证和记账,其合规监管、性能、资源消耗和容错性与POS相似,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账,主要应用于去中心化交易所、去中心化社交平台。
PBFT(Practical Byzantine Fault Tolerance)实用拜占庭容错,在保证活性和安全性的前提下提供了(n-1)/3的容错性,主要应用于金融证券保险等行业,基于区块链的数字票据交易平台,但是PBFT存在交易达成共识时间长,交易吞吐量小,资料利用率低的问题。
因此,针对目前的区块链系统,有没有一种更安全、更高效的共识机制,解决上述的浪费能源,交易吞吐量低的问题呢,至今,未见公开标示。
发明内容
针对上述情况,为克服现有技术之缺陷,本发明之目的在于提供一种改进DPOS和PBFT应用于联盟链的共识算法,可有效解决区块链系统浪费能源,交易吞吐量低的问题。
为实现上述目的,本发明的技术方案是,一种应用于联盟链的共识算法,包括以下步骤:
(1)根据用户投票选出一部分节点作为后续一个阶段生产区块的超级节点和备用节点;
(2)根据节点网络和性能情况,决定超级节点的打块顺序;
(3)区块链上有交易发生后,向所有打块节点广播交易信息;
(4)经过指定的时间间隔,当打块节点产生新区块后指定当前区块为预提交状态,立即向其余打块节点广播区块信息;
(5)其余打块节点对收到的区块信息进行验证;
(6)当有2/3以上的打块节点都确认后,该区块经过第一次验证;
(7)打块节点修改区块状态为提交状态,然后向其余生产节点广播区块信息;
(8)2/3以上生产者对第一次验证状态的区块都签名通过时,该区块经过第二次验证,打块节点将该区块链接上主链,完成共识算法。
本发明避免采用大量算力运算节省了大量资源,且共识过程速度快,时间短,效率更高,采用了DPOS的代议制在很大程度上提高了系统的安全性,避免了多种安全隐患,在区块确认过程中采用PBFT的机制,极大的提高了区块确认速度,有巨大的社会和经济效益。
附图说明
图1是本发明节点工作示意图。
图2是本发明区块状态变化示意图。
具体实施方式
以下结合附图和具体情况对本发明的具体实施方式作详细说明。
结合附图1-2给出,本发明在具体实施时,包括以下步骤:
(1)根据用户投票选出一部分节点作为后续一个阶段生产区块的超级节点和备用节点,在一个联盟链网络中,系统由数量确定的n个可信节点组成,在n个可信节点中选出9个超级节点和9个备用节点,系统中所使用的投票机制用户可以自行参加,投票可以随时参与,系统每一天记录一次投票结果,每个联盟链用户能为2倍超级节点数量的节点投票,用户的投票会被记录下来作为系统选择超级节点和备用节点的依据,一旦投票的排名发生改变,系统内的超级节点和备用节点名单也将发生改变,当用户投票不足时,系统将根据节点的网络测速情况,按照网络质量的好坏来分配超级节点,当投票排名发生变化时再进行改变;
(2)决定超级节点打块顺序,系统内,当系统需要的9个超级节点被确定后,再确定指定节点的打块顺序,系统会统计当前超级节点的网络测速情况,CPU和内存性能,按照节点性能降序的顺序决定超级节点的打块顺序,当超级节点列表结束一轮运行,发生节点更换时,根据新节点的性能对节点进行新的排序;
(3)区块链上有交易发生后,向所有打块节点广播交易信息,即request阶段,根据确定的节点打块顺序,由当前指定的超级节点,对这一时间段的所有交易进行处理打块后广播给其他几个指定的超级节点,这一过程与常规逻辑的PBFT算法没有区别;
(4)经过3S的时间间隔,当打块节点产生新区块后指定当前区块为预提交状态,立即向其余打块节点广播区块信息,即prepare阶段,其余系统中的联盟链节点收到当前节点签名的块时,经过验证后发出由本节点签名的确认prepare信息,等待共识;
(5)其余打块节点对收到的区块信息进行验证;
(6)当有2/3以上的打块节点都确认后,该区块经过第一次验证,当前指定的打块节点收到2/3的节点发出的对这一区块的确认信息后,认为网络中对此块的prepare已达成共识,其中,已发出的PREPARE信息数据后,不可更改;
(7)打块节点修改区块状态为提交状态,然后向其余生产节点广播区块信息,即commit阶段,当区块经过第一轮2/3确认,被标记为prepared 后,当前打块的超级节点向其他几个超级节点发出等待确认commit的信息;
(8)2/3以上生产者对第一次验证状态的区块都签名通过时,该区块经过第二次验证,即当前的打块节点收到2/3的节点发出对区块的COMMIT信息时,当前的打块节点认为网络中对此块的commit已达成共识,即此块已达成共识,标记为committed 状态,并将当前区块加入到账本中,然后根据指定的打块顺序由下一个节点开始准备打块。
为保证更好的实施效果,所述n个可信节点根据联盟链网络规模的大小为11-101个。
所述超级节点与备用节点的数量一致。
实施例:
(1)第一步投票(系统内投票机制):
在一个联盟链网络中,系统由数量确定的可信节点组成,为了维护系统的正常运转维护联盟链的运行,系统需要指定一些节点具有记账权,具有记账权的节点就是超级节点,超级节点为了维护联盟链系统的正常运行会按照指定的规则为系统记账,在一个联盟链系统中,所有节点的加入都是通过授权的,系统中不以普通公有链所使用的的代币作为系统运行的依赖,所以在一个联盟链系统中不能使用常规的依据代币权重或资源占有量的方式来衡量一个节点对于系统的作用,系统中所使用的投票机制用户可以自行参加,投票可以随时参与,系统每一天记录一次投票结果,每个联盟链用户能为2倍超级节点数量的节点投票,用户的投票会被记录下来作为系统选择超级节点和备用节点的依据,一旦投票的排名发生改变,系统内的超级节点和备用节点名单也将发生改变,当用户投票不足时,系统将根据节点的网络测速情况,按照网络质量的好坏来分配超级节点,当投票排名发生变化时再进行改变,当超级节点出现问题,例如发生网络错误时,系统预先选好的备用节点会作为替补更换出现问题的超级节点;
(2)决定超级节点打块顺序:
系统由数量确定的60个可信节点组成,本发明系统内从60个可信节点中确定9个超级节点和9个备用节点,当系统需要的9个超级节点被确定后,再确定指定节点的打块顺序,系统会统计当前超级节点的网络测速情况,CPU和内存性能,按照节点性能降序的顺序决定超级节点的打块顺序,当超级节点列表结束一轮运行,发生节点更换时,会根据新节点的性能对节点进行新的排序;
(3)节点打块流程:
1)request阶段,根据确定的节点打块顺序,由当前指定的超级节点,对这一时间段的所有交易进行处理打块后广播给其他几个指定的超级节点,这一过程与常规逻辑的PBFT算法没有区别:
2)prepare阶段,其余系统中的联盟链节点收到当前节点签名的块时,经过验证后发出由本节点签名的确认prepare信息,等待共识,经过指定的时间间隔(通常为3S),当打块节点产生新区块后指定当前区块为预提交状态,立即向其他打块节点广播区块信息,当前指定的打块节点收到2/3的节点发出的对这一区块的确认信息后,认为网络中对此块的prepare已达成共识,已发出的PREPARE信息数据后,不可更改;
3)commit阶段,当区块经过第一轮2/3确认,被标记为prepared 后,打块节点修改区块状态为提交状态,当前打块的超级节点向其他几个超级节点发出等待确认commit的信息;
4)当当前的打块节点收到了2/3的节点发出对区块的COMMIT信息数据,当前的打块节点认为网络中对此块的commit已达成共识,即此块已达成共识,标记为committed 状态,并将当前区块加入到账本中,然后根据指定的打块顺序由下一个节点开始准备打块。
对于同一个块而言,只有收集到所需数据量的PREPARE信息数据,才会进入commit阶段,同理,只有收集到所需数据量的COMMIT信息数据,才会被认为区块打块成功并被连接到区块链账本最新高度上,否则就一直重发直到信息数据满足要求。
本发明避免采用大量算力运算节省了大量资源,且共识过程速度快,时间短,效率更高,效率提高了30%-50%,采用了DPOS的代议制在很大程度上提高了系统的安全性,避免了多种安全隐患,在区块确认过程中采用PBFT的机制,极大的提高了区块确认速度,确认速度至少提高40%以上,有巨大的社会和经济效益。

Claims (3)

1.一种应用于联盟链的共识算法,其特征在于,包括以下步骤:
(1)根据用户投票选出一部分节点作为后续一个阶段生产区块的超级节点和备用节点,当超级节点出现问题,系统预先选好的备用节点会作为替补更换出现问题的超级节点;
(2)根据节点网络和性能情况,决定超级节点的打块顺序;
(3)区块链上有交易发生后,向所有打块节点广播交易信息;
(4)经过指定的时间间隔,当打块节点产生新区块后指定当前区块为预提交状态,立即向其余打块节点广播区块信息;
(5)其余打块节点对收到的区块信息进行验证;
(6)当有2/3以上的打块节点都确认后,该区块经过第一次验证;
(7)打块节点修改区块状态为提交状态,然后向其余生产节点广播区块信息;
(8)对第一次验证状态的区块2/3以上都签名通过时,该区块经过第二次验证,打块节点将该区块链接上主链,完成共识算法。
2.根据权利要求1所述的应用于联盟链的共识算法,其特征在于,包括以下步骤:
(1)根据用户投票选出一部分节点作为后续一个阶段生产区块的超级节点和备用节点,在一个联盟链网络中,系统由数量确定的n个可信节点组成,在n个可信节点中选出9个超级节点和9个备用节点,使用投票机制投票,可随时参与,每天记录一次投票结果,每个联盟链能为2倍超级节点数量的节点投票,投票被记录下来作为选择超级节点和备用节点的依据,一旦投票的排名发生改变,网络系统内超级节点和备用节点名单也将发生改变,当投票不足时,根据节点的网络测速情况,按照网络质量的好坏来分配超级节点,当投票排名发生变化时再进行改变;
(2)决定超级节点打块顺序,网络系统内,当系统需要的9个超级节点被确定后,再确定指定节点的打块顺序,计算机统计当前超级节点的网络测速情况,CPU和内存性能,按照节点性能降序的顺序决定超级节点的打块顺序,当超级节点列表结束一轮运行,发生节点更换时,根据新节点的性能对节点进行新的排序;
(3)区块链上有交易发生后,向所有打块节点广播交易信息,即request阶段,根据确定的节点打块顺序,由当前指定的超级节点,常规逻辑的PBFT算法对这一时间段的所有交易进行处理打块后,广播给其余指定的超级节点;
(4)经过3S时间的间隔,当打块节点产生新区块后指定当前区块为预提交状态,立即向其余打块节点广播区块信息,即prepare阶段,其余系统中的联盟链节点收到当前节点签名的块时,经过验证后发出由本节点签名的确认prepare信息,等待共识;
(5)其余打块节点对收到的区块信息进行验证;
(6)当有2/3以上的打块节点都确认后,该区块经过第一次验证,当前指定的打块节点收到2/3的节点发出的对这一区块的确认信息后,网络中对此块的prepare已达成共识,其中,已发出的prepare信息数据,不可更改;
(7)打块节点修改区块状态为提交状态,然后向其余生产节点广播区块信息,即commit阶段,当区块经过第一轮2/3确认,被标记为prepared 后,当前打块的超级节点向其他几个超级节点发出等待确认commit的信息;
(8)对第一次验证状态的区块2/3以上都签名通过,该区块为经过第二次验证,即当前的打块节点收到2/3的节点发出对区块的commit信息时,当前的打块节点认为网络中对此块的commit已达成共识,即此块已达成共识,标记为committed 状态,并将当前区块加入到账本中,然后根据指定的打块顺序由下一个节点开始准备打块。
3.根据权利要求1所述的应用于联盟链的共识算法,其特征在于,所述超级节点与备用节点的数量一致。
CN201910708359.7A 2019-08-01 2019-08-01 一种应用于联盟链的共识算法 Active CN110445778B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910708359.7A CN110445778B (zh) 2019-08-01 2019-08-01 一种应用于联盟链的共识算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910708359.7A CN110445778B (zh) 2019-08-01 2019-08-01 一种应用于联盟链的共识算法

Publications (2)

Publication Number Publication Date
CN110445778A CN110445778A (zh) 2019-11-12
CN110445778B true CN110445778B (zh) 2020-12-22

Family

ID=68432786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910708359.7A Active CN110445778B (zh) 2019-08-01 2019-08-01 一种应用于联盟链的共识算法

Country Status (1)

Country Link
CN (1) CN110445778B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110060159A (zh) * 2019-03-12 2019-07-26 蔡少龙 基于超级节点的数据处理方法及装置
CN111046363B (zh) * 2019-12-12 2020-12-15 吉林大学 一种基于虹膜特征联盟随机匹配投票机制的身份验证方法
CN111145025B (zh) * 2019-12-30 2023-07-14 北京工商大学 一种基于区块链的供应链数据双链存储优化方法
CN111464631B (zh) * 2020-03-31 2023-03-28 成都质数斯达克科技有限公司 联盟区块链中的业务共识方法及装置
CN111507840B (zh) * 2020-04-15 2024-03-26 财付通支付科技有限公司 区块链共识方法、装置、计算机以及可读存储介质
CN111988321B (zh) * 2020-08-24 2022-02-11 桂林电子科技大学 一种基于机器学习的联盟链异常检测系统及其检测方法
CN112346708B (zh) * 2020-11-11 2023-07-21 上海科技大学 一种用öztürk低延时模平方算法提高区块链吞吐量的方法
CN114785776A (zh) * 2021-01-20 2022-07-22 银联国际有限公司 基于区块链的清算系统以及基于区块链的清算方法
CN112884580B (zh) * 2021-02-18 2023-09-26 中国科学院计算技术研究所 一种公众联盟链共识方法及系统
CN113034703B (zh) * 2021-03-01 2022-08-30 安徽大学 一种基于联盟链机制的停车位共享方法
CN113225736B (zh) * 2021-03-24 2024-02-02 湖南宸瀚信息科技有限责任公司 无人机集群节点认证方法、装置、存储介质及计算机设备
CN113949518A (zh) * 2021-10-18 2022-01-18 甘肃同兴智能科技发展有限责任公司 一种提高区块链吞吐量的共识方法及系统
CN114615281B (zh) * 2022-03-07 2023-02-28 中国科学院软件研究所 基于小规模委员会的区块链出块方法及PoS协议确认方法
CN115250277B (zh) * 2022-08-09 2023-09-05 西安邮电大学 将共识机制适用于基于联盟链的边缘缓存系统的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110011814A (zh) * 2019-04-16 2019-07-12 北京艾摩瑞策科技有限公司 一种可验证的DPoS共识方法及其系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10938567B2 (en) * 2017-09-12 2021-03-02 Kadena Llc Parallel-chain architecture for blockchain systems
CN109819003A (zh) * 2017-11-22 2019-05-28 南京理工大学 一种区块链的分层共识方法和系统
CN108648078B (zh) * 2018-05-02 2021-03-23 杭州溪塔科技有限公司 一种交易预处理方法、装置及电子设备
CN109360100B (zh) * 2018-11-13 2020-11-13 北京航空航天大学 基于区块链技术的交易快速确认方法及装置
CN109784956B (zh) * 2019-02-25 2023-05-30 重庆邮电大学 基于区块链技术的农产品溯源方法
CN110012100B (zh) * 2019-04-09 2021-04-27 杭州秘猿科技有限公司 一种带宽优化的区块链共识方法、装置及电子设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110011814A (zh) * 2019-04-16 2019-07-12 北京艾摩瑞策科技有限公司 一种可验证的DPoS共识方法及其系统

Also Published As

Publication number Publication date
CN110445778A (zh) 2019-11-12

Similar Documents

Publication Publication Date Title
CN110445778B (zh) 一种应用于联盟链的共识算法
CN109639837B (zh) 基于信任机制的区块链DPoS共识方法
CN106850536B (zh) 区块链共识方法及系统
Poon et al. Plasma: Scalable autonomous smart contracts
CN108737375B (zh) 一种区块链共识方法及系统
CN110189128B (zh) 一种用于区块快速生成的分布式共识的方法和装置
CN108241926B (zh) 一种区块链授权共识方法
CN109951474A (zh) 一种实现区块链共识出块的方法
CN113347164B (zh) 基于区块链的分布式共识系统及方法、设备、存储介质
KR20180014534A (ko) 블록체인 기반 트랜잭션 검증 시스템 및 그 방법
Yuan et al. Efficient Byzantine consensus mechanism based on reputation in IoT blockchain
EP4362388A2 (en) Computer-implemented systems and methods relating to a binary blockchain comprising a pair of coupled blockchains
Xin et al. On scaling and accelerating decentralized private blockchains
WO2022267715A1 (zh) 一种预言机节点筛选方法、装置、存储介质及电子装置
CN113256424B (zh) 一种交易数据处理方法、装置、设备及存储介质
CN112597240B (zh) 一种基于联盟链的联邦学习的数据处理方法与系统
CN111372220A (zh) 一种应用于车联网的区块链共识方法
CN115115451A (zh) 一种面向大宗商品交易监管的区块链服务管理系统
CN115797070A (zh) 一种基于中间人账户激励的区块链交易方法、装置及系统
CN113448694B (zh) 一种提高事务处理能力的区块链共识方法
TWM586416U (zh) 基於區塊鏈技術實現交易的多中心分散驗證系統
CN114169387A (zh) 模型训练方法和装置、电子设备、存储介质
CN111177262A (zh) 一种区块链共识方法、相关装置及系统
CN114154969B (zh) 一种基于区块链的大型交易和结算方法
CN115170256A (zh) 基于区块链和边缘计算的微电网电力交易方法、系统、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant