支持用于区块验证的多个单向函数的区块链的制作方法

文档序号:16363568发布日期:2018-12-22 08:18阅读:116来源:国知局
支持用于区块验证的多个单向函数的区块链的制作方法

本说明书涉及一种支持用于区块验证的多个单向函数的区块链。

背景技术

传统的电子金融交易运用了个人与银行、政府等可信赖的机构进行交易的方式,这是中央集中式架构的金融系统,中央服务器担负起对金融交易进行验证及管理的作用。

最近提出的金融系统使用基于区块链(blockchain)的数字货币,并构建全体网络参与者对交易明细进行共享及保管的分散式(decentralized)架构。2008年所公开的中本聪(satoshinakamoto)的题为“比特币:p2p电子货币系统(bitcoin:apeer-to-peerelectroniccashsystem)”的论文中提出了中央金融机构不介入的p2p方式的电子货币,利用密码功能(cryptographicfunction)解决货币的重复支付(doublespending)问题,并提出支付硬币(coin)作为奖励(incentive)的方案,参与其中的分散的节点(node)为了实现挖掘(mining)过程而提供预算能力。

通常,参与实现分散式架构区块链系统的节点装置使用相同的密码算法(cryptographicalgorithm)和协议(protocol)。作为一种区块链系统,使得参与网络的节点装置竞争地执行工作量证明(proofofworks)等密码运算,并向最先给出结果的节点提供奖励,搭载用于特定密码算法的专用半导体(applicationspecificintegratedcircuit;asic)的超高性能的节点装置与网络内的其他节点装置相比,可占据垄断挖掘过程等的有利位置。



技术实现要素:

技术课题

区块链系统为了防止用于密码运算的超高速专用装置参与网络垄断运算,需要采用一种方法,所述方法根据需要对包括密码算法的特征进行变更,以便防止对区块链进行垄断控制。

就现有的区块链系统而言,用于实现单向函数和密码运算的主要功能被静态设置在系统软件中。因此,想要在区块链管理系统中变更单向函数等主要功能时,需要使得各个节点的系统管理员直接下载新的软件并重新设置,方可继续操作区块链系统。

在本发明中为了解决所述的个别节点的系统管理问题和此时可能发生的区块链系统的安全及稳定性问题,从而提出一种方案,在各个节点的区块链系统运行中,不存在另外的系统管理员参与的情况下,能够实现多重单向函数变更。

需要一种方法,向各个节点通知在不存在中央控制节点的分散式区块链系统中使用的特性被改变。

技术方案

本说明书提出一种节点装置的区块生成方法。所述节点转发至的区块生成方法可包括如下操作:获取未存储至区块链的一个以上的交易;判断是否需要用于实现所述一个以上的交易的新哈希函数;准备所述新哈希函数;生成用于实现所述一个以上的交易的区块数据;通过所述新哈希函数计算所述区块数据的哈希值;生成包含所述哈希值及所述区块数据的区块;以及传送所述区块以便存储于所述区块链。

所述方法还可包括以下特征或其他特征。所述是否需要新哈希函数可以基于所述一个以上的交易的至少一部分来判断。此外,所述是否需要新哈希函数可以基于交易来判断,所述交易与所述一个以上的交易中所包含的至少一个管理钱包的交易相对应。此外,所述是否需要新哈希函数可以基于哈希函数的指示符来判断,所述哈希函数在所述区块链所存储的区块至少一个中使用。此外,所述哈希函数的指示符可以包含于所述区块链内的最终区块中。此外,所述用于实现一个以上的交易的所述区块数据可以包括所述新哈希函数的指示符。此外,所述区块数据包括所述区块链内的最终区块的哈希值及元选择符,所述元选择符可包括所述新哈希函数的指示符。此外,所述区块数据还包括附加数据字段,所述附加数据字段包含所述新哈希函数的执行代码,所述准备新哈希函数的操作可以包括如下操作:根据所述新哈希函数的指示符读取所述附加数据字段中所包含的所述执行代码。此外,所述区块数据还包括附加数据字段,所述附加数据字段包含所述新哈希函数的执行代码的位置信息,所述准备新哈希函数的操作可包括如下操作:根据所述新哈希函数的指示符,基于所述附加数据字段中所包含的所述位置信息获取所述执行代码。此外,所述准备新哈希函数的操作可包括如下操作:利用所述节点装置内的虚拟机加载所述执行代码。此外,所述执行代码可以是中间代码(bytecode)形态。

