一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于区块链的共识机制性能的分析方法和装置、存储介质与流程

2022-03-22 20:10:50 来源:中国专利 TAG:
1.本发明涉及区块链
技术领域
:,尤其涉及一种用于区块链的共识机制性能的分析方法以及应用该方法的装置、存储介质。
背景技术
::2.abstract工作量证明(pow)是区块链流行的共识机制。但是,它消耗大量的计算资源,除了达成共识之外,并没有产生有用的结果。最近提出了有用工作量证明(pouw)来解决pow的资源浪费。使用pouw,每个矿工首先进行有用的工作(例如数据分类),然后根据其执行的cpu指令数量竞争获胜者。因此,与pow相比,在pouw中,做有用工作的时间是一个新的重要因素。在区块链中,分叉会阻碍共识机制的执行效率,而吞吐量是量化共识机制性能的关键指标。3.2008年,nakamoto提出了著名的区块链协议,以实现公共的,不变的和有序的分类帐本。该区块链协议采用称为工作量证明(pow)的计算密集型机制,以实现分散网络中节点之间的共识。在pow中,每个矿工(即维护区块链的节点)竞争解决密码难题,即找到满足哈希映射某些条件的随机数。获胜者是首先找到答案的节点,将获得生成新区块的特权与奖励。但是,这种pow机制消耗了巨大的计算资源,但并没有达到共识之外的有用目的。4.最近,提出了有用功证明(pouw)来解决这个问题。使用pouw,每个矿工都会消耗自己的计算资源来处理有用的工作(例如数据分类),然后根据已执行的cpu指令的数量竞争优胜者。因此,不同于pow矿工总是通过不断执行哈希操作来竞争赢家,pouw矿工仅在任务处理(tp)时间(即需要完成处理时间)之后才通过抽奖方式竞争赢家。pouw的tp时间是不同于pow的新的重要因素。在pouw中,矿工花费大量时间来做有用的工作,而花很少的时间来竞争获胜者,从而避免了计算资源的巨大浪费。5.为了进一步提高pouw的实用性,我们关注pouw的系统参数(特别是tp时间)如何影响其性能。一个重要的性能指标是分叉概率。像pow一样,pouw机制旨在创建单链结构。即,希望仅将一个新生成的块链接到前一个块。但是,实际上,当多个节点同时赢得比赛时,两个或多个块将链接到同一先前的块,从而导致分叉。例如,在图1中,块i 1和i 2链接到块i,因此发生了分叉,为了维持单链结构,只有最长的链可以保留。6.分叉是区块链中的一个基本问题,因为它浪费了计算资源,带来了双重支付问题和安全风险(例如,由于诚实矿工的计算资源浪费,攻击者可能比诚实矿工更容易生成更多的区块),以及造成数据不一致(例如,由于网络延迟,不同的矿工可能会存储不同长度的链)。我们注意到,在任何时候,pow赢家都可以随时产生,但是,pouw赢家只能在有限的时间点生成,因为每个工人都将大部分时间(即tp时间)花费在做有用的工作上,而花很少的时间来竞争赢家。预计pouw可能会导致更多的冲突和分叉。因此,分析pouw的分叉概率非常重要。系统吞吐量衡量了区块链网络生成区块的速度,因此是影响pouw实用性的另一个重要性能指标。在pouw中,每个矿工仅在tp时间后才竞争获胜者。直观地讲,tp时间越长,区块的产生率就越低。更糟糕的是,如上一段所述,tp时间可能导致更多的分叉,从而减少了有效块的数量。因此,除了网络延迟等常规因素外,tp时间也是影响pouw系统吞吐量的新因素。7.在本发明中,致力于开发理论模型来分析pouw的系统性能,提出的模型考虑了各种因素(例如,矿工数量,采矿难度,计算能力,网络延迟,尤其是新引入的tp时间),并全面表征了这些参数对分叉概率和系统吞吐量的影响。本发明是第一篇从理论上研究要的性能指标是分叉概率。像pow一样,pouw机制旨在创建单链结构。即,希望仅将一个新生成的块链接到前一个块。但是,实际上,当多个节点同时赢得比赛时,两个或多个块将链接到同一先前的块,从而导致分叉。例如,在图1中,块i 1和i 2链接到块i,因此发生了分叉。为了维持单链结构,只有最长的链可以保留。分叉是区块链中的一个基本问题,因为它浪费了计算资源,带来了双重支付问题和安全风险(例如,由于诚实矿工的计算资源浪费,攻击者可能比诚实矿工更容易生成更多的区块),以及造成数据不一致(例如,由于网络延迟,不同的矿工可能会存储不同长度的链)。8.我们注意到,在任何时候,pow赢家都可以随时产生,但是,pouw赢家只能在有限的时间点生成,因为每个工人都将大部分时间(即tp时间)花费在做有用的工作上,而花很少的时间来竞争赢家。预计pouw可能会导致更多的冲突和分叉。因此,分析pouw的分叉概率非常重要。9.系统吞吐量衡量了区块链网络生成区块的速度,因此是影响pouw实用性的另一个重要性能指标。在pouw中,每个矿工仅在tp时间后才竞争获胜者。直观地讲,tp时间越长,区块的产生率就越低。更糟糕的是,如上一段所述,tp时间可能导致更多的分叉,从而减少了有效块的数量。因此,除了网络延迟等常规因素外,tp时间也是影响pouw系统吞吐量的新因素。10.在本文中,我们致力于开发理论模型来分析pouw的系统性能。我们的模型考虑了各种因素(例如,矿工数量,采矿难度,计算能力,网络延迟,尤其是新引入的tp时间),并全面表征了这些参数对分叉概率和系统吞吐量的影响。据我们所知,本文是第一篇从理论上研究pouf系统性能的文章。使用此模型,我们可以配置适当的pouw参数以最小化分叉概率并提升系统吞吐量。11.分叉导致了矿工之间信息的不一致。同样,吞吐量是测量共识机制性能的另一个关键因素。基于这些考虑,我们在分叉概率分析,吞吐量分析和一致性分析方面介绍相关的工作。12.吞吐量分析.吞吐量是区块链网络的重要指标,吞吐量的定量分析将使从业人员能够对区块链网络的性能有深刻的理解。13.一致性分析.一致性是区块链的重要属性,主要用于保证所有矿工保持相同的区块顺序,从而可以有效地解决分叉现象。14.与上述所有工作不同,本发明重点研究pouw机制的性能分析,该机制是一种新机制,是从传统pow派生而来的。我们开发了理论模型来表征所有相关因素(例如tp时间,计算能力,网络延迟等)对分叉概率和系统吞吐量的影响。特别地,pow和pouw机制之间的关键区别是tp时间,这是导致pouw分叉的新因素。因此,现有的理论模型不能直接用于分析pouw分叉概率和系统吞吐量。15.接下来,将概述pouw机制达成共识的过程。在区块链p2p网络中,共识机制主要用于决定哪些区块可以添加到区块链中。如果生成的区块包含其创建者(即矿工)已经完成一定量工作的证明,则认为该区块有效。由于主流的pow机制是pouw共识机制的基础,如图2所示,因此,在介绍pouw之前,我们首先描述pow的基本思想。16.pow共识机制采用加密难题的形式。矿工使用蛮力搜索方法来改变块中的输入(即随机数),直到该块的哈希值小于预定阈值为止。因此,在pow中,挖掘过程等同于查找随机数的过程。如果矿工发现满足条件的可用随机数,则它是赢家,并且可以发布新区块。否则,需要继续搜索随机数。17.请注意,在此过程中,矿工以与以下两个因素有关的速率生成一个块(即找到合适的随机数):计算能力和系统难度。对于前者,矿工的计算能力(例如,cpu时钟速率)越强,矿工生成块的速度越快。对于后者,难度定义为生成块的复杂度(即,用于查找随机数的预期工作量)。系统难度值越大,生成块的速度越快。通过共同调整这两个因素,可以使块的生成速率保持稳定。最后,当生成一个新块时,它将添加一个指向前一个块的指针,如图2所示。18.接下来,借助图2,将pow共识机制的数据处理工作流概括为以下三个步骤。19.步骤1(矿工从p2p网络同步区块链状态):在区块链p2p网络中,所有生成的区块都在所有矿工之间传播。当矿工准备开采新区块时,它首先会从网络同步最新的区块链状态,并获取区块链中的最后一个区块。之后,矿工验证并提交记录在新块中的内容。20.步骤2(矿工使用pow机制开采新区块):当矿工获得最新的区块(即它在步骤1中同步的最后一个区块)时,它将基于该区块创建一个新区块。在pow共识机制中,新区块是否有效取决于矿工能否找到合适的随机数。如果矿工可以得到满足预设条件(即小于阈值)的随机数,则此新块可以视为有效块,并且矿工在此新块上加上一个指针,该指针指向步骤1中的最新块。否则,矿工需要继续挖掘新区块,直到找到所需的随机数,或者从另一个矿工那里接收到新区块。21.步骤3(矿工将挖出的区块广播到p2p网络):当一名矿工找到了合适的随机数,即挖出一个新区块后,便将该新区块广播到网络中。一旦收到此区块,每个矿工将其添加到本地区块链的末尾并更新区块链状态。通过这种方式,所有矿工的区块链状态都可以同步。22.但是,由于矿工通过p2p网络连接,因此可能无法使整个网络立即同步已开采的区块。换句话说,网络的传播延迟将影响所有矿工的区块链状态的同步速度。结果,在新开采区块的传播期间,如果某些矿工也开采了一个新区块,则可能会发生分叉,如图1所示,并最终影响系统性能。实际上,分叉是包括pouw在内的多种共识机制的常见问题。技术实现要素:23.本发明的第一目的在于提供一种基于理论模型来量化pouw共识机制的分叉概率和系统吞吐量,从而解决资源浪费的用于区块链的共识机制性能的分析方法。24.本发明的第二目的在于提供一种用于区块链的共识机制性能的分析装置。25.本发明的第三目的在于提供一种存储介质。26.为了实现上述的第一目的,本发明提供的一种用于区块链的共识机制性能的分析方法,其包括从p2p网络同步区块链状态;从工作客户端获取任务;使用pouw共识机制处理任务并挖掘新区块,其中,在pouw共识机制中,根据已执行的任务指令的数量来确定挖矿的工作量,并将每条任务指令视为伯努利分布;将pouw共识机制的处理结果传输到工作客户端;将挖出的区块广播到p2p网络。27.进一步的方案中,从p2p网络同步区块链状态具体包括:在区块链p2p网络中,所有生成的区块都在所有矿工之间传播,当矿工准备开采新区块时,从p2p网络同步最新的区块链状态,并获取到区块链中的最后一个区块后,由矿工验证并提交记录在新区块中的内容。28.更进一步的方案中,使用pouw共识机制处理任务并挖掘新区块具体包括:当矿工在tp时间内完成有用的任务时,计算执行任务指令的数量,由矿工生成随机值,并将随机数与目标值进行比较,若随机数不大于目标值,则该矿工将赢得竞争并获得有用工作的证明,即表明该矿工挖到了新的区块。29.更进一步的方案中,在使用pouw共识机制处理任务的过程中,当出现处理任务停止时,矿工将计算出的处理结果返回给有用工作客户端。30.更进一步的方案中,在新区块的传播到p2p网络过程中,若某些矿工也挖出了一个新块,则会出现分叉;从矿工的角度分析找到区块的分叉概率,从系统的角度计算分叉概率。31.更进一步的方案中,所述从矿工的角度分析找到区块的分叉概率具体包括:在pouw共识机制中,矿工将在完成任务后开采一个区块,假设每个矿工完成任务后的tp时间服从指数分布,则tp时间δti的概率密度函数表示为公式(1):[0032][0033]其中,t称为δti的值,平均值λi为矿工i的tp时间常数。[0034]更进一步的方案中,假设矿工i在其tp时间内找到一个区块的概率为pi,pi表示为公式(2):[0035][0036]其中,ci是矿工i的计算能力,d是系统难度;[0037]基于pi计算矿工i每秒发现一个区块的概率,令pi为矿工i每秒发现一个区块的概率,利用公式(1)和(2)得到pi的计算公式,如公式(3):[0038][0039]更进一步的方案中,从系统的角度计算分叉概率具体包括:令系统在任何给定的时刻内生成块的概率为p,如公式(4):[0040][0041]在区块链中,在生成一个区块后,若在前一个区块的传播过程中发现了一个新区块,就会发生分叉,令pf为分叉概率,表示为公式(5):[0042]pf=1-(1-p)τ,ꢀꢀꢀꢀ(5)[0043]其中,τ是网络延迟,而(1-p)τ表示所有矿工在周期内不会生成块。[0044]更进一步的方案中,在使用pouw共识机制处理任务的过程中,将系统吞吐量γ定义为单位时间内成功确认的块数,令t表示两个连续成功确认的区块之间的间隔时间,令e(t)表示t的平均值,则系统吞吐量γ可以表示为公式(6):[0045][0046]为了实现上述的第二目的,本发明提供的一种用于区块链的共识机制性能的分析装置,其包括存储器,用于存储计算机可读指令;以及处理器,用于运行所述计算机可读指令,使得所述共识机制性能的分析装置执行如上述的共识机制性能的分析方法。[0047]为了实现上述的第三目的,本发明提供的一种存储介质,用于存储计算机可读指令,当所述计算机可读指令由计算机执行时,使得所述计算机执行如上述的共识机制性能的分析方法的指令。[0048]由此可见,本发明提出了一种用于区块链的pouw共识机制性能的分析方法,每个矿工首先进行有用的工作(例如数据分类),然后根据其执行的cpu指令数量竞争获胜者。与pow相比,在pouw共识机制中,做有用工作的时间是一个新的重要因素。在区块链中,分叉会阻碍共识机制的执行效率,而吞吐量是量化共识机制性能的关键指标。因此,本发明通过新颖的理论模型来量化pouw的分叉概率和系统吞吐量,准确性高、可靠性强。[0049]进一步的,本发明致力于开发理论模型来分析pouw的系统性能,充分考虑了各种因素(例如,矿工数量,采矿难度,计算能力,网络延迟,尤其是新引入的tp时间),并全面表征了这些参数对分叉概率和系统吞吐量的影响,可以提高pouw的实用性。此外,使用此模型,可以配置适当的pouw参数以最小化分叉概率并提升系统吞吐量。[0050]不同于pow矿工总是通过不断执行哈希操作来竞争赢家,本发明的pouw矿工仅在任务处理(tp)时间(即需要完成处理时间)之后才通过抽奖方式竞争赢家。[0051]所以,本发明的pouw的tp时间是不同于pow的新的重要因素,在pouw中,矿工花费大量时间来做有用的工作,而花很少的时间来竞争获胜者,从而避免了计算资源的巨大浪费。附图说明[0052]图1是现有技术区块链中的单链结构。[0053]图2是现有技术中pow共识机制数据处理工作流程的示意图。[0054]图3是本发明一种用于区块链的共识机制性能的分析方法实施例的流程图。[0055]图4是本发明一种用于区块链的共识机制性能的分析方法实施例中的pouw共识机制的数据处理工作流程的示意图。[0056]图5是本发明一种用于区块链的共识机制性能的分析方法实施例中矿工i和j的tp时间的示意图。[0057]图6是本发明一种用于区块链的共识机制性能的分析方法实施例中从节点和系统角度生成区块的三种情况的示意图。[0058]图7是本发明一种用于区块链的共识机制性能的分析方法实施例中分叉概率与tp时间λi的关系图。[0059]图8是本发明一种用于区块链的共识机制性能的分析方法实施例中每个矿工ci的分叉概率与计算能力的关系图。[0060]图9是本发明一种用于区块链的共识机制性能的分析方法实施例中分叉概率与系统难度d的关系图。[0061]图10是本发明一种用于区块链的共识机制性能的分析方法实施例中分叉概率与网络延迟τ的关系图。[0062]图11是本发明一种用于区块链的共识机制性能的分析方法实施例中系统吞吐量与tp时间λi的关系图。[0063]图12是本发明一种用于区块链的共识机制性能的分析方法实施例中系统吞吐量与计算能力ci的关系图。[0064]图13是本发明一种用于区块链的共识机制性能的分析方法实施例中系统吞吐量与系统难度d的关系图。[0065]图14是本发明一种用于区块链的共识机制性能的分析方法实施例中系统吞吐量与网络延迟τ。[0066]以下结合附图及实施例对本发明作进一步说明。具体实施方式[0067]为了使发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限用于本发明。[0068]在本发明的pouw共识机制中,矿工使用“批量抽奖”方法竞争获胜者,然后生成新的区块,而不是像pow那样使用“一次性抽奖”方法。具体来说,在pow中,矿工不断尝试使用随机数进行哈希抽奖。而在pouw共识机制中,矿工会在一段时间(即tp时间)后尝试随机数开奖。在tp时间内完成的工作越有用,获胜的可能性就越大。因此,pouw共识机制中的批处理抽奖等同于合并pow的多次抽奖。在pouw共识机制中,每个矿工定期做两件事来生成新块:1)在tp时间内完成有用的工作;2)执行批量抽奖。[0069]因此,本发明的pouw共识机制的数据处理工作流程可以分为五个步骤,参见图3与图4,本发明的共识机制性能的分析方法在使用pouw共识机制对数据进行处理时,首先,执行步骤s1,从p2p网络同步区块链状态。其中,在区块链p2p网络中,所有生成的区块都在所有矿工之间传播,当矿工准备开采新区块时,从p2p网络同步最新的区块链状态,并获取到区块链中的最后一个区块后,由矿工验证并提交记录在新区块中的内容。[0070]接着,执行步骤s2,从工作客户端获取任务。其中,矿工从工作客户端接收任务,并将该任务分为几个子任务,因为每个任务的大小可能不同。[0071]然后,执行步骤s3,使用pouw共识机制处理任务并挖掘新区块,其中,在pouw共识机制中,根据已执行的任务指令的数量来确定挖矿的工作量,并将每条任务指令视为伯努利分布。[0072]在本实施例中,使用pouw共识机制处理任务并挖掘新区块具体包括:当矿工在tp时间内完成有用的任务时,计算执行任务指令的数量,由矿工生成随机值,并将随机数与目标值进行比较,若随机数不大于目标值,则该矿工将赢得竞争并获得有用工作的证明,即表明该矿工挖到了新的区块。[0073]具体的,使用算法1模拟pouw共识机制的挖掘过程.在此过程中,当矿工在tp时间内完成有用的任务时(即,δti),它计算执行指令的数量(即m,可以通过m=ciδti计算得出,其中ci是矿工i的计算能力,即矿工i在一秒钟内可以执行的指令数量)。[0074]然后,由矿工生成随机值(即随机数),并将随机数与通过1-(1-d)m计算的目标值进行比较,其中,d是系统难度。如果随机数不大于目标值,则该矿工将赢得竞争并获得有用工作的证明,这表明该矿工挖到了新的区块。否则,矿工将失去竞争优势,并继续执行批量抽奖过程。[0075]然后,执行步骤s4,将pouw共识机制的处理结果传输到工作客户端。其中,在使用pouw共识机制处理任务的过程中,当出现处理任务停止时,矿工将计算出的处理结果返回给有用工作客户端。[0076]具体的,一旦pouw任务停止,矿工将计算出的结果返回给有用工作客户端。在这种情况下,即使矿工没有挖掘新的块,其cpu工作量仍然用于有用的工作,而不是浪费,如表(一)所示:[0077]表(一)[0078][0079]然后,执行步骤s5,将挖出的区块广播到p2p网络。其中,当一名矿工找到了合适的随机数,即挖出一个新区块后,便将该新区块广播到网络中。一旦收到此区块,每个矿工将其添加到本地区块链的末尾并更新区块链状态。通过这种方式,所有矿工的区块链状态都可以同步。[0080]当然,在pouw共识机制中,像pow一样,由于矿工是通过p2p网络连接的,因此几乎不可能立即通过整个网络同步区块。也就是说,网络延迟将影响所有矿工区块链状态的同步速度。因此,在新块的传播过程中,如果某些矿工也挖出了一个新块,则可能发生分叉。[0081]与pow不同的是,从上述算法1中可以得出,除了网络延迟,tp时间以及每个矿工的计算能力都是影响分叉和吞吐量的因素。[0082]在本实施例中,在新区块的传播到p2p网络过程中,若某些矿工也挖出了一个新块,则会出现分叉;从矿工的角度分析找到区块的分叉概率,从系统的角度计算分叉概率。[0083]具体地,从矿工的角度分析找到区块的分叉概率包括:在pouw共识机制中,矿工将在完成任务后开采一个区块,假设每个矿工完成任务后的tp时间服从指数分布,则tp时间δti的概率密度函数表示为公式(1):[0084][0085]其中,t称为δti的值,平均值λi为矿工i的tp时间常数。[0086]在本实施例中,在pouw共识机制中,矿工将在完成任务后开采一个区块。通常,每个任务的大小可能相同,因此每个矿工的tp时间几乎相同。然而,考虑到更实际的情况,例如,每个任务的大小略有不同,并且每个矿工的计算能力不同,因此,矿工的每个后续tp时间和其他矿工的tp时间将相应地不同。因此,为了概括pouw共识机制的设计并满足实际需求,假设每个矿工的tp时间(即δti,1≤i≤n,其中n是矿工的数量)服从指数分布,即δti的概率密度函数可以表示为上述公式(一)。[0087]如图5所示,图5提供了一个示例来说明矿工i和j的tp时间,其平均值分别为λi=8s和λj=12s,其中,红色箭头指示每个矿工的tp即时时间。结果,从系统的角度来看,当矿工数量增加时,很有可能每秒都有矿工在抽奖(如图中底部标有“tpinstant”的时间线所示)。这意味着可以在任意时刻生成一个新块。[0088]假设矿工i在其tp时间内找到一个区块的概率为pi,pi表示为公式(2):[0089][0090]其中,ci是矿工i的计算能力,d是系统难度。[0091]d和ci已在算法1中定义,d的物理含义可以解释为单位时间内生成新块的概率。上述公式(2)表明,当给出d和ci时,pi将随着的增加而增加,因为tp时间越长,矿工可以执行的指令越多,最终矿工可以获得新块的可能性就越高。[0092]然后,基于pi计算矿工i每秒发现一个区块的概率,令pi为矿工i每秒发现一个区块的概率,利用公式(1)和(2)得到pi的计算公式,如公式(3):[0093][0094]接下来,从系统的角度计算pouw共识机制的分叉概率,其具体包括:令系统在任何给定的时刻内生成块的概率为p,如公式(4):[0095][0096]当然,在pow共识机制中,约为1/600,因为pow会调整系统难度,以便每10分钟(10分钟=600秒)可以找到一个新块。[0097]在区块链中,在生成一个区块后,若在前一个区块的传播过程中发现了一个新区块,就会发生分叉,令pf为分叉概率,表示为公式(5):[0098]pf=1-(1-p)τ,ꢀꢀ(5)[0099]其中,τ是网络延迟,而(1-p)τ表示所有矿工在周期内不会生成块。[0100]其中,当τ=0(即理想的网络没有任何延迟)时,获得pf=0,这意味着分叉将永远不会发生。这是因为一旦生成了另一个块,它将立即被检测到,从而防止多个块同时在区块链网络中传播,并最终避免了分叉情况。[0101]本实施例中,在使用pouw共识机制处理任务的过程中,将系统吞吐量γ定义为单位时间内成功确认的块数,令t表示两个连续成功确认的区块之间的间隔时间,令e(t)表示t的平均值,则系统吞吐量γ可以表示为公式(6):[0102][0103]在下面,首先介绍t的计算过程,然后计算e(t)。[0104]t的计算:如图6所示,图6说明了从节点和系统角度生成块的三种情况。在图6中,向下箭头代表节点生成一个块的时刻,向上箭头代表生成有效块的时刻,阴影表示网络延迟的间隔。[0105]在pouw区块链网络中,当节点生成一个块时,该块将被广播到整个网络中,等待其他节点的验证,网络延迟会使等待的时间延长。如第三节所述,如果在传播延迟的间隔时间内还生成了另一个块,则会发生分叉。在这种情况下,从系统的角度来看,只有最早被验证的块有效,而其他块则被忽略,请参阅图6中的情况1和2,然后不能使用相应的生成时间来计算t。如果在传播延迟这段时间结束之后,才生成新区块,那么这个新的区块被认为是有效的,相应地,产生这个块的时间间隔可以用来计算t。[0106]借助于图6,现在给出t的表达式,通过上面的解释,可以得出结论,只有距先前所生成块时刻的间隔大于传播延迟的实例才可用。因此,假设前一个块在时刻0生成,可以通过公式(7)来计算:[0107][0108]其中τ 1和τ k分别是t的最小和最大间隔时间值,即两个连续确定的块之间的最短和最长间隔时间。在公式(7)中,p是每秒产生一些块的概率。在pouw区块链网络中,由于需要τ秒来确定所生成块的有效性。[0109]因此,当在时间i(i≥1)生成块时,系统将花费τ i秒来确定每个块,即,τ i。因此,相应的概率为(1-p)i-1p。[0110]e(t)的计算:上述公式(7)表示无论如何都会生成新块。但是,如果仍未生成新块,则相应的概率将计算为(1-p)k,其物理含义是在k秒内任何块都不会生成。在此基础上,两个连续确定的块之间的平均间隔时间e(t)可以由如下公式(8)计算:[0111][0112]在公式(8)中,令s(k)=∑i=k(1-p)i-1(τ i),则e(t)=ps(k),那么得到公式(9):[0113][0114]由于s(k)-(1-p)s(k)=ps(k).然后从(9)中扩展s(k)和(1-p)s(k)的表达式后,ps(k)可以写为公式(10):[0115][0116]即,得到公式(11):[0117][0118]在公式(11)中,当k达到无穷大时,(1-p)k将近似于0,然后,公式(10)相应地化简为公式(12):[0119][0120]由于e(t)=ps(k),因此得到公式(13):[0121][0122]从公式(6)和(13),系统吞吐量可以表示为公式(14):[0123][0124]在本节中,展示了系统参数(即系统难度d,每个矿工的计算能力ci,每个矿工的tp时间和网络延迟τ)如何影响分叉概率和pouw共识机制的吞吐量,并通过仿真验证了所提出的理论模型的准确性。[0125]在仿真中,使用python3.7构建了一个仿真器来仿真pouw共识机制。该仿真器仿真了pouw共识机制的主要特征(即任务处理,块的传播延迟等)。[0126]为简单起见,假设所有参数都采用以下设置:1)每个矿工具有相同的计算能力,即c1=...=cn;2)每个矿工的平均tp时间相等,即λ1=...=λn;3)系统难度始终是固定的,不会动态改变。将每个仿真重复5次,每次仿真都会生成约100000个块。[0127]下面,展示了分叉概率和系统吞吐量的仿真结果,如图7-14所示,在这些图中,所有仿真结果都标记为“sim_x”,而理论结果则标记为“ana_x”。除此之外,为避免出现重复的仿真结果,使用不同的参数值来运行每个仿真。[0128]在本实施例中,详细介绍了图7-10中所示的仿真结果,它们分别表示了tp时间λi,计算能力ci,系统难度d和网络延迟τ对分叉概率的影响。[0129]如图7所示,图7绘制了分叉概率与tp时间λi的关系图,其中λi在10到410之间变化,而系统难度为每个矿工的计算能力为ci=200,网络延迟为τ=10s。在图7中,分别将矿工数量设置为n=20和n=30。从图7中,得到以下三个观察结果。[0130]首先,仿真曲线(即sim_n=20,sim_n=30)几乎与理论曲线(即ana_n=20,ana_n=30)重叠。将a和b之间的相对误差定义为|a-b|之间的比率,例如|a-b|到b。然后,我们可以计算出,当矿工数为n=20时,其模拟结果与理论结果之间的误差仅为1.54%。同时,当矿工为n=30时,误差为2.77%。这表明我们关于分叉概率的理论模型非常准确。[0131]其次,随着tp时间λ增加,分叉概率降低。可以通过公式(2)-(5)解释其原因。特别地,随着λi增加,尽管公式(2)中的pi相应地增加,但公式(3)中的pi却减小了,因为它是平均tp时间λi的减小函数。因此,公式(4)中的p增加,并且最终导致当网络延迟τ固定时,分叉概率,即公式(5)中的pf减小。[0132]第三,分叉概率随着矿工数量n的增加而增加。例如,当矿工数量为n=20时,随着λi从λi从10变为410,分叉概率从0.0679增加至0.0610,而当矿工数量为n=30时,分叉概率从0.1044增加至0.0901。这是合理的,因为随着矿工数量n的增加,当给定其他参数时,系统生成区块的概率将相应增加(即公式(4)中的p),因此,分叉概率增加。[0133]如图8所示,图8绘制了每个矿工ci的分叉概率与计算能力的关系图,其中ci从200变为600,而系统难度为tp时间为λi=100,网络延迟为τ=10s。在图8中,我们分别将矿工数量设置为n=50和n=100。从图8中,我们得到以下三个观察结果。[0134]首先,仿真曲线(即sim_n=50,sim_n=100)与理论曲线(即ana_n=50,ana_n=100)紧密匹配。特别地,在n=50和n=100的情况下,仿真结果与理论结果之间的平均误差分别为3.16%和2.62%。这再次验证了本实施例的理论模型是正确的。[0135]第二,分叉概率随着计算能力ci的增加而增加。从直观的角度和理论的角度来看,这都很容易理解。直观地,一旦每个矿工都具有强大的计算能力,系统将更快地生成新块,因此,更有可能在前一个块的传播期间生成一些块,并最终导致更频繁地产生分叉。理论上,当给出其他参数时,由于pi,pi,p和pf分别都是ci,pi,pi和p,的加法函数,因此pf也是ci的加法函数,从公式(2)-(5)。所以,分叉概率将随着ci的增加而增加。[0136]第三,分叉概率随着矿工数量n的增加而增加,这同样可以在图4的观察三中得到解释。[0137]如图9所示,图9绘制了分叉概率与系统难度d的关系图,其中d从增加到而tp时间为λi=100,计算能力为ci=200,网络延迟为τ=50s。[0138]在图9中,分别将矿工数量设置为n=30和n=50。从图9中可以发现,结果与图6和图7相似。也就是说,一方面,理论结果和相应的仿真结果非常吻合。另一方面,较大矿工数量(即n=50)的分叉概率高于较小矿工数量(即n=30)的分叉概率。更重要的是,随着难度d的增加,分叉概率也变大。这是很有意义的,因为这里的系统难度定义为单位时间内生成新块的概率,如公式(2)所示。因此,难度越高,新生成的块的数量越多,因为系统越容易生成块,因此分叉概率自然增加。[0139]如图10所示,图10绘制了分叉概率与网络延迟的关系图,其中从50s增加到150s,而tp时间为,计算能力为ci=100,系统难度为[0140]在图10中,将矿工数分别设置为n=30和n=50。从图10中可以看出,除了矿工数对分叉概率的影响以及仿真结果与理论结果之间的良好匹配外,我们还发现随着网络延迟增加,分叉概率也越来越大。实际上,网络延迟在区块链分叉中起着核心作用。如等式(5)中所计算的,在没有网络延迟(即,τ=0)的理想网络中,分叉不会发生,因为一旦产生块,它将立即广播到整个网络。在这种情况下,如果同时生成多个块,则将立即检测到它们,然后根据共识机制的原理将其拒绝。但是,如果网络具有一定的延迟时间(即τ》0),则有可能将在网络传播时间内生成的多个新区块视为正常块,并最终导致分叉。因此,网络延迟是导致所有其他共识机制(例如pow,poe,pos等)出现分叉的主要因素。[0141]在本实施例中,详细介绍了图11-14中所示的仿真结果,它们分别表示了tp时间λi,计算能力ci,系统难度d和网络延迟τ对系统吞吐量的影响。为了突出这些因素对系统吞吐量的影响,采用与上述不同的参数设置,如表(二)所示。[0142]表(二)[0143]tablel.parameterforfigures9-12.[0144]λicidτfigure94001-6*10510sfigure101001-6*10510sfihure11100040010sfigure110004001/6*105[0145]其中,图11-13分别绘制了系统吞吐量与tp时间λi,计算能力ci和系统难度d。在这些图中,矿工数分别设置为100和200。从这些图中,有以下三个观察结果。[0146]首先,仿真结果(即sim_x)与相应的理论结果(即ana_x)完全匹配。这表明我们关于系统吞吐量的理论模型(例如,(14))是准确的。[0147]其次,每个图中仿真结果的趋势与图5-7相似。例如,在图11中,系统吞吐量随着tp时间λi的增加而降低。这是合理的,因为每个块都是在给定时刻处生成的,那么间隔时间,即λi越长,生成的块数越少,最后系统吞吐量就越低。[0148]第三,系统吞吐量随着矿工数量n的增加而增加。原因如下:随着矿工数量的增加,系统生成区块的可能性将相应增加(即公式(4)中的),因此系统吞吐量最终将增加(参见公式(14))。[0149]如图14所示,图14绘制了系统吞吐量与网络延迟τ的关系。从该图可以看出,除了仿真结果与理论结果吻合得很好以外,仿真结果的趋势与图10完全相反。这有两点是合理的。[0150]一方面,网络延迟始终是直接影响系统吞吐量的关键因素。延迟时间越长,确定生成的块的速度就越慢,最后获得的系统吞吐量就越低。[0151]另一方面,从公式(5)和(14)可以看出,当给定时,分叉概率函数(即公式(5))和系统吞吐量函数(即公式(14))的单调性是不同的。换句话说,公式(5)中的分叉概率是延迟的增加函数,而公式(14)中的系统吞吐量是网络延迟的减少函数。因此,系统吞吐量随着网络延迟的增加而降低。[0152]因此,在本实施例中,开发了理论模型来分析pouw共识机制的分叉概率和系统吞吐量。该模型考虑了一系列因素(例如,网络传播延迟,每个矿工的计算能力和tp时间),并研究了这些因素对pouw分叉概率和系统吞吐量的影响。大量的仿真证明该模型非常准确。[0153]根据本公开实施例的用于区块链的共识机制性能的分析装置包括存储器和处理器。共识机制性能的分析装置中的各组件通过总线系统和/或其它形式的连接机构(未示出)互连。[0154]所述存储器用于存储非暂时性计算机可读指令。具体地,存储器可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。[0155]所述处理器可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制共识机制性能的分析装置中的其它组件以执行期望的功能。在本公开的一个实施例中,所述处理器用于运行所述存储器中存储的所述计算机可读指令,使得所述共识机制性能的分析装置执行上述共识机制性能的分析方法。所述共识机制性能的分析方法与上述共识机制性能的分析方法描述的实施例相同,在此将省略其重复描述。[0156]根据本公开实施例的存储介质其上存储有计算机可读指令。当所述计算机可读指令由处理器运行时,执行参照上述描述的根据本公开实施例的共识机制性能的分析方法。[0157]由此可见,本发明提出了一种用于区块链的pouw共识机制性能的分析方法,每个矿工首先进行有用的工作(例如数据分类),然后根据其执行的cpu指令数量竞争获胜者。与pow相比,在pouw共识机制中,做有用工作的时间是一个新的重要因素。在区块链中,分叉会阻碍共识机制的执行效率,而吞吐量是量化共识机制性能的关键指标。因此,本发明通过新颖的理论模型来量化pouw的分叉概率和系统吞吐量,准确性高、可靠性强。[0158]进一步的,本发明致力于开发理论模型来分析pouw的系统性能,充分考虑了各种因素(例如,矿工数量,采矿难度,计算能力,网络延迟,尤其是新引入的tp时间),并全面表征了这些参数对分叉概率和系统吞吐量的影响,可以提高pouw的实用性。此外,使用此模型,可以配置适当的pouw参数以最小化分叉概率并提升系统吞吐量。[0159]不同于pow矿工总是通过不断执行哈希操作来竞争赢家,本发明的pouw矿工仅在任务处理(tp)时间(即需要完成处理时间)之后才通过抽奖方式竞争赢家。[0160]所以,本发明的pouw的tp时间是不同于pow的新的重要因素,在pouw中,矿工花费大量时间来做有用的工作,而花很少的时间来竞争获胜者,从而避免了计算资源的巨大浪费。[0161]以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。[0162]本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。[0163]需要说明的是,以上仅为本发明的优选实施例,但发明的设计构思并不局限于此,凡利用此构思对本发明做出的非实质性修改,也均落入本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献