Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

Scrypt算法工作量证明方法及装置 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:上海嘉楠捷思信息技术有限公司

摘要:本公开涉及一种Scrypt算法工作量证明方法及装置,所述方法包括多个工作量证明的任务,所述任务包括第一阶段和第二阶段,所述方法包括:在各任务的第一阶段,在第一数据中抽取部分数据作为存储数据进行存储,存储数据的数量少于第一数据的数量;在各任务的第二阶段,将各任务分别对应至第一周期内不同的第一时隙,在与目标任务对应的第一时隙内,根据目标任务的存储数据确定对应的第一数据,根据对应的第一数据生成第二数据,所述目标任务包括任一任务,所述第一周期包括多个第一时隙,第一时隙的数量大于或等于任务的数量。本公开实施例可以节省存储空间,提高多任务的执行效率。

主权项:1.一种Scrypt算法工作量证明方法,其特征在于,所述方法包括多个工作量证明的任务,所述任务包括第一阶段和第二阶段,所述方法包括:在各任务的第一阶段,在第一数据中随机抽取部分数据作为存储数据进行存储,根据所述第一数据在有序序列中的序列号,确定所述存储数据的存储地址,所述存储数据的数量少于所述第一数据的数量;在各任务的第一阶段,将各任务分别对应至第二周期内不同的第二时隙;在各任务的第二阶段,将各任务分别对应至第一周期内不同的第一时隙,在与目标任务对应的第一时隙内,根据在所述目标任务的当前第二数据中预设数位上的数据生成索引地址,在所述存储地址中查找所述索引地址,根据查找结果确定与当前第二数据对应的第一数据;当无法在所述存储数据中查找到与当前第二数据对应的第一数据时,根据序列号小于与当前第二数据对应的第一数据的序列号的最接近的存储数据,利用HASH函数进行级联计算,确定与所述当前第二数据对应的第一数据;根据与所述当前第二数据对应的第一数据和所述当前第二数据,得到所述当前第二数据的下一个第二数据;所述目标任务包括任一所述任务,所述第一周期包括多个第一时隙,所述第一时隙的数量大于或等于所述任务的数量,所述第一周期和所述第二周期并行。