另外,本说明书提出一种节点装置的区块验证方法。所述区块验证方法可包括如下操作:获取需要验证的区块;确认所述区块中所包含的新哈希函数的指示符;根据所述新哈希函数的指示符准备所述新哈希函数的执行代码;通过所述执行代码来验证所述区块。

所述方法还可包括以下特征或其他特征。所述准备新哈希函数的执行代码的操作可以是如下操作:根据所述指示符读取所述区块内的附加数据字段所包含的所述执行代码。此外,所述准备新哈希函数的操作可以是如下操作:根据所述指示符,基于所述区块内的附加数据字段所包含的所述执行代码的位置信息来获取所述执行代码。

另外,本说明书提出一种节点装置。所述节点装置包括:通信部,其与参与区块链网络的其他节点之间进行交易及区块的接收发送;存储部,其用于存储所述交易及所述区块;以及控制部,其与所述通信部及所述存储部连接,从而对所述交易及所述区块进行处理。所述控制部可以运行区块生成程序及区块验证程序。所述区块生成程序可包括执行如下操作的代码:获取未存储于区块链的一个以上的交易;判断是否需要用于实现所述一个以上的交易的新哈希函数;准备所述新哈希函数;生成用于实现所述一个以上的交易的区块数据;通过所述新哈希函数计算所述区块数据的哈希值;生成包含所述哈希值及所述区块数据的区块;以及传送所述区块以便存储于所述区块链。所述区块验证程序可包括执行如下操作的代码:获取需要验证的区块;确认所述区块所包含的新哈希函数的指示符;根据所述新哈希函数的指示符来准备所述新哈希函数的执行代码;通过所述执行代码验证所述区块。

有益效果

根据本说明书所公开的技术,在区块链系统中可根据需要来改变基本的哈希算法。根据本说明书所公开的技术,基于交易或区块中所包含的哈希元选择符,能够向各个节点装置通知使用新哈希函数。由此,区块链系统可不通过硬分叉(hardfork)来改变密码函数,从而能够维持系统整体的稳定性并提高安全性。

附图说明

图1示出了可以使用本说明书所公开的技术的区块链系统。

图2是表示根据本说明书的实施例的区块连接的框图。

图3是表示根据本说明书的实施例的交易连接的框图。

图4是表示根据本说明书所公开的实施例节点装置生成区块的方法的流程图。

图5是可应用于本说明书所公开的技术的元选择符(metaselector)的示例图。

图6是表示根据本说明书所公开的实施例节点装置验证区块的方法的流程图。

图7是在区块链生成并验证区块的节点装置的框图。

具体实施方式

本说明书中所公开的技术可在区块链系统中使用。但是本说明书中所公开的技术并非限定于此,可以在能够使用所述技术的技术思想的全部密码装置及系统中进行使用。

在本说明书中所使用的技术术语只是为了说明特定实施例而使用的,并应注意其目的并非想要限定本说明书中所公开的技术思想。此外,在本说明书中所使用的技术术语只要没在本说明书中特别地进行其他定义,则应解释为在本说明书所公开的技术所属的领域内具有通常知识的人员通常理解的意义,不应被解释为过度广泛的意义或过度狭隘的意义。此外,如果在本说明书中所使用的技术术语是无法准确地表现本说明书所公开的技术思想的错误的技术术语,则应以本说明书所公开的技术所属的领域内具有通常知识的人员能够准确理解的技术术语来替代。此外,在本说明书中所使用的一般性术语应根据词典中所定义的意思,或者根据上下文的意思来解释,不应以过度狭隘的意思来解释。

