WO2020233404A1 - 交易系统、方法以及交易系统中的节点 - Google Patents

交易系统、方法以及交易系统中的节点 Download PDF

Info

Publication number
WO2020233404A1
WO2020233404A1 PCT/CN2020/088800 CN2020088800W WO2020233404A1 WO 2020233404 A1 WO2020233404 A1 WO 2020233404A1 CN 2020088800 W CN2020088800 W CN 2020088800W WO 2020233404 A1 WO2020233404 A1 WO 2020233404A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
utxo
node
mortgage
account
Prior art date
Application number
PCT/CN2020/088800
Other languages
English (en)
French (fr)
Inventor
程强
Original Assignee
深圳市红砖坊技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 深圳市红砖坊技术有限公司 filed Critical 深圳市红砖坊技术有限公司
Publication of WO2020233404A1 publication Critical patent/WO2020233404A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/102Bill distribution or payments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Definitions

  • This application relates to the technical field of e-commerce, and specifically to a transaction system, method, and nodes in the transaction system.
  • intermediaries are often used as guarantees to allow both parties to the transaction to realize the transaction. For example, when shopping on the Internet, the buyer cannot trust the seller and cannot send money directly to the seller, and the seller cannot trust the buyer. If the buyer fails to pay, it will not ship first. Therefore, a certain e-commerce platform acts as the intermediary, and the buyer pays the e-commerce platform first. The seller sees that the buyer has paid, so he can deliver the goods to the buyer at ease, and the buyer confirms that the goods are correct after receiving the goods, and instructs the e-commerce platform to The payment is transferred to the seller.
  • the e-commerce platform as a third-party transaction should have strong credit characteristics so that both buyers and sellers can give them full trust.
  • higher requirements are put forward for the qualifications of the operating entities of the e-commerce platform.
  • Large companies have a natural advantage over small and medium-sized enterprises or individuals in this regard, which leads to the monopoly of individual large companies in the e-commerce field. Conducive to the development of commodity economy.
  • the embodiments of the present application provide a transaction system, method, and nodes in the transaction system, which express real e-commerce transactions by transferring funds on the blockchain, and use the characteristics of the blockchain to provide transaction guarantees instead of The transaction guarantee function of the traditional e-commerce platform. This reduces the qualification requirements for the operating entities of the e-commerce platform, which is conducive to more enterprises or individuals to develop e-commerce business and promote the prosperity and development of the commodity economy.
  • this application provides a transaction system, including a buyer node, a seller node, a platform side node, and a miner node in a blockchain network;
  • the platform side node is configured to generate a transaction after the buyer and the seller have reached a commodity transaction intention Serial number;
  • the buyer node is configured to obtain the transaction serial number from the platform side node, generate a first mortgage account number according to the transaction serial number and the password preset by the buyer, and create a configuration that will be equivalent to the transaction commodity
  • Digital currency is transferred from the buyer’s account to the first mortgage transaction of the first mortgage account, and the first mortgage transaction is broadcast on the blockchain network;
  • the seller node is configured to obtain it from the platform side node
  • the transaction serial number generates the first mortgage account number based on the transaction serial number and the preset password provided by the buyer after confirming the success of the commodity transaction, and creates a digital currency configured to be equivalent to the transaction commodity
  • the first redemption transaction transferred from the first mortgage account to the seller account, and the first redemption
  • the above-mentioned transaction system uses the transfer transaction on the blockchain to express the real e-commerce transaction, that is, after the buyer and the seller reach the transaction intention, the buyer uses the first mortgage transaction created by the buyer node to transfer its own assets (digital equivalent to the transaction commodity) Currency) is mortgaged to the temporary account on the blockchain (the first mortgage account). After the buyer confirms the success of the commodity transaction, the seller will redeem the mortgaged assets of the buyer from the temporary account through the first redemption transaction created by the seller node. After completing the transfer of assets from buyer to seller, this commodity transaction is completed.
  • the first mortgage transaction and the first redemption transaction are both transfer transactions on the blockchain, that is, they will be recorded on the blockchain by the miner nodes competing for the bookkeeping right (if the transaction is legal).
  • the blockchain has the characteristics of transparent accounting and non-tampering, it can provide guarantee for commodity transactions, replacing the transaction guarantee function of the traditional e-commerce platform.
  • the platform side nodes operated by the e-commerce platform in the transaction system only need to assist the transaction
  • the smooth progress (for example, generating a transaction serial number), without the need to provide credit guarantees for commodity transactions. Therefore, the qualification requirements for the operating entities of the e-commerce platform have been reduced, allowing more companies or individuals to participate in e-commerce, avoiding monopoly and promoting competition, which is conducive to the prosperity and development of the commodity economy.
  • the blockchain also has the characteristics of automatic transaction processing, it is conducive to reducing manual services in the transaction process.
  • the degree of automation of commodity transactions is higher and the transaction is easier to achieve, and the operating cost of the e-commerce platform is also reduced.
  • the buyer node is further configured to set a first transaction duration when creating the first mortgage transaction; the miner node verifies the validity of the received first redemption transaction When the commodity trading period is not available, it is judged whether the commodity trading period has ended according to the trading benchmark time of the first mortgage transaction as the starting point of the commodity trading period and the first transaction duration, and after determining that the commodity trading period has ended
  • the received first redemption transaction is determined to be illegal, and the first redemption transaction determined to be illegal will not be included in the set of transactions to be packaged configured to generate a block by the miner node;
  • the The transaction benchmark for a transaction on the blockchain is when the transaction is included in the latest block transaction benchmark when the transaction set to be packaged is configured to generate a block, and the most recent block transaction benchmark is the zone
  • the block transaction benchmark of a block on the blockchain is calculated based on the generation time of the block A moment, and the moment is positively correlated with the height
  • a commodity transaction period is specified for commodity transactions by setting the first transaction duration, which limits the completion of commodity transactions within a limited time period, improves security, avoids waste of resources, and enhances the practicability of the transaction system.
  • the transaction benchmark of a transaction can be defined as the latest block transaction benchmark when the transaction is included in the set of transactions to be packaged configured to generate the block
  • the most recent block transaction reference time can be defined as the block transaction reference time of the block when the latest block transaction reference has been determined on the blockchain.
  • the area of a block on the blockchain The block transaction benchmark time can be defined as a moment calculated based on the generation time of the block.
  • the block transaction benchmark has the characteristics of unidirectional growth, that is, of the two adjacent blocks, the latter block (in the blockchain).
  • the block transaction benchmark of the block with a larger height is always later than the block transaction benchmark of the previous block (a block with a smaller height in the blockchain).
  • the unidirectional growth characteristic of the block transaction benchmark makes the judgment about the commodity transaction period (for example, whether the first redemption transaction mentioned above occurs before the end of the commodity transaction period) is certain.
  • the block transaction reference time of a block on the blockchain is the generation time of M blocks on the blockchain with the block as the central block The average value, where M is a positive odd number greater than or equal to 3; the miner node is also configured to determine whether the generation time of the new block is (M-1) before the new block is generated when a new block is generated.
  • the block transaction benchmark of )/2 blocks is greater than the block transaction benchmark of the (M-1)/2+1th block before the new block, if it is not greater than the The value of the block transaction benchmark of the (M-1)/2+1th block plus the preset duration is determined as the (M-1)/2th block before the new block
  • the block generation time recorded in the block header of the new block is calculated and updated according to the determined block transaction benchmark.
  • the above implementation provides a possible calculation method for the block transaction benchmark, that is, the average value of the generation time of several nearby blocks (including itself), where the generation time of the block can be recorded in the block header (such as the Bitcoin block, recorded in the timestamp field of the block header).
  • the block transaction benchmark of the (M-1)/2th block before the new block can be calculated (the new block is used as the last block of the blockchain in the calculation), If the calculated block transaction benchmark does not meet the characteristics of unidirectional growth, the block transaction benchmark of the (M-1)/2+1th block before the new block is added with the preset duration as When the block transaction benchmark of the (M-1)/2th block before the new block meets the unidirectional growth characteristic, the generation time of the new block is reversed and updated. If the new block is subsequently accepted by the blockchain, when the block transaction benchmark is subsequently calculated based on the generation time of this block (for example, for verification of the commodity transaction period), the calculated block transaction benchmark will be maintained. Characteristics of growth.
  • the buyer node or the seller node is further configured to create a first period adjustment transaction configured to set a second transaction period after obtaining information indicating the adjustment transaction
  • the first term adjustment transaction is sent to the platform side node, wherein the second transaction duration characterization is configured to replace the first transaction duration as a basis for determining whether the first redemption transaction is legal;
  • the platform side The node is further configured to broadcast the first deadline adjustment transaction on the blockchain network;
  • the miner node is also configured to receive and verify the legality of the first deadline adjustment transaction from the blockchain network , And after determining that the first period adjustment transaction is legal, the first period adjustment transaction is included in the set of transactions to be packaged configured to generate blocks; the miner node verifies the received first period adjustment transaction In case of legality, judge whether the commodity transaction period has expired according to the transaction benchmark time of the first mortgage transaction and the first transaction duration, and after determining that the commodity transaction period has expired, the received The first maturity adjustment transaction is determined to be illegal, and the first maturity adjustment transaction that is determined to be illegal will not
  • the buyer or seller node can also create a first-term adjustment transaction according to the user's instruction.
  • the purpose of the first-term adjustment transaction is to set the second transaction duration.
  • Digital currency can only do translation processing.
  • the translation processing can be expressed as spending the original use in the first period adjustment transaction.
  • UTXO is used as a mortgage, but a new equivalent UTXO is created as a substitute. After the translation, this asset still belongs to the first mortgage account.
  • the length of the commodity trading period depends on the first transaction duration set when the first mortgage transaction is created. If the first maturity adjustment transaction is created, then the length of the commodity trading period will depend on thereafter In the second transaction duration, that is to say, in the subsequent transactions of the first period adjustment transaction, if it involves verification of the commodity transaction period (for example, verifying whether the first redemption transaction is legal), the length of the commodity transaction period will be the second The transaction duration shall prevail, and the first transaction duration shall no longer prevail. It needs to be pointed out that for the first period adjustment transaction itself, to verify whether it is legal or not, the duration of the first transaction shall prevail.
  • the first-term adjustment transaction can be initiated when the buyer and the seller cannot complete the transaction on time. For example, the seller cannot deliver the goods on time for some reason. In order to avoid the end of the commodity trading period, the seller will create the first redemption. The return transaction will be judged to be illegal), the seller can create a first term adjustment transaction through the seller node to extend the commodity transaction period (ie, set a second transaction duration greater than the first transaction duration) to complete the transaction.
  • the above is just an example, and the initiation of the first period adjustment transaction may also be due to other reasons.
  • the first period adjustment transaction is not necessary. If the buyer and seller can complete the transaction within the normal commodity transaction period (for example, the period corresponding to the first transaction duration), the first period adjustment transaction may not be created.
  • the buyer node or the seller node is further configured to send an arbitration request to the platform-side node after obtaining information indicating an application for arbitration; the platform-side node is also configured to After receiving the arbitration request, create an arbitration transaction, and when the arbitration transaction is a second time limit adjustment transaction configured to set a third transaction duration, the second time limit adjustment transaction is placed on the blockchain Broadcast on the network, wherein the third transaction duration characterization is configured to replace the previous transaction duration as a basis for determining whether the first redemption transaction is legal.
  • the miner node is also configured to receive from the blockchain network And verify the legitimacy of the second period adjustment transaction, and after determining that the second period adjustment transaction is legal, include the second period adjustment transaction into the set of transactions to be packaged configured to generate a block; the miner node When verifying the legality of the received second term adjustment transaction, determine whether the commodity transaction period has expired according to the transaction benchmark of the first mortgage transaction and the last transaction duration, and determine whether the commodity transaction period has expired. After the commodity trading period has expired, the received second period adjustment transaction is determined to be illegal, and the second period adjustment transaction determined to be illegal will not be included by the miner node into the pending package configured to generate a block Transaction collection.
  • the buyer or seller node can also apply for arbitration to the platform side node according to the user's instruction. For example, the two parties have a dispute and the platform side is hoped to intervene in the settlement, and so on.
  • the platform party makes different arbitration results according to the content of the arbitration request, and the arbitration result is reflected by the arbitration transaction created by the platform side node.
  • Arbitration transactions include second-term adjustment transactions.
  • the purpose of second-term adjustment transactions is to set the third transaction duration.
  • For the assets pledged by the buyer only translation processing can be performed. For example, when the transaction on the blockchain adopts the UXTO model , The translation processing can be expressed as spending the UTXO originally used as collateral in the second term adjustment transaction, but creating a new equivalent UTXO as a replacement. After the translation, the asset still belongs to the first mortgage account.
  • the length of the commodity transaction period depends on the last transaction duration.
  • the last transaction duration can be the first transaction duration, the second transaction duration or the third transaction duration set last time, among which,
  • the third transaction duration set last time is the transaction duration set by the second-period adjustment exchange created before the second-period adjustment transaction created this time. Because the buyer and seller can apply for arbitration multiple times, the platform node may create multiple The second consecutive period adjustment transaction. If a second period adjustment transaction is created, the length of the commodity transaction period will depend on the third transaction duration set this time. It needs to be pointed out that for the second period adjustment transaction itself, to verify whether it is legal or not, the previous transaction duration shall prevail.
  • the second-term adjustment transaction is not necessary. If the buyer and seller do not apply for arbitration, the platform-side node will not create a second-term adjustment transaction, and the arbitration-type transaction created by the platform-side node may not necessarily be a second-term adjustment transaction (for example, also It can be the first distribution transaction below).
  • the platform-side node is further configured to broadcast the first distribution transaction on the blockchain network when the arbitration transaction is a first distribution transaction, wherein, The first distribution transaction is configured to distribute digital currency equivalent to the transaction commodity from the first mortgage account to at least one of the buyer account, the seller account, and the platform party account, and distribute it to the platform The digital currency of the party’s account is the arbitration fee charged by the platform party; the miner node is also configured to receive and verify the legality of the first distribution transaction from the blockchain network, and to determine the first distribution transaction After being legal, the first distribution transaction is included in the set of transactions to be packaged configured to generate a block; when the miner node verifies the legality of the received first distribution transaction, according to the first mortgage transaction Determine whether the commodity trading period has expired based on the transaction benchmark and the last transaction duration, and determine that the received first distribution transaction is illegal after determining that the commodity trading period has expired. The first distribution transaction will not be included in the set of transactions to be packaged configured to generate a block by the miner no
  • the arbitration transaction created by the platform side node may also include the first distribution transaction.
  • the purpose of the first distribution transaction is to transfer the mortgaged assets of the buyer in the first mortgage account between the buyer, the seller and the platform party. Allocate to reflect the results of the arbitration. For example, if the seller does not ship the goods, all the assets can be allocated to the buyer. For example, the buyer received the goods with certain defects, but it is acceptable, and the seller does not want to return the goods. You can allocate this asset to both parties in a certain proportion ,and many more. Among them, the platform party can also collect a certain amount of digital currency as an arbitration fee.
  • the first distribution transaction is not necessary. If the buyer and seller do not apply for arbitration, the platform node will not create the first distribution transaction, and the arbitration transaction created by the platform node may not necessarily be the first distribution transaction (for example, the above The second term adjustment transaction).
  • the buyer node is further configured to create a digital currency configured to transfer the digital currency equivalent to the transaction commodity from the first mortgage account to the buyer account after the end of the commodity trading period.
  • a second redemption transaction and broadcast the second redemption transaction on the blockchain network; the miner node is also configured to receive and verify the second redemption transaction from the blockchain network After determining the legality of the second redemption transaction, the second redemption transaction is included in the set of transactions to be packaged configured to generate a block; the miner node verifies the received second redemption transaction When the redemption transaction is legal, it is determined whether the commodity trading period has expired according to the transaction benchmark time of the first mortgage transaction and the last transaction duration, and the receipt will be received after it is determined that the commodity trading period has not expired The second redemption transaction is determined to be illegal, and the second redemption transaction determined to be illegal will not be included in the set of transactions to be packaged configured to generate a block by the miner node.
  • the buyer node can also create a second redemption transaction after the end of the commodity trading period to redeem the mortgaged assets from the first mortgage account. This is mainly for the seller who has not shipped the goods or although the goods are shipped but The buyer did not receive the goods during the commodity transaction period, so that the buyer can recover his own assets and avoid economic losses.
  • the prerequisite for creating a second redemption transaction is that the assets mortgaged by the buyer are still stored in the first mortgage account and have not been redeemed by the seller or distributed by the platform. Therefore, the second redemption transaction is not necessary.
  • the miner node is further configured to receive blocks generated by other miner nodes other than itself from the blockchain network, and verify the first included in the received block 1.
  • the legality of a mortgage transaction and after determining that the first mortgage transaction is illegal, refuse to save the received block to the local blockchain, and configure to verify the received block
  • the legality of the first redemption transaction and after determining that the first redemption transaction is illegal, refuse to save the received block in the local blockchain.
  • the miner node in addition to verifying the legitimacy of the first mortgage transaction when the miner node receives the block, after receiving the block created by other miner nodes, it verifies the legitimacy of the first mortgage transaction included in it (if the area is Blocks are included in the first mortgage transaction).
  • the processing methods for the first redemption transaction, the first period adjustment transaction, the second period adjustment transaction, the first distribution transaction and the second redemption transaction are similar.
  • the buyer node is configured to use a hash algorithm to generate the private key of the first mortgage account according to the transaction serial number, the password, and the platform characteristic, and then according to the The private key generates a corresponding public key, and the first mortgage account number is determined according to the public key, wherein the platform characteristic character is a character string configured to identify the platform party.
  • the transaction serial number, platform feature word, and private key generation algorithm may be public to the seller node, so the seller node can calculate the first mortgage account number as long as it obtains the password provided by the buyer.
  • the buyer can also directly provide the calculated private key of the first mortgage account to the seller, and the seller node can directly use the private key to calculate the first mortgage account.
  • the private key is usually longer and is prone to errors during transmission and copying. Therefore, it can be replaced with a password.
  • configuring the platform side node to create the arbitration type transaction includes: the platform side node creates the arbitration type transaction by invoking a smart contract on the blockchain.
  • arbitration transactions can be automatically created by smart contracts, that is, arbitration is automatically carried out through smart contracts. It has a higher degree of intelligence and a faster arbitration speed.
  • the content of the smart contract can be written by the platform party, and the code is open source. Ensure that it is fair and open.
  • the arbitration transaction can also be created by manually instructing the platform node to manually review the transaction process.
  • the input of the first mortgage transaction includes the first unspent transaction output UTXO belonging to the buyer account; the output of the first mortgage transaction includes the output of the first mortgage account
  • the second UTXO and the third UTXO belonging to the platform account the amount of the second UTXO is a digital currency equivalent to the transaction commodity, and the amount of the third UTXO is the transaction service fee charged by the platform.
  • the service fee represents the sum of the fees charged by the platform party for providing services in the course of the commodity transaction, and the sum of the commission receivable from the bookkeeping miners of the subsequent transactions of the first mortgage transaction;
  • the second locking script includes The public key of the platform party account, the public key of the buyer account, the public key of the seller account, the public key of the first mortgage account, the first mortgage operation parameter, and the first signature verification instruction,
  • a signature verification instruction is configured to instruct the miner node to use the public key in the second locking script to verify whether the signature provided in the unlocking script for the second UTXO is correct;
  • the first mortgage operation parameter includes: The transaction serial number, the maximum limit of the arbitration fee, the first transaction duration, and the maximum transaction duration that can be set for the first term adjustment transaction.
  • the first UTXO can be one or more UTXOs belonging to the buyer's account, which belong to the assets that the buyer's account already owns before the commodity transaction, the second UTXO represents the assets pledged by the buyer, and the third UTXO represents the transaction service fee charged by the platform party. And the miner's handling fee prepaid for subsequent transactions of the first mortgage transaction.
  • the content of the first mortgage operation parameter is some relevant information of the commodity transaction, which can be configured to verify the legality of the transaction during the commodity transaction, including the first transaction duration that characterizes the length of the commodity transaction period.
  • the output of the first mortgage transaction further includes the fourth UTXO belonging to the account of the additional service provider, and the additional service provider refers to providing the buyer with the purchase price before reaching the intention of the commodity transaction.
  • Merchants of additional services related to the commodity transaction are possible.
  • the fourth UTXO represents the service fee charged by the additional service provider.
  • the additional service provider here does not refer to the platform party or the miner, but refers to the buyer who provides certain additional services to the buyer in the process of reaching the transaction intention Merchants, there may be one or more such merchants, so the fourth UTXO may also be one or more UTXOs.
  • the content of the additional service can be, but is not limited to helping to match transactions, providing price comparison information, and providing cloud computing hosting, etc.
  • commodity transactions can also be conducted, and additional services are designed to enhance the convenience of transactions.
  • the input of the first term adjustment transaction includes the second UTXO and the third UTXO;
  • the unlocking script of the second UTXO includes the creation of the buyer node or the seller node
  • the private key of its own account is used to sign the first time limit adjustment transaction
  • the platform side node uses the private key of the platform side account after receiving the first time limit adjustment transaction.
  • the key is the signature of the first maturity adjustment transaction;
  • the output of the first maturity adjustment transaction includes the fifth UTXO belonging to the first mortgage account and the sixth UTXO belonging to the platform party account, the fifth UTXO
  • the amount of is the digital currency equivalent to the transaction commodity, and the amount of the sixth UTXO is the difference between the third UTXO and the fee receivable from the accounting miner of the first term adjustment transaction;
  • the lock script includes the public key of the platform party account, the public key of the buyer account, the public key of the seller account, the public key of the first mortgage account, the first period adjustment operation parameter, and the second signature verification instruction ,
  • the second signature verification instruction is configured to instruct the miner node to use the public key in the fifth UTXO locking script to verify whether the signature provided in the unlocking script for the fifth UTXO is correct; the first deadline
  • the adjustment operation parameters include: the transaction serial number, the maximum limit of the arbitration fee, and the second transaction duration.
  • the first term adjustment transaction takes the UTXO output from the first mortgage transaction as input
  • the fifth UTXO is the translation of the second UTXO in the first mortgage account
  • the sixth UTXO represents the transaction service fee charged by the platform party and is the first
  • the miner's handling fee prepaid for subsequent transactions of a one-term adjustment transaction is the third UTXO minus the miner's handling fee of the first-term adjustment transaction.
  • the content of the first period adjustment operation parameter is some relevant information of the commodity transaction, which can be configured to verify the legality of the transaction during the commodity transaction, including the second transaction duration that characterizes the adjusted commodity transaction period length.
  • the first time limit adjustment operation parameter further includes time limit adjustment description information
  • the content of the time limit adjustment description information includes an explanation of the time limit adjustment by the party that created the first time limit adjustment transaction.
  • the time limit adjustment description information can be written by the node of the party that created the first time limit adjustment transaction to explain the reason for the time limit adjustment, for example, the explanation of the reason for applying for the extension of the commodity trading period.
  • the content of the period adjustment description information can also be used as a deposit certificate to restore the current situation of the transaction in the event of a dispute.
  • the first time limit adjustment operation parameter further includes a degree of suspected fraud
  • the content of the suspected degree of fraud includes a degree of suspected fraud of the party that created the first time limit adjustment transaction to the counterparty. Assessment.
  • the degree of suspicion of fraud can be used as a basis for the platform party to make certain arbitration actions in the future, so as to realize the platform party's management and control of transaction fraud risks.
  • the miner node is further configured to verify the first period adjustment transaction after determining that the received transaction is the first period adjustment transaction, and the verification items include: verification Whether the second UTXO and the fifth UTXO belong to the same account and the amounts of the two UTXOs are the same.
  • the result of this verification is legal, otherwise the result of this verification Is illegal; when obtaining the most recent block transaction benchmark, verify whether the difference between the most recent block transaction benchmark and the transaction benchmark of the first mortgage transaction is less than the first transaction duration, if less than this item The result of the verification is legal, otherwise the result of this verification is illegal; verify that the maximum limit of the arbitration fee set in the first time limit adjustment operation parameter and the arbitration fee set in the first mortgage operation parameter Whether the maximum limit is the same, if they are the same, the result of this verification is legal, otherwise the result of this verification is illegal; verify whether the second transaction duration is not greater than the maximum transaction duration set in the first mortgage operation parameter , If not greater than, the result of this verification is legal, otherwise the result of this verification is illegal; verify whether the second transaction duration is less than the first transaction duration, if less than and in the unlocking script of the second UTXO If the private key of the seller’s account is included for the signature of the first
  • an optional solution based on the implementation of the first term adjustment transaction under the UTXO model is provided and verified its legitimacy. This verification is executed when the miner node includes the first period adjustment transaction into the set of transactions to be packaged. It also needs to be executed before the miner node receives the block broadcast by other miner nodes and attempts to save it to the local blockchain.
  • the input of the second period adjustment transaction includes a seventh UTXO and an eighth UTXO
  • the output of the second period adjustment transaction includes a ninth UTXO belonging to the first mortgage account number and The tenth UTXO belonging to the platform account, wherein the seventh UTXO is the second UTXO and the eighth UTXO is the third UTXO, or the seventh UTXO is the fifth UTXO And the eighth UTXO is the sixth UTXO, or the seventh UTXO is the last ninth UTXO of the last second period adjustment transaction and the eighth UTXO is the last second period adjustment transaction.
  • a tenth UTXO; the unlocking script of the seventh UTXO includes the signature of the first arbitration information by the buyer node or seller node using the private key of its own account when generating the arbitration request, and the platform node after receiving all After the arbitration request, the private key of the platform party’s account is used to sign the second time limit adjustment transaction, wherein the first arbitration information includes the transaction serial number and the seventh UTXO on the blockchain The position index in, the signature of the first arbitration information is carried in the arbitration request; the amount of the ninth UTXO is the digital currency equivalent to the transaction commodity, and the amount of the tenth UTXO is the first 8.
  • the lock script of the ninth UTXO includes the public key of the platform party account, the public key of the buyer account, and the seller
  • the public key of the account, the public key of the first mortgage account, the second time limit adjustment operation parameter and the second signature verification instruction, the second signature verification instruction is configured to instruct the miner node to use the ninth UTXO
  • the public key in the locking script verifies whether the signature provided in the unlocking script of the ninth UTXO is correct
  • the second time limit adjustment operation parameter includes: the transaction serial number, the maximum limit of the arbitration fee, and the The third transaction time.
  • the current second maturity adjustment transaction takes the UTXO output from the first mortgage transaction, the UTXO output from the first maturity adjustment transaction, or the UTXO output from the last second maturity adjustment transaction as input.
  • the ninth UTXO is for the seventh UTXO.
  • the translation in the first mortgage account, the tenth UTXO represents the transaction service fee charged by the platform party and the miner's handling fee prepaid for the subsequent transaction of the second period adjustment transaction.
  • the amount is the eighth UTXO minus the second period adjustment transaction miner Handling fee.
  • the content of the second period adjustment operation parameter is some relevant information about the commodity transaction, which can be configured to verify the legality of the transaction during the commodity transaction, including the third transaction duration that characterizes the adjusted commodity transaction period length.
  • the miner node is further configured to verify the second period adjustment transaction after determining that the received transaction is the second period adjustment transaction, and the verification items include: verification Whether the seventh UTXO and the ninth UTXO belong to the same account and whether the amounts of the two UTXOs are the same.
  • the result of this verification is legal, otherwise the result of this verification Is illegal; when obtaining the most recent block transaction benchmark, verify whether the difference between the most recent block transaction benchmark and the transaction benchmark of the first mortgage transaction is less than the operating parameter in the locking script of the seventh UTXO If the transaction duration set in the second time limit is less than the length of the transaction, the result of this verification is legal, otherwise the result of this verification is illegal; verify that the maximum limit of the arbitration fee set in the second time limit adjustment operation parameter and the seventh Whether the maximum limit of the arbitration fee set in the operating parameters of the locking script is the same, if the same, the result of this verification is legal, otherwise the result of this verification is illegal; if the result of any of the above verification items If it is illegal, the second period adjustment transaction is an illegal transaction, and the miner node refuses to include the illegal second period adjustment transaction in the set of transactions to be packaged configured to generate a block.
  • an optional solution based on the implementation of the second term adjustment transaction under the UTXO model is provided and verified its legitimacy. This verification will be executed when the miner node includes the second-period adjustment transaction into the set of transactions to be packaged. It also needs to be executed before the miner node receives the block broadcast by other miner nodes and attempts to save it to the local blockchain.
  • the input of the first distribution transaction includes an eleventh UTXO and a twelfth UTXO, wherein the eleventh UTXO is the second UTXO and the twelfth UTXO Is the third UTXO, or, the eleventh UTXO is the fifth UTXO and the twelfth UTXO is the sixth UTXO, or, the eleventh UTXO is the ninth UTXO and The twelfth UTXO is the tenth UTXO; the unlocking script of the eleventh UTXO includes the signature of the second arbitration information using the private key of its own account when the buyer node or seller node generates the arbitration request, and After receiving the arbitration request, the platform-side node uses the private key of the platform-side account to sign the first distribution transaction, wherein the second arbitration information includes the transaction serial number and the first distribution transaction.
  • the position index of the eleven UTXO in the blockchain, and the signature of the second arbitration information is carried in the arbitration request;
  • the output of the first distribution transaction includes the thirteenth account belonging to the platform party UTXO and at least one of the following three UTXOs, the fourteenth UTXO belonging to the buyer’s account, the fifteenth UTXO belonging to the seller’s account, and the sixteenth UTXO belonging to the platform party’s account;
  • the amount of the thirteen UTXO is the difference between the twelfth UTXO and the commission receivable of the accounting miner of the first distribution transaction, and the sum of the amount of the at least one UTXO is a digital currency equivalent to the transaction commodity.
  • the first distribution transaction takes the UTXO output from the first mortgage transaction, the UTXO output from the first period adjustment transaction, or the UTXO output from the second period adjustment transaction as input.
  • the thirteenth UTXO represents the transaction service fee charged by the platform party, and its amount It is the twelfth UTXO minus the miner fee for the second term adjustment transaction.
  • the fourteenth UTXO, the fifteenth UTXO, and the sixteenth UTXO indicate the result of the distribution of the assets mortgaged by the buyer. At least one of these three UTXOs should exist .
  • the miner node is further configured to verify the first distribution transaction after determining that the received transaction is the first distribution transaction, and the verification item includes: obtaining the For the most recent block transaction benchmark, verify whether the difference between the most recent block transaction benchmark and the transaction benchmark of the first mortgage transaction is less than the transaction duration set in the operating parameter in the lock script of the eleventh UTXO , If less than, the result of this verification is legal, otherwise the result of this verification is illegal; if the output of the first distribution transaction includes the sixteenth UTXO, verify whether the amount of the sixteenth UTXO is not greater than The maximum limit of the arbitration fee set in the operating parameters of the eleventh UTXO lock script, if it is not greater than, the result of this verification is legal, otherwise the result of this verification is illegal; if the above verification items are If the result of any item is illegal, the first distribution transaction is an illegal transaction, and the miner node refuses to include the illegal first distribution transaction into the set of transactions to be packaged configured to generate a block
  • an optional solution based on the implementation of the first distribution transaction under the UTXO model and verifying its legitimacy is provided. This verification is performed when the miner node includes the first distribution transaction into the set of transactions to be packaged, and it also needs to be performed before the miner node receives the block broadcast by other miner nodes and attempts to save it to the local blockchain.
  • the input of the first redemption transaction includes a seventeenth UTXO and an eighteenth UTXO, wherein the seventeenth UTXO is the second UTXO and the eighteenth UTXO UTXO is the third UTXO, or, the seventeenth UTXO is the fifth UTXO and the eighteenth UTXO is the sixth UTXO, or, the seventeenth UTXO is the ninth UTXO And the eighteenth UTXO is the tenth UTXO; the unlocking script of the seventeenth UTXO includes that the seller node uses the private key of the first mortgage account to exchange transactions when creating the first redemption transaction.
  • the signature of the first redemption transaction; the output of the first redemption transaction includes the nineteenth UTXO belonging to the seller’s account and the twentieth UTXO belonging to the platform party’s account, and the amount of the nineteenth UTXO It is a digital currency equivalent to a trading commodity, and the amount of the twentieth UTXO is the difference between the eighteenth UTXO and the handling fee receivable by the miner of the first redemption transaction.
  • the first redemption transaction takes the UTXO output from the first mortgage transaction, the UTXO output from the first term adjustment transaction, or the UTXO output from the second term adjustment transaction as input.
  • the nineteenth UTXO represents the assets redeemed by the seller, and the twentieth UTXO represents the transaction service fee charged by the platform party, and its amount is the eighteenth UTXO minus the miner fee for the first redemption transaction.
  • the input of the second redemption transaction includes a twenty-first UTXO and a twenty-second UTXO, wherein the twenty-first UTXO is the second UTXO and the The twenty-second UTXO is the third UTXO, or, the twenty-first UTXO is the fifth UTXO and the twenty-second UTXO is the sixth UTXO, or, the twenty-first UTXO UTXO is the ninth UTXO and the twenty-second UTXO is the tenth UTXO; the unlocking script of the twenty-first UTXO includes the use of the buyer node when creating the second redemption transaction
  • the private key of the first mortgage account is the signature of the second redemption transaction;
  • the output of the second redemption transaction includes the twenty-third UTXO belonging to the buyer account and the twenty-third UTXO belonging to the platform party account.
  • UTXO the amount of the twenty-third UTXO is a digital currency equivalent to the transaction commodity
  • the amount of the twenty-fourth UTXO is the accounting of the twenty-second UTXO and the second redemption transaction The difference in handling fees receivable by miners.
  • the second point of redemption easy takes the UTXO output from the first mortgage transaction, the UTXO output from the first term adjustment transaction, or the UTXO output from the second term adjustment transaction as input.
  • the twenty-third UTXO represents the assets redeemed by the buyer.
  • Twenty-four UTXO represents the transaction service fee charged by the platform party, and its amount is the twenty-second UTXO minus the miner's fee for the second redemption transaction.
  • the first redemption transaction and the second redemption transaction are both redemption transactions
  • the input of the redemption transaction includes the twenty-fifth UTXO
  • the The output of the redemption transaction includes the twenty-sixth UTXO
  • the twenty-fifth UTXO of the first redemption transaction is the seventeenth UTXO and the second The sixteenth UTXO is the nineteenth UTXO
  • the twenty-fifth UTXO of the second redemption transaction is the twenty-first UTXO
  • the twenty-sixth UTXO of the second redemption transaction For the twenty-third UTXO, the miner node is further configured to verify the redemption transaction after determining that the received transaction is the redemption transaction, and the verification items include: obtaining the most recent transaction In the block transaction benchmark, verify whether the difference between the most recent block transaction benchmark and the transaction benchmark of the first mortgage transaction is less than the transaction duration set in the operating parameter in the lock script of the twenty-fifth UTXO; if Is less than the transaction duration
  • an optional solution based on the implementation of redemption transactions (including the first redemption transaction and the second redemption transaction) under the UTXO model is provided and verified for its legitimacy. This verification is performed when the miner node includes the redemption transaction into the set of transactions to be packaged. It also needs to be performed before the miner node receives the block broadcast by other miner nodes and attempts to save it to the local blockchain.
  • embodiments of the present application provide a transaction system, including a buyer node, a seller node, a platform side node, and a miner node in a blockchain network; the buyer node is configured to send a configuration instruction to the platform side node
  • the platform-side node makes a mortgage request for digital currency mortgage
  • the platform-side node is configured to generate a transaction serial number after the buyer and the seller have reached a commodity transaction intention, and after receiving the mortgage request, according to the transaction serial number
  • the buyer’s preset password to generate a second mortgage account, create a second mortgage transaction configured to transfer digital currency equivalent to the transaction commodity from the first platform party’s proxy account to the second mortgage account, and combine the 2.
  • the mortgage transaction is broadcast on the blockchain network, wherein the digital currency in the agent account of the first platform party is exchanged by the platform party node according to the legal currency paid by the buyer to the platform party; the seller node is configured as Obtain the transaction serial number from the platform side node, generate the second mortgage account number based on the transaction serial number and the preset password provided by the buyer after confirming the success of the commodity transaction, and create a configuration to The third redemption transaction in which the digital currency equivalent to the transaction commodity is transferred from the second mortgage account to the seller account, and the third redemption transaction is broadcast on the blockchain network; the miner node is configured as Receive and verify the legality of the second mortgage transaction from the blockchain network, and after determining that the second mortgage transaction is legal, incorporate the second mortgage transaction into the transaction to be packaged configured to generate a block Collection, and configured to receive and verify the third redemption transaction from the blockchain network, and include the third redemption transaction into the configuration generation area after determining that the third redemption transaction is legal The block's pending transaction collection.
  • the buyer node does not directly transfer the digital currency from the buyer account to the second mortgage account, but after the buyer node sends a mortgage request to the platform node,
  • the platform node transfers the digital currency from the first platform agent account to the second mortgage account.
  • the digital currency paid by the first platform agent account is exchanged by the platform node based on the legal currency paid by the buyer to the platform. In essence, it can still be regarded as an asset mortgaged by the buyer.
  • the buyer pays the fiat currency to the platform party there is no restriction. It can be paid by the buyer after the buyer and seller reach the transaction intention, or it can be paid in advance by the buyer at some point before the buyer and seller reach the transaction intention.
  • the seller can also avoid directly holding digital currency in a similar way. For example, after the seller node sends a redemption request to the platform node, the platform node transfers the digital currency from the second mortgage account to The proxy account of the second platform party, and then the platform node converts the digital currency in the proxy account of the second platform party into legal currency to pay the seller.
  • the embodiments of the present application provide a transaction system, including seller nodes, platform side nodes, and miner nodes in a blockchain network; the platform side nodes are configured to generate a transaction flow after the buyer and the seller reach a commodity transaction intention
  • the seller node is configured to obtain the transaction serial number from the platform side node, generate a third mortgage account based on the transaction serial number and the password preset by the seller, and create a third mortgage account configured to be equivalent to the transaction commodity
  • Digital currency is transferred from the seller’s account to the third mortgage transaction of the third mortgage account, and the third mortgage transaction is broadcast on the blockchain network;
  • the seller node is also configured to be after the end of the commodity transaction period Create a fourth redemption transaction configured to transfer digital currency equivalent to the transaction commodity from the third mortgage account to the seller account, and broadcast the fourth redemption transaction on the blockchain network;
  • the miner node is configured to receive and verify the legitimacy of the third mortgage transaction from the blockchain network, and include the third mortgage transaction in the configuration generation area after determining that the third mortgage transaction is legal
  • the above-mentioned transaction system is mainly different in that the mortgager is the seller instead of the buyer.
  • the platform party may charge the buyer a transaction service fee (for example, it can be included in the output of the first mortgage transaction), while in the third mortgage transaction, the platform party may charge the buyer for transaction services instead Fee (for example, it can be included in the output of the third mortgage transaction).
  • the trading system is based on buyer mortgage trading system).
  • the transaction process of the system can be as follows: first, the seller mortgages its own assets to the third mortgage account; then, the buyer pays the seller in legal currency; then, the seller sends the goods after receiving the legal currency, and the buyer receives the goods; finally, if the goods
  • the trading period has ended, and the seller can redeem the previously mortgaged assets from the third mortgage account. If there is a dispute during the transaction, the platform party can also dispose of the assets in the third mortgage account.
  • the buyer does not need to hold digital currency, only legal currency, and the seller can hold digital currency, but this does not violate the laws and regulations of the above-mentioned countries, which is beneficial to expand the applicable scenarios of the transaction system and enhance Its practicality.
  • the seller node is further configured to set a fourth transaction duration when creating the third mortgage transaction; the miner node verifies the validity of the received fourth redemption transaction When it is necessary, it is judged whether the commodity trading period has ended according to the trading benchmark time of the third mortgage transaction as the starting point of the commodity trading period and the fourth transaction duration, and when it is determined that the commodity trading period has not yet ended Then the received fourth redemption transaction is determined to be illegal, and the fourth redemption transaction determined to be illegal will not be included by the miner node into the set of transactions to be packaged configured to generate a block.
  • the transaction system further includes a buyer node, and the buyer node or the seller node is further configured to create a transaction configured to set a fifth transaction duration after obtaining information indicating adjustment of the transaction duration A third period adjustment transaction, and the third period adjustment transaction is sent to the platform side node, wherein the fifth transaction duration characterization is configured to replace the fourth transaction duration as determining the fourth redemption transaction Whether it is legal;
  • the platform side node is also configured to broadcast the third term adjustment transaction on the blockchain network;
  • the miner node is also configured to receive and verify the transaction from the blockchain network
  • the legality of the third-term adjustment transaction is determined, and after the third-term adjustment transaction is determined to be legal, the third-term adjustment transaction is included in the set of transactions to be packaged configured to generate a block; the miner node is verifying and receiving When the legality of the transaction is adjusted for the third period, it is judged whether the commodity transaction period has ended according to the transaction benchmark time of the third mortgage transaction and the fourth transaction duration, and when the commodity transaction period is determined
  • the buyer node or the seller node is further configured to send an arbitration request to the platform-side node after obtaining information indicating an application for arbitration; the platform-side node is also configured to After receiving the arbitration request, create an arbitration transaction, and when the arbitration transaction is a fourth time limit adjustment transaction configured to set a sixth transaction duration, the fourth time limit adjustment transaction is placed on the blockchain Broadcast on the network, where the sixth transaction duration characterization is configured to replace the previous transaction duration as a basis for determining whether the fourth redemption transaction is legal.
  • the last transaction duration is the fourth transaction duration, otherwise the last transaction duration is the transaction duration set by the most recently created period adjustment transaction; the miner node is also configured to receive from the blockchain network And verify the legality of the fourth term adjustment transaction, and after determining that the fourth term adjustment transaction is legal, incorporate the fourth term adjustment transaction into the set of transactions to be packaged configured to generate blocks; the miner node When verifying the legitimacy of the received fourth-term adjustment transaction, determine whether the commodity transaction period has expired according to the transaction benchmark of the third mortgage transaction and the last transaction duration, and determine whether the commodity transaction period has expired. After the commodity trading period has expired, the received fourth-term adjustment transaction is determined to be illegal, and the fourth-term adjustment transaction that is determined to be illegal will not be included by the miner node into the pending package configured to generate a block Transaction collection.
  • the platform-side node is further configured to broadcast the second distribution transaction on the blockchain network when the arbitration transaction is a second distribution transaction, wherein:
  • the second allocation transaction is configured to allocate digital currency equivalent to the transaction commodity from the third mortgage account to the seller account and/or platform side account, and the digital currency allocated to the platform side account is configured to Compensation for part or all of the legal currency paid by the buyer to the seller during the commodity transaction;
  • the miner node is also configured to receive and verify the legality of the second distribution transaction from the blockchain network, and After determining that the second distribution transaction is legal, the second distribution transaction is included in the set of transactions to be packaged configured to generate a block; when the miner node verifies the legality of the received second distribution transaction, according to Determine whether the commodity trading period has expired at the time of the transaction benchmark of the third mortgage transaction and the last trading duration, and determine that the received second distribution transaction is after it is determined that the commodity trading period has expired Illegal, the second distribution transaction determined to be illegal will not be included in the set of transactions to be packaged configured
  • the transaction commodity includes digital assets and/or authorization to use digital assets.
  • the digital asset can be digital music, software, e-book, electronic game or game props, etc.
  • the object sold by the seller can be the digital asset itself, or the authorization to use the digital asset, for example, a certain electronic game
  • the free version of (Digital Assets) can be downloaded at will, but this version can only try one game scene, and it needs to be decrypted with a decryption password (in practice, it may be called password, activation code or serial number) before you can continue to play the remaining
  • a decryption password in practice, it may be called password, activation code or serial number
  • the decryption code belongs to the use authorization of the electronic game.
  • Digital assets and/or authorization for the use of digital assets is a relatively special kind of commodity.
  • the cost of copying such commodities is almost zero. It is reasonable for the seller to mortgage a certain digital currency before selling (equivalent to a kind of Constraints), so the seller’s mortgage scheme can be applied; and for some physical goods, the seller may have spent a lot of money to purchase the goods. It may be difficult for the seller to mortgage a large amount of digital currency before selling, and it does not conform to the general merchant’s understanding of commodity transactions ( If you haven't sold something, you have to repost the money). At this time, it is more suitable for the buyer's mortgage plan.
  • the authorization to use the digital asset includes a decryption password and/or a copyright control file provided by the seller.
  • an embodiment of the present application provides a transaction method applied to a buyer node in a transaction system.
  • the method includes: obtaining a transaction serial number of a commodity transaction from a platform side node of the transaction system; Generate a first mortgage account number and a password preset by the buyer, and create a first mortgage transaction configured to transfer digital currency equivalent to the transaction commodity from the buyer account to the first mortgage account; transfer the first mortgage transaction Broadcast on the blockchain network where the transaction system is deployed.
  • the method further includes: setting a first transaction duration when creating the first mortgage transaction, the first transaction duration being configured by the miner node in the transaction system to determine Whether the commodity trading period starting from the transaction benchmark of the first mortgage transaction has ended; wherein, the transaction benchmark of a transaction on the blockchain is that the transaction is included in the pending block configured to generate When the most recent block transaction benchmark when packaging the transaction set, the most recent block transaction benchmark is the block transaction benchmark of the block when the most recent block transaction benchmark has been determined on the blockchain, the block The block transaction reference time of a block on the chain is a moment calculated according to the generation time of the block, and the moment is positively correlated with the height of the block in the blockchain.
  • the method further includes: after obtaining the information indicating the adjustment transaction duration, creating a first term adjustment transaction configured to set a second transaction duration, the second transaction duration characterizing configuration being Replace the first transaction duration as a basis for determining whether the commodity transaction period has expired; send the first term adjustment transaction to the platform side node, and the platform side node will send the first term adjustment transaction Broadcast on the blockchain network.
  • the method further includes: after the expiry of the commodity trading period, creating a second mortgage configured to transfer digital currency equivalent to the trading commodity from the first mortgage account to the buyer account Second redemption transaction: broadcasting the second redemption transaction on the blockchain network.
  • an embodiment of the present application provides a transaction method applied to a seller node in a transaction system.
  • the method includes: obtaining a transaction serial number of a commodity transaction from a platform side node of the transaction system;
  • the account number and the preset password provided by the buyer after confirming the successful commodity transaction generate a first mortgage account, and create a first redemption configured to transfer digital currency equivalent to the transaction commodity from the first mortgage account to the seller account Transaction; broadcast the first redemption transaction on the blockchain network where the transaction system is deployed.
  • the method further includes: after obtaining information indicating the adjustment transaction duration, creating a first term adjustment transaction configured to set a second transaction duration, the second transaction duration characterizing configuration being Replace the first transaction duration as a basis for determining whether the commodity transaction period has expired, wherein the first transaction duration is set by the buyer node in the transaction system when creating the first mortgage transaction;
  • the first time limit adjustment transaction is sent to the platform side node, and the platform side node broadcasts the first time limit adjustment transaction on the blockchain network.
  • an embodiment of the application provides a transaction method applied to a platform side node in a transaction system, the method comprising: receiving an arbitration request for a commodity transaction from a buyer node or seller node in the transaction system;
  • the arbitration request creates an arbitration transaction, the arbitration transaction is a second term adjustment transaction configured to set a third transaction duration, or the arbitration transaction is configured to transfer a digital currency equivalent to the transaction commodity from the first
  • a first allocation transaction in which a mortgage account is allocated to at least one of a buyer account, a seller account, and a platform party account, wherein the third transaction duration characterization is configured to replace the previous transaction duration as a determination of whether the commodity transaction period has ended
  • the last transaction duration is the first transaction duration, otherwise the last transaction duration is the transaction duration set by the most recently created deadline adjustment transaction; Broadcast the arbitration transaction on the blockchain network where the transaction system is deployed.
  • an embodiment of the present application provides a transaction method, which is applied to a miner node in a transaction system, and the method includes: receiving and verifying the legality of the first mortgage transaction from the blockchain network where the transaction system is deployed And after determining that the first mortgage transaction is legal, the first mortgage transaction is included in the set of transactions to be packaged configured to generate a block; the first redemption transaction is received and verified from the blockchain network Legality, and after determining that the first redemption transaction is legal, the first redemption transaction is included in the set of transactions to be packaged configured to generate a block.
  • the verifying the legitimacy of the first redemption transaction includes: judging the first transaction duration according to the transaction benchmark of the first mortgage transaction that is the starting point of the commodity transaction period Whether the commodity trading period has ended, and after determining that the commodity trading period has ended, the received first redemption transaction is determined to be illegal, and the first redemption transaction determined to be illegal will not be
  • the miner node is included in the set of transactions to be packaged configured to generate a block; wherein, the first transaction duration is set by the buyer node in the transaction system when the first mortgage transaction is created, and on the blockchain
  • the transaction benchmark of a transaction is when the transaction is included in the latest block transaction benchmark when the set of transactions to be packaged is configured to generate a block, and the most recent block transaction benchmark is the most recent block on the blockchain.
  • the block transaction benchmark of a block when the block transaction benchmark is determined, the block transaction benchmark of a block on the blockchain is a moment calculated based on the generation time of the block, and The time is positively correlated with the height of the block in the blockchain.
  • the method further includes: receiving blocks generated by other miner nodes other than itself from the blockchain network; if the received block includes the first mortgage transaction , Verify the legitimacy of the included first mortgage transaction, and after determining that the first mortgage transaction is illegal, refuse to save the received block in the local blockchain; if the received block is If the first redemption transaction is included in the first redemption transaction, verify the legality of the included first redemption transaction, and after determining that the first redemption transaction is illegal, refuse to save the received block to the local area Block chain.
  • an embodiment of the present application provides a transaction method applied to a platform side node in a transaction system.
  • the method includes: generating a transaction serial number after a buyer and a seller have reached a commodity transaction intention;
  • the node receives a mortgage request instructing to perform a digital currency mortgage; generates a second mortgage account according to the transaction serial number and the password preset by the buyer, and creates a configuration to transfer digital currency equivalent to the transaction commodity from the first platform party's agent account to The second mortgage transaction of the second mortgage account, wherein the digital currency in the agent account of the first platform party is exchanged by the platform party node according to the legal currency paid by the buyer to the platform party; and the second mortgage transaction Broadcast on the blockchain network where the transaction system is deployed.
  • an embodiment of the present application provides a transaction method applied to a seller node in a transaction system.
  • the method includes: obtaining a transaction serial number of a commodity transaction from a platform side node of the transaction system; Generate a third mortgage account number and a password preset by the seller, and create a third mortgage transaction configured to transfer digital currency equivalent to the transaction commodity from the seller's account to the third mortgage account;
  • the fourth redemption transaction of the account, and the fourth redemption transaction is broadcast on the blockchain network.
  • an embodiment of the present application provides a buyer node that is deployed in a blockchain network.
  • the buyer node includes a memory and a processor.
  • the memory stores computer program instructions, and the computer program instructions are When the processor reads and runs, it executes the steps of the method provided by the fourth aspect or any one of the possible implementation manners of the fourth aspect.
  • the buyer node can be, but is not limited to, the SPV (Simplified Payment Verification) node in the blockchain network, or entrust other nodes in the blockchain to implement the same function (such as transaction initiation or signature confirmation, etc.) ) Browser client, etc.
  • SPV Simple Payment Verification
  • an embodiment of the present application provides a seller node that is deployed in a blockchain network.
  • the seller node includes a memory and a processor.
  • the memory stores computer program instructions, and the computer program instructions are When the processor reads and runs, it executes the steps of the method provided in the fifth aspect, the ninth aspect, or any one of the possible implementation manners of the two aspects.
  • the seller node can be, but is not limited to, an SPV node in the blockchain network, or a browser client that entrusts other nodes in the blockchain to implement the same function (such as transaction initiation or signature confirmation, etc.), etc. .
  • an embodiment of the present application provides a platform-side node, which is deployed in a blockchain network
  • the platform-side node includes a memory and a processor
  • computer program instructions are stored in the memory
  • the computer program instructions When read and run by the processor, the steps of the method provided by the sixth aspect, the eighth aspect, or any one of the possible implementation manners of the two aspects are executed.
  • the platform side node can be, but is not limited to, the SPV node in the blockchain, or a browser client that entrusts other nodes in the blockchain to implement the same function (such as transaction initiation or signature confirmation), and so on.
  • an embodiment of the present application provides a miner node deployed in a blockchain network.
  • the miner node includes a memory and a processor.
  • the memory stores computer program instructions, and the computer program instructions are When the processor reads and runs, it executes the steps of the method provided by the seventh aspect or any one of the possible implementation manners of the seventh aspect.
  • FIG. 1 shows a functional module diagram of a node provided by an embodiment of the present application
  • Figure 2 shows a structural diagram of a transaction system provided by an embodiment of the present application
  • FIG. 3 shows a flowchart of a transaction related to a buyer's mortgage provided by an embodiment of the application
  • Figure 4 shows a transaction flow chart based on buyer mortgage provided by an embodiment of the present application
  • FIG. 5 shows a schematic diagram of the stage division of the commodity transaction period provided by an embodiment of the present application
  • FIG. 6 shows an interaction diagram of a transaction related to a mortgage of a seller provided by an embodiment of the present application
  • Fig. 7 shows a transaction flow chart based on seller mortgage provided by an embodiment of the present application.
  • the terms “include”, “include” or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article, or device that includes a series of elements includes not only those elements, but also includes Other elements of, or also include elements inherent to this process, method, article or equipment. If there are no more restrictions, the element defined by the sentence “including a" does not exclude the existence of other same elements in the process, method, article, or equipment including the element.
  • the intermediary In traditional e-commerce activities, as buyers and sellers cannot fully trust each other, the intermediary is often used to ensure that the two parties realize the transaction. For example, if a third-party e-commerce platform acts as an intermediary, the buyer pays the e-commerce platform first, and the seller sees that the buyer has paid, so he is assured to ship the goods to the buyer, and the buyer confirms that the goods are correct after receiving the goods, and instructs the e-commerce company The platform transfers the payment to the seller. Among them, the e-commerce platform should have strong credit characteristics so that both buyers and sellers can give them full trust. This places higher requirements on the qualifications of the operating entity of the e-commerce platform. In this respect, large enterprises are compared with SMEs or individuals. With natural advantages, it is prone to a monopoly in the field of e-commerce, which is not conducive to the development of commodity economy.
  • the inventor has discovered through long-term research that the essence of the above-mentioned e-commerce transaction with intermediary guarantee is: the buyer first mortgages his own assets to a third-party e-commerce platform with strong credit characteristics to improve his own credit so that the transaction can be concluded.
  • the buyer receives the goods successfully, the seller redeems the mortgaged assets of the other party from the e-commerce platform. So far, a transaction has been successfully completed. If the transaction is abnormal and the buyer wants to cancel the transaction (for example, did not receive the goods), the buyer can also redeem it by himself
  • the mortgaged assets can avoid economic losses.
  • the above transaction process includes both the mortgage of assets and the redemption of assets, so it can be called a commodity transaction based on the redemption method.
  • the transaction system, method, and nodes in the transaction system provided by the embodiments of the application express commodity transactions based on the redemption method by means of transfer transactions on the blockchain, and use the transparent accounting, non-tampering, and decentralization of the blockchain Features such as transformation and automatic processing to improve the above-mentioned problems existing in the prior art.
  • the embodiment of the present application provides a node 100, which is deployed in a blockchain network, and its functional module diagram is shown in FIG. 1.
  • the node 100 includes a processor 110, a memory 120, and a network interface 130. These components are interconnected and communicate with each other through a communication bus 140 and/or other forms of connection mechanisms (not shown).
  • the memory 120 includes one or more (only one is shown in the figure), which can be, but is not limited to, random access memory (Random Access Memory, RAM for short) and Read Only Memory (ROM for short) , Programmable Read-Only Memory (PROM), Erasable Programmable Read-Only Memory (EPROM), Electric Erasable Programmable Read-Only Memory , EEPROM for short) and so on.
  • the processor 110 and other possible components can access the memory 120, read and/or write data therein.
  • the processor 110 includes one or more (only one is shown in the figure), which may be an integrated circuit chip with signal processing capability.
  • the above-mentioned processor 110 may be a general-purpose processor, including a central processing unit (Central Processing Unit, CPU for short), a micro controller unit (Micro Controller Unit, MCU for short), a network processor (Network Processor, NP for short), or other conventional processing It can also be a dedicated processor, including Digital Signal Processor (DSP), Application Specific Integrated Circuits (ASIC), Field Programmable Gate Array (FPGA) Or other programmable logic devices, discrete gates or transistor logic devices and discrete hardware components.
  • DSP Digital Signal Processor
  • ASIC Application Specific Integrated Circuits
  • FPGA Field Programmable Gate Array
  • the network interface 130 includes one or more (only one is shown in the figure), which is configured to communicate with other nodes in the blockchain network except the node 100.
  • the network interface 130 can be an Ethernet interface or a mobile communication network
  • the interface for example, the interface of a 3G, 4G, or 5G network, may also be another interface with the function of sending and receiving network data.
  • One or more computer program instructions can be stored in the memory 120, and the processor 110 can read and run these computer program instructions to implement the steps of the transaction method provided in the embodiments of the present application and other desired functions.
  • the structure shown in FIG. 1 is only for illustration, and the node may also include more or fewer components than that shown in FIG. 1, or have a different configuration from that shown in FIG. 1.
  • the components shown in FIG. 1 can be implemented by hardware, software, or a combination thereof.
  • the node 100 may be, but is not limited to, physical devices such as desktop computers, laptop computers, smart phones, smart wearable devices, or vehicle-mounted devices, and may also be virtual devices such as virtual machines.
  • the node 100 is not necessarily a single device, but may also be a combination of multiple devices, such as a server cluster, and so on.
  • FIG. 2 shows a schematic structural diagram of a transaction system 200 provided by an embodiment of the present application.
  • the transaction system 200 includes a buyer node 210, a seller node 220, a platform side node 230, and a miner node 240 in the blockchain network 250.
  • the blockchain network 250 refers to a network deployed with a blockchain, and the number of various nodes can be one or more (only one is shown in the figure), and these nodes can be implemented as the nodes in Figure 1 100.
  • the hardware and software configurations can be different.
  • the buyer node 210 can be a mobile terminal with low performance (such as processing and storage capabilities), and the miner node 240 can be a mobile terminal. Servers with higher performance requirements, etc.
  • Figure 2 also shows the corresponding identities of various nodes in the transaction process (connected by dotted arrows with nodes), specifically: buyer node 210 corresponds to the buyer, for example, the buyer can use the buyer node 210 to purchase goods; the seller node 220 corresponds to the seller, for example, the buyer can use the seller node 220 to sell goods; the platform side node 230 corresponds to the platform side, for example, the platform side can use the platform side node 230 to provide commodity transaction intermediary services and assist buyers and sellers to complete the commodity transaction; miner node 240 Corresponding to miners, for example, miners can use miner nodes 240 to mine to record transactions.
  • buyer node 210 corresponds to the buyer, for example, the buyer can use the buyer node 210 to purchase goods
  • the seller node 220 corresponds to the seller, for example, the buyer can use the seller node 220 to sell goods
  • the platform side node 230 corresponds to the platform side, for example, the platform side can use the platform side node
  • the above-mentioned different nodes are not necessarily implemented as independent devices.
  • the platform side node 230 also performs mining by itself, it can also be the miner node 240 at the same time.
  • the blockchain network 250 may also contain nodes other than the above four types. That is, the nodes in the blockchain network 250 are not necessarily all nodes in the transaction system 200, and the transaction system 200 also It can contain nodes other than the above four types.
  • FIG. 3 shows a flowchart of a transaction related to a mortgage of a buyer provided in an embodiment of the present application.
  • the buyer mortgage refers to the way in which the buyer mortgages its own assets as a transaction guarantee during the commodity transaction.
  • the buyer mortgage refers to the way in which the buyer mortgages its own assets as a transaction guarantee during the commodity transaction.
  • the transaction methods of seller mortgage there are also the transaction methods of seller mortgage. The specific meaning of buyer mortgage or seller mortgage will be further elaborated later.
  • Figure 3 shows the first mortgage transaction, the first redemption transaction, the first maturity adjustment transaction, the second maturity adjustment transaction, the first distribution transaction and the second redemption transaction in the buyer node and seller node.
  • the above nodes can be in the same blockchain network, as shown in Figure 2.
  • Figure 4 shows a transaction flow chart based on buyer mortgage provided by an embodiment of the present application.
  • the steps in FIG. 4 can be understood in conjunction with FIG. 3, for example, the specific execution method of the "first mortgage transaction process" in step S202 is shown in FIG.
  • the transaction process includes:
  • Step S200 The buyer converts the legal currency into digital currency.
  • commodity transactions are carried out based on digital currencies issued on the blockchain: for example, stable currencies such as USDT can be used, and stable currencies can be bound with legal currencies at a relatively fixed exchange ratio, so that the value of the commodity is not As for the large fluctuations during the transaction, the stable currency can be issued by the state or the company; for example, it can be a certain digital currency issued by the platform and used as a guarantee with its own credit.
  • the digital currency is mainly used for bookkeeping rather than settlement and Have offline exchange channels (ie settlement).
  • the buyer manages the buyer's account on the blockchain.
  • step S200 Before a certain transaction, in order to ensure that the buyer's account has enough digital currency for the transaction, the buyer can exchange the required amount of digital currency with fiat currency and deposit it into the buyer's account. Of course, if there is enough digital currency in the balance of the buyer's account before a certain transaction is performed, step S200 may not be necessary.
  • the buyer can exchange digital currency with the help of the platform party; in other implementations, the buyer can also exchange digital currency by themselves.
  • the buyer can transfer the legal currency to the platform party through the buyer node (the buyer's transfer behavior can be performed on the buyer node), and the platform party will transfer the corresponding funds from the platform party account managed by it after receiving the transfer The amount of digital currency is given to the buyer's account (the platform's transfer behavior can be performed on the platform's node).
  • Step S201 The buyer and seller reach a transaction intention.
  • the so-called transaction intention can refer to the state where the buyer and the seller have made a transaction agreement but the transaction has not actually proceeded (for example, the buyer has already managed the transaction on the platform "Purchase" is confirmed on the website, but there is no payment status).
  • the commodity transaction in this application has a wide coverage: for example, it can be the seller’s display of the product on the e-commerce platform, and the buyer independently purchases the product; it can be the buyer’s purchase request (such as the highest purchase price ), the seller puts forward sales requirements (such as the lowest selling price), and the e-commerce platform matches the transaction form; it can also be the buyer’s demand for the goods to be purchased on the e-commerce platform (such as the type, appearance, quality of the goods) And price description), the seller independently selects the appropriate goods for supply.
  • the platform node After the buyer and seller reach the transaction intention, the platform node generates a serial number (for example, a character string) identifying the transaction for the commodity transaction, and the transaction serial number will be used in subsequent steps.
  • a serial number for example, a character string
  • Step S202 Execute the first mortgage transaction process.
  • Step S202 includes steps S110 to S114, which are specifically as follows:
  • Step S110 The buyer node obtains the transaction serial number from the platform side node.
  • the buyer may actively request the transaction serial number from the platform node, or the platform node may push the transaction serial number to the buyer node after generating the transaction serial number.
  • Step S111 The buyer node generates a first mortgage account.
  • the first mortgage account number is a temporary account number used in this commodity transaction, and the account number is calculated from the transaction serial number obtained in step S110 and the password preset by the buyer.
  • the password preset by the buyer can be stored in the buyer node in advance, or the buyer can be reminded to enter the password when step S111 is performed. If the buyer conducts multiple commodity transactions, the password used each time can be the same or different.
  • the buyer node can generate the private key of the first mortgage account by using a hash algorithm according to the transaction serial number, the preset password, and the platform feature character information.
  • the platform feature word (for example, it can be a character string) is configured to identify the platform party, and different e-commerce platforms can specify their own platform feature words.
  • the buyer node can obtain the platform feature word from the platform side node when performing step S111, or save it locally after obtaining it at a certain time before. In subsequent commodity transactions, if the platform side’s platform feature word does not change, The buyer node can directly read the platform feature word locally when it needs to calculate the private key.
  • the buyer node can first merge the above three pieces of information (for example, it can be spliced into a string), and then use the hash algorithm to calculate a hash value with the merged information as input, and use the hash value as the first
  • the private key of the mortgage account For example, using the combined information as the input of the SHA256 algorithm, a 32-byte (256-bit) output, that is, a 32-byte private key, can be obtained.
  • the specific hash algorithm used is not limited, for example, it may also be the SHA512 algorithm, and so on.
  • the public key of the account can be derived using an elliptic curve algorithm (such as the ECC algorithm under the Secp256k1 standard). After the public key is determined, the first mortgage account can be calculated based on the public key.
  • An existing hash algorithm that outputs 32 bytes of data and RIPEMD160 is also an existing hash algorithm that outputs 20 bytes of data.
  • the public key hash can represent the account, but in order to enhance readability, the public key hash can be encoded with Base58 and converted into a string composed of numbers and letters, which is generally visible to users. Account).
  • Base58 When the public key is used to calculate the first mortgage account in this application, a similar approach can be adopted.
  • the buyer node After the buyer node generates the private key of the first mortgage account, the buyer node has actually obtained control of the first mortgage account (because the corresponding derivatives, such as public key, public key hash, or Base58 format account address All can be derived from the private key), so from the perspective of the buyer node, generating the private key is to create the first mortgage account, and other derivatives can be regarded as different manifestations of the first mortgage account under different uses.
  • the corresponding derivatives such as public key, public key hash, or Base58 format account address All can be derived from the private key
  • the platform feature word and the private key generation algorithm can be public, and the transaction serial number is also public to the parties related to the transaction (such as the platform party and the seller), so if the parties related to the transaction can
  • the buyer can derive the private key of the first mortgage account by obtaining the password preset by the buyer, thereby gaining control over the first mortgage account.
  • the derived private key can be used to authorize transactions related to the first mortgage account (authorization is Use the private key to sign the transaction) to redeem the digital currency in the first mortgage account. It needs to be pointed out that although the node that obtains the password can redeem the digital currency in the first mortgage account, it does not mean that the password must be possessed to control the digital currency in the first mortgage account.
  • the digital currency in the first mortgage account is not obtained.
  • the control of currency is subject to certain restrictions (for example, it can be restricted by a lock script, which will be explained later).
  • the platform node does not know the password, it can create the first distribution transaction and allocate the number in the first mortgage account. currency.
  • Step S112 The buyer node creates a first mortgage transaction.
  • the first mortgage transaction is configured to transfer the digital currency equivalent to the transaction commodity from the buyer account to the first mortgage account generated in step S111.
  • the above-mentioned digital currency equivalent to the transaction commodity is the transaction payment.
  • the specific form of the first mortgage transaction is not limited. The following text will give a specific way to realize the first mortgage transaction when the digital currency on the blockchain adopts the UTXO model. Of course, if the digital currency on the blockchain adopts the account/balance model, the first mortgage transaction can also be implemented in different ways.
  • Step S113 The buyer node broadcasts the first mortgage transaction on the blockchain network.
  • Step S114 The miner node verifies the legality of the first mortgage transaction.
  • the miner node After receiving the broadcasted first mortgage transaction, the miner node will verify the legality of the transaction. If the verification is legal, the first mortgage transaction will be included in the set of transactions to be packaged configured to generate a block.
  • the blockchain does not necessarily have only the several transaction types shown in Figure 3, and there may also be other types of transactions (for example, transactions not used in the commodity transaction process in this application), so the above These transactions may also be included in the set of transactions to be packaged.
  • the miner node will generate a new block based on the transaction set to be packaged and participate in the competition for bookkeeping rights , And write the new block into the local block chain after obtaining the right to book, so that the first mortgage transaction can be chained.
  • step S114 If the verification in step S114 is illegal, the miner node will not include the first mortgage transaction into the set of transactions to be packaged configured to generate a block.
  • Step S203 The seller delivers the goods and the buyer receives the goods.
  • the seller can learn about this situation and complete the shipment. For example, after the buyer node creates the first mortgage transaction, it can notify the platform node that the buyer has paid, and the platform node can push a notification to the seller node to inform the seller that it can deliver the goods.
  • the platform node can also wait for a period of time, for example, after inquiring that the first mortgage transaction has indeed been confirmed on the blockchain (for example, similar to the principle of confirming the transaction in 6 blocks in Bitcoin) before reporting to the seller Node push notifications.
  • the specific delivery and receipt process is similar to the existing e-commerce transactions, and will not be explained in detail.
  • Step S204 The buyer informs the seller of the preset password.
  • step S111 If the buyer successfully receives the goods, he can inform the seller of the preset password used in step S111. According to the content described in step S111, if the seller obtains the password, the seller can obtain the control right of the first mortgage account, and the password will be The seller node is used in step S205.
  • the method of informing the seller of the password can be through the platform.
  • the buyer node first sends the password to the platform node, and the buyer node notifies the platform node that the buyer has successfully received the goods, and the platform node pushes the password to the seller node.
  • the platform party in order to avoid the platform party from doing evil from it (for example, the platform party can control the assets pledged by the buyer in the first mortgage account after knowing the password, or the platform party will inform the seller of the password before the buyer confirms the receipt , So that the seller can control the first mortgage account in advance), and the buyer can also inform the seller of the password without using the platform, for example, by email, instant chat, phone, etc.
  • Step S205 Execute the first redemption transaction process.
  • Step S205 includes steps S120 to S124, which are specifically as follows:
  • Step S120 The seller node receives the transaction serial number from the platform side node.
  • Step S120 is similar to step S110 and will not be described in detail. It should be pointed out that step S120 can also be executed after the platform side node generates the transaction serial number and at a certain time before step S205.
  • Step S121 The seller node generates a first mortgage account.
  • the seller node can calculate the first mortgage account number by using the preset password obtained in step S204 and the transaction serial number obtained in step S120.
  • the calculation process is the same as that of step S111, and the description will not be repeated.
  • the buyer can also directly provide the calculated private key of the first mortgage account to the seller, and the seller node can directly use the private key to calculate the first mortgage account.
  • the private key is usually longer and is prone to errors during transmission and copying. For example, a 32-byte private key is already relatively long. If it is encoded with Base58 for ease of writing, the length of the generated string can even exceed 44 characters. Translating the string is prone to errors, so the transaction shown in Figure 4 In the process, a password is used instead of the private key.
  • the private key is generated first and then the first mortgage account is generated.
  • the password is short or simple, it is easy to be cracked by brute force.
  • the digital currency was illegally transferred. Therefore, some preventive measures can be taken in the specific implementation. The following are only two examples:
  • a password with a certain length (such as 12 characters) or a certain degree of complexity (such as a mixture of upper and lower case letters, numbers, and punctuation).
  • the TEE can be configured on the buyer node and the seller node, and the private key generation process of the first mortgage account described earlier can be in the TEE carried out.
  • a special secure hardware environment such as a Trusted Execution Environment (TEE)
  • the TEE can be configured on the buyer node and the seller node, and the private key generation process of the first mortgage account described earlier can be in the TEE carried out.
  • the platform feature words can be stored inside the TEE and will no longer be disclosed to the outside of the TEE.
  • the TEE of the same paragraph can be guaranteed Use the same platform feature word for the same e-commerce platform. At this time, even if the buyer's preset password is short, the efficiency of the cracking will be lower due to the limitation of the computing power of the TEE itself, and the password cracking ability will be stronger.
  • Step S122 The seller node creates the first redemption transaction.
  • the first redemption transaction is configured to transfer the digital currency equivalent to the transaction commodity from the first mortgage account generated in step S121 to the seller account.
  • the seller account is an account on the blockchain managed by the buyer.
  • the specific form of the first redemption transaction is not limited. The following text will give a specific way to realize the first redemption transaction when the digital currency on the blockchain adopts the UTXO model.
  • Step S123 The buyer node broadcasts the first redemption transaction on the blockchain network.
  • Step S124 The miner node verifies the legality of the first redemption transaction.
  • the miner node After receiving the broadcasted first redemption transaction, the miner node will verify the legality of the transaction. If the verification is legal, the first redemption transaction will be included in the set of transactions to be packaged configured to generate a block.
  • the miner node will generate a new block based on the set of transactions to be packaged and participate in the competition for bookkeeping rights. After obtaining the bookkeeping rights, the new block will be written to the local blockchain to make the first redemption Back to the transaction chain.
  • step S124 If the verification in step S124 is illegal, the miner node will not include the first redemption transaction into the set of transactions to be packaged configured to generate blocks.
  • Step S206 The seller converts the digital currency into legal currency.
  • step S206 is optional. If the seller does not need to exchange legal currency, step S206 may not be executed.
  • the flow of commodity transactions based on the redemption method is expressed by means of the first mortgage transaction and the first redemption transaction on the blockchain. If both the first mortgage transaction and the first redemption transaction are finally confirmed by the blockchain, the commodity transaction is completed.
  • the blockchain has the characteristics of transparent accounting and non-tampering (transactions on the blockchain are open and transparent and difficult to tamper with), it can provide guarantees for commodity transactions, instead of traditional e-commerce platform transaction guarantees Function, the platform side node operated by the e-commerce platform in the transaction system only needs to assist the smooth progress of the transaction (for example, generate a transaction serial number), and does not need to provide credit guarantees for commodity transactions. Therefore, the qualification requirements for the operating entities of the e-commerce platform have been reduced, allowing more companies or individuals to participate in e-commerce, avoiding monopoly and promoting competition, which is conducive to the prosperity and development of the commodity economy.
  • the blockchain also has the characteristics of automatic transaction processing, it is conducive to reducing manual services in the transaction process.
  • the degree of automation of commodity transactions is higher and the transaction is easier to achieve, and the operating cost of the e-commerce platform is also reduced.
  • the specific form of the above blockchain is not limited.
  • it can be a public chain, a consortium chain, or a private chain, etc., which can be selected according to specific needs. For example, if you want to attract more users to participate in commodity transactions, you can choose the implementation of the public chain. If you want to speed up the transaction, you can choose the consortium chain or private chain implementation.
  • the issue of transaction period is not mentioned, which means that according to the above implementation method, the seller can redeem the payment in the first mortgage account at any time after obtaining the password.
  • a commodity transaction period is set for commodity transactions, and the operation of restricting the seller to redeem the payment should be made during the commodity transaction period, otherwise it will be invalid, so as to avoid the seller's delay in completing the transaction and cause related resource waste (for example, The platform node may maintain certain status for uncompleted commodity transactions) to enhance the security and practicability of the transaction system.
  • the specific measures can be as follows:
  • the buyer node sets the first transaction duration when creating the first mortgage transaction.
  • the first transaction duration may be used as a part of the content of the first mortgage transaction.
  • the first transaction duration represents the length of the commodity transaction period. After the first transaction duration is set, the commodity transaction period starts from the transaction benchmark time of the first mortgage transaction and ends after the first transaction duration.
  • the transaction benchmark of a transaction on the blockchain can be defined as when the transaction is included in the latest block transaction benchmark when the transaction set to be packaged is configured to generate a block
  • the most recent block transaction benchmark can be defined as
  • the block transaction benchmark of the block when the block transaction benchmark has been determined recently on the blockchain the block transaction benchmark of a block on the blockchain can be defined as calculated based on the generation time of the block A moment, and the moment is positively correlated with the height of the block in the blockchain.
  • the block transaction benchmark has a one-to-one correspondence with the block
  • the block transaction benchmark has the characteristic of unidirectional growth, that is, of the two adjacent blocks, the latter block
  • the block transaction reference time of the block with the larger height in the blockchain is always later than the block transaction reference time of the previous block (the block with the smaller height in the blockchain).
  • the unidirectional growth characteristic of the block transaction benchmark makes the judgment about the commodity transaction period certain, so that the transfer authority of the transaction will not fluctuate between different blocks (especially adjacent blocks).
  • the block header records the block generation time (for example, in the blockchain used by Bitcoin, the timestamp field is used to record), this time is only the local time of each miner node. It is not necessarily synchronized, so related protocols are not strict when verifying the generation time of a block.
  • the Bitcoin protocol requires miner nodes to receive new blocks mined by other miner nodes. When the time is 2 hours in the future of the local time, or before the average generation time of the last 11 blocks, the miner node will not accept the new block received, which is not a very strict requirement. Therefore, it is not appropriate to directly use the block generation time as the block transaction benchmark.
  • the following calculation methods can be used:
  • the block transaction benchmark of a certain block is defined as the average of the generation time of M blocks with the block as the central block on the block chain, where M is a positive odd number greater than or equal to 3.
  • M is a positive odd number greater than or equal to 3.
  • the block transaction benchmark of 2+1 blocks that is, whether the block transaction benchmark always meets the characteristics of unidirectional growth
  • the block transaction benchmark of 1 block plus the preset duration is determined as the block transaction benchmark of the (M-1)/2th block before the new block, it is based on the determined block transaction benchmark
  • the specific value of the preset duration is not limited.
  • the minimum unit is seconds
  • the preset duration can be one second, so that even if the block generation time is only fine-tuned, Will not have any negative impact.
  • miner node may temporarily fork the blockchain during the accounting process, according to the above calculation method, no matter which branch is finally approved, it will not affect the block transaction benchmark of each block The characteristic of unidirectional growth.
  • the miner node when verifying the legitimacy of the first redemption transaction, can determine whether the commodity transaction period has expired according to the transaction benchmark of the first mortgage transaction and the first transaction duration. For example, it can be judged whether the latest block transaction benchmark (representing the current time) is still in the commodity trading period (when the miner node verifies the validity of the first redemption transaction). If it is not in the commodity trading period, it indicates that the commodity The trading period has ended, otherwise the commodity trading period has not yet ended. Of course, the definition of other judgment criteria is not ruled out.
  • the miner node determines that the commodity transaction period has expired, the received first redemption transaction can be determined to be illegal, and the first redemption transaction determined to be illegal will not be included by the miner node into the package to be configured to generate a block Transaction collection. It should be pointed out that if the miner node determines that the commodity trading period has not expired, it may not be able to determine that the first redemption transaction is legal, because other verifications may be performed for the first redemption transaction (refer to the following content), so here only Explains the illegal situation.
  • the above behavior of the miner node restricts the seller’s opportunity to create the first redemption transaction, that is, the seller should create the first redemption transaction before the end of the commodity trading period to transfer the payment from the first mortgage account, otherwise once the commodity trading period ends , The seller will not be able to redeem the payment.
  • Step S207 Execute the first period adjustment transaction process.
  • Step S207 includes steps S130 to S133, which are specifically as follows:
  • Step S130 The buyer creates a first term adjustment transaction.
  • the first-term adjustment transaction is configured to adjust the commodity transaction period.
  • the second transaction duration can be set.
  • the second transaction duration characterization is configured to replace the first transaction duration set in the first mortgage transaction as the new The length of the commodity trading period.
  • the buyer can only transfer the assets mortgaged to the first mortgage account. After the translation, the asset still belongs to the first mortgage account, and the amount remains unchanged (because the first-term adjustment transaction The function does not involve the distribution of digital currency).
  • the specific form of the first-term adjustment transaction is not limited. The following text will give a specific way to realize the first-term adjustment transaction when the digital currency on the blockchain adopts the UTXO model.
  • both the buyer and seller have the right to instruct their respective nodes to create the first period adjustment transaction. For example, if the seller is unable to deliver the goods on time for some reason, in order to avoid the expiration of the commodity transaction period and make it impossible to redeem the payment, the seller can create the first period adjustment transaction through the seller node to extend the commodity transaction period (that is, set a period greater than the first transaction duration). The second transaction duration); the buyer cannot receive the goods on time for some reason.
  • the buyer can create the first period adjustment transaction through the buyer node to extend the commodity trading period; the buyer has received normally However, the commodity trading period will expire for a long time. If the seller hopes to redeem the payment earlier, the seller can create the first term adjustment transaction through the seller node to shorten the commodity trading period.
  • the creation of the first period adjustment transaction can also be for other reasons, which is not limited here. It should be pointed out that in Figure 3, for the sake of simplicity, only the case where the first period adjustment transaction is created by the buyer node is shown.
  • the first period adjustment transaction is not necessary. If the buyer and seller can complete the transaction within the normal commodity transaction period (for example, the period corresponding to the first transaction duration), the first period adjustment transaction may not be created.
  • Step S131 The buyer node sends the first period adjustment transaction to the platform side node.
  • the first deadline adjustment transaction requires the platform party's authorization (authorization is to use the private key of the platform party's account to sign the transaction), so the buyer node needs to send the first deadline adjustment transaction to the platform party node.
  • Step S132 the platform side node broadcasts the first period adjustment transaction on the blockchain network.
  • Step S133 The miner node verifies the legality of the first period adjustment transaction.
  • the miner node After the miner node receives the broadcasted first-term adjustment transaction, it will verify the legality of the transaction. If the verification is legal, the first-term adjustment transaction will be included in the set of transactions to be packaged configured to generate a block.
  • the miner node will generate a new block based on the set of transactions to be packaged, and participate in the competition for the accounting right, and write the new block to the local blockchain after obtaining the accounting right, so that the first deadline Adjust the transaction chain.
  • step S133 If the verification in step S133 is illegal, the miner node will not include the first period adjustment transaction into the set of transactions to be packaged configured to generate blocks.
  • the verification of the legality of the transaction in step S133 includes verification related to the commodity trading period, that is, judging whether the commodity trading period has expired based on the transaction benchmark of the first mortgage transaction and the first transaction duration, and checking whether the commodity trading period has expired is determined
  • the received first term adjustment transaction is determined to be illegal.
  • the miner node determines whether the current block transaction benchmark (when the miner node verifies the legality of the first period adjustment transaction) is still in the commodity trading period. If it is not in the commodity trading period, it indicates that the commodity trading period has ended. Otherwise, the commodity trading period has not yet ended. If the miner node determines that the commodity trading period has expired, the received first term adjustment transaction may be determined to be illegal. It should be pointed out that if the miner node determines that the commodity trading period has not expired, it may not necessarily be able to determine that the first-term adjustment transaction is legal, because other verifications may be performed for the first-term adjustment transaction (refer to the following content).
  • step S207 if the buyer and seller complete the transaction normally during the new commodity trading period, then continue to execute step S204 to step S206. It should be noted that when performing sub-step S124 of step S205, since the first deadline adjustment transaction has been included in the block link, the second transaction duration set therein has taken effect. At this time, the miner node is verifying whether the first redemption transaction When the restrictions on the commodity trading period are met, the second trading time shall be used instead of the first trading time.
  • the first period adjustment can be limited to only one creation in the entire commodity transaction process, so as to prevent the buyer or seller from extending the commodity trading period arbitrarily, making it difficult to end the commodity transaction.
  • it can be implemented by restricting the buyer node, seller node, platform side node or miner node.
  • the first row in Figure 5 represents the normal trading of commodities, and the normal trading period is the first trading duration.
  • the second line indicates that the first-term adjustment transaction was created during the original normal trading period, so that the normal trading period of the second line has not ended before the machine arbitration period, and the normal trading period of the second line plus the machine arbitration period
  • the length of time is the second transaction time.
  • Step S208 Execute the second period adjustment transaction process.
  • Step S208 includes steps S140 to S143, which are specifically as follows:
  • Step S140 The buyer node sends an arbitration request to the platform side node.
  • step S141 If during the commodity trading period (here, the meaning of the commodity trading period will be explained in detail in step S141), the buyer and seller cannot complete the commodity transaction on schedule, both the buyer and seller have the right to instruct their respective nodes to send arbitration requests to the platform side nodes, and apply for the platform Party arbitrates commodity transactions.
  • the first-term adjustment transaction can also be regarded as a simple arbitration (ie, machine arbitration), but its essence is to set a longer commodity trading period (here for the sake of simplicity, only commodity trading is discussed. Extension of the period), so that the buyer and seller have more time to complete the collection and delivery or negotiate to resolve disputes, but it does not mean that the buyer must be able to receive the goods normally during the new commodity transaction period, or the buyer and seller must be able to reach a settlement Agreement, at this time the buyer or seller can further apply to the platform for arbitration, and the platform can manually arbitrate to resolve the dispute.
  • the arbitration request can also be sent for other reasons, which is not limited here.
  • the buyer or seller can also directly apply to the platform for arbitration, not necessarily after the creation of the first deferred transaction. It should be pointed out that in Figure 3, for simplicity, only the case where the arbitration request is sent by the buyer node is shown.
  • Step S141 the platform side node creates a second term adjustment transaction.
  • the platform side node After the platform side node receives the arbitration request, it can be manually (for example, the platform side arbitrator) to make different arbitration results according to the content of the arbitration request, and then instruct the platform side node to create an arbitration transaction that reflects the arbitration result.
  • the type of transaction may be the second period adjustment transaction or the first allocation transaction, that is, step S208 and step S209 cannot be performed at the same time.
  • the buyer node or the seller node can send an arbitration request to the platform side node multiple times, and each time the arbitration request is received, the platform side node will create an arbitration transaction.
  • the second term adjustment transaction can be created multiple times in a row, but the first distribution transaction can only be created once, and after the first distribution transaction is created, the platform node can no longer create arbitration transactions (because the first distribution transaction will allocate the first distribution transaction).
  • the platform node can no longer create arbitration transactions (because the first distribution transaction will allocate the first distribution transaction).
  • the second period adjustment transaction is configured to adjust the commodity transaction period.
  • the third transaction duration can be set.
  • the third transaction duration characterization is configured to replace the previous transaction duration set in the previous transaction as a new commodity The length of the trading period.
  • the buyer's mortgage to the first mortgage account can only be processed in translation. After the translation, the asset still belongs to the first mortgage account and the amount remains unchanged.
  • the process of a commodity transaction in the application is expressed by multiple transfer transactions on the blockchain. These transfer transactions form a chain of capital flow (for example, the output of the previous transaction is used as the next transaction. Enter), the digital currency equivalent to the transaction commodity is transferred from the buyer's account to the seller's account in the direction of the chain.
  • the so-called last transaction mentioned above refers to the precursor transaction of the second period adjustment transaction in the chain.
  • the last transaction duration is the first transaction duration (corresponding to Figure 4, step S208 is entered after the execution of steps S202 and S203); if the last transaction is the first period adjustment transaction, then The last transaction duration is the second transaction duration (corresponding to Figure 4, after step S207 is executed, step S208 is entered); if the previous transaction is the last second period adjustment transaction (according to the previous explanation, the platform node can continuously create multiple Second period adjustment transaction), the last transaction duration is the last third transaction duration (corresponding to FIG. 4, step S208 is entered again after step S208 is executed).
  • the commodity transaction period in step S140 can be explained.
  • the commodity transaction period refers to the commodity transaction period formed by the last transaction duration set in the last transaction.
  • the specific form of the second term adjustment transaction is not limited.
  • the following text will give a specific method for realizing the first term adjustment transaction when the digital currency on the blockchain adopts the UTXO model.
  • the second-term adjustment transaction is not necessary. If neither buyer nor seller applies for arbitration, the platform node will not create a second-term adjustment transaction, and even if the platform node conducts arbitration, the created arbitration transaction may not necessarily be the second
  • the term adjustment transaction may also be the first distribution transaction. It is understandable that although the second term adjustment transaction can be created multiple times in one transaction, it is created by the platform side, that is, the platform side controls whether the term adjustment is effective, so there is no need to worry about the transaction extension function being affected by both parties. Any party abused.
  • Step S142 The platform node broadcasts the second term adjustment transaction on the blockchain network.
  • Step S143 The miner node verifies the legality of the second period adjustment transaction.
  • the miner node After receiving the broadcasted second-term adjustment transaction, the miner node will verify the legality of the transaction. If the verification is legal, the second-term adjustment transaction will be included in the set of transactions to be packaged configured to generate blocks.
  • the miner node will generate a new block based on the set of transactions to be packaged and participate in the competition for bookkeeping rights. After obtaining the bookkeeping rights, the new block will be written to the local blockchain to make the second deadline Adjust the transaction chain.
  • step S143 If the verification in step S143 is illegal, the miner node will not include the second term adjustment transaction into the set of transactions to be packaged configured to generate a block.
  • the verification of the legality of the transaction in step S143 includes verification related to the commodity trading period, that is, judging whether the commodity trading period has expired based on the transaction benchmark of the first mortgage transaction and the last transaction duration, and checking whether the commodity trading period has expired is determined
  • the received second term adjustment transaction is determined to be illegal.
  • the miner node determines whether the latest block transaction benchmark (when the miner node verifies the legality of the second period adjustment transaction) is still in the commodity trading period. If it is not in the commodity trading period, it indicates that the commodity trading period has ended. Otherwise, the commodity trading period has not yet ended. If the miner node determines that the commodity trading period has ended, the received second term adjustment transaction may be determined to be illegal. It should be pointed out that if the miner node determines that the commodity trading period has not expired, it may not necessarily be able to determine that the second-term adjustment transaction is legal, because other verifications may be performed for the second-term adjustment transaction (refer to the following content).
  • the third transaction duration set therein has not yet taken effect, so the judgment of the commodity transaction period is still based on the previous transaction duration. of. But if the second-term adjustment transaction created this time has been included in the block link, for example, the platform node creates a second-term adjustment transaction later, and the miner node verifies the legality of the next second-term adjustment transaction Time, you can use the third transaction duration set this time.
  • step S208 if the buyer and seller normally complete the transaction during the new commodity transaction period, then continue to execute step S204 to step S206. It should be noted that when performing sub-step S124 of step S205, since the second term adjustment transaction has been included in the block chain, the third transaction duration set therein has taken effect. At this time, the miner node is verifying whether the first redemption transaction When it meets the restrictions on the commodity trading period, the third trading time shall be used instead of the previous trading time.
  • Step S209 Execute the first distribution transaction process.
  • Step S209 includes steps S150 to S153, which are specifically as follows:
  • Step S150 The buyer node sends an arbitration request to the platform side node.
  • Step S150 and step S140 are the same step, and the description will not be repeated.
  • Step S151 the platform side node creates a first distribution transaction.
  • the first distribution transaction is configured to distribute the digital currency equivalent to the transaction commodity from the first mortgage account to at least one of the buyer account, the seller account, and the platform party account to reflect the arbitration result. For example, when the platform party finds that the seller has not delivered the goods during arbitration, it can allocate all the payment in the first mortgage account to the buyer's account through the first distribution transaction. For example, the platform party finds that the goods received by the buyer have certain defects during the arbitration , But the buyer can still accept it, and the seller does not want to return the goods. Through the first distribution transaction, the payment in the first mortgage account can be distributed to the buyer and the seller in a certain proportion, and so on. Among them, the digital currency allocated to the account of the platform party can be configured to pay the arbitration fee charged by the platform. Of course, in some implementations, the platform party can also be exempted from arbitration fees (including exemption for each arbitration, or for some Exemption from arbitration).
  • arbitration fees There can be different rules for arbitration fees. It can be agreed before the transaction, and the upper limit amount can be set. In some implementations, the arbitration fee can be more used to restrict the behavior of the seller, and its cost can be correlated with the seller's credit score. For example, the arbitration fee for a good seller is lower. In other implementations, the setting of arbitration fees can also be related to the physical cost paid by the seller. For example, the original production cost of the goods sold is very low (such as digital publications, which can be copied at will), and the arbitration fee can be set relatively high Some, for example, can be equal to the selling price, so if the seller is found to be fraudulent, the platform has the ability to confiscate all its sales proceeds.
  • the previous transaction of the first distribution transaction can be the first mortgage transaction (corresponding to Figure 4, and proceed to step S209 after the execution of steps S202 and S203), or it can be the first term adjustment transaction (corresponding to Figure 4, executed in step S207) Then go to step S209), or it can be a second time limit adjustment transaction (corresponding to FIG. 4, go to step S209 after step S208 is executed).
  • step S208 the first term adjustment transaction
  • step S209 that is, platform side arbitration is required.
  • the first term adjustment transaction is created (step S207), but the commodity transaction period is not successful. Extension (may be caused by node failure on the blockchain network, etc.), at this time the buyer or seller can apply to the platform for arbitration.
  • the specific form of the first distribution transaction is not limited, and a specific way to realize the first distribution transaction when the digital currency on the blockchain adopts the UTXO model will be given later.
  • the first distribution transaction is not necessary. If the buyer and seller do not apply for arbitration, the platform node will not create the first distribution transaction, and the arbitration transaction created by the platform node may not necessarily be the first distribution transaction, but can also be the second distribution transaction. Time adjustment transaction.
  • Step S152 The platform side node broadcasts the first distribution transaction on the blockchain network.
  • Step S153 The miner node verifies the legality of the first distribution transaction.
  • the miner node After the miner node receives the broadcasted first distribution transaction, it will verify the legality of the transaction. If the verification is legal, the first distribution transaction will be included in the set of transactions to be packaged configured to generate a block.
  • the miner node will generate a new block based on the set of transactions to be packaged, and participate in the competition for the accounting right, and write the new block to the local blockchain after obtaining the accounting right to make the first distribution
  • the transaction is on the chain.
  • step S153 If the verification in step S153 is illegal, the miner node will not include the first distribution transaction into the transaction set to be packaged configured to generate a block.
  • the verification of the legality of the transaction in step S153 includes verification related to the commodity trading period, that is, judging whether the commodity trading period has expired based on the transaction benchmark of the first mortgage transaction and the previous transaction duration, and checking whether the commodity trading period has expired is determined
  • the first distribution transaction received is determined to be illegal.
  • the miner node determines whether the latest block transaction benchmark (when the miner node verifies the validity of the first distribution transaction) is still in the commodity trading period. If it is not in the commodity trading period, it indicates that the commodity trading period has ended; otherwise The commodity trading period has not yet ended. If the miner node determines that the commodity trading period has ended, the first distribution transaction received can be determined to be illegal. It should be pointed out that if the miner node determines that the commodity trading period has not expired, it may not necessarily be able to determine that the first distribution transaction is legal, because other verifications may be performed for the first distribution transaction (refer to the following content).
  • step S209 since the digital currency in the first mortgage account has been forcibly distributed, it is meaningless to continue to create various types of transactions, so this commodity transaction has essentially ended (of course, it may not have reached the commodity at this time. The end of the trading period).
  • arbitration transactions can be created based on the results of manual arbitration by the platform. Therefore, arbitration transactions can also be called manual arbitration.
  • the starting point of the machine arbitration period can be defined as the transaction benchmark of the first created arbitration transaction. It is the cut-off time of the last commodity trading period adjusted by the creation of the second period adjustment transaction.
  • the first row in Figure 5 represents the normal trading of commodities, and the normal trading period is the first trading duration.
  • the third line represents the creation of an arbitration transaction during the original normal trading period (because the first distribution transaction does not change the commodity trading period, the third line creates at least one second-term adjustment transaction), so the third line
  • the normal trading period has not ended before the manual arbitration period is switched.
  • the normal trading period in the third row plus the length of the machine arbitration period is the last created second period to adjust the third trading duration set by the exchange.
  • the fourth line indicates that the first-term adjustment transaction was created during the original normal trading period, so that the fourth line of the normal trading period has not ended before the machine arbitration period is switched to the machine arbitration period, and then the arbitration transaction is created during the machine arbitration period ( Since the first distribution transaction does not change the commodity trading period, the fourth row creates at least one second-term adjustment transaction), so the machine arbitration period in the fourth row has not ended before the manual arbitration period, and the fourth row is the normal trading period Adding the machine arbitration period plus the length of the manual arbitration period is the last created second period to adjust the third transaction period set by the exchange.
  • the process of manual arbitration can also be replaced by the deployment of smart contracts on the blockchain, namely
  • the platform side node creates an arbitration transaction by calling the smart contract on the blockchain.
  • the content of the smart contract can be written by the platform party, and the code is open source to ensure its fairness and openness. If arbitration is automatically carried out through smart contracts, the degree of intelligence is higher, the speed of arbitration can be further improved, and the cost of human resources is saved for the platform.
  • Step S210 Execute the second redemption transaction process.
  • Step S210 includes steps S160 to S162, which are specifically as follows:
  • Step S160 The buyer node creates a second redemption transaction.
  • the buyer node can create a second redemption transaction.
  • the second redemption transaction is configured to transfer the digital currency equivalent to the transaction commodity from the first mortgage account to the buyer's account, that is, the buyer can recover his own assets and avoid economic losses.
  • the prerequisite for creating the second redemption transaction is that the assets pledged by the buyer are still stored in the first mortgage account and have not been redeemed by the seller or distributed by the platform. Therefore, the second redemption transaction is not necessary.
  • the previous transaction of the second redemption transaction may be the first mortgage transaction (corresponding to FIG. 4, and proceed to step S210 after the execution of steps S202 and S203), or may be the first term adjustment transaction (corresponding to FIG. 4, in step S207) After execution, proceed to step S210), or it may be a second deadline adjustment transaction (corresponding to FIG. 4, proceed to step S210 after execution of step S208).
  • a second period adjustment transaction is created (go to step S208), but the commodity transaction period has not been successfully extended (maybe the transaction on the blockchain network).
  • step S209 the first distribution transaction is created (step S209), but the digital currency distribution fails (may be caused by node failure on the blockchain network), and the buyer can redeem the payment.
  • the arrow points in FIG. 4 also include these abnormal processes.
  • the commodity transaction should end in principle, but if the transaction process is not executed normally in step S209, it can also enter step S210.
  • the specific form of the second redemption transaction is not limited. The following text will give a specific way to realize the second redemption transaction when the digital currency on the blockchain adopts the UTXO model.
  • Step S161 The buyer node broadcasts the second redemption transaction on the blockchain network.
  • Step S162 The miner node verifies the legality of the second redemption transaction.
  • the miner node After receiving the broadcasted second redemption transaction, the miner node will verify the legality of the transaction. If the verification is legal, the second redemption transaction will be included in the set of transactions to be packaged configured to generate a block.
  • the miner node will generate a new block based on the set of transactions to be packaged, and participate in the competition for the bookkeeping right, and write the new block to the local blockchain after obtaining the bookkeeping right, so that the second redemption Back to the transaction chain.
  • step S162 If the verification in step S162 is illegal, the miner node will not include the second redemption transaction into the transaction set to be packaged configured to generate a block.
  • the verification of the legality of the transaction in step S162 includes verification related to the commodity trading period, that is, judging whether the commodity trading period has expired according to the transaction benchmark of the first mortgage transaction and the last transaction duration, and checking whether the commodity trading period has not expired.
  • the second redemption transaction received is determined to be illegal.
  • the miner node determines whether the latest block transaction benchmark (when the miner node verifies the validity of the second redemption transaction) is still in the commodity trading period. If it is not in the commodity trading period, it indicates that the commodity trading period has ended. Otherwise, the commodity trading period has not yet ended. If the miner node determines that the commodity trading period has not expired, the received second redemption transaction may be determined to be illegal. It should be pointed out that if the miner node determines that the commodity trading period has ended, it may not necessarily be able to determine that the second redemption transaction is legal, because other verifications may be performed for the second redemption transaction (refer to the following content).
  • the above behavior of the miner node restricts the buyer's opportunity to create the second redemption transaction, that is, the buyer should create a second redemption transaction after the end of the commodity trading period to transfer the payment from the first mortgage account. If the commodity trading period has not yet expired , The buyer will not be able to redeem the mortgaged payment.
  • step S209 since the digital currency in the first mortgage account has been redeemed by the buyer, this commodity transaction is also over.
  • the miner node in addition to receiving various transactions (including the first mortgage transaction, the first maturity adjustment transaction, the second maturity adjustment transaction, the first distribution transaction, and the second redemption transaction), the miner node will verify that it is legal. After receiving a new block created by other miner nodes, the legality of the various transactions included in it is also verified (if these transactions are included in the block), and the verification method can be the same as when receiving various transactions. The method is the same, for example, the verification of whether the transaction meets the restriction of the commodity trading period and the verification of other content (you can refer to the following content). If it is determined that a certain transaction included in the new block is illegal, the miner node will refuse to save the received block to the local blockchain. The above verification process further improves the security and reliability of transactions recorded on the blockchain.
  • the transaction process provided in this application establishes a complete set of e-commerce transaction processes based on foreclosure methods (including buyer mortgage and seller mortgage) on the blockchain.
  • foreclosure methods including buyer mortgage and seller mortgage
  • other valuable features on the blockchain can also be combined with the method of this application.
  • users can control the sovereignty of their own data.
  • the so-called data sovereignty refers to The ownership of sensitive information, daily life information, and business activity information that reflects the user's identity belongs to the user, and the user's authorization is required for use by others.
  • a transaction implemented in the Bitcoin system is to construct a transaction record containing inputs and outputs (transactions for short).
  • the transactions are included in a certain block under the supervision of all the miners of the Bitcoin network. , And then concatenate each block into a blockchain.
  • the input of each transaction will cost the output of the previous one or more transactions (except for coin creation transactions), and it will also generate new output itself.
  • the input items of the transaction include one or more unspent transaction outputs (UTXO) generated by the previous transaction, and the output items of the transaction include one or more UTXO generated by the current transaction.
  • UTXO unspent transaction outputs
  • Each UTXO has Owned to an account, UTXO means a certain unspent fee owned by the account.
  • the UTXO in the input of the transaction becomes the spent fee, and the UTXO in the output of the transaction is the newly generated unspent fee, that is The UTXO in the input item will no longer be valid, while the UTXO in the output item is still valid.
  • the so-called valid means that it can be used as the UTXO in the input item in subsequent transactions.
  • the transaction is not an increase or decrease in the account balance, but a chain of capital flow through UTXO. This is the UTXO model.
  • the UTXO model is independent of Bitcoin, and Bitcoin is only in its transaction. Use this model only.
  • the input of the first mortgage transaction includes the first UTXO belonging to the buyer account
  • the output of the first mortgage transaction includes the second UTXO belonging to the first mortgage account and the third UTXO belonging to the platform party account.
  • the first UTXO may be one or more UTXOs belonging to the buyer's account, which represents the digital currency that the buyer's account already owns before the commodity transaction.
  • the amount of the second UTXO is the digital currency equivalent to the transaction commodity, which represents the purchase price pledged by the buyer to the first mortgage account
  • the amount of the third UTXO is the transaction service fee charged by the platform party.
  • the transaction service fee includes two items, one It is the fees charged by the platform party for providing services in the process of commodity transactions. The other is the sum of the transaction fees receivable from the accounting miners of the subsequent transactions of the first mortgage transaction (such as the first term adjustment transaction, etc.).
  • the miner's handling fee is far less than the fee charged by the platform (for example, the former is several orders of magnitude smaller than the latter), so although it is not certain how many subsequent transactions exist in the first mortgage transaction, there is no need to worry about the transaction service fee being insufficient to pay the miner's procedures Fee situation.
  • the above only limits the UTXOs that must be included in the input and output of the first mortgage transaction in order to realize the redemption process, but it does not mean that the input and output of the first mortgage transaction only include these UTXOs.
  • the first mortgage transaction also needs to pay the miner's handling fee. Therefore, the output of the first mortgage transaction may also include a UTXO corresponding to the buyer's account. The buyer node can find it through the settings when creating the first mortgage transaction. A zero amount is used to adjust the miner's handling fee paid.
  • the output of the first mortgage transaction may also include the fourth UTXO belonging to the account of the additional service provider.
  • the additional service provider does not refer to the platform party or the miner, but refers to the provision of goods to the buyer in the process of reaching the transaction intention.
  • Merchants of transaction-related additional services such merchants may have one or more, so the fourth UTXO may also be one or more UTXOs.
  • the content of additional services may include, but is not limited to, helping to match transactions, providing price comparison information or providing cloud computing hosting, etc. It should be pointed out that commodity transactions can also be carried out without relying on additional services, and additional services are designed to enhance the convenience of transactions.
  • the locking script of the second UTXO includes the public key of the platform account, the public key of the buyer account, the public key of the seller account, the public key of the first mortgage account, the first mortgage operation parameters, and the first signature verification instruction. It can be organized into the following format:
  • PublicKey1, PublicKey2, PublicKey3, and PublicKey4 are the public key of the platform account, the public key of the buyer account, the public key of the seller account, and the public key of the first mortgage account, mr_param is the first mortgage operation parameter, and CHECK_MR_SIG is the first signature Verification instructions.
  • the locking script of the third UTXO can be implemented similarly to the locking script of UTXO in conventional transactions, and will not be described in detail. It is understandable that the locking script can also be in other forms.
  • the order of each public key can be a different order from the above.
  • a redeem script similar to Bitcoin Redeem Script, used in P2SH transactions
  • mr_param can be a data block, which includes several parameters related to the commodity transaction, which can be used to verify the legality of the transaction during the commodity transaction.
  • some implementations may include the transaction serial number, the maximum limit of the arbitration fee that needs to be paid in the first distribution transaction, the first transaction duration, and the maximum transaction duration that can be set for the first term adjustment transaction (that is, the commodity transaction period can be The maximum length extended to) several parameters.
  • more or fewer parameters can be included in mr_param. For example, if the commodity transaction period is not considered (in the most basic redemption process described earlier), you can Do not set the first transaction duration.
  • CHECK_MR_SIG is configured to instruct the miner node to use the public key in the locking script of the second UTXO to verify whether the signature provided in the unlocking script for the second UTXO is correct.
  • the specific verification process will be explained when the unlocking script is explained.
  • the function of CHECK_MR_SIG and Bitcoin There are similarities between the CHECKSIG and CHECKMULTISIG functions in, of course, they are different in specific verification operations.
  • the locking script of the second UTXO has a restrictive function, so that the digital currency in the second UTXO can only be spent in the following ways (such as several public keys, the first mortgage operation parameter, and the verification logic of the first signature verification instruction Cooperate with implementation), that is, the second UTXO is used as the input UTXO for the subsequent transaction: first, it is translated in the first period adjustment transaction (the fifth UTXO is generated, see later explanation); second, the transaction is adjusted in the second period Shift it in the middle (generate the ninth UTXO, see later explanation); third, be distributed in the first distribution transaction (generate at least one of the fourteenth UTXO, the fifteenth UTXO, and the sixteenth UTXO, (See later description); fourth, redeemed by the seller in the first redemption transaction (produce the nineteenth UTXO, see later); fifth, redeem by the buyer in the second redemption transaction (produce the first Twenty-three UTXO, see later description).
  • the above transaction should provide an unlock
  • the first UTXO For the first mortgage transaction, the first UTXO must be included in the transaction input.
  • the unlocking script of the first UTXO must be provided, but the first UTXO is the UTXO belonging to the buyer's account that already exists before the start of the commodity transaction, and the unlocking script can be conventional
  • the unlocking script of the transaction is the same, so I won't elaborate on it here.
  • the miner node can determine the transaction type according to the characteristics of the signature verification instruction of the UTXO lock script output of the transaction, for example, the second UTXO lock script of the first mortgage transaction
  • the first signature verification instruction in is unique to the first mortgage transaction, and includes 5 parameters before it. According to this, the miner node can determine that the received is the first mortgage transaction. After determining that the received transaction is the first mortgage transaction, the miner node can execute the verification process related to the first mortgage transaction. For example, verifying whether the unlocking script of the first UTXO matches its locking script, whether the first mortgage operation parameter setting is legal, etc., is not limited here. It should be pointed out that since the transaction benchmark of the first mortgage transaction is the starting point of the commodity trading period, the first mortgage transaction does not need to be verified for the commodity trading period, because at this time the first transaction duration has not yet taken effect and no commodity transactions have occurred. period.
  • the input of the first maturity adjustment transaction includes the second UTXO and the third UTXO as the output of the first mortgage transaction, and the output of the first maturity adjustment transaction includes the fifth UTXO belonging to the first mortgage account and the sixth UTXO belonging to the platform party account. .
  • the amount of the fifth UTXO is a digital currency equivalent to the transaction commodity, which represents the translation of the second UTXO in the first mortgage account
  • the amount of the sixth UTXO is the accounting of the third UTXO and the first term adjustment transaction
  • the difference in the handling fee receivable by the miner represents the transaction service fee charged by the platform and the miner handling fee prepaid for subsequent transactions of the first period adjustment transaction (the sixth UTXO can be regarded as the third UTXO minus the first period adjustment transaction miner procedures Change after the fee).
  • the input and output of the first term adjustment transaction may also include other UTXOs, which are not limited here.
  • the unlocking script of the second UTXO includes the buyer node or seller node using the private key of its account to sign the first period adjustment transaction when creating the first period adjustment transaction, and the platform side node uses the platform after receiving the first period adjustment transaction
  • the private key of the party account signs the first period adjustment transaction (refer to step S131, the first period adjustment transaction will be sent to the platform side node after creation), the unlocking script can be organized into the following format:
  • Signature1 is the signature of the platform account for the first period adjustment transaction
  • Signature2 is the signature of the initiator account (buyer account or seller account) of the first period adjustment transaction for the first period adjustment transaction.
  • the verification process of the signature will be later Elaborate again.
  • the signature for the first period adjustment transaction may refer to the signature for the entire transaction content.
  • the unlocking script of the third UTXO can be implemented similarly to the unlocking script of UTXO in conventional transactions, and will not be described in detail.
  • the fifth UTXO lock script includes the public key of the platform party’s account, the public key of the buyer’s account, the public key of the seller’s account, the public key of the first mortgage account, the first period adjustment operation parameters, and the second signature verification instruction.
  • it can be organized into the following format:
  • PublicKey1, PublicKey2, PublicKey3, and PublicKey4 are the public key of the platform account, the public key of the buyer account, the public key of the seller account, and the public key of the first mortgage account.
  • This is the same as the second UTXO lock script. It is directly copied from the lock script of the second UTXO, pp_param1 is the first period adjustment operation parameter, and CHECK_PP_SIG is the second signature verification instruction.
  • the sixth UTXO locking script can be implemented similar to the UTXO locking script in conventional transactions, and will not be described in detail.
  • pp_param1 can be a data block, which includes several parameters related to the commodity transaction, which can be used to verify the legality of the transaction during the commodity transaction. For example, in some implementations, parameters such as the transaction serial number, the maximum arbitration fee to be paid in the first distribution transaction, and the second transaction duration may be included. The transaction serial number and the maximum arbitration fee can be copied from the original value in mr_param. In specific implementation, mr_param and pp_param1 may use the same data structure.
  • pp_param1 will also have the field of the maximum transaction duration that can be set in the first period adjustment transaction, but this field is not in the fifth UTXO lock script Meaning, because it has been mentioned before that in the commodity transaction process, the first period adjustment transaction can only be created once. Even if the subsequent transaction needs to control the funds in the fifth UTXO, the content of this field will not be verified again, so this field You can fill in a special value, such as 0, to facilitate the unified processing of the program.
  • pp_param1 may also include more or fewer parameters.
  • pp_param1 may also include period adjustment description information, and the content of the period adjustment description information includes the description of the period adjustment by the party that created the first period adjustment transaction.
  • the content of the time limit adjustment description information may be information such as the reason for the time limit adjustment (such as an explanation of the reason for applying for an extension of the commodity trading period).
  • the content of the period adjustment description information can also be used as evidence to restore the current situation of the transaction in the event of a dispute. For example, the seller cannot send it in time.
  • pp_param1 may also include the degree of suspected fraud, and the content of the degree of suspected fraud includes an assessment of the degree of suspected fraud by the party that created the first period adjustment transaction. For example, if the buyer believes that the transaction may be fraudulent, but is not sure, you can fill in the suspected degree of fraud in pp_param1 through the buyer node.
  • the suspected degree of fraud can be used as the basis for certain arbitration actions by the platform party (such as the basis for manual arbitration Or use the basis of smart contract automatic arbitration) to realize the management and control of the risk of transaction fraud by the platform.
  • CHECK_PP_SIG is configured to instruct the miner node to use the public key in the fifth UTXO lock script to verify whether the signature provided in the unlock script for the fifth UTXO is correct.
  • the function of CHECK_PP_SIG is similar to the CHECKSIG and CHECKMULTISIG functions in Bitcoin, of course. It is different in specific verification operations.
  • the lock script of the fifth UTXO has a restrictive function, so that the digital currency in the fifth UTXO can only be spent in the following ways (such as several public keys, the first mortgage operation parameter, and the verification logic of the second signature verification instruction Cooperate with implementation), that is, the fifth UTXO is used as the input UTXO of the subsequent transaction: first, it is shifted in the second period adjustment transaction (the ninth UTXO is generated, see later description); second, in the first distribution transaction Allocated (generating at least one of the fourteenth UTXO, fifteenth UTXO, and sixteenth UTXO, see later); third, being redeemed by the seller in the first redemption transaction (generating the nineteenth UTXO , See later description); Fourth, it is redeemed by the buyer in the second redemption transaction (the 23rd UTXO is generated, see later description).
  • the above transaction shall provide an unlocking script matching the locking script of the fifth UTXO when attempting to include the fifth UTXO in its transaction input.
  • the miner node can determine the transaction type according to the characteristics of the signature verification instruction of the UTXO lock script output of the transaction, for example, the lock of the fifth UTXO of the first period adjustment transaction
  • the second signature verification instruction in the script is unique to the deadline adjustment transaction, and it includes 5 parameters before it. Based on this, the miner node can determine that the received deadline adjustment transaction. At the same time, the miner node can further distinguish the deadline adjustment transaction. Whether it is a first-term adjustment transaction or a second-term adjustment transaction (the specific method will be introduced later when the second-term adjustment transaction is implemented under the UTXO model).
  • the miner node can execute the verification process related to the first-term adjustment transaction. At least include the following two aspects:
  • the miner node combines the lock script and unlock script into a complete script as follows:
  • the "+" in Table 1 indicates that the lock script and the unlock script are combined.
  • the CHECK_MR_SIG command will use PublicKey1 to verify whether Signature1 is the true signature of the platform party, and use PublicKey2 or PublicKey3 to verify whether Signature2 is the true signature of the initiator of the first postponement transaction. If one of the two signatures is not true , The verification result of the first aspect is illegal, otherwise the verification result of the first aspect is legal.
  • the execution of the script adopts a stack execution language similar to the reverse Polish expression. The writing and execution of the script in this application can adopt a similar approach and will not be elaborated.
  • This item is configured to confirm whether the first-term adjustment transaction only shifts (rather than spends) the assets pledged by the buyer in the first mortgage account, because the first-term adjustment transaction is only used to update the commodity transaction period.
  • the purpose of setting the maximum transaction duration that can be set for the first-term adjustment transaction in the first mortgage operation parameter is to limit the first-term adjustment transaction to arbitrarily extend the commodity transaction period, so the first-term adjustment transaction can be adjusted according to this parameter. The deferred operation is verified.
  • the verification result of any one of the above five items is illegal, the verification result of the second aspect is illegal, otherwise the verification result of the second aspect is legal. It should be pointed out that in some implementations, the verified items do not completely include the above five items or include more items.
  • the first-term adjustment transaction is an illegal transaction
  • the miner node will refuse to include the illegal first-term adjustment transaction into the set of transactions to be packaged configured to generate blocks, otherwise
  • the miner node will incorporate the legal first-term adjustment transaction into the set of transactions to be packaged. It is understandable that during the verification process, if a verification content results in an illegal result, the verification process can be ended early, without subsequent verification.
  • the second UTXO will no longer be valid (has been spent), and the fifth UTXO will become a new unspent transaction, that is, the buyer’s mortgage payment has been shifted.
  • the subsequent transaction of the time limit adjustment transaction is created, only the fifth UTXO can be used as input, and the second UTXO can no longer be used.
  • the transactions in the transaction process of this application are linked in sequence in this way to form a chain of capital flow.
  • the input of the second term adjustment transaction includes the seventh UTXO and the eighth UTXO
  • the output of the second term adjustment transaction includes the ninth UTXO belonging to the first mortgage account and the tenth UTXO belonging to the platform party account.
  • the seventh UTXO is the second UTXO and the eighth UTXO is the third UTXO; if the previous transaction of the second period adjustment transaction is the first period adjustment transaction (that is, the output UTXO of the first period adjustment transaction is used as the input UTXO of the second period adjustment transaction), then the seventh UTXO is the fifth UTXO and the eighth UTXO is the sixth UTXO; if the previous transaction of the current second period adjustment transaction is the last second period adjustment transaction (that is, the output UTXO of the last second period adjustment transaction is used as the input UTXO of the current second period adjustment transaction) , The seventh UTXO is the last ninth UTXO and the eighth UTXO is the last tenth UTXO.
  • the amount of the ninth UTXO is a digital currency equivalent to the transaction commodity, which represents the translation of the seventh UTXO in the first mortgage account
  • the amount of the tenth UTXO is the accounting of the eighth UTXO and the second term adjustment transaction
  • the difference in the handling fee receivable by the miner represents the transaction service fee charged by the platform and the miner handling fee prepaid for the subsequent transaction of the second period adjustment transaction (the tenth UTXO can be regarded as the eighth UTXO minus the second period adjustment transaction miner procedures Change after the fee).
  • the input and output of the second term adjustment transaction may also include other UTXOs, which are not limited here.
  • the seventh UTXO unlocking script includes the buyer node or the seller node using the private key of its account to sign the first arbitration information when generating the arbitration request, and the platform node uses the private key of the platform account to pair the first arbitration request after receiving the arbitration request.
  • the signature of the second-term adjustment transaction includes the transaction serial number and the position index of the seventh UTXO in the blockchain (for example, the first arbitration information may be a string composed of the two), and the position index is configured to indicate which of the seventh UTXO is Which transaction in which block outputs UTXO. Both the first arbitration information and the signature of the first arbitration information are carried in the arbitration request.
  • the first arbitration information can be configured to include the seventh UTXO as input when the platform side node creates the second time limit adjustment transaction.
  • the signature of the first arbitration information is The node on the platform side is put into the unlocking script of the seventh UTXO.
  • the unlocking script can be organized into the following format:
  • Signature1 is the signature of the platform account for the second-term adjustment transaction
  • Signature2 is the signature of the first arbitration information by the initiator account (buyer account or seller account) of the second-term adjustment transaction
  • the initiator of the second-term adjustment transaction It is the party sending the arbitration request.
  • the unlocking script of the eighth UTXO can be implemented similarly to the unlocking script of the UTXO in the conventional transaction, and will not be described in detail.
  • the ninth UTXO lock script includes the public key of the platform account, the public key of the buyer’s account, the public key of the seller’s account, the public key of the first mortgage account, the second period adjustment operation parameters, and the second signature verification instruction.
  • it can be organized into the following format:
  • PublicKey1, PublicKey2, PublicKey3, and PublicKey4 are the public key of the platform account, the public key of the buyer account, the public key of the seller account, and the public key of the first mortgage account. This is the same as in the lock script of the seventh UTXO. It is directly copied from the lock script of the seventh UTXO, pp_param2 is the second period adjustment operation parameter, and CHECK_PP_SIG is the second signature verification instruction.
  • the locking script of the tenth UTXO can be implemented similarly to the locking script of UTXO in conventional transactions, and will not be elaborated.
  • pp_param2 can be a data block, which includes several parameters related to commodity transactions, which can be configured to verify the legality of the transaction during the commodity transaction. For example, in some implementations, parameters such as the transaction serial number, the maximum arbitration fee to be paid in the first distribution transaction, and the third transaction duration may be included.
  • the transaction serial number and the upper limit of the arbitration fee can be copied from the original value of the operating parameters of the previous transaction, depending on the previous transaction (for example, if the previous transaction is the first mortgage transaction, the operating parameter is mr_param), the operating parameter is actually It is recorded in the lock script of the seventh UTXO.
  • pp_param2 also contains the field of the maximum transaction duration that can be set for the first period adjustment transaction, since the first period adjustment transaction will not be created later, the value of this field can be ignored. It is understandable that in some other implementation manners, pp_param2 may also include more or fewer parameters.
  • CHECK_PP_SIG is configured to instruct the miner node to use the public key in the lock script of the ninth UTXO to verify whether the signature provided in the unlock script for the ninth UTXO is correct.
  • the locking script of the ninth UTXO has a restrictive function, so that the digital currency in the ninth UTXO can only be spent in the following ways (such as several public keys, the second mortgage operation parameters, and the verification logic of the second signature verification instruction Cooperate with implementation), that is, the ninth UTXO is used as the input UTXO of the subsequent transaction: first, it will be translated in the next second term adjustment transaction (the next ninth UTXO is generated); second, it will be allocated in the first allocation transaction (Generate at least one of the fourteenth UTXO, fifteenth UTXO, and sixteenth UTXO, see later); third, be redeemed by the seller in the first redemption transaction (produce the nineteenth UTXO, see (Explained later); fourth, redeemed by the buyer in the second redemption transaction (the 23rd UTXO is generated, see later).
  • the above transaction attempts to include the ninth UTXO in its transaction input, it shall provide an unlocking script that matches the locking script of the ninth UTXO
  • the miner node can determine the transaction type according to the characteristics of the signature verification instruction of the UTXO lock script of the transaction output, for example, the lock of the fifth UTXO of the second period adjustment transaction
  • the second signature verification instruction in the script is unique to the deadline adjustment transaction, and it includes 5 parameters before it. Based on this, the miner node can determine that the received deadline adjustment transaction. At the same time, the miner node can further distinguish the deadline adjustment transaction. Is it a first-term adjustment transaction or a second-term adjustment transaction?
  • the unlocking script of the second UTXO includes the signature of the initiator account of the first period adjustment transaction on the first period adjustment transaction
  • the unlocking script of the seventh UTXO includes the signature of the first arbitration information by the initiator account of the second time limit adjustment transaction, that is, the objects of the signature are different, which can be distinguished; for example, in Bitcoin, the digital signature is appended
  • the single-byte signature hash type (SIGHASH) field is configured to indicate which input and output of the transaction the digital signature is made, and some flag bits (such as ALL, NONE, or SINGLE) have been used in this field.
  • the various transactions in this application can refer to this approach when implementing, and at the same time, use an unused flag bit in the signature hash type field (to avoid conflicts with the processing method in Bitcoin and facilitate unified processing) as an indicator bit.
  • the flag bit Indicate whether the digital signature is made for transaction content or non-transaction content (for example, the first arbitration information), so that the first deadline adjustment transaction and the second deadline adjustment transaction can also be distinguished according to the flag bit.
  • the miner node can execute a verification process related to the second-term adjustment transaction. At least include the following two aspects:
  • the verification process is similar to that in the first-term adjustment transaction, and will not be repeated. It just needs to be pointed out that when verifying Signature2, the transaction serial number in the first arbitration information and the position index of the seventh UTXO in the blockchain can be obtained from the content of the second period adjustment transaction.
  • This item is configured to confirm whether the second-term adjustment transaction only shifts (rather than spends) the assets pledged by the buyer in the first mortgage account, because the second-term adjustment transaction is only used to update the commodity transaction period.
  • the verification result of any one of the above four items is illegal, the verification result of the second aspect is illegal, otherwise the verification result of the second aspect is legal. It needs to be pointed out that in some implementations, the verified items do not completely include the above four items or include more items.
  • the second-period adjustment transaction is an illegal transaction
  • the miner node will refuse to include the illegal second-period adjustment transaction into the set of transactions to be packaged configured to generate blocks, otherwise
  • the miner node will incorporate the legal second-term adjustment transaction into the set of transactions to be packaged.
  • the input of the first distribution transaction includes the eleventh UTXO and the twelfth UTXO
  • the output of the first distribution transaction includes the thirteenth UTXO belonging to the account of the platform and at least one of the following three UTXOs: the first UTXO belonging to the buyer’s account Fourteen UTXO, the fifteenth UTXO belonging to the seller’s account and the sixteenth UTXO belonging to the platform’s account.
  • the eleventh UTXO is the second UTXO and the twelfth UTXO is the third UTXO; if the previous transaction of the first distribution transaction is the first period adjustment transaction (that is, the output UTXO of the first period adjustment transaction is used as the input UTXO of the first distribution transaction), then the eleventh UTXO is the fifth UTXO and the twelfth UTXO is the sixth UTXO; if the previous transaction of the first allocation transaction is the second period adjustment transaction (that is, the output UTXO of the second period adjustment transaction is used as the input UTXO of the first allocation transaction), then the eleventh UTXO is the ninth UTXO And the twelfth UTXO is the tenth UTXO.
  • the sum of the amount of at least one UTXO output by the first distribution transaction is a digital currency equivalent to the transaction commodity, which represents the distribution of the buyer's mortgage payment among the buyer, the seller and the platform party according to the arbitration result. If there is a sixteenth UTXO, it means the arbitration fee charged by the platform.
  • the amount of the thirteenth UTXO is the difference between the twelfth UTXO and the transaction fee receivable from the first distribution transaction, and represents the transaction service fee charged by the platform (the thirteenth UTXO can be regarded as the twelfth UTXO minus the first Change after allocating the transaction fee for miners).
  • step S209 in Figure 4 may be transferred to step S210, but according to the previous explanation, this process It belongs to the situation that the first distribution transaction is not executed normally, and the second redemption transaction at this time should not be regarded as a subsequent transaction of the first distribution transaction).
  • the input and output of the first distribution transaction may also include other UTXOs, which are not limited here.
  • the unlocking script of the eleventh UTXO includes the buyer node or seller node using the private key of its own account to sign the second arbitration information when generating the arbitration request, and the platform node using the private key pair of the platform side account after receiving the arbitration request
  • the unlocking script of the eleventh UTXO is similar to the unlocking script of the seventh UTXO (because the first allocation transaction and the second period adjustment transaction are both arbitration transactions), it will not be elaborated here.
  • the unlocking script of the twelfth UTXO can be implemented similar to the unlocking script of the UTXO in the conventional transaction, and will not be described in detail.
  • the lock scripts of the fourteenth UTXO, the fifteenth UTXO and the sixteenth UTXO can be implemented as similar to the lock scripts of the UTXO in the conventional transaction, and will not be described in detail.
  • the miner node can determine the transaction type according to the characteristics of the output UTXO of the transaction. For example, if there are UTXOs belonging to the buyer, seller and platform in the output UTXO, then the miner The node can determine that the received is the first distribution transaction. Note that the miner node does not need to know who is the buyer and who is the buyer, as long as it confirms that the output UTXO has three different attributions. Of course, for other fund distribution methods of the first distribution transaction, other logics can also be used to determine the transaction type, which will not be elaborated here.
  • the miner node can perform the verification process related to the first distribution transaction. At least include the following two aspects:
  • the output of the first distribution transaction includes the sixteenth UTXO, verify that the amount of the sixteenth UTXO is not greater than the maximum limit of the arbitration fee set in the operating parameters of the eleventh UTXO lock script, if it is not greater than the verification in this item The result of is legal, otherwise the result of this verification is illegal.
  • This item is configured to confirm whether the amount of arbitration fees charged by the platform is reasonable.
  • the verification result of any one of the above two items is illegal, the verification result of the second aspect is illegal, otherwise the verification result of the second aspect is legal. It should be pointed out that in some implementations, the verified items do not completely include the above two items or include more items.
  • the first distribution transaction is an illegal transaction
  • the miner node will refuse to include the illegal first distribution transaction in the set of transactions to be packaged configured to generate the block, otherwise the miner node
  • the legal first distribution transaction will be included in the set of transactions to be packaged.
  • the input of the first redemption transaction includes the seventeenth UTXO and the eighteenth UTXO
  • the output of the first redemption transaction includes the nineteenth UTXO belonging to the seller's account and the twentieth UTXO belonging to the platform party's account.
  • the seventeenth UTXO is the second UTXO and the eighteenth UTXO is The third UTXO; if the previous transaction of the first redemption transaction is the first period adjustment transaction (that is, the output UTXO of the first period adjustment transaction is used as the input UTXO of the first redemption transaction), then the seventeenth UTXO is the fifth UTXO And the eighteenth UTXO is the sixth UTXO; if the previous transaction of the first redemption transaction is the second period adjustment transaction (that is, the output UTXO of the second period adjustment transaction is used as the input UTXO of the first redemption transaction), then the tenth The seventh UTXO is the ninth UTXO and the eighteenth UTXO is the tenth UTXO.
  • the amount of the nineteenth UTXO is the digital currency equivalent to the transaction commodity, which represents the seller redeeming the payment in the first mortgage account
  • the amount of the twentieth UTXO is the record of the eighteenth UTXO and the first redemption transaction.
  • the difference in the handling fees receivable by the miners represents the transaction service fee charged by the platform side (the twentieth UTXO can be regarded as the eighteenth UTXO minus the miner handling fee of the first redemption transaction). Note that there are no subsequent transactions for the first redemption transaction, so the twentieth UTXO no longer includes the miner's fee for subsequent transactions.
  • the input and output of the first redemption transaction may also include other UTXOs, which are not limited here.
  • the unlocking script of the seventeenth UTXO includes the signature of the first redemption transaction using the private key of the first mortgage account when the seller node creates the first redemption transaction.
  • the unlocking script of the eighteenth UTXO can be implemented similar to the unlocking script of the UTXO in the conventional transaction, and will not be elaborated.
  • the lock scripts of the nineteenth UTXO and the twentieth UTXO can be implemented similar to the lock scripts of the UTXO in the conventional transaction, and will not be elaborated.
  • the input of the second redemption transaction includes the twenty-first UTXO and the twenty-second UTXO
  • the output of the second redemption transaction includes the twenty-third UTXO belonging to the buyer's account and the twenty-fourth UTXO belonging to the platform party's account.
  • the twenty-first UTXO is the second UTXO and the twenty-second UTXO is the third UTXO; if the previous transaction of the second redemption transaction is the first period adjustment transaction (that is, the output UTXO of the first period adjustment transaction is used as the input UTXO of the second redemption transaction), then the twenty-first UTXO is The fifth UTXO and the twenty-second UTXO is the sixth UTXO; if the previous transaction of the second redemption transaction is a second period adjustment transaction (that is, the output UTXO of the second period adjustment transaction is used as the input UTXO of the second redemption transaction) , Then the twenty-first UTXO is the ninth UTXO and the twenty-second UTXO is the tenth UTXO.
  • the amount of the twenty-third UTXO is a digital currency equivalent to the transaction commodity, which means that the buyer will redeem the payment in the first mortgage account
  • the amount of the twenty-fourth UTXO is the twenty-second UTXO and the second redemption
  • the difference in the transaction fee receivable by the miner represents the transaction service fee charged by the platform (the twenty-fourth UTXO can be regarded as the twenty-second UTXO minus the miner fee for the second redemption transaction). Note that there is no subsequent transaction for the second redemption transaction, so the miner fee for subsequent transactions is no longer included in the twenty-fourth UTXO.
  • the input and output of the second redemption transaction may also include other UTXOs, which are not limited here.
  • the unlocking script of the twenty-first UTXO includes the signature of the second redemption transaction using the private key of the first mortgage account when the buyer node creates the second redemption transaction.
  • the unlocking script of the twenty-second UTXO can be implemented similarly to the unlocking script of the UTXO in the conventional transaction, and will not be elaborated.
  • the lock scripts of the twenty-third UTXO and the twenty-fourth UTXO can be implemented as similar to the UTXO lock scripts in conventional transactions, and will not be described in detail.
  • the first redemption transaction and the second redemption transaction can be collectively referred to as redemption transactions.
  • the input UTXO and output UTXO of the redemption transaction are renamed here: the input of the redemption transaction includes the second 15 UTXO, the output of the redemption transaction includes the 26th UTXO, where the 25th UTXO of the first redemption transaction is the 17th UTXO and the 26th UTXO of the first redemption transaction is the tenth
  • the twenty-fifth UTXO of the second redemption transaction is the twenty-first UTXO and the twenty-sixth UTXO of the second redemption transaction is the twenty-third UTXO.
  • the miner node can determine the transaction type according to the characteristics of the output UTXO of the transaction, for example, according to the lock script and unlock script in the 25th UTXO Features to determine (the lock script contains the first signature verification instruction or the second signature verification instruction, and the unlock script contains only one signature).
  • the miner node can execute the verification process related to the redemption transaction (at this time, the miner node does not need to specify whether the transaction is the first redemption transaction or the second redemption transaction. Does not affect the execution of the verification process), including at least the following two aspects:
  • the essence of this verification is to use the public key of the first mortgage account in the twenty-fifth UTXO lock script to verify whether the signature of the redemption transaction using the private key of the first mortgage account in the unlock script is true (based on the first signature verification
  • the function of the instruction or the second signature verification instruction verification is implemented), which will not be elaborated here.
  • the current transaction is regarded as the first redemption transaction to continue subsequent verification. That is, verify whether the twenty-fifth UTXO and the twenty-sixth UTXO have the same amount, and whether the twenty-sixth UTXO belongs to the seller account (only the seller node has the right to create the first redemption transaction), if the two UTXO belong to the same amount and The twenty-sixth UTXO belongs to the seller’s account, then the result of this verification is legal, otherwise the result of this verification is illegal.
  • the public key of the seller account is included (the public key of each account in the lock script can be arranged in a preset order, so that it can be clear which public key corresponds to the participant of the transaction Party), so the miner node can determine the seller account accordingly, and then determine whether the twenty-sixth UTXO belongs to the seller account.
  • the above difference is not less than the transaction duration set in the operating parameters, it indicates that the current commodity trading period has expired. At this time, only the second redemption transaction is allowed to be created, so the current transaction is regarded as the second redemption transaction to continue subsequent verification.
  • the redemption period can be several days, which is not limited. This verification aims to restrict the buyer to redeem the transaction payment within a limited period of time (the length is the redemption period) after the end of the commodity transaction period. The funds stay in the first mortgage account indefinitely, avoiding the waste of resources of the trading system.
  • some implementations do not set the redemption time period (this verification is not necessary at this time), that is, these implementations allow the buyer to redeem the mortgaged assets at any time after the end of the commodity trading period.
  • the above difference is less than the sum of the transaction duration set in the operating parameters and the preset redemption duration, verify whether the twenty-fifth UTXO and the twenty-sixth UTXO have the same amount, and whether the twenty-sixth UTXO belongs to the buyer's account (Only the buyer node has the right to create the second redemption transaction). If the two UTXOs have the same amount and the twenty-sixth UTXO belongs to the buyer's account, the result of this verification is legal, otherwise the result of this verification is illegal.
  • the lock script of the twenty-fifth UTXO contains the public key of the buyer's account, so the miner node can determine the buyer's account accordingly, and then determine whether the twenty-sixth UTXO belongs to the buyer's account.
  • the verification result of the second aspect is illegal, otherwise the verification result of the second aspect is legal. It needs to be pointed out that in some implementations, the verified items do not completely include the above verification items or include more items.
  • the redemption transaction is an illegal transaction
  • the miner node will refuse to include the illegal redemption transaction into the set of transactions to be packaged configured to generate the block, otherwise the miner node
  • the legal redemption transactions will be included in the set of transactions to be packaged.
  • the miner node A After receiving the first-term adjustment transaction, the miner node A will calculate the latest block transaction benchmark to verify whether the first-term adjustment transaction has been For creation, it may be assumed that the calculated latest block transaction benchmark is the block transaction benchmark of block X on the blockchain, and the block included in the first period adjustment transaction is block Y, and the miner node A will Block Y is broadcast to another miner node B in the blockchain network.
  • block Y is not linked to the blockchain locally, when the miner node B is the first in the block Y
  • the miner node B When verifying the legitimacy of the deadline adjustment transaction, when the calculated latest block transaction benchmark is still the block transaction benchmark of block X on the blockchain, this is guaranteed because every block in the blockchain is based on The determined hash value points to the previous block, that is, it will not be different because the verification of the transaction by the miner node B occurs after the verification of the transaction by the miner node A. Further, assume that there is still a miner node C on the blockchain network. After receiving the block Y, the miner node C will directly incorporate it into the local blockchain.
  • Block is trying to verify the legality of the first-term adjustment transaction in block Y.
  • miner node C should use the time when block Y has not been linked to the blockchain when calculating the benchmark for the latest block transaction. It should not be calculated based on the real current moment.
  • the first way make appropriate adjustments to the transaction process based on the buyer's mortgage assets.
  • step S202 in FIG. 4 can be adjusted to include the following sub-steps:
  • Step A The buyer node sends a mortgage request to the platform side node.
  • step A the buyer and seller have reached the commodity transaction intention, and the platform node has also generated a transaction serial number.
  • the above mortgage request is configured to instruct the platform side node to mortgage the digital currency.
  • Step B The platform node creates a second mortgage account.
  • the platform node can generate a second mortgage account number according to the transaction serial number and the password preset by the buyer, which is similar to step S111, and will not be elaborated.
  • the password preset by the buyer can be sent to the platform node by the buyer node at a certain time before step B is executed.
  • Step C The platform side node creates a second mortgage transaction.
  • the second mortgage transaction is configured as a second mortgage transaction that transfers the digital currency equivalent to the transaction commodity from the first platform agent account to the second mortgage account, where the digital currency in the first platform agent account is the platform node Based on the legal currency exchanged by the buyer to the platform.
  • the buyer pays the fiat currency to the platform For example, it can be paid by the buyer after the buyer and seller reach the transaction intention, or it can be paid in advance by the buyer at some time before the buyer and seller reach the transaction intention.
  • Step C is similar to step S112. The main difference is that the transaction input is not from the buyer's account, but from the first platform's agent account managed by the platform.
  • Step D The platform node broadcasts the second mortgage transaction on the blockchain network.
  • Step E The miner node verifies the legality of the second mortgage transaction.
  • the miner node After the miner node receives the second mortgage transaction from the blockchain network, it verifies its legitimacy, and if it is legal, it is included in the set of transactions to be packaged configured to generate a block.
  • the verification process can be step S114, which will not be described in detail.
  • the platform party acts as an agent for the buyer's mortgage assets by setting the first platform party's proxy account, which prevents the buyer from directly holding the digital currency and avoids legal risks. Since the second mortgage transaction is created by the platform party, in some implementations, the preset password used in step B can also be generated by the platform party itself, and does not need to be provided by the buyer.
  • the seller node obtains the transaction serial number from the platform side node, and generates a second mortgage account based on the transaction serial number and the preset password provided by the buyer after confirming the successful commodity transaction.
  • the third redemption transaction configured to transfer the digital currency equivalent to the transaction commodity from the second mortgage account to the seller account, and broadcast the third redemption transaction on the blockchain network.
  • the miner node After the miner node receives the third redemption transaction from the blockchain network, it verifies its legitimacy, and if it is legal, it is included in the set of transactions to be packaged configured to generate a block.
  • the third redemption transaction is similar to the first redemption transaction and will not be elaborated here.
  • one first platform party agent account may only act for one buyer account, and in other implementation manners, one first platform party agent account may also act for multiple buyer accounts, which is not limited.
  • the platform party undertakes the redemption task of the digital currency, the digital currency can be issued by an institution other than the platform party, otherwise its pledge value is easily questioned.
  • the platform party itself has strong credit characteristics, it is also possible for the platform party to simultaneously issue and redeem digital currency.
  • the platform node will mortgage the digital currency from the second The account is transferred to the agent account of the second platform party, and then the platform node converts the digital currency in the agent account of the second platform party into legal currency to pay the seller.
  • the second method adopt the transaction process based on the mortgaged assets of the seller.
  • Fig. 6 shows a flowchart of a transaction related to a mortgage of a seller provided by an embodiment of the present application.
  • seller mortgage refers to the way in which the seller mortgages its own assets as a guarantee for the transaction in the process of commodity transactions.
  • Figure 6 shows the third mortgage transaction, the fourth redemption transaction, the third maturity adjustment transaction, the fourth maturity adjustment transaction, and the second distribution transaction in the buyer node, the seller node, the platform side node, and the miner.
  • the interaction process between nodes can be in the same blockchain network, as shown in Figure 2.
  • Fig. 7 shows a transaction flow chart based on seller mortgage provided by an embodiment of the present application.
  • the steps in FIG. 7 can be understood in conjunction with FIG. 6, for example, the specific execution method of the "third mortgage transaction process" in step S402 is shown in FIG.
  • Step S400 The seller converts the legal currency into digital currency.
  • step S400 Before conducting a certain transaction, in order to ensure that there is enough digital currency in the seller's account for mortgage, the seller can exchange the required amount of digital currency with fiat currency and deposit it into the buyer's account. Of course, if there is sufficient digital currency in the seller's account balance before a certain transaction, step S400 may not be executed. Step S400 is similar to step S200, except that the seller exchanges digital currency instead. If there is nothing mentioned in step S400, please refer to the implementation in step S200.
  • Step S401 The buyer and seller reach a transaction intention.
  • Step S401 is similar to step S201. If there is no mention in step S401, please refer to the implementation in step S201.
  • Step S402 Execute the second mortgage transaction process.
  • the second mortgage transaction process is similar to the first mortgage transaction process, except that the party making the mortgage has changed from a buyer node to a seller node.
  • the process is briefly described below:
  • the seller node obtains the transaction serial number from the platform side node, generates a third mortgage account based on the transaction serial number and the password preset by the seller, and creates a configuration to transfer digital currency equivalent to the transaction commodity from the seller's account to the third mortgage account
  • the third mortgage transaction, and then the third mortgage transaction is broadcast on the blockchain network.
  • the platform party wants to charge transaction service fees, when the transaction method based on the seller’s mortgage is adopted, the service fee is paid by the seller (in the third mortgage transaction), so that the seller’s quotation for the goods can be lower, because there is no need for the quotation at this time Including service charge.
  • the miner node After the miner node receives the third mortgage transaction from the blockchain network, it verifies its legitimacy, and after determining the legality of the third mortgage transaction, the third mortgage transaction is included in the set of transactions to be packaged configured to generate a block.
  • Step S402 is similar to step S202. If there is nothing mentioned in step S402, please refer to the implementation in step S202.
  • Step S403 The buyer pays in fiat currency, the seller delivers the goods, and the buyer receives the goods.
  • step S403 the buyer's payment does not have to be through the blockchain, but can be paid to the seller in legal currency through other channels, such as bank transfer or certain electronic currency payment tools, so that the buyer does not need to hold digital currency during the payment process, thus Avoid legal risks.
  • Step S403 is similar to step S203. If there is nothing mentioned in step S403, please refer to the implementation in step S203.
  • Step S404 Execute the fourth redemption transaction process.
  • the fourth redemption transaction process is similar to the second redemption transaction process, except that the party making the redemption behavior has changed from a buyer node to a seller node.
  • the process is briefly described below:
  • the seller node After the end of the commodity trading period, the seller node creates a fourth redemption transaction configured to transfer the digital currency equivalent to the transaction commodity from the third mortgage account to the seller account, and broadcasts the fourth redemption transaction on the blockchain network .
  • the miner node After the miner node receives the fourth redemption transaction from the blockchain network, it verifies its legitimacy, and after determining that the fourth redemption transaction is legal, the fourth redemption transaction is included in the set of transactions to be packaged configured to generate a block.
  • Step S404 is similar to step S210. If there is nothing mentioned in step S404, please refer to the implementation in step S210.
  • the definition of the commodity transaction period mentioned above can be similar to the definition of the commodity transaction period in the transaction process based on the buyer's mortgage: starting from the transaction benchmark of the third mortgage transaction, and ending after a period of time. Among them, the definition method mentioned before can be used when trading benchmarks, and will not be repeated.
  • the aforementioned period of time can be set when creating certain types of transactions.
  • the fourth transaction period set by the seller node when creating the third mortgage transaction and the miner node can verify the validity of the received fourth redemption transaction. Determine whether the commodity trading period has expired according to the transaction benchmark of the third mortgage transaction and the fourth transaction duration, and determine whether the received fourth redemption transaction is illegal after the commodity trading period has not expired, and the fourth redemption transaction is determined to be illegal.
  • the redemption transaction will not be included by the miner node into the set of pending transactions configured to generate blocks. For example, it can be judged whether the latest block transaction benchmark (when the miner node verifies the legality of the fourth redemption transaction) is still in the commodity trading period. If it is not in the commodity trading period, it indicates that the commodity trading period has ended. Otherwise, the commodity trading period has not yet ended. Other transactions that can be used to adjust the commodity trading period will be introduced in the next steps.
  • Step S405 The seller converts the digital currency into legal currency.
  • the transaction payment has been redeemed by the seller, and the transaction can be considered to have ended.
  • the seller can exchange the digital currency in the seller's account into legal currency.
  • Step S405 is similar to step S206. If there is nothing mentioned in step S405, please refer to the implementation in step S206. Note that step S405 is optional. If the seller does not need to exchange legal currency, step S405 may not be executed.
  • the buyer does not need to hold digital currency, only legal currency, and the seller can hold digital currency, but this does not violate the laws and regulations of the aforementioned countries.
  • Step S406 Execute the third period adjustment transaction process.
  • the third-term adjustment transaction process is similar to the first-term adjustment transaction process. The process is briefly described below:
  • both the buyer and seller have the right to instruct their respective nodes to create a third-term adjustment transaction configured to set the fifth transaction duration, and send the third-term adjustment transaction to the platform party node.
  • the fifth transaction duration characterization is configured to replace the fourth transaction duration set in the third mortgage transaction as the length of the new commodity transaction period.
  • the fifth transaction duration can be greater than the fourth transaction duration (indicating extension of the commodity trading period) or less than the fourth transaction duration (indicating shortening the commodity transaction period). If it is the latter, the third-term adjustment transaction shall be restricted to only the buyer The node is created to avoid the seller from redeeming the mortgaged payment before the buyer has received the goods.
  • the platform node broadcasts the third period adjustment transaction on the blockchain network.
  • the miner node After the miner node receives the third-term adjustment transaction from the blockchain network, it verifies its legitimacy, and after determining that the third-term adjustment transaction is legal, the third-term adjustment transaction is included in the set of transactions to be packaged configured to generate blocks.
  • the legality verification includes verification related to the commodity trading period, that is, judging whether the commodity trading period has expired based on the transaction benchmark of the third mortgage transaction and the fourth transaction duration, and will receive the information after the commodity trading period is determined to have ended.
  • the third term adjustment transaction was determined to be illegal.
  • the third-term adjustment transaction determined to be illegal will not be included by the miner node into the set of transactions to be packaged configured to generate blocks.
  • step S406 After step S406 is executed, if the buyer and seller normally complete the transaction during the new commodity trading period, then continue to execute step S404 to step S405. It should be noted that when performing sub-step S322 of step S404, since the third period adjustment transaction has been included in the block chain, the fifth transaction duration set therein has taken effect. At this time, the miner node is verifying whether the fourth redemption transaction When the restrictions on the commodity trading period are met, the fifth trading time period shall be used instead of the fourth trading time period.
  • Step S406 is similar to step S207. If there is nothing mentioned in step S406, please refer to the implementation in step S207.
  • the third term adjustment can be limited to only one creation in the entire commodity transaction process, so as to prevent the buyer or seller from arbitrarily extending the commodity trading period, resulting in the difficulty of ending the commodity transaction.
  • Step S407 Execute the fourth period adjustment transaction process.
  • the fourth-term adjustment transaction process is similar to the second-term adjustment transaction process. The process is briefly described below:
  • both the buyer and the seller cannot complete the commodity transaction on time, both the buyer and the seller have the right to instruct their respective nodes to send an arbitration request to the platform node.
  • the platform node After the platform node receives the arbitration request, it can According to the content of the arbitration request, manual (or smart contract) makes different arbitration results, and then creates an arbitration transaction that can reflect the arbitration result.
  • the arbitration transaction can be a fourth term adjustment transaction or a second allocation transaction, that is to say, steps S407 and step S408 cannot be executed simultaneously.
  • the buyer node or the seller node can send an arbitration request to the platform side node multiple times, and each time the arbitration request is received, the platform side node will create an arbitration transaction.
  • the fourth term adjustment transaction can be created multiple times in a row, but the second allocation transaction can only be created once, and after the second allocation transaction is created, the platform side node can no longer create arbitration transactions.
  • the fourth-term adjustment transaction is configured to adjust the commodity trading period.
  • the sixth transaction duration can be set.
  • the sixth transaction duration characterization is configured to replace the previous transaction duration set in the previous transaction as a new commodity The length of the trading period. If the last transaction is the third mortgage transaction, the last transaction duration is the fourth transaction duration (corresponding to Figure 7, after steps S402 and S403 are executed, step S407 is entered); if the previous transaction is a third-term adjustment transaction, then The last transaction duration is the fifth transaction duration (corresponding to Figure 7, after step S406 is executed, step S407 is entered); if the last transaction is the last fourth term adjustment transaction (according to the previous explanation, the platform node can continuously create multiple A fourth period adjustment transaction), the last transaction duration is the last sixth transaction duration (corresponding to FIG. 7, after step S407 is executed, step S407 is entered again).
  • the sixth transaction duration can be greater than the last transaction duration (indicating extension of the commodity trading period) or less than the last transaction duration (indicating shortening the commodity transaction period).
  • the platform node broadcasts the fourth term adjustment transaction on the blockchain network.
  • the miner node After the miner node receives the fourth-term adjustment transaction from the blockchain network, it verifies its legitimacy, and after determining that the fourth-term adjustment transaction is legal, the fourth-term adjustment transaction is included in the set of transactions to be packaged configured to generate blocks.
  • the legality verification includes verification related to the commodity trading period, that is, judging whether the commodity trading period has expired based on the transaction benchmark of the third mortgage transaction and the previous transaction duration, and will receive the information after the commodity trading period is determined to have ended.
  • the fourth term adjustment transaction was determined to be illegal.
  • the fourth-term adjustment transaction determined to be illegal will not be included by the miner node into the set of transactions to be packaged configured to generate blocks.
  • step S407 After step S407 is executed, if the buyer and seller have normally completed the transaction during the new commodity trading period, then continue to execute step S404 to step S405. It should be noted that when performing sub-step S322 of step S404, since the fourth deadline adjustment transaction has been included in the block chain, the sixth transaction duration set therein has taken effect. At this time, the miner node is verifying whether the fourth redemption transaction When it meets the restrictions on the commodity trading period, the sixth trading duration shall be used instead of the previous trading duration.
  • Step S407 is similar to step S208. If there is nothing mentioned in step S407, please refer to the implementation in step S208.
  • Step S408 Execute the second distribution transaction process.
  • the second distribution transaction process is similar to the first distribution transaction process. The process is briefly described below:
  • both the buyer and the seller cannot complete the commodity transaction on time, both the buyer and the seller have the right to instruct their respective nodes to send an arbitration request to the platform node.
  • the platform node After the platform node receives the arbitration request, it can Create a second distribution transaction.
  • the second allocation transaction is configured to allocate digital currency equivalent to the transaction commodity from the third mortgage account to the seller account and/or the platform side account, and the digital currency allocated to the platform side account is configured to compensate the buyer during the commodity transaction Part or all of the legal currency paid to the seller.
  • this part of the digital currency can also include the arbitration fee charged by the platform.
  • the buyer account is not involved, because the buyer does not hold digital currency, so the buyer account will not be created on the blockchain. Even if a part of the digital currency is to be paid to the buyer according to the arbitration result, it will be collected by the platform account, and then converted into legal currency and transferred to the buyer.
  • the platform has the ability to confiscate all the seller's income (fiat currency obtained in S403) to compensate the buyer to ensure the fairness of the transaction.
  • the previous transaction of the second distribution transaction may be the first mortgage transaction (corresponding to FIG. 7, and proceed to step S408 after the execution of steps S402 and S403), or may be a third term adjustment transaction (corresponding to FIG. 7, executed in step S406) Then go to step S408), or it can be a fourth time limit adjustment transaction (corresponding to FIG. 7, go to step S408 after step S407 is executed).
  • step S407 there are some special abnormal situations that may cause the transaction process to enter step S407 or step S408 (that is, platform party arbitration is required), for example, a third-term adjustment transaction is created (step S406), but the commodity transaction period is not successful Extension (may be caused by node failure on the blockchain network, etc.), at this time the buyer or seller can apply to the platform for arbitration.
  • the miner node is also configured to receive and verify the legality of the second distribution transaction from the blockchain network, and after determining that the second distribution transaction is legal, incorporate the second distribution transaction into the set of transactions to be packaged configured to generate a block;
  • the platform node broadcasts the second distribution transaction on the blockchain network.
  • the miner node After the miner node receives the second distribution transaction from the blockchain network, it verifies its legitimacy, and after determining that the second distribution transaction is legal, the second distribution transaction is included in the set of transactions to be packaged configured to generate a block.
  • the legality verification includes verification related to the commodity trading period, that is, judging whether the commodity trading period has expired based on the transaction benchmark of the third mortgage transaction and the previous transaction duration, and will receive the information after the commodity trading period is determined to have ended.
  • the second distribution transaction was determined to be illegal.
  • the second distribution transaction determined to be illegal will not be included by the miner node into the set of transactions to be packaged configured to generate blocks.
  • step S408 since the digital currency in the third mortgage account has been forcibly distributed, it is meaningless to continue to create various types of transactions, so this commodity transaction has substantially ended (of course, it may not have reached the commodity at this time. The end of the trading period).
  • Step S408 is similar to step S209. If there is nothing mentioned in step S408, please refer to the implementation in step S209.
  • the last transaction of the fourth redemption transaction may be the third mortgage transaction (corresponding to FIG. 7, and proceed to step S404 after the execution of steps S402 and S403), or may be a third term adjustment transaction (corresponding to FIG. 7, in step S406) After execution, proceed to step S404), or it may be a fourth deadline adjustment transaction (corresponding to FIG. 7, and proceed to step S404 after step S407 is executed).
  • step S404 there are some special abnormal situations that may also cause the transaction process to enter step S404, such as the creation of a fourth-term adjustment transaction (step S407), but the commodity transaction period has not been successfully extended (may be due to the blockchain network Node failure and other reasons), another example is the creation of a second distribution transaction (go to step S408), but the digital currency distribution fails (may be caused by node failure on the blockchain network, etc.), at this time the seller can redeem the payment,
  • step S408 the creation of a fourth-term adjustment transaction
  • step S404 the commodity transaction period has not been successfully extended (may be due to the blockchain network Node failure and other reasons)
  • step S408 another example is the creation of a second distribution transaction (go to step S408), but the digital currency distribution fails (may be caused by node failure on the blockchain network, etc.), at this time the seller can redeem the payment
  • step S408 the commodity transaction should end, but if the transaction process is not executed normally in step S408, step S404 can be entered.
  • the miner node After the miner node receives the fourth redemption transaction from the blockchain network, it verifies its legitimacy, and after determining that the fourth redemption transaction is legal, the fourth redemption transaction is included in the set of transactions to be packaged configured to generate a block.
  • the legality verification includes verification related to the commodity trading period, that is, judging whether the commodity trading period has expired based on the transaction benchmark of the third mortgage transaction and the last transaction duration, and will receive the information after it is determined that the commodity trading period has not expired.
  • the fourth redemption transaction was determined to be illegal.
  • the fourth redemption transaction determined to be illegal will not be included by the miner node in the set of transactions to be packaged configured to generate blocks.
  • the miner node in addition to receiving various transactions (including the third mortgage transaction, the third maturity adjustment transaction, the fourth maturity adjustment transaction, the second distribution transaction, and the fourth redemption transaction), the miner node will verify its legality. After receiving a new block created by other miner nodes, the legality of the various transactions included in it is also verified (if these transactions are included in the block), and the verification method can be the same as when receiving various transactions. The same way.
  • the above transaction process based on the seller's mortgage may be inconvenient if it is applied to physical transactions. Because the seller has to mortgage the assets before selling the goods, it may make it difficult for the seller to bear it, and it is not in line with the general merchants' understanding of commodity transactions. Therefore, relatively speaking, physical transactions are more suitable for the transaction process based on buyer's mortgage.
  • the inventor has discovered through long-term research that digital assets and/or authorization for the use of digital assets are a type of transaction commodity suitable for the seller's mortgage transaction process (of course, this does not exclude other commodities that are also applicable to the seller's mortgage method).
  • the cost of copying this kind of goods is almost zero. It is reasonable to require the seller to mortgage a certain digital currency before selling (equivalent to a constraint on the seller to avoid selling low-cost goods, even if they do evil from it. How much to lose).
  • digital assets can be, but are not limited to, products such as digital music, software, e-books, electronic games, or game props.
  • the object sold by the seller can be the digital asset itself, the authorization to use the digital asset, or both.
  • the first few pages of an e-book can be provided to the buyer for trial reading, and the rest of the content is encrypted with a password (such as symmetric encryption, not limited), and the buyer needs to obtain the decryption password provided by the seller to continue reading .
  • the above decryption password is a kind of authorization to use digital assets. After obtaining the decryption password, the buyer can use it with certain decryption tools to realize the decryption of digital assets.
  • the realization form of the authorization of the right to use digital assets can also be a copyright control file, or use both a decryption password and a copyright control file.
  • each block in the flowchart or block diagram may represent a module, program segment, or part of the code, and the module, program segment, or part of the code contains one or more components configured to implement the specified logic function.
  • Executable instructions may also occur in a different order from the order marked in the drawings.
  • each block in the block diagram and/or flowchart and the combination of the blocks in the block diagram and/or flowchart can be implemented by a dedicated hardware-based system that performs the specified functions or actions. Or it can be realized by a combination of dedicated hardware and computer instructions.
  • the functional modules in the various embodiments of the present application may be integrated together to form an independent part, or each module may exist alone, or two or more modules may be integrated to form an independent part.
  • the function is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of this application essentially or the part that contributes to the existing technology or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including several
  • the instructions are used to make the computer equipment execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the foregoing computer devices include: personal computers, servers, mobile devices, smart wearable devices, network devices, or virtual devices and other devices that have the ability to execute program code.
  • the foregoing storage media include: U disk, mobile hard disk, read-only memory, Random access memory, magnetic disks, tapes or optical disks and other media that can store program codes.

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Computer Security & Cryptography (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

一种交易系统(200)、方法以及交易系统中的节点。其中,交易系统(200)的平台方节点(230)配置成生成交易流水号;买方节点(210)配置成根据交易流水号以及密码生成第一抵押账号,创建将数字货币从买方账号转移至第一抵押账号的第一抵押交易,并将该交易在区块链网络(250)上广播;卖方节点(220)配置成根据交易流水号以及买方提供的密码生成第一抵押账号,创建将数字货币从第一抵押账号转移至卖方账号的第一赎回交易,并将该交易在区块链网络(250)上广播;矿工节点(240)配置成在确定从区块链网络(250)上接收到的交易合法后,将其纳入到待打包交易集合。该交易系统(200)利用区块链为商品交易提供担保,使得对电商平台的运营实体的资质要求得到降低。

Description

交易系统、方法以及交易系统中的节点
相关申请的交叉引用
本申请要求于2019年05月20日提交中国专利局的申请号为CN201910416814.6、名称为“交易系统、方法以及交易系统中的节点”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及电子商务技术领域,具体而言,涉及一种交易系统、方法以及交易系统中的节点。
背景技术
在传统电子商务活动中,常以中间人作保方式让交易双方实现交易。例如,在网络上购物,买方信不过卖方,做不到直接打款给卖方,而卖方也信不过买方,如果买方未付款,就不会先发货。于是,由某个电商平台作为中间保人,买方先给电商平台打款,卖方见买方已付款,于是放心给买方发货,而买方收货后确认货品无误,就指示电商平台将已付款项转给卖方。
其中,作为交易第三方的电商平台应当具有强信用特征,以便买卖双方都能够给予其充分的信任。如此一来,对电商平台的运营实体的资质提出了较高的要求,大企业在这方面相对于中小企业或者个人具有天然优势,导致在电子商务领域容易出现个别大企业垄断的现象,不利于商品经济发展。
发明内容
有鉴于此,本申请实施例提供一种交易系统、方法以及交易系统中的节点,通过在区块链上转账交易来表达真实的电商交易,利用区块链的特性来提供交易担保,代替传统的电商平台的交易担保功能。使得对电商平台的运营实体的资质要求得到降低,有利于更多的企业或个人开展电商业务,促进商品经济繁荣发展。
为实现上述目的,本申请提供如下技术方案:
第一方面,本申请提供一种交易系统,包括区块链网络中的买方节点、卖方节点、平台方节点以及矿工节点;所述平台方节点配置成在买方与卖方达成商品交易意向后生成交易流水号;所述买方节点配置成从所述平台方节点获取所述交易流水号,根据所述交易流水号以及买方预设的密码生成第一抵押账号,创建配置成将与交易商品等价的数字货币从买方账号转移至所述第一抵押账号的第一抵押交易,并将所述第一抵押交易在所述区块链网络上广播;所述卖方节点配置成从所述平台方节点获取所述交易流水号,根据所述交易流水号以及买方在确认所述商品交易成功后提供的所述预设的密码生成所述第一抵押账号,创建配置成将与交易商品等价的数字货币从所述第一抵押账号转移至卖方账号的第一赎回交易,并将所述第一赎回交易在所述区块链网络上广播;所述矿工节点配置成从所述区块链网络上接收并验证所述第一抵押交易的合法性,并在确定所述第一抵押交易合法后将所述第一抵押交易纳入到配置成生成区块的待打包交易集合,以及配置成从所述区块链网络上接收并验证所述第一赎回交易,并在确定所述第一赎回交易合法后将所述第一赎回交易纳入到配置成生成区块的待打包交易集合。
上述交易系统借助于区块链上转账交易来表达真实的电商交易,即:在买卖双方达成交易意向后,买方通过买方节点创建的第一抵押交易将自身资产(与交易商品等价的数字货币)抵押到区块链上的临时账号(第一抵押账号),在买方确认商品交易成功后,卖方通过卖方节点创建的第一赎回交易将买方抵押的资产从临时账号中赎得,从而完成了资产从买方到卖方的转移,即完成了本次商品交易。其中,第一抵押交易和第一赎回交易都是区块链上的转账交易,即会被竞争到记账权的矿工节点记录到区块链上(如果交易合法的话)。
由于区块链具有透明记账和不可篡改的特性,使得其可以为商品交易提供担保,代替传统的电商平台的交易担保功能,交易系统中由电商平台运营的平台方节点只需要辅助交易的顺利进行(例如,产生交易流水号),而不需要再为商品交易提供信用担保。因此,对电商平台的运营实体的资质要求得到降低,使得更多的企业或个人参与到电子商务中来,避免垄断并促进竞争,有利于商品经济的繁荣发展。
同时,由于区块链具有去中心化的特性,使得买卖双方信任的主体不再是某个单一的机构(如运营电商平台的大型企业),不必担心单一机构自身出现安全问题或大规模设备故障,使得商品交易的安全 性和可靠性进一步提高。
此外,由于区块链还具有交易自动处理的特性,有利于减少交易过程中的人工服务,商品交易的自动化程度更高并且交易更易达成,同时电商平台的运营成本也得到降低。
在第一方面的一些实现方式中,所述买方节点还配置成在创建所述第一抵押交易时设置第一交易时长;所述矿工节点在验证接收到的所述第一赎回交易的合法性时,根据作为商品交易期的起点的所述第一抵押交易的交易基准时以及所述第一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第一赎回交易确定为非法,被确定为非法的所述第一赎回交易不会被所述矿工节点纳入到配置成生成区块的待打包交易集合;其中,所述区块链上的一项交易的交易基准时为所述交易被纳入到配置成生成区块的待打包交易集合时的最近区块事务基准时,所述最近区块事务基准时为所述区块链上最近一个已确定区块事务基准时的区块的区块事务基准时,所述区块链上的一个区块的区块事务基准时为根据所述区块的生成时间计算出的一个时刻,且所述时刻与所述区块在所述区块链中的高度正相关。
在上述实现方式中,通过设置第一交易时长的方式为商品交易指定一个商品交易期,限制商品交易在有限的时间段内完成,提高安全性,避免资源浪费,以增强交易系统的实用性。
其中,商品交易期的起点为第一抵押交易的交易基准时,一项交易的交易基准时可以定义为该项交易被纳入到配置成生成区块的待打包交易集合时的最近区块事务基准时,进一步地,最近区块事务基准时可以定义为区块链上最近一个已确定区块事务基准时的区块的区块事务基准时,进一步地,区块链上的一个区块的区块事务基准时可以定义为根据该区块的生成时间计算出的一个时刻。每个区块均对应有一个区块事务基准时,重要的是,区块事务基准时具有单向增长的特性,即相邻的两个区块中,后一个区块(在区块链中的高度较大的区块)的区块事务基准时总是晚于前一个区块(在区块链中的高度较小的区块)的区块事务基准时。区块事务基准时所具有的单向增长特性使得关于商品交易期(例如上面提到的第一赎回交易是否发生在商品交易期截止前)的判断具有确定性。
在第一方面的一些实现方式中,区块链上的一个区块的区块事务基准时为在所述区块链上以所述区块为中心区块的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(Unspent Transaction 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(Simplified Payment 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 Programmable Read-Only Memory,简称EEPROM)等。处理器110以及其他可能的组件可对存储器120进行访问,读和/或写其中的数据。
处理器110包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器110可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(Network Processor,简称NP)或者其他常规处理器;还可以是专用处理器,包括数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated 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 Execution Environment),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模型。
在比特币系统中实现的一项交易,是通过构造一个含有输入与输出的交易记录(简称交易),转账时在比特比网络的各矿工共同监督下记账,把交易纳入到某个区块,再将各个区块串接成区块链。每一笔交易的输入都会花费之前一笔或多笔交易的输出(创币交易除外),同时自身也会产生新的输出。具体而言,交易的输入项包括之前的交易产生的一个或多个未花费交易输出(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。附加服务的内容可以包括,但不限于帮助撮合交易、提供比价信息或提供云计算托管,等等。需要指出,不依赖于附加服务,商品交易同样可以进行,附加服务旨在增强交易的便利性。
第二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的解锁脚本中提供的签名是否正确,其具体验证过程在阐述解锁脚本时再解释,CHECK_MR_SIG的功能和比特币中的CHECKSIG和CHECKMULTISIG功能有类似之处,当然在具体的验证操作上是不同的。
第二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的解锁脚本中提供的签名是否正确,CHECK_PP_SIG的功能和比特币中的CHECKSIG和CHECKMULTISIG功能有类似之处,当然在具体的验证操作上是不同的。
第五UTXO的锁定脚本具有限制功能,使得第五UTXO中的数字货币仅能以以下几种方式被花费(如可以通过几个公钥、第一抵押操作参数以及第二签名验证指令的验证逻辑配合实现),即将第五UTXO作为后续交易的输入UTXO:第一,在第二期限调整交易中对其进行平移(产生第九UTXO,见后文阐述);第二,在第一分配交易中被分配(产生第十四UTXO、第十五UTXO以及第十六UTXO中的至少一项,见后文阐述);第三,在第一赎回交易中被卖方赎得(产生第十九UTXO,见后文阐述);第四,在第二赎回交易中被买方赎得(产生第二十三UTXO,见后文阐述)。以上的交易在企图将第五UTXO纳入其交易输入时应提供与第五UTXO的锁定脚本配套的解锁脚本。
步骤S133中,矿工节点在接收到区块链上的交易后,可以根据交易的输出UTXO的锁定脚本的签名验证指令的特点来判断交易类型,例如,第一期限调整交易的第五UTXO的锁定脚本中的第二签名验证指令是期限调整交易独有的,且其前包括5个参数,据此矿工节点可以确定接收到的为期限调整交易,同时,矿工节点还可以进一步区分出期限调整交易到底是第一期限调整交易还是第二期限调整交易(具体方法在后面介绍第二期限调整交易在UTXO模型下的实现方式时再介绍)。
确定了接收到的交易为第一期限调整交易后,矿工节点可以执行和第一期限调整交易相关的验证流 程。至少包括以下两方面内容:
第一,验证第二UTXO的解锁脚本是否与其锁定脚本匹配。矿工节点将锁定脚本和解锁脚本组合为一个完整的脚本如下:
Figure PCTCN2020088800-appb-000001
表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 (47)

  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. 一种交易方法,其特征在于,应用于交易系统中的买方节点,所述方法包括:
    从所述交易系统的平台方节点获取商品交易的交易流水号;
    根据所述交易流水号以及买方预设的密码生成第一抵押账号,并创建配置成将与交易商品等价的数字货币从买方账号转移至所述第一抵押账号的第一抵押交易;
    将所述第一抵押交易在部署有所述交易系统的区块链网络上广播。
  33. 根据权利要求32所述的交易方法,其特征在于,所述方法还包括:在创建所述第一抵押交易时设置第一交易时长,所述第一交易时长被所述交易系统中的矿工节点配置成判断以所述第一抵押交易的交易基准时为起点的商品交易期是否已经截止;
    其中,所述区块链上的一项交易的交易基准时为所述交易被纳入到配置成生成区块的待打包交易集合时的最近区块事务基准时,所述最近区块事务基准时为所述区块链上最近一个已确定区块事务基准时的区块的区块事务基准时,所述区块链上的一个区块的区块事务基准时为根据所述区块的生成时间计算出的一个时刻,且所述时刻与所述区块在所述区块链中的高度正相关。
  34. 根据权利要求33所述的交易方法,其特征在于,所述方法还包括:
    在获得指示调整交易时长的信息后,创建配置成设置第二交易时长的第一期限调整交易,所述第二交易时长表征配置成替换所述第一交易时长作为确定所述商品交易期是否已经截止的依据;
    将所述第一期限调整交易发送至所述平台方节点,由所述平台方节将所述第一期限调整交易在所述区块链网络上广播。
  35. 根据权利要求34所述的交易方法,其特征在于,所述方法还包括:
    在商品交易期截止后,创建配置成将与交易商品等价的数字货币从所述第一抵押账号转移至所述买方账号的第二赎回交易;
    将所述第二赎回交易在所述区块链网络上广播。
  36. 一种交易方法,其特征在于,应用于交易系统中的卖方节点,所述方法包括:
    从所述交易系统的平台方节点获取商品交易的交易流水号;
    根据所述交易流水号以及买方在确认商品交易成功后提供的预设的密码生成第一抵押账号,并创建配置成将与交易商品等价的数字货币从所述第一抵押账号转移至卖方账号的第一赎回交易;
    将所述第一赎回交易在部署有所述交易系统的区块链网络上广播。
  37. 根据权利要求36所述的交易方法,其特征在于,所述方法还包括:
    在获得指示调整交易时长的信息后,创建配置成设置第二交易时长的第一期限调整交易,所述第二交易时长表征配置成替换第一交易时长作为确定所述商品交易期是否已经截止的依据,其中,所述第一交易时长是所述交易系统中的买方节点在创建所述第一抵押交易时设置的;
    将所述第一期限调整交易发送至所述平台方节点,由所述平台方节将所述第一期限调整交易在所述区块链网络上广播。
  38. 一种交易方法,其特征在于,应用于交易系统中的平台方节点,所述方法包括:
    从所述交易系统中的买方节点或卖方节点接收针对商品交易的仲裁请求;
    根据所述仲裁请求创建仲裁类交易,所述仲裁类交易为配置成设置第三交易时长的第二期限调整交易,或,所述仲裁类交易为配置成将与交易商品等价的数字货币从第一抵押账号分配至买方账号、卖方账号以及平台方账号中的至少一个账号的第一分配交易,其中,所述第三交易时长表征配置成替换上一交易时长作为确定商品交易期是否已经截止的依据,若在本次创建的交易之前未创建过期限调整交易,则所述上一交易时长为第一交易时长,否则所述上一交易时长为最近一次创建的期限调整交易设置的交易时长;
    将所述仲裁类交易在部署有所述交易系统的区块链网络上广播。
  39. 一种交易方法,其特征在于,应用于交易系统中的矿工节点,所述方法包括:
    从部署有所述交易系统的区块链网络上接收并验证第一抵押交易的合法性,并在确定所述第一抵押交易合法后将所述第一抵押交易纳入到配置成生成区块的待打包交易集合;
    从所述区块链网络上接收并验证第一赎回交易的合法性,并在确定所述第一赎回交易合法后将所述第一赎回交易纳入到配置成生成区块的待打包交易集合。
  40. 根据权利要求39所述的交易方法,其特征在于,所述验证第一赎回交易的合法性,包括:
    根据作为商品交易期的起点的所述第一抵押交易的交易基准时以及第一交易时长判断所述商品交易期是否已经截止,并在确定所述商品交易期已经截止后将接收到的所述第一赎回交易确定为非法,被确定为非法的所述第一赎回交易不会被所述矿工节点纳入到配置成生成区块的待打包交易集合;
    其中,所述第一交易时长是所述交易系统中的买方节点在创建所述第一抵押交易时设置的,所述区块链上的一项交易的交易基准时为所述交易被纳入到配置成生成区块的待打包交易集合时的最近区块事务基准时,所述最近区块事务基准时为所述区块链上最近一个已确定区块事务基准时的区块的区块事务基准时,所述区块链上的一个区块的区块事务基准时为根据所述区块的生成时间计算出的一个时刻,且所述时刻与所述区块在所述区块链中的高度正相关。
  41. 根据权利要求39或40所述的交易方法,其特征在于,所述方法还包括:
    从所述区块链网络上接收除自身以外的其他矿工节点生成的区块;
    若接收到的区块中纳入了第一抵押交易,则验证纳入的所述第一抵押交易的合法性,并在确定所述第一抵押交易为非法后,拒绝将接收到的区块保存至本地的区块链中;
    若接收到的区块中纳入了第一赎回交易,则验证纳入的所述第一赎回交易的合法性,并在确定所述第一赎回交易为非法后,拒绝将接收到的区块保存至本地的区块链中。
  42. 一种交易方法,其特征在于,应用于交易系统中的平台方节点,所述方法包括:
    在买方与卖方达成商品交易意向后生成交易流水号;
    从所述交易系统的买方节点接收指示进行数字货币抵押的抵押请求;
    根据所述交易流水号以及买方预设的密码生成第二抵押账号,创建配置成将与交易商品等价的数字货币从第一平台方代理账号转移至所述第二抵押账号的第二抵押交易,其中,所述第一平台方代理账号中的数字货币是所述平台方节点根据买方支付给平台方的法币兑换的;
    将所述第二抵押交易在部署有所述交易系统的区块链网络上广播。
  43. 一种交易方法,其特征在于,应用于交易系统中的卖方节点,所述方法包括:
    从所述交易系统的平台方节点获取商品交易的交易流水号;
    根据所述交易流水号以及卖方预设的密码生成第三抵押账号,并创建配置成将与交易商品等价的数字货币从卖方账号转移至所述第三抵押账号的第三抵押交易;
    将所述第三抵押交易在部署有所述交易系统的区块链网络上广播;
    在商品交易期截止后创建配置成将与交易商品等价的数字货币从所述第三抵押账号转移至卖方账号的第四赎回交易,以及将所述第四赎回交易在所述区块链网络上广播。
  44. 一种买方节点,其特征在于,部署于区块链网络中,所述买方节点包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求32-35中任一项所述的方法的步骤。
  45. 一种卖方节点,其特征在于,部署于区块链网络中,所述卖方节点包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求36、37或43中任一项所述的方法的步骤。
  46. 一种平台方节点,其特征在于,部署于区块链网络中,所述平台方节点包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求38或42所述的方法的步骤。
  47. 一种矿工节点,其特征在于,部署于区块链网络中,所述矿工节点包括存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求39-41中任一项所述的方法的步骤。
PCT/CN2020/088800 2019-05-20 2020-05-06 交易系统、方法以及交易系统中的节点 WO2020233404A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910416814.6A CN111967860B (zh) 2019-05-20 2019-05-20 交易系统、方法以及交易系统中的节点
CN201910416814.6 2019-05-20

Publications (1)

Publication Number Publication Date
WO2020233404A1 true WO2020233404A1 (zh) 2020-11-26

Family

ID=73357879

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/088800 WO2020233404A1 (zh) 2019-05-20 2020-05-06 交易系统、方法以及交易系统中的节点

Country Status (2)

Country Link
CN (1) CN111967860B (zh)
WO (1) WO2020233404A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559819A (zh) * 2020-12-16 2021-03-26 深圳市德邦物流有限公司 物流信息查询方法、装置、电子设备和存储介质
CN112765622A (zh) * 2021-01-13 2021-05-07 中国外运股份有限公司 一种电子提单的数字证书管理方法、装置、设备及介质
CN112801785A (zh) * 2021-01-13 2021-05-14 中央财经大学 基于区块链智能合约的公平数据交易方法及装置
CN113610520A (zh) * 2021-07-21 2021-11-05 上海浦东发展银行股份有限公司 数据处理方法、系统、装置、计算机设备和存储介质
CN113935836A (zh) * 2021-10-19 2022-01-14 平安科技(深圳)有限公司 基于Fabric联盟链的跨境支付方法、系统、设备、介质
CN114429348A (zh) * 2022-01-10 2022-05-03 普洛斯科技(重庆)有限公司 一种生成质押单的方法及装置
CN114638604A (zh) * 2022-03-22 2022-06-17 成都质数斯达克科技有限公司 基于区块链的金融业务计费、收费方法及装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112700240B (zh) * 2021-03-24 2021-06-25 南京金宁汇科技有限公司 基于utxo架构的区块链中交易手续费提升方法及系统
CN113220786B (zh) * 2021-05-25 2022-05-24 杭州复杂美科技有限公司 物流存证方法、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108234470A (zh) * 2017-12-28 2018-06-29 江苏通付盾科技有限公司 区块链网络中区块打包方法及系统、电子设备、存储介质
CN108596608A (zh) * 2018-04-28 2018-09-28 比飞力(深圳)科技有限公司 一种数字钱包交易的方法及装置
WO2018197487A1 (en) * 2017-04-24 2018-11-01 Blocksettle Ab Method and system for creating a user identity
CN109493018A (zh) * 2018-11-06 2019-03-19 徐宁 一种基于区块链的c2c交易和清算系统及方法
US10565645B1 (en) * 2014-05-20 2020-02-18 Wells Fargo Bank, N.A. Systems and methods for operating a math-based currency exchange

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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
WO2018197487A1 (en) * 2017-04-24 2018-11-01 Blocksettle Ab Method and system for creating a user identity
CN108234470A (zh) * 2017-12-28 2018-06-29 江苏通付盾科技有限公司 区块链网络中区块打包方法及系统、电子设备、存储介质
CN108596608A (zh) * 2018-04-28 2018-09-28 比飞力(深圳)科技有限公司 一种数字钱包交易的方法及装置
CN109493018A (zh) * 2018-11-06 2019-03-19 徐宁 一种基于区块链的c2c交易和清算系统及方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559819A (zh) * 2020-12-16 2021-03-26 深圳市德邦物流有限公司 物流信息查询方法、装置、电子设备和存储介质
CN112765622A (zh) * 2021-01-13 2021-05-07 中国外运股份有限公司 一种电子提单的数字证书管理方法、装置、设备及介质
CN112801785A (zh) * 2021-01-13 2021-05-14 中央财经大学 基于区块链智能合约的公平数据交易方法及装置
CN112801785B (zh) * 2021-01-13 2023-10-20 中央财经大学 基于区块链智能合约的公平数据交易方法及装置
CN112765622B (zh) * 2021-01-13 2024-04-16 中国外运股份有限公司 一种电子提单的数字证书管理方法、装置、设备及介质
CN113610520A (zh) * 2021-07-21 2021-11-05 上海浦东发展银行股份有限公司 数据处理方法、系统、装置、计算机设备和存储介质
CN113935836A (zh) * 2021-10-19 2022-01-14 平安科技(深圳)有限公司 基于Fabric联盟链的跨境支付方法、系统、设备、介质
CN113935836B (zh) * 2021-10-19 2024-03-22 平安科技(深圳)有限公司 基于Fabric联盟链的跨境支付方法、系统、设备、介质
CN114429348A (zh) * 2022-01-10 2022-05-03 普洛斯科技(重庆)有限公司 一种生成质押单的方法及装置
CN114638604A (zh) * 2022-03-22 2022-06-17 成都质数斯达克科技有限公司 基于区块链的金融业务计费、收费方法及装置

Also Published As

Publication number Publication date
CN111967860A (zh) 2020-11-20
CN111967860B (zh) 2024-08-13

Similar Documents

Publication Publication Date Title
WO2020233404A1 (zh) 交易系统、方法以及交易系统中的节点
US20240320637A1 (en) Virtual currency system
US10657595B2 (en) Method of tokenization of asset-backed digital assets
US10055720B2 (en) Virtual currency system
US10592985B2 (en) Systems and methods for a commodity contracts market using a secure distributed transaction ledger
US20190066206A1 (en) Peer-to-peer trading with blockchain technology
KR20210024994A (ko) 디지털 자산 교환
US9398018B2 (en) Virtual currency system
US20170337534A1 (en) Systems and methods for blockchain virtualization and scalability
CA3004263C (en) Virtual currency system
CN111418184A (zh) 基于区块链的可信保函
Schueffel et al. The Crypto Encyclopedia: Coins, tokens and digital assets from A to Z
KR102181078B1 (ko) 블록체인 기반 중고거래 플랫폼 시스템
CN110275925B (zh) 基于区块链的虚拟资源分配方法和装置
CN111417945A (zh) 基于区块链的可信保函
US20220138748A1 (en) Method and system for settling a blockchain transaction
CN111433799A (zh) 基于区块链的可信保函
KR20200065307A (ko) 블록체인 기반의 스마트 보증서 제공 방법 및 시스템
GB2578168A (en) Computer-implemented method and system for digital signing of transactions
CN110807634A (zh) 基于Hasp哈希链与智能合约的二手票券交易方法和平台
CN112016114B (zh) 基于加密货币的智能合约生成方法、相关设备及存储介质
CN112400298B (zh) 验证交易系统和方法用于加至电子区块链
WO2023201360A2 (en) Method, controller, and computer-readable medium for replacement of a cancelled repeating transfer data structure on a distributed transfer network
KR20240145462A (ko) 지불 네트워크에서 환불 거래 후 nft(대체불가능 토큰)의 소유권의 양도를 위한 방법 및 시스템
KR102149998B1 (ko) 멀티 체인 레이어를 이용한 블록체인 기반 인수 합병 서비스 제공 시스템 및 이의 동작 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20809105

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20809105

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 11/05/2022)

122 Ep: pct application non-entry in european phase

Ref document number: 20809105

Country of ref document: EP

Kind code of ref document: A1