CN108960797B - 区块生成及验证方法、装置、设备和存储介质 - Google Patents
区块生成及验证方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN108960797B CN108960797B CN201810790428.9A CN201810790428A CN108960797B CN 108960797 B CN108960797 B CN 108960797B CN 201810790428 A CN201810790428 A CN 201810790428A CN 108960797 B CN108960797 B CN 108960797B
- Authority
- CN
- China
- Prior art keywords
- block
- transaction data
- fee
- identifier
- signature identifier
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/085—Payment architectures involving remote charge determination or related payment systems
- G06Q20/0855—Payment architectures involving remote charge determination or related payment systems involving a third party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明实施例公开了区块生成及验证方法、装置、设备和存储介质,该方法包括:获取并处理第一事务请求得到第一事务数据,生成第一事务数据的基础签名标识添加至区块;根据第一事务请求的处理确定回退费用,生成将回退费用转移至设定账户的第二事务请求;处理第二事务请求得到第二事务数据,生成第二事务数据的附加签名标识添加至区块;建立基础签名标识和附加签名标识之间的关联;将区块在区块链网络中传输,其他节点根据关联的签名标识对第二事务数据进行验证。采用上述技术方案,能够避免用户承担高于实际所需的手续费,同时提供了对第二事务数据进行验证的方案,优化了区块链网络中的费用支付方案。
Description
技术领域
本发明实施例涉及区块链技术领域,尤其涉及区块生成及验证方法、装置、设备和存储介质。
背景技术
在当前以UTXO(Unspent Transaction Output,未花费的交易输出)为代表的区块链中,采用可读字段形成事务请求。用户可以在事务请求中填写费用金额,区块链节点在处理该事务请求后会从用户账户中扣除该费用金额。
对于可读字段事务请求中嵌入有智能合约代码段的情况,区块链节点通过调用虚拟机来运行智能合约。虚拟机一般按照运行的步数确定工作量,进而确定需要收取的费用。可见针对智能合约收取的费用是无法预先确定的。智能合约的运行需要消耗大量的资源,因此可能需要高昂的费用。
在现有模型下,如果用户填写的费用金额大于实际运行智能合约所需的费用金额,则可顺利执行智能合约。如果用户填写的费用金额小于实际运行智能合约所需的费用金额,那么智能合约将被拒绝执行,且因为虚拟机已经运行过智能合约了,因此用户填写的费用金额也会被扣除,为用户带来了损失。
为了保证智能合约的顺利运行,用户会填写一个很大的费用金额,该种方式虽然可以在一定程度上保证智能合约被执行,但是并不是所有情况下用户都需要支付较大的费用金额,也即现有的费用支付方案存在不合理性。
发明内容
本发明实施例提供一种区块生成及验证方法、装置、设备和存储介质,以优化区块链网络中的费用支付方案。
第一方面,本发明实施例提供了一种区块生成方法,应用于区块生成节点,该方法包括:
获取第一事务请求并进行处理,得到第一事务数据,生成所述第一事务数据的基础签名标识,添加到区块中;
根据所述第一事务请求的处理确定回退费用,并生成将所述回退费用转移至设定账户的第二事务请求;
处理所述第二事务请求,得到第二事务数据,生成所述第二事务数据的附加签名标识,添加到区块中;
建立所述基础签名标识和附加签名标识之间的关联关系;
将所述区块在区块链网络中传输,以通知其他节点根据关联的所述基础签名标识和附加签名标识对回退费用的第二事务数据进行验证。
第二方面,本发明实施例还提供了一种区块验证方法,应用于区块链网络节点,该方法包括:
接收区块生成节点发送的区块,并获取所述区块中的第一事务数据;
从所述区块中获取第一事务数据的基础签名标识;
根据基础签名标识获取关联的附加签名标识;
根据所述附加签名标识确定对应的第二事务数据,其中,所述第二事务数据用于向设定账户转移回退费用;
根据所述第一事务数据对所述第二事务数据进行验证。
第三方面,本发明实施例还提供了一种区块生成装置,配置于区块生成节点,该装置包括:
基础签名标识生成模块,用于获取第一事务请求并进行处理,得到第一事务数据,生成所述第一事务数据的基础签名标识,添加到区块中;
第二事务请求生成模块,用于根据所述第一事务请求的处理确定回退费用,并生成将所述回退费用转移至设定账户的第二事务请求;
附加签名标识生成模块,用于处理所述第二事务请求,得到第二事务数据,生成所述第二事务数据的附加签名标识,添加到区块中;
关联关系建立模块,用于建立所述基础签名标识和附加签名标识之间的关联关系;
区块传输模块,用于将所述区块在区块链网络中传输,以通知其他节点根据关联的所述基础签名标识和附加签名标识对回退费用的第二事务数据进行验证。
第四方面,本发明实施例还提供了一种区块验证装置,配置于区块链网络节点,该装置包括:
第一事务数据获取模块,用于接收区块生成节点发送的区块,并获取所述区块中的第一事务数据;
基础签名标识获取模块,用于从所述区块中获取第一事务数据的基础签名标识;
附加签名标识获取模块,用于根据基础签名标识获取关联的附加签名标识;
第二事务数据确定模块,用于根据所述附加签名标识确定对应的第二事务数据,其中,所述第二事务数据用于向设定账户转移回退费用;
第二事务数据验证模块,用于根据所述第一事务数据对所述第二事务数据进行验证。
第五方面,本发明实施例还提供了一种电子设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明第一方面实施例所提供的一种区块生成方法。
第六方面,本发明实施例还提供了一种电子设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明第二方面实施例所提供的一种区块验证方法。
第七方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明第一方面实施例所提供的一种区块生成方法。
第八方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明第二方面实施例所提供的一种区块验证方法。
本发明实施例中,区块生成节点获取并处理第一事务请求得到第一事务数据及相应的基础签名标识后添加至区块;根据第一事务请求的处理确定回退费用,并生成将回退费用转移至设定账户的第二事务请求;处理该第二事务请求得到第二事务数据及相应的附加签名标识后添加至区块;建立基础签名标识和附加签名标识之间的关联关系;将区块传输至区块链网络以通知其他节点根据关联的签名标识对回退费用的第二事务数据进行验证。采用上述技术方案,通过在区块生成过程中引入费用回退机制,能够避免用户承担高于实际所需的手续费,同时其他节点可以根据具有关联关系的基础签名标识和附加签名标识对回退费用的第二事务数据进行验证,区块链网络中的费用支付方案得到了优化。
附图说明
图1是本发明实施例一中的一种区块生成方法的流程示意图;
图2是本发明实施例二中的一种区块生成方法的流程示意图;
图3是本发明实施例三中的一种区块生成方法的流程示意图;
图4是本发明实施例四中的一种区块验证方法的流程示意图;
图5是本发明实施例五中的一种区块验证方法的流程示意图;
图6是本发明实施例六中的一种区块验证方法的流程示意图;
图7是本发明实施例七中的一种区块生成装置的结构示意图;
图8是本发明实施例八中的一种区块验证装置的结构示意图;
图9为本发明实施例九提供的一种电子设备的硬件结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一中的一种区块生成方法的流程示意图。本实施例适用于区块链网络中区块生成节点处理事务请求时,将用户所支付的超出处理该事务请求所需的手续费的多余费用退回的情况。区块链网络可以是公有链、联盟链或私有链,区块链网络通常都会包括多个节点,节点基于共识机制会取得区块生成权成为区块生成节点。该方法可以由区块生成装置执行,该装置由软件和/或硬件实现,并具体配置于承载区块生成节点的设备中,示例性地,承载区块生成节点的设备可以是服务器、移动终端或服务器集群等电子设备。如图1所示的区块生成方法,应用于区块生成节点,该方法包括:
S110、获取第一事务请求并进行处理,得到第一事务数据,生成所述第一事务数据的基础签名标识,添加到区块中。
其中,第一事务请求可以是UTXO形式的可读字段事务请求,还可以是以太坊(EVM)为代表的代码段形式的智能合约,或者还可以是两种形式结合的事务请求,即在可读字段形式的事务请求中嵌入有智能合约的事务请求。
需要说明的是,区块的数据结构包括区块头和区块体。其中,区块生成节点获取到用户在区块链网络所发起的第一事务请求时,对该第一事务请求进行处理生成第一事务数据存储至区块体中;区块生成节点基于第一事务数据通过哈希签名计算得到基础签名标识存储至区块头中。
S120、根据所述第一事务请求的处理确定回退费用,并生成将所述回退费用转移至设定账户的第二事务请求。
其中,第一事务请求中包括用户发起第一事务请求时所填写的费用金额。
其中,根据所述第一事务请求的处理确定回退费用,可以是:区块生成节点根据处理该第一事务请求的时间、资源占有量以及工作量中的至少一个,确定用户实际所需支付的手续费,进而根据填写的费用金额与确定的手续费之间的差值确定回退费用。
区块生成节点根据回退费用、区块生成节点的账户以及设定账户生成需要将回退费用从区块生成节点的账户转移至设定账户的第二事务请求。其中,设定账户为第一事务请求发起者的账户。
S130、处理所述第二事务请求,得到第二事务数据,生成所述第二事务数据的附加签名标识,添加到区块中。
区块生成节点处理其自身所生成的第二事务请求,并生成第二事务数据存储至区块的区块体中;区块生成节点基于第二事务数据通过哈希签名计算得到附加签名标识,添加到区块的区块头中。
S140、建立所述基础签名标识和附加签名标识之间的关联关系。
区块生成节点通过建立基础签名标识与附加签名标识之间的关联关系,使得其他区块链网络节点获取到基础签名标识或者附加签名标识时,能够根据该关联关系获取到相应的附加签名标识或基础签名标识。
S150、将所述区块在区块链网络中传输,以通知其他节点根据关联的所述基础签名标识和附加签名标识对回退费用的第二事务数据进行验证。
当区块生成节点生成区块后,会将区块连接到本地存储的区块链中,然后将区块传输至区块链网络中,使得区块链网络中的其他节点能够基于共识机制对区块生成节点所生成的区块数据加以验证。其中,区块数据包括第一事务数据和第二事务数据。
需要说明的是,区块生成节点在生成第二事务请求后,还可以将第二事务请求在区块链网络中传输,接收到区块生成节点发送的第二事务请求和区块的其他节点对第二事务数据的验证可以包括:通过处理接收到的第二事务请求得到事务数据,并将该事务数据通过哈希计算获得的事务标识与区块中的附加签名标识进行比对;其他节点对第二事务数据的验证还可以包括:根据第一事务数据对第二事务数据中的回退费用的金额和/或参与方进行验证,具体验证方法可以参见后续区块验证方法的实施例。
本发明实施例通过区块生成节点获取并处理第一事务请求得到第一事务数据及相应的基础签名标识添加至区块;根据第一事务请求的处理确定回退费用,并生成将回退费用转移至设定账户的第二事务请求;处理该第二事务请求得到第二事务数据及相应的附加签名标识添加至区块;建立基础签名标识和附加签名标识之间的关联关系;将区块传输至区块链网络以通知其他节点根据关联的签名标识对回退费用的第二事务数据进行验证。采用上述技术方案,通过在区块生成过程中引入费用回退机制,能够避免用户承担高于实际所需的手续费,同时其他节点可以根据具有关联关系的基础签名标识和附加签名标识对回退费用的第二事务数据进行验证,区块链网络中的费用支付方案得到了优化。
实施例二
图2是本发明实施例二中的一种区块生成方法的流程示意图。本发明实施例在上述各实施例的技术方案的基础上进行了细分优化。
进一步地,第一事务请求为嵌入有智能合约的第一事务请求,相应的,将特征“根据所述第一事务请求的处理确定回退费用”细化为“运行所述智能合约,确定运行所述智能合约所需支付的第一费用金额;其中,所述第一事务请求中包含第二费用金额;若所述第一费用金额小于所述第二费用金额,则确定所述第二费用金额和第一费用金额的差值为所述回退费用”,以优化回退费用的确定机制,便于在区块生成之后,区块链网络节点能够对第二事务请求中的回退费用的金额加以验证。
进一步地,将特征“生成将所述回退费用转移至设定账户的第二事务请求”细化为“生成从区块生成节点的账户向第一事务请求发起者账户转移回退费用的第二事务请求”,以限定第二事务请求的内容,便于在区块生成之后,区块链网络节点能够对回退费用的参与方加以验证。
如图2所示的区块生成方法,具体包括:
S210、获取第一事务请求并进行处理,得到第一事务数据,生成所述第一事务数据的基础签名标识,添加到区块中。
其中,第一事务请求为嵌入有智能合约的第一事务请求。具体的,第一事务请求为在可读字段形式的事务请求中在至少一个字段中嵌入了至少一个智能合约代码。
需要说明的是,区块生成节点获取第一事务请求并进行处理,得到的第一事务数据可以理解为处理字段内容所形成的事务数据,并将第一事务数据通过哈希计算产生基础签名标识。
S221、运行所述智能合约,确定运行所述智能合约所需支付的第一费用金额;其中,所述第一事务请求中包含第二费用金额。
其中,第二费用金额为第一事务请求发起者在第一事务请求的费用字段中所填写的费用金额。
区块生成节点在生成第一事务数据之后,按照设定顺序运行第一事务请求所包含的各智能合约;根据运行所有智能合约过程中虚拟机所执行的步数确定工作量;区块生成节点根据工作量确定第一事务请求发起者所需支付的手续费作为第一费用金额。
当然,区块生成节点还可以针对每个智能合约的运行过程中虚拟机所执行的步数确定工作量,并根据各工作量确定每个智能合约运行时用户所需支付的子费用,并通过计算各子费用的和值作为第一费用金额。
需要说明的是,在运行智能合约之后,还可以将各智能合约的运行结果存储至区块的区块体中,并通过对各运行结果分别进行哈希计算产生对应的运行结果签名标识存储至区块头中。
S222、若所述第一费用金额小于所述第二费用金额,则确定所述第二费用金额和第一费用金额的差值为所述回退费用。
当第一费用金额小于第二费用金额时,表明第一事务请求发起者所填写的费用金额超出了区块生成节点处理该用户所发起的第一事务请求所需的支付金额。此时,区块生成节点将会根据第一费用金额与第二费用金额的差值确定回退费用;区块生成节点会将该回退费用返还至用户,以保证用户支付费用的合理性。
S230、生成从区块生成节点的账户向第一事务请求发起者账户转移回退费用的第二事务请求。
区块生成节点根据回退费用、区块生成节点自身的账户以及第一事务请求发起者的账户,生成从区块生成节点的账户,向第一事务请求发起者账户转移回退费用的第二事务请求。
S240、处理所述第二事务请求,得到第二事务数据,生成所述第二事务数据的附加签名标识,添加到区块中。
区块生成节点基于第二事务请求中所包含的区块生成节点这一费用转出账户、第一事务请求发起者这一费用转入账户以及回退费用这一待转移金额,执行将区块生成节点的账户中转移与回退费用等额的金额至第一事务请求发起者账户的处理操作,并得到第二事务数据。区块生成节点将第二事务数据进行哈希计算产生附加签名标识存储至区块的区块头中。
S250、建立所述基础签名标识和附加签名标识之间的关联关系。
需要说明的是,当区块头中还存储有智能合约的运行结果签名标识时,区块生成节点在建立基础签名标识与附加签名标识之间的关联关系时,还会同时建立基础签名标识与运行结果签名标识之间的关联关系。
S260、将所述区块在区块链网络中传输,以通知其他节点根据关联的所述基础签名标识和附加签名标识对回退费用的第二事务数据进行验证。
本发明实施例通过运行智能合约确定第一费用金额,并根据第二费用金额与第一费用金额的差值确定回退费用,便于在区块生成之后,区块链网络节点能够对第二事务请求中的回退费用的金额加以验证;通过限定第二事务请求中所包含的区块生成节点的账户以及第一事务请求发起者的账户,便于在区块生成之后,区块链网络节点能够对回退费用的参与方加以验证。
实施例三
图3是本发明实施例三中的一种区块生成方法的流程示意图,本发明实施例在上述各实施例的技术方案的基础上进行了细分优化。
进一步地,将特征“建立所述基础签名标识和附加签名标识之间的关联关系”细化为“将所述基础签名标识和所述附加签名标识关联存储在所述区块的区块头中的标识数组中”,以完善基础签名标识与附加签名标识之间的对应关系。
如图3所示的区块生成方法,具体包括:
S310、获取第一事务请求并进行处理,得到第一事务数据,生成所述第一事务数据的基础签名标识,添加到区块中。
S320、根据所述第一事务请求的处理确定回退费用,并生成将所述回退费用转移至设定账户的第二事务请求。
示例性地,根据所述第一事务请求的处理确定回退费用,可以是:运行所述第一事务请求中的智能合约,确定运行所述智能合约所需支付的第一费用金额;其中,所述第一事务请求中包含第二费用金额;若所述第一费用金额小于所述第二费用金额,则确定所述第二费用金额和第一费用金额的差值为所述回退费用。
示例性地,生成将所述回退费用转移至设定账户的第二事务请求,可以是:生成从区块生成节点的账户向第一事务请求发起者账户转移回退费用的第二事务请求。
S330、处理所述第二事务请求,得到第二事务数据,生成所述第二事务数据的附加签名标识,添加到区块中。
S340、将所述基础签名标识和所述附加签名标识关联存储在所述区块的区块头中的标识数组中。
由于基础签名标识和附加签名标识均是采用哈希算法将数据压缩成由数字和字母组合成的散列字符串。因此,为了将基础签名标识和附件签名标识加以区分,区块生成节点在存储附加签名标识或基础签名标识时,会设定相应的预置位。其中,预置位可以是某个字节或某个特殊位。示例性地,当签名标识的预置位为预设字符时,表明当前的签名标识为附加签名标识。其中,将所述基础签名标识和所述附加签名标识关联存储在所述区块的区块头中的标识数组中,可以是:将所述基础签名标识和所述附加签名标识,在所述区块的区块头中的标识数组中按照设定位置关系进行存储。
示例性地,当区块中存在一个标识数组时,区块生成节点在生成附加签名标识后,将附加签名标识直接存储至与之对应的基础签名标识存储位置之前或之后的连续的存储空间。优选地,附加签名标识存储在相应的基础签名标识存储位置之后的连续的存储空间。其中,本领域技术人员可以根据需要设置相应的预置位,以对基础签名标识和附加签名标识加以区分。
其中,将所述基础签名标识和所述附加签名标识关联存储在所述区块的区块头中的标识数组中,还可以是:在所述区块的区块头中的标识数组中存储所述基础签名标识和所述附加签名标识,以及所述基础签名标识和所述附加签名标识之间的索引信息。
示例性地,当区块中存在两个标识数组时,区块生成节点可以在生成第一事务数据后,将基础签名标识存储在基础签名标识数组中;将相应的附加签名标识存储至附加签名标识数组中。其中,附加签名标识数组中各附加签名标识可以单独设置第一预置位,用于标识该数组用于存储各附加签名标识。
示例性地,当区块中存在两个标识数组时,区块生成节点可以在生成第一事务数据后,将基础签名标识存储在基础签名标识数组中;将相应的附加签名标识的存储位置存储在索引数组中。其中,该区块中的各附加签名标识可以散列的存储在区块头中的任意存储位置。
示例性地,当区块中存在至少三个标识数组时,区块生成节点可以在生成并存储第一事务数据后,将基础签名标识存储在基础签名标识数组中;将与基础签名标识相对应的附加签名标识的存储位置依次添加在索引数组中;相应的,各附加签名标识可以顺序存储在附加签名标识数组中。
需要说明的是,当区块的区块头中还包含其他签名标识,例如可以是各智能合约运行结果经哈希计算所生成的运行结果签名标识时,还可以重新建立各运行结果签名标识与基础签名标识的第二关联关系,或者建立各运行结果签名标识与附加签名标识的第三关联关系。
其中,建立第二关联关系或第三关联关系的方法,可以是:在基础签名标识或附加签名标识之前或之后的连续的存储空间,顺序存储相应的运行结果签名标识;还可以是重新添加运行结果签名标识数组,用于依照第一事务数据所嵌入的智能合约的嵌入顺序或运行顺序,将相应的运行结果依次存储在运行结果签名标识数组中;还可以重新添加运行结果签名标识数组以及第二索引数组,其中,第二索引数组用于存储各运行结果签名标识所对应的基础签名标识或附加签名标识的存储位置,或者用于存储与基础签名标识或附加签名标识所对应的各运行结果签名标识所对应的存储位置。
需要说明的是,第二索引数组可以是上述索引数组中的一部分存储区域,或者是区别于上述索引数组所创建的另一新的数组。
优选地,采用基础签名标识与附加签名标识连续存储的方式,这样在标识数组中查找到基础签名标识时,就能够立即获得后续的附加签名标识,提高了查询效率,也减少了所需的索引数据。
S350、将所述区块在区块链网络中传输,以通知其他节点根据关联的所述基础签名标识和附加签名标识对回退费用的第二事务数据进行验证。
本发明实施例通过细化基础签名标识与附加签名标识关联关系建立操作,丰富了区块生成方法,便于在区块生成之后,区块链网络节点可以通过基础签名标识能够对应查找到相应的附加签名标识,以对第二事务数据加以验证。
实施例四
图4是本发明实施例四中的一种区块验证方法的流程示意图。本发明实施例适用于区块链网络中的其他节点对区块生成节点所生成的区块加以验证的情况。该方法可以由区块验证装置执行,该装置由软件和/或硬件实现,并具体配置于承载区块链网络节点的设备中。
其中,区块链网络节点可以理解为参与到区块链所包含的各区块的生成、存储和/或验证等过程的具备一定的数据处理能力的节点。示例性地,承载区块链网络节点的设备可以是服务器、移动终端或服务器集群等电子设备。区块链网络节点可以是具备完全存储能力的常规区块链网络节点,还有可以是轻量级节点。
如图4所示的区块验证方法,应用于区块链网络节点,包括:
S410、接收区块生成节点发送的区块,并获取所述区块中的第一事务数据。
其中,第一事务数据可以是包含UTXO形式的可读字段事务请求的事务数据,还可以是包含以太坊(EVM)为代表的代码段形式的智能合约的事务数据,或者还可以是包含两种形式结合的事务请求的事务数据,即在可读字段形式的事务请求中嵌入有智能合约的事务请求。
当区块生成节点生成区块后,会将区块连接到本地存储的区块链中,然后将区块传输至区块链网络中,使得区块链网络中的其他节点能够基于共识机制对区块生成节点所生成的区块数据加以验证。
需要说明的是,当区块链网络节点为轻量级节点时,通过向区块生成节点发送区块获取请求来主动获取区块。
S420、从所述区块中获取第一事务数据的基础签名标识。
当区块链网络节点接收到该区块后,可以对第一事务数据进行验证。具体的,区块链网络节点会对第一事务请求进行处理以生成事务数据,并通过对生成的事务数据重新进行哈希计算以确定对应的事务标识;根据所计算的事务标识与基础签名标识进行比对验证,以确定区块中第一事务数据的正确性。具体的,当计算的事务标识与基础签名标识相一致,则表明区块中存储的第一事务数据正确。
当验证区块中存储的第一事务数据正确之后,会从区块体中获取第一事务数据。
S430、根据基础签名标识获取关联的附加签名标识。
由于区块生成节点预先建立了区块中基础签名标识与附加签名标识之间的关联关系。因此,区块链网络节点可以基于该预先建立的关联关系,获取与基础签名标识相对应的附加签名标识。
S440、根据所述附加签名标识确定对应的第二事务数据,其中,所述第二事务数据用于向设定账户转移回退费用。
区块链网络节点根据所获取的附加签名标识从区块的区块体中获取相应的第二事务数据。
在获取到第二事务数据后,区块链网络节点可以对第二事务数据加以验证。具体地,区块链网络节点可以对第二事务请求进行处理以生成事务数据,并通过对生成的事务数据重新进行哈希计算以确定对应的事务标识,根据所计算的事务标识与附加签名标识进行比对验证,以确定区块中第二事务数据的正确性。具体的,当计算的事务标识与附加签名标识相一致,则表明区块中存储的第二事务数据本身正确。
S450、根据所述第一事务数据对所述第二事务数据进行验证。
由于第二事务数据所对应的第二事务请求是基于第一事务数据的生成过程所确定的,因此在确定区块中第一事务数据和第二事务数据均正确之后,区块链网络节点还会根据第一事务数据对第二事务数据加以验证,以确定第二事务数据中的回退费用的金额和/或参与方是否正确。
本发明实施例通过接收区块生成节点发送的区块,并获取区块中的第一事务数据;从区块中获取第一事务数据的基础签名标识;通过附加签名标识获取模块基于基础签名标识获取关联的附加签名标识;根据附加签名标识确定对应的用于向设定账户转移回退费用的第二事务数据;并根据第一事务数据对第二事务数据进行验证。采用上述技术方案,区块链网络节点可以根据接收到的区块中具有关联关系的基础签名标识和附加签名标识对回退费用的第二事务数据进行验证,即对区块生成过程引入费用回退机制后产生的事务数据的内容加以验证,实现了对区块生成节点扣除处理事务请求的手续费的监控以及对回退费用的有效追踪,优化了区块链网络中的费用支付方案。
实施例五
图5是本发明实施例五中的一种区块验证方法的流程示意图。本发明实施例在上述各实施例的技术方案的基础上进行了细分优化。
进一步地,将特征“根据所述第一事务数据对所述第二事务数据进行验证”细化为“确定运行第一事务数据中的智能合约所需支付的第一费用金额;其中,所述第一事务数据中包含有第二费用金额;若所述第一费用金额小于所述第二费用金额,则确定所述第二费用金额和第一费用金额的差值为所述回退费用;比较第二事务数据内的回退费用是否与计算确定的回退费用匹配”,以实现通过第一事务数据对第二事务数据中的回退费用的金额加以验证。
进一步地,将特征“根据所述第一事务数据对所述第二事务数据进行验证”细化为“从所述区块中获取区块生成节点的账户;从所述第一事务数据中确定第一事务请求发起者账户;确定所述第二事务数据的转出账户是否为所述区块生成节点的账户,以及转入账户是否为第一事务请求发起者账户”,以实现通过第一事务数据对第二事务数据中的回退费用的参与方加以验证。
如图5所示的区块验证方法,包括:
S510、接收区块生成节点发送的区块,并获取所述区块中的第一事务数据。
其中,所述第一事务数据中包含有智能合约。具体的,第一事务数据为在可读字段形式的事务请求中的字段中嵌入了智能合约代码的事务请求,所对应的事务数据。
S520、从所述区块中获取第一事务数据的基础签名标识。
S530、根据基础签名标识获取关联的附加签名标识。
其中,区块的区块头中包含标识数组,所述第一事务数据对应的基础签名标识和所述第二事务数据对应的附加签名标识关联存储在所述标识数组中。
S540、根据所述附加签名标识确定对应的第二事务数据,其中,所述第二事务数据用于向设定账户转移回退费用。
具体的,第二事务数据为区块生成节点处理第二事务请求时生成的事务数据。其中,第二事务请求具体为将回退费用从区块生成节点的账户转移至第一事务请求发起者的账户的事务请求。
S551A、确定运行所述智能合约所需支付的第一费用金额;其中,所述第一事务数据中包含有第二费用金额。
其中,第二费用金额为第一事务请求发起者在第一事务请求的费用字段中所填写的费用金额。
区块链网络节点在对第一事务数据进行验证时,对第一事务请求进行处理并生成事务数据;在生成该事务数据之后,区块链网络节点会按照该事务数据中所嵌入的智能合约的设定顺序运行各智能合约,并根据运行所有智能合约过程中虚拟机所执行的步数确定工作量;区块生成节点根据工作量确定第一事务请求发起者所需支付的手续费作为第一费用金额。
需要说明的是,在运行智能合约之后,还可以根据各智能合约的运行结果通过哈希计算产生对应的哈希值;将计算的哈希值与区块头中存储的运行结果签名标识进行比对验证,以确定智能合约运行结果的正确性。具体地,如果所计算的哈希值与提取的运行结果签名标识相一致,则表明该事务数据中各智能合约被执行过且运行结果正确。
S552A、若所述第一费用金额小于所述第二费用金额,则确定所述第二费用金额和第一费用金额的差值为所述回退费用。
当第一费用金额小于第二费用金额时,表明区块生成节点在处理第一事务数据后,从区块生成节点的账户向第一事务请求发起者的账户转移了一定的回退费用。因此,区块链网络节点通过计算获取的第一事务数据中所包含的第二费用金额与第一费用金额的差值确定回退费用。
S553A、比较第二事务数据内的回退费用是否与计算确定的回退费用匹配。
当计算的回退费用与第二事务数据中所包含的回退费用相一致,则表明区块生成节点在生成当前区块时,回退费用的金额无误。
S551B、从所述区块中获取区块生成节点的账户。
区块生成节点在生成区块时,会在区块中存储自身的账户信息。因此,区块链网络节点可以直接从区块中获取生成该区块的区块生成节点的账户。
S552B、从所述第一事务数据中确定第一事务请求发起者账户。
第一事务请求发起者在向区块链网络发起第一事务请求时,在第一事务请求中包含有第一事务请求发起者的账户。在区块生成节点处理该第一事务请求并生成第一事务数据时,会在第一事务数据中对应存储第一事务请求发起者的账户的信息。因此,区块链网络节点可以从第一事务数据中确定第一事务请求发起者的账户。
S553B、确定所述第二事务数据的转出账户是否为所述区块生成节点的账户,以及转入账户是否为第一事务请求发起者账户。
区块链网络节点确定第二事务数据中的转出账户是否为区块生成节点的账户,以确定回退费用的转出方是否有误;区块链网络节点确定第二事务数据中的转入账户是否为第一事务请求发起者的账户,以确定回退费用的转入方是否有误。
需要说明的是,可以仅执行S551A~S553A,也可以仅执行S551B~S553B;另外,对S551B~S553B的执行顺序不做任何限定。具体的,S551B~S553B可以在S551A~S553A执行之前或之后执行,S551B~S553B还可以与S551A~S553A同时执行。
本发明实施例通过确定智能合约所需支付的第一费用金额,并根据第二费用金额与第一费用金额的差值确定回退费用,以对第二事务数据中的回退费用的金额加以验证;通过获取区块生成节点的账户和第一事务请求发起者的账户分别与第二事务数据中的转出账户和转入账户进行比较,以对回退费用的参与方加以验证。
实施例六
图6是本发明实施例六中的一种区块验证方法的流程示意图。本发明实施例在上述各实施例的技术方案的基础上进行了细分优化。
进一步地,将特征“根据基础签名标识获取关联的附加签名标识”细化为“根据所述基础签名标识与所述附加签名标识在所述标识数组中的设定位置关系,查找到所述附加签名标识;或者,根据所述基础签名标识与所述附加签名标识之间的索引信息,在所述标识数组中查找到所述附加签名标识”,以完善获取附加签名标识的具体方式。
如图6所示的区块验证方法,包括:
S610、接收区块生成节点发送的区块,并获取所述区块中的第一事务数据。
S620、从所述区块中获取第一事务数据的基础签名标识;继续执行S630A或S630B。
S630A、根据所述基础签名标识与所述附加签名标识在所述标识数组中的设定位置关系,查找到所述附加签名标识;继续执行S640。
区块链网络节点从标识数组中提取与基础签名标识处于设定位置的待定信息;基于待定位置的预置位确定该待定信息为附加签名标识。其中,设定位置可以是基础签名标识存储位置之前或之后的存储空间。
S630B、根据所述基础签名标识与所述附加签名标识之间的索引信息,在所述标识数组中查找到所述附加签名标识;继续执行S640。
获取基础签名标识与附加签名标识的索引信息,基于索引信息在标识数组中查找与基础签名标识相对应的附加签名标识。
S640、根据所述附加签名标识确定对应的第二事务数据,其中,所述第二事务数据用于向设定账户转移回退费用。
S650、根据所述第一事务数据对所述第二事务数据进行验证。
本发明实施例通过细化附加签名标识的获取操作,进一步完善了区块验证方法。采用上述技术方案能够对区块生成过程引入费用回退机制后产生的事务数据的内容加以验证,实现了对区块生成节点扣除处理事务请求的手续费的监控以及对回退费用的有效追踪。
实施例七
图7是本发明实施例七中的一种区块生成装置的结构示意图。本发明实施例适用于区块生成节点处理用户事务请求时,将用户所支付的超出处理该事务请求所需的手续费的多余费用退回的情况。该装置由软件和/或硬件实现,并具体配置于承载区块链网络的区块生成节点的设备中。如图7所示的区块生成装置,具体包括:基础签名标识生成模块710,第二事务请求生成模块720,附加签名标识生成模块730,关联关系建立模块740以及区块传输模块750。
其中,基础签名标识生成模块710,用于获取第一事务请求并进行处理,得到第一事务数据,生成所述第一事务数据的基础签名标识,添加到区块中;
第二事务请求生成模块720,用于根据所述第一事务请求的处理确定回退费用,并生成将所述回退费用转移至设定账户的第二事务请求;
附加签名标识生成模块730,用于处理所述第二事务请求,得到第二事务数据,生成所述第二事务数据的附加签名标识,添加到区块中;
关联关系建立模块740,用于建立所述基础签名标识和附加签名标识之间的关联关系;
区块传输模块750,用于将所述区块在区块链网络中传输,以通知其他节点根据关联的所述基础签名标识和附加签名标识对回退费用的第二事务数据进行验证。
本发明实施例通过基础签名标识生成模块获取并处理第一事务请求得到第一事务数据,并生成第一事务数据的基础签名标识添加至区块中;通过第二事务请求生成模块根据第一事务请求的处理确定回退费用,并生成将回退费用转移至设定账户的第二事务请求;通过附加签名标识生成模块处理该第二事务请求得到第二事务数据,并生成第二事务数据的附加签名标识添加至区块中;通过关联关系建立模块建立基础签名标识和附加签名标识之间的关联关系;通过区块传输模块将区块传输至区块链网络以通知其他节点根据基础签名标识和附加签名标识对回退费用的第二事务数据进行验证。采用上述技术方案,通过在区块生成过程中引入费用回退机制,能够避免用户承担高于实际所需的手续费,同时其他节点可以根据具有关联关系的基础签名标识和附加签名标识对回退费用的第二事务数据进行验证,区块链网络中的费用支付方案得到了优化。
进一步地,所述第一事务请求为嵌入有智能合约的第一事务请求,相应的,所述第二事务请求生成模块720,包括:
第一费用金额确定单元,用于运行所述智能合约,确定运行所述智能合约所需支付的第一费用金额;其中,所述第一事务请求中包含第二费用金额;
回退费用确定单元,用于在所述第一费用金额小于所述第二费用金额时,确定所述第二费用金额和第一费用金额的差值为所述回退费用。
进一步地,所述第二事务请求生成模块720,包括:
第二事务请求生成单元,用于生成从区块生成节点的账户向第一事务请求发起者账户转移回退费用的第二事务请求。
进一步地,所述关联关系建立模块740,包括:
关联关系存储单元,用于将所述基础签名标识和所述附加签名标识关联存储在所述区块的区块头中的标识数组中。
进一步地,所述关联关系存储单元,具体用于:
将所述基础签名标识和所述附加签名标识,在所述区块的区块头中的标识数组中按照设定位置关系进行存储;或者,
在所述区块的区块头中的标识数组中存储所述基础签名标识和所述附加签名标识,以及所述基础签名标识和所述附加签名标识之间的索引信息。
上述区块生成装置可执行本发明前述所有实施例所提供的区块生成方法,具备执行上述区块生成方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的区块生成方法。
实施例八
图8是本发明实施例八中的一种区块验证装置的结构示意图。本发明实施例适用于区块链网络中的其他节点对区块生成节点所生成的区块加以验证的情况。该装置由软件和/或硬件实现,并具体配置于承载区块链网络节点的设备中。如图8所示的区块验证装置,具体包括:第一事务数据获取模块810,基础签名标识获取模块820,附加签名标识获取模块830,第二事务数据确定模块840以及第二事务数据验证模块850。
其中,第一事务数据获取模块810,用于接收区块生成节点发送的区块,并获取所述区块中的第一事务数据;
基础签名标识获取模块820,用于从所述区块中获取第一事务数据的基础签名标识;
附加签名标识获取模块830,用于根据基础签名标识获取关联的附加签名标识;
第二事务数据确定模块840,用于根据所述附加签名标识确定对应的第二事务数据,其中,所述第二事务数据用于向设定账户转移回退费用;
第二事务数据验证模块850,用于根据所述第一事务数据对所述第二事务数据进行验证。
本发明实施例通过第一事务数据获取模块接收区块生成节点发送的区块,并获取区块中的第一事务数据;通过基础签名标识获取模块从区块中获取第一事务数据的基础签名标识;通过附加签名标识获取模块基于基础签名标识获取关联的附加签名标识;通过第二事务数据确定模块根据附加签名标识确定对应的用于向设定账户转移回退费用的第二事务数据;并通过第二事务数据验证模块根据第一事务数据对第二事务数据进行验证。采用上述技术方案,区块链网络节点可以根据接收到的区块中具有关联关系的基础签名标识和附加签名标识对回退费用的第二事务数据进行验证,即对区块生成过程引入费用回退机制后产生的事务数据的内容加以验证,实现了对区块生成节点扣除处理事务请求的手续费的监控以及对回退费用的有效追踪,优化了区块链网络中的费用支付方案。
进一步地,所述第一事务数据中嵌入有智能合约;相应的,所述第二事务数据验证模块850,包括:
第一费用金额确定单元,用于确定运行所述第一事务数据中的智能合约所需支付的第一费用金额;其中,所述第一事务数据中包含有第二费用金额;
回退费用确定单元,用于在所述第一费用金额小于所述第二费用金额时,确定所述第二费用金额和第一费用金额的差值为所述回退费用;
回退费用匹配单元,用于比较第二事务数据内的回退费用是否与计算确定的回退费用匹配。
进一步地,所述第二事务数据验证模块850,还包括:
第一账户获取单元,用于从所述区块中获取区块生成节点的账户;
第二账户获取单元,用于从所述第一事务数据中确定第一事务请求发起者账户;
账户比对单元,用于确定所述第二事务数据的转出账户是否为所述区块生成节点的账户,以及转入账户是否为第一事务请求发起者账户。
进一步地,所述区块的区块头中包含标识数组,所述第一事务数据对应的基础签名标识和所述第二事务数据对应的附加签名标识关联存储在所述标识数组中。
进一步地,所述附加签名标识获取模块830,具体用于:
根据所述基础签名标识与所述附加签名标识在所述标识数组中的设定位置关系,查找到所述附加签名标识;或者,
根据所述基础签名标识与所述附加签名标识之间的索引信息,在所述标识数组中查找到所述附加签名标识。
上述区块验证装置可执行本发明前述所有实施例所提供的区块验证方法,具备执行上述区块验证方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的区块验证方法。
实施例九
图9为本发明实施例九提供的一种电子设备的硬件结构示意图。图9示出了适于用来实现本发明实施方式的示例性电子设备12的框图。图9显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
电子设备12典型地包括多种计算机***可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图9未显示,通常称为“硬盘驱动器”)。尽管图9中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理单元16通过运行存储在***存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的区块生成方法:
获取第一事务请求并进行处理,得到第一事务数据,生成所述第一事务数据的基础签名标识,添加到区块中;
根据所述第一事务请求的处理确定回退费用,并生成将所述回退费用转移至设定账户的第二事务请求;
处理所述第二事务请求,得到第二事务数据,生成所述第二事务数据的附加签名标识,添加到区块中;
建立所述基础签名标识和附加签名标识之间的关联关系;
将所述区块在区块链网络中传输,以通知其他节点根据关联的所述基础签名标识和附加签名标识对回退费用的第二事务数据进行验证。
实施例十
本发明实施例提供了另一种电子设备,该电子设备的结构示意图同样可参见图9。
本发明实施例与实施例十的区别仅在于:处理单元16通过运行存储在***存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的区块验证方法:
接收区块生成节点发送的区块,并获取所述区块中的第一事务数据;
从所述区块中获取第一事务数据的基础签名标识;
根据基础签名标识获取关联的附加签名标识;
根据所述附加签名标识确定对应的第二事务数据,其中,所述第二事务数据用于向设定账户转移回退费用;
根据所述第一事务数据对所述第二事务数据进行验证。
实施例十一
本发明实施例十一还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行一种区块生成方法,该方法包括:获取第一事务请求并进行处理,得到第一事务数据,生成所述第一事务数据的基础签名标识,添加到区块中;根据所述第一事务请求的处理确定回退费用,并生成将所述回退费用转移至设定账户的第二事务请求;处理所述第二事务请求,得到第二事务数据,生成所述第二事务数据的附加签名标识,添加到区块中;建立所述基础签名标识和附加签名标识之间的关联关系;将所述区块在区块链网络中传输,以通知其他节点根据关联的所述基础签名标识和附加签名标识对回退费用的第二事务数据进行验证。
本发明实施例十一还提供了另一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所提供的区块验证方法,该方法包括:接收区块生成节点发送的区块,并获取所述区块中的第一事务数据;从所述区块中获取第一事务数据的基础签名标识;根据基础签名标识获取关联的附加签名标识;根据所述附加签名标识确定对应的第二事务数据,其中,所述第二事务数据用于向设定账户转移回退费用;根据所述第一事务数据对所述第二事务数据进行验证。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (16)
1.一种区块生成方法,其特征在于,应用于区块生成节点,所述方法包括:
获取第一事务请求并进行处理,得到第一事务数据,生成所述第一事务数据的基础签名标识,添加到区块中;其中,所述第一事务请求中包括发起所述第一事务请求时所填写的费用金额;
根据所述第一事务请求的处理确定回退费用,并生成将所述回退费用转移至设定账户的第二事务请求;其中,所述回退费用为所述所填写的费用金额中高于实际所需的费用金额;
处理所述第二事务请求,得到第二事务数据,生成所述第二事务数据的附加签名标识,添加到区块中;
建立所述基础签名标识和附加签名标识之间的关联关系;
将所述区块在区块链网络中传输,以通知其他节点根据关联的所述基础签名标识和附加签名标识对第二事务数据中的回退费用的金额和/或参与方是否正确进行验证。
2.根据权利要求1所述的方法,其特征在于,所述第一事务请求为嵌入有智能合约的第一事务请求,相应的,根据所述第一事务请求的处理确定回退费用包括:
运行所述智能合约,确定运行所述智能合约所需支付的第一费用金额;其中,所述第一事务请求中包含第二费用金额;其中,所述第二费用金额为所述所填写的费用金额;
若所述第一费用金额小于所述第二费用金额,则确定所述第二费用金额和第一费用金额的差值为所述回退费用。
3.根据权利要求2所述的方法,其特征在于,生成将所述回退费用转移至设定账户的第二事务请求包括:
生成从区块生成节点的账户向第一事务请求发起者账户转移回退费用的第二事务请求。
4.根据权利要求1-3任一所述的方法,其特征在于,建立所述基础签名标识和附加签名标识之间的关联关系包括:
将所述基础签名标识和所述附加签名标识关联存储在所述区块的区块头中的标识数组中。
5.根据权利要求4所述的方法,其特征在于,所述将所述基础签名标识和所述附加签名标识关联存储在所述区块的区块头中的标识数组中,包括:
将所述基础签名标识和所述附加签名标识,在所述区块的区块头中的标识数组中按照设定位置关系进行存储;或者,
在所述区块的区块头中的标识数组中存储所述基础签名标识和所述附加签名标识,以及所述基础签名标识和所述附加签名标识之间的索引信息。
6.一种区块验证方法,其特征在于,应用于区块链网络节点,所述方法包括:
接收区块生成节点发送的区块,并获取所述区块中的第一事务数据;其中,所述第一事务数据中包括发起相应第一事务请求时所填写的费用金额;
从所述区块中获取第一事务数据的基础签名标识;
根据基础签名标识获取关联的附加签名标识;
根据所述附加签名标识确定对应的第二事务数据,其中,所述第二事务数据用于向设定账户转移回退费用;其中,所述回退费用为所述所填写的费用金额中高于实际所需的费用金额;
根据所述第一事务数据对所述第二事务数据进行验证,以确定所述第二事务数据中的回退费用的金额和/或参与方是否正确。
7.根据权利要求6所述的方法,其特征在于,根据所述第一事务数据对所述第二事务数据进行验证,以确定所述第二事务数据中的回退费用的金额是否正确,包括:
确定运行所述第一事务数据中的智能合约所需支付的第一费用金额;其中,所述第一事务数据中包含有第二费用金额;其中,所述第二费用金额为所述所填写的费用金额;
若所述第一费用金额小于所述第二费用金额,则确定所述第二费用金额和第一费用金额的差值为所述回退费用;
比较第二事务数据内的回退费用是否与计算确定的回退费用匹配。
8.根据权利要求6所述的方法,其特征在于,根据所述第一事务数据对所述第二事务数据进行验证,以确定所述第二事务数据中的回退费用的参与方是否正确,包括:
从所述区块中获取区块生成节点的账户;
从所述第一事务数据中确定第一事务请求发起者账户;
确定所述第二事务数据的转出账户是否为所述区块生成节点的账户,以及转入账户是否为第一事务请求发起者账户。
9.根据权利要求6-8任一所述的方法,其特征在于,所述区块的区块头中包含标识数组,所述第一事务数据对应的基础签名标识和所述第二事务数据对应的附加签名标识关联存储在所述标识数组中。
10.根据权利要求9所述的方法,其特征在于,根据基础签名标识获取关联的附加签名标识,包括:
根据所述基础签名标识与所述附加签名标识在所述标识数组中的设定位置关系,查找到所述附加签名标识;或者,
根据所述基础签名标识与所述附加签名标识之间的索引信息,在所述标识数组中查找到所述附加签名标识。
11.一种区块生成装置,其特征在于,配置于区块生成节点,所述装置包括:
基础签名标识生成模块,用于获取第一事务请求并进行处理,得到第一事务数据,生成所述第一事务数据的基础签名标识,添加到区块中;其中,所述第一事务请求中包括发起所述第一事务请求时所填写的费用金额;
第二事务请求生成模块,用于根据所述第一事务请求的处理确定回退费用,并生成将所述回退费用转移至设定账户的第二事务请求;其中,所述回退费用为所述所填写的费用金额中高于实际所需的费用金额;
附加签名标识生成模块,用于处理所述第二事务请求,得到第二事务数据,生成所述第二事务数据的附加签名标识,添加到区块中;
关联关系建立模块,用于建立所述基础签名标识和附加签名标识之间的关联关系;
区块传输模块,用于将所述区块在区块链网络中传输,以通知其他节点根据关联的所述基础签名标识和附加签名标识对第二事务数据中的回退费用的金额和/或参与方是否正确进行验证。
12.一种区块验证装置,其特征在于,配置于区块链网络节点,所述装置包括:
第一事务数据获取模块,用于接收区块生成节点发送的区块,并获取所述区块中的第一事务数据;其中,所述第一事务数据中包括发起相应第一事务请求时所填写的费用金额;
基础签名标识获取模块,用于从所述区块中获取第一事务数据的基础签名标识;
附加签名标识获取模块,用于根据基础签名标识获取关联的附加签名标识;
第二事务数据确定模块,用于根据所述附加签名标识确定对应的第二事务数据,其中,所述第二事务数据用于向设定账户转移回退费用;其中,所述回退费用为所填写金额中高于实际所需的金额;
第二事务数据验证模块,用于根据所述第一事务数据对所述第二事务数据进行验证,以确定所述第二事务数据中的回退费用的金额和/或参与方是否正确。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5任一项所述的一种区块生成方法。
14.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求6-10任一项所述的一种区块验证方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5任一项所述的一种区块生成方法。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求6-10任一项所述的一种区块验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810790428.9A CN108960797B (zh) | 2018-07-18 | 2018-07-18 | 区块生成及验证方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810790428.9A CN108960797B (zh) | 2018-07-18 | 2018-07-18 | 区块生成及验证方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108960797A CN108960797A (zh) | 2018-12-07 |
CN108960797B true CN108960797B (zh) | 2022-08-23 |
Family
ID=64481770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810790428.9A Active CN108960797B (zh) | 2018-07-18 | 2018-07-18 | 区块生成及验证方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108960797B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020133069A1 (zh) * | 2018-12-27 | 2020-07-02 | 合肥达朴汇联科技有限公司 | 区块链的数据处理方法和装置 |
CN111695991B (zh) * | 2019-03-14 | 2024-02-06 | 北京沃东天骏信息技术有限公司 | 基于区块的合约处理方法、装置、区块链节点及存储介质 |
CN112487080A (zh) * | 2019-08-20 | 2021-03-12 | 厦门本能管家科技有限公司 | 一种用于区块链的差值回退方法及*** |
CN111126978B (zh) * | 2019-12-28 | 2023-03-14 | 飞天诚信科技股份有限公司 | 一种区块链上快速处理事务的实现方法及装置 |
CN111352705B (zh) * | 2020-02-25 | 2023-10-31 | 百度在线网络技术(北京)有限公司 | 一种区块链的事务处理方法、装置、设备和介质 |
CN112769758B (zh) * | 2020-12-21 | 2022-04-29 | 浙江大学 | 一种基于区块链的可信物联网燃气表及本地和云端的可信方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103473A (zh) * | 2017-04-27 | 2017-08-29 | 电子科技大学 | 一种基于区块链的智能合约实现方法 |
CN107993149A (zh) * | 2017-12-18 | 2018-05-04 | 深圳前海微众银行股份有限公司 | 账户信息管理方法、***以及可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10713654B2 (en) * | 2016-01-21 | 2020-07-14 | International Business Machines Corporation | Enterprise blockchains and transactional systems |
US10255108B2 (en) * | 2016-01-26 | 2019-04-09 | International Business Machines Corporation | Parallel execution of blockchain transactions |
-
2018
- 2018-07-18 CN CN201810790428.9A patent/CN108960797B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103473A (zh) * | 2017-04-27 | 2017-08-29 | 电子科技大学 | 一种基于区块链的智能合约实现方法 |
CN107993149A (zh) * | 2017-12-18 | 2018-05-04 | 深圳前海微众银行股份有限公司 | 账户信息管理方法、***以及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
区块链技术:架构及进展;邵奇峰等;《计算机学报》;20171115(第05期);第3-22页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108960797A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108960797B (zh) | 区块生成及验证方法、装置、设备和存储介质 | |
CN108961052B (zh) | 区块链数据的验证方法、存储方法、装置、设备和介质 | |
CN108984645B (zh) | 区块链处理方法、装置、设备及存储介质 | |
EP3796188A1 (en) | Blockchain network transaction processing method, apparatus, device, and storage medium | |
US20210304201A1 (en) | Transaction verification method and apparatus, storage medium, and electronic device | |
WO2021031473A1 (zh) | 基于多资产模型的区块链资产处理方法及相关设备 | |
CN109002349B (zh) | 应用程序交互方法、实现方法、装置、设备和介质 | |
CN109101664B (zh) | 一种轻量级节点的数据传输方法、装置、设备和介质 | |
CN112101942B (zh) | 基于区块链的交易请求处理方法、***、装置及设备 | |
CN111460504B (zh) | 业务处理方法、装置、节点设备及存储介质 | |
CN112953981A (zh) | 节点选择方法、区块链共识方法及装置、***、设备 | |
CN111541756B (zh) | 区块生成方法、装置、节点设备及存储介质 | |
CN114327803A (zh) | 区块链访问机器学习模型的方法、装置、设备和介质 | |
CN109858285B (zh) | 区块链数据的处理方法、装置、设备和介质 | |
CN109710502B (zh) | 日志传输方法、装置及存储介质 | |
CN112565370A (zh) | 基于无线通信与区块链场景的计算结果验证方法及*** | |
CN113935069B (zh) | 一种基于区块链的数据验证方法、装置、设备及存储介质 | |
CN114338051B (zh) | 区块链获取随机数的方法、装置、设备和介质 | |
CN114363988B (zh) | 分簇方法、装置和电子设备 | |
JP2023031248A (ja) | エッジコンピューティングネットワーク、データ伝送方法、装置、機器、及び記憶媒体 | |
CN114282968A (zh) | 一种流水号的获取方法、装置、服务器和存储介质 | |
CN111242778B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111401889B (zh) | 基于区块链的信用数据处理方法、装置、设备和介质 | |
CN112995932A (zh) | 基于哈希算法的短信链路监控方法、装置、设备及介质 | |
CN112950171A (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 |