在本说明书中所使用的,类似于第一、第二等的包含序数的术语在说明多个构成要素时可以使用,但是所述构成要素不被所述术语限定。所述术语使用的目的仅在于将一个构成要素与另一个构成要素区分。例如,在不脱离本发明的权利范围的情况下,第一构成要素可以命名为第二构成要素,类似地,第二构成要素可以命名为第一构成要素。

以下,参照附图对本说明书所公开的实施例进行详细说明,与附图标号无关,相同或类似的构成要素赋予相同的参照标号,并省略对其的重复说明。

此外,在对本说明书所公开的技术进行说明时,如果对于相关的公知技术的具体说明被判定为可能会混淆本说明书所公开的技术要旨的情况下,则省略对其的详细说明。此外,应注意附图仅仅是为了能够容易理解本说明书公开的技术思想,并不能解释为其技术思想被附图所限制。

图1示出了可以使用本说明书所公开的技术的区块链系统。

参照图1,区块链系统100是一种由多个节点110-170所构成的分散式网络(decentralizednetwork)系统。所述构成分散式网络100的节点110-170是计算机、移动终端、专用电子装置等具备计算能力的电子装置。

通常,分散式网络100能够对信息进行存储并参考,所述信息被同时向节点通知,所述节点是被称作区块链(blockchain)的区块(block)的连接束内全部参与的节点。所述节点110-170可分为:全节点(fullnode),其相互间可实现通信且负责对区块链的存储、管理与传播;轻节点(lightnode),其可只单纯地参与交易。在本说明书中只要没有另外的说明,在提及节点时,其大部分情况是指参与分散式网络,并能够执行生成、存储或验证区块链的操作的全节点,但是并不局限于此。

与所述区块链连接的各个区块(block)包括一定时间内的交易明细、即交易(transaction)。所述节点根据各自的功能对区块链进行生成、存储或验证,从而对交易进行管理。

根据实施形态的不同,所述交易可表示各种形态的交易。在一个实施例中,所述交易可以是用于表示虚拟货币的所有状态及其变动的金融交易。在一个实施例中,所述交易可以是用于表示物品的所有状态及其变动的金融交易。在所述分散式网络100中执行交易的节点可以具有一对私人密钥(privatekey)与公开密钥(publickey),所述私人密钥与公开密钥具有各自的密码关联。

图2是表示根据本说明书的实施例的区块连接的框图。

参照图2(a),区块链200是按照顺序连接的一个以上的区块210、220、230的分布式数据库的一种。所述区块链200用于对区块链系统内使用者的交易明细进行存储和管理,参与所述区块链系统的网络的各个节点生成区块,并使其与所述区块链200连接。图2中虽然示出了限制数量的区块210、220、230,但是区块链中可以包含的区块的数量并非限定于此。

所述区块链200中所包含的各个区块可以包括区块头211和区块体213。所述区块头211为了表示各个区块间的连接关系可以包括前一区块220的哈希值(hashvalue)。在所述区块链200验证是否有效的过程中,使用所述区块头211内的连接关系。所述区块体213可以包括在所述区块210中存储并管理的数据,例如,交易列表(transactionlist)或交易链(transactionchain)。

参照图2(b),所述区块头211可包括元选择符(metaselector)2111、前一区块的哈希2112、当前区块的哈希2113、随机数(nonce)2114。此外,所述区块头211可包括表示区块内的交易列表的头的根(root)2115。

所述元选择符2111可以包括在当前区块210中使用的多种选项(option)。所述元选择符2111可以包括表示单向函数的种类的识别信息,所述单向函数在当前区块的哈希2113中使用。

如上所述,所述区块链200可包括连接的一个以上的区块。所述一个以上的区块基于所述区块头211内的哈希值得到连接。所述区块头211中所包含的前一区块的哈希值2112作为之前一区块220的哈希值,是与之前一区块220中所包含的当前哈希2213相同的值。所述一个以上的区块通过各个区块头内的前一区块的哈希值而得到连续连接。参与所述分散式网络的节点基于前一区块的哈希值来验证区块的有效性,因此不可能发生恶意的单一节点对已生成的区块的内容进行伪造或更改的行为,所述前一区块的哈希值包含于所述一个以上的区块。

