CN110517045A - 区块链数据处理方法、装置、设备和存储介质 - Google Patents
区块链数据处理方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN110517045A CN110517045A CN201911002855.7A CN201911002855A CN110517045A CN 110517045 A CN110517045 A CN 110517045A CN 201911002855 A CN201911002855 A CN 201911002855A CN 110517045 A CN110517045 A CN 110517045A
- Authority
- CN
- China
- Prior art keywords
- target
- signature
- unified
- block chain
- data structure
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- 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/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种区块链数据处理方法、装置、设备和存储介质。该方法包括:确定目标用户待处理的目标事务数据;基于目标签名算法,采用目标用户的区块链密钥对目标事务数据进行数字签名,以得到目标签名内容;根据目标签名算法和所述目标签名内容,生成具有统一签名数据结构的统一签名结果。本发明实施例通过生成具有统一签名数据结构的统一签名结果,并将目标签名算法的标识信息融入到统一的签名结果当中,实现了区块链网络中签名数据结构的统一,支持区块链网络使用统一的数字签名技术,避免签名算法信息的额外独立添加和发送,使得签名结果中融合签名算法信息,在统一签名结果中直接体现使用的签名算法,便于对签名结果进行验签。
Description
技术领域
本发明实施例涉及区块链技术领域,尤其涉及一种区块链数据处理方法、装置、设备和存储介质。
背景技术
随着互联网技术的不断发展,一种去中心化且公开透明的区块链技术应运而生。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
其中,为了证明区块链中所传输的事务数据确实是由发送方签名并发出来的,以及确定事务数据的完整性,通常采用数字签名技术对事务数据进行签名和验签。数字签名技术是将摘要信息用发送者的私钥加密,与事务数据一起传送给接收者。相应的,接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用哈希函数对收到的事务数据产生一个摘要信息,与解密得到的摘要信息进行对比,实现对事务数据的验签。
目前区块链网络上的签名算法种类较多,如ECDSA、EDDSA、Schnorr、环签名、多重签名等,由于基于各类签名算法生成的二进制签名数据具有多样性,因此区块链网络中没有统一的数字签名技术,增加了验签的难度和不确定性。
发明内容
本发明实施例提供了一种区块链数据处理方法、装置、设备和存储介质,能够支持区块链网络使用统一的数字签名技术。
第一方面,本发明实施例提供了一种区块链数据处理方法,由用户节点执行,所述方法包括:
确定目标用户待处理的目标事务数据;
基于目标签名算法,采用所述目标用户的区块链密钥对所述目标事务数据进行数字签名,以得到目标签名内容;
根据所述目标签名算法和所述目标签名内容,生成具有统一签名数据结构的统一签名结果。
第二方面,本发明实施例提供了一种区块链数据处理方法,由用户节点执行,所述方法包括:
获取目标用户的区块链密钥,目标事务数据,以及具有统一签名数据结构的统一签名结果;
根据所述统一签名结果和所述统一签名数据结构,确定所述目标事务数据的目标签名算法和目标签名内容;
基于所述目标签名算法,采用所述目标用户的区块链密钥和所述目标事务数据,对所述目标签名内容进行验签。
第三方面,本发明实施例提供了一种区块链数据处理装置,配置于用户节点,所述装置包括:
事务数据确定模块,用于确定目标用户待处理的目标事务数据;
数字签名模块,用于基于目标签名算法,采用所述目标用户的区块链密钥对所述目标事务数据进行数字签名,以得到目标签名内容;
签名结果生成模块,用于根据所述目标签名算法和所述目标签名内容,生成具有统一签名数据结构的统一签名结果。
第四方面,本发明实施例提供了一种区块链数据处理装置,配置于用户节点,所述装置包括:
签名结果获取模块,用于获取目标用户的区块链密钥,目标事务数据,以及具有统一签名数据结构的统一签名结果;
数字签名确定模块,用于根据所述统一签名结果和所述统一签名数据结构,确定所述目标事务数据的目标签名算法和目标签名内容;
验签模块,用于基于所述目标签名算法,采用所述目标用户的区块链密钥和所述目标事务数据,对所述目标签名内容进行验签。
第五方面,本发明实施例提供了一种设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明第一方面任意实施例所述的区块链数据处理方法,或者实现本发明第二方面任意实施例所述的区块链数据处理方法。
第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明第一方面任意实施例所述的区块链数据处理方法,或者实现本发明第二方面任意实施例所述的区块链数据处理方法。
本发明实施例以目标用户为事务数据的发送方,确定目标用户待处理的目标事务数据,基于目标签名算法,采用目标用户的区块链密钥对目标事务数据进行数字签名,得到目标签名内容,最终根据目标签名算法和目标签名内容,共同生成具有统一签名数据结构的统一签名结果。本发明实施例通过生成具有统一签名数据结构的统一签名结果,并将目标签名算法的标识信息融入到统一的签名结果当中,实现了区块链网络中签名数据结构的统一,支持区块链网络使用统一的数字签名技术,避免签名算法信息的额外独立添加和发送,使得签名结果中融合签名算法信息,在统一签名结果中直接体现使用的签名算法,便于对签名结果进行验签。
附图说明
图1为本发明实施例一提供的一种区块链数据处理方法的流程图;
图2为本发明实施例二提供的一种区块链数据处理方法的流程图;
图3为本发明实施例三提供的一种区块链数据处理方法的流程图;
图4为本发明实施例四提供的一种区块链数据处理方法的流程图;
图5为本发明实施例五提供的一种区块链数据处理装置的结构示意图;
图6为本发明实施例六提供的一种区块链数据处理装置的结构示意图;
图7为本发明实施例七提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的一种区块链数据处理方法的流程图,本实施例可适用于区块链网络中的用户节点对事务数据进行数字签名的情况,该方法可由一种区块链数据处理装置来执行,该装置可以采用软件和/或硬件的方式实现,优选是配置于用户节点。该方法具体包括如下:
S110、确定目标用户待处理的目标事务数据。
在本发明具体实施例中,目标事务数据是指待进行数字签名的事务数据,例如发送方与接收方之间的交易原始内容,以供发送方将添加有数字签名的目标事务数据向接收方发送,相应的,接收方可以根据数字签名对目标事务数据进行验证。其中,以交易场景为例,事务数据可以包括交易输入信息、交易输出信息、交易时间信息、交易发起者信息、交易描述信息以及ETC(Ethereum Classic,以太坊经典)等。事务数据可以是未经加密处理的明文,也可以是基于加密算法处理的密文。
本实施例中,目标用户是指目标事务数据的发送方,目标用户通过用户节点将目标事务数据传输至区块链网络中的至少一个其他用户节点,供接收方通过所述至少一个其他用户节点接收目标事务数据。
其中,用户节点可以是普通的区块链节点,也可以是轻量级节点,用户节点可以服务于一个或多个目标用户。具体的,轻量级节点作为区块链网络中的节点,可以直接向区块链发送请求,并接收区块链网络或其他区块链节点反馈的事务数据。目标用户所属的设备可以作为用户节点,直接对目标用户的事务数据进行处理;或者,目标用户所属的设备可以作为外界设备与用户节点进行通信连接,用户节点可以作为区块链与外界设备之间通信的渠道,可以接收外界设备所发送的信息并生成事务处理请求传输至区块链网络中,以及向外界设备传输从区块链中获取的信息。同时,用户节点作为区块链网络中的节点,可以在区块链中处理事务处理请求。
具体的,目标用户可以操作用户节点所属的终端设备,或者操作与用户节点通信连接的外界设备,向区块链网络发起事务处理请求,以将目标事务数据传输至区块链网络中。相应的,用户节点根据事务处理请求,确定目标用户待处理的目标事务数据。
S120、基于目标签名算法,采用目标用户的区块链密钥对目标事务数据进行数字签名,以得到目标签名内容。
在本发明具体实施例中,用户的区块链密钥可以包括私钥和公钥,基于区块链密钥,可以用于根据签名算法进行数字签名,或根据签名算法进行签名验证,还可以用于根据加密算法进行加密或解密等。在数字签名过程中,私钥通常用于用户对待发送事务数据进行加密签名,公钥用于其他用户对接收到的事务数据进行解密和验证。用户的区块链密钥可以在接收到用户的事务处理请求时获得,或者在确定目标用户的待处理目标事务数据时获得。
其中,用户的区块链密钥可以是在创建用户的区块链账户时,根据椭圆曲线类加密算法中所采用的目标椭圆曲线生成的。例如,用户节点从区块链网络中获取随机数,或者用户节点本地基于随机数生成规则生成随机数,将随机数作为目标椭圆曲线所对应的解析表达式的参数,通过求解目标椭圆曲线所对应的解析表达式,将求解结果作为用户的区块链密钥中的取值部分。相应的,可以根据用户的区块链密钥提取出目标椭圆曲线信息。
本实施例中,目标签名算法是指用户节点当前对目标用户待处理的目标事务数据进行数字签名时,所采用的具体的数字签名算法(Digital Signature Algorithm,DSA)。数字签名算法基于一定的运算规则,通常采用事务数据发送方的私钥对整个待发送事务数据进行运算处理,生成的数字签名的目标签名内容。其中,数字签名算法包括但不局限于ECDSA、EdDSA、多重签名算法以及环签名算法等。目标签名算法可以是目标用户发起请求时所指定的算法,也可以是用户节点基于智能合约等因素所选择的算法。目标签名算法中可以包括一种或多种数字签名算法。
具体的,根据目标签名算法所规定的运算规则,采用目标用户的区块链密钥对整个目标事务数据进行运算处理,生成包括数字签名和目标事务数据的目标签名内容。示例性的,基于目标签名算法,用户节点采用哈希函数从目标事务数据中生成摘要,并采用目标用户的区块链密钥对该摘要进行加密,得到目标事务数据对应的数字签名,作为目标签名内容。
S130、根据目标签名算法和目标签名内容,生成具有统一签名数据结构的统一签名结果。
在本发明具体实施例中,并非直接将目标签名内容作为最终的签名结果进行发送,而是结合目标签名算法对原始签名进行二次封装,生成具有统一签名数据结构的统一签名结果。其中,具有统一签名数据结构的统一签名结果中不仅包括目标签名算法的标识信息,而且对区块链网络中不同签名算法的数据结构进行统一,便于在区块链网络中形成支持不同签名算法的统一的数字签名技术。
本实施例中,针对目标签名内容,每一种签名算法都具有对应的原始签名数据结构,即签名算法对应的原始签名数据结构用于记录目标签名内容。相应的,根据签名算法对应的原始签名数据结构,可以从中解析出目标签名内容及其中的数字签名等信息,以供接收方根据数字签名进行验证。
本实施例中,针对目标签名内容和目标签名算法,对所有签名算法的原始签名数据结构进行二次封装,为所有签名算法配置统一的签名数据结构,即统一签名数据结构中不仅包括目标签名内容,而且还包括目标签名算法的标识信息。相应的,统一签名数据结构中至少可以包括签名内容部分和签名算法标识部分,将签名算法标识信息作为签名结果中的一部分,而非独立的信息,不仅提高了签名算法标识信息与签名内容的关联度,避免以独立形式信息传输时易导致数据丢失,而且对签名内容具有算法标识作用,便于接收方根据签名算法标识快速确定目标签名算法,并直接采用目标签名算法对签名内容进行验证。
具体的,根据目标签名内容,确定统一签名数据结构中的签名内容部分,其中,可以基于一定的编码规则,例如DER(Distinguished Encoding Rules,可辨别编码规则),对目标签名内容进行编码,得到目标签名字节数组,将目标签名字节数组,作为统一签名数据结构中的签名内容部分的取值。根据目标签名算法,确定统一签名数据结构中的签名算法标识部分,其中,若目标签名算法包括椭圆曲线数字签名算法,则确定椭圆曲线数字签名算法使用的目标椭圆曲线,根据椭圆曲线数字签名算法的标识信息以及目标椭圆曲线的标识信息,确定统一签名数据结构中的签名算法标识部分。根据确定的签名内容部分和签名算法标识部分,生成统一签名结果。
此外,基于对签名结果的编写、解析和生成的难易度和便捷性考虑,还可以采用一定的数据交换方式,例如JSON(JavaScript Object Notation,对象简谱)数据交换格式,将统一签名结果转化为字节数组格式,得到目标事务数据的最终签名结果。
示例性的,假设目标签名算法为多重签名算法,并假设生成的原始签名数据结构如下所示:
type MultiSignature struct {
S []byte
R []byte
}。
其中,MultiSignature表示多重签名算法;type MultiSignature struct表示以字节数组格式的多重签名算法对应的原始签名数据结构;S和R表示字节数组形式的目标签名内容。根据目标签名算法以及目标签名内容,可以生成如下具有统一签名数据结构的统一签名结果:
type XuperSignature struct {
SigType string
SigContent []byte
}。
其中,XuperSignature表示最终统一签名数据结构的统一签名结果;typeXuperSignature struct表示对目标签名内容进行二次封装的统一签名数据结构;SigType表示目标签名算法的算法标识,例如可以采用符号“MultiSig”表示多重签名,“RingSig”表示环签名算法;SigContent表示字节数组形式的目标签名内容。
本实施例的技术方案,以目标用户为事务数据的发送方,确定目标用户待处理的目标事务数据,基于目标签名算法,采用目标用户的区块链密钥对目标事务数据进行数字签名,得到目标签名内容,最终根据目标签名算法和目标签名内容,共同生成具有统一签名数据结构的统一签名结果。本发明实施例通过生成具有统一签名数据结构的统一签名结果,并将目标签名算法的标识信息融入到统一的签名结果当中,实现了区块链网络中签名数据结构的统一,支持区块链网络使用统一的数字签名技术,避免签名算法信息的额外独立添加和发送,使得签名结果中融合签名算法信息,在统一签名结果中直接体现使用的签名算法,便于对签名结果进行验签。
实施例二
本实施例在上述实施例一的基础上,提供了区块链数据处理方法的一个优选实施方式,能够根据目标签名算法和目标签名内容,生成包括签名内容部分和签名算法标识部分这一统一签名数据结构的统一签名结果。图2为本发明实施例二提供的一种区块链数据处理方法的流程图,如图2所示,该方法具体包括如下:
S210、确定目标用户待处理的目标事务数据。
S220、基于目标签名算法,采用目标用户的区块链密钥对目标事务数据进行数字签名,以得到目标签名内容。
在本发明具体实施例中,根据目标签名算法所规定的运算规则,采用目标用户的区块链密钥对整个目标事务数据进行运算处理,生成包括签名的目标签名内容。进一步的,针对目标签名内容,每一种签名算法都具有对应的原始签名数据结构,即签名算法对应的原始签名数据结构用于记录目标签名内容。
S230、根据目标签名内容,确定统一签名数据结构中的签名内容部分。
在本发明具体实施例中,统一签名数据结构是统一签名结果的表现形式,统一签名数据结构中至少划分有签名内容部分,用于记录对于目标事务数据的数字签名,即目标签名内容。本申请可以与基于目标签名算法生成的目标签名内容的原始签名数据结构进行二次处理,作为统一签名数据结构中的签名内容部分。
可选的,对目标签名内容进行编码,得到目标签名字节数组;将目标签名字节数组,作为统一签名数据结构中的签名内容部分的取值。
本实施例中,可以基于一定的编码规则对目标签名内容进行编码,以此统一签名内容的表现形式,得到字节数组形式的目标签名内容,从而将目标签名字节数组作为统一签名数据结构中的签名内容部分的取值。其中,可以基于ASN.1语言标准,采用基于二进制的DER编码标准对目标签名内容进行编码。
S240、根据目标签名算法,确定统一签名数据结构中的签名算法标识部分。
在本发明具体实施例中,统一签名数据结构中至少还划分有签名算法标识部分,用于记录生成目标签名内容的签名算法,可以将目标签名算法的唯一标识信息存储在签名算法标识部分。其中,若目标签名算法中还可以包括至少一个可选的算法细节运算条件,例如圆曲线数字签名算法中可以采用不同的椭圆曲线,则可以进一步确定该至少一个算法细节运算条件,并将该至少一个算法细节运算条件的标识信息与目标签名算法的标识信息一并记录在签名算法标识部分,用于充分标识签名算法,避免签名算法中任一因素的不确定情况产生,避免任一因素的不确定性导致目标签名算法无法执行。
可选的,若目标签名算法包括椭圆曲线数字签名算法,则确定椭圆曲线数字签名算法使用的目标椭圆曲线;根据椭圆曲线数字签名算法的标识信息以及目标椭圆曲线的标识信息,确定统一签名数据结构中的签名算法标识部分。
本实施例中,目标签名算法中可以包括一种或多种数字签名算法,鉴于椭圆曲线数字签名算法中可以采用不同的椭圆曲线进行数字签名,因此可以根据算法标识,若检测到目标签名算法包括椭圆曲线数字签名算法,则需要进一步确定所使用的目标椭圆曲线。其中,可以根据目标签名算法中椭圆曲线数字签名算法所采用的椭圆曲线信息确定目标椭圆曲线,还可以从目标用户的区块链密钥中提取目标椭圆曲线信息。最终将椭圆曲线数字签名算法的标识信息以及目标椭圆曲线的标识信息一并作为签名算法标识部分的取值。
S250、生成包括签名算法标识部分和签名内容部分的统一签名结果。
在本发明具体实施例中,并非直接将目标签名内容作为最终的签名结果进行发送,而是结合目标签名算法对原始签名数据结构进行二次封装,基于统一签名数据结构,根据签名算法标识部分和签名内容部分,生成统一签名结果。
S260、将统一签名结果转化为字节数组格式,得到目标事务数据的最终签名结果。
在本发明具体实施例中,基于对签名结果的编写、解析和生成的难易度和便捷性考虑,还可以采用一定的数据交换方式,例如采用JSON(JavaScript Object Notation,对象简谱)数据交换格式,将统一签名结果转化为字节数组格式,得到目标事务数据的最终签名结果。因此最终签名结果不仅从形式上得到统一,即不同签名算法生成的最终签名结果的形式都是相同的,而且最终签名结果从内容上将签名内容和签名算法信息封装在一起,其中的签名算法信息用于对签名内容的签名算法进行标识,进而该种签名方式支持区块链网络中所有数字签名算法,使得所有数字签名算法得到统一,便于事务数据的传输和统一处理。
本实施例的技术方案,以目标用户为事务数据的发送方,确定目标用户待处理的目标事务数据,基于目标签名算法,采用目标用户的区块链密钥对目标事务数据进行数字签名,得到目标签名内容,根据目标签名内容确定统一签名数据结构中的签名内容部分,根据目标签名算法确定统一签名数据结构中的签名算法标识部分,生成包括签名算法标识部分和签名内容部分的统一签名结果,并将统一签名结果转化为字节数组格式,得到目标事务数据的最终签名结果。本发明实施例通过生成具有统一签名数据结构的统一签名结果,并将目标签名算法的标识信息融入到统一的签名结果当中,实现了区块链网络中签名数据结构的统一,支持区块链网络使用统一的数字签名技术,避免签名算法信息的额外独立添加和发送,使得签名结果中融合签名算法信息,在统一签名结果中直接体现使用的签名算法,便于对签名结果进行验签。
实施例三
图3为本发明实施例三提供的一种区块链数据处理方法的流程图,本实施例可适用于用户节点对接收到的事务数据进行验签的情况,该方法可由一种区块链数据处理装置来执行,该装置可以采用软件和/或硬件的方式实现,优选是配置于用户节点。该方法具体包括如下:
S310、获取目标用户的区块链密钥,目标事务数据,以及具有统一签名数据结构的统一签名结果。
在本发明具体实施例中,目标事务数据是指待验签的事务数据,例如发送方与接收方之间的交易原始内容,以供接收方可以根据数字签名对目标事务数据进行验证。其中,以交易场景为例,事务数据可以包括交易输入信息、交易输出信息、交易时间信息、交易发起者信息、交易描述信息以及ETC(Ethereum Classic,以太坊经典)等。事务数据可以是未经加密处理的明文,也可以是基于加密算法处理的密文。
本实施例中,目标用户是指目标事务数据的发送方,目标用户通过用户节点将目标事务数据传输至区块链网络中的至少一个其他用户节点,供接收方通过所述至少一个其他用户节点接收目标事务数据。
本实施例中,基于上述实施例中发送方用户节点对目标事务数据的数字签名,目标事务数据的数字签名不再是单一的签名内容,而是具有统一签名数据结构的统一签名结果。其中,统一签名数据结构中至少划分有签名内容部分和签名算法标识部分,签名内容部分用于记录对于目标事务数据的数字签名,签名算法标识部分用户记录目标事务数据签名时的签名算法信息。基于统一签名数据结构生成包括签名内容和签名算法标识的统一签名结果,统一签名结果中通过签名算法标识部分直接体现签名内容所采用的签名算法,便于接收方快速识别出目标事务数据的签名算法,并采用识别出的签名算法对目标事务数据进行验签。
具体的,接收方用户可以通过用户节点所属的终端设备,或者通过与用户节点通信连接的外界设备,接收区块链网络中传输的进行过数字签名的目标事务数据,相应的还可以接收到目标事务数据对应的具有统一签名数据结构的统一签名结果,以及发送方即目标用户的区块链密钥,例如公钥。
其中,鉴于对签名结果的编写、解析和生成的难易度和便捷性考虑,用户节点接收到的签名结果可以是格式转换后的最终签名结果。可选的,获取具有统一签名数据结构的统一签名结果包括:将统一签名结果转化为字节数组格式,得到目标事务数据的最终签名结果。例如基于JSON数据交换格式,进行JSON转换。进而在获取具有统一签名数据结构的统一签名结果的过程中,可以获取字节数组格式的目标事务数据的最终签名结果,将目标事务数据的最终签名结果转化为统一签名数据结构,例如逆JSON转化,得到统一签名结果。
S320、根据统一签名结果和统一签名数据结构,确定目标事务数据的目标签名算法和目标签名内容。
在本发明具体实施例中,根据统一签名结果,从统一签名数据结构的签名算法标识部分中提取目标事务数据的签名算法信息,确定目标签名算法,从统一签名数据结构的签名内容部分中提取目标事务数据的签名内容,确定目标签名内容。其中,若目标签名算法包括椭圆曲线数字签名算法,则从统一签名数据结构的签名内容部分中提取椭圆曲线信息,确定椭圆曲线数字签名算法使用的目标椭圆曲线。其中,还可以从目标用户的区块链密钥中提取椭圆曲线信息。
S330、基于目标签名算法,采用目标用户的区块链密钥和目标事务数据,对目标签名内容进行验签。
在本发明具体实施例中,通过统一签名结果中签名算法的标识信息,接收方用户节点在获得目标事务数据时,面对一个二进制的签名数据,不会不知道该选择何种验签算法进行验证;面对一个二进制的签名数据,对于椭圆曲线类签名算法来说,不会不知道该选择何种椭圆曲线进行验证。进而直接基于标识出的目标签名算法的运算规则,采用目标用户的区块链密钥对目标签名内容进行解密,根据解密结果以及接收到的目标事务数据进行比对,实现对目标事务数据的快速验签。
示例性的,基于目标签名算法,用户节点采用哈希函数从目标事务数据中生成摘要A;并采用目标用户的区块链密钥目标签名内容即数字签名进行解密,得到摘要B,最终将摘要A和摘要B进行比对,如果解密结果与目标事务数据一致,则验签数据正确;反之,如果解密结果与目标事务数据一致,则验签数据错误。
本实施例中,鉴于针对目标签名内容,每一种签名算法都具有对应的原始签名数据结构,即签名算法对应的原始签名数据结构用于记录目标签名内容,而统一签名数据结构的统一签名结果是针对目标签名内容和目标签名算法,对所有签名算法的原始签名数据结构进行二次封装得到的。因此在验签的过程中,首先将目标签名算法的原始签名数据结构确定为目标数据结构,根据目标数据结构对目标签名内容进行解码,以将目标签名内容解码成目标数据结构,以将统一签名数据结构的统一结果中的目标签名内容转换为与目标签名算法一致的原始签名数据结构,从而基于目标签名算法,采用目标用户的区块链密钥和目标事务数据,对解码成目标数据结构的目标签名内容进行验签。
其中,若目标签名算法中包括椭圆曲线数字签名算法,则采用所识别的目标椭圆曲线和目标用户的区块链密钥对目标签名内容进行解密,根据解密结果以及接收到的目标事务数据进行比对,实现对目标事务数据的快速验签。其中,对于多重签名算法等需要多个区块链密钥进行数字签名的算法,在随目标事务数据进行验签的过程中,可以基于区块链密钥的数量进行验证。示例性的,若获取的目标用户的区块链密钥数量,与目标签名算法需要使用的区块链密钥数量不同,则确定验签错误;若获取的目标用户的区块链密钥数量,与目标签名算法需要使用的区块链密钥数量相同,则确定获取的至少两个目标用户的区块链密钥所使用的椭圆曲线是否相同;若使用的椭圆曲线不同,则确定验签错误。
本实施例的技术方案,以目标用户为事务数据的发送方,用户节点获取目标用户的区块链密钥,目标事务数据,以及具有统一签名数据结构的统一签名结果,根据统一签名结果和统一签名数据结构,确定目标事务数据的目标签名算法和目标签名内容,基于目标签名算法,采用目标用户的区块链密钥和目标事务数据,对目标签名内容进行验签。本发明实施例通过接收具有统一签名数据结构的统一签名结果,使得签名结果中融合签名算法信息,在统一签名结果中直接体现使用的签名算法,为验签提供了签名算法的判断根据,从而基于确定的目标签名算法对目标事务数据进行验签,便于对签名结果进行验签。
实施例四
本实施例在上述实施例三的基础上,提供了区块链数据处理方法的一个优选实施方式,能够基于确定的目标签名算法以及结构转化的签名数据结构,对数字签名进行验证。图4为本发明实施例四提供的一种区块链数据处理方法的流程图,如图4所示,该方法具体包括如下:
S410、获取目标用户的区块链密钥,目标事务数据,以及具有统一签名数据结构的统一签名结果。
S420、将统一签名结果中统一签名数据结构中的签名算法标识部分,作为目标事务数据的目标签名算法;将统一签名结果中统一签名数据结构中的签名内容部分,作为目标事务数据的目标签名内容。
在本发明具体实施例中,统一签名数据结构中至少划分有签名内容部分和签名算法标识部分,签名内容部分用于记录对于目标事务数据的数字签名,签名算法标识部分用户记录目标事务数据签名时的签名算法信息。根据统一签名结果,从统一签名数据结构的签名算法标识部分中提取目标事务数据的签名算法信息,确定目标签名算法,从统一签名数据结构的签名内容部分中提取目标事务数据的签名内容,确定目标签名内容。
可选的,若目标签名算法包括椭圆曲线数字签名算法,则根据统一签名结果和统一签名数据结构,确定椭圆曲线数字签名算法使用的目标椭圆曲线。
本实施例中,鉴于椭圆曲线数字签名算法中可以采用不同的椭圆曲线进行数字签名,因此可以根据算法标识,若检测到目标签名算法包括椭圆曲线数字签名算法,则需要从统一签名数据结构的签名算法标识部分中提取椭圆曲线信息,确定椭圆曲线数字签名算法使用的目标椭圆曲线。其中,还可以从目标用户的区块链密钥中提取目标椭圆曲线信息。
S430、将目标签名算法的签名数据结构,作为目标数据结构。
在本发明具体实施例中,鉴于针对目标签名内容,每一种签名算法都具有对应的原始签名数据结构,即签名算法对应的原始签名数据结构用于记录目标签名内容,而签名结果采用了统一签名数据结构。因此在验签的过程中,首先确定目标签名算法所采用的原始签名数据结构,将该与目标签名算法一致的原始签名数据结构作为目标数据结构。
S440、根据目标数据结构对目标签名内容进行解码,以将目标签名内容解码成目标数据结构。
在本发明具体实施例中,鉴于目标签名算法通常只能对与本身一致的签名数据结构进行解析,因此在确目标签名算法的目标数据结构之后,将目标签名内容解码成目标数据结构。
示例性的,假设具有统一签名数据结构的统一签名结果如下所示:
type XuperSignature struct {
SigType string
SigContent []byte
}。
其中,SigType为签名算法标识部分,根据SigType进行判断,确定目标事务数据采用了何种目标签名算法。SigContent为签名内容部分,根据SigContent可以提取出目标事务数据的目标签名内容即数字签名。
再例如,假设目标签名算法为多重签名算法,则确定多重算法对应的目标数据结构MultiSignature struct,将上述统一签名结果中的目标签名内容SigContent []byte转换为如下数据结构:
type MultiSignature struct {
S []byte
R []byte
}。
其中,S和R表示字节数组形式的目标签名内容。
S450、基于目标签名算法,采用目标用户的区块链密钥和目标事务数据,对解码成目标数据结构的目标签名内容进行验签。
在本发明具体实施例中,通过统一签名结果中签名算法的标识信息,接收方用户节点在获得目标事务数据时,面对一个二进制的签名数据,不会不知道该选择何种验签算法进行验证;面对一个二进制的签名数据,对于椭圆曲线类签名算法来说,不会不知道该选择何种椭圆曲线进行验证。进而直接基于标识出的目标签名算法的运算规则,采用目标用户的区块链密钥对目标签名内容进行解密,根据解密结果以及接收到的目标事务数据进行比对,实现对目标事务数据的快速验签。可选的,若目标签名算法包括椭圆曲线数字签名算法,则基于椭圆曲线数字签名算法,采用目标椭圆曲线、目标用户的区块链密钥和目标事务数据,对目标签名内容进行验签。
本实施例,对于多重签名算法等需要多个区块链密钥进行数字签名的算法,在随目标事务数据进行验签的过程中,可以基于区块链密钥的数量进行验证。可选的,若获取的目标用户的区块链密钥数量,与目标签名算法需要使用的区块链密钥数量不同,则确定验签错误。若数量相同,则继续进行后续的验证流程。进一步的,若获取的目标用户的区块链密钥数量,与目标签名算法需要使用的区块链密钥数量相同,则确定获取的至少两个目标用户的区块链密钥所使用的椭圆曲线是否相同;若使用的椭圆曲线不同,则确定验签错误;若使用的椭圆曲线相同,则继续进行后续的验证流程。其中,验签错误表示基于数字签名验证出发送方身份错误,和/或目标事务数据不具备完整性。
本实施例的技术方案,以目标用户为事务数据的发送方,用户节点获取目标用户的区块链密钥,目标事务数据,以及具有统一签名数据结构的统一签名结果,根据统一签名结果和统一签名数据结构,确定目标事务数据的目标签名算法和目标签名内容,基于目标签名算法,采用目标用户的区块链密钥和目标事务数据,对目标签名内容进行验签。本发明实施例通过接收具有统一签名数据结构的统一签名结果,使得签名结果中融合签名算法信息,在统一签名结果中直接体现使用的签名算法,为验签提供了签名算法的判断根据,从而基于确定的目标签名算法对目标事务数据进行验签,便于对签名结果进行验签。
实施例五
图5为本发明实施例五提供的一种区块链数据处理装置的结构示意图,本实施例可适用于区块链网络中的用户节点对事务数据进行数字签名的情况,该装置配置于用于节点,可实现本发明任意实施例所述的区块链数据处理方法。该装置具体包括如下:
事务数据确定模块510,用于确定目标用户待处理的目标事务数据;
数字签名模块520,用于基于目标签名算法,采用所述目标用户的区块链密钥对所述目标事务数据进行数字签名,以得到目标签名内容;
签名结果生成模块530,用于根据所述目标签名算法和所述目标签名内容,生成具有统一签名数据结构的统一签名结果。
可选的,所述签名结果生成模块530包括:
签名内容确定单元5301,用于根据所述目标签名内容,确定所述统一签名数据结构中的签名内容部分;
签名算法确定单元5302,用于根据所述目标签名算法,确定所述统一签名数据结构中的签名算法标识部分;
签名结果生成单元5303,用于生成包括所述签名算法标识部分和所述签名内容部分的统一签名结果。
可选的,所述签名内容确定单元5301具体用于:
对所述目标签名内容进行编码,得到目标签名字节数组;
将所述目标签名字节数组,作为所述统一签名数据结构中的签名内容部分的取值。
可选的,所述签名算法确定单元5302具体用于:
若所述目标签名算法包括椭圆曲线数字签名算法,则确定所述椭圆曲线数字签名算法使用的目标椭圆曲线;
根据所述椭圆曲线数字签名算法的标识信息以及所述目标椭圆曲线的标识信息,确定所述统一签名数据结构中的签名算法标识部分。
进一步的,所述装置还包括格式转化模块540,具体用于:
在所述生成具有统一签名数据结构的统一签名结果之后,将所述统一签名结果转化为字节数组格式,得到所述目标事务数据的最终签名结果。
本实施例的技术方案,通过各个功能模块之间的相互配合,实现了目标事务数据的确定、数字签名的生成、签名内容的确定、签名算法的确定、签名结果的生成以及签名数据结构的转化等功能。本发明实施例通过生成具有统一签名数据结构的统一签名结果,并将目标签名算法的标识信息融入到统一的签名结果当中,实现了区块链网络中签名数据结构的统一,支持区块链网络使用统一的数字签名技术,避免签名算法信息的额外独立添加和发送,使得签名结果中融合签名算法信息,在统一签名结果中直接体现使用的签名算法,便于对签名结果进行验签。
实施例六
图6为本发明实施例六提供的一种区块链数据处理装置的结构示意图,本实施例可适用于用户节点对接收到的事务数据进行验签的情况,该装置配置于用于节点,可实现本发明任意实施例所述的区块链数据处理方法。该装置具体包括如下:
签名结果获取模块610,用于获取目标用户的区块链密钥,目标事务数据,以及具有统一签名数据结构的统一签名结果;
数字签名确定模块620,用于根据所述统一签名结果和所述统一签名数据结构,确定所述目标事务数据的目标签名算法和目标签名内容;
验签模块630,用于基于所述目标签名算法,采用所述目标用户的区块链密钥和所述目标事务数据,对所述目标签名内容进行验签。
可选的,所述数字签名确定模块620具体用于:
将所述统一签名结果中所述统一签名数据结构中的签名算法标识部分,作为所述目标事务数据的目标签名算法;
将所述统一签名结果中所述统一签名数据结构中的签名内容部分,作为所述目标事务数据的目标签名内容。
可选的,所述验签模块630具体用于:
将所述目标签名算法的签名数据结构,作为目标数据结构;
根据所述目标数据结构对所述目标签名内容进行解码,以将所述目标签名内容解码成所述目标数据结构;
基于所述目标签名算法,采用所述目标用户的区块链密钥和所述目标事务数据,对解码成所述目标数据结构的目标签名内容进行验签。
可选的,若所述目标签名算法包括椭圆曲线数字签名算法,则所述数字签名确定模块620具体还用于:根据所述统一签名结果和所述统一签名数据结构,确定所述椭圆曲线数字签名算法使用的目标椭圆曲线;
相应地,所述验签模块630具体用于:基于所述椭圆曲线数字签名算法,采用所述目标椭圆曲线、所述目标用户的区块链密钥和所述目标事务数据,对所述目标签名内容进行验签。
可选的,所述签名结果获取模块610具体用于:
获取字节数组格式的目标事务数据的最终签名结果;
将所述目标事务数据的最终签名结果转化为所述统一签名数据结构,得到统一签名结果。
可选的,所述验签模块630具体用于:
若获取的目标用户的区块链密钥数量,与所述目标签名算法需要使用的区块链密钥数量不同,则确定验签错误;
若获取的目标用户的区块链密钥数量,与所述目标签名算法需要使用的区块链密钥数量相同,则确定获取的至少两个目标用户的区块链密钥所使用的椭圆曲线是否相同;
若使用的椭圆曲线不同,则确定验签错误。
本实施例的技术方案,通过各个功能模块之间的相互配合,实现了统一签名结果的获取、统一签名结果格式的幻化、基于同一签名数据结构进行的目标签名算法的确定和目标签名内容的确定、目标签名内容格式的转化和验签等功能。本发明实施例通过接收具有统一签名数据结构的统一签名结果,使得签名结果中融合签名算法信息,在统一签名结果中直接体现使用的签名算法,为验签提供了签名算法的判断根据,从而基于确定的目标签名算法对目标事务数据进行验签,便于对签名结果进行验签。
实施例七
图7为本发明实施例七提供的一种设备的结构示意图,图7示出了适于用来实现本发明实施例实施方式的示例性设备的框图。图7显示的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
图7显示的设备700仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。该设备700优选为承载区块链节点的电子设备。
如图7所示,设备700以通用计算设备的形式表现。设备700的组件可以包括但不限于:一个或者多个处理器710,***存储器720,连接不同***组件(包括***存储器720和处理器710)的总线730。
总线730表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
设备700典型地包括多种计算机***可读介质。这些介质可以是任何能够被设备700访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
***存储器720可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)721和/或高速缓存存储器722。设备700可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***723可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM, DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线730相连。***存储器720可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明实施例各实施例的功能。
具有一组(至少一个)程序模块724的程序/实用工具725,可以存储在例如***存储器720中,这样的程序模块724包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块724通常执行本发明实施例所描述的实施例中的功能和/或方法。
设备700也可以与一个或多个外部设备740(例如键盘、指向设备、显示器741等)通信,还可与一个或者多个使得用户能与该设备700交互的设备通信,和/或与使得该设备700能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,设备700还可以通过网络适配器760与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器760通过总线730与设备700的其它模块通信。应当明白,尽管图中未示出,可以结合设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理器710通过运行存储在***存储器720中的多个程序中的至少一个程序,从而执行各种功能应用以及数据处理,例如实现本发明第一方面实施例所提供的区块链数据处理方法,或者实现本发明第二方面实施例所提供的区块链数据处理方法。
实施例八
本发明实施例八还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时可实现上述任意实施例中由用户节点执行的一种区块链数据处理方法,该方法包括:
确定目标用户待处理的目标事务数据;
基于目标签名算法,采用所述目标用户的区块链密钥对所述目标事务数据进行数字签名,以得到目标签名内容;
根据所述目标签名算法和所述目标签名内容,生成具有统一签名数据结构的统一签名结果。
本发明实施例八还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时可实现上述任意实施例中由用户节点执行的另一种区块链数据处理方法,该方法包括:
获取目标用户的区块链密钥,目标事务数据,以及具有统一签名数据结构的统一签名结果;
根据所述统一签名结果和所述统一签名数据结构,确定所述目标事务数据的目标签名算法和目标签名内容;
基于所述目标签名算法,采用所述目标用户的区块链密钥和所述目标事务数据,对所述目标签名内容进行验签。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (12)
1.一种区块链数据处理方法,其特征在于,由用户节点执行,所述方法包括:
确定目标用户待处理的目标事务数据;
基于目标签名算法,采用所述目标用户的区块链密钥对所述目标事务数据进行数字签名,以得到目标签名内容;
根据所述目标签名算法和所述目标签名内容,生成具有统一签名数据结构的统一签名结果;
其中,所述根据所述目标签名算法和所述目标签名内容,生成具有统一签名数据结构的统一签名结果,包括:
根据所述目标签名内容,确定所述统一签名数据结构中的签名内容部分;
根据所述目标签名算法,确定所述统一签名数据结构中的签名算法标识部分;
生成包括所述签名算法标识部分和所述签名内容部分的统一签名结果;
其中,所述根据所述目标签名内容,确定所述统一签名数据结构中的签名内容部分,包括:
对所述目标签名内容进行编码,得到目标签名字节数组;
将所述目标签名字节数组,作为所述统一签名数据结构中的签名内容部分的取值。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标签名算法,确定所述统一签名数据结构中的签名算法标识部分,包括:
若所述目标签名算法包括椭圆曲线数字签名算法,则确定所述椭圆曲线数字签名算法使用的目标椭圆曲线;
根据所述椭圆曲线数字签名算法的标识信息以及所述目标椭圆曲线的标识信息,确定所述统一签名数据结构中的签名算法标识部分。
3.根据权利要求1所述的方法,其特征在于,在所述生成具有统一签名数据结构的统一签名结果之后,还包括:
将所述统一签名结果转化为字节数组格式,得到所述目标事务数据的最终签名结果。
4.一种区块链数据处理方法,其特征在于,由用户节点执行,所述方法包括:
获取目标用户的区块链密钥,目标事务数据,以及具有统一签名数据结构的统一签名结果;
根据所述统一签名结果和所述统一签名数据结构,确定所述目标事务数据的目标签名算法和目标签名内容;
基于所述目标签名算法,采用所述目标用户的区块链密钥和所述目标事务数据,对所述目标签名内容进行验签;
其中,所述基于所述目标签名算法,采用所述目标用户的区块链密钥和所述目标事务数据,对所述目标签名内容进行验签,包括:
将所述目标签名算法的签名数据结构,作为目标数据结构;
根据所述目标数据结构对所述目标签名内容进行解码,以将所述目标签名内容解码成所述目标数据结构;
基于所述目标签名算法,采用所述目标用户的区块链密钥和所述目标事务数据,对解码成所述目标数据结构的目标签名内容进行验签。
5.根据权利要求4所述的方法,其特征在于,所述根据所述统一签名结果和所述统一签名数据结构,确定所述目标事务数据的目标签名算法和目标签名内容,包括:
将所述统一签名结果中所述统一签名数据结构中的签名算法标识部分,作为所述目标事务数据的目标签名算法;
将所述统一签名结果中所述统一签名数据结构中的签名内容部分,作为所述目标事务数据的目标签名内容。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述目标签名算法包括椭圆曲线数字签名算法,则根据所述统一签名结果和所述统一签名数据结构,确定所述椭圆曲线数字签名算法使用的目标椭圆曲线;
相应地,所述基于所述目标签名算法,采用所述目标用户的区块链密钥和所述目标事务数据,对所述目标签名内容进行验签,包括:
基于所述椭圆曲线数字签名算法,采用所述目标椭圆曲线、所述目标用户的区块链密钥和所述目标事务数据,对所述目标签名内容进行验签。
7.根据权利要求4所述的方法,其特征在于,获取具有统一签名数据结构的统一签名结果,包括:
获取字节数组格式的目标事务数据的最终签名结果;
将所述目标事务数据的最终签名结果转化为所述统一签名数据结构,得到统一签名结果。
8.根据权利要求4所述的方法,其特征在于,所述基于所述目标签名算法,采用所述目标用户的区块链密钥和所述目标事务数据,对所述目标签名内容进行验签,包括:
若获取的目标用户的区块链密钥数量,与所述目标签名算法需要使用的区块链密钥数量不同,则确定验签错误;
若获取的目标用户的区块链密钥数量,与所述目标签名算法需要使用的区块链密钥数量相同,则确定获取的至少两个目标用户的区块链密钥所使用的椭圆曲线是否相同;
若使用的椭圆曲线不同,则确定验签错误。
9.一种区块链数据处理装置,其特征在于,配置于用户节点,所述装置包括:
事务数据确定模块,用于确定目标用户待处理的目标事务数据;
数字签名模块,用于基于目标签名算法,采用所述目标用户的区块链密钥对所述目标事务数据进行数字签名,以得到目标签名内容;
签名结果生成模块,用于根据所述目标签名算法和所述目标签名内容,生成具有统一签名数据结构的统一签名结果;
其中,所述签名结果生成模块包括:
签名内容确定单元,用于根据所述目标签名内容,确定所述统一签名数据结构中的签名内容部分;
签名算法确定单元,用于根据所述目标签名算法,确定所述统一签名数据结构中的签名算法标识部分;
签名结果生成单元,用于生成包括所述签名算法标识部分和所述签名内容部分的统一签名结果;
其中,所述签名内容确定单元具体用于:
对所述目标签名内容进行编码,得到目标签名字节数组;
将所述目标签名字节数组,作为所述统一签名数据结构中的签名内容部分的取值。
10.一种区块链数据处理装置,其特征在于,配置于用户节点,所述装置包括:
签名结果获取模块,用于获取目标用户的区块链密钥,目标事务数据,以及具有统一签名数据结构的统一签名结果;
数字签名确定模块,用于根据所述统一签名结果和所述统一签名数据结构,确定所述目标事务数据的目标签名算法和目标签名内容;
验签模块,用于基于所述目标签名算法,采用所述目标用户的区块链密钥和所述目标事务数据,对所述目标签名内容进行验签;
其中,所述验签模块具体用于:
将所述目标签名算法的签名数据结构,作为目标数据结构;
根据所述目标数据结构对所述目标签名内容进行解码,以将所述目标签名内容解码成所述目标数据结构;
基于所述目标签名算法,采用所述目标用户的区块链密钥和所述目标事务数据,对解码成所述目标数据结构的目标签名内容进行验签。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3中任一项所述的区块链数据处理方法,或者实现如权利要求4-8中任一项所述的区块链数据处理方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一项所述的区块链数据处理方法,或者执行时实现如权利要求4-8中任一项所述的区块链数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911002855.7A CN110517045B (zh) | 2019-10-22 | 2019-10-22 | 区块链数据处理方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911002855.7A CN110517045B (zh) | 2019-10-22 | 2019-10-22 | 区块链数据处理方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110517045A true CN110517045A (zh) | 2019-11-29 |
CN110517045B CN110517045B (zh) | 2020-02-04 |
Family
ID=68633574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911002855.7A Active CN110517045B (zh) | 2019-10-22 | 2019-10-22 | 区块链数据处理方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110517045B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116846564A (zh) * | 2023-08-30 | 2023-10-03 | 北京格尔国信科技有限公司 | 一种支持多算法的签名验签方法、***、终端及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106712965A (zh) * | 2017-01-17 | 2017-05-24 | 数安时代科技股份有限公司 | 数字签名方法、装置以及密码设备 |
CN106878318A (zh) * | 2017-03-03 | 2017-06-20 | 钱德君 | 一种区块链实时轮询云端*** |
US20180096347A1 (en) * | 2016-09-30 | 2018-04-05 | Cable Television Laboratories, Inc | Systems and methods for securely tracking consumable goods using a distributed ledger |
CN107888375A (zh) * | 2017-11-08 | 2018-04-06 | 深圳市携网科技有限公司 | 一种基于区块链技术的电子证据保全***及方法 |
CN108833114A (zh) * | 2018-06-13 | 2018-11-16 | 上海交通大学 | 一种基于区块链的去中心化身份认证***及方法 |
CN109034805A (zh) * | 2018-08-09 | 2018-12-18 | 江苏先安科技有限公司 | 一种适用于区块链和嵌入式领域的新型时间戳签名验证方法 |
-
2019
- 2019-10-22 CN CN201911002855.7A patent/CN110517045B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180096347A1 (en) * | 2016-09-30 | 2018-04-05 | Cable Television Laboratories, Inc | Systems and methods for securely tracking consumable goods using a distributed ledger |
CN106712965A (zh) * | 2017-01-17 | 2017-05-24 | 数安时代科技股份有限公司 | 数字签名方法、装置以及密码设备 |
CN106878318A (zh) * | 2017-03-03 | 2017-06-20 | 钱德君 | 一种区块链实时轮询云端*** |
CN107888375A (zh) * | 2017-11-08 | 2018-04-06 | 深圳市携网科技有限公司 | 一种基于区块链技术的电子证据保全***及方法 |
CN108833114A (zh) * | 2018-06-13 | 2018-11-16 | 上海交通大学 | 一种基于区块链的去中心化身份认证***及方法 |
CN109034805A (zh) * | 2018-08-09 | 2018-12-18 | 江苏先安科技有限公司 | 一种适用于区块链和嵌入式领域的新型时间戳签名验证方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116846564A (zh) * | 2023-08-30 | 2023-10-03 | 北京格尔国信科技有限公司 | 一种支持多算法的签名验签方法、***、终端及存储介质 |
CN116846564B (zh) * | 2023-08-30 | 2024-02-02 | 北京格尔国信科技有限公司 | 一种支持多算法的签名验签方法、***、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110517045B (zh) | 2020-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109150499B (zh) | 动态加密数据的方法、装置、计算机设备和存储介质 | |
CN107733656A (zh) | 一种密码认证方法及装置 | |
JP6592583B1 (ja) | 情報交換用の方法及び装置 | |
CN111131278B (zh) | 数据处理方法及装置、计算机存储介质、电子设备 | |
CN110460439A (zh) | 信息传输方法、装置、客户端、服务端及存储介质 | |
CN110011793A (zh) | 防伪溯源数据处理方法、装置、设备及介质 | |
CN106067874B (zh) | 一种将数据记录至服务器端的方法、终端和服务器 | |
CN110289947A (zh) | 数据传输一致性校验方法、装置、计算机设备及存储介质 | |
CN110176990A (zh) | 车辆组件更换识别方法、装置、计算机设备和存储介质 | |
US7751556B2 (en) | Apparatus and method of generating falsification detecting data of encrypted data in the course of process | |
CN105162588B (zh) | 一种媒体文件加解密方法和装置 | |
CN111556007A (zh) | 基于区块链的身份校验方法、装置、设备及存储介质 | |
CN107222759A (zh) | 媒体文件加解密的方法、***、设备和介质 | |
CN110414190A (zh) | 应用安装包的签名方法、相关装置、存储介质及电子设备 | |
CN112533185B (zh) | 一种音响配网方法、装置、计算机设备和存储介质 | |
CN110084599A (zh) | 密钥处理方法、装置、设备和存储介质 | |
CN109101664A (zh) | 一种轻量级节点的数据传输方法、装置、设备和介质 | |
CN109613990A (zh) | 软键盘安全输入方法、服务器、客户端、电子设备和介质 | |
CN109257176A (zh) | 基于sm2算法的解密密钥分割及解密方法、装置和介质 | |
US10296765B2 (en) | Multi-level security enforcement | |
CN107171808B (zh) | 一种电子档案真实性的验证方法及装置 | |
CN110545542B (zh) | 基于非对称加密算法的主控密钥下载方法、装置和计算机设备 | |
CN113038463B (zh) | 一种通讯加密认证实验装置 | |
CN109711178A (zh) | 一种键值对的存储方法、装置、设备及存储介质 | |
CN110517045A (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 |