全文数据:Scrypt算法工作量证明方法及装置技术领域本公开涉及区块链技术领域,尤其涉及一种Scrypt算法工作量证明方法及装置。背景技术区块链技术的工作量证明方法中,Scrypt算法工作量证明方法的第一阶段生成设定数量的第一数据,并在第二阶段随机使用第一数据生成第二数据。第一数据的数量较多,占据了较大的存储空间,使得Scrypt算法工作量证明方法的实现芯片的体积较大,不利于缩小相关设备的体积。发明内容有鉴于此,本公开提出了一种Scrypt算法工作量证明方法及装置。用以解决Scrypt算法工作量证明方法占用存储空间大,无法减小相关芯片体积的问题。根据本公开的一方面,提供了一种Scrypt算法工作量证明方法,所述方法包括多个工作量证明的任务,所述任务包括第一阶段和第二阶段,所述方法包括:在各任务的第一阶段,在第一数据中抽取部分数据作为存储数据进行存储,所述存储数据的数量少于所述第一数据的数量;在各任务的第二阶段,将各任务分别对应至第一周期内不同的第一时隙,在与目标任务对应的第一时隙内,根据所述目标任务的存储数据确定对应的第一数据,根据所述对应的第一数据生成第二数据,所述目标任务包括任一所述任务,所述第一周期包括多个第一时隙,所述第一时隙的数量大于或等于所述任务的数量。在一种可能的实现方式中,在各任务的第一阶段,在第一数据中抽取部分数据作为存储数据进行存储,包括:在各任务的第一阶段,将各任务分别对应至第二周期内不同的第二时隙,在与所述目标任务对应的第二时隙内,生成第一数据,并在第一数据中抽取部分数据作为存储数据写入存储器,所述第二周期包括多个第二时隙,所述第二时隙的数量大于或等于所述任务的数量。在一种可能的实现方式中,根据所述目标任务的存储数据确定对应的第一数据,根据所述对应的第一数据生成第二数据,包括:在所述目标任务的所述存储数据中查找与当前第二数据对应的第一数据;当无法在所述存储数据中查找到与当前第二数据对应的第一数据时,根据最接近的存储数据,确定与所述当前第二数据对应的第一数据;根据与所述当前第二数据对应的第一数据和所述当前第二数据,得到所述当前第二数据的下一个第二数据。在一种可能的实现方式中,所述第一数据为有序序列,在第一数据中抽取部分数据作为存储数据进行存储,包括:根据所述存储数据的序列号确定所述存储数据的存储地址;在所述目标任务的所述存储数据中查找与当前第二数据对应的第一数据,包括:根据在所述目标任务的当前第二数据中预设数位上的数据生成索引地址,在所述存储地址中查找所述索引地址,根据查找结果确定与当前第二数据对应的第一数据。在一种可能的实现方式中,根据最接近的存储数据,确定与所述当前第二数据对应的第一数据,包括:确定最接近的存储地址与所述索引地址之间的差值;根据所述差值确定的迭代次数,将最接近的存储地址中的存储数据进行迭代运算,得到与所述索引地址对应的第一数据。在一种可能的实现方式中,在第一数据中抽取部分数据作为存储数据进行存储,包括以下任意一种:在第一数据中按照预设的抽取间隔抽取存储数据进行存储;在第一数据中按照预设的序列号范围抽取存储数据进行存储;在第一数据中随机抽取预设数量的存储数据进行存储。在一种可能的实现方式中,各任务的存储数据存储在存储器的不同存储空间,所述存储空间的数量大于或等于所述任务的数量。在一种可能的实现方式中,以所述第二周期在前、所述第一周期在后组成的执行周期执行各所述任务。在一种可能的实现方式中,所述第一周期还包括空闲时隙,所述空闲时隙的数量或时长根据所述存储器的延迟确定。在一种可能的实现方式中,所述第一周期和所述第二周期并行。在一种可能的实现方式中,所述方法还包括:当所述多个任务中的至少一个任务执行完毕时,将执行完毕的任务对应的第一时隙分配至新的任务。根据本公开的另一方面,提供了一种Scrypt算法工作量证明装置,所述装置用于执行多个工作量证明的任务,所述任务包括第一阶段和第二阶段,所述装置包括:抽取模块,用于在各任务的第一阶段,在第一数据中抽取部分数据作为存储数据进行存储,所述存储数据的数量少于所述第一数据的数量;第一周期执行模块,用于在各任务的第二阶段,将各任务分别对应至第一周期内不同的第一时隙,在与目标任务对应的第一时隙内,根据所述目标任务的存储数据确定对应的第一数据,根据所述对应的第一数据生成第二数据,所述目标任务包括任一所述任务,所述第一周期包括多个第一时隙,所述第一时隙的数量大于或等于所述任务的数量。在一种可能的实现方式中,所述抽取模块,包括:第二周期执行子模块,用于在各任务的第一阶段,将各任务分别对应至第二周期内不同的第二时隙,在与所述目标任务对应的第二时隙内,生成第一数据,并在第一数据中抽取部分数据作为存储数据写入存储器,所述第二周期包括多个第二时隙,所述第二时隙的数量大于或等于所述任务的数量。在一种可能的实现方式中,所述第一周期执行模块,包括:对应数据查找子模块,用于在所述目标任务的所述存储数据中查找与当前第二数据对应的第一数据;对应数据确定子模块,用于当无法在所述存储数据中查找到与当前第二数据对应的第一数据时,根据最接近的存储数据,确定与所述当前第二数据对应的第一数据;第二数据获取子模块,用于根据与所述当前第二数据对应的第一数据和所述当前第二数据,得到所述当前第二数据的下一个第二数据。在一种可能的实现方式中,所述第一数据为有序序列,所述抽取模块,包括:存储地址子模块,用于根据所述存储数据的序列号确定所述存储数据的存储地址;所述对应数据查找子模块,用于:根据在所述目标任务的当前第二数据中预设数位上的数据生成索引地址,在所述存储地址中查找所述索引地址,根据查找结果确定与当前第二数据对应的第一数据。在一种可能的实现方式中,所述对应数据确定子模块,用于:确定最接近的存储地址与所述索引地址之间的差值;根据所述差值确定的迭代次数,将最接近的存储地址中的存储数据进行迭代运算,得到与所述索引地址对应的第一数据。在一种可能的实现方式中,在第一数据中抽取部分数据作为存储数据进行存储,包括以下任意一种:在第一数据中按照预设的抽取间隔抽取存储数据进行存储;在第一数据中按照预设的序列号范围抽取存储数据进行存储;在第一数据中随机抽取预设数量的存储数据进行存储。在一种可能的实现方式中,各任务的存储数据存储在存储器的不同存储空间,所述存储空间的数量大于或等于所述任务的数量。在一种可能的实现方式中,以所述第二周期在前、所述第一周期在后组成的执行周期执行各所述任务。在一种可能的实现方式中,所述第一周期还包括空闲时隙,所述空闲时隙的数量或时长根据所述存储器的延迟确定。在一种可能的实现方式中,所述第一周期和所述第二周期并行。在本公开实施例中,在Scrypt算法工作量证明的第一阶段,在第一数据中抽取部分数据作为存储数据进行存储,可以节省存储空间。将多个任务分别对应至第一周期内不同的第一时隙,在与各任务对应的第一时隙内生成第二数据,可以提高多任务的执行效率。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。附图说明包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。图1示出根据本公开一实施例的Scrypt算法工作量证明方法的流程图;图2示出根据本公开一实施例的Scrypt算法工作量证明方法的流程图;图3示出根据本公开一实施例的Scrypt算法工作量证明方法的流程图;图4示出根据本公开一实施例的Scrypt算法工作量证明装置的框图。具体实施方式以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。图1示出根据本公开一实施例的Scrypt算法工作量证明方法的流程图,如图1所示,方法包括:步骤S10,各任务的第一阶段,在第一数据中抽取部分数据作为存储数据进行存储,存储数据的数量少于第一数据的数量。在一种可能的实现方式中,在虚拟数字币技术中,工作量证明是实现系统一致性的重要机制。工作量证明要求参与方付出一定量的计算资源,来证明自己完成了一定的工作量。在虚拟数字币技术的Scrypt算法中,工作量证明包括第一阶段和第二阶段。在第一阶段,可以将随机数利用HASH函数进行运算后得到多个第一数据。各第一数据之间具有级联关系,可以组成序列。例如,在第一阶段,可以根据随机数1利用HASH函数运算后,得到第一个第一数据。可以将第一个第一数据利用HASH函数运算后,得到第二个第一数据。可以利用HASH函数进行多次运算后得到预设数量的第一数据。可以将各第一数据进行存储。为节省存储空间,本实施例可以在第一数据中抽取部分数据作为存储数据进行存储,可以节省存储空间。在一种可能的实现方式中,存储数据的数量少于第一数据的数量,由于第二数据需要随机用到第一数据。当计算第二数据所需的第一数据没有被存储时,需要根据存储数据计算到得到,从而耗费一定的计算资源,降低了计算效率。可以根据节省存储空间和保证计算效率的两方面需求,确定存储数据的数量。在一种可能的实现方式中,在第一数据中抽取部分数据作为存储数据进行存储,包括以下任意一种:在第一数据中按照预设的抽取间隔抽取存储数据进行存储;在第一数据中按照预设的序列号范围抽取存储数据进行存储;在第一数据中随机抽取预设数量的存储数据进行存储。在一种可能的实现方式中,可以预设抽取间隔。例如,预设抽取间隔可以为三个第一数据。则可以抽取第一个第一数据、第四个第一数据、第八个第一数据……依次类推,直至抽取到最后一个存储数据进行存储。在第二数据的计算过程中,第一数据会被随机的使用到,按照抽取间隔抽取到得存储寻列,能够在第一数据中较平均的抽取存储数据,使得存储数据的被使用的几率相当。在一种可能的实现方式中,各第一数据之间有级联关系,各第一数据可以组成一个序列。各第一数据之间的序列号可以根据第一数据的生成顺序确定。可以在第一数据中按照预设的序列号范围抽取存储数据。例如,共有1024个第一数据,可以抽取1-50、100-150、200-250……的序列号范围的第一数据作为存储数据。可以根据多个序列号范围抽取存储数据,也可以根据一个序列号范围抽取存储数据。本公开不限定序列号范围的数量,也不限定各序列号范围的长度。在一种可能的实现方式中,可以在第一数据中随机抽取预设数量的存储数据进行存储。例如,共有1024个第一数据可以随机抽取256个存储数据,可以随机抽取第一个、第五个、第十五个第一数据……作为存储数据。步骤S20,在各任务的第二阶段,将各任务分别对应至第一周期内不同的第一时隙,在与目标任务对应的第一时隙内,根据目标任务的存储数据确定对应的第一数据,根据对应的第一数据生成第二数据,目标任务包括任一任务,第一周期包括多个第一时隙,第一时隙的数量大于或等于任务的数量。在一种可能的实现方式中,在第二阶段,可以根据第一数据和随机数,利用HASH函数进行运算得到第二数据。例如,在第二阶段,可以根据最后一个第一数据或根据随机数2,利用HASH函数进行运算,得到第一个第二数据。可以将第一个第二数据利用HASH函数进行运算,得到第一个第二数据的运算结果,可以确定与第一个第二数据对应的第一数据,可以将与第一个第二数据对应的第一数据和第一个第二数据的运算结果进行异或运算,得到第二个第二数据。可以将第二数据利用HASH函数进行运算,得到第二个第二数据的运算结果,可以确定一个与第二个第二数据对应的第一数据,可以将与第二个第二数据对应的第一数据和第二个第二数据的运算结果进行异或运算,得到第三个第二数据。以此类推,直至得到预设数量的第二数据。在一种可能的实现方式中,可以根据当前第二数据中设定数位上的数据和预设的数据转换规则,得到与当前第二数据对应的第一数据。可以根据需求确定数据转换规则,本公开对此不做限定。由于各第一数据之间有级联关系,可以根据任一第一数据,经过计算得到与任一第二数据对应的第一数据。可以根据存储数据,得到与各第二数据对应的第一数据。在一种可能的实现方式中,第二数据之间具有级联关系。利用本公开实施例中的方法,计算得到最后一个第二数据,并将计算得到的最后一个第二数据输出至Scrypt算法中工作量证明部分的其它运算步骤,以完成Scrypt算法中工作量证明,本领域技术人员可以理解的是,具体第二数据输出至Scrypt算法中的其它步骤,以完成的Scrypt算法工作量证明的相关描述可参考现有技术。在一种可能的实现方式中,在各任务的第二阶段,确定与当前第二数据对应的第一数据的过程中,存在对应的第一数据不是存储数据,需要根据存储数据运算后得到与当前第二数据对应的第一数据,在根据运算得到的与当前第二数据对应的第一数据得到下一个第二数据的情况。各任务中,当前第二数据对应的第一数据在存储数据中的命中率不同,根据存储数据运算得到对应的第一数据的迭代次数不同,运算耗时也不同,导致各任务的第二阶段所需时长各不相同。在传统的工作量证明方法中,当多个工作量证明的任务同时执行时,需要等待所有任务的当前第二数据生成后,才能进行下一个第二数据的生成过程,各任务的执行效率低。在一种可能的实现方式中,在各任务的第二阶段,可以将各任务分别对应至第一周期内不同的第一时隙,第一周期包括多个第一时隙,第一时隙的数量大于或等于任务的数量。例如,第一周期为T1,T1包括10个第一时隙,可以分别对应10个不同的任务,第一个第一时隙对应任务1,第二个第一时隙对应任务2,第三个第一时隙对应任务3……。在第一个第一时隙对应的时长范围内,执行任务1的第二阶段,在第二个第一时隙对应的时长范围内,执行任务2的第二阶段,并以此类推,直至第一周期执行完毕后,执行下一个第一周期。在一种可能的实现方式中,当多个任务中的至少一个任务执行完毕后,可以将执行完毕的任务对应的第一时隙分配至新任务。例如,在10个任务中,任务3执行完毕。可以将与任务3对应的第三个第一时隙分配至新的任务11,从而提高多任务执行效率。在本实施例中,在Scrypt算法工作量证明的第一阶段,在第一数据中抽取部分数据作为存储数据进行存储,可以节省存储空间。将多个任务分别对应至第一周期内不同的第一时隙,在与各任务对应的第一时隙内生成第二数据,可以提高多任务的执行效率。图2示出根据本公开一实施例的Scrypt算法工作量证明方法的流程图,如图2所示,方法包括:步骤S11、步骤S20,其中步骤S20可参考上述图1中相关描述,步骤S11包括:步骤S11,在各任务的第一阶段,将各任务分别对应至第二周期内不同的第二时隙,在与目标任务对应的第二时隙内,生成第一数据,并在第一数据中抽取部分数据作为存储数据写入存储器,第二周期包括多个第二时隙,第二时隙的数量大于或等于任务的数量。在一种可能的实现方式中,可以将各任务分别对应至第二周期内的不同第二时隙,在于目标任务对应的第二时隙内,执行目标任务的第一阶段,生成第一数据,并在第一数据中抽取部分数据作为存储数据写入存储器。由于各任务第二阶段的执行时长不同,将各任务分别对应至第一周期后,当其中一个任务完成后,可以释放与其对应的第一时隙,并将释放出的第一时隙用于新的任务。相应的,可以将与完成的任务对应的第二周期内对应的第二时隙也释放,并将释放出的第二时隙也分配至新的任务,以提高多任务的执行效率。在一种可能的实现方式中,各任务在第一周期对应的第一时隙的序号,可以与在第二周期内对应的第二时隙的序号相同或不同。在本实施例中,在各任务的第一阶段,将各任务分别对应至第二周期内不同的第二时隙,在与目标任务对应的第二时隙内,生成第一数据,并在第一数据中抽取部分数据作为存储数据写入存储器。将各任务的第一阶段,也在对应的第一时隙内完成,可以进一步提高多任务的执行效率。图3示出根据本公开一实施例的Scrypt算法工作量证明方法的流程图,如图3所示,方法包括:步骤S10、步骤S21、步骤S22、步骤S23,其中步骤S10可参考上述图1中相关描述,步骤S21、步骤S22以及步骤S23包括:步骤S21,在目标任务的存储数据中查找与当前第二数据对应的第一数据。在一种可能的实现方式中,存储数据为部分第一数据。与当前第二数据对应的第一数据可能是存储数据,也可能不是存储数据。当与当前第二数据对应的第一数据为存储数据时,可以在存储数据中提取后用于当前第二数据的计算。步骤S22,当无法在存储数据中查找到与当前第二数据对应的第一数据时,根据最接近的存储数据,确定与当前第二数据对应的第一数据。在一种可能的实现方式中,当无法在存储数据中查找到与当前第二数据对应的第一数据时,可以根据最接近的存储数据,利用HASH函数进行计算后,确定与当前第二数据对应的第一数据。例如,与当前第二数据对应的第一数据的序列号为14,存储数据中各第一数据的序列号分别为1、6、11、16……等。可以根据最接近序列号14的第16个第一数据,利用HASH函数进行级联计算,得到与当前第二数据对应的序列号为14的第一数据。在一种可能的实现方式中,可以将序列号小于与当前第二数据对应的第一数据的序列号中最接近的存储数据,确定为最接近的存储数据。例如,可以在小于14的序列号中,根据最接近的序列号为11的第一数据,利用HASH函数进行级联计算,得到与当前第二数据对应的序列号为14的第一数据。步骤S23,根据与当前第二数据对应的第一数据和当前第二数据,得到当前第二数据的下一个第二数据。在一种可能的实现方式中,可以将当前第二数据利用HASH函数进行运算得到运算结果,可以将与当前第二数据对应的第一数据和运算结果进行异或运算,得到当前第二数据的下一个第二数据。在本实施例中,当无法在各存储数据中查找到与当前第二数据对应的第一数据时,根据最接近的存储数据,确定与当前第二数据对应的第一数据,并根据与当前第二数据对应的第一数据和当前第二数据,得到当前第二数据的下一个第二数据。第二数据可以根据存储数据计算得到,降低了第一数据所需的存储空间。在一种可能的实现方式中,第一数据为有序序列,方法中步骤S10,包括:根据存储数据的序列号确定存储数据的存储地址。在一种可能的实现方式中,可以根据第一数据的序列号确定存储数据的序列号。例如,当序列号为1、10、15、20的第一数据作为存储数据时,存储数据的序列号也为1、10、15、20。可以将存储数据的序列号作为存储数据的存储地址。即各存储数据的存储地址为1、10、15、20。步骤S21,包括:根据在目标任务的当前第二数据中预设数位上的数据生成索引地址,在存储地址中查找索引地址,根据查找结果确定与当前第二数据对应的第一数据。在一种可能的实现方式中,可以以2为底数,以当前第二数据中预设数位上的数据为指数,生成当前第二数据的索引地址。例如,第一数据的数量为1024个。可以以2为底数,以第二数据中最后10个数位上的数据作为指数得到1024个结果,可以对应1024个第一数据。可以根据需求确定预设数位的数量和位置。在一种可能的实现方式中,可以在存储地址中查找索引地址。如果在存储地址中查找到索引地址,可以将与索引地址相同的存储地址上的存储数据,确定为与当前第二数据对应的第一数据。如果在存储地址中没有查找到索引地址,可以在小于索引地址的存储地址中,查找与索引地址最接近的存储地址中的存储数据,经过级联结算得到与当前第二数据对应的第一数据。例如,索引地址为14,存储地址为1,5,10,15,可以根据存储地址为10的存储数据,经过级联计算得到存储地址为14的第一数据。在本实施例中,根据存储数据的序列号确定存储数据的存储地址,根据当前第二数据中预设数位上的数据生成索引地址,在存储地址中查找索引地址,根据查找结果确定与当前第二数据对应的第一数据。通过存储地址和索引地址,可以使得与当前第二数据对应的第一数据的查找过程简单、可靠。在一种可能的实现方式中,根据最接近的存储数据,确定与当前第二数据对应的第一数据,包括:确定最接近的存储地址与索引地址之间的差值。根据差值确定的迭代次数,将最接近的存储地址中的存储数据进行迭代运算,得到与索引地址对应的第一数据。在一种可能的实现方式中,可以在小于索引地址的存储地址中,确定与索引地址最接近的存储地址。可以计算最接近的存储地址与索引地址之间的差值。例如,索引地址为14,各存储数据的存储地址为1、5、10、15、20……。可以将存储地址10确定为最接近的存储地址,确定差值为14-10=4。在一种可能的实现方式中,由于第一数据之间具有级联关系。可以根据差值,对最接近的存储地址中的存储数据进行迭代计算,得到与索引地址对应的第一数据。例如,差值为4,可以将最近接的存储地址中的存储数据,利用HASH函数进行四次迭代运算,得到与索引地址对应的第一数据。在本实施中,可以确定最接近的存储地址与索引地址之间的差值;根据差值确定的迭代次数,将最接近的存储地址中的存储数据进行迭代运算,得到与索引地址对应的第一数据。根据差值确定迭代次数,可以方便地根据存储数据计算得到与当前第二数据对应的第一数据。在一种可能的实现方式中,方法还包括:各任务的存储数据存储在存储器的不同存储空间,存储空间的数量大于或等于任务的数量。在一种可能的实现方式中,可以将存储器划分为不同的存储空间。可以根据任务的数量确定存储空间的数量。例如,对应于10个任务,可以将存储器划分为10个存储空间,每个存储空间对应一个任务。各任务可将存储数据存储在对应的存储空间中,并在对应的存储空间中提取存储数据计算得到第二数据。在本实施例中,通过将存取器划分为不同的存储空间,各任务在对应的存储空间进行数据的读写,可以提高数据读写效率,提高多任务的执行效率。在一种可能的实现方式中,以第一周期在前、第二周期在后组成的执行周期执行各任务。在一种可能的实现方式中,用于执行本公开实施例的Scrypt算法工作量证明方法的芯片,可以在同一时刻只读或只写。当本公开实施例中的方法应用于在同一时刻只读或只写的芯片时,可以将以第二周期在前、第一周期在后组成的执行周期执行各任务。例如,第二周期时长为T2,第一周期时长为T1,以T3=T1+T2为执行周期的时长。执行周期中先执行第二周期T2后执行第一周期T1。以执行周期T3依次执行各任务,在T3中的T2时长内,执行各任务的第一阶段。在T3中的T1时长内,执行各任务的第二阶段。在本实施例中,以第二周期在前、第一周期在后组成的执行周期执行各任务,可以满足在同一时刻只读或只写的芯片的使用环境,提高本公开实施例的适用性。在一种可能的实现方式中,第一周期还包括空闲时隙,空闲时隙的数量或时长根据存储器的延迟确定。在一种可能的实现方式中,由于各任务的第二阶段的耗时比第一阶段长,第一周期中还可以包括空闲时隙。包括空闲时隙的第一周期的时长可以长于第二周期的时长。空闲时隙的数量或时长,可以根据存储器的延迟特性确定。空闲时隙可以用于对应各任务的运算开销所需的时长,使得第一周期中的第一时隙能够与各任务对齐。在本实施例中,第一周期还可以包括空闲时隙。空闲时隙用于对应各任务的运算开销所需时长,将第一周期中的各第一时隙与各任务对齐,提高各任务的执行效率。在一种可能的实现方式中,第一周期和第二周期并行。在一种可能的实现方式中,用于执行本公开实施例的Scrypt算法工作量证明方法的芯片,可以在同一时刻同时读写。本公开实施例中的方法应用于在同一时刻可以同时读写的芯片时,第一周期可以和第二周期并行。在本实施例中,第一周期和第二周期并行可以满足在同一时刻可以同时读写的芯片的使用环境,提高本公开实施例的适用性。图4示出根据本公开一实施例的Scrypt算法工作量证明装置的框图,如图4所示,装置用于执行多个工作量证明的任务,任务包括第一阶段和第二阶段,装置包括:抽取模块10,用于在各任务的第一阶段,在第一数据中抽取部分数据作为存储数据进行存储,存储数据的数量少于第一数据的数量;第一周期执行模块20,用于在各任务的第二阶段,将各任务分别对应至第一周期内不同的第一时隙,在与目标任务对应的第一时隙内,根据目标任务的存储数据确定对应的第一数据,根据对应的第一数据生成第二数据,目标任务包括任一任务,第一周期包括多个第一时隙,第一时隙的数量大于或等于任务的数量。在一种可能的实现方式中,抽取模块10,包括:第二周期执行子模块,用于在各任务的第一阶段,将各任务分别对应至第二周期内不同的第二时隙,在与目标任务对应的第二时隙内,生成第一数据,并在第一数据中抽取部分数据作为存储数据写入存储器,第二周期包括多个第二时隙,第二时隙的数量大于或等于任务的数量。在一种可能的实现方式中,第一周期执行模块20,包括:对应数据查找子模块,用于在目标任务的存储数据中查找与当前第二数据对应的第一数据;对应数据确定子模块,用于当无法在存储数据中查找到与当前第二数据对应的第一数据时,根据最接近的存储数据,确定与当前第二数据对应的第一数据;第二数据获取子模块,用于根据与当前第二数据对应的第一数据和当前第二数据,得到当前第二数据的下一个第二数据。在一种可能的实现方式中,第一数据为有序序列,抽取模块10,包括:存储地址子模块,用于根据存储数据的序列号确定存储数据的存储地址;对应数据查找子模块,用于:根据在目标任务的当前第二数据中预设数位上的数据生成索引地址,在存储地址中查找索引地址,根据查找结果确定与当前第二数据对应的第一数据。在一种可能的实现方式中,对应数据确定子模块,用于:确定最接近的存储地址与索引地址之间的差值;根据差值确定的迭代次数,将最接近的存储地址中的存储数据进行迭代运算,得到与索引地址对应的第一数据。在一种可能的实现方式中,在第一数据中抽取部分数据作为存储数据进行存储,包括以下任意一种:在第一数据中按照预设的抽取间隔抽取存储数据进行存储;在第一数据中按照预设的序列号范围抽取存储数据进行存储;在第一数据中随机抽取预设数量的存储数据进行存储。在一种可能的实现方式中,各任务的存储数据存储在存储器的不同存储空间,存储空间的数量大于或等于任务的数量。在一种可能的实现方式中,以第二周期在前、第一周期在后组成的执行周期执行各任务。在一种可能的实现方式中,第一周期还包括空闲时隙,空闲时隙的数量或时长根据存储器的延迟确定。在一种可能的实现方式中,第一周期和第二周期并行。在一种可能的实现方式中,装置还包括:分配模块,用于当多个任务中的至少一个任务执行完毕时,将执行完毕的任务对应的第一时隙分配至新的任务。以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