根据在本说明书中所公开的实施例的区块处理方法可基于所述元选择符2111来决定单向函数,所述单向函数用于实现区块链中所包含的工作量验证(proofofwork)或权益证明(proofofstake)。所述元选择符2111可以称作元版本选择符(mvs;metaversionselector)。在本说明书中,所述元选择符2111虽然被说明为表示所述单向函数的信息,但是除此之外,可以实现为能够包括区块链系统的其他元信息。所述元选择符的示例参照图4在下文详述。

在一个实施形态中,所述区块头211可包含附加数据(extradata)2116字段(field)。所述附加数据2116字段根据所述元选择符2111可以包含所述单向函数的执行代码。此外,所述附加数据2116字段根据所述元选择符2111可以包含表示所述单向函数的执行代码的位置的地址等位置信息。所述节点装置参照所述位置信息可获取所述执行代码。

所述区块体213可包括交易列表2131。所述交易列表2131是基于区块链的交易的目录。例如,所述交易列表2131可包括金融交易的记录,所述金融交易在基于所述区块链的金融系统中实现。所述交易列表2131可以表现为树(tree)形态,例如,将用户a向用户b传送的金额记录为目录形态,且区块内的存储长度基于当前区块中所包含的交易的数量可得到增减。

参与分散式网络的节点具有相同的区块链,区块中存储有相同的交易。包含交易目录的区块在网络中被共享,因此全部参与者可进行验证。参照图3对交易列表进行说明。

图3是表示根据本说明书的实施例的交易连接的框图。

参照图3说明的交易目录300是连接一个以上的交易310、320、330的集合。所述一个以上的交易分别可以包括前一交易的哈希、接收者信息、汇款额及发送者的签名。所述接收者信息可以是所述接收者的公开密钥。

所述交易目录通过所述前一交易的哈希而依次连接。图3的示例性的交易目录包括:用户a向用户b进行汇款交易的交易310;用户b向用户c进行汇款交易的交易320;用户c向用户d进行汇款交易的交易330。

就用户b向用户c进行汇款交易的示例性的交易n320而言,可包括相当于前一交易的哈希321的交易n-1310的哈希321、作为接收者的用户c的公开密钥322、汇款额323。

此外,所述交易n320可包括作为发送者的用户b的签名325。所述发送者的签名325可以是将哈希值324作为发送者的私人密钥签名的值,所述哈希值324通过输入所述前一交易的哈希321、接收者的公开密钥322、汇款额323来计算。这是因为有可能生成从其他人的账户向自己的账户虚假汇款交易,为了对此进行防范,因此包括签名,所述签名通过求出用于验证的角的哈希值,并利用汇款人的私人密钥而生成。此后,所述汇款人的签名在验证过程中通过参与网络的节点可以得到验证。

在区块链系统中能够使用的新货币通过挖掘(mining)来发行,挖掘是指验证交易的有效性的过程。所述验证过程是向找出满足特定条件的随机数(nonce),并生成区块的节点提供奖励的方式,其可以被称作工作量证明(proofofwork)。

例如,就所述挖掘过程而言,将前一区块哈希值、交易信息及随机数作为输入值来执行相当于单向函数(one-wayfunction)的哈希函数,从而直到找出满足特定条件的哈希值(hashvalue)时为止,可以反复进行。所述满足特定条件的哈希值的数量受到限制,因此整个基于区块链的金融系统中所发行的货币供应量得以受限。

如上所述,在分散式架构的区块链系统中,在特定节点装置相比其他节点具有十分优秀的高运算能力的情况下,作为十分高性能的节点可以首先进行工作量证明,由此可能发生垄断基于区块链的系统的挖掘过程的问题。例如,在挖掘过程中,由专业化的asic构成的节点装置相比常规的电子装置能够垄断工作量证明。

