CN111641666A - 一种主链选择方法、装置及计算机可读存储介质 - Google Patents
一种主链选择方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111641666A CN111641666A CN201910158502.XA CN201910158502A CN111641666A CN 111641666 A CN111641666 A CN 111641666A CN 201910158502 A CN201910158502 A CN 201910158502A CN 111641666 A CN111641666 A CN 111641666A
- Authority
- CN
- China
- Prior art keywords
- block
- main chain
- total
- weight
- turning
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种主链选择方法、装置及计算机可读存储介质,主链选择方法,包括以下步骤:步骤1:计算区块难度;先按照比特币协议计算当前块的块难度;步骤2:计算区块权重;步骤3:计算区块总权重;步骤4:根据区块总权重选择主链;步骤5、保持主链不变,结束;步骤6、区块所在链替换主链成为新的主链,结束。本发明方法易于实施,有利于网络稳定。
Description
技术领域
本发明涉及一种主链选择方法、装置及计算机可读存储介质。
背景技术
现在的比特币的网络中,只有最长的链才是被承认的。在比特币中,孤块没有意义,随后将被抛弃。孤块的算力无法对区块的稳定提供帮助。
以太坊GHOST协议能够利用部分孤块算力来提高以太链的稳定性,但以太坊孤块算力利用是提高下个区块的难度,有可能导致未利用孤块算力的区块的子区块先于利用孤块算力的区块的子区块挖掘出来的情况。从而导致利用孤块算力的矿工在竞争上的劣势。
因此,有必要设计一种新的主链选择方法。
发明内容
本发明所要解决的技术问题是提供一种主链选择方法,该方法易于实施,有利于系统稳定。
发明的技术解决方案如下:
一种主链选择方法,具体是一种利用孤块算力的主链选择方法,包括以下步骤:
步骤1:计算区块难度:
先按照比特币协议计算当前块的区块难度;
步骤2:计算区块权重:
区块权重的计算方法如下:
区块权重=区块难度+∑(一级孤块难度*孤块权重系数);
孤块权重系数=(孤块块高+限制深度-当前块高)*调整系数;
调整系数可以根据需要选取,从而使得包含一级孤块的区块在同高度的主链的竞争中占有竞争优势,但又不影响整条链的稳定性,例如:
调整系数=1/(2048*限制深度)。
步骤3:计算区块总权重:
区块总权重的计算方法如下:
区块总权重=区块的父区块总权重+区块权重;
步骤4:根据区块总权重选择主链:
方法如下:
如果区块总权重<主链总权重,转步骤5;
如果区块总权重>主链总权重,转步骤6;
如果区块总权重=主链总权重,且区块高度<主链链顶区块高度,转步骤6;
如果区块总权重=主链总权重,且区块高度=主链链顶区块高度,按以下2种方法中的任一种进行处理:
方法1:比较当前区块块与主链链顶区块包含二级孤块总难度,如果当前区块包含二级孤块总难度比当前主链链顶区块二级孤块总难度,则转步骤6,否则转步骤5;
方法2:比较当前区块哈希与主链链顶区块哈希,如果当前区块哈希小于当前主链链顶区块哈希,则转步骤6,否则转步骤5
如果区块总权重=主链总权重,且区块高度>主链链顶区块高度,转步骤5;
步骤5、保持主链不变,结束;
步骤6、区块所在链替换主链成为新的主链,结束。
当前块是指当前待处理块。
一级孤块是按照设定方法选取的对链的收敛有益的孤块,二级孤块是按照设定方法选取的非一级孤块。
其中调整系数可以根据需要选取,从而使得包含一级孤块的区块在同高度的主链的竞争中占有竞争优势,但又不影响整条链的稳定性。
本发明还提供一种利用孤块算力的主链选择装置,包括:
模块1,用于计算区块难度,先按照比特币协议计算当前块的块难度;
模块2,用于计算区块权重;
模块3,用于计算区块总权重;
模块4,用于根据区块总权重选择主链:
方法如下:
如果区块总权重<主链总权重,转步骤5;
如果区块总权重>主链总权重,转步骤6;
如果区块总权重=主链总权重,且区块高度<主链链顶区块高度,转步骤6;
如果区块总权重=主链总权重,且区块高度=主链链顶区块高度,按以下2种方法中的任一种进行处理:
方法1:比较当前区块块与主链链顶区块包含二级孤块总难度,如果当前区块包含二级孤块总难度比当前主链链顶区块二级孤块总难度,则转步骤6,否则转步骤5;
方法2:比较当前区块哈希与主链链顶区块哈希,如果当前区块哈希小于当前主链链顶区块哈希,则转步骤6,否则转步骤5
如果区块总权重=主链总权重,且区块高度>主链链顶区块高度,转步骤5;
模块5,用于保持主链不变,结束;
模块6,用于将区块所在链替换主链成为新的主链,结束。
本发明还提供一种利用孤块算力的主链选择装置,包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现所述的主链选择方法。
本发明还提供一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现主链选择方法。
技术术语的解释
主链:累计了最多难度的区块链,在一般情况下,也是包含最多区块的那个链。
比特币主链:在比特币的网络中,只有最长的链才是被承认的。
以太坊GHOST协议:Greedy Heaviest-Observed Sub-Tree,贪婪最重可见子树协议。GHOST协议选取主链的原则是被选区块至创世块包含的有效区块最多。
孤块:在比特币的网络中,只有最长的链才是被承认的,如果某一个区块不在最长的链中,则这个区块将被称为Orphan Block“孤块”。孤块是有效块,不是主链的一部分。它们可以在两个矿工在相似时间产生块时自然发生,或者它们可能由攻击者(具有足够的哈希能力)试图逆转交易引起。
父区块:每个区块在区块头中引用的前一个区块。
子区块:相对父区块而言,引用父区块的区块。
以太坊难度计算方法:以太坊现有的难度调整阶段是Byzantium,其难度值由父区块难度、孤块数量、当前时间与父区块决定。孤块数量多,难度值高。
有益效果:
本发明可应用在区块链系统中。
本发明直接应用在使用工作量证明方法的区块链系统中。
本发明为比特币网络设计一种主链选择方法,能在不改变难度计算方法的同时,有效的利用孤块算力来帮助网络的稳定。
本发明提出一种主链选择方法。这种方法能在不改变比特币难度计算方法的同时,有效的利用全网算力,提高链的收敛性。
本发明需要设计一种主链选择方法能为比特币网络带来以下效益:
1、本发明能有效的在使用在工作量证明的区块链网络,不需要改变区块的结构及难度调整算法,可以有效的兼容历史区块数据,能够为链的升级提供支持。
2、本发明能有效的解决孤块算力利用问题,能够有效的支持比特网络区块产生速度的提升。
附图说明
图1为一种包含区块总权重的块索引结构示意图;
图2为第一种主链选择流程图;
图3为主链选择实例示意图;
图4为第二种主链选择流程图。
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明:
实施例1:如图1~2,首先本发明将孤块分为两种类型:一级孤块、二级孤块。其中一级孤块是按照设定方法选取的对链的收敛有益的孤块。使用一级孤块的目的是通过改变包含一级孤块的区块权重,从而使包含孤块的区块在竞争主链时获取优势。二级孤块是按照设定方法选取的非一级孤块。使用二级孤块的目的是区块总权重与主链总权重相同时,使包含二级孤块的区块在竞争主链时获取优势。孤块选择方法本发明不做限制。
如图1本发明在区块索引中增加区块总权重字段。区块总权重表示从区块开始至创世块的区块权重之和。其中创世块的权重等于创世块的难度。主链总权重是表示主链链顶区块总权重。图2为本发明中主链选择方法,流程如下:
步骤1:计算区块难度,先按照比特币协议计算当前块(当前待处理块)的块难度;
步骤2:计算区块权重,区块权重的计算方法如下:
区块权重=区块难度+∑(一级孤块难度*孤块权重系数);
孤块权重系数=(孤块块高+限制深度-当前块高)*调整系数;
调整系数可以根据需要选取,从而使得包含一级孤块的区块在同高度的主链的竞争中占有竞争优势,但又不影响整条链的稳定性,例如:
调整系数=1/(2048*限制深度)。
步骤3:计算区块总权重,区块总权重的计算方法如下:
区块总权重=区块的父区块总权重+区块权重。
步骤4:根据区块总权重选择主链,方法如下:
如果区块总权重<主链总权重,转步骤5;
如果区块总权重>主链总权重,转步骤6;
如果区块总权重=主链总权重,且区块高度<主链链顶区块高度,转步骤6;
如果区块总权重=主链总权重,且区块高度=主链链顶区块高度,比较当前区块块与主链链顶区块包含二级孤块总难度,如果当前区块包含二级孤块总难度比当前主链链顶区块二级孤块总难度大,则转步骤6,否则转步骤5。
如果区块总权重=主链总权重,且区块高度>主链链顶区块高度,转步骤5。
步骤5、保持主链,结束。
步骤6、区块所在链替换主链成为新的主链,结束。
计算的区块总权重保存在区块索引结构中,存放方式本发明不做限制。
如图3,本发明的一个计算场景:
链0-1A-2A-3A-4A为当前主链,0-1B-2B-3B、0-1B-2B-3C、0-1B-2B-3D为非主链。其中1A、1B难度相同(值为10),2A、2B难度相同(值为10),3A、 3B、3C难度相同(值为10),4A、4C难度相同(值为10)。
假设链0-1A-2A-3A-4A、0-1B-2B-3B、0-1B-2B-3C、0-1B-2B-3D均不包含任何一级、二级孤块。则0-1A-2A-3A-4A的主链总权重为50,3B、3C、3D的区块总权重均为40。
设现在现在深度为2,即与父块同高度的区块是备选孤块。调整系数为 1/(2048*2)。
1、如果4C区块中不包含任何一级孤块、二级孤块,则4C的区块总权重为 50,与当前主链相同。二级孤块总难度为0与主链链顶4A相同,进行主链选择时将按照步骤1、步骤2、步骤3、步骤4,在判断区块包含二级孤块总难度不大于当前主链链顶区块二级孤块总难度后转步骤5执行;
2、如果4C区块中包含二级孤块3A,则4C的区块总权重为50,与当前主链相同。二级孤块总难度为10大于与主链链顶4A,进行主链选择时将按照步骤1、步骤2、步骤3、步骤4,在判断区块包含二级孤块总难度大于当前主链链顶区块二级孤块总难度后转步骤6执行;
3、如果4C区块中包含一级孤块3B、3C,则4C的区块权重为10.0048828125 (即10+(3+2-4)*(1/(2048*2))+(3+2-4)*(1/(2048 *2)))。4C的区块总权重为50.0048828125,大于与当前主链。二级孤块总难度为0与主链链顶4A相同,进行主链选择时将按照步骤1、步骤2、步骤3、步骤 4,在判断区块总权重>主链总权重后转步骤6执行;
替代方案:
使用本发明主链选择方法,但只选取一级孤块,当区块总权重等于主链总权重、区块高度等于主链链顶区块高度,采用区块哈希或别的方式进行比较。
如图4所示,将主链选择方法中将步骤4中“如果区块总权重=主链总权重,且区块高度=主链链顶区块高度,比较当前区块块与主链链顶区块包含二级孤块总难度,如果当前区块包含二级孤块总难度比当前主链链顶区块二级孤块总难度大,则转步骤6,否则转步骤5。”变为“如果区块总权重=主链总权重,且区块高度=主链链顶区块高度,比较当前区块哈希与主链链顶区块哈希,如果当前区块哈希小于当前主链链顶区块哈希,则转步骤6,否则转步骤5。”。
Claims (9)
1.一种主链选择方法,其特征在于,包括以下步骤:
步骤1:计算区块难度:
先按照比特币协议计算当前块的区块难度;
步骤2:计算区块权重;
步骤3:计算区块总权重;
步骤4:根据区块总权重选择主链:
方法如下:
如果区块总权重<主链总权重,转步骤5;
如果区块总权重>主链总权重,转步骤6;
如果区块总权重=主链总权重,且区块高度<主链链顶区块高度,转步骤6;
如果区块总权重=主链总权重,且区块高度=主链链顶区块高度,按以下2种方法中的任一种进行处理:
方法1:比较当前区块块与主链链顶区块包含二级孤块总难度,如果当前区块包含二级孤块总难度比当前主链链顶区块二级孤块总难度,则转步骤6,否则转步骤5;
方法2:比较当前区块哈希与主链链顶区块哈希,如果当前区块哈希小于当前主链链顶区块哈希,则转步骤6,否则转步骤5
如果区块总权重=主链总权重,且区块高度>主链链顶区块高度,转步骤5;
步骤5、保持主链不变,结束;
步骤6、区块所在链替换主链成为新的主链,结束。
2.根据权利要求1所述的主链选择方法,其特征在于,当前块是指当前待处理块。
3.根据权利要求1所述的主链选择方法,其特征在于,一级孤块是按照设定方法选取的对链的收敛有益的孤块,二级孤块是按照设定方法选取的非一级孤块。
4.根据权利要求1-3任一所述的主链选择方法,其特征在于,区块权重的计算方法如下:
区块权重=区块难度+∑(一级孤块难度*孤块权重系数);
孤块权重系数=(孤块块高+限制深度-当前块高)*调整系数。
5.根据权利要求4所述的主链选择方法,其特征在于,区块总权重的计算方法如下:
区块总权重=区块的父区块总权重+区块权重。
6.根据权利要求4任一项所述的主链选择方法,其特征在于,
调整系数=1/(2048*限制深度)。
7.一种利用孤块算力的主链选择装置,其特征在于,包括:
模块1,用于计算区块难度,先按照比特币协议计算当前块的块难度;
模块2,用于计算区块权重;
模块3,用于计算区块总权重;
模块4,用于根据区块总权重选择主链:
方法如下:
如果区块总权重<主链总权重,转步骤5;
如果区块总权重>主链总权重,转步骤6;
如果区块总权重=主链总权重,且区块高度<主链链顶区块高度,转步骤6;
如果区块总权重=主链总权重,且区块高度=主链链顶区块高度,按以下2种方法中的任一种进行处理:
方法1:比较当前区块块与主链链顶区块包含二级孤块总难度,如果当前区块包含二级孤块总难度比当前主链链顶区块二级孤块总难度,则转步骤6,否则转步骤5;
方法2:比较当前区块哈希与主链链顶区块哈希,如果当前区块哈希小于当前主链链顶区块哈希,则转步骤6,否则转步骤5;
如果区块总权重=主链总权重,且区块高度>主链链顶区块高度,转步骤5;
模块5,用于保持主链不变,结束;
模块6,用于将区块所在链替换主链成为新的主链,结束。
8.一种利用孤块算力的主链选择装置,其特征在于,包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现如权利要求1至6任一项所述的主链选择方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1至6任一项所述的主链选择方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910158502.XA CN111641666B (zh) | 2019-03-01 | 2019-03-01 | 一种主链选择方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910158502.XA CN111641666B (zh) | 2019-03-01 | 2019-03-01 | 一种主链选择方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111641666A true CN111641666A (zh) | 2020-09-08 |
CN111641666B CN111641666B (zh) | 2023-04-07 |
Family
ID=72330497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910158502.XA Active CN111641666B (zh) | 2019-03-01 | 2019-03-01 | 一种主链选择方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111641666B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108647963A (zh) * | 2018-05-02 | 2018-10-12 | 百度在线网络技术(北京)有限公司 | 区块链主链的确定方法、装置、服务器和存储介质 |
WO2018209542A1 (zh) * | 2017-05-16 | 2018-11-22 | 北京大学深圳研究生院 | 一种用于去中心化域名系统的共识方法 |
CN108876361A (zh) * | 2017-05-12 | 2018-11-23 | 李平 | 区块链系统、区块生成方法及计算机可读存储介质 |
CN109218348A (zh) * | 2017-06-29 | 2019-01-15 | 华为技术有限公司 | 一种区块链中区块的确定方法及节点设备 |
-
2019
- 2019-03-01 CN CN201910158502.XA patent/CN111641666B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108876361A (zh) * | 2017-05-12 | 2018-11-23 | 李平 | 区块链系统、区块生成方法及计算机可读存储介质 |
WO2018209542A1 (zh) * | 2017-05-16 | 2018-11-22 | 北京大学深圳研究生院 | 一种用于去中心化域名系统的共识方法 |
US20180337882A1 (en) * | 2017-05-16 | 2018-11-22 | Peking University Shenzhen Graduate School | Determining consensus in a decentralized domain name system |
CN109218348A (zh) * | 2017-06-29 | 2019-01-15 | 华为技术有限公司 | 一种区块链中区块的确定方法及节点设备 |
CN108647963A (zh) * | 2018-05-02 | 2018-10-12 | 百度在线网络技术(北京)有限公司 | 区块链主链的确定方法、装置、服务器和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111641666B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102624922B (zh) | 一种网络gis异构集群服务器负载均衡方法 | |
CN108846472A (zh) | 一种自适应遗传粒子群混合算法的优化方法 | |
US8150836B2 (en) | System, method, and computer-readable medium for reducing row redistribution costs for parallel join operations | |
CN111083232B (zh) | 一种基于改进一致性哈希的服务器端负载均衡方法 | |
CN110689345B (zh) | 调整区块权重的无许可区块链共识方法、系统、p2p网络 | |
US20220374722A1 (en) | Intelligent ammunition co-evolution task assignment method | |
CN108427575A (zh) | 全流水结构sha-2消息扩展优化方法 | |
CN106598729A (zh) | 分布式并行计算系统的数据分配方法及系统 | |
CN108446562B (zh) | 基于禁忌与人工蜂群双向优化支持向量机的入侵检测方法 | |
CN111641666B (zh) | 一种主链选择方法、装置及计算机可读存储介质 | |
CN106022936B (zh) | 适用论文合作网络的基于社团结构的影响最大化算法 | |
CN110704506B (zh) | 状态数据存储方法和数据查询方法 | |
CN114358414A (zh) | 一种自适应并行的社区养老服务点选址优化方法及系统 | |
CN110149221A (zh) | 一种基于联盟链的自适应网络的构建方法及装置 | |
CN105430083B (zh) | 一种云平台部署方法 | |
CN108073445A (zh) | 基于分布式流计算的背压处理方法和系统 | |
CN105338088A (zh) | 一种移动p2p网络缓存替换方法 | |
CN114911621A (zh) | 一种用于分布式训练计算阶段的自动优化方法 | |
Li et al. | An improved differential evolution task scheduling algorithm based on cloud computing | |
CN101355518A (zh) | 一种基于路径组合的多服务器动态区域调整方法 | |
CN114528596A (zh) | 一种基于深度学习的有向无环图区块链可扩展性增强方法 | |
CN102083216B (zh) | 一种hsupa系统中的资源分配方法 | |
CN110061964A (zh) | 一种匿名通信中面向通信延迟的节点选择方法 | |
CN110598930A (zh) | 一种公交线路优化调整方法及装置 | |
CN110069719A (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 |