权利要求:1.一种Scrypt算法工作量证明方法,其特征在于,所述方法包括多个工作量证明的任务,所述任务包括第一阶段和第二阶段,所述方法包括:在各任务的第一阶段,在第一数据中抽取部分数据作为存储数据进行存储,所述存储数据的数量少于所述第一数据的数量;在各任务的第二阶段,将各任务分别对应至第一周期内不同的第一时隙,在与目标任务对应的第一时隙内,根据所述目标任务的存储数据确定对应的第一数据,根据所述对应的第一数据生成第二数据,所述目标任务包括任一所述任务,所述第一周期包括多个第一时隙,所述第一时隙的数量大于或等于所述任务的数量。2.根据权利要求1所述的方法,其特征在于,在各任务的第一阶段,在第一数据中抽取部分数据作为存储数据进行存储,包括:在各任务的第一阶段,将各任务分别对应至第二周期内不同的第二时隙,在与所述目标任务对应的第二时隙内,生成第一数据,并在第一数据中抽取部分数据作为存储数据写入存储器,所述第二周期包括多个第二时隙,所述第二时隙的数量大于或等于所述任务的数量。3.根据权利要求1所述的方法,其特征在于,根据所述目标任务的存储数据确定对应的第一数据,根据所述对应的第一数据生成第二数据,包括:在所述目标任务的所述存储数据中查找与当前第二数据对应的第一数据;当无法在所述存储数据中查找到与当前第二数据对应的第一数据时,根据最接近的存储数据,确定与所述当前第二数据对应的第一数据;根据与所述当前第二数据对应的第一数据和所述当前第二数据,得到所述当前第二数据的下一个第二数据。4.根据权利要求3所述的方法,其特征在于,所述第一数据为有序序列,在第一数据中抽取部分数据作为存储数据进行存储,包括:根据所述存储数据的序列号确定所述存储数据的存储地址;在所述目标任务的所述存储数据中查找与当前第二数据对应的第一数据,包括:根据在所述目标任务的当前第二数据中预设数位上的数据生成索引地址,在所述存储地址中查找所述索引地址,根据查找结果确定与当前第二数据对应的第一数据。5.根据权利要求4所述的方法,其特征在于,根据最接近的存储数据,确定与所述当前第二数据对应的第一数据,包括:确定最接近的存储地址与所述索引地址之间的差值;根据所述差值确定的迭代次数,将最接近的存储地址中的存储数据进行迭代运算,得到与所述索引地址对应的第一数据。6.根据权利要求1所述的方法,其特征在于,在第一数据中抽取部分数据作为存储数据进行存储,包括以下任意一种:在第一数据中按照预设的抽取间隔抽取存储数据进行存储;在第一数据中按照预设的序列号范围抽取存储数据进行存储;在第一数据中随机抽取预设数量的存储数据进行存储。7.根据权利要求2所述的方法,其特征在于,各任务的存储数据存储在存储器的不同存储空间,所述存储空间的数量大于或等于所述任务的数量。8.根据权利要求2所述的方法,其特征在于,以所述第二周期在前、所述第一周期在后组成的执行周期执行各所述任务。9.根据权利要求1所述的方法,其特征在于,所述第一周期还包括空闲时隙,所述空闲时隙的数量或时长根据所述存储器的延迟确定。10.根据权利要求2所述的方法,其特征在于,所述第一周期和所述第二周期并行。11.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述多个任务中的至少一个任务执行完毕时,将执行完毕的任务对应的第一时隙分配至新的任务。12.一种Scrypt算法工作量证明装置,其特征在于,所述装置用于执行多个工作量证明的任务,所述任务包括第一阶段和第二阶段,所述装置包括:抽取模块,用于在各任务的第一阶段,在第一数据中抽取部分数据作为存储数据进行存储,所述存储数据的数量少于所述第一数据的数量;第一周期执行模块,用于在各任务的第二阶段,将各任务分别对应至第一周期内不同的第一时隙,在与目标任务对应的第一时隙内,根据所述目标任务的存储数据确定对应的第一数据,根据所述对应的第一数据生成第二数据,所述目标任务包括任一所述任务,所述第一周期包括多个第一时隙,所述第一时隙的数量大于或等于所述任务的数量。13.根据权利要求12所述的装置,其特征在于,所述抽取模块,包括:第二周期执行子模块,用于在各任务的第一阶段,将各任务分别对应至第二周期内不同的第二时隙,在与所述目标任务对应的第二时隙内,生成第一数据,并在第一数据中抽取部分数据作为存储数据写入存储器,所述第二周期包括多个第二时隙,所述第二时隙的数量大于或等于所述任务的数量。14.根据权利要求12所述的装置,其特征在于,所述第一周期执行模块,包括:对应数据查找子模块,用于在所述目标任务的所述存储数据中查找与当前第二数据对应的第一数据;对应数据确定子模块,用于当无法在所述存储数据中查找到与当前第二数据对应的第一数据时,根据最接近的存储数据,确定与所述当前第二数据对应的第一数据;第二数据获取子模块,用于根据与所述当前第二数据对应的第一数据和所述当前第二数据,得到所述当前第二数据的下一个第二数据。15.根据权利要求14所述的装置,其特征在于,所述第一数据为有序序列,所述抽取模块,包括:存储地址子模块,用于根据所述存储数据的序列号确定所述存储数据的存储地址;所述对应数据查找子模块,用于:根据在所述目标任务的当前第二数据中预设数位上的数据生成索引地址,在所述存储地址中查找所述索引地址,根据查找结果确定与当前第二数据对应的第一数据。16.根据权利要求15所述的装置,其特征在于,所述对应数据确定子模块,用于:确定最接近的存储地址与所述索引地址之间的差值;根据所述差值确定的迭代次数,将最接近的存储地址中的存储数据进行迭代运算,得到与所述索引地址对应的第一数据。17.根据权利要求12所述的装置,其特征在于,在第一数据中抽取部分数据作为存储数据进行存储,包括以下任意一种:在第一数据中按照预设的抽取间隔抽取存储数据进行存储;在第一数据中按照预设的序列号范围抽取存储数据进行存储;在第一数据中随机抽取预设数量的存储数据进行存储。18.根据权利要求13所述的装置,其特征在于,各任务的存储数据存储在存储器的不同存储空间,所述存储空间的数量大于或等于所述任务的数量。19.根据权利要求13所述的装置,其特征在于,以所述第二周期在前、所述第一周期在后组成的执行周期执行各所述任务。20.根据权利要求12所述的装置,其特征在于,所述第一周期还包括空闲时隙,所述空闲时隙的数量或时长根据所述存储器的延迟确定。21.根据权利要求13所述的装置,其特征在于,所述第一周期和所述第二周期并行。22.根据权利要求12所述的装置,其特征在于,所述装置还包括:分配模块,用于当所述多个任务中的至少一个任务执行完毕时,将执行完毕的任务对应的第一时隙分配至新的任务。

百度查询: 上海嘉楠捷思信息技术有限公司 Scrypt算法工作量证明方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。