在分散式环境下,当由超高性能的专业挖掘设备所构成的部分节点垄断硬币的挖掘过程时,整个系统的可信度可能下降。此时,通过对垄断挖掘和哈希计算力(hashpower)的提供进行分散,从而能够提高区块链的可信度和安全性。

在为了实现区块链而只使用一种单向函数的情况下,能够开发并推广用于此的专门挖掘设备。因此,如果在区块链系统中能够使用多种单向函数,则可以降低开发利用asic等的超高性能专用挖掘设备可能性。由常规设备所形成的各种计算节点(computingnode)参与哈希验证时,区块链的可信度和安全性能够得到强化。

除了所述单向函数之外,例如,区块链系统的区块生成周期缩短、临时交易过载处理、用于参与的节点的系统稳定性的政策的变更、与连接于当前区块链的侧链(sidechain)(出于其他用途所制造的区块链)的联系性相关的信息、当前的参与节点的sw改进信息及发布(release)信息的通知等meta信息得以变更。此时,可能发生必须使用新版软件方可的硬分叉(hardfork)问题。为此,本说明书公开了一种技术,在避免硬分叉的问题的同时能够选择性地使用多种元(meta)信息。

图4是表示根据本说明书所公开的实施例节点装置生成区块的方法的流程图。

节点装置通过区块链系统的网络可以获取未存储至区块链的一个以上的交易410。参与区块链网络的节点为了以预先确定的时间内发生的交易为对象生成区块,能够执行哈希函数等单向函数运算。所述节点装置通过分散式网络能够执行下一操作,所述下一操作用于以接收的所述一个以上的交易为对象生成区块。

所述节点装置能够判断是否需要新哈希函数,所述新哈希函数用于实现所述一个以上的交易420。

在一个实施例中,所述节点装置以所述一个以上的交易的至少一部分为基础,能够判断是否需要所述新哈希函数。为此,就所述区块链系统而言,当在系统中进行使用的特性变更的情况下,能够预先决定用于对其进行表示的特定交易的形态。在一个例子中,所述节点装置在接收的交易中包括管理钱包(例如,被定为软件维护器(swmaintainer)的参与者的钱包账号)参与的交易的情况下,可以将其视为用于变更所述区块链系统的特性(例如,使用新哈希函数)的消息(message)。换句话说,所述节点装置在接收的交易中包括从软件管理员指定的地址向自己的地址或其他地址进行象征性特定价格(例如,0.1硬币等)的交易的情况下,基于此可以视为需要新哈希函数。

在一个实施例中,所述节点装置出于安全上的原因,包括多个管理钱包参与的交易的情况下,可以将其视为表示所述区块链系统发生特性变更的消息。

另外,在一个实施例中,管理节点通过执行以下操作能够对区块链系统的功能更新进行通知:生成管理交易,所述管理交易包含预先指定的管理节点的钱包地址;为了对区块链系统的功能更新进行通知,向参与区块链网络的其他节点传送所述管理交易。

在另一个实施例中,所述节点装置基于哈希函数的指示符可判断是否需要所述新哈希函数,所述哈希函数是在存储于所述区块链的区块中至少一个中所使用的。例如,所述节点装置确认所存储的区块链上的最终区块中使用了与自己正使用的哈希算法不同的算法的情况下,基于此能够视为需要新哈希函数。此时,所述节点装置能够参考在所述最终区块中所使用的新哈希函数的指示符。

通过以上的判断视为使用了与之前相同的哈希算法的情况下,所述节点装置能够继续使用从前使用的算法。

所述节点装置在所述判断结果为需要新哈希函数的情况下,能够准备所述新哈希函数430。所述新哈希函数预先设置于所述节点装置的情况下,所述节点装置能够将所述新哈希函数简单地指定为使用中的哈希函数并使其执行。此外,所述节点装置存储有所述新哈希函数的执行代码的情况下,所述节点装置能够使其安装并运行。此外,所述节点装置掌握所述新哈希函数的位置信息的情况下,参照所述位置信息并下载执行代码后能够使其安装并运行。对此将参照图5在下文详述。

