CN109447640A - 一种基于权益的改进PoW共识算法 - Google Patents
一种基于权益的改进PoW共识算法 Download PDFInfo
- Publication number
- CN109447640A CN109447640A CN201811239743.9A CN201811239743A CN109447640A CN 109447640 A CN109447640 A CN 109447640A CN 201811239743 A CN201811239743 A CN 201811239743A CN 109447640 A CN109447640 A CN 109447640A
- Authority
- CN
- China
- Prior art keywords
- account
- dig
- ratio
- mine
- balance
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开一种基于权益的改进PoW共识算法。该共识算法以工作量证明PoW共识算法为基础,结合挖矿节点的抵押账户余额与已挖到区块的数目,对PoW共识算法进行改进。改进后的PoW共识算法与原PoW共识算法相比,可以有效防止51%攻击,节省社会资源,同时还兼具PoW逻辑简单,容易实现的特点。
Description
技术领域
本发明涉及数字货币领域,具体涉及一种基于权益的改进工作量证明PoW(Proofof Work)共识算法。
背景技术
数字货币自诞生以来一直广受争议,在争议中人们逐渐认识到数字货币的技术本质以及未来的应用场景。近期在重庆召开的智博会上,人们更是将数字货币的底层技术-区块链与物联网、人工智能一并列为未来科技的三大技术,可见区块链技术已越来越受到广泛认可。目前从中国人民银行到国际货币基金组织,从花旗银行、纳斯达克等金融大佬,到IBM、阿里、微软等科技巨头纷纷布局区块链产业。区块链技术已经走进公众视野,引发全世界的广泛关注。
区块链技术是基于去中心化的对等网络,用开源软件把密码学原理、时序数据和共识机制相结合,来保障分布式数据库中各节点的连贯和持续,使信息能即时验证、可追溯,但难以篡改和无法屏蔽,从而创造了一套隐私、高效、安全的共享价值体系。
共识算法是区块链技术的核心组成部分,主要解决由构建和检验区块的主体是谁,以及如何维护区块链统一的问题。在中心化的结构体系中,整个系统的共识算法由中心来决定,各个参与方只需要服从这个中心即可,因此在中心化的系统中,共识算法的建立是极为高效的;而区块链技术是一种去中心化的系统,系统中每个参与节点地位平等,当出现分歧时,共识算法就成为解决此类问题的重要方法与手段。
目前区块链技术常用的共识算法有工作量证明PoW(Proof of Work)、权益证明(Proof of Stake)、授权股权证明DPoS(Delegated Proof of Stake)与实用拜占庭容错算法PBFT(Practical Byzantine Fault Tolerance)等。其中工作量证明PoW共识算法比较简单,效率比较高,它的主要特征是客户端需要做一定难度的工作(哈希谜题)得出一个结果,验证方却很容易通过结果来验证客户端是不是做了相应的工作。它的缺点也比较明显,因为需要大量的哈希计算,浪费太多电力能源,为业内所诟病,同时,随着币的价值增大,出现大量挖矿者,他们组成各个大的“挖矿集团(简称矿池)”,各个矿池的哈希计算能力(算力)不断增强,这样很容易出现所谓的51%攻击。51%攻击带来的危害非常严重,它不但破坏了区块链的去中心化特性,同时还可能出现取消所有转账,重复支付以及随机分叉等问题,给区块链造成难以修复的损失。在2016年8月,两个著名的以太坊项目Krypton和Shift分别遭受到了51%攻击;2018年5月,Bitcoin Gold也遭受了51%攻击,可见这种遭受51%攻击的新闻在数字货币领域并不鲜见。
本发明在工作量证明PoW共识算法的基础上,结合挖矿节点的抵押账户余额与已挖到区块的数目,提出了一种改进的PoW共识算法,此种改进的PoW共识算法,既利用了PoW共识算法简单、高效,又可以有效的避免51%攻击。
发明内容
本发明的目的在于提出一种基于权益的改进PoW共识算法,改进后的PoW共识算法与原PoW共识算法相比,可以有效防止51%攻击,节省社会资源,同时还兼具PoW逻辑简单,容易实现的特点。
本发明解决其技术问题所采用的技术方案是:
工作量证明PoW共识方法,其方法主要包括以下步骤:
步骤1:区块链中的节点收到未确认交易Tx,将其组织成block;
步骤2:将block与随机数Nonce=Random()进行哈希运算,记为HV=Hash(BlockHeader,Nonce);
步骤3:将哈希运算得到的值记为HV与区块中目标值Target_Value(区块链链目标值=最大目标值/难度值,难度值会随着难度的增长进行更新)相比较,如果HV>Target_Value,则重复步骤2;如果HV<Target_Value,则将这个区块进行广播;
步骤4:其他区块链中的节点,收到此区块后,进行哈希校验,判断其是否是有效区块;
步骤5:若是有效区块,则将区块写入区块链中,待确认后,获得挖到区块的奖励。
一种基于权益的改进PoW共识算法,为了方便阐述其主要特征,定义了以下规则:
1)进行挖矿,成为矿工,必须要在抵押账户里进行一定数量代币的质押,只有质押,才可进行挖矿;
2)抵押账户要与挖矿账户相互关联,两者可以相互转账;
3)当进行挖矿时,挖到区块奖励直接进入挖矿账户。
一种基于权益的改进PoW共识算法,其特征在于,该方法包括以下步骤:
步骤1:初始时,挖矿账户挖到区块数,记为dig_num=0;
步骤2:设区块链中所有抵押账户中币的总额记为balance_pledge_total,当前挖矿账户币余额记为balance_account,与挖矿账户相关联的抵押账户币余额记为balance_pledge_account,计算当前挖矿账户相关联抵押账户权益比,记为balance_ratio=balance_pledge_account/balance_pledge_total;
步骤3:判断此时挖矿账户相关联抵押账户的余额是否有变化,如果有变化重复步骤1及2;如果没有变化则转到步骤4;
步骤4:如果挖矿账户相关联抵押账户的余额没有变化,可以依据工作量证明PoW算法进行哈希计算;
步骤5:如果没有解出哈希谜题,继续重复以上步骤;如果解出哈希谜题,且符合区块链此刻难度值,则进行广播,验证;
步骤6:验证后,计算挖矿账户的相关联抵押账户自最后一次变动至此经历的区块数,记为T,计算挖矿占比,记为dig_ratio=(dig_num+1)/T;
步骤7:判断dig_ratio是否小于等于balance_ratio,如果dig_ratio=<balance_ratio,则dig_num=dig_num+1,挖矿账户获得区块奖励以及交易费;如果dig_ratio>balance_ratio,则此时挖矿无效,获得不了区块奖励;
步骤8:打包区块,确认后将挖到的块写入区块链中。
附图说明
图1为基于PoW共识算法的区块链生成示意图
图2为基于PoW共识算法的流程图
图3为一种基于权益的改进PoW共识算法流程图
图4为一种基于权益改进PoW共识算法区块链生成示意图
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
图1为基于PoW共识算法的区块链生成示意图,PoW共识算法主要通过SHA256哈希算法针对前一个区块的哈希值、当前区块交易的梅克尔根哈希、以及时间戳和随机数nonce计算哈希值,通过不断的尝试随机数nonce,使得计算出的哈希值小于一定的目标值才可以被整个链所认可。
图2为基于PoW共识算法的流程图。
图3为一种基于权益的改进PoW共识算法流程图,下面通过具体实例进行阐述:
在步骤s301,节点开始参与挖矿时,首先将其挖到的块数设置为0即dig_num=0;
在步骤s302,将区块链中所有抵押账户中币的总额,记为balance_pledge_total,与挖矿账户相关联的抵押账户币额记为balance_pledge_account,此时可将挖矿账户相关联的抵押账户余额与区块链中所有抵押账户总余额之比称为权益比,即balance_ratio=balance_pledge_account/balance_pledge_total;
在步骤s303,判断挖矿账户的关联抵押账户币的余额是否发生变化;如果账户的余额发生变化,那么将重复步骤s301至s302,否则转到步骤s304;
在步骤s304,将开始挖矿,使用常用的基于工作量证明的PoW共识算法;
在步骤s305,针对前一个区块的哈希值、当前区块交易的梅克尔根哈希、时间戳以及随机数nonce进行SHA256哈希算法计算哈希值,通过不断的尝试随机数nonce,使得计算出的哈希值小于一定的目标值。如果多次计算不满足条件且链已生成新的区块,则重复s302至s305步骤;如果计算出的哈希值满足当前链的目标值,则转到s306步骤;
在步骤s306,将挖到的区块进行广播,其他节点收到后进行验证
在步骤s307,设挖矿账户关联的抵押账户自最后一次变动至此经历的区块数,记为T。即在以前某个时刻,抵押账户有变动,比如收到转账,或进行转出等,则T的计算要从转账完成区块数记为num0起始点,算到此刻区块numt,即T=numt-num0,挖矿占比dig_ratio=(dig_num+1)/T;
在步骤s308,将当前挖矿账户的挖矿占比dig_ratio与权益比balance_ratio做比较,如果dig_ratio>balance_ratio,则直接转到步骤s310;如果dig_ratio=<balance_ratio,则转到步骤s309;
在步骤s309,dig_num将增大1,代表此挖矿节点又挖到一个区块,此时矿工的挖矿账户将获得区块奖励,即挖矿账户balance_account=balance_account+挖矿奖励;
在步骤s310,打包,确认后将此区块写入区块链中。
以上所述仅为本发明的较佳实施例而已,并不以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于权益的改进PoW共识算法,改进后的PoW共识算法与原PoW共识算法相比,可以有效防止51%攻击,节省社会资源,同时还具有PoW逻辑简单,容易实现的特点,其特征在于包含以下步骤:
步骤一:初始时,挖矿账户挖到区块数,记为dig_num=0;
步骤二:设区块链中所有抵押账户中币的总额记为balance_pledge_total,当前挖矿账户记为balance_account,与挖矿账户相关联的抵押账户币额记为balance_pledge_account,计算当前挖矿账户相关联抵押账户权益比,记为balance_ratio=balance_pledge_account/balance_pledge_total;
步骤三:判断此时挖矿账户相关联抵押账户的余额是否有变化,如果有变化重复步一及二;如果没有变化则转到步骤四;
步骤四:如果挖矿账户相关联抵押账户的余额没有变化,可以依据工作量证明PoW算法进行哈希计算;
步骤五:如果没有解出哈希谜题,继续重复以上步骤;如果解出哈希谜题,且符合区块链此刻难度值,则进行广播,验证;
步骤六:验证后,计算挖矿账户的相关联抵押账户自最后一次变动至此经历的区块数,记为T,计算挖矿占比,记为dig_ratio=(dig_num+1)/T;
步骤七:判断dig_ratio是否小于等于balance_ratio,如果dig_ratio=<balance_ratio,则dig_num=dig_num+1,挖矿账户获得区块奖励以及交易费;如果dig_ratio>balance_ratio,则此时挖矿无效,获得不了区块奖励;
步骤八:打包区块,待确认后将挖到的块写入区块链中。
2.依据权利要求1所述的一种基于权益的改进PoW共识算法,其特征在于,步骤二中计算当前挖矿账户相关联抵押账户权益比,即balance_ratio=balance_pledge_account/balance_pledge_total。
3.根据权利要求1所述的一种基于权益的改进PoW共识算法,其特征在于,步骤三中判断此时挖矿账户相关联抵押账户的余额是否有变化。
4.根据权利要求1所述的一种基于权益的改进PoW共识算法,其特征在于,步骤六中计计算挖矿账户的相关联抵押账户自最后一次变动至此经历的区块数。
5.根据权利要求1所述的一种基于权益的改进PoW共识算法,其特征在于,步骤六中计算挖矿占比(记为dig_ratio),即挖矿占比为目前挖到有效区块数(记为dig_num)与计算挖矿账户的相关联抵押账户自最后一次变动至此经历的区块数(记为T)之比,即dig_ratio=(dig_num+1)/T。
6.根据权利要求1所述的一种基于权益的改进PoW共识算法,其特征在于,步骤七中判断dig_ratio是否小于等于balance_ratio,如果dig_ratio=<balance_ratio,则dig_num=dig_num+1,挖矿账户获得区块奖励以及交易费;如果dig_ratio>balance_ratio,则此时挖矿无效,获得不了区块奖励。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811239743.9A CN109447640B (zh) | 2018-10-23 | 2018-10-23 | 一种基于权益的改进PoW共识算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811239743.9A CN109447640B (zh) | 2018-10-23 | 2018-10-23 | 一种基于权益的改进PoW共识算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109447640A true CN109447640A (zh) | 2019-03-08 |
CN109447640B CN109447640B (zh) | 2021-08-20 |
Family
ID=65547394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811239743.9A Active CN109447640B (zh) | 2018-10-23 | 2018-10-23 | 一种基于权益的改进PoW共识算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109447640B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110084596A (zh) * | 2019-04-01 | 2019-08-02 | 杜晓楠 | 一种处理区块链混合共识的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106296191A (zh) * | 2016-08-13 | 2017-01-04 | 深圳市樊溪电子有限公司 | 一种区块链功耗感知的PoW共识机制 |
CN106952082A (zh) * | 2017-03-06 | 2017-07-14 | 钱德君 | 一种基于股份证明的量子链共识机制方法 |
US20180114218A1 (en) * | 2016-10-26 | 2018-04-26 | International Business Machines Corporation | Blockchain: automatic fork protection |
-
2018
- 2018-10-23 CN CN201811239743.9A patent/CN109447640B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106296191A (zh) * | 2016-08-13 | 2017-01-04 | 深圳市樊溪电子有限公司 | 一种区块链功耗感知的PoW共识机制 |
US20180114218A1 (en) * | 2016-10-26 | 2018-04-26 | International Business Machines Corporation | Blockchain: automatic fork protection |
CN106952082A (zh) * | 2017-03-06 | 2017-07-14 | 钱德君 | 一种基于股份证明的量子链共识机制方法 |
Non-Patent Citations (1)
Title |
---|
杨超智: "抗矿池集中化的共识机制研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110084596A (zh) * | 2019-04-01 | 2019-08-02 | 杜晓楠 | 一种处理区块链混合共识的方法和装置 |
CN110084596B (zh) * | 2019-04-01 | 2023-02-10 | 杜晓楠 | 一种处理区块链混合共识的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109447640B (zh) | 2021-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tian et al. | Enabling cross-chain transactions: A decentralized cryptocurrency exchange protocol | |
Zhang et al. | Double-spending with a sybil attack in the bitcoin decentralized network | |
CN109964242B (zh) | 一种基于信任关系的区块链共识方法 | |
CN107038639B (zh) | 一种兼容多资产类型快速交易的联盟链构建方法 | |
CN108352009B (zh) | 区块链生成装置、区块链生成方法、区块链验证装置、区块链验证方法以及计算机可读存储介质 | |
CN107341660B (zh) | 一种区块链底层共识机制以及基于该共识机制的区块链系统 | |
CN108292395B (zh) | 区块链生成装置、区块链生成方法、区块链验证装置、区块链验证方法以及计算机可读存储介质 | |
CN107612973B (zh) | 用于智能移动端的区块链结构、生成方法及交易验证方法 | |
CN109639430B (zh) | 安全高速轻量级的区块链系统及方法 | |
Sompolinsky et al. | Bitcoin's underlying incentives | |
Lin et al. | Research on cross-chain technology of blockchain | |
CN106780032A (zh) | 一种多链场景下的区块链链间资产转移方法 | |
Lin et al. | Overview of block chain cross chain technology | |
CN109840767A (zh) | 基于区块链技术的多方公平合约存证方法和系统 | |
CN110084596B (zh) | 一种处理区块链混合共识的方法和装置 | |
Sun et al. | RTChain: A reputation system with transaction and consensus incentives for e-commerce blockchain | |
CN109981690A (zh) | 一种基于区块链智能合约的防篡改定时数据保密传输方法 | |
Sun et al. | A decentralized cross-chain service protocol based on notary schemes and hash-locking | |
CN111131298A (zh) | 一种基于信用去中心化的poc高效共识机制及实现方法 | |
CN113627906B (zh) | 哈希锁定和侧链技术的跨链交易方法、系统、可存储介质 | |
Lamriji et al. | A comparative study of consensus algorithms for blockchain | |
CN109447640A (zh) | 一种基于权益的改进PoW共识算法 | |
Bhat et al. | A probabilistic analysis on crypto-currencies based on blockchain | |
Barbàra et al. | MP‐HTLC: Enabling blockchain interoperability through a multiparty implementation of the hash time‐lock contract | |
Guo et al. | Multi-party Fair Exchange Protocol with Smart Contract on Bitcoin. |
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 |