CN112749967A - 交易数据的处理方法、装置、用户终端和服务器 - Google Patents
交易数据的处理方法、装置、用户终端和服务器 Download PDFInfo
- Publication number
- CN112749967A CN112749967A CN202110068289.0A CN202110068289A CN112749967A CN 112749967 A CN112749967 A CN 112749967A CN 202110068289 A CN202110068289 A CN 202110068289A CN 112749967 A CN112749967 A CN 112749967A
- Authority
- CN
- China
- Prior art keywords
- data
- account
- sub
- transaction data
- preset
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000012545 processing Methods 0.000 claims abstract description 152
- 238000012795 verification Methods 0.000 claims abstract description 145
- 238000000034 method Methods 0.000 claims abstract description 104
- 230000008569 process Effects 0.000 claims description 24
- 238000012546 transfer Methods 0.000 claims description 23
- 238000004422 calculation algorithm Methods 0.000 claims description 17
- 238000000151 deposition Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 3
- 238000010276 construction Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/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/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
- G06Q20/102—Bill distribution or payments
-
- 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/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3674—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
-
- 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
-
- 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)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Computer Networks & Wireless Communication (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书提供了交易数据的处理方法、装置、用户终端和服务器。基于该方法,在具体处理交易数据时,部署有基于UTXO模型的预设的智能合约的用户终端可以根据预设的智能合约,构建基于UTXO模型的预设结构的目标交易数据;其中,该目标交易数据至少包括票据数据,该票据分别与一个UTXO子账户对应;接着用户终端可以利用第一主链账户所持有的交易签名私钥对目标交易数据进行签名,再将签名后的目标交易数据发送至部署有预设的智能合约的服务器;服务器可以先对签名后的目标交易数据进行预设的验证处理,在验证通过的情况,进行相应的交易数据处理。从而能够适用更加多样、复杂的应用场景,高效、安全地实现多种涉及区块链的交易数据处理。
Description
技术领域
本说明书属于互联网技术领域,尤其涉及交易数据的处理方法、装置、用户终端和服务器。
背景技术
在涉及区块链的交易数据处理场景(例如,涉及代币数据的存入、转账等)中,现有方法大多是采用账户模型来实现具体的交易数据处理的。
但是,现有方法具体实施时,受限于账户模型,往往存在适用场景相对有限、通用性较差,且处理效率低的技术问题。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本说明书提供了一种交易数据的处理方法、装置、用户终端和服务器,以能够适用更加多样、复杂的应用场景,高效、安全地实现多种涉及区块链的交易数据处理,提高处理效率。
本说明书提供了一种交易数据的处理方法,所述方法应用于部署有预设的智能合约的用户终端,包括:
响应用户的交易请求,根据预设的智能合约,构建预设结构的目标交易数据;其中,所述目标交易数据至少包括票据数据;所述票据数据分别与一个UTXO子账户对应,且所述UTXO子账户为预先基于预设的智能合约所建立的;所述预设的智能合约包括基于UTXO模型的智能合约;
利用第一主链账户所持有的交易签名私钥对所述目标交易数据进行签名,得到签名后的目标交易数据;
将所述签名后的目标交易数据发送至服务器;其中,所述服务器部署有预设的智能合约,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
在一个实施例中,在响应用户的交易请求,根据预设的智能合约,构建预设结构的目标交易数据之前,所述方法还包括:
响应初始化请求,根据预设的智能合约生成多个与第一主链账户关联的UTXO子账户、第一主链账户的交易签名私钥和交易签名公钥,以及与多个UTXO子账户分别对应的多个子账户签名秘钥。
在一个实施例中,所述交易请求包括以下至少之一:存入代币数据请求、取出代币数据请求、向第二主链账户转账代币数据请求。
在一个实施例中,在所述交易请求包括存入代币数据请求的情况下,根据预设的智能合约,构建预设结构的目标交易数据,包括:
确定待存入的代币数据的数据值,作为第一数据值;
根据第一数据值,从与第一主链账户关联的不存在相对应的票据数据的UTXO子账户中确定出多个第一子账户;并通过所述多个第一子账户,生成多个待生成的票据数据;其中,所述待生成的票据数据分别与一个第一子账户对应;所述待生成的票据数据包括所对应的第一子账户的账户标识和所对应的数据值;所述多个待生成的票据数据的数据值的和等于所述第一数据值;
组合所述多个待生成的票据数据,以得到预设结构的目标交易数据。
在一个实施例中,在将所述签名后的目标交易数据发送至服务器的同时,还将所述待存入的代币数据发送至服务器;
相应的,所述服务器根据预设的智能合约,对所签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理,包括:
服务器对所述签名后的目标交易数据进行签名验证;
在签名验证通过的情况下,服务器统计目标交易数据中多个待生成的票据数据的数据值的和;并根据所述多个待生成的票据数据的数据值的和,和所述待存入的代币数据,进行数据值验证;
在数据值验证通过的情况下,服务器确认所述多个待生成的票据数据,并将所述多个待生成的票据数据存入预设的智能合约中。
在一个实施例中,在所述交易请求包括取出代币数据请求的情况下,根据预设的智能合约,构建预设结构的目标交易数据,包括:
确定待取出的代币数据的数据值,作为第二数据值;
根据所述第二数据值,从与第一主链账户关联的存在相对应的票据数据的UTXO子账户中确定出多个第二子账户;并通过所述多个第二子账户,生成多个待消耗的票据数据;其中,所述待消耗的票据数据分别与一个第二子账户对应;所述待消耗的票据包括所对应的第二子账户的账户标识、所对应的数据值、第一主链账户的交易签名公钥和所对应的第二子账户的子账户签名;所述多个待消耗的票据数据的数据值的和等于所述第二数据值;
组合所述多个待消耗的票据数据,以得到预设结构的目标交易数据。
在一个实施例中,所述第二子账户的子账户签名为利用与所述第二子账户对应的子账户签名秘钥对该第二子账户的账户标识、数据值和第一主链账户的交易签名公钥进行签名所得到的。
在一个实施例中,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理,包括:
所述服务器对所述签名后的目标交易数据进行签名验证;
在签名验证通过的情况下,服务器统计目标交易数据中多个待消耗的票据数据的数据值的和;并根据所述多个待消耗的票据数据的数据值的和,和所述待取出的代币数据,进行数据值验证;
在数据值验证通过的情况下,服务器销毁预设的智能合约中存储的待消耗的票据数据,并将数据值为第二数据值的代币数据发送给用户终端。
在一个实施例中,在所述交易请求包括向第二主链账户转账代币数据请求的情况下,根据预设的智能合约,构建预设结构的目标交易数据,包括:
确定待转账的代币数据的数据值,作为第三数据值;
根据所述第三数据值,从与第一主链账户关联的存在相对应的票据数据的UTXO子账户中确定出多个第三子账户;并通过所述多个第三子账户,生成多个待消耗的票据数据;其中,所述待消耗的票据数据分别与一个第三子账户对应;所述待消耗的票据包括所对应的第三子账户的账户标识、所对应的数据值、第一主链账户的交易签名公钥和所对应的第三子账户的子账户签名;所述多个待消耗的票据数据的数据值的和等于所述第三数据值;
从与第二主链账户关联的不存在相对应的票据数据的UTXO子账户中确定出多个第四子账户;并根据所述第三数据值,通过多个第四子账户,生成多个待生成的票据数据;其中,所述待生成的票据数据分别与一个第四子账户对应;所述待生成的票据数据包括所对应的第四子账户的账户标识和所对应的数据值;所述多个待生成的票据数据的数据值的和等于所述第三数据值;
组合所述多个待生成的票据数据和所述多个待消耗的票据,以得到预设结构的目标交易数据。
在一个实施例中,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理,包括:
所述服务器对所述签名后的目标交易数据进行签名验证;
在签名验证通过的情况下,服务器统计目标交易数据中多个待消耗的票据数据的数据值的和,以及多个待生成的票据数据的数据值的和;并根据所述多个待消耗的票据数据的数据值的和,以及多个待生成的票据数据的数据值的和,进行数据值验证;
在数据值验证通过的情况下,服务器销毁预设的智能合约中存储的待消耗的票据数据;并且,服务器确认所述多个待生成的票据数据,并将所述多个待生成的票据数据存入预设的智能合约中。
在一个实施例中,所述交易签名私钥和交易签名公钥为基于第一类秘钥算法生成的;所述子账户签名秘钥为基于第二类秘钥算法生成的。
本说明书还提供了一种交易数据的处理方法,所述方法应用于部署有预设的智能合约的服务器,包括:
接收签名后的目标交易数据;
根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理;其中,所述预设的智能合约包括基于UTXO模型的智能合约;
在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
在一个实施例中,所述预设的验证处理至少包括签名验证和数据值验证。
本说明书还提供了一种交易数据的处理装置,包括:
构建模块,用于响应用户的交易请求,根据预设的智能合约,构建预设结构的目标交易数据;其中,所述目标交易数据至少包括票据数据;所述票据数据分别与一个UTXO子账户对应,且所述UTXO子账户为预先基于预设的智能合约所建立的;所述预设的智能合约包括基于UTXO模型的智能合约;
签名模块,用于利用第一主链账户所持有的交易签名私钥对所述目标交易数据进行签名,得到签名后的目标交易数据;
发送模块,用于将所述签名后的目标交易数据发送至服务器;其中,所述服务器部署有预设的智能合约,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
本说明书还提供了一种交易数据的处理装置,包括:
接收模块,用于接收签名后的目标交易数据;
验证模块,用于根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理;其中,所述预设的智能合约包括基于UTXO模型的智能合约;
处理模块,用于在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述交易数据的处理方法的相关步骤。
本说明书还提供了一种用户终端,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现所述交易数据的处理方法的相关步骤。
本说明书还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现所述交易数据的处理方法的相关步骤。
本说明书提供的交易数据的处理方法、装置、用户终端和服务器,在具体处理交易数据前,部署有基于UTXO模型的预设的智能合约的用户终端可以先根据预设的智能合约进行初始化,生成多个与第一主链账户关联的UTXO子账户;并生成第一主链账户的交易签名私钥和交易签名公钥,以及与多个UTXO子账户分别对应的多个子账户签名秘钥;在具体处理交易数据时,用户终端可以先响应交易请求,根据预设的智能合约,构建基于UTXO模型的预设结构的目标交易数据;其中,该目标交易数据至少包括票据数据,且该票据分别与一个UTXO子账户对应;进一步,用户终端可以利用第一主链账户所持有的交易签名私钥对目标交易数据进行签名,得到签名后的目标交易数据;再将签名后的目标交易数据发送至部署有预设的智能合约的服务器;服务器可以先根据预设的智能合约,对签名后的目标交易数据进行预设的验证处理;在验证通过的情况,服务器再根据目标交易数据,进行相应的交易数据处理。从而能够适用更加多样、复杂的应用场景,高效、安全地实现多种涉及区块链的交易数据处理,提高整体的处理效率和存储效率。解决现有方法中存在的适用场景有限、通用性较差,且处理效率低的技术问题。
附图说明
为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是应用本说明书实施例提供的交易数据的处理方法的***的结构组成的一个实施例的示意图;
图2是本说明书的一个实施例提供的交易数据的处理方法的流程示意图;
图3是在一个场景示例中,应用本说明书实施例提供的交易数据的处理方法的一种实施例的示意图;
图4是在一个场景示例中,应用本说明书实施例提供的交易数据的处理方法的一种实施例的示意图;
图5是本说明书的一个实施例提供的交易数据的处理方法的流程示意图;
图6是本说明书的一个实施例提供的服务器的结构组成示意图;
图7是本说明书的一个实施例提供的交易数据的处理装置的结构组成示意图;
图8是本说明书的一个实施例提供的交易数据的处理装置的结构组成示意图;
图9是在一个场景示例中,应用本说明书实施例提供的交易数据的处理方法的一种实施例的示意图;
图10是在一个场景示例中,应用本说明书实施例提供的交易数据的处理方法的一种实施例的示意图;
图11是在一个场景示例中,应用本说明书实施例提供的交易数据的处理方法的一种实施例的示意图;
图12是在一个场景示例中,应用本说明书实施例提供的交易数据的处理方法的一种实施例的示意图;
图13是在一个场景示例中,应用本说明书实施例提供的交易数据的处理方法的一种实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
考虑到在涉及区块链的交易数据处理场景中,大多采用基于账户模型的处理方式(例如,以太坊、EOS等)进行具体的交易数据处理。但是,受限于账户模型本身的局限性(例如,可扩展性低、适用场景少等),导致上述方法具体实施时往往存在适用场景往往相对有限、通用性较差,例如,无法有效处理复杂、多样的场景下的交易数据,以及处理效率低等技术问题。
针对产生上述问题的根本原因,本说明书考虑可以引入UTXO(UnspentTransaction Outputs,未使用交易输出)模型来代替账户模型,利用UTXO模型的特性,构建基于UTXO模型的预设的智能合约,并将上述预设的智能合约分别部署到用户终端和服务器上。
在具体处理交易数据之前,用户终端可以先根据预设的智能合约进行初始化,生成多个与第一主链账户关联的UTXO子账户;同时,生成第一主链账户的交易签名私钥和交易签名公钥,以及与多个UTXO子账户分别对应的多个子账户签名秘钥。
在具体处理交易数据时,用户终端可以先响应交易请求,根据预设的智能合约,构建基于UTXO模型的预设结构的目标交易数据;其中,该目标交易数据至少包括票据数据,且票据分别与一个UTXO子账户对应;进一步,用户终端可以利用第一主链账户所持有的交易签名私钥对目标交易数据签名;再将签名后的目标交易数据发送至部署有预设的智能合约的服务器。服务器接收到上述签名后的目标交易数据后,可以先对签名后的目标交易数据进行预设的验证处理;在验证通过的情况,再进行相应的交易数据处理。
通过上述基于UTXO模型的处理方式,能够适用于更加多样、复杂的应用场景,高效、安全地实现多种涉及区块链的交易数据处理,解决了现有方法中存在适用场景有限、通用性较差,且处理效率低的技术问题。
本说明书实施例提供一种交易数据的处理方法,所述交易数据的处理方法具体可以应用于包含有服务器和用户终端的***中。具体可以参阅图1所示。其中,用户终端和服务器可以通过有线或无线的方式相连,以进行具体的数据交互。
在本实施例中,所述服务器具体可以包括一种应用于业务平台一侧,能够实现数据传输、数据处理等功能的后台服务器。具体的,所述服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述服务器的数量。所述服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
在本实施例中,所述用户终端具体可以包括一种应用于用户一侧,能够实现数据采集、数据传输等功能的前端电子设备。具体的,所述用户终端例如可以为台式电脑、平板电脑、笔记本电脑、智能手机等。或者,所述用户终端也可以为能够运行于上述电子设备中的软件应用。例如,可以是在智能手机上运行的某APP等。
在本实施例中,上述用户终端和服务器分别部署有基于UTXO模型的智能合约。上述服务器具体还可以是一种接入区块链的计算节点。
具体处理交易数据前,用户终端可以响应初始化请求,根据预设的智能合约生成与登录该用户终端的第一主链账户关联多个的UTXO子账户;同时,根据相应的秘钥算法生成第一主链账户的交易签名私钥和交易签名公钥,以及与多个UTXO子账户分别对应的多个子账户签名秘钥。
具体处理交易数据时,首先,用户终端可以响应用户的交易请求,根据预设的智能合约,构建预设结构的目标交易数据;其中,所述目标交易数据至少包括票据数据;所述票据数据分别与一个UTXO子账户对应。
接着,用户终端可以利用第一主链账户所持有的交易签名私钥对所述目标交易数据进行签名,得到签名后的目标交易数据;再将所述签名后的目标交易数据发送至服务器。
服务器在接收到用户终端发送的签名后的目标交易数据后,可以先根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理。
在验证通过的情况下,进一步,服务器可以根据所述目标交易数据,进行相应的交易数据处理。
通过上述***,可以适用更加多样、复杂的应用场景,高效、安全地实现多种涉及区块链的交易数据处理,提高数据的存储效率。
参阅图2所示,本说明书实施例提供了一种交易数据的处理方法。其中,该方法具体应用于用户终端一侧。具体实施时,该方法可以包括以下内容。
S201:响应用户的交易请求,根据预设的智能合约,构建预设结构的目标交易数据;其中,所述目标交易数据至少包括票据数据;所述票据数据分别与一个UTXO子账户对应,且所述UTXO子账户为预先基于预设的智能合约所建立的;所述预设的智能合约包括基于UTXO模型的智能合约。
在一个实施例中,具体实施时,用户终端可以接收并根据用户发出的相应操作,生成对应的交易请求。
在一个实施例中,基于预先部署于用户终端的预设的智能合约,用户终端可以针对多样化的应用场景,接收并处理多种不同类型的交易请求,以便能够满足用户的多样化的交易需求,实现涉及区块链的代币数据的多种不同类型的交易数据处理。
在本实施例中,上述预设的智能合约具体可以理解为UTXO模型的智能合约。
其中,上述UTXO(Unspent Transaction Outputs,未使用交易输出)模型具体可以理解为一种区块链网络中的区别于常规方法所采用的账户模型的交易记录模型。具体的,基于UTXO模型,每笔交易都会花费先前交易的产出(例如,账单、票据等),并产生新的产出,而新产生的产出又可能会在未来通过交易消耗掉,所有未消耗的产出会分别保存在与用户的账户(例如,用户的电子钱包、主链账户等)关联,且同步的多个不同节点(例如,子账户等)中。用户的账户可以通过累积所关联的节点中保存的产出,记录用户所持有的代币数据。同时也可以通过使用关联的节点中保存的产出进行具体交易,并且每一个节点所保存的产出只能使用一次。
上述智能合约(Smart Contract)具体可以理解为一种旨在以信息化方式传播、验证或执行合的,用于进行某种具体数据处理的,具有不可篡改特性计算机协议。基于智能合约,可以允许在没有第三方的情况下进行可信的数据处理。用户的钱包跟踪与用户拥有的所有地址相关联的未使用交易的列表,并且钱包的余额被计算为这些未使用的交易的总和。
上述预设的智能合约具体可以理解为针对交易数据处理场景,将上述UTXO模型与智能合约进行结合,所构建得到,同时具备UTXO模型和智能合约的特性的协议规则。
在本实施例中,上述代币数据具体可以理解为一种数字货币。具体的,例如,上述代币数据可以是比特币等数字货币。
在一个实施例中,具体实施前,可以预先分别在用户终端和服务器部署上述预设的智能合约。其中,上述用户终端为用户持有的,且登录有用户的第一主链账户的终端设备。上述服务器为链上负责交易数据处理的节点服务器或计算节点。
在一个实施例中,在响应用户的交易请求,根据预设的智能合约,构建预设结构的目标交易数据之前,所述方法具体实施时,还可以包括以下内容:响应初始化请求,根据预设的智能合约生成多个与第一主链账户关联的UTXO子账户、第一主链账户的交易签名私钥和交易签名公钥,以及与多个UTXO子账户分别对应的多个子账户签名秘钥。
在本实施例中,具体实施时,用户终端可以接收并响应用户发起的初始化请求,根据预设的智能合约,通过相应的秘钥算法生成第一主链账户所持有的交易签名秘钥对(包括交易签名私钥SpenderSk和交易签名公钥SpenderPk);通过相应的秘钥算法生成多个UTXO子账户的子账户签名秘钥。
在一个实施例中,具体实施时,用户终端可以根据预设的智能合约,通过相应的秘钥算法生成多个子账户秘钥后,将上述多个子账户秘钥作为用于指示所对应的UTXO子账户的账户标识(或者称账户地址)。从而可以得到多个UTXO子账户,以及与所述多个UTXO子账户分别对应的子账户签名秘钥。
通过上述实施例,用户终端可以得到主链账户的交易签名私钥和交易签名公钥、与主链账户关联的基于预设的智能合约的多个UTXO子账户,以及与多个UTXO子账户分别对应的多个子账户秘钥,完成初始化。
在一个实施例中,具体实施时,可以采用不同的秘钥算法来分别生成交易签名秘钥对,和子账户签名秘钥,从而可以提高相关数据的安全性。
具体的,所述交易签名私钥和交易签名公钥可以为基于第一类秘钥算法生成的;所述子账户签名秘钥可以为基于第二类秘钥算法生成的。
在一个实施例中,具体的,上述第一类秘钥算法可以是为Secp256K1,上述第二类秘钥算法可以是Curve25519。其中,Secp256K1、Curve25519为两种不同类型的椭圆曲线秘钥算法。当然,需要说明的是,上述所列举的两种秘钥算法只是一种示意性说明。具体实施时,根据具体的应用场景和处理需求,还可以选择使用其他类型的秘钥算法来生成交易签名秘钥对和子账户签名秘钥。
在一个实施例中,针对不同的应用场景和处理需求,上述交易请求具体可以包括以下所列举的交易请求中的一种或多种:存入代币数据请求、取出代币数据请求、向第二主链账户转账代币数据请求等。
其中,上述存入代币数据请求具体可以指示将用户持有的代币数据存入链上。上述取出代币数据请求具体可以用于指示将用户存在链上的代币数据提取出来。上述向第二主链账户转账代币数据请求具体可以用于指示将原本用户存在链上的代币数据转账给其他主链账户(例如,第二主链账户)。
在一个实施例中,具体实施时,用户终端可以根据预设的智能合约,区别不同类型的交易请求,构建得到与交易请求的类型相匹配的预设结构(或者称预设的交易结构)的目标交易数据。从而可以使得用户终端能够适用于多样、复杂的应用场景,满足用户多样化的需求,支持多种不同类型的交易数据处理。
其中,所述目标交易数据至少包括票据数据(或者账单数据),可以记为Note。进一步,上述每一个票据数据又分别与一个UTXO子账户对应。
在本实施例中,上述票据数据具体可以理解为一种用于指示所对应的UTXO子账户关联的代币数据的凭证数据。具体的,上述票据数据至少包含有所对应的UTXO子账户的账户标识(可以记为Owner)和所对应的代币数据的数据值(可以记为Value)两部分。
在本实施例中,每一个票据数据可以分别拥有唯一的key值。相应的,每一个票据数据可以通过K-V方式进行存储。
在一个实施例中,针对不同的应用场景和处理需求,上述票据数据进一步可以包括:待生成的票据数据(可以记为OutputNotes)和待消耗的票据数据(InputNotes)两种不同类型的票据数据。相应的,对应不同类型的交易请求,在根据预设的智能合约构建预设结构的目标交易数据时,所使用的票据数据的类型也可以是不同的。其中,上述待生成的票据数据具体可以为当前还未存入预设的智能合约中的票据数据,上述待消耗的票据数据具体可以为当前已经存入预设的智能合约中的票据数据。
下面将以存入代币数据请求、取出代币数据请求、向第二主链账户转账代币数据请求三种类型的交易请求为例,具体说明基于本说明书所提供的方法,如何根据预设的智能合约,针对不同的交易请求,构建相匹配的预设结构的目标交易数据。
在一个实施例中,在所述交易请求包括存入代币数据请求的情况下,根据预设的智能合约,构建预设结构的目标交易数据,具体实施时,可以包括以下内容:
S1:确定待存入的代币数据的数据值,作为第一数据值;
S2:从与第一主链账户关联的不存在相对应的票据数据的UTXO子账户中确定出多个第一子账户;
S3:根据第一数据值,通过多个第一子账户,生成多个待生成的票据数据;其中,所述待生成的票据数据分别与一个第一子账户对应;所述待生成的票据数据包括所对应的第一子账户的账户标识和所对应的数据值;所述多个待生成的票据数据的数据值的和等于所述第一数据值;
S4:组合所述多个待生成的票据数据,以得到预设结构的目标交易数据。
在本实施例中,上述第一数据值具体可以理解为待存入的代币数据的数据值(或者称价值)的总和。
在本实施例中,第一子账户具体可以理解为与第一主链账户关联,且当前不持有(或者不存在)相对应的票据数据的UTXO子账户。
在本实施例中,上述待生成的票据数据分别与一个第一子账户对应。具体的,可以参阅图3所示,每一个待生成的票据数据包括两部数据:所对应的第一子账户的账户标识(例如,Owner)和所对应代币数据的数据值(例如,Value)。
具体的,上述第一子账户的账户标识可以使用与第一子账户对应的子账户签名秘钥来表示。
在本实施例中,在交易请求为存入代币数据的情况下,所构建的预设结构的目标交易数据可以只包括待生成的票据数据。
在本实施例中,在具体根据第一数据值,从与第一主链账户关联的不存在相对应的票据数据的UTXO子账户中确定出多个第一子账户;并通过所述多个第一子账户,生成多个待生成的票据数据时,用户终端可以根据预设的智能合约,结合第一数据值,进行相关计算,以挑选合适数量的第一子账户,并针对各个第一子账户配置合适的数据值,以使得最终得到的与多个第一子账户分别对应的多个待生成的票据数据的数据值的和等于所述第一数据值。
具体的,例如,待存入的代币数据的价值为3,对应第一数据值为3。服务器可以根据预设的智能合约,结合第一数据值,通过计算,挑选出3个第一子账户;并针对各个第一子账户配置1作为数据值,进而可以得到3个数据值都为1的待生成的票据数据。当然,服务器也可以根据预设的智能合约,结合第一数据值,通过计算,挑选出2个第一子账户(第一子账户1和第一子账户2);并随机针对第一子账户1配置1作为数据值,针对第一子账户2配置2作为数据值,进而可以得到数据值分别为1和2的两个待生成的票据数据。
当然,上述所列举的待生成的票据数据的生成方式只是一种示意性说明。具体实施时,还可以采用其他合适的计算方式来生成相应的待生成的票据数据,只要使得最终得到的多个待生成的票据数据的数据值的和等于第一数据值即可。
在一个实施例中,在按照上述方式,得到多个待生成的票据数据后,可以将上述多个待生成的票据数据通过拼接方式组合成一个数据列表,从而可以得到与存入代币数据请求相匹配的预设结构的目标交易数据。
在一个实施例中,在所述交易请求包括取出代币数据请求的情况下,上述根据预设的智能合约,构建预设结构的目标交易数据,具体实施时,可以包括以下内容:
S1:确定待取出的代币数据的数据值,作为第二数据值;
S2:根据所述第二数据值,从与第一主链账户关联的存在相对应的票据数据的UTXO子账户中确定出多个第二子账户;并通过所述多个第二子账户,生成多个待消耗的票据数据;其中,所述待消耗的票据数据分别与一个第二子账户对应;所述待消耗的票据包括所对应的第二子账户的账户标识、所对应的数据值、第一主链账户的交易签名公钥和所对应的第二子账户的子账户签名;所述多个待消耗的票据数据的数据值的和等于所述第二数据值;
S3:组合所述多个待消耗的票据数据,以得到预设结构的目标交易数据。
在本实施例中,上述第二数据值具体可以理解为待取出的代币数据的数据值(或者称价值)的总和。
在本实施例中,第二子账户具体可以理解为与第一主链账户关联,且当前持有所对应的票据数据的UTXO子账户。
在本实施例中,上述待消耗的票据数据分别与一个第二子账户对应。具体的,可以参阅图4所示,每一个待消耗的票据数据包括四部数据:所对应的第二子账户的账户标识(例如,Owner)、所对应代币数据的数据值(例如,Value),以及第一主链账户的交易签名公钥(例如,SpenderPk)、所对应的第二子账户的子账户签名(Signature’)。
其中,上述第一主链账户的交易签名公钥用于表征第二子账户允许持有与该交易签名公钥对应的交易签名私钥的第一主链账户消耗所持有的票据数据。
上述第二子账户的子账户签名具体可以为利用与所述第二子账户对应的子账户签名秘钥对该第二子账户的账户标识、数据值和第一主链账户的交易签名公钥进行签名所得到的。通过利用子账户签名秘钥对所对应的第二子账户的账户标识、数据值和第一主链账户的交易签名公钥进行签名,可以有效地保护该待消耗的票据数据的数据安全。
具体的,上述第二子账户的账户标识可以使用与第二子账户对应的子账户签名秘钥来表示。
在本实施例中,在交易请求为取出代币数据的情况下,所构建的预设结构的目标交易数据可以只包括待消耗的票据数据。
在本实施例中,在具体根据第二数据值,从与第一主链账户关联的存在相对应的票据数据的UTXO子账户中确定出多个第二子账户;并通过所述多个第二子账户,生成多个待生成的票据数据时,用户终端可以根据预设的智能合约,结合第二数据值,进行相关计算,以挑选合适数量,所对应的票据数据的数据值合适的第二子账户来生成相应的多个待消耗的票据数据,以使得最终得到的与多个第二子账户分别对应的多个待消耗的票据数据的数据值的和等于所述第二数据值。此外,上述待消耗的票据数据还包含有第一主链账户的交易签名公钥,以及利用所对应的第二子账户的子账户签名秘钥签名得到的子账户签名。
具体的,例如,待取出的代币数据的价值为3,对应第二数据值为3。服务器可以根据预设的智能合约,结合第二数据值,通过计算,挑选出2两个合适的第二子账户(第二子账户1和第二子账户2),其中,预设的智能合约中当前存有的与第二子账户1对应的票据数据的数据值为1,预设的智能合约中当前存有的与第二子账户2对应的票据数据的数据值2。
相应的,用户终端可以根据预设的智能合约,结合第二数据值,通过上述两个第二子账户确定两个待消耗的票据数据(待消耗的票据数据1和待消耗的票据数据2)。
其中,待消耗的票据数据1是与第二子账户1对应,待消耗的票据数据1所包含的第二子账户的账户标识为与第二子账户1对应的子账户签名秘钥,所包含的数据值为1。此外,上述待消耗的票据数据1还包含有第一主链账户的交易签名公钥,以及利用第二子账户1的子账户签名秘钥签名得到的子账户签名。
而待消耗的票据数据2与第二子账户2对应,待消耗的票据数据2所包含的第二子账户的账户标识为与第二子账户2对应的子账户签名秘钥,所包含的数据值为2。此外,上述待消耗的票据数据2还包含有第一主链账户的交易签名公钥,以及利用第二子账户2的子账户签名秘钥签名得到的子账户签名。
当然,上述所列举的待消耗的票据数据的生成方式只是一种示意性说明。具体实施时,还可以采用其他合适的计算方式来生成相应的待消耗的票据数据,只要使得最终得到的多个待消耗的票据数据的数据值的和等于第二数据值即可。
在一个实施例中,在按照上述方式,得到多个待消耗的票据数据后,可以将上述多个待消耗的票据数据通过拼接方式组合为一个数据列表,从而可以得到与取出代币数据请求相匹配的预设结构的目标交易数据。
在一个实施例中,在所述交易请求包括向第二主链账户转账代币数据请求的情况下,上述根据预设的智能合约,构建预设结构的目标交易数据,具体实施时,可以包括以下内容:
S1:确定待转账的代币数据的数据值,作为第三数据值;
S2:根据所述第三数据值,从与第一主链账户关联的存在相对应的票据数据的UTXO子账户中确定出多个第三子账户;并通过所述多个第三子账户,生成多个待消耗的票据数据;其中,所述待消耗的票据数据分别与一个第三子账户对应;所述待消耗的票据包括所对应的第三子账户的账户标识、所对应的数据值、第一主链账户的交易签名公钥和所对应的第三子账户的子账户签名;所述多个待消耗的票据数据的数据值的和等于所述第三数据值;
S3:从与第二主链账户关联的不存在相对应的票据数据的UTXO子账户中确定出多个第四子账户;并根据所述第三数据值,通过多个第四子账户,生成多个待生成的票据数据;其中,所述待生成的票据数据分别与一个第四子账户对应;所述待生成的票据数据包括所对应的第四子账户的账户标识和所对应的数据值;所述多个待生成的票据数据的数据值的和等于所述第三数据值;
S4:组合所述多个待生成的票据数据和所述多个待消耗的票据,以得到预设结构的目标交易数据。
在本实施例中,上述第三数据值具体可以理解为待由第一主链账户转账给第二主链账户的代币数据的数据值(或者称价值)的总和。
在本实施例中,第三子账户具体可以理解为与第一主链账户(作为转账发起方)关联,且当前持有所对应的票据数据的UTXO子账户。第四子账户具体可以理解为第二主链账户(作为转账接受方)关联,且当前没有持有所对应的票据数据的UTXO子账户。
在本实施例中,上述待消耗的票据数据分别与一个第三子账户对应。具体的,每一个待消耗的票据数据包括四部数据:所对应的第三子账户的账户标识(例如,Owner)、所对应代币数据的数据值(例如,Value),以及第三主链账户的交易签名公钥、所对应的第三子账户的子账户签名(Signature”)。
其中,上述第一主链账户的交易签名公钥用于表征第三子账户允许持有与该交易签名公钥对应的交易签名私钥的第一主链账户消耗所持有的票据数据。
具体的,上述第三子账户的账户标识可以使用与第三子账户对应的子账户签名秘钥来表示。
在本实施例中,上述待生成的票据数据分别与一个第四子账户对应。具体的,每一个待生成的票据数据包括两部数据:所对应的第四子账户的账户标识(例如,Owner)和所对应代币数据的数据值(例如,Value)。
具体的,上述第四子账户的账户标识可以使用与第四子账户对应的子账户签名秘钥来表示。
在本实施例中,在交易请求为向第二主链账户转账的代币数据请求的情况下,所构建的预设结构的目标交易数据可以同时包括待生成的票据数据和待消耗的票据数据。
在本实施例中,在具体根据第三数据值,从与第一主链账户关联的存在相对应的票据数据的UTXO子账户中确定出多个第三子账户;并通过所述多个第三子账户,生成多个待生成的票据数据时,用户终端可以根据预设的智能合约,结合第三数据值,进行相关计算,以挑选合适数量,所对应的票据数据的数据值合适的第三子账户来生成相应的多个待消耗的票据数据,以使得最终得到的与多个第三子账户分别对应的多个待消耗的票据数据的数据值的和等于所述第三数据值。此外,上述待消耗的票据数据还包含有第一主链账户的交易签名公钥,以及利用所对应的第三子账户的子账户签名秘钥签名得到的子账户签名。具体实施过程可以参阅交易请求为存取出代币数据情况下的待消耗的票据数据生成的实施例,本说明书不再赘述。
在本实施例中,在具体根据第三数据值,从与第二主链账户关联的不存在相对应的票据数据的UTXO子账户中确定出多个第四子账户;并通过所述多个第四子账户,生成多个待生成的票据数据时,用户终端可以根据预设的智能合约,结合第三数据值,进行相关计算,以挑选合适数量的第四子账户,并针对各个第四子账户配置合适的数据值,以使得最终得到的与多个第四子账户分别对应的多个待生成的票据数据的数据值的和等于所述第三数据值。具体实施过程可以参阅交易请求为存入代币数据情况下的待生成的票据数据生成的实施例,本说明书不再赘述。
在一个实施例中,在按照上述方式,得到多个待消耗的票据数据和多个待生成的票据数据后,可以将上述多个待消耗的票据数据和多个待生成的票据数据通过拼接方式组合为一个数据列表,从而可以得到与向第二主链账户转账的代币数据请求相匹配的预设结构的目标交易数据。
S202:利用第一主链账户所持有的交易签名私钥对所述目标交易数据进行签名,得到签名后的目标交易数据。
在本实施例中,用户终端可以利用所持有的交易签名私钥对上述预设结构的目标交易数据中所包含的票据数据进行签名,得到携带有对应的交易签名(Signature)的签名后的目标交易数据。
通过利用交易签名私钥对目标交易数据进行签名,可以有效地避免目标交易数据在传输的过程中遭到篡改,从而可以更好地保护数据安全。
S203:将所述签名后的目标交易数据发送至服务器;其中,所述服务器部署有预设的智能合约,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
在本实施例中,用户终端可以将上述签名后的目标交易数据通过有线或无线的方式发送到部署有预设的智能合约的服务器,以请求服务器进行相应处理。
服务器在接收到上述签名后的目标交易数据后,可以先根据预设的智能合约,区分对应不同类型交易请求的预设结构的目标交易数据。进而可以根据预设的智能合约,采用不同的验证方式对签名后的目标交易数据进行预设的验证处理,并在确定验证通过的情况下,根据该目标交易数据进行多种不同的交易数据处理。
从而可以使得服务器能够适用于多样、复杂的应用场景,满足用户多样化的需求,实现多种不同类型的交易数据处理。
下面将以分别与存入代币数据请求、取出代币数据请求、向第二主链账户转账代币数据请求三种类型的交易请求对应的目标交易数据为例,具体说明基于本说明书所提供的方法,服务器如何根据预设的智能合约,对所接收到的签名后的交易数据进行处理的。
在一个实施例中,在所述目标交易请求为与存入代币数据请求对应的情况下,用户终端在将所述签名后的目标交易数据发送至服务器的同时,还会将所述待存入的代币数据发送至服务器。
在本实施例中,具体实施时,用户终端可以根据预设的智能合约的合约地址,将所述代币数据发送至服务器或者链上其他负责代币数据存储的节点。
相应的,所述服务器根据预设的智能合约,对所签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理,具体实施时,可以包括以下内容:
S1:服务器对所述签名后的目标交易数据进行签名验证;
S2:在签名验证通过的情况下,服务器统计目标交易数据中多个待生成的票据数据的数据值的和;并根据所述多个待生成的票据数据的数据值的和,和所述待存入的代币数据,进行数据值验证;
S3:在数据值验证通过的情况下,服务器确认所述多个待生成的票据数据,并将所述多个待生成的票据数据存入预设的智能合约中。
在本实施例中,服务器可以根据预设的智能合约,先确定出发起该签名后的目标交易请求的第一主链账户,并获取该第一主链账户的交易签名公钥;进而可以根据所获取的交易签名公钥对签名后的目标交易数据中的交易签名进行签名验证。
在签名验证未通过的情况下,服务器可以拒绝执行关于该目标交易数据的交易数据处理,生成并向用户终端反馈错误提示。
在签名验证通过的情况下,服务器可以继续对目标交易数据进行数据值验证。
具体的,服务器可以统计目标交易数据中所包含的多个待生成的票据数据值的和;同时,确定待存入的代币数据的数据值;继而可以比较目标交易数据中所包含的多个待生成的票据数据的数据值的和,与待存入的代币数据的数据值的数据值是否相等。
如果不相等,则确定数据值验证未通过,服务器可以拒绝执行关于该目标交易数据的交易数据处理,生成并向用户终端反馈错误提示。
如果相等,则确定数据值验证通过,服务器可以根据目标交易数据进行具体的交易数据处理。
在本实施例中,在数据值验证通过的情况下,服务器可以确认所述多个待生成的票据数据,并将所述多个待生成的票据数据存入预设的智能合约中。同时,服务器可以将所接收到代币数据存到链上。从而完成代币数据的存入。
在本实施例中,服务器在完成代币数据的存入后,还可以生成并向用户终端反馈对应的存入成功的提示信息,以提示用户已经确定并存入相应的待生成的票据数据。
在一个实施例中,在所述目标交易请求为与取出代币数据请求对应的情况下,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理,具体实施时,可以包括以下内容:
S1:所述服务器对所述签名后的目标交易数据进行签名验证;
S2:在签名验证通过的情况下,服务器统计目标交易数据中多个待消耗的票据数据的数据值的和;并根据所述多个待消耗的票据数据的数据值的和,和所述待取出的代币数据,进行数据值验证;
S3:在数据值验证通过的情况下,服务器销毁预设的智能合约中存储的待消耗的票据数据,并将数据值为第二数据值的代币数据发送给用户终端。
在本实施例中,在签名验证未通过的情况下,服务器可以拒绝执行关于该目标交易数据的交易数据处理,生成并向用户终端反馈错误提示。
在签名验证通过的情况下,服务器可以继续对目标交易数据进行数据值验证。
具体的,服务器可以统计目标交易数据中所包含的多个待消耗的票据数据值的和;同时,确定待取出的代币数据的数据值;继而可以比较目标交易数据中所包含的多个待消耗的票据数据的数据值的和,与待取出的代币数据的数据值的数据值是否相等。
如果不相等,则确定数据值验证未通过,服务器可以拒绝执行关于该目标交易数据的交易数据处理,生成并向用户终端反馈错误提示。
如果相等,则确定数据值验证通过,服务器可以根据目标交易数据进行具体的交易数据处理。
在本实施例中,在数据值验证通过的情况下,服务器可以将原本存储于预设的智能合约中的待消耗的票据数据进行销毁处理。同时,服务器还会将数据值等于第二数据值的代币数据从链上取出发送给用户终端。
在本实施例中,服务器在完成代币数据的取出后,还可以生成并向用户终端反馈对应的提取成功的提示信息,以提示用户已经取出待消耗的票据数据所对应的代币数据。
在一个实施例中,在所述目标交易请求为与向第二主链账户转账代币数据请求对应的情况下,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理,具体实施时,可以包括以下内容:
S1:所述服务器对所述签名后的目标交易数据进行签名验证;
S2:在签名验证通过的情况下,服务器统计目标交易数据中多个待消耗的票据数据的数据值的和,以及多个待生成的票据数据的数据值的和;并根据所述多个待消耗的票据数据的数据值的和,以及多个待生成的票据数据的数据值的和,进行数据值验证;
S3:在数据值验证通过的情况下,服务器销毁预设的智能合约中存储的待消耗的票据数据;并且,服务器确认所述多个待生成的票据数据,并将所述多个待生成的票据数据存入预设的智能合约中。
在本实施例中,在签名验证未通过的情况下,服务器可以拒绝执行关于该目标交易数据的交易数据处理,生成并向用户终端反馈错误提示。
在签名验证通过的情况下,服务器可以继续对目标交易数据进行数据值验证。
具体的,服务器可以统计目标交易数据中所包含的多个待消耗的票据数据值的和;同时,统计目标交易数据中所包含的多个待生成的票据数据的数据值的和;继而可以比较目标交易数据中所包含的多个待消耗的票据数据的数据值的和,与多个待生成的票据数据的数据值的和是否相等。
如果不相等,则确定数据值验证未通过,服务器可以拒绝执行关于该目标交易数据的交易数据处理,生成并向用户终端反馈错误提示。
如果相等,则确定数据值验证通过,服务器可以根据目标交易数据进行具体的交易数据处理。
在本实施例中,在数据值验证通过的情况下,服务器可以将原本存储于预设的智能合约中的待消耗的票据数据进行销毁处理。同时,服务器还会确认并在预设的智能合约中存入待生成的票据数据。这样就可以将原本第一主链账户的代币数据转账到了第二主链账户。
在本实施例中,服务器在完成代币数据的转账后,还可以生成并向用户终端反馈对应的转账成功的提示信息,以提示用户已经将待消耗的票据数据所对应的代币数据转账到了第二主链账户。
通过上述实施例,服务器可以根据预设的智能合约,适用于多样、复杂的应用场景,实现多种不同的交易数据处理,以满足用户的多样化的交易需求。
在本实施例中,基于本说明书提供的交易数据的处理方法,具体处理交易数据前,部署有基于UTXO模型的预设的智能合约的用户终端可以先根据预设的智能合约,生成多个与第一主链账户关联的UTXO子账户;并生成第一主链账户的交易签名私钥和交易签名公钥,以及与多个UTXO子账户分别对应的多个子账户签名秘钥;具体处理交易数据时,用户终端可以先响应交易请求,根据预设的智能合约,构建基于UTXO模型的预设结构的目标交易数据;其中,该目标交易数据至少包括票据数据,该票据分别与一个UTXO子账户对应;进一步,用户终端可以利用第一主链账户所持有的交易签名私钥对目标交易数据签名;再将签名后的目标交易数据发送至部署有预设的智能合约的服务器;服务器可以先对签名后的目标交易数据进行预设的验证处理,在验证通过的情况,进行相应的交易数据处理。从而能够适用更加多样、复杂的应用场景,高效、安全地实现多种涉及区块链的交易数据处理,提高数据的存储效率。解决现有方法中存在适用场景有限、通用性较差,且处理效率低的技术问题。
在一个实施例中,在诸如找零场景等较为复杂的应用场景中,可能还存在以下情况:用户终端所能找到的第二子账户的待消耗的票据数据的数据值和大于待取出的代币数据的数据值(即第二数据值)一个差额数值(可以记为第一差额)。
这时,用户终端可以先通过所述多个第二子账户,生成多个待消耗的票据数据;其中,所述待消耗的票据数据分别与一个第二子账户对应;所述待消耗的票据包括所对应的第二子账户的账户标识、所对应的数据值、第一主链账户的交易签名公钥和所对应的第二子账户的子账户签名;所述多个待消耗的票据数据的数据值的和等于所述第三数据值加上第一差额;
同时,用户终端还会从与第一主链账户关联的不存在相对应的票据数据的UTXO子账户中确定出(一个或多个)第一子账户;并根据所述第一差额,通过第一子账户,生成多个待生成的票据数据;其中,所述待生成的票据数据分别与一个第一子账户对应;所述待生成的票据数据包括所对应的第一子账户的账户标识和所对应的数据值;所述多个待生成的票据数据的数据值的和等于所述第一差额。
然后,用户终端组合所述多个待生成的票据数据和所述多个待消耗的票据,以得到预设结构的目标交易数据。
继而,用户终端利用交易签名私钥对该目标交易数据进行签名,并将签名后的目标交易数据发送至服务器。
相应的,服务器在对上述签名后的目标交易数据验证通过的情况下,可以先销毁预设的智能合约中存储的待消耗的票据数据;然后确认所述多个待生成的票据数据,并将所述多个待生成的票据数据存入预设的智能合约中。
通过上述实施例,可以实现对诸如找零场景等较为复杂的应用场景中的交易数据处理。
在一个实施例中,在诸如需要向多个主链账户同时转账等较为复杂的应用场景中,可能还存在以下情况:第一主链账户需要在向第二主链账户转账一定数据值(记为第四数据值)的代币数据的同时,向第三主链账户转账一定数据值(记为第五数据值)的代币数据。
这时,用户终端可以确定出总的待转账的代币数据的数据值,作为第六数据值。其中,第六数据值等于第四数据值和第五数据值的和。
接收,用户终端可以根据所述第六数据值,从与第一主链账户关联的存在相对应的票据数据的UTXO子账户中确定出多个第三子账户;并通过所述多个第三子账户,生成多个待消耗的票据数据;其中,所述待消耗的票据数据分别与一个第三子账户对应;所述待消耗的票据包括所对应的第三子账户的账户标识、所对应的数据值、第一主链账户的交易签名公钥和所对应的第三子账户的子账户签名;所述多个待消耗的票据数据的数据值的和等于所述第六数据值。
进一步,用户终端还会从与第二主链账户关联的不存在相对应的票据数据的UTXO子账户中确定出多个第一类第四子账户;并根据所述第四数据值,通过多个第一类第四子账户,生成多个第一类待生成的票据数据;其中,所述第一类待生成的票据数据分别与一个第一类第四子账户对应;所述多个第一类待生成的票据数据的数据值的和等于所述第四数据值。
同时,用户终端还会从与第三主链账户关联的不存在相对应的票据数据的UTXO子账户中确定出多个第二类第四子账户;并根据所述第五数据值,通过多个第二类第四子账户,生成多个第二类待生成的票据数据;其中,所述第二类待生成的票据数据分别与一个第二类第四子账户对应;所述多个第二类待生成的票据数据的数据值的和等于所述第五数据值。
然后,用户终端组合所述多个待生成的票据数据和所述多个待消耗的票据,以得到预设结构的目标交易数据。
继而,用户终端利用交易签名私钥对该目标交易数据进行签名,并将签名后的目标交易数据发送至服务器。
相应的,服务器在对上述签名后的目标交易数据验证通过的情况下,可以先销毁预设的智能合约中存储的待消耗的票据数据;然后确认所述多个待生成的票据数据,并将所述多个待生成的票据数据存入预设的智能合约中。
按照类似的处理方式,第一主链账户还可以在向第二主链账户、第三主链账户转账代币数据的同时,向第四主链账户、第五主链账户等更多的主链账户进行转账,可以提高转账效率。
通过上述实施例,可以实现对诸如需要向多个主链账户同时转账等较为复杂的应用场景中的交易数据处理。
由上可见,本说明书实施例提供的交易数据的处理方法,充分利用了基于UTXO模型的预设的智能合约的特性,具体处理交易数据前,通过部署有基于UTXO模型的预设的智能合约的用户终端初始化,先根据预设的智能合约,生成多个与第一主链账户关联的UTXO子账户;并生成第一主链账户的交易签名私钥和交易签名公钥,以及与多个UTXO子账户分别对应的多个子账户签名秘钥;具体处理交易数据时,通过用户终端可以先响应交易请求,根据预设的智能合约,构建基于UTXO模型的预设结构的目标交易数据;其中,该目标交易数据至少包括票据数据,该票据分别与一个UTXO子账户对应;进一步,用户终端可以利用第一主链账户所持有的交易签名私钥对目标交易数据签名;再将签名后的目标交易数据发送至部署有预设的智能合约的服务器;再通过服务器先对签名后的目标交易数据进行预设的验证处理,在验证通过的情况,进行相应的交易数据处理。从而能够适用更加多样、复杂的应用场景,高效、安全地实现多种涉及区块链的交易数据处理,提高数据的存储效率。解决现有方法中存在适用场景有限、通用性较差,且处理效率低的技术问题。
参阅图5所示,本说明书实施例还提供了一种交易数据的处理方法。其中,该方法具体应用于部署有预设的智能合约的服务器一侧。该方法具体实施时,可以包括以下内容。
S501:接收签名后的目标交易数据;
S502:根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理;其中,所述预设的智能合约包括基于UTXO模型的智能合约;
S503:在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
在一个实施例中,所述预设的验证处理至少可以包括签名验证和数据值验证两种不同的验证。
在一个实施例中,服务器在接收到签名后的目标交易数据后,可以先对签名后的目标交易数据进行签名验证;在签名验证通过的情况下,再进行数据值验证;在数据值验证通过的情况下,才确定验证通过,进而可以根据目标交易数据进行相应的交易数据处理。
在一个实施例中,在验证时,服务器可以根据预设的智能合约,区分对应不同类型的交易请求的签名后的目标交易数据,采用同的数据值的验证方式进行数据值验证。
在一个实施例中,在验证通过后,服务器可以根据预设的智能合约,区分对应不同类型的交易请求的签名后的目标交易数据,采用不同的数据处理方式来根据目标交易数据进行具体的交易数据处理。
由上可见,本说明书实施例提供的交易数据的处理方法,能够适用更加多样、复杂的应用场景,高效、安全地实现多种涉及区块链的交易数据处理,提高数据的存储效率和处理效率。
本说明书实施例还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:接收签名后的目标交易数据;根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理;其中,所述预设的智能合约包括基于UTXO模型的智能合约;在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
为了能够更加准确地完成上述指令,参阅图6所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口601、处理器602以及存储器603,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口601,具体可以用于接收签名后的目标交易数据。
所述处理器602,具体可以用于根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理;其中,所述预设的智能合约包括基于UTXO模型的智能合约;在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
所述存储器603,具体可以用于存储相应的指令程序。
在本实施例中,所述网络通信端口601可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行FTP数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施例中,所述处理器602可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
在本实施例中,所述存储器603可以包括多个层次,在数字***中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在***中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本说明书实施例还提供了一种用户终端,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:响应用户的交易请求,根据预设的智能合约,构建预设结构的目标交易数据;其中,所述目标交易数据至少包括票据数据;所述票据数据分别与一个UTXO子账户对应,且所述UTXO子账户为预先基于预设的智能合约所建立的;所述预设的智能合约包括基于UTXO模型的智能合约;利用第一主链账户所持有的交易签名私钥对所述目标交易数据进行签名,得到签名后的目标交易数据;将所述签名后的目标交易数据发送至服务器;其中,所述服务器部署有预设的智能合约,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理
本说明书实施例还提供了一种基于上述交易数据的处理方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:响应用户的交易请求,根据预设的智能合约,构建预设结构的目标交易数据;其中,所述目标交易数据至少包括票据数据;所述票据数据分别与一个UTXO子账户对应,且所述UTXO子账户为预先基于预设的智能合约所建立的;所述预设的智能合约包括基于UTXO模型的智能合约;利用第一主链账户所持有的交易签名私钥对所述目标交易数据进行签名,得到签名后的目标交易数据;将所述签名后的目标交易数据发送至服务器;其中,所述服务器部署有预设的智能合约,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本说明书实施例还提供了另一种基于上述交易数据的处理方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:接收签名后的目标交易数据;根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理;其中,所述预设的智能合约包括基于UTXO模型的智能合约;在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
参阅图7所示,在软件层面上,本说明书实施例还提供了一种交易数据的处理装置,该装置具体可以包括以下的结构模块:
构建模块701,具体可以用于响应用户的交易请求,根据预设的智能合约,构建预设结构的目标交易数据;其中,所述目标交易数据至少包括票据数据;所述票据数据分别与一个UTXO子账户对应,且所述UTXO子账户为预先基于预设的智能合约所建立的;所述预设的智能合约包括基于UTXO模型的智能合约;
签名模块702,具体可以用于利用第一主链账户所持有的交易签名私钥对所述目标交易数据进行签名,得到签名后的目标交易数据;
发送模块703,具体可以用于将所述签名后的目标交易数据发送至服务器;其中,所述服务器部署有预设的智能合约,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
参阅图8所示,在软件层面上,本说明书实施例还提供了另一种交易数据的处理装置,该装置具体可以包括以下的结构模块:
接收模块801,具体可以用于接收签名后的目标交易数据;
验证模块802,具体可以用于根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理;其中,所述预设的智能合约包括基于UTXO模型的智能合约;
处理模块803,具体可以用于在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
由上可见,本说明书实施例提供的交易数据的处理装置,能够适用更加多样、复杂的应用场景,高效、安全地实现多种涉及区块链的交易数据处理,提高数据的存储效率。解决现有方法中存在适用场景有限、通用性较差,且处理效率低的技术问题。
在一个具体的场景示例中,可以应用本说明书实施例提供的交易数据的处理方法,来完成多种的交易数据处理。具体实施过程,可以参阅以下内容。
在本场景示例中,考虑到现有方法大多都是基于账户模型进行涉及区块链的交易数据处理,如以太坊,EOS等,导致在复杂的资金操作下显得局限性较大。又考虑到UTXO模型具有可扩展性高,适应场景多等特性,提出了可以利用智能合约实现UTXO模型(即,构建基于UTXO模型的智能合约)。
具体的,可以参阅图9所示。在利用智能合约实现UTXO模型时,每一笔UTXO转账可以表示为一种UTXO交易结构(例如,预设结构的目标交易数据),可以由InputNotes(例如,待消耗的票据数据)与OutputNotes(例如,待生成的票据数据)组成。其中,InputNotes与OutputNotes都由Note(票据数据)组成。而Note则主要由owner,value组成。
其中,InputNotes为转账方(例如,第一主链账户)待花费的Note,每个Note都需要被拥有者进行签名,表示转账方拥有其花费权限。接收方则可以是任意多个(例如,第二主链账户和第三主链账户)。
以A(对应第一主链账户)对B(对应第二主链账户)、C(对应第三主链账户)进行转账为例。其中A、B、C为主链账户。A_1、A_2、A_3为智能合约(例如,预设的智能合约)下A的子账户(例如,第三子账户)。B_1、B_2为智能合约下B的子账户(例如,第一类第四子账户)。C_1为智能合约下C的子账户(例如,第二类第四子账户)。
需要说明的是,在本场景示例中,主链账户可以创建任意多个子账户。并且,主链账户与智能合约子账户可以是不同的账户类型,例如,主链账户可以使用Secp256K1,智能合约子账户可以使用Curve25519。此外,对于生成的OutputNote中每个Note都拥有唯一的key,相应的,存储时采用K-V方式进行存储。
参阅图10所示。发送方Sender(例如,第一主链账户)持有一把SpenderSk(例如,交易签名私钥),利用SpenderSk可以对UTXO交易结构进行签名(得到签名后的目标交易数据),以确保交易数据不被篡改。其中,InputNotes中每个Note由Owner、Value、SpenderPk、Signature组成,Signature是利用与Owner对应的私钥(例如,子账户签名秘钥)对Owner、Value、SpenderPK进行签名得到的,用于表示Owner允许Spender对该Note进行花费。OutputNotes中每个Note由Owner、Value组成。
具体实施前,可以先进行初始化处理。
具体的可以包括:部署UTXO智能合约(即,基于UTXO模型的预设的智能合约);并根据UTXO密钥算法生成UTXO子账号(例如,UTXO子账户),生成Spender密钥对(例如,交易签名秘钥对)。
具体实施时,可以区分不同的交易数据处理请求。进而可以针对不同的交易数据处理情况,采用不同处理流程进行相应的交易数据处理。
一、存入情况
该情况具体是指发送方将自己的主链上的代币转化为UTXO中的OutputNotes。具体实施时,可以参阅图11所示,包括以下步骤:
S1:发送方构造交易,构造OutputNotes,其中,每个Note可以分别指定Owner与Value。存入操作不存在Input,所以InputNotes为空。
S2:发送方利用SpenderSk对交易信息进行签名。
S3:发送交易到UTXO智能合约,同时将发送方的主链代币发送到UTXO合约地址。
S4:UTXO智能合约对交易签名进行验证,统计OutputNotes总金额,与发送方发送的主链代币金额是否一致。
S5:验证成功,UTXO合约生成Output票据,存入合约。
二、转账情况
该情况是指发送方将拥有的OutputNote转给其它接收方。具体实施时,可以参阅图12所示,包括以下步骤:
S1:发送方构造交易,根据转账的总金额选定所要花费的InputNote,利用每个Note中Owner的私钥对(Owner、Value、SpenderPk)进行签名,生成InputNote。Outputs则根据各个接收方的金额进行构造。
S2:发送方利用SpenderSk对交易信息进行签名。
S3:发送交易到UTXO智能合约。
S4:UTXO智能合约对交易签名进行验证,对每个InputNote进行签名验证,并统计InputNotes总金额InputValue,统计OutputNotes总金额OutputValue,判断InputValue是否与OutputValue是否相当。
S5:如果相等,验证成功,将InputNotes中对应票据进行销毁,对OutputNotes生成新票据,存入合约。
三、提取情况
该情况是指发送方将拥有的InputNote从UTXO合约提取出来转为主链代币。具体实施时,可以参阅图13所示,包括以下步骤:
S1:发送方构造交易,根据转账的总金额选定所要花费的InputNote,利用每个Note中Owner的私钥对(Owner、Value、SpenderPk)其进行签名,生成InputNote。
S2:发送方利用SpenderSk对交易信息进行签名。
S3:发送交易到UTXO智能合约。
S4:UTXO智能合约对交易签名进行验证,对每个InputNote进行签名验证,并统计InputNotes总金额InputValue。
S5:验证成功,将InputNotes中对应票据进行销毁,UTXO将总额为InputValue主链代币转给发送方。
在本场景示例中,进一步可以将上述方法应用到区块链中智能合约代币发行、分布式金融平台等多种场景中,例如,处理借贷业务,构建去中心化交易所等。
通过上述场景示例,验证了本说明书提供的交易数据的处理方法确实能够适用更加多样、复杂的应用场景,高效、安全地实现多种涉及区块链的交易数据处理,提高数据的存储效率和处理效率,具有较好的扩展性。确实解决了现有方法中存在适用场景有限、通用性较差,且处理效率低等技术问题。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (18)
1.一种交易数据的处理方法,其特征在于,所述方法应用于部署有预设的智能合约的用户终端,包括:
响应用户的交易请求,根据预设的智能合约,构建预设结构的目标交易数据;其中,所述目标交易数据至少包括票据数据;所述票据数据分别与一个UTXO子账户对应,且所述UTXO子账户为预先基于预设的智能合约所建立的;所述预设的智能合约包括基于UTXO模型的智能合约;
利用第一主链账户所持有的交易签名私钥对所述目标交易数据进行签名,得到签名后的目标交易数据;
将所述签名后的目标交易数据发送至服务器;其中,所述服务器部署有预设的智能合约,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
2.根据权利要求1所述的方法,其特征在于,在响应用户的交易请求,根据预设的智能合约,构建预设结构的目标交易数据之前,所述方法还包括:
响应初始化请求,根据预设的智能合约生成多个与第一主链账户关联的UTXO子账户、第一主链账户的交易签名私钥和交易签名公钥,以及与多个UTXO子账户分别对应的多个子账户签名秘钥。
3.根据权利要求2所述的方法,其特征在于,所述交易请求包括以下至少之一:存入代币数据请求、取出代币数据请求、向第二主链账户转账代币数据请求。
4.根据权利要求3所述的方法,其特征在于,在所述交易请求包括存入代币数据请求的情况下,根据预设的智能合约,构建预设结构的目标交易数据,包括:
确定待存入的代币数据的数据值,作为第一数据值;
根据第一数据值,从与第一主链账户关联的不存在相对应的票据数据的UTXO子账户中确定出多个第一子账户;并通过所述多个第一子账户,生成多个待生成的票据数据;其中,所述待生成的票据数据分别与一个第一子账户对应;所述待生成的票据数据包括所对应的第一子账户的账户标识和所对应的数据值;所述多个待生成的票据数据的数据值的和等于所述第一数据值;
组合所述多个待生成的票据数据,以得到预设结构的目标交易数据。
5.根据权利要求4所述的方法,其特征在于,在将所述签名后的目标交易数据发送至服务器的同时,用户终端还将所述待存入的代币数据发送至服务器;
相应的,所述服务器根据预设的智能合约,对所签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理,包括:
服务器对所述签名后的目标交易数据进行签名验证;
在签名验证通过的情况下,服务器统计目标交易数据中多个待生成的票据数据的数据值的和;并根据所述多个待生成的票据数据的数据值的和,和所述待存入的代币数据,进行数据值验证;
在数据值验证通过的情况下,服务器确认所述多个待生成的票据数据,并将所述多个待生成的票据数据存入预设的智能合约中。
6.根据权利要求3所述的方法,其特征在于,在所述交易请求包括取出代币数据请求的情况下,根据预设的智能合约,构建预设结构的目标交易数据,包括:
确定待取出的代币数据的数据值,作为第二数据值;
根据所述第二数据值,从与第一主链账户关联的存在相对应的票据数据的UTXO子账户中确定出多个第二子账户;并通过所述多个第二子账户,生成多个待消耗的票据数据;其中,所述待消耗的票据数据分别与一个第二子账户对应;所述待消耗的票据包括所对应的第二子账户的账户标识、所对应的数据值、第一主链账户的交易签名公钥和所对应的第二子账户的子账户签名;所述多个待消耗的票据数据的数据值的和等于所述第二数据值;
组合所述多个待消耗的票据数据,以得到预设结构的目标交易数据。
7.根据权利要求6所述的方法,其特征在于,所述第二子账户的子账户签名为利用与所述第二子账户对应的子账户签名秘钥对该第二子账户的账户标识、数据值和第一主链账户的交易签名公钥进行签名所得到的。
8.根据权利要求6所述的方法,其特征在于,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理,包括:
所述服务器对所述签名后的目标交易数据进行签名验证;
在签名验证通过的情况下,服务器统计目标交易数据中多个待消耗的票据数据的数据值的和;并根据所述多个待消耗的票据数据的数据值的和,和所述待取出的代币数据,进行数据值验证;
在数据值验证通过的情况下,服务器销毁预设的智能合约中存储的待消耗的票据数据,并将数据值为第二数据值的代币数据发送给用户终端。
9.根据权利要求3所述的方法,其特征在于,在所述交易请求包括向第二主链账户转账代币数据请求的情况下,根据预设的智能合约,构建预设结构的目标交易数据,包括:
确定待转账的代币数据的数据值,作为第三数据值;
根据所述第三数据值,从与第一主链账户关联的存在相对应的票据数据的UTXO子账户中确定出多个第三子账户;并通过所述多个第三子账户,生成多个待消耗的票据数据;其中,所述待消耗的票据数据分别与一个第三子账户对应;所述待消耗的票据包括所对应的第三子账户的账户标识、所对应的数据值、第一主链账户的交易签名公钥和所对应的第三子账户的子账户签名;所述多个待消耗的票据数据的数据值的和等于所述第三数据值;
从与第二主链账户关联的不存在相对应的票据数据的UTXO子账户中确定出多个第四子账户;并根据所述第三数据值,通过多个第四子账户,生成多个待生成的票据数据;其中,所述待生成的票据数据分别与一个第四子账户对应;所述待生成的票据数据包括所对应的第四子账户的账户标识和所对应的数据值;所述多个待生成的票据数据的数据值的和等于所述第三数据值;
组合所述多个待生成的票据数据和所述多个待消耗的票据,以得到预设结构的目标交易数据。
10.根据权利要求9所述的方法,其特征在于,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理,包括:
所述服务器对所述签名后的目标交易数据进行签名验证;
在签名验证通过的情况下,服务器统计目标交易数据中多个待消耗的票据数据的数据值的和,以及多个待生成的票据数据的数据值的和;并根据所述多个待消耗的票据数据的数据值的和,以及多个待生成的票据数据的数据值的和,进行数据值验证;
在数据值验证通过的情况下,服务器销毁预设的智能合约中存储的待消耗的票据数据;并且,服务器确认所述多个待生成的票据数据,并将所述多个待生成的票据数据存入预设的智能合约中。
11.根据权利要求2所述的方法,其特征在于,所述交易签名私钥和交易签名公钥为基于第一类秘钥算法生成的;所述子账户签名秘钥为基于第二类秘钥算法生成的。
12.一种交易数据的处理方法,其特征在于,所述方法应用于部署有预设的智能合约的服务器,包括:
接收签名后的目标交易数据;
根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理;其中,所述预设的智能合约包括基于UTXO模型的智能合约;
在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
13.根据权利要求12所述的方法,其特征在于,所述预设的验证处理至少包括签名验证和数据值验证。
14.一种交易数据的处理装置,其特征在于,包括:
构建模块,用于响应用户的交易请求,根据预设的智能合约,构建预设结构的目标交易数据;其中,所述目标交易数据至少包括票据数据;所述票据数据分别与一个UTXO子账户对应,且所述UTXO子账户为预先基于预设的智能合约所建立的;所述预设的智能合约包括基于UTXO模型的智能合约;
签名模块,用于利用第一主链账户所持有的交易签名私钥对所述目标交易数据进行签名,得到签名后的目标交易数据;
发送模块,用于将所述签名后的目标交易数据发送至服务器;其中,所述服务器部署有预设的智能合约,所述服务器根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理,并在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
15.一种交易数据的处理装置,其特征在于,包括:
接收模块,用于接收签名后的目标交易数据;
验证模块,用于根据预设的智能合约,对所述签名后的目标交易数据进行预设的验证处理;其中,所述预设的智能合约包括基于UTXO模型的智能合约;
处理模块,用于在验证通过的情况下,根据所述目标交易数据,进行相应的交易数据处理。
16.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被执行时实现权利要求1至11或12至13中任一项所述方法的步骤。
17.一种用户终端,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至11中任一项所述方法的步骤。
18.一种服务器,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求12至13中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110068289.0A CN112749967A (zh) | 2021-01-19 | 2021-01-19 | 交易数据的处理方法、装置、用户终端和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110068289.0A CN112749967A (zh) | 2021-01-19 | 2021-01-19 | 交易数据的处理方法、装置、用户终端和服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112749967A true CN112749967A (zh) | 2021-05-04 |
Family
ID=75652441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110068289.0A Pending CN112749967A (zh) | 2021-01-19 | 2021-01-19 | 交易数据的处理方法、装置、用户终端和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112749967A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180365688A1 (en) * | 2017-06-14 | 2018-12-20 | International Business Machines Corporation | Transaction execution and validation in a blockchain |
US20190026730A1 (en) * | 2017-07-20 | 2019-01-24 | Jpmorgan Chase Bank, N.A. | Systems and methods for distributed ledger-based peer-to-peer lending |
US20190130391A1 (en) * | 2016-04-11 | 2019-05-02 | nChain Holdings Limited | Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies |
US20190164153A1 (en) * | 2017-11-30 | 2019-05-30 | Shashank Agrawal | Blockchain system for confidential and anonymous smart contracts |
US20190251553A1 (en) * | 2018-11-07 | 2019-08-15 | Alibaba Group Holding Limited | Blockchain data protection based on account note model with zero-knowledge proof |
CN110473104A (zh) * | 2019-08-20 | 2019-11-19 | 深圳市网心科技有限公司 | 一种交易处理方法及相关设备 |
WO2020010700A1 (zh) * | 2018-07-11 | 2020-01-16 | 平安科技(深圳)有限公司 | 票据交易方法、***、计算机设备和存储介质 |
WO2020019341A1 (zh) * | 2018-07-27 | 2020-01-30 | 区链通网络有限公司 | 区块链账户的处理方法、装置和存储介质 |
CN112017050A (zh) * | 2020-10-27 | 2020-12-01 | 浙江甲骨文超级码科技股份有限公司 | 基于区块链的支持高并发场景的账户智能合约方法和*** |
-
2021
- 2021-01-19 CN CN202110068289.0A patent/CN112749967A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190130391A1 (en) * | 2016-04-11 | 2019-05-02 | nChain Holdings Limited | Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies |
US20180365688A1 (en) * | 2017-06-14 | 2018-12-20 | International Business Machines Corporation | Transaction execution and validation in a blockchain |
US20190026730A1 (en) * | 2017-07-20 | 2019-01-24 | Jpmorgan Chase Bank, N.A. | Systems and methods for distributed ledger-based peer-to-peer lending |
US20190164153A1 (en) * | 2017-11-30 | 2019-05-30 | Shashank Agrawal | Blockchain system for confidential and anonymous smart contracts |
WO2020010700A1 (zh) * | 2018-07-11 | 2020-01-16 | 平安科技(深圳)有限公司 | 票据交易方法、***、计算机设备和存储介质 |
WO2020019341A1 (zh) * | 2018-07-27 | 2020-01-30 | 区链通网络有限公司 | 区块链账户的处理方法、装置和存储介质 |
US20190251553A1 (en) * | 2018-11-07 | 2019-08-15 | Alibaba Group Holding Limited | Blockchain data protection based on account note model with zero-knowledge proof |
CN110473104A (zh) * | 2019-08-20 | 2019-11-19 | 深圳市网心科技有限公司 | 一种交易处理方法及相关设备 |
CN112017050A (zh) * | 2020-10-27 | 2020-12-01 | 浙江甲骨文超级码科技股份有限公司 | 基于区块链的支持高并发场景的账户智能合约方法和*** |
Non-Patent Citations (1)
Title |
---|
乔康;游伟;王领伟;汤红波;: "基于区块链的5G物联网数据共享方案", 网络与信息安全学报, no. 04, 15 August 2020 (2020-08-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102050129B1 (ko) | 블록 검증을 위한 복수의 일방향 함수를 지원하는 블록 체인 | |
EP3812992B1 (en) | Block chain transaction method and apparatus | |
US20170221053A1 (en) | Digital asset conversion | |
JP6689946B2 (ja) | ネットワークを介して互いに通信する複数のノードのいずれか1つで資源を運営する方法、および、ネットワークを介して互いに通信する複数のノードのいずれか1つとして動作するコンピュータ装置 | |
CA3011600C (en) | Information transaction infrastructure | |
CN110874742B (zh) | 一种基于区块链和智能合约的支付方法及装置 | |
CN109598504A (zh) | 基于区块链的交易处理方法及装置、电子设备 | |
CN110363512B (zh) | 区块链红包的处理、创建、领取方法和装置、介质及计算机程序 | |
CN111932233B (zh) | 资源转移方法、装置和设备 | |
CN110880113A (zh) | 区块链交易的认证服务器及认证方法 | |
WO2020243961A1 (zh) | 一种数字货币的聚合支付方法、***及边缘服务器 | |
CN104392347A (zh) | 一种账户申请方法、创建方法、相关设备及*** | |
CN104883293A (zh) | 消息交互方法和相关装置及通信*** | |
CN110910000A (zh) | 一种区块链资产管理方法和装置 | |
CN110930152A (zh) | 一种基于区块链的数据处理方法及相关设备 | |
US20210004791A1 (en) | Guaranteeing server and method for transaction on blockchain | |
CN109685659B (zh) | 一种区块链硬钱包支持链下交易的方法及硬钱包 | |
CN111768199A (zh) | 数字货币交易方法和本地钱包*** | |
CN113362064B (zh) | 多重签名方法、计算机设备和存储介质 | |
CN110648235A (zh) | 一种基于可信计算环境tee的跨链资产转移方法 | |
CN112749967A (zh) | 交易数据的处理方法、装置、用户终端和服务器 | |
CN113673974A (zh) | 一种电子货币离线交易方法及交易装置 | |
CN112950183A (zh) | 跨链数据互换方法、***、装置、电子设备 | |
KR20210117731A (ko) | 블록체인 기반의 거래내역 확인 시스템 | |
CN106327187A (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 |