此外,就所述节点装置准备所述新哈希函数的操作而言,可以包括如下操作:利用所述节点装置内的虚拟机对所述执行代码进行加载。所述执行代码可以是中间代码(bytecode)形态。所述执行代码可以被称作dapp(分散式应用程序,decentralizedapplication)。

所述节点装置可以生成区块数据,所述区块数据用于实现所述一个以上的交易440。所述节点装置生成参照图2及图3进行说明的区块。所述节点装置生成的区块可以分为区块头及区块体。在一个实施例中,为了将要执行验证作业的另一节点装置,在所述区块头中可以包括指示符(indicator),所述指示符是将要对当前区块的哈希进行计算的所述新哈希函数的指示符。上一步骤中生成的区块数据在之后通过所述新哈希函数的输入得以使用,所述新哈希函数的输入为了求出所述区块的当前哈希值而执行。因此,所述区块数据可以包括前一哈希值,所述前一哈希值用于表示与所述区块链内的最终区块的连接。此外,所述区块数据可以包括元选择符(metaselector),所述元选择符包括新哈希函数的指示符(indicator)。

在一个实施例中,所述节点装置生成的区块数据可以进一步包括附加数据字段,所述附加数据字段包括所述新哈希函数的执行代码。此情况下,所述准备新哈希函数的操作430可包括如下操作:根据所述新哈希函数的指示符读取所述附加数据字段中所包含的所述执行代码。

在一个实施例中,所述节点装置生成的所述区块数据可进一步包括附加数据字段,所述附加数据字段包括所述新哈希函数的执行代码的位置信息。此情况下,所述准备新哈希函数的操纵430可包括如下操作:根据所述新哈希函数的指示符以所述附加数据字段中所包含的所述位置信息为基础来获取所述执行代码。

所述节点装置通过执行所述新哈希函数,从而计算所述区块数据的哈希值450。此后,所述节点装置生成包含所述当前区块的哈希值及所述区块数据的区块460。此后,所述节点装置为了将生成的所述区块存储于所述区块链,能够向区块链网络传送生成的所述区块470。

图5是可应用于本说明书所公开的技术的元选择符(metaselector)的示例图。参照图5对可应用于元选择符的形式进行说明。

作为一个实施例,所述元选择符可以是特定长度的选择符字段(selectorfield)形态。例如参照图5的(a),所述元选择符字段值511可以识别预先确定的单向函数的种类。例如,所述元选择符字段值具有如4字节(byte)的0x00000000或0xffffffff的特定值的情况下,可以是表示在所述区块链系统中基本使用的哈希算法(blockhashalgorithm)的。

作为一个实施例,所述元选择符可以由特定长度的选择符字段及参数构成。例如参照图5的(b),所述元选择符可以是包括特定长度的选择符字段521及一个以上参数522、523的形态。此情况下,所述选择符字段521对预先确定的单向函数的种类进行识别,所述一个以上的参数522、523可以是所述单向函数所需的参数。所述一个以上的参数的数量不限于图5所示的两个。

作为一个实施例,所述元选择符可以由特定长度的选择符字段及可变参数构成。例如参照图5的(c),所述元选择符可以包括特定长度的选择符字段531、长度信息532及数据533。例如,作为所述选择符字段531表示的预先确定的单向函数所需的参数,可以提供所述长度532表示的大小的所述数据533。

作为一个实施例,基于所述元选择符所包含的选择符字段的至少一部分,能够决定其余元选择符的格式。例如,基于组成所述元选择符的最高有效字节的两字节的值,能够决定其余元选择符两字节的数据特性是否如图5所说明的,被用作选择符字段值,或者被用作一个以上的参数,又或者被用作长度信息及数据。

