System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于pow算法,具体为一种结合算力利用与空间量证明的pow改进算法。
技术介绍
1、区块链按照去中心化程度分为公有链、联盟链和私有链,工作量证明(proof ofwork,pow)共识算法是当前公有链中最为主流的共识算法,其核心思想是通过引入分布式节点的算力竞争来保证数据一致性和共识的安全性,具有去中心化与安全性高的优点,可以在完全不信任环境中使参与者达成共识,在生成区块时,系统让所有节点公平地去计算一个随机数,最先寻找到随机数的节点即是这个区块的生产者,并获得相应的区块奖励,但由于该算法通过解决数学难题的方式选举节点并生成区块,导致资源浪费严重、交易时间过长,因此存在共识效率低、算力资源浪费、能耗高等问题。
2、由于pow共识算法存在以上问题,空间量证明(proof of space,pospace)共识算法被提出,它以用户支付的硬盘空间作为付出代价的证明,通过下载文件的方式占据硬盘空间,所占的空间越大,说明用户付出越大;接着通过验证的方式生成哈希值以证明自身的可信性,但由于该算法在节点一次性付出硬盘空间代价后,后续参与竞赛不需要付出代价,节点只需要读取每个随机挑战对应位置的数据即可生成证明,这使得节点可以轻易对多个分叉链进行延伸,很可能出现主链分叉的现象;且单一的以硬盘空间作为证明,存在着中心化的风险,个别用户可以通过购置大量硬盘空间以实现垄断的目的,因此需要对此进行改进。
技术实现思路
1、本专利技术的目的在于提供一种结合算力利用与空间量证明的pow改进
2、为了实现上述目的,本专利技术提供如下技术方案:一种结合算力利用与空间量证明的pow改进算法,具体步骤如下:
3、步骤一、准备阶段:
4、psup-pow算法开始后,各节点获取客户端请求数据,依据区块结构将数据进行打包并生成区块体,使用默克尔树算法生成默克尔根(merkle-root);
5、步骤二、难度值调整阶段:
6、完成准备工作后,psup-pow算法会将上一轮的出块时间与计算时间上限范围值进行对比,若的值在的范围内,证明当前难度值设置合理,无需调整难度,算法进入下一阶段;若的值小于,证明当前难度值过低,需要提高难度值以保证系统安全性;若的值大于,证明当前难度值过高,需要降低难度值以提高共识效率,避免中心化与区块分叉的风险;
7、步骤三、节点竞争阶段:
8、完成难度值调整工作后,节点生成区块头,进入节点竞争阶段,各节点首先将自身分配到的小问题(question)与区块头(blockdata)一起输入到第一个哈希门中,通过sha256哈希运算函数生成第一轮哈希值(fhash),本次调用sha256哈希运算函数的过程为:
9、sha256(question,blockdata)→fhash
10、下一步节点将调用函数进行小问题的答案求解,此处便是各节点利用自身算力进行出块权竞争的主要途径;当节点完成问题求解后,将计算得到的答案(answer)与第一轮哈希值一起输入到第二个哈希门中,再次调用sha256哈希运算函数,生成最终的哈希值(lhash),第一个完成上述过程的节点即为成功竞争区块出块权的节点,本次调用sha256哈希运算函数的过程为:
11、sha256(answer,fhash)→lhash
12、其中区块头(blockdata)包括版本号(version)、前一区块哈希值(prehash)、时间戳(timestamp)、区块高度(height)、默克尔根哈希值(merkle-root)等信息,若在计算时间上限内,某一节点完成了自身问题的解答,生成了最终哈希值,则该节点获得区块出块权,并将其计算得到的哈希值进行出块,由psup-pow算法对区块进行广播,系统中的其他节点进行区块共识,完成共识后本轮请求结束,系统将该区块添加到区块链主链上,继续进行下一轮出块工作;若计算时间到达系统设定的计算时间上限,且仍未有节点成功解决自身问题以获取区块出块权,则结束本阶段,进入节点时空权重出块阶段;
13、步骤四、节点时空权重出块阶段:
14、当节点计算时间超出计算时间上限且仍未完成区块出块权竞争时,各节点使用节点时空权重计算公式计算自身的节点时空权重,节点时空权重的大小依赖节点的时间与硬盘空间量进行计算,随着节点参与竞争区块出块权且未竞争成功次数的增加,该节点的时间权重会逐步上升,这使得区块链系统在节点时空权重出块阶段的出块权分配并不仅依赖各节点的硬盘空间大小,仅有能提供大容量硬盘空间的节点能够获取区块出块权,而是所有的节点都有机会获得区块出块权,有效降低了系统中心化的风险,当完成所有节点的时空权重计算后,psup-pow算法对各节点时空权重进行收集与排序,并使时空权重值最高的节点获得出块权,该节点将其计算得到的哈希值进行出块,其他未获得出块权的节点则参与后续的共识过程,完成共识后本轮请求结束,系统将该区块添加到区块链主链上,继续进行下一轮出块工作。
15、作为本专利技术的一种优选技术方案,步骤一中所述的区块结构包括版本号(version)、前一区块哈希值(prehash)、本区块哈希值(hash)、时间戳(timestamp)、难度值(difftarget)、区块高度(height)、随机数(nonce)、交易信息(tradeinfo)、默克尔根哈希值(merkle-root)、空间量(space)、工作问题库(wqlirary)、计算时间上限(limittime)。
16、作为本专利技术的一种优选技术方案,步骤二中所述的计算时间上限范围值由各节点解决其分配到的小问题的耗时决定,因此所拆分出的小问题应当满足难度一致的条件。
17、作为本专利技术的一种优选技术方案,步骤二中所述的难度值调整阶段在每轮共识开始前需要对本次共识过程的难度值进行优化,根据现实情况调整节点竞争出块权与使用节点时空权重分配出块权两种方案在共识过程中的比例,避免psup-pow算法不能在系统需要的时间内完成共识的情况发生,难度优化模型计算公式为:
18、
19、作为本专利技术的一种优选技术方案,步骤三中所述的算力通过利用哈希计算将主要运用于问题的求解,解决pow共识算法算力浪费的问题,其由一个工作函数与两个哈希门组成。
20、作为本专利技术的一种优选技术方案,步骤四中所述的节点时空权重计算公式为
21、作为本专利技术的一种优选技术方案,所述节点时空权重计算公式中wst代表节点时空权重,pf代表节点参与竞争区块出块权失败的次数,pt代表节点参与竞争区块出块权的总次数,t代表节点时间,该变量的值并不等同于系统设置的计算时间上限,而是各节点在竞争阶段自身的节点时间,s代表节点的硬盘空间量,该变量由各节点加入区块链系统时进行提交验证,通过验证后各节点在进行后续的系统共识过程中无需再对自身的硬盘空间量进行验证,以提高系统运行效率。本文档来自技高网...
【技术保护点】
1.一种结合算力利用与空间量证明的PoW改进算法,其特征在于,具体步骤如下:
2.根据权利要求1所述的一种结合算力利用与空间量证明的PoW改进算法,其特征在于:步骤一中所述的区块结构包括版本号(Version)、前一区块哈希值(PreHash)、本区块哈希值(Hash)、时间戳(TimeStamp)、难度值(DiffTarget)、区块高度(Height)、随机数(Nonce)、交易信息(TradeInfo)、默克尔根哈希值(Merkle-root)、空间量(Space)、工作问题库(WQLibrary)、计算时间上限(LimitTime)。
3.根据权利要求1所述的一种结合算力利用与空间量证明的PoW改进算法,其特征在于:步骤二中所述的计算时间上限范围值由各节点解决其分配到的小问题的耗时决定,因此所拆分出的小问题应当满足难度一致的条件。
4.根据权利要求1所述的一种结合算力利用与空间量证明的PoW改进算法,其特征在于:步骤二中所述的难度值调整阶段在每轮共识开始前需要对本次共识过程的难度值进行优化,根据现实情况调整节点竞争出块权与使用节点时空权
5.根据权利要求1所述的一种结合算力利用与空间量证明的PoW改进算法,其特征在于:步骤三中所述的算力通过利用哈希计算将主要运用于问题的求解,解决PoW共识算法算力浪费的问题,其由一个工作函数与两个哈希门组成。
6.根据权利要求1所述的一种结合算力利用与空间量证明的PoW改进算法,其特征在于:步骤四中所述的节点时空权重计算公式为
7.根据权利要求6所述的一种结合算力利用与空间量证明的PoW改进算法,其特征在于:所述节点时空权重计算公式中Wst代表节点时空权重,Pf代表节点参与竞争区块出块权失败的次数,Pt代表节点参与竞争区块出块权的总次数,T代表节点时间,该变量的值并不等同于系统设置的计算时间上限,而是各节点在竞争阶段自身的节点时间,s代表节点的硬盘空间量,该变量由各节点加入区块链系统时进行提交验证,通过验证后各节点在进行后续的系统共识过程中无需再对自身的硬盘空间量进行验证,以提高系统运行效率。
8.根据权利要求1所述的一种结合算力利用与空间量证明的PoW改进算法,其特征在于:步骤一中所述的默克尔树算法是一种基于哈希的数据结构,为一种树形结构,其中每个叶子节点是一个数据块的哈希值,每个非叶子节点是其子节点的哈希值的哈希。
9.根据权利要求1所述的一种结合算力利用与空间量证明的PoW改进算法,其特征在于:步骤三和步骤四中所述的哈希算法指是将任意长度的二进制值映射为较短的固定长度的二进制值,这个固定长度的二进制值也称为哈希值。
...【技术特征摘要】
1.一种结合算力利用与空间量证明的pow改进算法,其特征在于,具体步骤如下:
2.根据权利要求1所述的一种结合算力利用与空间量证明的pow改进算法,其特征在于:步骤一中所述的区块结构包括版本号(version)、前一区块哈希值(prehash)、本区块哈希值(hash)、时间戳(timestamp)、难度值(difftarget)、区块高度(height)、随机数(nonce)、交易信息(tradeinfo)、默克尔根哈希值(merkle-root)、空间量(space)、工作问题库(wqlibrary)、计算时间上限(limittime)。
3.根据权利要求1所述的一种结合算力利用与空间量证明的pow改进算法,其特征在于:步骤二中所述的计算时间上限范围值由各节点解决其分配到的小问题的耗时决定,因此所拆分出的小问题应当满足难度一致的条件。
4.根据权利要求1所述的一种结合算力利用与空间量证明的pow改进算法,其特征在于:步骤二中所述的难度值调整阶段在每轮共识开始前需要对本次共识过程的难度值进行优化,根据现实情况调整节点竞争出块权与使用节点时空权重分配出块权两种方案在共识过程中的比例,避免psup-pow算法不能在系统需要的时间内完成共识的情况发生,难度优化模型计算公式为:
5.根据权利要求1所述的一种结合算力利用与空间量证明的pow改进算法,其特征...
【专利技术属性】
技术研发人员:冯香,王林融,史世杰,马原原,杨鹏,关威,曹新宇,
申请(专利权)人:内蒙古电力集团有限责任公司鄂尔多斯供电分公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。