CN111967860B - 交易系统、方法以及交易系统中的节点 - Google Patents
交易系统、方法以及交易系统中的节点 Download PDFInfo
- Publication number
- CN111967860B CN111967860B CN201910416814.6A CN201910416814A CN111967860B CN 111967860 B CN111967860 B CN 111967860B CN 201910416814 A CN201910416814 A CN 201910416814A CN 111967860 B CN111967860 B CN 111967860B
- Authority
- CN
- China
- Prior art keywords
- transaction
- utxo
- node
- mortgage
- redemption
- 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
- 238000000034 method Methods 0.000 title claims abstract description 161
- 238000012795 verification Methods 0.000 claims description 200
- 238000013515 script Methods 0.000 claims description 149
- 238000009826 distribution Methods 0.000 claims description 79
- 230000008569 process Effects 0.000 claims description 73
- 230000000875 corresponding effect Effects 0.000 claims description 26
- 238000013475 authorization Methods 0.000 claims description 15
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 230000002596 correlated effect Effects 0.000 claims description 7
- 230000002829 reductive effect Effects 0.000 abstract description 8
- 238000012797 qualification Methods 0.000 abstract description 6
- 238000012546 transfer Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 20
- 238000013519 translation Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 239000003999 initiator Substances 0.000 description 6
- 238000011161 development Methods 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 5
- 230000000977 initiatory effect Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 230000002035 prolonged effect Effects 0.000 description 3
- 238000004904 shortening Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- 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/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
-
- 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
-
- 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/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
-
- 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
-
- 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/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- 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
- 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)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Computer Security & Cryptography (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请涉及电子商务技术领域,提供一种交易系统、方法以及交易系统中的节点。其中,交易系统的平台方节点用于生成交易流水号;买方节点用于根据交易流水号以及密码生成第一抵押账号,创建将数字货币从买方账号转移至第一抵押账号的第一抵押交易,并将该交易在区块链网络上广播;卖方节点用于根据交易流水号以及买方提供的密码生成第一抵押账号,创建将数字货币从第一抵押账号转移至卖方账号的第一赎回交易,并将该交易在区块链网络上广播;记账参与节点用于在确定从区块链网络上接收到的交易合法后,将其纳入到待打包交易集合。该交易系统利用区块链为商品交易提供担保,使得对电商平台的运营实体的资质要求得到降低。
Description
技术领域
本申请涉及电子商务技术领域,具体而言,涉及一种交易系统、方法以及交易系统中的节点。
背景技术
在传统电子商务活动中,常以中间人作保方式让交易双方实现交易。例如,在网络上购物,买方信不过卖方,做不到直接打款给卖方,而卖方也信不过买方,如果买方未付款,就不会先发货。于是,由某个电商平台作为中间保人,买方先给电商平台打款,卖方见买方已付款,于是放心给买方发货,而买方收货后确认货品无误,就指示电商平台将已付款项转给卖方。
其中,作为交易第三方的电商平台应当具有强信用特征,以便买卖双方都能够给予其充分的信任。如此一来,对电商平台的运营实体的资质提出了较高的要求,大企业在这方面相对于中小企业或者个人具有天然优势,导致在电子商务领域容易出现个别大企业垄断的现象,不利于商品经济发展。
发明内容
有鉴于此,本申请实施例提供一种交易系统、方法以及交易系统中的节点,通过在区块链上转账交易来表达真实的电商交易,利用区块链的特性来提供交易担保,代替传统的电商平台的交易担保功能。使得对电商平台的运营实体的资质要求得到降低,有利于更多的企业或个人开展电商业务,促进商品经济繁荣发展。
为实现上述目的,本申请提供如下技术方案:
第一方面,本申请提供一种交易系统,包括区块链网络中的买方节点、卖方节点、平台方节点以及记账参与节点;所述平台方节点用于在买方与卖方达成商品交易意向后生成交易流水号;所述买方节点用于从所述平台方节点获取所述交易流水号,根据所述交易流水号以及买方预设的密码生成第一抵押账号,创建用于将与交易商品等价的数字货币从买方账号转移至所述第一抵押账号的第一抵押交易,并将所述第一抵押交易在所述区块链网络上广播;所述卖方节点用于从所述平台方节点获取所述交易流水号,根据所述交易流水号以及买方在确认所述商品交易成功后提供的所述预设的密码生成所述第一抵押账号,创建用于将与交易商品等价的数字货币从所述第一抵押账号转移至卖方账号的第一赎回交易,并将所述第一赎回交易在所述区块链网络上广播;所述记账参与节点用于从所述区块链网络上接收并验证所述第一抵押交易的合法性,并在确定所述第一抵押交易合法后将所述第一抵押交易纳入到用于生成区块的待打包交易集合,以及用于从所述区块链网络上接收并验证所述第一赎回交易,并在确定所述第一赎回交易合法后将所述第一赎回交易纳入到用于生成区块的待打包交易集合。
上述交易系统借助于区块链上转账交易来表达真实的电商交易,即:在买卖双方达成交易意向后,买方通过买方节点创建的第一抵押交易将自身资产(与交易商品等价的数字货币)抵押到区块链上的临时账号(第一抵押账号),在买方确认商品交易成功后,卖方通过卖方节点创建的第一赎回交易将买方抵押的资产从临时账号中赎得,从而完成了资产从买方到卖方的转移,即完成了本次商品交易。其中,第一抵押交易和第一赎回交易都是区块链上的转账交易,即会被竞争到记账权的记账参与节点记录到区块链上(如果交易合法的话)。
由于区块链具有透明记账、不可篡改的特性,使得其可以为商品交易提供担保,代替传统的电商平台的交易担保功能,交易系统中由电商平台运营的平台方节点只需要辅助交易的顺利进行(例如,产生交易流水号),而不需要再为商品交易提供信用担保。因此,对电商平台的运营实体的资质要求得到降低,使得更多的企业或个人参与到电子商务中来,避免垄断、促进竞争,有利于商品经济的繁荣发展。
同时,由于区块链具有去中心化的特性,使得买卖双方信任的主体不再是某个单一的机构(如运营电商平台的大型企业),不必担心单一机构自身出现安全问题或大规模设备故障,使得商品交易的安全性和可靠性进一步提高。
此外,由于区块链还具有交易自动处理的特性,有利于减少交易过程中的人工服务,商品交易的自动化程度更高、交易更易达成,同时电商平台的运营成本也得到降低。
在第一方面的一些实现方式中,所述买方节点还用于在创建所述第一抵押交易时设置第一交易时长;所述记账参与节点在验证接收到的所述第一赎回交易的合法性时,根据作为商品交易期的起点的所述第一抵押交易的交易基准时以及所述第一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第一赎回交易确定为非法,被确定为非法的所述第一赎回交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合;其中,所述区块链上的一项交易的交易基准时为所述交易被纳入到用于生成区块的待打包交易集合时的最近区块事务基准时,所述最近区块事务基准时为所述区块链上最近一个已确定区块事务基准时的区块的区块事务基准时,所述区块链上的一个区块的区块事务基准时为根据所述区块的生成时间计算出的一个时刻,且所述时刻与所述区块在所述区块链中的高度正相关。
在上述实现方式中,通过设置第一交易时长的方式为商品交易指定一个商品交易期,限制商品交易在有限的时间段内完成,提高安全性,避免资源浪费,以增强交易系统的实用性。
其中,商品交易期的起点为第一抵押交易的交易基准时,一项交易的交易基准时可以定义为该项交易被纳入到用于生成区块的待打包交易集合时的最近区块事务基准时,进一步的,最近区块事务基准时可以定义为区块链上最近一个已确定区块事务基准时的区块的区块事务基准时,进一步的,区块链上的一个区块的区块事务基准时可以定义为根据该区块的生成时间计算出的一个时刻。每个区块均对应有一个区块事务基准时,重要的是,区块事务基准时具有单向增长的特性,即相邻的两个区块中,后一个区块(在区块链中的高度较大的区块)的区块事务基准时总是晚于前一个区块(在区块链中的高度较小的区块)的区块事务基准时。区块事务基准时所具有的单向增长特性使得关于商品交易期(例如上面提到的第一赎回交易是否发生在商品交易期截止前)的判断具有确定性。
在第一方面的一些实现方式中,区块链上的一个区块的区块事务基准时为在所述区块链上以所述区块为中心区块的M个区块的生成时间的平均值,其中,M为大于或等于3的正奇数;所述记账参与节点还用于在生成一个新区块时,判断所述新区块的生成时间是否使得所述新区块之前的第(M-1)/2个区块的区块事务基准时大于所述新区块之前的第(M-1)/2+1个区块的区块事务基准时,若不大于,则将所述新区块之前的第(M-1)/2+1个区块的区块事务基准时加上预设时长后的值确定为所述新区块之前的第(M-1)/2个区块的区块事务基准时,并根据确定的区块事务基准时计算并更新所述新区块的区块头中记录的区块生成时间。
上述实现方式提供了一种区块事务基准时的可能的计算方式,即取附近若干个区块(包括自身)的生成时间的平均值,其中,区块的生成时间可以记录在区块头中(如记录在区块头的timestamp字段中)。
当一个新区块的生成时间确定后,新区块之前的第(M-1)/2个区块的区块事务基准时可以计算(计算时将新区块作为区块链的最后一个区块),若计算出的区块事务基准时不满足单向增长的特性,则将该新区块之前的第(M-1)/2+1个区块的区块事务基准时加上预设时长,作为该新区块之前的第(M-1)/2个区块的区块事务基准时,使其满足单向增长特性,再反推并更新该新区块的生成时间。若该新区块后续被区块链所接纳,在后续基于此区块的生成时间计算区块事务基准时时(例如为了进行商品交易期的相关验证),计算出的区块事务基准时将保持单向增长的特性。
在第一方面的一些实现方式中,所述买方节点或所述卖方节点还用于在获得指示调整交易时长的信息后,创建用于设置第二交易时长的第一期限调整交易,并将所述第一期限调整交易发送至所述平台方节点,其中,所述第二交易时长表征用于替换所述第一交易时长作为确定所述第一赎回交易是否合法的依据;所述平台方节点还用于将所述第一期限调整交易在所述区块链网络上广播;所述记账参与节点还用于从所述区块链网络上接收并验证所述第一期限调整交易的合法性,并在确定所述第一期限调整交易合法后将所述第一期限调整交易纳入到用于生成区块的待打包交易集合;所述记账参与节点在验证接收到的所述第一期限调整交易的合法性时,根据所述第一抵押交易的交易基准时以及所述第一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第一期限调整交易确定为非法,被确定为非法的所述第一期限调整交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
在上述实现方式中,买方或卖方节点还可以根据用户的指示,创建第一期限调整交易,第一期限调整交易的目的是设置第二交易时长,对于买方抵押的资产(和交易商品等价的数字货币)则可以仅做平移处理,例如,在区块链上的交易采用UXTO(UnspentTransaction Output,未花交易输出)模型时,平移处理可以表现为在第一期限调整交易中花掉原先用作抵押的UTXO,但又创建一个新的等额的UTXO作为替代,平移后这笔资产还是归属于第一抵押账号。
若没有创建第一期限调整交易,则商品交易期的长短取决于创建第一抵押交易时设置的第一交易时长,若创建了第一期限调整交易,则在此后,商品交易期的长短将取决于第二交易时长,也就是说在第一期限调整交易的后续交易中,若涉及有关商品交易期的验证(例如,验证第一赎回交易是否合法),商品交易期的长度将以第二交易时长为准,不再以第一交易时长为准。需要指出,对于第一期限调整交易本身,验证其是否合法,还是以第一交易时长为准。
第一期限调整交易可以在买卖双方不能按期完成交易时发起,例如,卖方因故不能按期发货,为避免商品交易期截止致使其无法赎得货款(商品交易期截止后卖方再创建第一赎回交易将被判定为非法),则卖方可以通过卖方节点创建第一期限调整交易,将商品交易期延长(即设置大于第一交易时长的第二交易时长),以便完成交易。当然,以上仅仅是一个例子,发起第一期限调整交易还可以是其他原因。
第一期限调整交易不是必须的,如果买卖双方能够在正常商品交易期限(例如,第一交易时长所对应的期限)完成交易,也可以不创建第一期限调整交易。
在第一方面的一些实现方式中,所述买方节点或所述卖方节点还用于在获得指示申请仲裁的信息后,向所述平台方节点发送仲裁请求;所述平台方节点还用于在接收到所述仲裁请求后,创建仲裁类交易,并在所述仲裁类交易为用于设置第三交易时长的第二期限调整交易时,将所述第二期限调整交易在所述区块链网络上广播,其中,所述第三交易时长表征用于替换上一交易时长作为确定所述第一赎回交易是否合法的依据,若在本次创建的交易之前未创建过期限调整交易,则所述上一交易时长为所述第一交易时长,否则所述上一交易时长为最近一次创建的期限调整交易设置的交易时长;所述记账参与节点还用于从所述区块链网络上接收并验证所述第二期限调整交易的合法性,并在确定所述第二期限调整交易合法后将所述第二期限调整交易纳入到用于生成区块的待打包交易集合;所述记账参与节点在验证接收到的所述第二期限调整交易的合法性时,根据所述第一抵押交易的交易基准时以及所述上一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第二期限调整交易确定为非法,被确定为非法的所述第二期限调整交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
在上述实现方式中,买方或卖方节点还可以根据用户的指示,向平台方节点申请仲裁,例如,双方发生了纠纷,希望平台方介入解决,等等。
平台方根据仲裁请求的内容,作出不同的仲裁结果,仲裁结果通过平台方节点创建的仲裁类交易体现。仲裁类交易中包括第二期限调整交易,第二期限调整交易的目的是设置第三交易时长,对于买方抵押的资产则可以仅做平移处理,例如,在区块链上的交易采用UXTO模型时,平移处理可以表现为在第二期限调整交易中花掉原先用作抵押的UTXO,但又创建一个新的等额的UTXO作为替代,平移后这笔资产还是归属于第一抵押账号。
若没有创建第二期限调整交易,则商品交易期的长短取决于上一交易时长,上一交易时长可以是第一交易时长、第二交易时长或者是上次设置的第三交易时长,其中,上次设置的第三交易时长是本次创建的第二期限调整交易之前的创建的第二期限调整交易所设置的交易时长,因为买卖双方可以多次申请仲裁,因此平台方节点可能创建多个连续的第二期限调整交易。若创建了第二期限调整交易,则在此后,商品交易期的长短将取决于本次设置的第三交易时长。需要指出,对于第二期限调整交易本身,验证其是否合法,还是以上一交易时长为准。
第二期限调整交易不是必须的,如果买卖双方没有申请仲裁,则平台方节点不会创建第二期限调整交易,并且平台方节点创建的仲裁类交易也不一定是第二期限调整交易(例如还可以是下面的第一分配交易)。
在第一方面的一些实现方式中,所述平台方节点还用于在所述仲裁类交易为第一分配交易时,将所述第一分配交易在所述区块链网络上广播,其中,所述第一分配交易用于将与交易商品等价的数字货币从所述第一抵押账号分配至所述买方账号、所述卖方账号以及平台方账号中的至少一个账号,分配至所述平台方账号的数字货币为平台方收取的仲裁费;所述记账参与节点还用于从所述区块链网络上接收并验证所述第一分配交易的合法性,并在确定所述第一分配交易合法后将所述第一分配交易纳入到用于生成区块的待打包交易集合;所述记账参与节点在验证接收到的所述第一分配交易的合法性时,根据所述第一抵押交易的交易基准时以及所述上一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第一分配交易确定为非法,被确定为非法的所述第一分配交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
在上述实现方式中,平台方节点创建的仲裁类交易还可以包括第一分配交易,第一分配交易的目的是将第一抵押账号中买方抵押的资产在买方、卖方、平台方三方之间进行分配,以体现仲裁结果。例如,卖方没有发货,可以将这笔资产全部分配给买方,又例如,买方收到的商品有一定瑕疵,但还能够接受,卖方也不想退货,可以将这笔资产按一定比例分配给双方,等等。其中,平台方也可以从中收取一定的数字货币作为仲裁费。
第一分配交易不是必须的,如果买卖双方没有申请仲裁,则平台方节点不会创建第一分配交易,并且平台方节点创建的仲裁类交易也不一定是第一分配交易(例如还可以是上面的第二期限调整交易)。
在第一方面的一些实现方式中,所述买方节点还用于在商品交易期截止后,创建用于将与交易商品等价的数字货币从所述第一抵押账号转移至所述买方账号的第二赎回交易,并将所述第二赎回交易在所述区块链网络上广播;所述记账参与节点还用于从所述区块链网络上接收并验证所述第二赎回交易的合法性,并在确定所述第二赎回交易合法后将所述第二赎回交易纳入到用于生成区块的待打包交易集合;所述记账参与节点在验证接收到的所述第二赎回交易的合法性时,根据所述第一抵押交易的交易基准时以及所述上一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期尚未截止后将接收到的所述第二赎回交易确定为非法,被确定为非法的所述第二赎回交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
在上述实现方式中,买方节点还可以在商品交易期截止后,创建第二赎回交易,从第一抵押账号中赎得自己抵押的资产,此举主要针对卖方没有发货、或者虽然发货但买方在商品交易期内并没有收到货等情况,使得买方可以回收自己的资产,避免遭受经济损失。
能够创建第二赎回交易的前提是买方抵押的资产还保存在第一抵押账号中,没有被卖方赎得或者被平台方分配,因此,第二赎回交易不是必须的。
在第一方面的一些实现方式中,所述记账参与节点还用于从所述区块链网络上接收除自身以外的其他记账参与节点生成的区块,验证接收到的区块中纳入的所述第一抵押交易的合法性,并在确定所述第一抵押交易为非法后,拒绝将接收到的区块保存至本地的区块链中,以及用于验证接收到的区块中纳入的所述第一赎回交易的合法性,并在确定所述第一赎回交易为非法后,拒绝将接收到的区块保存至本地的区块链中。
在上述实现方式中,记账参与节点除了在接收到第一抵押交易时会验证其合法性,在接收到其他记账参与节点创建的区块后,验证其中纳入的第一抵押交易的合法性(如果该区块有纳入第一抵押交易的话)。对于第一赎回交易、第一期限调整交易、第二期限调整交易、第一分配交易、第二赎回交易的处理方式是类似的。
在第一方面的一些实现方式中,所述买方节点用于根据所述交易流水号、所述密码以及平台特征字,利用哈希算法生成所述第一抵押账号的私钥,进而根据所述私钥生成对应的公钥,并根据所述公钥确定所述第一抵押账号,其中,所述平台特征字为用于标识平台方的字符串。
在上述实现方式中,交易流水号、平台特征字以及私钥生成算法对于卖方节点可以是公开的,因此卖方节点只要获得买方提供的密码就能够计算出第一抵押账号。理论上买方也可以直接将计算出的第一抵押账号的私钥提供给卖方,卖方节点直接利用私钥也可以计算第一抵押账号,但私钥通常较长,在传输复制过程中容易出错,所以可以改为用密码替代的方案。
在第一方面的一些实现方式中,所述平台方节点用于创建所述仲裁类交易,包括:所述平台方节点通过调用所述区块链上的智能合约创建所述仲裁类交易。
在上述实现方式中,仲裁类交易可以由智能合约自动创建,即通过智能合约自动进行仲裁,其智能化程度较高,仲裁速度较快,智能合约的内容可以由平台方编写,并且代码开源,确保其公平公开。当然,在另一些实现方式中,仲裁类交易也可以在人工对交易过程进行复核后,由人工指示平台方节点创建。
在第一方面的一些实现方式中,所述第一抵押交易的输入包括属于所述买方账号的第一未花费交易输出UTXO;所述第一抵押交易的输出包括属于所述第一抵押账号的第二UTXO以及属于所述平台方账号第三UTXO,所述第二UTXO的金额为与交易商品等价的数字货币,所述第三UTXO的金额为平台方收取的交易服务费,所述交易服务费表征平台方在所述商品交易的过程中因提供服务而收取的费用,以及所述第一抵押交易的后续交易的记账者应收手续费的总和;所述第二的锁定脚本包括所述平台方账号的公钥、所述买方账号的公钥、所述卖方账号的公钥、所述第一抵押账号的公钥、第一抵押操作参数以及第一签名验证指令,所述第一签名验证指令用于指示所述记账参与节点利用所述第二的锁定脚本中的公钥验证针对所述第二UTXO的解锁脚本中提供的签名是否正确;所述第一抵押操作参数包括:所述交易流水号、所述仲裁费的最高限额、所述第一交易时长以及所述第一期限调整交易能够设置的最大交易时长。
在上述实现方式中,提供了一种在UTXO模型下实现第一抵押交易的可选方案。其中,第一UTXO可以是属于买方账号的一项或多项UTXO,属于买方账号在商品交易之前已经拥有的资产,第二UTXO表征买方抵押的资产,第三UTXO表征平台方收取的交易服务费以及为第一抵押交易的后续交易预支的记账手续费。第一抵押操作参数的内容为商品交易的一些相关信息,在商品交易的过程中可用于验证交易的合法性,其中包括表征商品交易期长度的第一交易时长。
在第一方面的一些实现方式中,所述第一抵押交易的输出还包括属于附加服务提供方账号第四UTXO,所述附加服务提供方是指在达成所述商品交易意向前向买方提供与所述商品交易相关的附加服务的商家。
在上述实现方式中,第四UTXO表征附加服务提供方收取的服务费,这里的附加服务提供方不是指平台方或者记账参与者,而是指在达成交易意向的过程中向买方提供某些附加服务的商家,这样的商家可以有一个或多个,因此第四UTXO也可以是一项或多项UTXO。其中,附加服务的内容可以是,但不限于帮助撮合交易、提供比价信息、提供云计算托管,等等。不依赖于附加服务,商品交易同样可以进行,附加服务旨在增强交易的便利性。
在第一方面的一些实现方式中,所述第一期限调整交易的输入包括所述第二UTXO以及所述第三UTXO;所述第二UTXO的解锁脚本包括所述买方节点或卖方节点在创建所述第一期限调整交易时利用自身账号的私钥对所述第一期限调整交易的签名,以及所述平台方节点在接收到所述第一期限调整交易后利用所述平台方账号的私钥对所述第一期限调整交易的签名;所述第一期限调整交易的输出包括属于所述第一抵押账号的第五UTXO以及属于所述平台方账号的第六UTXO,所述第五UTXO的金额为与交易商品等价的数字货币,所述第六UTXO的金额为所述第三UTXO与所述第一期限调整交易的记账者应收手续费的差额;所述第五UTXO的锁定脚本包括所述平台方账号的公钥、所述买方账号的公钥、所述卖方账号的公钥、所述第一抵押账号的公钥、第一期限调整操作参数以及第二签名验证指令,所述第二签名验证指令用于指示所述记账参与节点利用所述第五UTXO的锁定脚本中的公钥验证针对所述第五UTXO的解锁脚本中提供的签名是否正确;所述第一期限调整操作参数包括:所述交易流水号、所述仲裁费的最高限额以及所述第二交易时长。
在上述实现方式中,提供了一种在UTXO模型下实现第一期限调整交易的可选方案。其中,第一期限调整交易以第一抵押交易输出的UTXO作为输入,第五UTXO是对第二UTXO的在第一抵押账号中的平移,第六UTXO表征平台方收取的交易服务费以及为第一期限调整交易的后续交易预支的记账手续费,其金额就是第三UTXO减去第一期限调整交易的记账手续费。第一期限调整操作参数的内容为商品交易的一些相关信息,在商品交易的过程中可用于验证交易的合法性,其中包括表征调整后的商品交易期长度的第二交易时长。
在第一方面的一些实现方式中,所述第一期限调整操作参数还包括期限调整描述信息,所述期限调整描述信息的内容包括创建所述第一期限调整交易的一方对期限调整的说明。
在上述实现方式中,期限调整描述信息可以由创建第一期限调整交易的一方的节点写入,用于说明调整期限的原因等内容,例如,对申请延长商品交易期的原因的说明。另外,由于第一期限调整交易最终会保存在区块链上,不会被篡改,因此期限调整描述信息的内容还可以作为存证,以便在发生纠纷时还原交易当时的状况。
在第一方面的一些实现方式中,所述第一期限调整操作参数还包括欺诈疑似程度,所述欺诈疑似程度的内容包括创建所述第一期限调整交易的一方对交易对方涉嫌欺诈的程度的评估。
在上述实现方式中,欺诈疑似程度可用于平台方之后作出某些仲裁行为的依据,以便实现平台方对交易欺诈风险的管控。
在第一方面的一些实现方式中,所述记账参与节点还用于在确定接收到的交易为所述第一期限调整交易后,对所述第一期限调整交易进行验证,验证的项目包括:验证所述第二UTXO与所述第五UTXO是否属于同一账号且两个UTXO的金额是否相同,若两个UTXO属于同一账号且金额相同,则本项验证的结果为合法,否则本项验证的结果为非法;获取所述最近区块事务基准时,验证所述最近区块事务基准时与所述第一抵押交易的交易基准时的差值是否小于所述第一交易时长,若小于则本项验证的结果为合法,否则本项验证的结果为非法;验证所述第一期限调整操作参数中设置的所述仲裁费的最高限额与所述第一抵押操作参数中设置的所述仲裁费的最高限额是否相同,若相同则本项验证的结果为合法,否则本项验证的结果为非法;验证所述第二交易时长是否不大于所述第一抵押操作参数中设置的所述最大交易时长,若不大于则本项验证的结果为合法,否则本项验证的结果为非法;验证所述第二交易时长是否小于所述第一交易时长,若小于且所述第二UTXO的解锁脚本中包含卖方账号的私钥对所述第一期限调整交易的签名,则本项验证的结果为合法,否则本项验证的结果为非法;若以上验证项目中任一项的结果为非法,则所述第一期限调整交易为非法交易,所述记账参与节点拒绝将非法的所述第一期限调整交易纳入到用于生成区块的待打包交易集合。
在上述实现方式中,提供了一种基于第一期限调整交易在UTXO模型下的实现方式所制定的、验证其的合法性的可选方案。这种验证在记账参与节点将第一期限调整交易纳入待打包交易集合时会执行,在记账参与节点接收到其他记账参与节点广播的区块,并企图将其保存至本地的区块链之前也需要执行。
在第一方面的一些实现方式中,所述第二期限调整交易的输入包括第七UTXO以及第八UTXO,所述第二期限调整交易的输出包括属于所述第一抵押账号的第九UTXO以及属于所述平台方账号的第十UTXO,其中,所述第七UTXO为所述第二UTXO且所述第八UTXO为所述第三UTXO,或,所述第七UTXO为所述第五UTXO且所述第八UTXO为所述第六UTXO,或,所述第七UTXO为上一第二期限调整交易的上一第九UTXO且所述第八UTXO为上一第二期限调整交易的上一第十UTXO;所述第七UTXO的解锁脚本包括所述买方节点或卖方节点在生成仲裁请求时利用自身账号的私钥对第一仲裁信息的签名,以及所述平台方节点在接收到所述仲裁请求后利用所述平台方账号的私钥对所述第二期限调整交易的签名,其中,所述第一仲裁信息包括所述交易流水号以及所述第七UTXO在所述区块链中的位置索引,对所述第一仲裁信息的签名携带在所述仲裁请求中;所述第九UTXO的金额为与交易商品等价的数字货币,所述第十UTXO的金额为所述第八UTXO与所述第二期限调整交易的记账者应收手续费的差额;所述第九UTXO的锁定脚本包括所述平台方账号的公钥、所述买方账号的公钥、所述卖方账号的公钥、所述第一抵押账号的公钥、第二期限调整操作参数以及所述第二签名验证指令,所述第二签名验证指令用于指示所述记账参与节点利用所述第九UTXO的锁定脚本中的公钥验证针对所述第九UTXO的解锁脚本中提供的签名是否正确;所述第二期限调整操作参数包括:所述交易流水号、所述仲裁费的最高限额以及所述第三交易时长。
在上述实现方式中,提供了一种在UTXO模型下实现第二期限调整交易的可选方案。其中,当前的第二期限调整交易以第一抵押交易输出的UTXO、第一期限调整交易输出的UTXO或者上一个第二期限调整交易输出的UTXO作为输入,第九UTXO是对第七UTXO的在第一抵押账号中的平移,第十UTXO表征平台方收取的交易服务费以及为第二期限调整交易的后续交易预支的记账手续费,其金额就是第八UTXO减去第二期限调整交易的记账手续费。第二期限调整操作参数的内容为商品交易的一些相关信息,在商品交易的过程中可用于验证交易的合法性,其中包括表征调整后的商品交易期长度的第三交易时长。
在第一方面的一些实现方式中,所述记账参与节点还用于在确定接收到的交易为所述第二期限调整交易后,对所述第二期限调整交易进行验证,验证的项目包括:验证所述第七UTXO与所述第九UTXO是否属于同一账号且两个UTXO的金额是否相同,若两个UTXO属于同一账号且金额相同,则本项验证的结果为合法,否则本项验证的结果为非法;获取所述最近区块事务基准时,验证所述最近区块事务基准时与所述第一抵押交易的交易基准时的差值是否小于所述第七UTXO的锁定脚本中的操作参数中设置的交易时长,若小于则本项验证的结果为合法,否则本项验证的结果为非法;验证所述第二期限调整操作参数中设置的所述仲裁费的最高限额与所述第七的锁定脚本中的操作参数中设置的所述仲裁费的最高限额是否相同,若相同则本项验证的结果为合法,否则本项验证的结果为非法;若以上验证项目中任一项的结果为非法,则所述第二期限调整交易为非法交易,所述记账参与节点拒绝将非法的所述第二期限调整交易纳入到用于生成区块的待打包交易集合。
在上述实现方式中,提供了一种基于第二期限调整交易在UTXO模型下的实现方式所制定的、验证其的合法性的可选方案。这种验证在记账参与节点将第二期限调整交易纳入待打包交易集合时会执行,在记账参与节点接收到其他记账参与节点广播的区块,并企图将其保存至本地的区块链之前也需要执行。
在第一方面的一些实现方式中,所述第一分配交易的输入包括第十一UTXO以及第十二UTXO,其中,所述第十一UTXO为所述第二UTXO且所述第十二UTXO为所述第三UTXO,或,所述第十一UTXO为所述第五UTXO且所述第十二UTXO为所述第六UTXO,或,所述第十一UTXO为所述第九UTXO且所述第十二UTXO为所述第十UTXO;所述第十一UTXO的解锁脚本包括所述买方节点或卖方节点在生成仲裁请求时利用自身账号的私钥对第二仲裁信息的签名,以及所述平台方节点在接收到所述仲裁请求后利用所述平台方账号的私钥对所述第一分配交易的签名,其中,所述第二仲裁信息包括所述交易流水号以及所述第十一UTXO在所述区块链中的位置索引,对所述第二仲裁信息的签名携带在所述仲裁请求中;所述第一分配交易的输出包括属于所述平台方账号的第十三UTXO以及以下三项UTXO中的至少一项UTXO,属于所述买方账号的第十四UTXO,属于所述卖方账号的第十五UTXO以及属于所述平台方账号的第十六UTXO;所述第十三UTXO的金额为所述第十二UTXO与所述第一分配交易的记账者应收手续费的差额,所述至少一项UTXO的金额之和为与交易商品等价的数字货币。
在上述实现方式中,提供了一种在UTXO模型下实现第一分配交易的可选方案。其中,第一分配交易以第一抵押交易输出的UTXO、第一期限调整交易输出的UTXO或者第二期限调整交易输出的UTXO作为输入,第十三UTXO表征平台方收取的交易服务费,其金额就是第十二UTXO减去第二期限调整交易的记账手续费,第十四UTXO、第十五UTXO以及第十六UTXO表示对买方抵押的资产的分配结果,此三项UTXO至少应存在一项。
在第一方面的一些实现方式中,所述记账参与节点还用于在确定接收到的交易为所述第一分配交易后,对所述第一分配交易进行验证,验证的项目包括:获取所述最近区块事务基准时,验证所述最近区块事务基准时与所述第一抵押交易的交易基准时的差值是否小于所述第十一UTXO的锁定脚本中的操作参数中设置的交易时长,若小于则本项验证的结果为合法,否则本项验证的结果为非法;若所述第一分配交易的输出包括所述第十六UTXO,验证所述第十六UTXO的金额是否不大于所述第十一UTXO的锁定脚本中的操作参数中设置的所述仲裁费的最高限额,若不大于则本项验证的结果为合法,否则本项验证的结果为非法;若以上验证项目中任一项的结果为非法,则所述第一分配交易为非法交易,所述记账参与节点拒绝将非法的所述第一分配交易纳入到用于生成区块的待打包交易集合。
在上述实现方式中,提供了一种基于第一分配交易在UTXO模型下的实现方式所制定的、验证其的合法性的可选方案。这种验证在记账参与节点将第一分配交易纳入待打包交易集合时会执行,在记账参与节点接收到其他记账参与节点广播的区块,并企图将其保存至本地的区块链之前也需要执行。
在第一方面的一些实现方式中,所述第一赎回交易的输入包括第十七UTXO以及第十八UTXO,其中,所述第十七UTXO为所述第二UTXO且所述第十八UTXO为所述第三UTXO,或,所述第十七UTXO为所述第五UTXO且所述第十八UTXO为所述第六UTXO,或,所述第十七UTXO为所述第九UTXO且所述第十八UTXO为所述第十UTXO;所述第十七UTXO的解锁脚本包括所述卖方节点在创建所述第一赎回交易时利用所述第一抵押账号的私钥对所述第一赎回交易的签名;所述第一赎回交易的输出包括属于所述卖方账号的第十九UTXO以及属于所述平台方账号的第二十UTXO,所述第十九UTXO的金额为与交易商品等价的数字货币,所述第二十UTXO的金额为所述第十八UTXO与所述第一赎回交易的记账者应收手续费的差额。
在上述实现方式中,提供了一种在UTXO模型下实现第一赎回交易的可选方案。其中,第一赎回交易以第一抵押交易输出的UTXO、第一期限调整交易输出的UTXO或者第二期限调整交易输出的UTXO作为输入,第十九UTXO表征卖方赎得的资产,第二十UTXO表征平台方收取的交易服务费,其金额就是第十八UTXO减去第一赎回交易的记账手续费。
在第一方面的一些实现方式中,所述第二赎回交易的输入包括第二十一UTXO以及第二十二UTXO,其中,所述第二十一UTXO为所述第二UTXO且所述第二十二UTXO为所述第三UTXO,或,所述第二十一UTXO为所述第五UTXO且所述第二十二UTXO为所述第六UTXO,或,所述第二十一UTXO为所述第九UTXO且所述第二十二UTXO为所述第十UTXO;所述第二十一UTXO的解锁脚本包括所述买方节点在创建所述第二赎回交易时利用所述第一抵押账号的私钥对所述第二赎回交易的签名;所述第二赎回交易的输出包括属于所述买方账号的第二十三UTXO以及属于所述平台方账号的第二十四UTXO,所述第二十三UTXO的金额为与交易商品等价的数字货币,所述第二十四UTXO的金额为所述第二十二UTXO与所述第二赎回交易的记账者应收手续费的差额。
在上述实现方式中,提供了一种在UTXO模型下实现第二赎回交易的可选方案。其中,第二分赎回易以第一抵押交易输出的UTXO、第一期限调整交易输出的UTXO或者第二期限调整交易输出的UTXO作为输入,第二十三UTXO表征买方赎得的资产,第二十四UTXO表征平台方收取的交易服务费,其金额就是第二十二UTXO减去第二赎回交易的记账手续费。
在第一方面的一些实现方式中,所述第一赎回交易以及所述第二赎回交易均为赎回类交易,所述赎回类交易的输入中包括第二十五UTXO,所述赎回交易的输出中包括第二十六UTXO,其中,所述第一赎回交易的所述第二十五UTXO为所述第十七UTXO且所述第一赎回交易的所述第二十六UTXO为所述第十九UTXO,所述第二赎回交易的所述第二十五UTXO为所述第二十一UTXO且所述第二赎回交易的所述第二十六UTXO为所述第二十三UTXO,所述记账参与节点还用于在确定接收到的交易为所述赎回类交易后,对所述赎回类交易进行验证,验证的项目包括:获取所述最近区块事务基准时,验证所述最近区块事务基准时与所述第一抵押交易的交易基准时的差值是否小于第二十五UTXO的锁定脚本中的操作参数中设置的交易时长;若小于操作参数中设置的交易时长,则验证所述第二十五UTXO与第二十六UTXO是否金额是否相同,且所述第二十六UTXO是否属于所述卖方账号,若两个UTXO属于金额相同且所述第二十六UTXO属于所述卖方账号,则本项验证的结果为合法,否则本项验证的结果为非法;若不小于操作参数中设置的交易时长,则验证所述最近区块事务基准时与所述第一抵押交易的交易基准时的差值是否小于所述第二十五UTXO的锁定脚本中的操作参数中设置的交易时长与预设的赎回时长之和,若小于操作参数中设置的交易时长与预设的赎回时长之和,则验证所述第二十五UTXO与所述第二十六UTXO是否金额是否相同,且所述第二十六UTXO是否属于所述买方账号,若两个UTXO金额相同且所述第二十六UTXO属于所述买方账号,则本项验证的结果为合法,否则本项验证的结果为非法,若不小于操作参数中设置的交易时长与预设的赎回时长之和,则本项验证为非法;若以上验证项目的结果为非法,则所述赎回类交易为非法交易,所述记账参与节点拒绝将非法的所述赎回类交易纳入到用于生成区块的待打包交易集合。
在上述实现方式中,提供了一种基于赎回类交易(包括第一赎回交易以及第二赎回交易)在UTXO模型下的实现方式所制定的、验证其的合法性的可选方案。这种验证在记账参与节点将赎回类交易纳入待打包交易集合时会执行,在记账参与节点接收到其他记账参与节点广播的区块,并企图将其保存至本地的区块链之前也需要执行。
第二方面,本申请实施例提供一种交易系统,包括区块链网络中的买方节点、卖方节点、平台方节点以及记账参与节点;所述买方节点用于向所述平台方节点发送用于指示所述平台方节点进行数字货币抵押的抵押请求;所述平台方节点用于在买方与卖方达成商品交易意向后生成交易流水号,并在接收到所述抵押请求后,根据所述交易流水号以及买方预设的密码生成第二抵押账号,创建用于将与交易商品等价的数字货币从第一平台方代理账号转移至所述第二抵押账号的第二抵押交易,并将所述第二抵押交易在所述区块链网络上广播,其中,所述第一平台方代理账号中的数字货币是所述平台方节点根据买方支付给平台方的法币兑换的;所述卖方节点用于从所述平台方节点获取所述交易流水号,根据所述交易流水号以及买方在确认所述商品交易成功后提供的所述预设的密码生成所述第二抵押账号,创建用于将与交易商品等价的数字货币从所述第二抵押账号转移至卖方账号的第三赎回交易,并将所述第三赎回交易在所述区块链网络上广播;所述记账参与节点用于从所述区块链网络上接收并验证所述第二抵押交易的合法性,并在确定所述第二抵押交易合法后将所述第二抵押交易纳入到用于生成区块的待打包交易集合,以及用于从所述区块链网络上接收并验证所述第三赎回交易,并在确定所述第三赎回交易合法后将所述第三赎回交易纳入到用于生成区块的待打包交易集合。
上述交易系统相较于第一方面提供的交易系统,其主要区别在于买方节点并不直将数字货币从买方账号转移到第二抵押账号,而是由买方节点向平台方节点发送抵押请求后,由平台方节点将数字货币从第一平台方代理账号转移至第二抵押账号,其中,第一平台方代理账号支付的数字货币是平台方节点根据买方支付给平台方的法币兑换而来的,实质上仍然可视为买方抵押的资产。至于买方何时向平台方支付这笔法币是不限制的,可以是买卖双方达成交易意向之后买方才支付,也可以是买卖双方达成交易意向之前的某个时刻买方预先支付的。
目前,出于金融安全等因素的考虑,在部分国家尚不允许私人直接进行数字货币交易,而在上述交易系统中,买方(可以为私人)并不直接持有数字货币,对数字货币的交易行为由平台方代理,使得该交易系统适合于这些国家的法律规定。
可以理解的,对于卖方,也可以用类似的方式避免其直接持有数字货币,例如,由卖方节点向平台方节点发送赎回请求后,由平台方节点将数字货币从第二抵押账号转移至第二平台方代理账号,然后再由平台方节点将第二平台方代理账号中的数字货币兑换为法币支付给卖方。
关于第二方面提供的交易系统的其余有益效果可参考第一方面中的描述,不再重复。
第三方面,本申请实施例提供一种交易系统,包括区块链网络中的卖方节点、平台方节点以及记账参与节点;所述平台方节点用于在买方与卖方达成商品交易意向后生成交易流水号;所述卖方节点用于从所述平台方节点获取所述交易流水号,根据所述交易流水号以及卖方预设的密码生成第三抵押账号,并创建用于将与交易商品等价的数字货币从卖方账号转移至所述第三抵押账号的第三抵押交易,以及将所述第三抵押交易在所述区块链网络上广播;所述卖方节点还用于在商品交易期截止后创建用于将与交易商品等价的数字货币从所述第三抵押账号转移至卖方账号的第四赎回交易,以及将所述第四赎回交易在所述区块链网络上广播;所述记账参与节点用于从所述区块链网络上接收并验证所述第三抵押交易的合法性,并在确定所述第三抵押交易合法后将所述第三抵押交易纳入到用于生成区块的待打包交易集合,以及用于从所述区块链网络上接收并验证所述第四赎回交易,并在确定所述第四赎回交易合法后将所述第四赎回交易纳入到用于生成区块的待打包交易集合。
上述交易系统相较于第一方面提供的交易系统,其主要区别在于抵押方为卖方而不是买方。另外,在第一抵押交易中,平台方可能会向买方收取交易服务费(如可以包含在第一抵押交易的输出中),而在第三抵押交易中,平台方则改向卖方收取交易服务费(如可以包含在第三抵押交易的输出中)。
目前,虽然部分国家尚不允许私人(如买方)直接进行数字货币交易,但允许商家(如卖方、平台方)持有数字货币,此时可适用上述基于卖方抵押的交易系统(第一方面提供的交易系统为基于买方抵押的交易系统)。该系统的交易流程可以如下:首先,卖方将自身的资产抵押至第三抵押账号;然后,买方将法币支付给卖方;接着,卖方在收到法币后发货,买方收货;最后,若商品交易期已经截止,卖方可以从第三抵押账号中赎得之前抵押的资产。若交易过程中出现纠纷,平台方也可以处置第三抵押账号中的资产。
在上述交易系统中,买方无需持有数字货币,只需持有法币即可,卖方可以持有数字货币,但这并不违反上述国家的法律规定,从而有利于拓展交易系统的适用场景,增强其实用性。
关于第三方面提供的交易系统的其余有益效果可参考第一方面中的描述,不再重复。
在第三方面的一些实现方式中,所述卖方节点还用于在创建所述第三抵押交易时设置第四交易时长;所述记账参与节点在验证接收到的所述第四赎回交易的合法性时,根据作为所述商品交易期的起点的所述第三抵押交易的交易基准时以及所述第四交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期尚未截止后将接收到的所述第四赎回交易确定为非法,被确定为非法的所述第四赎回交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
在第三方面的一些实现方式中,所述交易系统还包括买方节点,所述买方节点或所述卖方节点还用于在获得指示调整交易时长的信息后,创建用于设置第五交易时长的第三期限调整交易,并将所述第三期限调整交易发送至所述平台方节点,其中,所述第五交易时长表征用于替换所述第四交易时长作为确定所述第四赎回交易是否合法的依据;所述平台方节点还用于将所述第三期限调整交易在所述区块链网络上广播;所述记账参与节点还用于从所述区块链网络上接收并验证所述第三期限调整交易的合法性,并在确定所述第三期限调整交易合法后将所述第三期限调整交易纳入到用于生成区块的待打包交易集合;所述记账参与节点在验证接收到的所述第三期限调整交易的合法性时,根据所述第三抵押交易的交易基准时以及所述第四交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第三期限调整交易确定为非法,被确定为非法的所述第三期限调整交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
在第三方面的一些实现方式中,所述买方节点或所述卖方节点还用于在获得指示申请仲裁的信息后,向所述平台方节点发送仲裁请求;所述平台方节点还用于在接收到所述仲裁请求后,创建仲裁类交易,并在所述仲裁类交易为用于设置第六交易时长的第四期限调整交易时,将所述第四期限调整交易在所述区块链网络上广播,其中,所述第六交易时长表征用于替换上一交易时长作为确定所述第四赎回交易是否合法的依据,若在本次创建的交易之前未创建过期限调整交易,则所述上一交易时长为所述第四交易时长,否则所述上一交易时长为最近一次创建的期限调整交易设置的交易时长;所述记账参与节点还用于从所述区块链网络上接收并验证所述第四期限调整交易的合法性,并在确定所述第四期限调整交易合法后将所述第四期限调整交易纳入到用于生成区块的待打包交易集合;所述记账参与节点在验证接收到的所述第四期限调整交易的合法性时,根据所述第三抵押交易的交易基准时以及所述上一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第四期限调整交易确定为非法,被确定为非法的所述第四期限调整交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
在第三方面的一些实现方式中,所述平台方节点还用于在所述仲裁类交易为第二分配交易时,将所述第二分配交易在所述区块链网络上广播,其中,所述第二分配交易用于将与交易商品等价的数字货币从所述第三抵押账号分配至所述卖方账号和/或平台方账号中,分配至所述平台方账号的数字货币用于赔付买方在所述商品交易的过程中支付给卖方的部分或全部的法币;所述记账参与节点还用于从所述区块链网络上接收并验证所述第二分配交易的合法性,并在确定所述第二分配交易合法后将所述第二分配交易纳入到用于生成区块的待打包交易集合;所述记账参与节点在验证接收到的所述第二分配交易的合法性时,根据所述第三抵押交易的交易基准时以及所述上一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第二分配交易确定为非法,被确定为非法的所述第二分配交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
在第三方面的一些实现方式中,所述交易商品包括数字资产和/或针对数字资产的使用授权。
在上述实现方式中,数字资产可以是数字音乐、软件、电子书、电子游戏、游戏道具等,卖方售卖的对象可以是数字资产本身,也可以是数字资产的使用授权,例如,某个电子游戏(数字资产)的免费版本在网上可以随意下载,但该版本仅能够试玩一个游戏场景,需要用解密密码(实际中可能采用密码、激活码、序列号等称谓)解密后才能继续玩剩余的部分,该解密密码就属于该电子游戏的使用授权。
数字资产和/或针对数字资产的使用授权是一类比较特殊的商品,这类商品的复制成本几乎为零,在售卖之前卖方先抵押一定的数字货币是合理的(相当于对卖方的一种约束),因此可适用卖方抵押的方案;而对于一些实物商品,卖方进货可能已经耗费大量资金,在售卖之前再抵押大量数字货币卖方可能难以承担,也不太符合一般商家对商品交易的理解(还没卖出东西自己反而要倒贴钱),此时更适合于买方抵押的方案。
在第三方面的一些实现方式中,所述针对数字资产的使用权授权包括卖方提供的解密密码和/或版权控制文件。
第四方面,本申请实施例提供一种交易方法,应用于交易系统中的买方节点,所述方法包括:从所述交易系统的平台方节点获取商品交易的交易流水号;根据所述交易流水号以及买方预设的密码生成第一抵押账号,并创建用于将与交易商品等价的数字货币从买方账号转移至所述第一抵押账号的第一抵押交易;将所述第一抵押交易在部署有所述交易系统的区块链网络上广播。
在第四方面的一些实现方式中,所述方法还包括:在创建所述第一抵押交易时设置第一交易时长,所述第一交易时长被所述交易系统中的记账参与节点用于判断以所述第一抵押交易的交易基准时为起点的商品交易期是否已经截止;其中,所述区块链上的一项交易的交易基准时为所述交易被纳入到用于生成区块的待打包交易集合时的最近区块事务基准时,所述最近区块事务基准时为所述区块链上最近一个已确定区块事务基准时的区块的区块事务基准时,所述区块链上的一个区块的区块事务基准时为根据所述区块的生成时间计算出的一个时刻,且所述时刻与所述区块在所述区块链中的高度正相关。
在第四方面的一些实现方式中,所述方法还包括:在获得指示调整交易时长的信息后,创建用于设置第二交易时长的第一期限调整交易,所述第二交易时长表征用于替换所述第一交易时长作为确定所述商品交易期是否已经截止的依据;将所述第一期限调整交易发送至所述平台方节点,由所述平台方节将所述第一期限调整交易在所述区块链网络上广播。
在第四方面的一些实现方式中,所述方法还包括:在商品交易期截止后,创建用于将与交易商品等价的数字货币从所述第一抵押账号转移至所述买方账号的第二赎回交易;将所述第二赎回交易在所述区块链网络上广播。
第五方面,本申请实施例提供一种交易方法,应用于交易系统中的卖方节点,所述方法包括:从所述交易系统的平台方节点获取商品交易的交易流水号;根据所述交易流水号以及买方在确认商品交易成功后提供的预设的密码生成第一抵押账号,并创建用于将与交易商品等价的数字货币从所述第一抵押账号转移至卖方账号的第一赎回交易;将所述第一赎回交易在部署有所述交易系统的区块链网络上广播。
在第五方面的一些实现方式中,所述方法还包括:在获得指示调整交易时长的信息后,创建用于设置第二交易时长的第一期限调整交易,所述第二交易时长表征用于替换第一交易时长作为确定所述商品交易期是否已经截止的依据,其中,所述第一交易时长是所述交易系统中的买方节点在创建所述第一抵押交易时设置的;将所述第一期限调整交易发送至所述平台方节点,由所述平台方节将所述第一期限调整交易在所述区块链网络上广播。
第六方面,本申请实施例提供一种交易方法,应用于交易系统中的平台方节点,所述方法包括:从所述交易系统中的买方节点或卖方节点接收针对商品交易的仲裁请求;根据所述仲裁请求创建仲裁类交易,所述仲裁类交易为用于设置第三交易时长的第二期限调整交易,或,所述仲裁类交易为用于将与交易商品等价的数字货币从第一抵押账号分配至买方账号、卖方账号以及平台方账号中的至少一个账号的第一分配交易,其中,所述第三交易时长表征用于替换上一交易时长作为确定商品交易期是否已经截止的依据,若在本次创建的交易之前未创建过期限调整交易,则所述上一交易时长为第一交易时长,否则所述上一交易时长为最近一次创建的期限调整交易设置的交易时长;将所述仲裁类交易在部署有所述交易系统的区块链网络上广播。
第七方面,本申请实施例提供一种交易方法,应用于交易系统中的记账参与节点,所述方法包括:从部署有所述交易系统的区块链网络上接收并验证第一抵押交易的合法性,并在确定所述第一抵押交易合法后将所述第一抵押交易纳入到用于生成区块的待打包交易集合;从所述区块链网络上接收并验证第一赎回交易的合法性,并在确定所述第一赎回交易合法后将所述第一赎回交易纳入到用于生成区块的待打包交易集合。
在第七方面的一些实现方式中,所述验证第一赎回交易的合法性,包括:根据作为商品交易期的起点的所述第一抵押交易的交易基准时以及第一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第一赎回交易确定为非法,被确定为非法的所述第一赎回交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合;其中,所述第一交易时长是所述交易系统中的买方节点在创建所述第一抵押交易时设置的,所述区块链上的一项交易的交易基准时为所述交易被纳入到用于生成区块的待打包交易集合时的最近区块事务基准时,所述最近区块事务基准时为所述区块链上最近一个已确定区块事务基准时的区块的区块事务基准时,所述区块链上的一个区块的区块事务基准时为根据所述区块的生成时间计算出的一个时刻,且所述时刻与所述区块在所述区块链中的高度正相关。
在第七方面的一些实现方式中,所述方法还包括:从所述区块链网络上接收除自身以外的其他记账参与节点生成的区块;若接收到的区块中纳入了第一抵押交易,则验证纳入的所述第一抵押交易的合法性,并在确定所述第一抵押交易为非法后,拒绝将接收到的区块保存至本地的区块链中;若接收到的区块中纳入了第一赎回交易,则验证纳入的所述第一赎回交易的合法性,并在确定所述第一赎回交易为非法后,拒绝将接收到的区块保存至本地的区块链中。
第八方面,本申请实施例提供一种交易方法,应用于交易系统中的平台方节点,所述方法包括:在买方与卖方达成商品交易意向后生成交易流水号;从所述交易系统的买方节点接收指示进行数字货币抵押的抵押请求;根据所述交易流水号以及买方预设的密码生成第二抵押账号,创建用于将与交易商品等价的数字货币从第一平台方代理账号转移至所述第二抵押账号的第二抵押交易,其中,所述第一平台方代理账号中的数字货币是所述平台方节点根据买方支付给平台方的法币兑换的;将所述第二抵押交易在部署有所述交易系统的区块链网络上广播。
第九方面,本申请实施例提供一种交易方法,应用于交易系统中的卖方节点,所述方法包括:从所述交易系统的平台方节点获取商品交易的交易流水号;根据所述交易流水号以及卖方预设的密码生成第三抵押账号,并创建用于将与交易商品等价的数字货币从卖方账号转移至所述第三抵押账号的第三抵押交易;
将所述第三抵押交易在部署有所述交易系统的区块链网络上广播;在商品交易期截止后创建用于将与交易商品等价的数字货币从所述第三抵押账号转移至卖方账号的第四赎回交易,以及将所述第四赎回交易在所述区块链网络上广播。
第十方面,本申请实施例提供一种买方节点,部署于区块链网络中,所述买方节点包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第四方面或第四方面的任意一种可能的实现方式提供的方法的步骤。可以理解的是,买方节点可以是,但不限于区块链网络中的SPV(SimplifiedPayment Verification,简化支付验证)节点,或者委托区块链中其它节点实现相同功能(如交易发起、签名确认等)的浏览器客户端,等等。
第十一方面,本申请实施例提供一种卖方节点,部署于区块链网络中,所述卖方节点包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第五方面、第九方面或两方面的任意一种可能的实现方式提供的方法的步骤。可以理解的是,卖方节点可以是,但不限于区块链网络中的SPV节点,或者委托区块链中其它节点实现相同功能(如交易发起、签名确认等)的浏览器客户端,等等。
第十二方面,本申请实施例提供一种平台方节点,部署于区块链网络中,所述平台方节点包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第六方面、第八方面或两方面的任意一种可能的实现方式提供的方法的步骤。可以理解的是,平台方节点可以是,但不限于区块链中SPV节点,或者委托区块链中其它节点实现相同功能(如交易发起、签名确认等)的浏览器客户端,等等。
第十三方面,本申请实施例提供一种记账参与节点,部署于区块链网络中,所述记账参与节点包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第七方面或第七方面的任意一种可能的实现方式提供的方法的步骤。
为使本申请的上述目的、技术方案和有益效果能更明显易懂,下文特举实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种节点的功能模块图;
图2示出了本申请实施例提供的一种交易系统的结构图;
图3示出了本申请实施例提供的与买方抵押相关的交易的流程图;
图4示出了本申请实施例提供的一种基于买方抵押的交易流程图;
图5示出了本申请实施例提供的商品交易期的阶段划分的示意图;
图6示出了本申请实施例提供的与卖方抵押相关的交易的交互图;
图7示出了本申请实施例提供的一种基于卖方抵押的交易流程图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于将一个实体或者操作与另一个实体或操作区分开来,而不能理解为指示或暗示相对重要性,也不能理解为要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在传统电子商务活动中,由于买卖双方之间无法完全信任对方,常以中间人作保方式让双方实现交易。例如,由某个第三方电商平台作为中间保人,买方先给电商平台打款,卖方见买方已付款,于是放心给买方发货,而买方收货后确认货品无误,就指示电商平台将已付款项转给卖方。其中,电商平台应当具有强信用特征,以便买卖双方都能够给予其充分的信任,这对电商平台的运营实体的资质提出了较高的要求,大企业在这方面相对于中小企业或者个人具有天然优势,导致在电子商务领域容易出现一家独大的垄断现象,不利于商品经济发展。
发明人经长期研究发现,上述有中间人作保的电商交易的本质是:买方先将自身资产抵押给具有强信用特征的第三方电商平台,以此提高自己的信用,以便让交易达成,当买方收货成功后,卖方再从电商平台处赎得对方抵押的资产,至此成功完成了一次交易,如果交易出现异常买方想取消交易(例如,没收到货),买方也可以自行赎回已抵押的资产,避免遭受经济损失。以上交易过程既有资产的抵押,又有资产的赎回,因此可称为基于抵赎方式的商品交易。
本申请实施例提供的交易系统、方法以及交易系统中的节点,借助于区块链上转账交易来表达基于抵赎方式的商品交易,利用区块链具有的透明记账、不可篡改、去中心化、自动处理等特性,改善现有技术中存在的上述问题。
本申请实施例提供一种节点100,该节点100部署于区块链网络中,其功能模块图如图1所示。参照图1,节点100包括:处理器110、存储器120以及网络接口130,这些组件通过通信总线140和/或其他形式的连接机构(未示出)互连并相互通讯。
其中,存储器120包括一个或多个(图中仅示出一个),其可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),电可擦除只读存储器(Electric Erasable ProgrammableRead-Only Memory,简称EEPROM)等。处理器110以及其他可能的组件可对存储器120进行访问,读和/或写其中的数据。
处理器110包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器110可以是通用处理器,包括中央处理器(CentralProcessing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(Network Processor,简称NP)或者其他常规处理器;还可以是专用处理器,包括数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuits,简称ASIC)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
网络接口130包括一个或多个(图中仅示出一个),用于和区块链网络中除节点100以外的其他节点进行通信,网络接口130可以是以太网接口,也可以是移动通信网络接口,例如3G、4G、5G网络的接口,还可以是其他具有网络数据收发功能的接口。
在存储器120中可以存储一条或多条计算机程序指令,处理器110可以读取并运行这些计算机程序指令,以实现本申请实施例提供的交易方法的步骤以及其他期望的功能。
可以理解,图1所示的结构仅为示意,节点还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。于本申请实施例中,节点100可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,节点100也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
图2示出了本申请实施例提供的一种交易系统200的结构示意图。参照图2,交易系统200包括区块链网络250中的买方节点210、卖方节点220、平台方节点230以及记账参与节点240。
其中,区块链网络250是指部署有区块链的网络,各类节点的数量均可以为一个或多个(图中均只示出了一个),这些节点可以实现为图1中的节点100,当然,根据不同类型的节点的功能,其软硬件配置可以不同,例如,买方节点210可以是一台性能(如处理、存储能力)要求较低的移动终端,记账参与节点240可以是一台性能要求较高的服务器,等等。
图2还示出了各类节点在交易过程中对应的身份(与节点之间用虚线箭头连接),具体为:买方节点210对应买方,例如,买方可以利用买方节点210选购商品;卖方节点220对应卖方,例如,买方可以利用卖方节点220出售商品;平台方节点230对应平台方,例如,平台方可以利用平台方节点230提供商品交易中介服务,并协助买卖双方完成商品交易;记账参与节点240对应记账参与者,例如,记账参与者可以利用记账参与节点240进行记账权竞争,从而记录交易。
需要指出,上述不同的节点并不一定实现为独立的设备,例如平台方节点230如果自身也进行记账权竞争,则它同时也可以是记账参与节点240。可以理解的,区块链网络250中还可以包含除上述四类以外的其他的节点,即区块链网络250中的节点并不一定都是交易系统200中的节点,同时交易系统200中也可以包含除上述四类以外的其他的节点。
图3示出了本申请实施例提供的与买方抵押相关的交易的流程图。其中,买方抵押是指在商品交易的过程中由买方抵押自身资产作为交易担保的方式,相应地还有卖方抵押的交易方式,买方抵押或卖方抵押的具体含义将在后文进一步阐述。图3中共示出了第一抵押交易、第一赎回交易、第一期限调整交易、第二期限调整交易、第一分配交易以及第二赎回交易共六种交易的在买方节点、卖方节点、平台方节点以及记账参与节点之间的交互流程。上述各节点可以处于同一区块链网络中,如图2所示。
图4示出了本申请实施例提供的一种基于买方抵押的交易流程图。图4中的步骤可以结合图3进行理解,例如,步骤S202中的“第一抵押交易流程”,其具体的执行方法在图3中示出。
参照图4,该交易流程包括:
步骤S200:买方将法币兑换为数字货币。
在图4示出的方法中,商品交易基于区块链上发行的数字货币进行:例如,可以是USDT等稳定币,稳定币可以和法币按照较为固定的兑换比例进行绑定,使得商品价值不至于在交易期间出现大幅波动,稳定币可由国家或企业主导发行;又例如,可以是平台方发行、并以自身信用作保的某种数字货币,该数字货币主要用于记账而非结算并且具有线下兑换渠道(即结算)。买方管理区块链上的买方账号,在进行某次交易前,为保证买方账号中有足以进行交易的数字货币,买方可以用法币兑换所需金额的数字货币并将其存入买方账号。当然,如果在进行某次交易前,买方账号的余额中已经有足以进行交易的数字货币,则可以不必执行步骤S200。
在一些实现方式中,买方可以借助于平台方兑换数字货币;在另一些实现方式中,买方也可以自行兑换数字货币。对于前一种实现方式,可以是买方通过买方节点将法币转账给平台方(买方的转账行为可以在买方节点上进行),平台方在收到转帐后,从其管理的平台方账号中转账相应金额的数字货币给买方账号(平台方的转账行为可以在平台方节点上进行)。
步骤S201:买卖双方达成交易意向。
借助于平台方提供的电商交易平台,买卖双方可以达成交易意向,所谓达成交易意向,可以指买卖双方已经做出交易约定,但交易尚未实际进行的状态(例如,买方已经在平台方管理的网站上确认“购买”,但还没有付款的状态)。
可以理解的,本申请中的商品交易具有较广的覆盖范围:例如,可以是卖方在电商平台上展示商品,买方自主选购商品的形式;可以是买方提出购买要求(如最高买入价格),卖方提出销售要求(如最低卖出价格),由电商平台从中撮合交易的形式;还可以是买方在电商平台上提出对欲购买商品的需求(如对商品的种类、外观、质量、价格等的描述),卖方自主选择合适的商品进行供货的形式。
买卖双方达成交易意向后,平台方节点为该商品交易生成一个标识本次交易的流水号(例如,可以是一个字符串),交易流水号将在后续步骤中使用。
步骤S202:执行第一抵押交易流程。
步骤S202包括步骤S110至S114几个子步骤,具体如下:
步骤S110:买方节点从平台方节点获取交易流水号。
在实施时,可以是买方主动向平台方节点请求交易流水号,也可以是平台方节点在生成交易流水号后将其推送给买方节点。
步骤S111:买方节点生成第一抵押账号。
第一抵押账号是本次商品交易中使用的一个临时账号,账号通过步骤S110中获得的交易流水号以及买方预设的密码计算得到。其中,买方预设的密码可以事先保存在买方节点中,也可以在执行步骤S111时提醒买方输入密码。如果买方进行多次商品交易,每次使用的密码可以相同,也可以不同。
在步骤S111的一些实现方式中,买方节点可以根据交易流水号、预设的密码以及平台特征字三项信息,利用哈希算法生成第一抵押账号的私钥。其中,平台特征字(例如,可以是一个字符串)用于标识平台方,不同的电商平台可以指定自己的平台特征字。买方节点可以在执行步骤S111时从平台方节点获取平台特征字,也可以在之前的某个时刻获取后将其保存在本地,在之后的商品交易中,若平台方的平台特征字没有变化,买方节点在需要计算私钥时可以直接从本地读取平台特征字。
买方节点可以首先合并上述三项信息(例如,可以采取拼接为一个字符串的方式),然后使用哈希算法以合并后的信息作为输入计算出一个哈希值,将该哈希值作为第一抵押账号的私钥。例如,将合并后的信息作为SHA256算法的输入,可以获得32字节(256比特)的输出,即32字节的私钥。其中,具体采用何种哈希算法不作限定,例如,还可以是SHA512算法,等等。在确定了账号的私钥后,账号的公钥可以椭圆曲线算法(如Secp256k1标准下的ECC算法)进行推导,在公钥确定以后,第一抵押账号可以根据公钥计算。
例如,在区块链中,账号可以这样确定:A=RIPEMD160(SHA256(K)),其中,A表示公钥哈希,K表示账号的公钥,SHA256是上面已经提到过的一种现有的哈希算法,输出32字节的数据,RIPEMD160也是一种现有的哈希算法,输出20字节的数据。实际上公钥哈希已经可以代表账号了,但为增强可读性还可以对公钥哈希利用Base58进行编码,将其转化为一个由数字和字母构成的字符串,即通常意义上用户可见的账号)。在本申请利用公钥计算第一抵押账号时,可以采取类似的做法。
需要指出,在买方节点生成第一抵押账号的私钥后,买方节点实际上已经获得第一抵押账号的控制权(因为相应的衍生物,如公钥、公钥哈希、Base58格式的账号地址都可以通过私钥导出),因此从买方节点的角度来看,生成私钥即是创建了第一抵押账号,其他的衍生物可以看作是第一抵押账号在不同用途下的不同表现形式。
在上述实现方式中,平台特征字以及私钥生成算法可以是公开的,而交易流水号对与交易相关的各方(如平台方、卖方)也是公开的,因此与交易相关的各方若能够获得买方预设的密码便可以自行推导第一抵押账号私钥,从而获得对第一抵押账号的控制权,例如可以利用推导出的私钥对与第一抵押账号相关的交易进行授权(授权即动用私钥对交易进行签名),以赎得第一抵押账号中的数字货币。需要指出,虽然获得密码的节点可以赎得第一抵押账号中的数字货币,但并不是说必须拥有密码才能支配第一抵押账号中的数字货币,只是说在未获得密码的情况下对这些数字货币的支配是受到一定限制的(如可以通过锁定脚本进行限制,锁定脚本见后文阐述),例如,平台方节点虽然不知道密码,但可以创建第一分配交易分配第一抵押账号中的数字货币。
步骤S112:买方节点创建第一抵押交易。
第一抵押交易用于将与交易商品等价的数字货币从买方账号转移至步骤S111中生成的第一抵押账号。其中,上述与交易商品等价的数字货币就是交易货款。第一抵押交易的具体形式不作限定,后文会给出在区块链上的数字货币采用UTXO模型时实现第一抵押交易的一种具体方式。当然,若区块链上的数字货币采用账户/余额模型,则第一抵押交易也可以采用不同的实现方式。
步骤S113:买方节点将第一抵押交易在区块链网络上广播。
虽然区块链网络上的节点都可能收到广播的第一抵押交易,但只有记账参与节点会对接收到第一抵押交易进行处理,因此在图3中只示出了从买方节点到记账参与节点的箭头。
步骤S114:记账参与节点验证第一抵押交易的合法性。
记账参与节点在接收到广播的第一抵押交易后,会对交易的合法性进行验证,若验证为合法,则将第一抵押交易纳入到用于生成区块的待打包交易集合。
需要指出的是,区块链中并不一定只存在图3中示出的几种交易类型,也可能存在其他类型的交易(例如,非本申请中的商品交易流程使用的交易),因此上述待打包交易集合中也可能纳入这些交易。
若满足一定的条件,例如,待打包交易集合中的交易达到一定的数量,或者,经过了预设的时长,等等,记账参与节点会基于待打包交易集合生成新区块,并参与竞争记账权,并在获得记账权后将新区块写入到本地的区块链中,以使第一抵押交易上链。
若步骤S114中的验证为非法,则记账参与节点不会将第一抵押交易纳入到用于生成区块的待打包交易集合。
步骤S203:卖方发货,买方收货。
买方将自身的资产抵押到第一抵押账号后,卖方可以获知这一情况,并完成发货。例如,买方节点在创建第一抵押交易后,可以通知平台方节点买方已经付款,平台方节点可以向卖方节点推送通知,告知卖方可以发货。当然,平台方节点也可以等待一段时间,例如在查询到第一抵押交易确实已经在区块链上被确认(例如,6个区块确认交易的原则)后才向卖方节点推送通知。具体的发货收货流程和现有的电商交易类似,不再具体解释。
步骤S204:买方告知卖方预设密码。
若买方成功收到商品,可以将步骤S111中使用的预设的密码告知卖方,根据步骤S111中阐述的内容,若卖方获得密码,则卖方可以获得第一抵押账号的控制权,该密码将被卖方节点在步骤S205中使用。
其中,将密码告知卖方的方式可以通过平台方,例如,买方节点先将密码发送到平台方节点,买方节点通知平台方节点买方成功收货后,平台方节点将密码推送给卖方节点。在另一些实现方式中,为避免平台方从中作恶(例如,平台方在获知密码后可以自行控制第一抵押账号中买方抵押的资产,或者平台方在买方尚未确认收货时就将密码告知卖方,使得卖方可以提前控制第一抵押账号),买方也可以不通过平台方将密码告知卖方,例如,通过邮件、即时聊天工具、电话等等途径。
步骤S205:执行第一赎回交易流程。
步骤S205包括步骤S120至S124几个子步骤,具体如下:
步骤S120:卖方节点从平台方节点接收交易流水号。
步骤S120类似步骤S110,不再具体阐述。需要指出,步骤S120也可以在平台方节点生成交易流水号之后,以及步骤S205之前的某个时刻就执行。
步骤S121:卖方节点生成第一抵押账号。
卖方节点利用步骤S204中获得预设密码以及步骤S120中获得的交易流水号可以计算第一抵押账号,其计算过程和步骤S111相同,不再重复阐述。
理论上买方也可以直接将计算出的第一抵押账号的私钥提供给卖方,卖方节点直接利用私钥也可以计算第一抵押账号,但私钥通常较长,在传输复制过程中容易出错,例如32字节的私钥,本来已经比较长,如果为了便于书写,用Base58进行编码后,生成的字符串长度甚至可超过44字符,转述该字符串容易出错,所以在图4示出的交易流程中改为用密码替代私钥。
根据密码先生成私钥再生成第一抵押账号虽然相比直接根据私钥生成第一抵押账号有一些优势,但如果密码长度较短或者比较简单,容易被暴力破解,导致第一抵押账号中的数字货币被人非法转走。因此,在具体实施时可以采取一些防范措施,下面仅举两例说明:
其一,强制要求买方在设置密码时长度达到一定的要求(如12个字符),或者复杂度必须达到一定的要求(如大小写字母、数字、标点符号混用)。
其二,借助于特殊的安全硬件环境,比如可信执行环境TEE(Trusted ExecutionEnvironment),TEE可以配置于买方节点以及卖方节点,之前阐述的第一抵押账号的私钥的生成过程可以在TEE中执行。以第一抵押账号的私钥根据交易流水号、平台特征字、买方预设的密码生成的情况为例,平台特征字可以保存在TEE内部,不再对TEE外部公开,同款的TEE可以保证对相同的电商平台采用同一平台特征字,这时,即使买方预设的密码较短,由于TEE本身的算力限制也会让破解效率变低,从而密码防破解能力较强。
步骤S122:卖方节点创建第一赎回交易。
第一赎回交易用于将与交易商品等价的数字货币从步骤S121中生成的第一抵押账号转移至卖方账号。其中,卖方账号是买方管理的区块链上的账号。第一赎回交易的具体形式不作限定,后文会给出在区块链上的数字货币采用UTXO模型时实现第一赎回交易的一种具体方式。
步骤S123:买方节点将第一赎回交易在区块链网络上广播。
虽然区块链网络上的节点都可能收到广播的第一赎回交易,但只有记账参与节点会对接收到第一赎回交易进行处理,因此在图3中只示出了从卖方节点到记账参与节点的箭头。
步骤S124:记账参与节点验证第一赎回交易的合法性。
记账参与节点在接收到广播的第一赎回交易后,会对交易的合法性进行验证,若验证为合法,则将第一赎回交易纳入到用于生成区块的待打包交易集合。
若满足一定的条件,记账参与节点会基于待打包交易集合生成新区块,并参与竞争记账权,并在获得记账权后将新区块写入到本地的区块链中,以使第一赎回交易上链。
若步骤S124中的验证为非法,则记账参与节点不会将第一赎回交易纳入到用于生成区块的待打包交易集合。
步骤S206:卖方将数字货币兑换为法币。
当第一赎回交易在区块链上被确认后,在区块链层面上,交易货款已经从买方转移到卖方,可以认为交易已经结束。此时,卖方可以将卖方账号中的数字货币兑换为法币,其方式类似步骤S201,不再具体阐述。注意,步骤S206是可选择,如果卖方并不需要兑换法币,也可以不执行步骤S206。
在由上面的步骤S200至步骤S206的构成交易流程中,借助于区块链上的第一抵押交易和第一赎回交易来表达基于抵赎方式的商品交易的流程。若第一抵押交易和第一赎回交易都被区块链所最终确认,则商品交易完成。
在该方法中,由于区块链具有透明记账、不可篡改的特性(区块链上的交易公开透明,难以篡改),使得其可以为商品交易提供担保,代替传统的电商平台的交易担保功能,交易系统中由电商平台运营的平台方节点只需要辅助交易的顺利进行(例如,产生交易流水号),而不需要再为商品交易提供信用担保。因此,对电商平台的运营实体的资质要求得到降低,使得更多的企业或个人参与到电子商务中来,避免垄断、促进竞争,有利于商品经济的繁荣发展。
同时,由于区块链具有去中心化的特性,使得买卖双方信任的主体不再是某个单一的机构(如运营电商平台的大型企业),不必担心单一机构自身出现安全问题或大规模设备故障,使得商品交易的安全性和可靠性进一步提高。
此外,由于区块链还具有交易自动处理的特性,有利于减少交易过程中的人工服务,商品交易的自动化程度更高、交易更易达成,同时电商平台的运营成本也得到降低。
上述区块链的具体形式不作限定,例如,可以是公有链、联盟链、私有链等等,可以根据具体需求进行选择,比如若为了吸引更多用户参与商品交易,可选择公有链的实施方式,若为了加快交易速度,可选择联盟链或私有链的实施方式。
在上面的交易流程中,并未提及交易期限的问题,也就是说按照上面的实现方式,卖方可以在获得密码之后的任何时刻赎得第一抵押账号中的货款。在另一些实现方式中,针对商品交易设置有商品交易期,并限定卖方赎得货款的操作应当在商品交易期内作出,否则无效,避免卖方迟迟不完成交易,造成相关资源浪费(例如,平台方节点对于尚未完成的商品交易,可能会维护某些状态),增强交易系统的安全性与实用性,其具体做法可以如下:
步骤S112中,买方节点在创建第一抵押交易时设置第一交易时长,例如,可以将第一交易时长作为第一抵押交易的内容的一部分。第一交易时长表征商品交易期的长度,在设置第一交易时长后,商品交易期以第一抵押交易的交易基准时为起点经过第一交易时长截止。
其中,区块链上的一项交易的交易基准时可以定义为交易被纳入到用于生成区块的待打包交易集合时的最近区块事务基准时,而最近区块事务基准时可以定义为区块链上最近一个已确定区块事务基准时的区块的区块事务基准时,区块链上的一个区块的区块事务基准时则可以定义为根据区块的生成时间计算出的一个时刻,且时刻与区块在区块链中的高度正相关。
可见,无论是交易基准时、最近区块事务基准时最终还是基于区块事务基准时定义的,后文会给出区块事务基准时的一种具体的计算方式。根据上面的定义,首先,区块事务基准时和区块是一一对应的,其次,区块事务基准时具有单向增长的特性,即相邻的两个区块中,后一个区块(在区块链中的高度较大的区块)的区块事务基准时总是晚于前一个区块(在区块链中的高度较小的区块)的区块事务基准时。区块事务基准时所具有的单向增长特性使得关于商品交易期的判断具有确定性,不至于出现交易的转账权限在不同的区块(尤其是相邻区块)之间摇摆不定的情况。
需要指出,在现有的区块链中,区块头虽然有记录有区块生成时间(如采用timestamp字段记录),但这个时间只是各个记账参与节点的本地时间,并不一定具有同步性,因此相关的协议在验证区块的生成时间时也不甚严格,例如,协议要求记账参与节点在接收到其他记账参与节点挖出的新区块时,如果新区块的生成时间在本机时间的未来2小时之后,或者最近11个区块的平均生成时间之前,记账参与节点将不会接纳收到的新区块,这并不是一个十分严格的要求。因此,直接将区块的生成时间作为区块事务基准时是不合适的,可以采用如下的计算方式:
某个区块的区块事务基准时定义为在区块链上以该区块为中心区块的M个区块的生成时间的平均值,其中,M为大于或等于3的正奇数。记账参与节点在生成一个新区块时,判断新区块的生成时间是否使得新区块之前的第(M-1)/2个区块的区块事务基准时大于新区块之前的第(M-1)/2+1个区块的区块事务基准时(即是否使得区块事务基准时总是满足单向增长的特性),若不大于,则将新区块之前的第(M-1)/2+1个区块的区块事务基准时加上预设时长后的值确定为新区块之前的第(M-1)/2个区块的区块事务基准时,并根据确定的区块事务基准时反推新区块的生成时间,并将新区块的区块头中记录的区块生成时间更新为反推出的时间。从而,若该新区块后续被区块链所接纳,在后续基于此区块的生成时间计算区块事务基准时时(例如为了进行商品交易期的相关验证),计算出的区块事务基准时将保持单向增长的特性。其中,预设时长的具体数值不限定,例如,目前的很多区块链实现方案中以秒为最小单位进行计时,则预设时长可以取一秒,这样即使了区块生成时间也只是微调,不至于产生什么负面影响。
需要指出,在上面的计算方式中,由于M为大于或等于3的正奇数,因此区块链尾部最后的部分区块并不能计算出区块事务基准时,这也是之前会定义最近区块事务基准时的原因。
还需要指出,虽然记账参与节点在记账的过程中,可能出现区块链暂时分叉的情况,但根据上面的计算方式,无论最终哪个分支被认可,都不会影响各区块的区块事务基准时单向增长的特性。
此外,可以理解的,区块事务基准时并非只有上述一种计算方式,凡是基于区块的生成时间计算的,且满足单向增长特性的时刻计算方式都是可以采用的。
步骤S214中,记账参与节点在验证第一赎回交易的合法性时,可以根据第一抵押交易的交易基准时以及第一交易时长判断商品交易期是否已经截止。例如,可以判断当前(指记账参与节点验证第一赎回交易的合法性时)的最近区块事务基准时(表征当前时间)是否还处于商品交易期内,若不处于商品交易期内,表明商品交易期已经截止,否则商品交易期尚未截止,当然也不排除定义其他判断准则。若记账参与节点确定商品交易期已经截止,则可以将接收到的第一赎回交易确定为非法,被确定为非法的第一赎回交易不会被记账参与节点纳入到用于生成区块的待打包交易集合。需要指出,若记账参与节点确定商品交易期尚未截止,并不一定能够确定第一赎回交易是合法的,因为对于第一赎回交易还可能进行其他验证(可以参考后文内容),所以这里只阐述了非法的情况。
上述记账参与节点的行为对卖方创建第一赎回交易的时机作出了限制,即卖方应当在商品交易期截止之前创建第一赎回交易将货款从第一抵押账号中转走,否则一旦商品交易期截止,卖方将无法赎得货款。
上面介绍主要是商品交易正常进行时的情况,即卖方发货后,买方在商品交易期内收到了商品,并确认商品无误的情况。但实际中,商品交易也有可能出现买方未收到货,或者收到的商品存在瑕疵等各种问题,此时单单依靠步骤S200至步骤S206的抵赎流程尚不足以处理这些情况,下面将在有商品交易期限制的前提下,继续参照图4介绍本申请实施例提供的交易系统中其他可能存在的交易。
步骤S207:执行第一期限调整交易流程。
步骤S207包括步骤S130至S133几个子步骤,具体如下:
步骤S130:买方创建第一期限调整交易。
第一期限调整交易用于调整商品交易期,在创建第一期限调整交易时可以设置第二交易时长,第二交易时长表征用于替换在第一抵押交易中设置的第一交易时长作为新的商品交易期的长度。在第一期限调整交易中,对于买方抵押到第一抵押账号中的资产可以仅做平移处理,平移后这笔资产还是归属于第一抵押账号,且金额也不变(因为第一期限调整交易的功能并不涉及数字货币的分配)。第一期限调整交易的具体形式不作限定,后文会给出在区块链上的数字货币采用UTXO模型时实现第一期限调整交易的一种具体方式。
若在商品交易期内,买卖双方不能按期完成商品交易,买卖双方都有权指示各自的节点创建第一期限调整交易。例如,卖方因故不能按期发货,为避免商品交易期截止致使其无法赎得货款,则卖方可以通过卖方节点创建第一期限调整交易,将商品交易期延长(即设置大于第一交易时长的第二交易时长);买方因故不能按期收货,为避免商品交易期截止致使卖方无法赎得货款,则买方可以通过买方节点创建第一期限调整交易,将商品交易期延长;买方已经正常收货,但商品交易期还有较长一段时间才截止,卖方希望能够提早赎得货款,则卖方可以通过卖方节点创建第一期限调整交易,将商品交易期缩短。当然,创建第一期限调整交易还可以是出于其他原因,这里不作限定。需要指出的是,在图3中,为了简便起见,只示出了第一期限调整交易由买方节点创建的情况。
第一期限调整交易不是必须的,如果买卖双方能够在正常商品交易期限(例如,第一交易时长所对应的期限)完成交易,也可以不创建第一期限调整交易。
步骤S131:买方节点将第一期限调整交易发送至平台方节点。
第一期限调整交易需要平台方授权(授权即动用平台方账号的私钥对交易进行签名),因此买方节点需要将第一期限调整交易发送到平台方节点。
步骤S132:平台方节点将第一期限调整交易在区块链网络上广播。
步骤S133:记账参与节点验证第一期限调整交易的合法性。
记账参与节点在接收到广播的第一期限调整交易后,会对交易的合法性进行验证,若验证为合法,则将第一期限调整交易纳入到用于生成区块的待打包交易集合。
若满足一定的条件,记账参与节点会基于待打包交易集合生成新区块,并参与竞争记账权,并在获得记账权后将新区块写入到本地的区块链中,以使第一期限调整交易上链。
若步骤S133中的验证为非法,则记账参与节点不会将第一期限调整交易纳入到用于生成区块的待打包交易集合。
步骤S133中验证交易的合法性包括与商品交易期有关的验证,即根据第一抵押交易的交易基准时以及第一交易时长判断商品交易期是否已经截止,并在确定商品交易期已经截止后将接收到的第一期限调整交易确定为非法。
例如,可以判断当前(指记账参与节点验证第一期限调整交易的合法性时)的最近区块事务基准时是否还处于商品交易期内,若不处于商品交易期内,表明商品交易期已经截止,否则商品交易期尚未截止。若记账参与节点确定商品交易期已经截止,则可以将接收到的第一期限调整交易确定为非法。需要指出,若记账参与节点确定商品交易期尚未截止,并不一定能够确定第一期限调整交易是合法的,因为对于第一期限调整交易还可能进行其他验证(可以参考后文内容)。
需要指出,由于记账参与节点在验证时第一期限调整交易尚未被区块链接纳,因此其中设置的第二交易时长尚未生效,故判断商品交易期时还是按照第一交易时长进行判断的。
步骤S207执行之后,若在新的商品交易期内买卖双方正常完成了交易,则继续执行步骤S204至步骤S206。需要注意,在执行步骤S205的子步骤S124时,由于第一期限调整交易已经被区块链接纳,所以其中设置的第二交易时长已经生效,此时记账参与节点在验证第一赎回交易的是否符合商品交易期的限制时,应当使用第二交易时长,不再使用第一交易时长。
此外,第一期限调整在整个商品交易过程中可以被限制为仅能创建一次,避免买方或卖方随意延长商品交易期,导致商品交易难以结束。例如,可以通过在买方节点、卖方节点、平台方节点或者记账参与节点上进行限制实现。
可以参照图5比较直观地了解第一期限调整交易的时限。首先介绍一下机器仲裁的概念:由于第一期限调整交易要经过平台方节点,因此可以视为经过了平台方的仲裁,这种仲裁由平台方节点自动完成,可以称为机器仲裁,机器仲裁期的起点可以定义为第一期限调整交易的交易基准时,终点就是调整后的商品交易期的截止时刻。
图5中的第一行表示商品交易正常进行的情况,正常交易期就是第一交易时长。第二行表示在原先的正常交易期内创建了第一期限调整交易的情况,从而第二行的正常交易期尚未结束就切换到了机器仲裁期,第二行的正常交易期加上机器仲裁期的时间长度就是第二交易时长。
步骤S208:执行第二期限调整交易流程。
步骤S208包括步骤S140至S143几个子步骤,具体如下:
步骤S140:买方节点向平台方节点发送仲裁请求。
若在商品交易期(此处商品交易期的含义在步骤S141中再具体解释)内,买卖双方不能按期完成商品交易,买卖双方都有权指示各自的节点向平台方节点发送仲裁请求,申请平台方对商品交易进行仲裁。
虽然之前已经提到,第一期限调整交易也可以视为一种简单的仲裁(即机器仲裁),但究其本质,不过是设置一个更长的商品交易期(这里为简单起见只讨论商品交易期延长的情况),使买卖双方有更多的时间完成收发货或者协商解决出现的纠纷,但并不表示在新的商品交易期内买方一定能够正常收货,或者买卖双方一定能够达成和解协议,此时买方或卖方可以进一步向平台方申请仲裁,平台方可以通过人工的方式进行仲裁,以解决纠纷。当然,发送仲裁请求还可以是出于其他原因,这里不作限定。此外,买方或卖方也可以直接向平台方申请仲裁,不一定要在创建第一延期交易之后。需要指出的是,在图3中,为了简便起见,只示出了仲裁请求由买方节点发送的情况。
步骤S141:平台方节点创建第二期限调整交易。
平台方节点在接收到仲裁请求后,可以由人工(如,平台方的仲裁员)根据仲裁请求的内容,作出不同的仲裁结果,然后指示平台方节点创建能够反映仲裁结果的仲裁类交易,仲裁类交易可以为第二期限调整交易或者第一分配交易,也就是说步骤S208和步骤S209并不能同时执行。
在一次商品交易过程中,根据仲裁结果,买方节点或卖方节点可以多次向平台方节点发送仲裁请求,每次收到仲裁请求后,平台方节点都会创建一个仲裁类交易。其中,第二期限调整交易可以连续创建多次,但第一分配交易只能创建一次,且第一分配交易创建后平台方节点就不能再创建仲裁类交易了(因为第一分配交易会分配第一抵押账号中的数字货币,在之后再创建仲裁类交易也没有意义了,详见步骤S209)。
第二期限调整交易用于调整商品交易期,在创建第二期限调整交易时可以设置第三交易时长,第三交易时长表征用于替换在上一交易中设置的上一交易时长作为新的商品交易期的长度。在第二期限调整交易中,对于买方抵押到第一抵押账号中的资产可以仅做平移处理,平移后这笔资产还是归属于第一抵押账号,且金额也不变。
之前已经提到,在申请中一次商品交易的过程由多笔区块链上的转账交易来表达,这些转账交易形成一个资金流动的链条(如,上一笔交易的输出作为下一笔交易的输入),与交易商品等价的数字货币按照该链条的方向从买方账号转移至卖方账号。上述所谓的上一交易就是指第二期限调整交易在该链条中的前驱交易。
若上一交易为第一抵押交易,则上一交易时长为第一交易时长(对应于图4,在步骤S202、S203执行之后进入步骤S208);若上一交易为第一期限调整交易,则上一交易时长为第二交易时长(对应于图4,在步骤S207执行之后进入步骤S208);若上一交易为上一第二期限调整交易(根据前面的阐述,平台方节点可以连续创建多个第二期限调整交易),则上一交易时长为上一第三交易时长(对应于图4,在步骤S208执行之后再次进入步骤S208)。
不难看出,第二期限调整交易和第一期限调整交易的功能是比较类似的,主要区别在于创建者不同。设置第二期限调整交易的初衷仍然是给买卖双方更多的时间,以便完成收发货或者协商解决出现的纠纷。当然,在创建第二期限调整交易时将第三交易时长设置得比上一交易时长更短也是可以的。在阐述了上一交易的含义后可以解释步骤S140中的商品交易期,该商品交易期是指上一交易中设置的上一交易时长所形成的商品交易期。
第二期限调整交易的具体形式不作限定,后文会给出在区块链上的数字货币采用UTXO模型时实现第一期限调整交易的一种具体方式。
第二期限调整交易不是必须的,如果买卖双方都没有申请仲裁,则平台方节点不会创建第二期限调整交易,并且平台方节点即使进行仲裁,所创建的仲裁类交易也不一定是第二期限调整交易,还可以是第一分配交易。可以理解的是,虽然第二期限调整交易在一次买卖中可以创建多次,但因为其是由平台方创建的,也就是由平台方控制期限调整是否有效,所以不必担心交易延期功能被买卖双方中任一方滥用。
步骤S142:平台方节点在区块链网络上广播第二期限调整交易。
步骤S143:记账参与节点验证第二期限调整交易的合法性。
记账参与节点在接收到广播的第二期限调整交易后,会对交易的合法性进行验证,若验证为合法,则将第二期限调整交易纳入到用于生成区块的待打包交易集合。
若满足一定的条件,记账参与节点会基于待打包交易集合生成新区块,并参与竞争记账权,并在获得记账权后将新区块写入到本地的区块链中,以使第二期限调整交易上链。
若步骤S143中的验证为非法,则记账参与节点不会将第二期限调整交易纳入到用于生成区块的待打包交易集合。
步骤S143中验证交易的合法性包括与商品交易期有关的验证,即根据第一抵押交易的交易基准时以及上一交易时长判断商品交易期是否已经截止,并在确定商品交易期已经截止后将接收到的第二期限调整交易确定为非法。
例如,可以判断当前(指记账参与节点验证第二期限调整交易的合法性时)的最近区块事务基准时是否还处于商品交易期内,若不处于商品交易期内,表明商品交易期已经截止,否则商品交易期尚未截止。若记账参与节点确定商品交易期已经截止,则可以将接收到的第二期限调整交易确定为非法。需要指出,若记账参与节点确定商品交易期尚未截止,并不一定能够确定第二期限调整交易是合法的,因为对于第二期限调整交易还可能进行其他验证(可以参考后文内容)。
需要指出,由于记账参与节点在验证时本次创建的第二期限调整交易尚未被区块链接纳,因此其中设置的第三交易时长尚未生效,故判断商品交易期时还是按照上一交易时长进行判断的。但如果本次创建的第二期限调整交易已经被区块链接纳,比如平台方节点在之后又创建了一个第二期限调整交易,在记账参与节点对下一第二期限调整交易的合法性进行验证时,就可以使用本次设置的第三交易时长了。
步骤S208执行之后,若在新的商品交易期内买卖双方正常完成了交易,则继续执行步骤S204至步骤S206。需要注意,在执行步骤S205的子步骤S124时,由于第二期限调整交易已经被区块链接纳,所以其中设置的第三交易时长已经生效,此时记账参与节点在验证第一赎回交易的是否符合商品交易期的限制时,应当使用第三交易时长,不再使用上一交易时长。
步骤S209:执行第一分配交易流程。
步骤S209包括步骤S150至S153几个子步骤,具体如下:
步骤S150:买方节点向平台方节点发送仲裁请求。
步骤S150和步骤S140为同一步骤,不再重复阐述。
步骤S151:平台方节点创建第一分配交易。
第一分配交易用于将与交易商品等价的数字货币从第一抵押账号分配至买方账号、卖方账号以及平台方账号中的至少一个账号,以体现仲裁结果。例如,平台方在仲裁时发现卖方没有发货,可以通过第一分配交易将第一抵押账号中的货款全部分配给买方账号,又例如,平台方在仲裁时发现买方收到的商品有一定瑕疵,但买方还能够接受,卖方也不想退货,可以通过第一分配交易将第一抵押账号中的货款按一定比例分配给买卖双方账号,等等。其中,分配给平台方账号的数字货币可以用于支付平台收取的仲裁费,当然,在某些实现方式中,平台方也可以免收仲裁费(包括对每次仲裁都免收,或者对部分仲裁免收的情况)。
对于仲裁费,可以有不同的设置规则。可以在交易前事先约定,还可以设置上限金额。在一些实现方式中,仲裁费可以更多的用来约束卖方的行为,其费用高低可与卖方信用积分进行关联,例如,信用好的卖方仲裁费收得低一些。在另一些实现方式中,仲裁费的设置还可以和卖方付出的实物成本有关,例如,销售的商品本来生产成本就很低(如数字出版物,可以随意复制),仲裁费可以制定得相对高一些,比如可以与售价持平,从而若发现卖方涉嫌欺诈,平台方有能力没收其全部销售所得。
第一分配交易的上一交易可以为第一抵押交易(对应于图4,在步骤S202、S203执行之后进入步骤S209),或者可以为第一期限调整交易(对应于图4,在步骤S207执行之后进入步骤S209),或者可以为第二期限调整交易(对应于图4,在步骤S208执行之后进入步骤S209)。此外,还有一些特殊的异常情况也可能导致交易流程进入步骤S208或步骤S209(即需要平台方仲裁),比如创建了第一期限调整交易(进入步骤S207),但商品交易期并未被成功延长(可能是区块链网络上的节点故障等原因导致),此时买方或卖方可以向平台方申请仲裁。
多数情况下,买卖双方都会尽力避免执行第一分配交易的流程,尽力达成交易,因为扣除仲裁费可能导致双方的利益受损,因此设置仲裁费还有利于买卖双方尽可能自行协商解决纠纷,也有利于减轻平台方仲裁员的工作量。
第一分配交易的具体形式不作限定,后文会给出在区块链上的数字货币采用UTXO模型时实现第一分配交易的一种具体方式。
第一分配交易不是必须的,如果买卖双方没有申请仲裁,则平台方节点不会创建第一分配交易,并且平台方节点创建的仲裁类交易也不一定是第一分配交易,还可以是第二期限调整交易。
步骤S152:平台方节点将第一分配交易在区块链网络上广播。
步骤S153:记账参与节点验证第一分配交易的合法性。
记账参与节点在接收到广播的第一分配交易后,会对交易的合法性进行验证,若验证为合法,则将第一分配交易纳入到用于生成区块的待打包交易集合。
若满足一定的条件,记账参与节点会基于待打包交易集合生成新区块,并参与竞争记账权,并在获得记账权后将新区块写入到本地的区块链中,以使第一分配交易上链。
若步骤S153中的验证为非法,则记账参与节点不会将第一分配交易纳入到用于生成区块的待打包交易集合。
步骤S153中验证交易的合法性包括与商品交易期有关的验证,即根据第一抵押交易的交易基准时以及上一交易时长判断商品交易期是否已经截止,并在确定商品交易期已经截止后将接收到的第一分配交易确定为非法。
例如,可以判断当前(指记账参与节点验证第一分配交易的合法性时)的最近区块事务基准时是否还处于商品交易期内,若不处于商品交易期内,表明商品交易期已经截止,否则商品交易期尚未截止。若记账参与节点确定商品交易期已经截止,则可以将接收到的第一分配交易确定为非法。需要指出,若记账参与节点确定商品交易期尚未截止,并不一定能够确定第一分配交易是合法的,因为对于第一分配交易还可能进行其他验证(可以参考后文内容)。
步骤S209执行之后,由于第一抵押账号中的数字货币已经被强制分配,再继续创建各类交易已经没有意义,所以本次商品交易已经在实质上结束了(当然此时并不一定已经到达商品交易期的截止时刻)。
可以参照图5比较直观地了解仲裁类交易的时限。之前已经提到,仲裁类交易可以基于平台方的人工仲裁的结果创建,因此仲裁类交易也可称为人工仲裁,机器仲裁期的起点可以定义为首次创建的仲裁类交易的交易基准时,终点就是经最后一个创建第二期限调整交易调整后的商品交易期的截止时刻。
图5中的第一行表示商品交易正常进行的情况,正常交易期就是第一交易时长。第三行表示在原先的正常交易期内创建了仲裁类交易的情况(由于第一分配交易不改变商品交易期,因此第三行至少创建了一个第二期限调整交易),从而第三行的正常交易期尚未结束就切换到了人工仲裁期,第三行的正常交易期加上机器仲裁期的时间长度就是最后一个创建的第二期限调整交易所设置的第三交易时长。第四行表示在原先的正常交易期内先创建了第一期限调整交易,从而第四行的正常交易期尚未结束就切换到了机器仲裁期,然后又在机器仲裁期内创建了仲裁类交易(由于第一分配交易不改变商品交易期,因此第四行至少创建了一个第二期限调整交易),从而第四行的机器仲裁期尚未结束就切换到了人工仲裁期,第四行的正常交易期加上机器仲裁期再加上人工仲裁期的时间长度就是最后一个创建的第二期限调整交易所设置的第三交易时长。
在一些实现方式中,例如交易物品的功能比较单一,交易流程也比较简单时(如数字资产的交易,不涉及物流),人工仲裁的过程也可以用部署区块链上的智能合约代替,即平台方节点通过调用所述区块链上的智能合约创建仲裁类交易。智能合约的内容可以由平台方编写,并且代码开源,确保其公平公开。若通过智能合约自动进行仲裁,其智能化程度较高,仲裁速度可以进一步提高,并且为平台方节约人力资源成本。
步骤S210:执行第二赎回交易流程。
步骤S210包括步骤S160至S162几个子步骤,具体如下:
步骤S160:买方节点创建第二赎回交易。
若商品交易期已经截止,但出现买方并没有收到货(如卖方缺货无法发货,商品在寄件途中丢失)等情况,买方节点可以创建第二赎回交易。第二赎回交易用于将与交易商品等价的数字货币从第一抵押账号转移至买方账号,即使得买方可以回收自己的资产,避免遭受经济损失。创建第二赎回交易的前提是买方抵押的资产还保存在第一抵押账号中,没有被卖方赎得或者被平台方分配,因此,第二赎回交易不是必须的。
第二赎回交易的上一交易可以为第一抵押交易(对应于图4,在步骤S202、S203执行之后进入步骤S210),或者可以为第一期限调整交易(对应于图4,在步骤S207执行之后进入步骤S210),或者可以为第二期限调整交易(对应于图4,在步骤S208执行之后进入步骤S210)。此外,还有一些特殊的异常情况也可能导致交易流程进入步骤S210,比如创建了第二期限调整交易(进入步骤S208),但商品交易期并未被成功延长(可能是区块链网络上的节点故障等原因导致),又比如创建了第一分配交易(进入步骤S209),但数字货币分配失败(可能是区块链网络上的节点故障等原因导致),此时买方可以赎得货款。图4中的箭头指向也包括了这些异常的流程,比如步骤S209执行之后原则上商品交易应当结束,但如果步骤S209未正常执行交易流程也可以进入步骤S210。
第二赎回交易的具体形式不作限定,后文会给出在区块链上的数字货币采用UTXO模型时实现第二赎回交易的一种具体方式。
步骤S161:买方节点将第二赎回交易在区块链网络上广播。
步骤S162:记账参与节点验证第二赎回交易的合法性。
记账参与节点在接收到广播的第二赎回交易后,会对交易的合法性进行验证,若验证为合法,则将第二赎回交易纳入到用于生成区块的待打包交易集合。
若满足一定的条件,记账参与节点会基于待打包交易集合生成新区块,并参与竞争记账权,并在获得记账权后将新区块写入到本地的区块链中,以使第二赎回交易上链。
若步骤S162中的验证为非法,则记账参与节点不会将第二赎回交易纳入到用于生成区块的待打包交易集合。
步骤S162中验证交易的合法性包括与商品交易期有关的验证,即根据第一抵押交易的交易基准时以及上一交易时长判断商品交易期是否已经截止,并在确定商品交易期尚未截止后将接收到的第二赎回交易确定为非法。
例如,可以判断当前(指记账参与节点验证第二赎回交易的合法性时)的最近区块事务基准时是否还处于商品交易期内,若不处于商品交易期内,表明商品交易期已经截止,否则商品交易期尚未截止。若记账参与节点确定商品交易期尚未截止,则可以将接收到的第二赎回交易确定为非法。需要指出,若记账参与节点确定商品交易期已经截止,并不一定能够确定第二赎回交易是合法的,因为对于第二赎回交易还可能进行其他验证(可以参考后文内容)。
上述记账参与节点的行为对买方创建第二赎回交易的时机作出了限制,即买方应当在商品交易期截止之后创建第二赎回交易将货款从第一抵押账号中转走,若商品交易期尚未截止,买方将无法赎得自己抵押的货款。
步骤S209执行之后,由于第一抵押账号中的数字货币已经买方赎得,所以本次商品交易也就结束了。
在一些实现方式中,记账参与节点除了在接收到各类交易(包括第一抵押交易、第一期限调整交易、第二期限调整交易、第一分配交易以及第二赎回交易)时会验证其合法性,在接收到其他记账参与节点创建的新区块后,也验证其中纳入的各类交易的合法性(如果该区块有纳入这些交易的话),验证的方式可以和接收到各类交易时的验证方式相同,例如,对交易是否符合商品交易期的限制的验证还有其他一些内容的验证(可以参考后文内容)。若确定新区块纳入的某个交易为非法后,记账参与节点会拒绝将接收到的区块保存至本地的区块链中。上述的验证过程使得区块链上记录的交易的安全性和可靠性进一步提高。
本申请提供的交易流程在区块链上建立起了一套完整的基于抵赎方式(包括买方抵押和卖方抵押)的电商交易流程。除了之前提到的有益效果,区块链上的一起其他有价值的特性也可以与本申请的方法结合应用,例如,在区块链上,用户可以掌管自身数据的主权,所谓数据主权是指反映用户身份的敏感信息、日常生活信息、经营活动信息等的所有权归用户自己,他人使用需征得用户授权。从而,电商平台难以直接搜集这些数据(这些数据可能是加密的,或者数据归属于用户的临时账号),即未经用户授权难以对这些数据进行挖掘,有利于保护用户隐私免于泄露,客观上还避免出现电商平台一家独大的情况,从而使本申请提供的基于抵赎的交易流程可以发挥更大的价值。
下面介绍区块链上的数字货币采用UTXO模型时实现上述各类交易的可能的方式,首先简单介绍UTXO模型。
在支持UTXO的数字货币系统中实现的一项交易,是通过构造一个含有输入与输出的交易记录(简称交易),转账时在数字货币网络的各记账参与者的共同监督下记账,把交易纳入到某个区块,再将各个区块串接成区块链。每一笔交易的输入都会花费之前一笔或多笔交易的输出(创币交易除外),同时自身也会产生新的输出。具体而言,交易的输入项包括之前的交易产生的一个或多个未花费交易输出(Unspent Transaction Output,UTXO),交易的输出项包括本次交易产生的一个或多个UTXO,每个UTXO都归属一个账号,UTXO表示该账号拥有的某项尚未花出去的费用。当一项交易在区块链的分布式账本中被记录后,交易的输入项中的UTXO就变成已花费用了,而交易的输出项中的UTXO则是新生成的未花费用,即输入项中的UTXO将不再有效,而输出项中的UTXO仍然有效,所谓有效是指其可在后续交易中被作为输入项中的UTXO使用。在这些数字货币系统中,交易并不是对账户余额的增减,而是通过UTXO串接成资金流动的链条,这就是UTXO模型。
下面介绍本申请的交易流程中使用的各类交易的可能的实现方式,应当理解的是,在阐述时以本申请新提出的交易与现有的区块链上的交易(后文为简单起见有时简称常规交易)的区别点为主,未提及之处,可以参考现有的交易中的实现方式。
第一抵押交易
第一抵押交易的输入包括属于买方账号的第一UTXO,第一抵押交易的输出包括属于第一抵押账号的第二UTXO以及属于平台方账号第三UTXO。
其中,第一UTXO可以是属于买方账号的一项或多项UTXO,表示买方账号在商品交易之前已经拥有的数字货币。第二UTXO的金额为与交易商品等价的数字货币,表示买方向第一抵押账号抵押的货款,第三UTXO的金额为平台方收取的交易服务费,交易服务费包括两项内容,一项是平台方在商品交易的过程中因提供服务而收取的费用,另一项是第一抵押交易的后续交易(如第一期限调整交易等)的记账者应收手续费的总和,在多数实现方式中,记账手续费远少于平台方收取的费用(如前者比后者小若干数量级),因此虽然不能确定第一抵押交易存在多少个后续交易,也不必担心交易服务费不够支付记账手续费的情况。
需要指出,上述只限定了为实现抵赎流程第一抵押交易的输入输出中所必须包含的UTXO,但并不是说第一抵押交易的输入输出只包含这些UTXO。例如,第一抵押交易也需要支付记账手续费,因此,第一抵押交易的输出中还可能包含一项对应于买方账号的找零的UTXO,买方节点在创建第一抵押交易时可以通过设置找零的金额来调节支出的记账手续费。又例如,第一抵押交易的输出还可能包括属于附加服务提供方账号第四UTXO,其中,附加服务提供方不是指平台方或者记账参与者,而是指在达成交易意向的过程中向买方提供与商品交易相关的附加服务的商家,这样的商家可以有一个或多个,因此第四UTXO也可以是一项或多项UTXO。附加服务的内容可以包括,但不限于帮助撮合交易、提供比价信息、提供云计算托管,等等。需要指出,不依赖于附加服务,商品交易同样可以进行,附加服务旨在增强交易的便利性。
第二UTXO的锁定脚本包括平台方账号的公钥、买方账号的公钥、卖方账号的公钥、第一抵押账号的公钥、第一抵押操作参数以及第一签名验证指令几项内容,例如可以组织为如下格式:
<PublicKey1><PublicKey2><PublicKey3><PublicKey4><mr_param>CHECK_MR_SIG
其中PublicKey1、PublicKey2、PublicKey3、PublicKey4依次是平台方账号的公钥、买方账号的公钥、卖方账号的公钥、第一抵押账号的公钥,mr_param是第一抵押操作参数,CHECK_MR_SIG是第一签名验证指令。第三UTXO的锁定脚本可以实现为常规交易中的UTXO的锁定脚本类似,不再具体阐述。可以理解的,锁定脚本还可以是其他的形式,例如各个公钥的顺序可以是和上面不同的顺序,又例如可以采用类似赎回脚本(Redeem Script,在P2SH交易中使用)的方式。
其中,mr_param可以是一个数据块,其中包括和商品交易有关的若干参数,在商品交易的过程中可用于验证交易的合法性。例如,在一些实现方式中可以包括交易流水号、第一分配交易中需要支付的仲裁费的最高限额、第一交易时长以及第一期限调整交易能够设置的最大交易时长(即商品交易期可被延长至的最大长度)几项参数。可以理解的,在其他一些实现方式中,mr_param中也可以包括更多或更少的参数,例如,若不考虑商品交易期的问题(在之前阐述的最基本的抵赎流程中),则可以不设置第一交易时长。
CHECK_MR_SIG用于指示记账参与节点利用第二UTXO的锁定脚本中的公钥验证针对第二UTXO的解锁脚本中提供的签名是否正确,其具体验证过程在阐述解锁脚本时再解释。
第二UTXO的锁定脚本具有限制功能,使得第二UTXO中的数字货币仅能以以下几种方式被花费(如可以通过几个公钥、第一抵押操作参数以及第一签名验证指令的验证逻辑配合实现),即将第二UTXO作为后续交易的输入UTXO:第一,在第一期限调整交易中对其进行平移(产生第五UTXO,见后文阐述);第二,在第二期限调整交易中对其进行平移(产生第九UTXO,见后文阐述);第三,在第一分配交易中被分配(产生第十四UTXO、第十五UTXO以及第十六UTXO中的至少一项,见后文阐述);第四,在第一赎回交易中被卖方赎得(产生第十九UTXO,见后文阐述);第五,在第二赎回交易中被买方赎得(产生第二十三UTXO,见后文阐述)。以上的交易在企图将第二UTXO纳入其交易输入时应提供与第二UTXO的锁定脚本配套的解锁脚本。
第一抵押交易要将第一UTXO纳入其交易输入当然也要提供第一UTXO的解锁脚本,但第一UTXO是本次商品交易开始之前就已经存在的属于买方账号的UTXO,其解锁脚本可以常规交易的解锁脚本相同,因此这里就不再详细阐述了。
步骤S114中,记账参与节点在接收到区块链上的交易后,可以根据交易的输出UTXO的锁定脚本的签名验证指令的特点来判断交易类型,例如,第一抵押交易的第二UTXO的锁定脚本中的第一签名验证指令是第一抵押交易独有的,且其前包括5个参数,据此记账参与节点可以确定接收到的为第一抵押交易。确定了接收到的交易为第一抵押交易后,记账参与节点可以执行和第一抵押交易相关的验证流程。例如验证第一UTXO的解锁脚本是否与其锁定脚本匹配,第一抵押操作参数设置是否合法,等等,这里不作限定。需要指出,由于第一抵押交易的交易基准时是商品交易期的起点,所以第一抵押交易就不必进行商品交易期的验证了,因为此时第一交易时长还未生效,还没有产生商品交易期。
第一期限调整交易
第一期限调整交易的输入包括作为第一抵押交易的输出的第二UTXO以及第三UTXO,第一期限调整交易的输出包括属于第一抵押账号的第五UTXO以及属于平台方账号的第六UTXO。
其中,第五UTXO的金额为与交易商品等价的数字货币,表征对第二UTXO的在第一抵押账号中的平移,第六UTXO的金额为第三UTXO与第一期限调整交易的记账者应收手续费的差额,表征平台方收取的交易服务费以及为第一期限调整交易的后续交易预支的记账手续费(第六UTXO可以视为第三UTXO扣除第一期限调整交易的记账手续费后的找零)。当然,第一期限调整交易输入输出中还可能包含其他的UTXO,这里不作限定。
第二UTXO的解锁脚本包括买方节点或卖方节点在创建第一期限调整交易时利用自身账号的私钥对第一期限调整交易的签名,以及平台方节点在接收到第一期限调整交易后利用平台方账号的私钥对第一期限调整交易的签名(参考步骤S131,第一期限调整交易在创建后会被发送至平台方节点),解锁脚本可以组织为如下格式:
<Signature1><Signature2>
其中,Signature1为平台方账号对第一期限调整交易的签名,Signature2为第一期限调整交易的发起方账号(买方账号或卖方账号)对第一期限调整交易的签名,关于签名的验证过程稍后再阐述。对于第一期限调整交易的签名可以是指对整个交易内容的签名。
第三UTXO的解锁脚本可以实现为常规交易中的UTXO的解锁脚本类似,不再具体阐述。
第五UTXO的锁定脚本包括平台方账号的公钥、买方账号的公钥、卖方账号的公钥、第一抵押账号的公钥、第一期限调整操作参数以及第二签名验证指令几项内容,例如可以组织为如下格式:
<PublicKey1><PublicKey2><PublicKey3><PublicKey4><pp_param1>CHECK_PP_SIG
其中,PublicKey1、PublicKey2、PublicKey3、PublicKey4依次是平台方账号的公钥、买方账号的公钥、卖方账号的公钥、第一抵押账号的公钥,这和第二UTXO的锁定脚本中一样,可以直接从第二UTXO的锁定脚本中复制过来,pp_param1是第一期限调整操作参数,CHECK_PP_SIG是第二签名验证指令。第六UTXO的锁定脚本可以实现为常规交易中的UTXO的锁定脚本类似,不再具体阐述。
其中,pp_param1可以是一个数据块,其中包括和商品交易有关的若干参数,在商品交易的过程中可用于验证交易的合法性。如,在一些实现方式中可以包括交易流水号、第一分配交易中需要支付的仲裁费的最高限额、第二交易时长几项参数。交易流水号、仲裁费的最高限额可以从mr_param中原值复制。在具体实施时,mr_param和pp_param1可能采用相同的数据结构,此时pp_param1也会有第一期限调整交易能够设置的最大交易时长这一字段,但这一字段在第五UTXO的锁定脚本中并没有意义,因为之前已经提到过,在商品交易过程中,第一期限调整交易只能创建一次,后续交易即使要控制第五UTXO中的资金,也不会再验证这个字段的内容,所以该字段可以填入一个特殊值,比如0,方便程序进行统一处理。
可以理解的,在其他一些实现方式中,pp_param1中也可以包括更多或更少的参数。例如,pp_param1中还可以包括期限调整描述信息,期限调整描述信息的内容包括创建第一期限调整交易的一方对期限调整的说明。期限调整描述信息的内容可以是调整期限的原因等信息(如对申请延长商品交易期的原因的说明)。另外,由于第一期限调整交易最终会上链,一般不会被篡改,因此期限调整描述信息的内容还可以作为存证,以便在发生纠纷时还原交易当时的状况,比如,卖方因不能及时发货发起了第一期限调整交易延长交易期,并承诺给买方一定的补偿,这些内容可以记录在期限调整描述信息中,避免卖方反悔。又例如,pp_param1中还可以包括欺诈疑似程度,欺诈疑似程度的内容包括创建第一期限调整交易的一方对交易对方涉嫌欺诈的程度的评估。比如买方认为交易可能存在欺诈,但还不能肯定,则可以通过买方节点在pp_param1中填入欺诈疑似程度,欺诈疑似程度可用于平台方之后作出某些仲裁行为的依据(如人工仲裁时的依据,或者利用智能合约自动仲裁时的依据),以便实现平台方对交易欺诈风险的管控。
CHECK_PP_SIG用于指示记账参与节点利用第五UTXO的锁定脚本中的公钥验证针对第五UTXO的解锁脚本中提供的签名是否正确。
第五UTXO的锁定脚本具有限制功能,使得第五UTXO中的数字货币仅能以以下几种方式被花费(如可以通过几个公钥、第一抵押操作参数以及第二签名验证指令的验证逻辑配合实现),即将第五UTXO作为后续交易的输入UTXO:第一,在第二期限调整交易中对其进行平移(产生第九UTXO,见后文阐述);第二,在第一分配交易中被分配(产生第十四UTXO、第十五UTXO以及第十六UTXO中的至少一项,见后文阐述);第三,在第一赎回交易中被卖方赎得(产生第十九UTXO,见后文阐述);第四,在第二赎回交易中被买方赎得(产生第二十三UTXO,见后文阐述)。以上的交易在企图将第五UTXO纳入其交易输入时应提供与第五UTXO的锁定脚本配套的解锁脚本。
步骤S133中,记账参与节点在接收到区块链上的交易后,可以根据交易的输出UTXO的锁定脚本的签名验证指令的特点来判断交易类型,例如,第一期限调整交易的第五UTXO的锁定脚本中的第二签名验证指令是期限调整交易独有的,且其前包括5个参数,据此记账参与节点可以确定接收到的为期限调整交易,同时,记账参与节点还可以进一步区分出期限调整交易到底是第一期限调整交易还是第二期限调整交易(具体方法在后面介绍第二期限调整交易在UTXO模型下的实现方式时再介绍)。
确定了接收到的交易为第一期限调整交易后,记账参与节点可以执行和第一期限调整交易相关的验证流程。至少包括以下两方面内容:
第一,验证第二UTXO的解锁脚本是否与其锁定脚本匹配。记账参与节点将锁定脚本和解锁脚本组合为一个完整的脚本如下:
锁定脚本 | + | 解锁脚本 |
<Signature1><Signature2> | + | <PublicKey1><PublicKey2><PublicKey3><PublicKey4><mr_param>CHECK_MR_SIG |
表1
表1中的“+”表示将锁定脚本和解锁脚本组合。执行该脚本,CHECK_MR_SIG指令会利用PublicKey1检验Signature1是否为平台方的真实签名,以及利用PublicKey2或PublicKey3检验Signature2是否为第一延期交易的发起方的真实签名,若两个签名中有一个签名不是真实的,则第一方面的验证结果为非法,否则第一方面的验证结果为合法。在一些数字货币交易中,脚本的执行采用类似逆波兰表达式的栈式执行语言,本申请中脚本的编写和执行可以采取类似的做法,不再详细阐述。
第二,验证以下五项内容:
验证第二UTXO与第五UTXO是否属于同一账号且两个UTXO的金额是否相同,若两个UTXO属于同一账号且金额相同,则本项验证的结果为合法,否则本项验证的结果为非法。该项内容用于确认第一期限调整交易是否只是平移(而不是花费)了第一抵押账号中买方抵押的资产,因为第一期限调整交易只用于更新商品交易期。
获取当前(指记账参与节点验证第一期限调整交易的合法性时)的最近区块事务基准时,验证最近区块事务基准时与第一抵押交易的交易基准时的差值是否小于第一交易时长,若小于则本项验证的结果为合法,否则本项验证的结果为非法。该项内容用于确认第一期限调整交易是否是在商品交易期以内创建的,可以理解的,在区块链网络中,第一期限调整交易的创建时间很难完全精确地得出,因此上述验证只是近似地表征这样的含义,不过,只要所有针对商品交易期的验证都采用统一的规则,并不会存在什么问题。
验证第一期限调整操作参数中设置的仲裁费的最高限额与第一抵押操作参数中设置的仲裁费的最高限额是否相同,若相同则本项验证的结果为合法,否则本项验证的结果为非法。因为第一期限调整交易只用于更新商品交易期,不应更改仲裁费限额。
验证第二交易时长是否不大于第一抵押操作参数中设置的最大交易时长,若不大于则本项验证的结果为合法,否则本项验证的结果为非法。在第一抵押操作参数中设置第一期限调整交易能够设置的最大交易时长这一参数的目的就是为了限制第一期限调整交易随意延长商品交易期,因此可以根据该参数对第一期限调整交易中的延期操作进行验证。
验证第二交易时长是否小于第一交易时长,若小于且第二UTXO的解锁脚本中包含卖方账号的私钥对第一期限调整交易的签名,则本项验证的结果为合法,否则本项验证的结果为非法。若创建第一期限调整交易的目的是为了缩短商品交易期,则发起第一期限调整交易应当为卖方,因为若买方可以随意缩短商品交易期,可能导致卖方来不及赎得第一抵押账号中的货款,而买方则可能通过创建第二赎回交易将货款赎走,从而造成卖方的经济损失。
若以上五项中任一项的验证结果为非法,则第二方面的验证结果为非法,否则第二方面的验证结果为合法。需要指出,不排除在一些实现方式中,验证的项目没有完全包含上述五项或者包含更多的项目。
若以上两方面中任一方面的验证结果为非法,则第一期限调整交易为非法交易,记账参与节点会拒绝将非法的第一期限调整交易纳入到用于生成区块的待打包交易集合,否则记账参与节点会将合法的第一期限调整交易纳入到待打包交易集合。可以理解的,在验证过程中,若出现一项验证内容的结果为非法,则验证流程可以提前结束,无需进行后续验证。
一旦第一期限调整交易在区块链上被确认,第二UTXO将不再有效(已经被花费),而第五UTXO将成为新的未花费交易,即买方抵押的货款实现了平移,第一期限调整交易的后续交易在创建时,只能使用第五UTXO作为输入,不能再使用第二UTXO,本申请的交易流程中的各交易正是这样依次链接,形成资金流动的链条的。
第二期限调整交易
第二期限调整交易的输入包括第七UTXO以及第八UTXO,第二期限调整交易的输出包括属于第一抵押账号的第九UTXO以及属于平台方账号的第十UTXO。
若第二期限调整交易的上一交易为第一抵押交易(即将第一抵押交易的输出UTXO作为第二期限调整交易的输入UTXO),则第七UTXO为第二UTXO且第八UTXO为第三UTXO;若第二期限调整交易的上一交易为第一期限调整交易(即将第一期限调整交易的输出UTXO作为第二期限调整交易的输入UTXO),则第七UTXO为第五UTXO且第八UTXO为第六UTXO;若当前的第二期限调整交易的上一交易为上一第二期限调整交易(即将上一第二期限调整交易的输出UTXO作为当前的第二期限调整交易的输入UTXO),则第七UTXO为上一第九UTXO且第八UTXO为上一第十UTXO。
其中,第九UTXO的金额为与交易商品等价的数字货币,表征对第七UTXO的在第一抵押账号中的平移,第十UTXO的金额为第八UTXO与第二期限调整交易的记账者应收手续费的差额,表征平台方收取的交易服务费以及为第二期限调整交易的后续交易预支的记账手续费(第十UTXO可以视为第八UTXO扣除第二期限调整交易的记账手续费后的找零)。当然,第二期限调整交易输入输出中还可能包含其他的UTXO,这里不作限定。
第七UTXO的解锁脚本包括买方节点或卖方节点在生成仲裁请求时利用自身账号的私钥对第一仲裁信息的签名,以及平台方节点在接收到仲裁请求后利用平台方账号的私钥对第二期限调整交易的签名。其中,第一仲裁信息包括交易流水号以及第七UTXO在区块链中的位置索引(例如第一仲裁信息可以是二者构成的一个字符串),该位置索引用于指示第七UTXO是哪个区块的哪个交易的哪项输出UTXO。第一仲裁信息以及第一仲裁信息的签名都携带在仲裁请求中,第一仲裁信息可用于平台方节点在创建第二期限调整交易将第七UTXO纳入作为输入,第一仲裁信息的签名则被平台方节点放入到第七UTXO的解锁脚本中。解锁脚本可以组织为如下格式:
<Signature1><Signature2>
其中,Signature1为平台方账号对第二期限调整交易的签名,Signature2为第二期限调整交易的发起方账号(买方账号或卖方账号)对第一仲裁信息的签名,第二期限调整交易的发起方就是发送仲裁请求的一方。第八UTXO的解锁脚本可以实现为常规交易中的UTXO的解锁脚本类似,不再具体阐述。
第九UTXO的锁定脚本包括平台方账号的公钥、买方账号的公钥、卖方账号的公钥、第一抵押账号的公钥、第二期限调整操作参数以及第二签名验证指令几项内容,例如可以组织为如下格式:
<PublicKey1><PublicKey2><PublicKey3><PublicKey4><pp_param2>CHECK_PP_SIG
其中,PublicKey1、PublicKey2、PublicKey3、PublicKey4依次是平台方账号的公钥、买方账号的公钥、卖方账号的公钥、第一抵押账号的公钥,这和第七UTXO的锁定脚本中一样,可以直接从第七UTXO的锁定脚本中复制过来,pp_param2是第二期限调整操作参数,CHECK_PP_SIG是第二签名验证指令。第十UTXO的锁定脚本可以实现为常规交易中的UTXO的锁定脚本类似,不再具体阐述。
其中,pp_param2可以是一个数据块,其中包括和商品交易有关的若干参数,在商品交易的过程中可用于验证交易的合法性。如,在一些实现方式中可以包括交易流水号、第一分配交易中需要支付的仲裁费的最高限额、第三交易时长几项参数。交易流水号、仲裁费的最高限额可以从上一交易的操作参数中原值复制,取决于上一交易(例如若上一交易为第一抵押交易,其操作参数就是mr_param),该操作参数实际上就记录在第七UTXO的锁定脚本中。在某些实现方式中,若pp_param2还包含有第一期限调整交易能够设置的最大交易时长这一字段,由于后续也不会再创建第一期限调整交易,这一字段的值可以不用关心。可以理解的,在其他一些实现方式中,pp_param2中也可以包括更多或更少的参数。
CHECK_PP_SIG用于指示记账参与节点利用第九UTXO的锁定脚本中的公钥验证针对第九UTXO的解锁脚本中提供的签名是否正确。
第九UTXO的锁定脚本具有限制功能,使得第九UTXO中的数字货币仅能以以下几种方式被花费(如可以通过几个公钥、第二抵押操作参数以及第二签名验证指令的验证逻辑配合实现),即将第九UTXO作为后续交易的输入UTXO:第一,在下一第二期限调整交易中对其进行平移(产生下一第九UTXO);第二,在第一分配交易中被分配(产生第十四UTXO、第十五UTXO以及第十六UTXO中的至少一项,见后文阐述);第三,在第一赎回交易中被卖方赎得(产生第十九UTXO,见后文阐述);第四,在第二赎回交易中被买方赎得(产生第二十三UTXO,见后文阐述)。以上的交易在企图将第九UTXO纳入其交易输入时应提供与第九UTXO的锁定脚本配套的解锁脚本。
步骤S143中,记账参与节点在接收到区块链上的交易后,可以根据交易的输出UTXO的锁定脚本的签名验证指令的特点来判断交易类型,例如,第二期限调整交易的第五UTXO的锁定脚本中的第二签名验证指令是期限调整交易独有的,且其前包括5个参数,据此记账参与节点可以确定接收到的为期限调整交易,同时,记账参与节点还可以进一步区分出期限调整交易到底是第一期限调整交易还是第二期限调整交易。
其方法可能有多种:例如,在第一期限调整交易中,第二UTXO的解锁脚本中包括第一期限调整交易的发起方账号对第一期限调整交易的签名,在第二期限调整交易中,第七UTXO的解锁脚本中包括第二期限调整交易的发起方账号对第一仲裁信息的签名,即签名的对象是不同的,从而可以区分;又例如,数字签名后附加单字节的签名哈希类型(SIGHASH)字段,用于指示数字签名到底是针对交易的哪些输入输出作出的,该字段已使用一些标志位(如ALL、NONE、SINGLE)。本申请中的各类交易在实施时可以参考这一做法,同时将签名哈希类型字段中一个未被使用的标志位作为指示位,指示数字签名是针对交易内容作出的还是针对非交易内容(例如,第一仲裁信息)作出的,从而根据该标志位也可以区分第一期限调整交易和第二期限调整交易。当然,还可能存在其他区分方法,不再一一列举。
确定了接收到的交易为第二期限调整交易后,记账参与节点可以执行和第二期限调整交易相关的验证流程。至少包括以下两方面内容:
第一,验证第七UTXO的解锁脚本是否与其锁定脚本匹配。其验证过程和第一期限调整交易中的类似,不再重复阐述了。只是需要指出,在对Signature2做验证的时候,第一仲裁信息中的交易流水号以及第七UTXO在区块链中的位置索引都可以从第二期限调整交易的内容中获得。
第二,验证以下四项内容:
验证第七UTXO与第九UTXO是否属于同一账号且两个UTXO的金额是否相同,若两个UTXO属于同一账号且金额相同,则本项验证的结果为合法,否则本项验证的结果为非法。该项内容用于确认第二期限调整交易是否只是平移(而不是花费)了第一抵押账号中买方抵押的资产,因为第二期限调整交易只用于更新商品交易期。
获当前(指记账参与节点验证第二期限调整交易的合法性时)的取最近区块事务基准时,验证最近区块事务基准时与第一抵押交易的交易基准时的差值是否小于第七UTXO的锁定脚本中的操作参数中设置的交易时长(第二期限调整交易的上一交易的操作参数中设置的交易时长),若小于则本项验证的结果为合法,否则本项验证的结果为非法。该项内容用于确认第二期限调整交易是否是在商品交易期以内创建的。
验证第二期限调整操作参数中设置的仲裁费的最高限额与第七UTXO的锁定脚本中的操作参数中设置的仲裁费的最高限额是否相同,若相同则本项验证的结果为合法,否则本项验证的结果为非法。因为第二期限调整交易只用于更新商品交易期,不应更改仲裁费限额。
若以上四项中任一项的验证结果为非法,则第二方面的验证结果为非法,否则第二方面的验证结果为合法。需要指出,不排除在一些实现方式中,验证的项目没有完全包含上述四项或者包含更多的项目。
若以上两方面中任一方面的验证结果为非法,则第二期限调整交易为非法交易,记账参与节点会拒绝将非法的第二期限调整交易纳入到用于生成区块的待打包交易集合,否则记账参与节点会将合法的第二期限调整交易纳入到待打包交易集合。
第一分配交易
第一分配交易的输入包括第十一UTXO以及第十二UTXO,第一分配交易的输出包括属于平台方账号的第十三UTXO以及以下三项UTXO中的至少一项UTXO:属于买方账号的第十四UTXO,属于卖方账号的第十五UTXO以及属于平台方账号的第十六UTXO。
若第一分配交易的上一交易为第一抵押交易(即将第一抵押交易的输出UTXO作为第一分配交易的输入UTXO),则第十一UTXO为第二UTXO且第十二UTXO为第三UTXO;若第一分配交易的上一交易为第一期限调整交易(即将第一期限调整交易的输出UTXO作为第一分配交易的输入UTXO),则第十一UTXO为第五UTXO且第十二UTXO为第六UTXO;若第一分配交易的上一交易为第二期限调整交易(即将第二期限调整交易的输出UTXO作为第一分配交易的输入UTXO),则第十一UTXO为第九UTXO且第十二UTXO为第十UTXO。
其中,第一分配交易输出的至少一项UTXO的金额之和为与交易商品等价的数字货币,表征根据仲裁结果将买方抵押的货款在买方、卖方、平台方三者之间分配。若存在第十六UTXO,其表示平台方收取的仲裁费。第十三UTXO的金额为第十二UTXO与第一分配交易的记账者应收手续费的差额,表征平台方收取的交易服务费(第十三UTXO可以视为第十二UTXO扣除第一分配交易的记账手续费后的找零)。注意,第一分配交易原则上没有后续交易了,所以第十三UTXO中不再包括后续交易的记账手续费(图4中步骤S209虽然可能转入步骤S210,但根据前面的阐述,这种流程属于第一分配交易未被正常执行的情况,此时的第二赎回交易也不应视为第一分配交易的后续交易)。当然,第一分配交易输入输出中还可能包含其他的UTXO,这里不作限定。
第十一UTXO的解锁脚本包括买方节点或卖方节点在生成仲裁请求时利用自身账号的私钥对第二仲裁信息的签名,以及平台方节点在接收到仲裁请求后利用平台方账号的私钥对第一分配交易的签名,其中,第二仲裁信息包括交易流水号以及第十一在区块链中的位置索引,该位置索引用于指示第十一UTXO是哪个区块的哪个交易的哪项输出UTXO。第十一UTXO的解锁脚本和第七UTXO的解锁脚本是类似的(因为第一分配交易和第二期限调整交易都是仲裁类交易),这里就不再具体阐述了。第十二UTXO的解锁脚本可以实现为常规交易中的UTXO的解锁脚本类似,不再具体阐述。
第十四UTXO、第十五UTXO以及第十六UTXO的锁定脚本可以实现为常规交易中的UTXO的锁定脚本类似,不再具体阐述。
步骤S153中,记账参与节点在接收到区块链上的交易后,可以根据交易的输出UTXO的特点等来判断交易类型,例如,输出UTXO中同时存在属于买方、卖方、平台方的UTXO,则记账参与节点可以确定接收到的为第一分配交易。注意,记账参与节点并不需要知道谁是买方谁是买方,只要确认输出UTXO存在三种不同的归属即可。当然,对于第一分配交易的其他资金分配方式,也可以通过其他逻辑来确定交易类型,这里不再具体阐述。
确定了接收到的交易为第一分配交易后,记账参与节点可以执行和第一分配交易相关的验证流程。至少包括以下两方面内容:
第一,验证第十一UTXO的解锁脚本是否与其锁定脚本匹配。其验证过程和第二期限调整交易中的类似,不再重复阐述了。
第二,验证以下两项内容:
获取当前(指记账参与节点验证第一分配交易的合法性时)的最近区块事务基准时,验证最近区块事务基准时与第一抵押交易的交易基准时的差值是否小于第十一UTXO的锁定脚本中的操作参数中设置的交易时长,若小于则本项验证的结果为合法,否则本项验证的结果为非法。该项内容用于确认第一分配交易是否是在商品交易期以内创建的。
若第一分配交易的输出包括第十六UTXO,验证第十六UTXO的金额是否不大于第十一UTXO的锁定脚本中的操作参数中设置的仲裁费的最高限额,若不大于则本项验证的结果为合法,否则本项验证的结果为非法。该项内容用于确认平台方收取的仲裁费的金额是否合理。
若以上两项中任一项的验证结果为非法,则第二方面的验证结果为非法,否则第二方面的验证结果为合法。需要指出,不排除在一些实现方式中,验证的项目没有完全包含上述两项或者包含更多的项目。
若以上两方面中任一方面的验证结果为非法,则第一分配交易为非法交易,记账参与节点会拒绝将非法的第一分配交易纳入到用于生成区块的待打包交易集合,否则记账参与节点会将合法的第一分配交易纳入到待打包交易集合。
第一赎回交易
第一赎回交易的输入包括第十七UTXO以及第十八UTXO,第一赎回交易的输出包括属于卖方账号的第十九UTXO以及属于平台方账号的第二十UTXO。
若第一赎回交易的上一交易为第一抵押交易(即将第一抵押交易的输出UTXO作为第一赎回交易的输入UTXO),则第十七UTXO为第二UTXO且第十八UTXO为第三UTXO;若第一赎回交易的上一交易为第一期限调整交易(即将第一期限调整交易的输出UTXO作为第一赎回交易的输入UTXO),则第十七UTXO为第五UTXO且第十八UTXO为第六UTXO;若第一赎回交易的上一交易为第二期限调整交易(即将第二期限调整交易的输出UTXO作为第一赎回交易的输入UTXO),则第十七UTXO为第九UTXO且第十八UTXO为第十UTXO。
其中,第十九UTXO的金额为与交易商品等价的数字货币,表征卖方将第一抵押账号中的货款赎走,第二十UTXO的金额为第十八UTXO与第一赎回交易的记账者应收手续费的差额,表征平台方收取的交易服务费(第二十UTXO可以视为第十八UTXO扣除第一赎回交易的记账手续费后的找零)。注意,第一赎回交易没有后续交易了,所以第二十UTXO中不再包括后续交易的记账手续费。当然,第一赎回交易输入输出中还可能包含其他的UTXO,这里不作限定。
第十七UTXO的解锁脚本包括卖方节点在创建第一赎回交易时利用第一抵押账号的私钥对第一赎回交易的签名。第十八UTXO的解锁脚本可以实现为常规交易中的UTXO的解锁脚本类似,不再具体阐述。
第十九UTXO以及第二十UTXO的锁定脚本可以实现为常规交易中的UTXO的锁定脚本类似,不再具体阐述。
关于第一赎回交易的验证,在下面介绍完第二赎回交易后再阐述。
第二赎回交易
第二赎回交易的输入包括第二十一UTXO以及第二十二UTXO,第二赎回交易的输出包括属于买方账号的第二十三UTXO以及属于平台方账号的第二十四UTXO。
若第二赎回交易的上一交易为第一抵押交易(即将第一抵押交易的输出UTXO作为第二赎回交易的输入UTXO),则第二十一UTXO为第二UTXO且第二十二UTXO为第三UTXO;若第二赎回交易的上一交易为第一期限调整交易(即将第一期限调整交易的输出UTXO作为第二赎回交易的输入UTXO),则第二十一UTXO为第五UTXO且第二十二UTXO为第六UTXO;若第二赎回交易的上一交易为第二期限调整交易(即将第二期限调整交易的输出UTXO作为第二赎回交易的输入UTXO),则第二十一UTXO为第九UTXO且第二十二UTXO为第十UTXO。
其中,第二十三UTXO的金额为与交易商品等价的数字货币,表征买方将第一抵押账号中的货款赎走,第二十四UTXO的金额为第二十二UTXO与第二赎回交易的记账者应收手续费的差额,表征平台方收取的交易服务费(第二十四UTXO可以视为第二十二UTXO扣除第二赎回交易的记账手续费后的找零)。注意,第二赎回交易没有后续交易了,所以第二十四UTXO中不再包括后续交易的记账手续费。当然,第二赎回交易输入输出中还可能包含其他的UTXO,这里不作限定。
第二十一UTXO的解锁脚本包括买方节点在创建第二赎回交易时利用第一抵押账号的私钥对第二赎回交易的签名。第二十二UTXO的解锁脚本可以实现为常规交易中的UTXO的解锁脚本类似,不再具体阐述。
第二十三UTXO以及第二十四UTXO的锁定脚本可以实现为常规交易中的UTXO的锁定脚本类似,不再具体阐述。
下面介绍第一赎回交易以及第二赎回交易的验证过程。第一赎回交易和第二赎回交易可以统称赎回类交易,为便于统一描述,这里先对赎回类交易的输入UTXO和输出UTXO重新命名一下:赎回类交易的输入中包括第二十五UTXO,赎回交易的输出中包括第二十六UTXO,其中,第一赎回交易的第二十五UTXO为第十七UTXO且第一赎回交易的第二十六UTXO为第十九UTXO,第二赎回交易的第二十五UTXO为第二十一UTXO且第二赎回交易的第二十六UTXO为第二十三UTXO。
步骤S124或步骤S162中,记账参与节点在接收到区块链上的交易后,可以根据交易的输出UTXO的特点等来判断交易类型,例如,可以根据第二十五UTXO中锁定脚本以及解锁脚本的特点来判断(锁定脚本中包含第一签名验证指令或第二签名验证指令,解锁脚本中仅包含一个签名)。
确定了接收到的交易为赎回类交易后,记账参与节点可以执行和赎回类交易相关的验证流程(此时记账参与节点无需明确该交易到底是第一赎回交易还是第二赎回交易,这不影响验证流程的执行),至少包括以下两方面内容:
第一,验证第二十五UTXO的解锁脚本是否与其锁定脚本匹配。该项验证实质就是利用第二十五UTXO的锁定脚本中第一抵押账号的公钥验证解锁脚本中利用第一抵押账号的私钥对赎回类交易作出的签名是否真实(基于第一签名验证指令或第二签名验证指令验证的功能实现),这里不再详细阐述了。
第二,验证以下内容:
获取当前(指记账参与节点验证赎回类交易的合法性时)的最近区块事务基准时,验证最近区块事务基准时与第一抵押交易的交易基准时的差值是否小于第二十五UTXO的锁定脚本中的操作参数中设置的交易时长。
若上述差值小于操作参数中设置的交易时长,表明目前商品交易期尚未截止,此时仅允许创建第一赎回交易,因此将当前的交易当做是第一赎回交易继续后续验证。即验证第二十五UTXO与第二十六UTXO是否金额是否相同,且第二十六UTXO是否属于卖方账号(只有卖方节点有权创建第一赎回交易),若两个UTXO属于金额相同且第二十六UTXO属于卖方账号,则本项验证的结果为合法,否则本项验证的结果为非法。
需要指出,在第二十五UTXO的锁定脚本中,包含了卖方账号的公钥(锁定脚本中的各个账号的公钥可以按预设的顺序排列,从而能够明确哪个公钥对应交易的那个参与方),因此记账参与节点可以据此确定卖方账号,进而判断第二十六UTXO是否属于卖方账号。
若上述差值不小于操作参数中设置的交易时长,表明目前商品交易期已经截止,此时仅允许创建第二赎回交易,因此将当前的交易当做是第二赎回交易继续后续验证。
即先验证最近区块事务基准时与第一抵押交易的交易基准时的差值是否小于第二十五UTXO的锁定脚本中的操作参数中设置的交易时长与预设的赎回时长之和。若上述差值不小于操作参数中设置的交易时长与预设的赎回时长之和,则本项验证为非法,否则继续后续验证。其中,赎回时长可以为若干天,具体不作限定,这项验证旨在限制买方应在商品交易期结束之后的一个有限的时间段(长度为赎回时长)内赎得交易货款,不应让资金无限期滞留在第一抵押账号中,避免交易系统的资源浪费。当然,不排除在一些实现方式中不设置赎回时长(此时也无需做这项验证),即这些实现方式允许买方在商品交易期结束之后的任意时刻赎得自身抵押的资产。
若上述差值小于操作参数中设置的交易时长与预设的赎回时长之和,则验证第二十五UTXO与第二十六UTXO是否金额是否相同,且第二十六UTXO是否属于买方账号(只有买方节点有权创建第二赎回交易),若两个UTXO金额相同且第二十六UTXO属于买方账号,则本项验证的结果为合法,否则本项验证的结果为非法。
需要指出,在第二十五UTXO的锁定脚本中,包含了买方账号的公钥,因此记账参与节点可以据此确定买方账号,进而判断第二十六UTXO是否属于买方账号。
若以上验证过程中出现结果为非法的情况,则第二方面的验证结果为非法,否则第二方面的验证结果为合法。需要指出,不排除在一些实现方式中,验证的项目没有完全包含上述验证项目或者包含更多的项目。
若以上两方面中任一方面的验证结果为非法,则赎回类交易为非法交易,记账参与节点会拒绝将非法的赎回类交易纳入到用于生成区块的待打包交易集合,否则记账参与节点会将合法的赎回类交易纳入到待打包交易集合。
上面在介绍本申请提出的各类交易在UTXO模型下的实现方式时,对于交易的验证,只提到了记账参与节点在接收到区块链上广播的交易后会进行验证。然而,正如之前提到过的,记账参与节点若接收到其他记账参与节点广播的新区块,也会对新区块中的交易的合法性进行验证,只有在验证通过时才会将接收到的新区块纳入本地的区块链中。这一验证过程和上面详细阐述的验证过程是类似的,不再详细阐述,这里只简单说明一下最近区块事务基准时的问题。
以对第一期限调整交易的合法性验证为例,记账参与节点A在接收到第一期限调整交易后,会计算最近区块事务基准时用以验证第一期限调整交易是否在商品交易期内被创建,不妨假定计算出的最近区块事务基准时是区块链上的区块X的区块事务基准时,而第一期限调整交易被纳入的区块为区块Y,记账参与节点A将区块Y广播给区块链网络中的另一记账参与节点B,由于在记账参与节点B本地,区块Y并没有被链接到区块链上,因此当记账参与节点B在对区块Y中的第一期限调整交易的合法性进行验证时,计算出的最近区块事务基准时还是区块链上的区块X的区块事务基准时,保障这一点还因为区块链中每一区块都以确定的哈希值指向前一区块的,即并不会因为记账参与节点B对交易的验证发生在记账参与节点A对交易的验证之后而不同。进一步的,假设区块链网络上还存在记账参与节点C,记账参与节点C在接收到区块Y后直接将其纳入本地的区块链,在之后的某个时刻(区块Y之后已经链接了其他区块)才试图对区块Y中的第一期限调整交易的合法性进行验证,验证时记账参与节点C计算最近区块事务基准时应当以区块Y尚未被链接至区块链中的时刻为准,而不应当根据真实的当前时刻进行计算。
目前,出于金融安全等因素的考虑,在部分国家尚不允许私人(主要是买方)直接进行数字货币交易,但商家(主要是卖方或平台方)则可以持有数字货币,即数字货币仅能在商家之间流转,形成类似联盟链的处理方式。上面介绍的基于买方抵押资产(数字货币)的交易流程在这些国家可能为法律所禁止,为扩大本申请中的交易流程的适用范围,增强其实用性,下面再提出一些可能的替代方案。
第一种方式:对基于买方抵押资产的交易流程进行适当调整。
例如,图4中的步骤S202可以调整为包括如下子步骤:
步骤A:买方节点向平台方节点发送抵押请求。
在步骤A之前,买卖双方已经达成了商品交易意向,平台方节点也已经产生了交易流水号。上述抵押请求用于指示平台方节点进行数字货币的抵押。
步骤B:平台方节点创建第二抵押账号。
平台方节点可以根据交易流水号以及买方预设的密码生成第二抵押账号,这和步骤S111类似,不再具体阐述了。其中,买方预设的密码可以由买方节点在步骤B执行之前的某个时刻发送给平台方节点。
步骤C:平台方节点创建第二抵押交易。
第二抵押交易用于将与交易商品等价的数字货币从第一平台方代理账号转移至第二抵押账号的第二抵押交易,其中,第一平台方代理账号中的数字货币是平台方节点根据买方支付给平台方的法币兑换的。这里并不限定买方何时向平台方支付这笔法币,例如可以是买卖双方达成交易意向之后买方才支付,也可以是买卖双方达成交易意向之前的某个时刻买方预先支付的。步骤C和步骤S112类似,其区别主要是交易的输入不是来自买方账号,而是来自平台方管理的第一平台方代理账号。
步骤D:平台方节点将第二抵押交易在区块链网络上广播。
步骤E:记账参与节点验证第二抵押交易的合法性。
记账参与节点从区块链网络上接收到第二抵押交易后,验证其合法性,若合法则将其纳入到用于生成区块的待打包交易集合。其验证过程可以步骤S114,不再详细阐述。
在上面的步骤中,平台方通过设置第一平台方代理账号对买方抵押资产的行为进行了代理,避免了买方直接持有数字货币,规避了法律风险。由于第二抵押交易由平台方创建,因此在某些实现方式中,步骤B用到的预设的密码也可以由平台方自己生成,不必由买方提供。
对于卖方节点的行为则可以不必调整,下面简单叙述:卖方节点从平台方节点获取交易流水号,根据交易流水号以及买方在确认商品交易成功后提供的预设的密码生成第二抵押账号,创建用于将与交易商品等价的数字货币从第二抵押账号转移至卖方账号的第三赎回交易,并将第三赎回交易在区块链网络上广播。记账参与节点在从区块链网络上接收到第三赎回交易后,验证其合法性,若合法则将其纳入到用于生成区块的待打包交易集合。第三赎回交易和第一赎回交易类似,这里不再具体阐述。
上面仅仅阐述了最基本的抵赎流程(仅包括第二抵押交易和第三赎回交易)的情况,若抵赎流程中还包含其他类型的交易,这些交易中涉及买方节点和平台方节点的部分流程也需要相应地调整。比如,买方在商品交易期截止后希望赎得第二抵押账号中的货款时,可以通过买方节点向平台方节点发送赎回请求,指示平台方节点进行数字货币的赎回,即创建一个类似于第二赎回交易的交易,用于将第二抵押账号中的数字货币转移到第一平台方代理账号中,之后买方节点可以进一步指示平台方节点将第一平台方代理账号中的数字货币兑换为法币并支付给买方。
需要指出,在一些实现方式中,一个第一平台方代理账号可以只代理一个买方账号,在另一些实现方式中,一个第一平台方代理账号也可以代理多个买方账号,不作限定。
还需要指出,在一些实现方式中,如果平台方承担数字货币的兑付任务,则该数字货币可以由平台方之外的机构负责发行,否则其质押价值容易受到质疑。当然,若平台方本身具有强信用特征,由平台方同时进行数字货币的发行和兑付也是可以的。
可以理解的,如果允许卖方为私人,也可以用类似的方式避免其直接持有数字货币,例如,由卖方节点向平台方节点发送赎回请求后,由平台方节点将数字货币从第二抵押账号转移至第二平台方代理账号,然后再由平台方节点将第二平台方代理账号中的数字货币兑换为法币支付给卖方。
第二种方式:采用基于卖方抵押资产的交易流程。
图6示出了本申请实施例提供的与卖方抵押相关的交易的流程图。其中,卖方抵押是指在商品交易的过程中由卖方抵押自身资产作为交易担保的方式。图6中共示出了第三抵押交易、第四赎回交易、第三期限调整交易、第四期限调整交易以及第二分配交易共五种交易的在买方节点、卖方节点、平台方节点以及记账参与节点之间的交互流程。上述各节点可以处于同一区块链网络中,如图2所示。
图7示出了本申请实施例提供的一种基于卖方抵押的交易流程图。图7中的步骤可以结合图6进行理解,例如,步骤S402中的“第三抵押交易流程”,其具体的执行方法在图6中示出。
步骤S400:卖方将法币兑换为数字货币。
在进行某次交易前,为保证卖方账号中有足以进行抵押的数字货币,卖方可以用法币兑换所需金额的数字货币并将其存入买方账号。当然,如果在进行某次交易前,卖方账号的余额中已经有足以进行交易的数字货币,则可以不必执行步骤S400。步骤S400和步骤S200比较类似,只是改为卖方兑换数字货币,若步骤S400中未提及之处可参考步骤S200中的实现方式。
步骤S401:买卖双方达成交易意向。
借助于平台方提供的电商交易平台,买卖双方可以达成交易意向。买卖双方达成交易意向后,平台方节点为该商品交易生成一个标识本次交易的流水号,交易流水号将在后续步骤中使用。步骤S401和步骤S201比较类似,若步骤S401中未提及之处可参考步骤S201中的实现方式。
步骤S402:执行第二抵押交易流程。
第二抵押交易流程和第一抵押交易流程类似,只是作出抵押行为的一方由买方节点变成了卖方节点。下面简单叙述其流程:
卖方节点从平台方节点获取交易流水号,根据交易流水号以及卖方预设的密码生成第三抵押账号,并创建用于将与交易商品等价的数字货币从卖方账号转移至第三抵押账号的第三抵押交易,然后将第三抵押交易在区块链网络上广播。
若平台方要收取交易服务费,则在采用基于卖方抵押的交易方式时,服务费由卖方支付(在第三抵押交易中),这样卖方对商品的报价可以低一些,因为此时报价中无需再包含服务费。
记账参与节点从区块链网络上接收到第三抵押交易后,验证其合法性,在确定第三抵押交易合法后将第三抵押交易纳入到用于生成区块的待打包交易集合。
上述流程在图6中通过步骤S310至步骤S314示出。步骤S402和步骤S202比较类似,若步骤S402中未提及之处可参考步骤S202中的实现方式。
步骤S403:买方用法币付款,卖方发货,买方收货。
步骤S403中,买方的付款不必通过区块链,而是可以通过其他渠道向卖方支付法币,例如银行转账、某些电子货币支付工具等,从而这一付款过程中买方不必持有数字货币,从而规避法律风险。步骤S403和步骤S203比较类似,若步骤S403中未提及之处可参考步骤S203中的实现方式。
步骤S404:执行第四赎回交易流程。
第四赎回交易流程和第二赎回交易流程类似,只是作出赎回行为的一方由买方节点变成了卖方节点。下面简单叙述其流程:
卖方节点在商品交易期截止后创建用于将与交易商品等价的数字货币从第三抵押账号转移至卖方账号的第四赎回交易,并将第四赎回交易在区块链网络上广播。
记账参与节点从区块链网络上接收到第四赎回交易后,验证其合法性,在确定第四赎回交易合法后将第四赎回交易纳入到用于生成区块的待打包交易集合。
上述流程在图6中通过步骤S320至步骤S322示出。步骤S404和步骤S210比较类似,若步骤S404中未提及之处可参考步骤S210中的实现方式。
上述商品交易期的定义方式可以和基于买方抵押的交易流程中的商品交易期的定义方式类似:以第三抵押交易的交易基准时为起点,经过一段时长截止。其中,交易基准时可以采用之前提到过的定义方式,不再重复。
上述的一段时长可以在创建某些类型的交易时设置,比如卖方节点在创建第三抵押交易时设置的第四交易时长,记账参与节点在验证接收到的第四赎回交易的合法性时,可以根据第三抵押交易的交易基准时以及第四交易时长判断商品交易期是否已经截止,并在确定商品交易期尚未截止后将接收到的第四赎回交易确定为非法,被确定为非法的第四赎回交易不会被记账参与节点纳入到用于生成区块的待打包交易集合。例如,可以判断当前(指记账参与节点验证第四赎回交易的合法性时)的最近区块事务基准时是否还处于商品交易期内,若不处于商品交易期内,表明商品交易期已经截止,否则商品交易期尚未截止。其他可用于调整商品交易期的交易将在后续步骤中介绍。
步骤S405:卖方将数字货币兑换为法币。
当第四赎回交易在区块链上被确认后,在区块链层面上,交易货款已经从被卖方赎得,可以认为交易已经结束。此时,卖方可以将卖方账号中的数字货币兑换为法币。
步骤S405和步骤S206比较类似,若步骤S405中未提及之处可参考步骤S206中的实现方式。注意,步骤S405是可选择,如果卖方并不需要兑换法币,也可以不执行步骤S405。
在由上面的步骤S400至步骤S405的构成交易流程中,由于也利用了区块链上的交易来表达真实的电商交易流程,因此其也具有和基于买方抵押的交易流程类似的有益效果,此处不再重复。
此外,在基于卖方抵押的交易流程,买方无需持有数字货币,只需持有法币即可,卖方可以持有数字货币,但这并不违反上述国家的法律规定。
上面介绍主要是商品交易正常进行时的情况,即卖方发货后,买方在商品交易期内收到了商品,并确认商品无误的情况。但实际中,商品交易也有可能出现买方未收到货,或者收到的商品存在瑕疵等各种问题,此时单单依靠步骤S400至步骤S405的抵赎流程尚不足以处理这些情况,下面将在有商品交易期限制的前提下,继续参照图7介绍本在卖方抵押方式下可能存在的其他几种交易。
步骤S406:执行第三期限调整交易流程。
第三期限调整交易流程和第一期限调整交易流程类似。下面简单叙述其流程:
若在商品交易期内,买卖双方不能按期完成商品交易,买卖双方都有权指示各自的节点创建用于设置第五交易时长的第三期限调整交易,并将第三期限调整交易发送至平台方节点。其中,第五交易时长表征用于替换在第三抵押交易中设置的第四交易时长作为新的商品交易期的长度。第五交易时长可以大于第四交易时长(表示延长商品交易期)也可以小于第四交易时长(表示缩短商品交易期),若为后者,则第三期限调整交易应限制为只能由买方节点创建,避免在买方尚未收到货的情况下卖方就将自己抵押的货款赎走。
平台方节点将第三期限调整交易在区块链网络上广播。
记账参与节点从区块链网络上接收到第三期限调整交易后,验证其合法性,在确定第三期限调整交易合法后将第三期限调整交易纳入到用于生成区块的待打包交易集合。其中,合法性验证包括与商品交易期有关的验证,即根据第三抵押交易的交易基准时以及第四交易时长判断商品交易期是否已经截止,并在确定商品交易期已经截止后将接收到的第三期限调整交易确定为非法。被确定为非法的第三期限调整交易不会被记账参与节点纳入到用于生成区块的待打包交易集合。
需要指出,由于记账参与节点在做上述验证时第三期限调整交易尚未被区块链接纳,因此其中设置的第五交易时长尚未生效,故判断商品交易期时还是按照第四交易时长进行判断的。
步骤S406执行之后,若在新的商品交易期内买卖双方正常完成了交易,则继续执行步骤S404至步骤S405。需要注意,在执行步骤S404的子步骤S322时,由于第三期限调整交易已经被区块链接纳,所以其中设置的第五交易时长已经生效,此时记账参与节点在验证第四赎回交易的是否符合商品交易期的限制时,应当使用第五交易时长,不再使用第四交易时长。
上述流程在图6中通过步骤S330至步骤S333示出,为了简便起见,只示出了第三期限调整交易由买方节点创建的情况。步骤S406和步骤S207比较类似,若步骤S406中未提及之处可参考步骤S207中的实现方式。
此外,第三期限调整在整个商品交易过程中可以被限制为仅能创建一次,避免买方或卖方随意延长商品交易期,导致商品交易难以结束。
步骤S407:执行第四期限调整交易流程。
第四期限调整交易流程和第二期限调整交易流程类似。下面简单叙述其流程:
若在上一交易所设置的商品交易期内,买卖双方仍不能按期完成商品交易,买卖双方都有权指示各自的节点向平台方节点发送仲裁请求,平台方节点在接收到仲裁请求后,可以由人工(或智能合约)根据仲裁请求的内容,作出不同的仲裁结果,然后创建能够反映仲裁结果的仲裁类交易,仲裁类交易可以为第四期限调整交易或者第二分配交易,也就是说步骤S407和步骤S408并不能同时执行。
在一次商品交易过程中,根据仲裁结果,买方节点或卖方节点可以多次向平台方节点发送仲裁请求,每次收到仲裁请求后,平台方节点都会创建一个仲裁类交易。其中,第四期限调整交易可以连续创建多次,但第二分配交易只能创建一次,且第二分配交易创建后平台方节点就不能再创建仲裁类交易了。
第四期限调整交易用于调整商品交易期,在创建第四期限调整交易时可以设置第六交易时长,第六交易时长表征用于替换在上一交易中设置的上一交易时长作为新的商品交易期的长度。若上一交易为第三抵押交易,则上一交易时长为第四交易时长(对应于图7,在步骤S402、S403执行之后进入步骤S407);若上一交易为第三期限调整交易,则上一交易时长为第五交易时长(对应于图7,在步骤S406执行之后进入步骤S407);若上一交易为上一第四期限调整交易(根据前面的阐述,平台方节点可以连续创建多个第四期限调整交易),则上一交易时长为上一第六交易时长(对应于图7,在步骤S407执行之后再次进入步骤S407)。第六交易时长可以大于上一交易时长(表示延长商品交易期)也可以小于上一交易时长(表示缩短商品交易期)。
平台方节点将第四期限调整交易在区块链网络上广播。
记账参与节点从区块链网络上接收到第四期限调整交易后,验证其合法性,在确定第四期限调整交易合法后将第四期限调整交易纳入到用于生成区块的待打包交易集合。其中,合法性验证包括与商品交易期有关的验证,即根据第三抵押交易的交易基准时以及上一交易时长判断商品交易期是否已经截止,并在确定商品交易期已经截止后将接收到的第四期限调整交易确定为非法。被确定为非法的第四期限调整交易不会被记账参与节点纳入到用于生成区块的待打包交易集合。
需要指出,由于记账参与节点在做上述验证时第四期限调整交易尚未被区块链接纳,因此其中设置的第六交易时长尚未生效,故判断商品交易期时还是按照上一交易时长进行判断的。
步骤S407执行之后,若在新的商品交易期内买卖双方正常完成了交易,则继续执行步骤S404至步骤S405。需要注意,在执行步骤S404的子步骤S322时,由于第四期限调整交易已经被区块链接纳,所以其中设置的第六交易时长已经生效,此时记账参与节点在验证第四赎回交易的是否符合商品交易期的限制时,应当使用第六交易时长,不再使用上一交易时长。
上述流程在图6中通过步骤S340至步骤S343示出,为了简便起见,只示出了仲裁请求由买方节点发送的情况。步骤S407和步骤S208比较类似,若步骤S407中未提及之处可参考步骤S208中的实现方式。
步骤S408:执行第二分配交易流程。
第二分配交易流程和第一分配交易流程类似。下面简单叙述其流程:
若在上一交易所设置的商品交易期内,买卖双方仍不能按期完成商品交易,买卖双方都有权指示各自的节点向平台方节点发送仲裁请求,平台方节点在接收到仲裁请求后,可以创建第二分配交易。
第二分配交易用于将与交易商品等价的数字货币从第三抵押账号分配至卖方账号和/或平台方账号中,分配至平台方账号的数字货币用于赔付买方在商品交易的过程中支付给卖方的部分或全部的法币,当然,这部分数字货币中还可以包括平台方收取的仲裁费。注意,在第二分配交易中,和第一分配交易不同的是,并不涉及买方账号,因为买方并不会持有数字货币,所以区块链上并不会创建买方账号。即使根据仲裁结果要将一部分数字货币赔付给买方,也是由平台方账号代收,再兑换为法币后转账给买方。其中,由于卖方在第三抵押账号中抵押了与交易商品等价的数字货币,因此,平台方有能力没收卖方的全部所得(在S403中获得的法币)用于赔付买方,以确保交易公平。
第二分配交易的上一交易可以为第一抵押交易(对应于图7,在步骤S402、S403执行之后进入步骤S408),或者可以为第三期限调整交易(对应于图7,在步骤S406执行之后进入步骤S408),或者可以为第四期限调整交易(对应于图7,在步骤S407执行之后进入步骤S408)。此外,还有一些特殊的异常情况也可能导致交易流程进入步骤S407或步骤S408(即需要平台方仲裁),比如创建了第三期限调整交易(进入步骤S406),但商品交易期并未被成功延长(可能是区块链网络上的节点故障等原因导致),此时买方或卖方可以向平台方申请仲裁。
记账参与节点还用于从区块链网络上接收并验证第二分配交易的合法性,并在确定第二分配交易合法后将第二分配交易纳入到用于生成区块的待打包交易集合;
平台方节点将第二分配交易在区块链网络上广播。
记账参与节点从区块链网络上接收到第二分配交易后,验证其合法性,在确定第二分配交易合法后将第二分配交易纳入到用于生成区块的待打包交易集合。其中,合法性验证包括与商品交易期有关的验证,即根据第三抵押交易的交易基准时以及上一交易时长判断商品交易期是否已经截止,并在确定商品交易期已经截止后将接收到的第二分配交易确定为非法。被确定为非法的第二分配交易不会被记账参与节点纳入到用于生成区块的待打包交易集合。
步骤S408执行之后,由于第三抵押账号中的数字货币已经被强制分配,再继续创建各类交易已经没有意义,所以本次商品交易已经在实质上结束了(当然此时并不一定已经到达商品交易期的截止时刻)。
上述流程在图6中通过步骤S350至步骤S353示出,为了简便起见,只示出了仲裁请求由买方节点发送的情况。步骤S408和步骤S209比较类似,若步骤S408中未提及之处可参考步骤S209中的实现方式。
之前在介绍第四赎回交易时,尚未介绍第三期限调整交易、第四期限调整交易以及第二分配交易,现在在介绍了这些交易的基础上结合图7对第四赎回交易作进一步说明。
第四赎回交易的上一交易可以为第三抵押交易(对应于图7,在步骤S402、S403执行之后进入步骤S404),或者可以为第三期限调整交易(对应于图7,在步骤S406执行之后进入步骤S404),或者可以为第四期限调整交易(对应于图7,在步骤S407执行之后进入步骤S404)。此外,还有一些特殊的异常情况也可能导致交易流程进入步骤S404,比如创建了第四期限调整交易(进入步骤S407),但商品交易期并未被成功延长(可能是区块链网络上的节点故障等原因导致),又比如创建了第二分配交易(进入步骤S408),但数字货币分配失败(可能是区块链网络上的节点故障等原因导致),此时卖方可以赎得货款,图7中的箭头指向也包括了这些异常的流程。比如步骤S408执行之后原则上商品交易应当结束,但如果步骤S408未正常执行交易流程也可以进入步骤S404。
记账参与节点从区块链网络上接收到第四赎回交易后,验证其合法性,在确定第四赎回交易合法后将第四赎回交易纳入到用于生成区块的待打包交易集合。其中,合法性验证包括与商品交易期有关的验证,即根据第三抵押交易的交易基准时以及上一交易时长判断商品交易期是否已经截止,并在确定商品交易期尚未截止后将接收到的第四赎回交易确定为非法。被确定为非法的第四赎回交易不会被记账参与节点纳入到用于生成区块的待打包交易集合。
在一些实现方式中,记账参与节点除了在接收到各类交易(包括第三抵押交易、第三期限调整交易、第四期限调整交易、第二分配交易以及第四赎回交易)时会验证其合法性,在接收到其他记账参与节点创建的新区块后,也验证其中纳入的各类交易的合法性(如果该区块有纳入这些交易的话),验证的方式可以和接收到各类交易时的验证方式相同。
上述基于卖方抵押的交易流程,若应用于实物交易,可能存在一些不便。因为卖方在卖出商品前自己反而要抵押资产,可能导致卖方难以承担,也不太符合一般商家对商品交易的理解,因此相对而言,实物交易更适合于基于买方抵押的交易流程。
发明人经长期研究发现,数字资产和/或针对数字资产的使用授权是一类适合于卖方抵押的交易流程的交易商品(当然这并不排除其他商品也适用于卖方抵押的方式)。这类商品的复制成本几乎为零,在售卖之前要求卖方先抵押一定的数字货币是合理的(相当于对卖方的一种约束,避免其因销售低成本的商品,即使从中作恶也不会遭到多少损失)。
其中,数字资产可以是,但不限于数字音乐、软件、电子书、电子游戏、游戏道具等产品,卖方售卖的对象可以是数字资产本身,也可以是数字资产的使用授权,或者两者同时售卖。下面说明一下数字资产的使用授权:例如,某个电子游戏(数字资产)的免费版本在网上可以随意下载,或者可以由卖方提供,但该版本仅能够试玩一个游戏场景,需要用解密密码(实际中可能采用密码、激活码、序列号等称谓)解密后才能继续玩剩余的部分。又例如,某本电子书(数字资产)的前若干页可以提供给买方试读,其余内容则用密码进行加密(如对称加密,不作限定),买方需要获得卖方提供的解密密码后才能继续阅读。上述解密密码就属于一种对数字资产的使用授权。买方在获得解密密码后,可以配合一定的解密工具使用,以实现对数字资产的解密。数字资产的使用权授权的实现形式除了解密密码之外,还可以是版权控制文件,或者同时采用解密密码和版权控制文件。
本申请实施例提供交易系统的功能、交易方法的步骤均已包含在上面的几种交易抵赎之中,在此不再单独予以阐述。
本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得计算机设备执行本申请各个实施例所述方法的全部或部分步骤。前述的计算机设备包括:个人计算机、服务器、移动设备、智能穿戴设备、网络设备、虚拟设备等各种具有执行程序代码能力的设备,前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟、磁带或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (51)
1.一种交易系统,其特征在于,包括区块链网络中的买方节点、卖方节点、平台方节点以及记账参与节点;
所述平台方节点用于在买方与卖方达成商品交易意向后生成交易流水号;
所述买方节点用于从所述平台方节点获取所述交易流水号,根据所述交易流水号以及买方预设的密码生成第一抵押账号,创建用于将与交易商品等价的数字货币从买方账号转移至所述第一抵押账号的第一抵押交易,并将所述第一抵押交易在所述区块链网络上广播;
所述卖方节点用于从所述平台方节点获取所述交易流水号,根据所述交易流水号以及买方在确认所述商品交易成功后提供的所述预设的密码生成所述第一抵押账号,创建用于将与交易商品等价的数字货币从所述第一抵押账号转移至卖方账号的第一赎回交易,并将所述第一赎回交易在所述区块链网络上广播;
所述记账参与节点用于从所述区块链网络上接收并验证所述第一抵押交易的合法性,并在确定所述第一抵押交易合法后将所述第一抵押交易纳入到用于生成区块的待打包交易集合,以及用于从所述区块链网络上接收并验证所述第一赎回交易,并在确定所述第一赎回交易合法后将所述第一赎回交易纳入到用于生成区块的待打包交易集合。
2.根据权利要求1所述的交易系统,其特征在于,所述买方节点还用于在创建所述第一抵押交易时设置第一交易时长;
所述记账参与节点在验证接收到的所述第一赎回交易的合法性时,根据作为商品交易期的起点的所述第一抵押交易的交易基准时以及所述第一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第一赎回交易确定为非法,被确定为非法的所述第一赎回交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合;
其中,所述区块链上的一项交易的交易基准时为所述交易被纳入到用于生成区块的待打包交易集合时的最近区块事务基准时,所述最近区块事务基准时为所述区块链上最近一个已确定区块事务基准时的区块的区块事务基准时,所述区块链上的一个区块的区块事务基准时为根据所述区块的生成时间计算出的一个时刻,且所述时刻与所述区块在所述区块链中的高度正相关。
3.根据权利要求2所述的交易系统,其特征在于,区块链上的一个区块的区块事务基准时为在所述区块链上以所述区块为中心区块的M个区块的生成时间的平均值,其中,M为大于或等于3的正奇数;
所述记账参与节点还用于在生成一个新区块时,判断所述新区块的生成时间是否使得所述新区块之前的第(M-1)/2个区块的区块事务基准时大于所述新区块之前的第(M-1)/2+1个区块的区块事务基准时,若不大于,则将所述新区块之前的第(M-1)/2+1个区块的区块事务基准时加上预设时长后的值确定为所述新区块之前的第(M-1)/2个区块的区块事务基准时,并根据确定的区块事务基准时计算并更新所述新区块的区块头中记录的区块生成时间。
4.根据权利要求2所述的交易系统,其特征在于,所述买方节点或所述卖方节点还用于在获得指示调整交易时长的信息后,创建用于设置第二交易时长的第一期限调整交易,并将所述第一期限调整交易发送至所述平台方节点,其中,所述第二交易时长表征用于替换所述第一交易时长作为确定所述第一赎回交易是否合法的依据;
所述平台方节点还用于将所述第一期限调整交易在所述区块链网络上广播;
所述记账参与节点还用于从所述区块链网络上接收并验证所述第一期限调整交易的合法性,并在确定所述第一期限调整交易合法后将所述第一期限调整交易纳入到用于生成区块的待打包交易集合;
所述记账参与节点在验证接收到的所述第一期限调整交易的合法性时,根据所述第一抵押交易的交易基准时以及所述第一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第一期限调整交易确定为非法,被确定为非法的所述第一期限调整交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
5.根据权利要求4所述的交易系统,其特征在于,所述买方节点或所述卖方节点还用于在获得指示申请仲裁的信息后,向所述平台方节点发送仲裁请求;
所述平台方节点还用于在接收到所述仲裁请求后,创建仲裁类交易,并在所述仲裁类交易为用于设置第三交易时长的第二期限调整交易时,将所述第二期限调整交易在所述区块链网络上广播,其中,所述第三交易时长表征用于替换上一交易时长作为确定所述第一赎回交易是否合法的依据,若在本次创建的交易之前未创建过期限调整交易,则所述上一交易时长为所述第一交易时长,否则所述上一交易时长为最近一次创建的期限调整交易设置的交易时长;
所述记账参与节点还用于从所述区块链网络上接收并验证所述第二期限调整交易的合法性,并在确定所述第二期限调整交易合法后将所述第二期限调整交易纳入到用于生成区块的待打包交易集合;
所述记账参与节点在验证接收到的所述第二期限调整交易的合法性时,根据所述第一抵押交易的交易基准时以及所述上一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第二期限调整交易确定为非法,被确定为非法的所述第二期限调整交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
6.根据权利要求5所述的交易系统,其特征在于,所述平台方节点还用于在所述仲裁类交易为第一分配交易时,将所述第一分配交易在所述区块链网络上广播,其中,所述第一分配交易用于将与交易商品等价的数字货币从所述第一抵押账号分配至所述买方账号、所述卖方账号以及平台方账号中的至少一个账号,分配至所述平台方账号的数字货币为平台方收取的仲裁费;
所述记账参与节点还用于从所述区块链网络上接收并验证所述第一分配交易的合法性,并在确定所述第一分配交易合法后将所述第一分配交易纳入到用于生成区块的待打包交易集合;
所述记账参与节点在验证接收到的所述第一分配交易的合法性时,根据所述第一抵押交易的交易基准时以及所述上一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第一分配交易确定为非法,被确定为非法的所述第一分配交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
7.根据权利要求6所述的交易系统,其特征在于,所述买方节点还用于在商品交易期截止后,创建用于将与交易商品等价的数字货币从所述第一抵押账号转移至所述买方账号的第二赎回交易,并将所述第二赎回交易在所述区块链网络上广播;
所述记账参与节点还用于从所述区块链网络上接收并验证所述第二赎回交易的合法性,并在确定所述第二赎回交易合法后将所述第二赎回交易纳入到用于生成区块的待打包交易集合;
所述记账参与节点在验证接收到的所述第二赎回交易的合法性时,根据所述第一抵押交易的交易基准时以及所述上一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期尚未截止后将接收到的所述第二赎回交易确定为非法,被确定为非法的所述第二赎回交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
8.根据权利要求1-7中任一项所述的交易系统,其特征在于,所述记账参与节点还用于从所述区块链网络上接收除自身以外的其他记账参与节点生成的区块,验证接收到的区块中纳入的所述第一抵押交易的合法性,并在确定所述第一抵押交易为非法后,拒绝将接收到的区块保存至本地的区块链中,以及用于验证接收到的区块中纳入的所述第一赎回交易的合法性,并在确定所述第一赎回交易为非法后,拒绝将接收到的区块保存至本地的区块链中。
9.根据权利要求1-7中任一项所述的交易系统,其特征在于,所述买方节点用于根据所述交易流水号、所述密码以及平台特征字,利用哈希算法生成所述第一抵押账号的私钥,进而根据所述私钥生成对应的公钥,并根据所述公钥确定所述第一抵押账号,其中,所述平台特征字为用于标识平台方的字符串。
10.根据权利要求5或6所述的交易系统,其特征在于,所述平台方节点用于创建所述仲裁类交易,包括:所述平台方节点通过调用所述区块链上的智能合约创建所述仲裁类交易。
11.根据权利要求7所述的交易系统,其特征在于,所述第一抵押交易的输入包括属于所述买方账号的第一未花费交易输出UTXO;
所述第一抵押交易的输出包括属于所述第一抵押账号的第二UTXO以及属于所述平台方账号第三UTXO,所述第二UTXO的金额为与交易商品等价的数字货币,所述第三UTXO的金额为平台方收取的交易服务费,所述交易服务费表征平台方在所述商品交易的过程中因提供服务而收取的费用,以及所述第一抵押交易的后续交易的记账者应收手续费的总和;
所述第二UTXO的锁定脚本包括所述平台方账号的公钥、所述买方账号的公钥、所述卖方账号的公钥、所述第一抵押账号的公钥、第一抵押操作参数以及第一签名验证指令,所述第一签名验证指令用于指示所述记账参与节点利用所述第二UTXO的锁定脚本中的公钥验证针对所述第二UTXO的解锁脚本中提供的签名是否正确;
所述第一抵押操作参数包括:所述交易流水号、所述仲裁费的最高限额、所述第一交易时长以及所述第一期限调整交易能够设置的最大交易时长。
12.根据权利要求11所述的交易系统,其特征在于,所述第一抵押交易的输出还包括属于附加服务提供方账号第四UTXO,所述附加服务提供方是指在达成所述商品交易意向前向买方提供与所述商品交易相关的附加服务的商家。
13.根据权利要求11所述的交易系统,其特征在于,所述第一期限调整交易的输入包括所述第二UTXO以及所述第三UTXO;
所述第二UTXO的解锁脚本包括所述买方节点或卖方节点在创建所述第一期限调整交易时利用自身账号的私钥对所述第一期限调整交易的签名,以及所述平台方节点在接收到所述第一期限调整交易后利用所述平台方账号的私钥对所述第一期限调整交易的签名;
所述第一期限调整交易的输出包括属于所述第一抵押账号的第五UTXO以及属于所述平台方账号的第六UTXO,所述第五UTXO的金额为与交易商品等价的数字货币,所述第六UTXO的金额为所述第三UTXO与所述第一期限调整交易的记账者应收手续费的差额;
所述第五UTXO的锁定脚本包括所述平台方账号的公钥、所述买方账号的公钥、所述卖方账号的公钥、所述第一抵押账号的公钥、第一期限调整操作参数以及第二签名验证指令,所述第二签名验证指令用于指示所述记账参与节点利用所述第五UTXO的锁定脚本中的公钥验证针对所述第五UTXO的解锁脚本中提供的签名是否正确;
所述第一期限调整操作参数包括:所述交易流水号、所述仲裁费的最高限额以及所述第二交易时长。
14.根据权利要求13所述的交易系统,其特征在于,所述第一期限调整操作参数还包括期限调整描述信息,所述期限调整描述信息的内容包括创建所述第一期限调整交易的一方对期限调整的说明。
15.根据权利要求13所述的交易系统,其特征在于,所述第一期限调整操作参数还包括欺诈疑似程度,所述欺诈疑似程度的内容包括创建所述第一期限调整交易的一方对交易对方涉嫌欺诈的程度的评估。
16.根据权利要求13所述的交易系统,其特征在于,所述记账参与节点还用于在确定接收到的交易为所述第一期限调整交易后,对所述第一期限调整交易进行验证,验证的项目包括:
验证所述第二UTXO与所述第五UTXO是否属于同一账号且两个UTXO的金额是否相同,若两个UTXO属于同一账号且金额相同,则本项验证的结果为合法,否则本项验证的结果为非法;
获取所述最近区块事务基准时,验证所述最近区块事务基准时与所述第一抵押交易的交易基准时的差值是否小于所述第一交易时长,若小于则本项验证的结果为合法,否则本项验证的结果为非法;
验证所述第一期限调整操作参数中设置的所述仲裁费的最高限额与所述第一抵押操作参数中设置的所述仲裁费的最高限额是否相同,若相同则本项验证的结果为合法,否则本项验证的结果为非法;
验证所述第二交易时长是否不大于所述第一抵押操作参数中设置的所述最大交易时长,若不大于则本项验证的结果为合法,否则本项验证的结果为非法;
验证所述第二交易时长是否小于所述第一交易时长,若小于且所述第二UTXO的解锁脚本中包含卖方账号的私钥对所述第一期限调整交易的签名,则本项验证的结果为合法,否则本项验证的结果为非法;
若以上验证项目中任一项的结果为非法,则所述第一期限调整交易为非法交易,所述记账参与节点拒绝将非法的所述第一期限调整交易纳入到用于生成区块的待打包交易集合。
17.根据权利要求13所述的交易系统,其特征在于,所述第二期限调整交易的输入包括第七UTXO以及第八UTXO,所述第二期限调整交易的输出包括属于所述第一抵押账号的第九UTXO以及属于所述平台方账号的第十UTXO,其中,所述第七UTXO为所述第二UTXO且所述第八UTXO为所述第三UTXO,或,所述第七UTXO为所述第五UTXO且所述第八UTXO为所述第六UTXO,或,所述第七UTXO为上一第二期限调整交易的上一第九UTXO且所述第八UTXO为上一第二期限调整交易的上一第十UTXO;
所述第七UTXO的解锁脚本包括所述买方节点或卖方节点在生成仲裁请求时利用自身账号的私钥对第一仲裁信息的签名,以及所述平台方节点在接收到所述仲裁请求后利用所述平台方账号的私钥对所述第二期限调整交易的签名,其中,所述第一仲裁信息包括所述交易流水号以及所述第七UTXO在所述区块链中的位置索引,对所述第一仲裁信息的签名携带在所述仲裁请求中;
所述第九UTXO的金额为与交易商品等价的数字货币,所述第十UTXO的金额为所述第八UTXO与所述第二期限调整交易的记账者应收手续费的差额;
所述第九UTXO的锁定脚本包括所述平台方账号的公钥、所述买方账号的公钥、所述卖方账号的公钥、所述第一抵押账号的公钥、第二期限调整操作参数以及所述第二签名验证指令,所述第二签名验证指令用于指示所述记账参与节点利用所述第九UTXO的锁定脚本中的公钥验证针对所述第九UTXO的解锁脚本中提供的签名是否正确;
所述第二期限调整操作参数包括:所述交易流水号、所述仲裁费的最高限额以及所述第三交易时长。
18.根据权利要求17所述的交易系统,其特征在于,所述记账参与节点还用于在确定接收到的交易为所述第二期限调整交易后,对所述第二期限调整交易进行验证,验证的项目包括:
验证所述第七UTXO与所述第九UTXO是否属于同一账号且两个UTXO的金额是否相同,若两个UTXO属于同一账号且金额相同,则本项验证的结果为合法,否则本项验证的结果为非法;
获取所述最近区块事务基准时,验证所述最近区块事务基准时与所述第一抵押交易的交易基准时的差值是否小于所述第七UTXO的锁定脚本中的操作参数中设置的交易时长,若小于则本项验证的结果为合法,否则本项验证的结果为非法;
验证所述第二期限调整操作参数中设置的所述仲裁费的最高限额与所述第七UTXO的锁定脚本中的操作参数中设置的所述仲裁费的最高限额是否相同,若相同则本项验证的结果为合法,否则本项验证的结果为非法;
若以上验证项目中任一项的结果为非法,则所述第二期限调整交易为非法交易,所述记账参与节点拒绝将非法的所述第二期限调整交易纳入到用于生成区块的待打包交易集合。
19.根据权利要求18所述的交易系统,其特征在于,所述第一分配交易的输入包括第十一UTXO以及第十二UTXO,其中,所述第十一UTXO为所述第二UTXO且所述第十二UTXO为所述第三UTXO,或,所述第十一UTXO为所述第五UTXO且所述第十二UTXO为所述第六UTXO,或,所述第十一UTXO为所述第九UTXO且所述第十二UTXO为所述第十UTXO;
所述第十一UTXO的解锁脚本包括所述买方节点或卖方节点在生成仲裁请求时利用自身账号的私钥对第二仲裁信息的签名,以及所述平台方节点在接收到所述仲裁请求后利用所述平台方账号的私钥对所述第一分配交易的签名,其中,所述第二仲裁信息包括所述交易流水号以及所述第十一UTXO在所述区块链中的位置索引,对所述第二仲裁信息的签名携带在所述仲裁请求中;
所述第一分配交易的输出包括属于所述平台方账号的第十三UTXO以及以下三项UTXO中的至少一项UTXO,属于所述买方账号的第十四UTXO,属于所述卖方账号的第十五UTXO以及属于所述平台方账号的第十六UTXO;
所述第十三UTXO的金额为所述第十二UTXO与所述第一分配交易的记账者应收手续费的差额,所述至少一项UTXO的金额之和为与交易商品等价的数字货币。
20.根据权利要求19所述的交易系统,其特征在于,所述记账参与节点还用于在确定接收到的交易为所述第一分配交易后,对所述第一分配交易进行验证,验证的项目包括:
获取所述最近区块事务基准时,验证所述最近区块事务基准时与所述第一抵押交易的交易基准时的差值是否小于所述第十一UTXO的锁定脚本中的操作参数中设置的交易时长,若小于则本项验证的结果为合法,否则本项验证的结果为非法;
若所述第一分配交易的输出包括所述第十六UTXO,验证所述第十六UTXO的金额是否不大于所述第十一UTXO的锁定脚本中的操作参数中设置的所述仲裁费的最高限额,若不大于则本项验证的结果为合法,否则本项验证的结果为非法;
若以上验证项目中任一项的结果为非法,则所述第一分配交易为非法交易,所述记账参与节点拒绝将非法的所述第一分配交易纳入到用于生成区块的待打包交易集合。
21.根据权利要求20所述的交易系统,其特征在于,所述第一赎回交易的输入包括第十七UTXO以及第十八UTXO,其中,所述第十七UTXO为所述第二UTXO且所述第十八UTXO为所述第三UTXO,或,所述第十七UTXO为所述第五UTXO且所述第十八UTXO为所述第六UTXO,或,所述第十七UTXO为所述第九UTXO且所述第十八UTXO为所述第十UTXO;
所述第十七UTXO的解锁脚本包括所述卖方节点在创建所述第一赎回交易时利用所述第一抵押账号的私钥对所述第一赎回交易的签名;
所述第一赎回交易的输出包括属于所述卖方账号的第十九UTXO以及属于所述平台方账号的第二十UTXO,所述第十九UTXO的金额为与交易商品等价的数字货币,所述第二十UTXO的金额为所述第十八UTXO与所述第一赎回交易的记账者应收手续费的差额。
22.根据权利要求21所述的交易系统,其特征在于,所述第二赎回交易的输入包括第二十一UTXO以及第二十二UTXO,其中,所述第二十一UTXO为所述第二UTXO且所述第二十二UTXO为所述第三UTXO,或,所述第二十一UTXO为所述第五UTXO且所述第二十二UTXO为所述第六UTXO,或,所述第二十一UTXO为所述第九UTXO且所述第二十二UTXO为所述第十UTXO;
所述第二十一UTXO的解锁脚本包括所述买方节点在创建所述第二赎回交易时利用所述第一抵押账号的私钥对所述第二赎回交易的签名;
所述第二赎回交易的输出包括属于所述买方账号的第二十三UTXO以及属于所述平台方账号的第二十四UTXO,所述第二十三UTXO的金额为与交易商品等价的数字货币,所述第二十四UTXO的金额为所述第二十二UTXO与所述第二赎回交易的记账者应收手续费的差额。
23.根据权利要求22所述的交易系统,其特征在于,所述第一赎回交易以及所述第二赎回交易均为赎回类交易,所述赎回类交易的输入中包括第二十五UTXO,所述赎回交易的输出中包括第二十六UTXO,其中,所述第一赎回交易的所述第二十五UTXO为所述第十七UTXO且所述第一赎回交易的所述第二十六UTXO为所述第十九UTXO,所述第二赎回交易的所述第二十五UTXO为所述第二十一UTXO且所述第二赎回交易的所述第二十六UTXO为所述第二十三UTXO,所述记账参与节点还用于在确定接收到的交易为所述赎回类交易后,对所述赎回类交易进行验证,验证的项目包括:
获取所述最近区块事务基准时,验证所述最近区块事务基准时与所述第一抵押交易的交易基准时的差值是否小于第二十五UTXO的锁定脚本中的操作参数中设置的交易时长;
若小于操作参数中设置的交易时长,则验证所述第二十五UTXO与第二十六UTXO是否金额是否相同,且所述第二十六UTXO是否属于所述卖方账号,若两个UTXO属于金额相同且所述第二十六UTXO属于所述卖方账号,则本项验证的结果为合法,否则本项验证的结果为非法;
若不小于操作参数中设置的交易时长,则验证所述最近区块事务基准时与所述第一抵押交易的交易基准时的差值是否小于所述第二十五UTXO的锁定脚本中的操作参数中设置的交易时长与预设的赎回时长之和,若小于操作参数中设置的交易时长与预设的赎回时长之和,则验证所述第二十五UTXO与所述第二十六UTXO是否金额是否相同,且所述第二十六UTXO是否属于所述买方账号,若两个UTXO金额相同且所述第二十六UTXO属于所述买方账号,则本项验证的结果为合法,否则本项验证的结果为非法,若不小于操作参数中设置的交易时长与预设的赎回时长之和,则本项验证为非法;
若以上验证项目的结果为非法,则所述赎回类交易为非法交易,所述记账参与节点拒绝将非法的所述赎回类交易纳入到用于生成区块的待打包交易集合。
24.一种交易系统,其特征在于,包括区块链网络中的买方节点、卖方节点、平台方节点以及记账参与节点;
所述买方节点用于向所述平台方节点发送用于指示所述平台方节点进行数字货币抵押的抵押请求;
所述平台方节点用于在买方与卖方达成商品交易意向后生成交易流水号,并在接收到所述抵押请求后,根据所述交易流水号以及买方预设的密码生成第二抵押账号,创建用于将与交易商品等价的数字货币从第一平台方代理账号转移至所述第二抵押账号的第二抵押交易,并将所述第二抵押交易在所述区块链网络上广播,其中,所述第一平台方代理账号中的数字货币是所述平台方节点根据买方支付给平台方的法币兑换的;
所述卖方节点用于从所述平台方节点获取所述交易流水号,根据所述交易流水号以及买方在确认所述商品交易成功后提供的所述预设的密码生成所述第二抵押账号,创建用于将与交易商品等价的数字货币从所述第二抵押账号转移至卖方账号的第三赎回交易,并将所述第三赎回交易在所述区块链网络上广播;
所述记账参与节点用于从所述区块链网络上接收并验证所述第二抵押交易的合法性,并在确定所述第二抵押交易合法后将所述第二抵押交易纳入到用于生成区块的待打包交易集合,以及用于从所述区块链网络上接收并验证所述第三赎回交易,并在确定所述第三赎回交易合法后将所述第三赎回交易纳入到用于生成区块的待打包交易集合。
25.一种交易系统,其特征在于,包括区块链网络中的卖方节点、平台方节点以及记账参与节点;
所述平台方节点用于在买方与卖方达成商品交易意向后生成交易流水号;
所述卖方节点用于从所述平台方节点获取所述交易流水号,根据所述交易流水号以及卖方预设的密码生成第三抵押账号,并创建用于将与交易商品等价的数字货币从卖方账号转移至所述第三抵押账号的第三抵押交易,以及将所述第三抵押交易在所述区块链网络上广播;
所述卖方节点还用于在商品交易期截止后创建用于将与交易商品等价的数字货币从所述第三抵押账号转移至卖方账号的第四赎回交易,以及将所述第四赎回交易在所述区块链网络上广播;
所述记账参与节点用于从所述区块链网络上接收并验证所述第三抵押交易的合法性,并在确定所述第三抵押交易合法后将所述第三抵押交易纳入到用于生成区块的待打包交易集合,以及用于从所述区块链网络上接收并验证所述第四赎回交易,并在确定所述第四赎回交易合法后将所述第四赎回交易纳入到用于生成区块的待打包交易集合。
26.根据权利要求25所述的交易系统,其特征在于,所述卖方节点还用于在创建所述第三抵押交易时设置第四交易时长;
所述记账参与节点在验证接收到的所述第四赎回交易的合法性时,根据作为所述商品交易期的起点的所述第三抵押交易的交易基准时以及所述第四交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期尚未截止后将接收到的所述第四赎回交易确定为非法,被确定为非法的所述第四赎回交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
27.根据权利要求26所述的交易系统,其特征在于,所述交易系统还包括买方节点,所述买方节点或所述卖方节点还用于在获得指示调整交易时长的信息后,创建用于设置第五交易时长的第三期限调整交易,并将所述第三期限调整交易发送至所述平台方节点,其中,所述第五交易时长表征用于替换所述第四交易时长作为确定所述第四赎回交易是否合法的依据;
所述平台方节点还用于将所述第三期限调整交易在所述区块链网络上广播;
所述记账参与节点还用于从所述区块链网络上接收并验证所述第三期限调整交易的合法性,并在确定所述第三期限调整交易合法后将所述第三期限调整交易纳入到用于生成区块的待打包交易集合;
所述记账参与节点在验证接收到的所述第三期限调整交易的合法性时,根据所述第三抵押交易的交易基准时以及所述第四交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第三期限调整交易确定为非法,被确定为非法的所述第三期限调整交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
28.根据权利要求27所述的交易系统,其特征在于,所述买方节点或所述卖方节点还用于在获得指示申请仲裁的信息后,向所述平台方节点发送仲裁请求;
所述平台方节点还用于在接收到所述仲裁请求后,创建仲裁类交易,并在所述仲裁类交易为用于设置第六交易时长的第四期限调整交易时,将所述第四期限调整交易在所述区块链网络上广播,其中,所述第六交易时长表征用于替换上一交易时长作为确定所述第四赎回交易是否合法的依据,若在本次创建的交易之前未创建过期限调整交易,则所述上一交易时长为所述第四交易时长,否则所述上一交易时长为最近一次创建的期限调整交易设置的交易时长;
所述记账参与节点还用于从所述区块链网络上接收并验证所述第四期限调整交易的合法性,并在确定所述第四期限调整交易合法后将所述第四期限调整交易纳入到用于生成区块的待打包交易集合;
所述记账参与节点在验证接收到的所述第四期限调整交易的合法性时,根据所述第三抵押交易的交易基准时以及所述上一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第四期限调整交易确定为非法,被确定为非法的所述第四期限调整交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
29.根据权利要求28所述的交易系统,其特征在于,所述平台方节点还用于在所述仲裁类交易为第二分配交易时,将所述第二分配交易在所述区块链网络上广播,其中,所述第二分配交易用于将与交易商品等价的数字货币从所述第三抵押账号分配至所述卖方账号和/或平台方账号中,分配至所述平台方账号的数字货币用于赔付买方在所述商品交易的过程中支付给卖方的部分或全部的法币;
所述记账参与节点还用于从所述区块链网络上接收并验证所述第二分配交易的合法性,并在确定所述第二分配交易合法后将所述第二分配交易纳入到用于生成区块的待打包交易集合;
所述记账参与节点在验证接收到的所述第二分配交易的合法性时,根据所述第三抵押交易的交易基准时以及所述上一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第二分配交易确定为非法,被确定为非法的所述第二分配交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合。
30.根据权利要求25至29中任一项所述的交易系统,其特征在于,所述交易商品包括数字资产和/或针对数字资产的使用授权。
31.根据权利要求30所述的交易系统,其特征在于,所述针对数字资产的使用权授权包括卖方提供的解密密码和/或版权控制文件。
32.一种交易方法,其特征在于,应用于如权利要求1所述的交易系统中的买方节点,所述方法包括:
从所述交易系统的平台方节点获取商品交易的交易流水号;
根据所述交易流水号以及买方预设的密码生成第一抵押账号,并创建用于将与交易商品等价的数字货币从买方账号转移至所述第一抵押账号的第一抵押交易;
将所述第一抵押交易在部署有所述交易系统的区块链网络上广播。
33.根据权利要求32所述的交易方法,其特征在于,所述方法还包括:在创建所述第一抵押交易时设置第一交易时长,所述第一交易时长被所述交易系统中的记账参与节点用于判断以所述第一抵押交易的交易基准时为起点的商品交易期是否已经截止;
其中,所述区块链上的一项交易的交易基准时为所述交易被纳入到用于生成区块的待打包交易集合时的最近区块事务基准时,所述最近区块事务基准时为所述区块链上最近一个已确定区块事务基准时的区块的区块事务基准时,所述区块链上的一个区块的区块事务基准时为根据所述区块的生成时间计算出的一个时刻,且所述时刻与所述区块在所述区块链中的高度正相关。
34.根据权利要求33所述的交易方法,其特征在于,所述方法还包括:
在获得指示调整交易时长的信息后,创建用于设置第二交易时长的第一期限调整交易,所述第二交易时长表征用于替换所述第一交易时长作为确定所述商品交易期是否已经截止的依据;
将所述第一期限调整交易发送至所述平台方节点,由所述平台方节将所述第一期限调整交易在所述区块链网络上广播。
35.根据权利要求34所述的交易方法,其特征在于,所述方法还包括:
在商品交易期截止后,创建用于将与交易商品等价的数字货币从所述第一抵押账号转移至所述买方账号的第二赎回交易;
将所述第二赎回交易在所述区块链网络上广播。
36.一种交易方法,其特征在于,应用于如权利要求1所述的交易系统中的卖方节点,所述方法包括:
从所述交易系统的平台方节点获取商品交易的交易流水号;
根据所述交易流水号以及买方在确认商品交易成功后提供的预设的密码生成第一抵押账号,并创建用于将与交易商品等价的数字货币从所述第一抵押账号转移至卖方账号的第一赎回交易;
将所述第一赎回交易在部署有所述交易系统的区块链网络上广播。
37.根据权利要求36所述的交易方法,其特征在于,所述方法还包括:
在获得指示调整交易时长的信息后,创建用于设置第二交易时长的第一期限调整交易,所述第二交易时长表征用于替换第一交易时长作为确定所述商品交易期是否已经截止的依据,其中,所述第一交易时长是所述交易系统中的买方节点在创建所述第一抵押交易时设置的;
将所述第一期限调整交易发送至所述平台方节点,由所述平台方节将所述第一期限调整交易在所述区块链网络上广播。
38.一种交易方法,其特征在于,应用于如权利要求5或6所述的交易系统中的平台方节点,所述方法包括:
从所述交易系统中的买方节点或卖方节点接收针对商品交易的仲裁请求;
根据所述仲裁请求创建仲裁类交易,所述仲裁类交易为用于设置第三交易时长的第二期限调整交易,或,所述仲裁类交易为用于将与交易商品等价的数字货币从第一抵押账号分配至买方账号、卖方账号以及平台方账号中的至少一个账号的第一分配交易,其中,所述第三交易时长表征用于替换上一交易时长作为确定商品交易期是否已经截止的依据,若在本次创建的交易之前未创建过期限调整交易,则所述上一交易时长为第一交易时长,否则所述上一交易时长为最近一次创建的期限调整交易设置的交易时长;
将所述仲裁类交易在部署有所述交易系统的区块链网络上广播。
39.一种交易方法,其特征在于,应用于如权利要求1所述的交易系统中的记账参与节点,所述方法包括:
从部署有所述交易系统的区块链网络上接收并验证第一抵押交易的合法性,并在确定所述第一抵押交易合法后将所述第一抵押交易纳入到用于生成区块的待打包交易集合;
从所述区块链网络上接收并验证第一赎回交易的合法性,并在确定所述第一赎回交易合法后将所述第一赎回交易纳入到用于生成区块的待打包交易集合。
40.根据权利要求39所述的交易方法,其特征在于,所述验证第一赎回交易的合法性,包括:
根据作为商品交易期的起点的所述第一抵押交易的交易基准时以及第一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第一赎回交易确定为非法,被确定为非法的所述第一赎回交易不会被所述记账参与节点纳入到用于生成区块的待打包交易集合;
其中,所述第一交易时长是所述交易系统中的买方节点在创建所述第一抵押交易时设置的,所述区块链上的一项交易的交易基准时为所述交易被纳入到用于生成区块的待打包交易集合时的最近区块事务基准时,所述最近区块事务基准时为所述区块链上最近一个已确定区块事务基准时的区块的区块事务基准时,所述区块链上的一个区块的区块事务基准时为根据所述区块的生成时间计算出的一个时刻,且所述时刻与所述区块在所述区块链中的高度正相关。
41.根据权利要求39或40所述的交易方法,其特征在于,所述方法还包括:
从所述区块链网络上接收除自身以外的其他记账参与节点生成的区块;
若接收到的区块中纳入了第一抵押交易,则验证纳入的所述第一抵押交易的合法性,并在确定所述第一抵押交易为非法后,拒绝将接收到的区块保存至本地的区块链中;
若接收到的区块中纳入了第一赎回交易,则验证纳入的所述第一赎回交易的合法性,并在确定所述第一赎回交易为非法后,拒绝将接收到的区块保存至本地的区块链中。
42.一种交易方法,其特征在于,应用于如权利要求24所述的交易系统中的平台方节点,所述方法包括:
在买方与卖方达成商品交易意向后生成交易流水号;
从所述交易系统的买方节点接收指示进行数字货币抵押的抵押请求;
根据所述交易流水号以及买方预设的密码生成第二抵押账号,创建用于将与交易商品等价的数字货币从第一平台方代理账号转移至所述第二抵押账号的第二抵押交易,其中,所述第一平台方代理账号中的数字货币是所述平台方节点根据买方支付给平台方的法币兑换的;
将所述第二抵押交易在部署有所述交易系统的区块链网络上广播。
43.一种交易方法,其特征在于,应用于如权利要求24所述的交易系统中的卖方节点,所述方法包括:
从所述交易系统的平台方节点获取商品交易的交易流水号;
根据所述交易流水号以及买方在确认商品交易成功后提供的预设的密码生成第二抵押账号,并创建用于将与交易商品等价的数字货币从所述第二抵押账号转移至卖方账号的第三赎回交易;
将所述第三赎回交易在部署有所述交易系统的区块链网络上广播。
44.一种交易方法,其特征在于,应用于如权利要求24所述的交易系统中的记账参与节点,所述方法包括:
从部署有所述交易系统的区块链网络上接收并验证第二抵押交易的合法性,并在确定所述第二抵押交易合法后将所述第二抵押交易纳入到用于生成区块的待打包交易集合;
从所述区块链网络上接收并验证第三赎回交易的合法性,并在确定所述第三赎回交易合法后将所述第三赎回交易纳入到用于生成区块的待打包交易集合。
45.一种交易方法,其特征在于,应用于如权利要求25所述的交易系统中的卖方节点,所述方法包括:
从所述交易系统的平台方节点获取商品交易的交易流水号;
根据所述交易流水号以及卖方预设的密码生成第三抵押账号,并创建用于将与交易商品等价的数字货币从卖方账号转移至所述第三抵押账号的第三抵押交易;
将所述第三抵押交易在部署有所述交易系统的区块链网络上广播;
在商品交易期截止后创建用于将与交易商品等价的数字货币从所述第三抵押账号转移至卖方账号的第四赎回交易,以及将所述第四赎回交易在所述区块链网络上广播。
46.一种交易方法,其特征在于,应用于如权利要求28或29所述的交易系统中的平台方节点,所述方法包括:
从所述交易系统中的买方节点或卖方节点接收针对商品交易的仲裁请求;
根据所述仲裁请求创建仲裁类交易,所述仲裁类交易为用于设置第六交易时长的第四期限调整交易,或,所述仲裁类交易为用于将与交易商品等价的数字货币从第三抵押账号分配至卖方账号和/或平台方账号中的至少一个账号的第二分配交易,其中,所述第六交易时长表征用于替换上一交易时长作为确定商品交易期是否已经截止的依据,若在本次创建的交易之前未创建过期限调整交易,则所述上一交易时长为第四交易时长,否则所述上一交易时长为最近一次创建的期限调整交易设置的交易时长;
将所述仲裁类交易在部署有所述交易系统的区块链网络上广播。
47.一种交易方法,其特征在于,应用于如权利要求25所述的交易系统中的记账参与节点,所述方法包括:
从部署有所述交易系统的区块链网络上接收并验证第三抵押交易的合法性,并在确定所述第三抵押交易合法后将所述第三抵押交易纳入到用于生成区块的待打包交易集合;
从所述区块链网络上接收并验证第四赎回交易的合法性,并在确定所述第四赎回交易合法后将所述第四赎回交易纳入到用于生成区块的待打包交易集合。
48.一种买方节点,其特征在于,部署于区块链网络中,所述买方节点包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求32-35中任一项所述的方法的步骤。
49.一种卖方节点,其特征在于,部署于区块链网络中,所述卖方节点包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求36、37、43、45中任一项所述的方法的步骤。
50.一种平台方节点,其特征在于,部署于区块链网络中,所述平台方节点包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求38、42、46中任一项所述的方法的步骤。
51.一种记账参与节点,其特征在于,部署于区块链网络中,所述记账参与节点包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求39-41、44、47中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910416814.6A CN111967860B (zh) | 2019-05-20 | 2019-05-20 | 交易系统、方法以及交易系统中的节点 |
PCT/CN2020/088800 WO2020233404A1 (zh) | 2019-05-20 | 2020-05-06 | 交易系统、方法以及交易系统中的节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910416814.6A CN111967860B (zh) | 2019-05-20 | 2019-05-20 | 交易系统、方法以及交易系统中的节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111967860A CN111967860A (zh) | 2020-11-20 |
CN111967860B true CN111967860B (zh) | 2024-08-13 |
Family
ID=73357879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910416814.6A Active CN111967860B (zh) | 2019-05-20 | 2019-05-20 | 交易系统、方法以及交易系统中的节点 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111967860B (zh) |
WO (1) | WO2020233404A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765622B (zh) * | 2021-01-13 | 2024-04-16 | 中国外运股份有限公司 | 一种电子提单的数字证书管理方法、装置、设备及介质 |
CN112801785B (zh) * | 2021-01-13 | 2023-10-20 | 中央财经大学 | 基于区块链智能合约的公平数据交易方法及装置 |
CN112700240B (zh) * | 2021-03-24 | 2021-06-25 | 南京金宁汇科技有限公司 | 基于utxo架构的区块链中交易手续费提升方法及系统 |
CN113220786B (zh) * | 2021-05-25 | 2022-05-24 | 杭州复杂美科技有限公司 | 物流存证方法、计算机设备和存储介质 |
CN113610520A (zh) * | 2021-07-21 | 2021-11-05 | 上海浦东发展银行股份有限公司 | 数据处理方法、系统、装置、计算机设备和存储介质 |
CN113935836B (zh) * | 2021-10-19 | 2024-03-22 | 平安科技(深圳)有限公司 | 基于Fabric联盟链的跨境支付方法、系统、设备、介质 |
CN114638604B (zh) * | 2022-03-22 | 2024-08-27 | 成都质数斯达克科技有限公司 | 基于区块链的金融业务计费、收费方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234470A (zh) * | 2017-12-28 | 2018-06-29 | 江苏通付盾科技有限公司 | 区块链网络中区块打包方法及系统、电子设备、存储介质 |
CN109493018A (zh) * | 2018-11-06 | 2019-03-19 | 徐宁 | 一种基于区块链的c2c交易和清算系统及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10565645B1 (en) * | 2014-05-20 | 2020-02-18 | Wells Fargo Bank, N.A. | Systems and methods for operating a math-based currency exchange |
US10558962B2 (en) * | 2015-04-14 | 2020-02-11 | Amy SZETO | Processing of unit-based transactions |
US20160321752A1 (en) * | 2015-05-01 | 2016-11-03 | Medici, Inc. | Digitally Encrypted Securities Platform, Along With Methods And Systems For The Same |
EP3396612A1 (en) * | 2017-04-24 | 2018-10-31 | BlockSettle AB | Method and system for creating a user identity |
CN108596608A (zh) * | 2018-04-28 | 2018-09-28 | 比飞力(深圳)科技有限公司 | 一种数字钱包交易的方法及装置 |
-
2019
- 2019-05-20 CN CN201910416814.6A patent/CN111967860B/zh active Active
-
2020
- 2020-05-06 WO PCT/CN2020/088800 patent/WO2020233404A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234470A (zh) * | 2017-12-28 | 2018-06-29 | 江苏通付盾科技有限公司 | 区块链网络中区块打包方法及系统、电子设备、存储介质 |
CN109493018A (zh) * | 2018-11-06 | 2019-03-19 | 徐宁 | 一种基于区块链的c2c交易和清算系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111967860A (zh) | 2020-11-20 |
WO2020233404A1 (zh) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111967860B (zh) | 交易系统、方法以及交易系统中的节点 | |
JP7533983B2 (ja) | 信頼度が低い、または信頼度が皆無の当事者間での価値転送を円滑化する装置、システム、または方法 | |
US20230237447A1 (en) | Blockchain-based exchange with tokenisation | |
US20230117907A1 (en) | Methods and systems for the efficient transfer of entities on a blockchain | |
CN109478997B (zh) | 区块链实现的系统和方法 | |
CN109074580B (zh) | 在区块链上安全转移实体的方法和系统 | |
KR102573433B1 (ko) | 블록체인을 이용한 에너지 거래 플랫폼 및 그 방법 | |
KR100717590B1 (ko) | 인터넷상에서의 가상자산 거래시스템 및 그 방법 | |
US6236972B1 (en) | Method and apparatus for facilitating transactions on a commercial network system | |
CA2943230C (en) | Virtual currency system | |
Schueffel et al. | The Crypto Encyclopedia: Coins, tokens and digital assets from A to Z | |
JP2001524233A (ja) | バーチャルプロパティシステム | |
US20220138748A1 (en) | Method and system for settling a blockchain transaction | |
US20040034597A1 (en) | System and method for managing micropayment transactions, corresponding client terminal and trader equipment | |
KR102500458B1 (ko) | 컨소시엄 블록체인 네트워크 기반의 nft 기술을 활용한 디지털 자산 마켓 서비스 제공방법 | |
US10140658B1 (en) | Commodity backed virtual currency method and system for network transactions | |
CN110807634A (zh) | 基于Hasp哈希链与智能合约的二手票券交易方法和平台 | |
CN112016114A (zh) | 基于加密货币的智能合约生成方法、相关设备及存储介质 | |
WO2023201360A2 (en) | Method, controller, and computer-readable medium for replacement of a cancelled repeating transfer data structure on a distributed transfer network | |
Hu et al. | A risk redistribution standard for practical cryptocurrency payment | |
Masseport et al. | Proof of usage: User-centric consensus for data provision and exchange | |
KR102365823B1 (ko) | 기축 코인 예치를 통한 가상화폐 수수료 거래 시스템 | |
JP7048039B1 (ja) | 決済システム、決済装置、決済方法及び決済プログラム | |
KR102365824B1 (ko) | 코인 교환 비율 설정을 통한 디앱 사용자 수수료 거래 시스템 | |
Cribäck | Micro payments: Viable technical platforms and models for a bankto provide payments on micro amounts |
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 |