作为一个实施例,基于所述元选择符值的至少一部分的数据,在工作量验证或区块生成步骤中,可以指示参照包括有所述元选择符的区块内其余字段。例如,根据所述元选择符用于所述单向函数的字段可以是参照图2的(b)所说明的附加数据(extradata)2116字段。例如,所述元选择符的上一字节并非0x00而是其他值的情况下,处理所述元选择符的节点装置以附加数据字段为基础来确认区块链系统的变更事项或软件更新等通知,并可以对其进行应用,所述附加数据字段是包含所述元选择符的区块数据内的其他字段。

作为一个实施例,当所述元选择符字段的值是预先定义的值的情况下,所述节点装置可以将与所述预先定义的值相对应的单向函数确定为用于生成或验证区块的算法。此情况下,所述预先定义的值可以视为类似于所述单向函数的标识符。所述节点装置在区块链系统上存在对所述单向函数的标识符的变更的情况,使得所述预先定义的值的变动存储于所述节点装置的本地存储器,此后在需要执行所述单向函数的情况下可以对此进行参照。

作为一个实施例,所述节点装置接收到未知的单向函数的识别号码的情况下,所述节点装置将其判断为新算法,并对区块数据内的特定字段(例如,附加数据字段)所包含的地址(url;uniformresourcelocator)或所述新算法的(字节码形态的)执行代码进行存储,此后在需要执行所述单向函数的情况下可以对此进行参照。

在以上实施例中,所述区块数据的所述单向函数的执行代码无法在所述区块的特定字段(例如,附加数据(extradata)字段)中存储的情况下,以所述特定字段所存储的dapp的位置信息为基础,对执行包含所述单向函数的工作量验证或权益证明作业的dapp进行接收,通过所述节点装置内虚拟机能够执行工作量验证或权益证明作业。

图6是表示根据本说明书所公开的实施例节点装置验证区块的方法的流程图。对于与参照前面的附图所说明内容重复的部分将省略详细说明。

执行验证的节点装置通过区块链网络接收需要验证的区块610。所述节点装置对所述区块所包含的新哈希函数的指示符进行确认620。所述节点装置以所述区块所包含的元选择符字段或所述元选择符字段所包含的新哈希函数的指示符为基础,可以判断为了验证所述区块是否需要新哈希函数。

如果,判断为为了验证所述区块而需要新哈希函数的情况下,所述节点装置根据所述新哈希函数的指示符准备所述新哈希函数的执行代码630。在一个实施例中,所述节点装置准备所述新哈希函数的执行代码的操作可以是如下操作:根据所述指示符读取所述执行代码,所述执行代码包含于所述区块内的附加数据字段。在一个实施例中,所述节点装置准备所述新哈希函数的执行代码的操作可以是如下操作:根据所述指示符并基于所述执行代码的位置信息来获取所述执行代码,所述执行代码包含于所述区块内的附加数据字段。

所述节点装置通过所述执行代码来验证所述区块640。

图7是在区块链生成并验证区块的节点装置的框图。

参照图7,节点装置700可以包括:通信部710,其用于收发与参与区块链网络的其他节点的交易及区块;存储部720,其用于存储所述交易及所述区块;以及控制部730,其与所述通信部及所述存储部连接,从而对所述交易及所述区块进行处理。

所述控制部730执行区块生成程序及区块验证程序,所述区块生成程序可包括执行如下操作的代码:获取未存储于区块链的一个以上的交易;判断是否需要用于实现所述一个以上的交易的新哈希函数;准备所述新哈希函数;生成用于实现所述一个以上的交易的区块数据;通过所述新哈希函数计算所述区块数据的哈希值;生成包含所述哈希值及所述区块数据的区块;为了在所述区块链中存储而传送所述区块。

所述区块验证程序可以包括执行如下操作的代码:获取需要验证的区块;确认所述区块所包含的新哈希函数的指示符;根据所述新哈希函数的指示符准备所述新哈希函数的执行代码;通过所述执行代码验证所述区块。

除此之外,所述节点装置700能够执行本说明书所公开的各种方法。

本发明的范围并非限定于本说明书所公开的实施例,本发明能够在本发明的思想及权利要求范围所记载的范围内以各种形态进行修改、变更或改进。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1