WO2020059865A1 - Settlement system, settlement method, user device, and settlement program - Google Patents

Settlement system, settlement method, user device, and settlement program Download PDF

Info

Publication number
WO2020059865A1
WO2020059865A1 PCT/JP2019/037063 JP2019037063W WO2020059865A1 WO 2020059865 A1 WO2020059865 A1 WO 2020059865A1 JP 2019037063 W JP2019037063 W JP 2019037063W WO 2020059865 A1 WO2020059865 A1 WO 2020059865A1
Authority
WO
WIPO (PCT)
Prior art keywords
transaction
payment
template
blockchain
service provider
Prior art date
Application number
PCT/JP2019/037063
Other languages
French (fr)
Japanese (ja)
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 日本電信電話株式会社
Priority to US17/275,103 priority Critical patent/US11893583B2/en
Publication of WO2020059865A1 publication Critical patent/WO2020059865A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • G06Q20/027Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP] involving a payment switch or gateway
    • 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/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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • 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/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/108Network architectures or network communication protocols for network security for controlling access to devices or network resources when the policy decisions are valid for a limited amount of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Definitions

  • the present invention relates to blockchain technology, and more particularly, to technology for linking a plurality of blockchains.
  • a mechanism that can guarantee reliability without requiring centralized management is becoming popular, especially for the digital cryptocurrency Bitcoin.
  • this mechanism called blockchain the reliability of the exchanged information is ensured by the consensus building process in the distributed network, and the integrity of the system is prevented by preventing tampering such as tampering and double use throughout the system. Dripping.
  • transaction information (transactions) of virtual currency between participants is organized in units of "blocks", and each block is managed in a time series in a daisy chain.
  • the approval of the new block is formed by an agreement algorithm in a distributed network such as Proof of Work.
  • the approval of the new block indicates that the currency transactions recorded inside the block have been agreed system-wide.
  • a book of a series of transaction information managed using this blockchain is called a “distribution ledger”, and each node (terminal) participating in the network holds the same distributed ledger.
  • off-chain transaction is a method in which not all transactions are recorded on the blockchain, but only the final result of transactions between two parties performed outside the blockchain is recorded on the blockchain.
  • a payment channel which is a type of off-chain transaction, a channel that realizes virtual payment is constructed by exchanging incomplete transactions between two users. be able to.
  • the user can pay for the service to the service provider, but cannot pay in the opposite direction (from the service provider to the user). That is, when the payment is canceled, the service provider cannot refund the user using the same channel.
  • the service provider does not broadcast a transaction with a low payment amount reflecting the cancellation to the cryptocurrency blockchain, but broadcasts a transaction with a high payment amount before the cancellation to the virtual currency blockchain.
  • the present invention has been made in view of the above-described problems, and an object of the present invention is to efficiently cooperate with a plurality of block chains and cancel a payment agreed between a user and a service provider on a virtual currency block. To reflect on the chain.
  • one embodiment of the present invention is a settlement system in which a first blockchain and a second blockchain are linked, and a template information transaction including a transaction template is transmitted to a network of the first blockchain. And a payment information transaction including a payment amount and a service provider device to be transmitted to the first blockchain, an electronic signature generated using the template of the transaction registered in the first blockchain, and a payment information transaction.
  • the service provider device includes a first block.
  • a settlement transaction is generated by using the transaction template registered in the transaction chain, the electronic signature, and the payment amount, and transmitted to the second blockchain network; A condition is set, and the settlement transaction becomes available when any of the plurality of output conditions is satisfied.
  • One aspect of the present invention is a settlement method in which a first block chain and a second block chain are linked, and the service provider device transmits a template information transaction including a transaction template to a network of the first block chain. Transmitting, the user device generates an electronic signature using the template of the transaction registered in the first blockchain, and transmits a payment information transaction including the electronic signature and the payment amount to the network of the first blockchain. And the smart contract included in the first block chain verifies the electronic signature included in the payment information transaction using the payment amount and the template of the transaction.
  • the template of the transaction registered in the blockchain and A payment transaction is generated using the electronic signature and the payment amount, and transmitted to a second blockchain network. A plurality of output conditions are set in the template of the transaction, and the payment transaction Becomes available when any of the output conditions is satisfied.
  • One aspect of the present invention is a user device in a settlement system in which a first block chain and a second block chain are linked, and transmits a remittance transaction for remitting a deposit of a predetermined amount to a network of the second block chain.
  • a remittance transaction generating unit that generates an electronic signature using the transaction template registered in the first blockchain by the service provider device, and transmits a payment information transaction including the electronic signature and the payment amount to the first blockchain.
  • a payment transaction generation unit that transmits the transaction template to the network, wherein a plurality of output conditions are set in the transaction template, and the service provider device executes the transaction template, the electronic signature, and the payment amount. And the settlement transaction generated using , When filled with any of the plurality of output conditions, it becomes available.
  • One embodiment of the present invention is a payment program that causes a computer to function as the user device.
  • a plurality of block chains can be efficiently linked, and the cancellation of payment agreed between the user and the service provider can be reflected on the virtual currency block chain.
  • FIG. 3 is a block diagram illustrating a configuration of a blockchain client. It is a conceptual diagram which shows a "setting" process. It is a figure showing the output conditions of a remittance transaction. It is an image figure of a transaction template. It is an example of a script showing output conditions of a transaction template. It is a conceptual diagram which shows a "payment" process. 9 is a flowchart illustrating a process of creating a digital signature of a user device. It is a flowchart which shows the payment verification process of a bridging contract. It is a key map showing “cancellation” processing. It is a key map showing “payment” processing. FIG. 3 is a diagram illustrating a relationship between transactions in the virtual currency type block chain.
  • FIG. 1 is an overall configuration diagram of a payment system according to an embodiment of the present invention.
  • This payment system is a system in which payment by virtual currency on a virtual currency type blockchain (second blockchain) and service provision by a smart contract type blockchain (first blockchain) are linked.
  • second blockchain virtual currency type blockchain
  • first blockchain smart contract type blockchain
  • the virtual currency type blockchain is a distributed ledger shared by nodes participating in the P2P network 3 (hereinafter, “virtual currency type network”) of the blockchain.
  • the transaction history of the virtual currency is registered in the virtual currency type blockchain.
  • a transaction describing transaction information such as where and how much virtual currency is to be transferred is broadcast to the virtual currency type network 3
  • a block including the transaction is generated, and the generated block is stored in the virtual currency type blockchain. Added to the end.
  • the smart contract type blockchain is a distributed ledger shared by nodes participating in the P2P network 4 of the blockchain (hereinafter, “smart contract type network”).
  • smart contract type network When a transaction is broadcast to the smart contract type network 4, a block including the transaction is generated, and the generated block is added to the end of the smart contract type block chain.
  • a script code that is, a smart contract
  • Ethereum, Hyperledger @ Fabric, and the like are examples of a platform for realizing such a smart contract type blockchain.
  • the user device 1 is a device used by a user of a service provided by the smart contract type blockchain.
  • the user device 1 includes a transaction generation unit 11, a cancellation processing unit 12, and a blockchain client 13.
  • the transaction generation unit 11 generates necessary transactions in processing (steps) of “setting”, “payment”, “settlement”, and “cancel (cancel)” described later.
  • the generated transaction is transmitted to the corresponding blockchain networks 3 and 4 via the blockchain client 13.
  • the transaction generation unit 11 In the “setting” process, the transaction generation unit 11 generates a “transfer transaction for depositing a user's address to a multisig address” (transfer transaction) and transmits it to the virtual currency network 3 (step S1). Thereafter, the user device 1 generates a “transaction for registering deposit information” (deposit information transaction) and transmits it to the smart contract type network 4 (step S2).
  • the transaction generation unit 11 In the “payment” process and the “cancel” process, the transaction generation unit 11 generates a “transaction for registering an electronic signature indicating payment and a payment amount” (payment information transaction) and transmits it to the smart contract type network 4 (step). S3).
  • the transaction generation unit 11 transmits the “transaction to transfer the funds that the service provider of the payment transaction should receive to the user address” (penalty transaction). ) Is generated and transmitted to the virtual currency network 3 (step S8).
  • the cancellation processing unit 12 transmits a cancellation request to the service provider device 2 when canceling the payment information transaction registered in the smart contract type blockchain.
  • FIG. 2 is a block diagram showing the configuration of the blockchain client 13.
  • the user device 1 of the present embodiment is connected to the virtual currency type network 3 and the smart contract type network 4. Therefore, the blockchain client 13 includes a virtual currency type blockchain client 14 and a smart contract type blockchain client 15.
  • the virtual currency type blockchain client 14 includes a distributed ledger 141 and a blockchain control unit 142.
  • the distributed ledger 141 synchronizes slowly with all terminals (devices) connected to the virtual currency network 3 via the blockchain control unit 142, so that the latest blockchain is stored in a form close to real time. Have been.
  • the blockchain control unit 142 cooperates autonomously with terminals connected to the virtual currency network 3 to maintain a blockchain system. Specifically, the block chain control unit 142 accesses the distribution ledger 141, and reads or updates the block chain of the distribution ledger 141. The blockchain control unit 142 transmits the transaction to the virtual currency network 3.
  • the smart contract type blockchain client 15 includes a distributed ledger 151 and a blockchain control unit 152.
  • the distributed ledger 151 and the blockchain controller 152 are the same as the distributed ledger 141 and the blockchain controller 142.
  • the service provider device 2 is a device used by a service provider operating a service on the smart contract type blockchain.
  • the service provider provides the user with some service (for example, digital content right registration) upon receiving payment from the user.
  • the service provider device 2 includes a transaction generation unit 21, a transaction template generation unit 22, and a blockchain client 23.
  • the transaction generation unit 21 and the transaction template generation unit 22 generate necessary transactions in “setting”, “cancel”, and “payment” among the processing of “setting”, “payment”, “cancel”, and “payment”. .
  • the transaction template generation unit 22 In the “setting” process and the “cancel” process, the transaction template generation unit 22 generates a “transaction for registering a transaction template” (template information transaction) and transmits it to the smart contract type network 4 (step S4).
  • the transaction template will be described later.
  • the transaction generation unit 21 In the “cancel” process, the transaction generation unit 21 generates a “transaction for registering a hash original image, which is an output condition of a transaction template” (original image transaction), and transmits it to the smart contract type network 4 (step S9).
  • the transaction generation unit 21 In the “payment” process, the transaction generation unit 21 generates a “transaction to settle the deposit of the multisig address” (payment transaction) and sends it to the virtual currency network 3 (step S5). In addition, the transaction generation unit 21 generates a “transaction to execute payment and determine payment from the multisig address to the address to the service provider” (payment execution transaction), and transmits the transaction to the virtual currency network 3. (Step S10).
  • two smart contracts are registered in the smart contract type network 4 in advance.
  • the bridging contract 41 and the service contract 42 are registered in the distributed ledger 151 on each terminal connected to the network 4 according to the protocol of the smart contract type block chain.
  • the bridging contract is a smart contract that links the virtual currency blockchain and the smart contract blockchain.
  • the bridging contract receives information related to payment (electronic signature, payment amount) from the user device 1 and verifies its validity.
  • a service contract is a smart contract that executes a service (for example, content right transfer) performed by a service provider after the bridging contract confirms the validity of payment information.
  • Each smart contract has an API (Application Programming Interface) for checking and referring to the state of stored variables.
  • the user device 1 acquires the execution result of the service contract from its own distributed ledger 151 using the API (step S6). Further, the service provider device 2 acquires the deposit information and the payment information registered in the bridging contract from its own distributed ledger using the API (step S7). Note that the broken lines in steps S6 and S7 in FIG. 1 indicate a process of referring to the distributed ledger stored in the own device.
  • FIG. 3 shows a conceptual diagram of the “setting” process.
  • preparations are made for the next “payment” process.
  • the user device 1 generates a remittance transaction, and transmits (broadcasts) the remittance transaction to the virtual currency network 3 (step S11).
  • the remittance transaction is a transaction in which a deposit (security deposit) of a predetermined amount is remitted from a user address (wallet) to a multisig address jointly managed by the user and the service provider.
  • a multisig address is an address in a cryptocurrency type blockchain that requires a plurality of electronic signatures for transactions at the time of withdrawal.
  • a multi-sig address that requires a digital signature of a user and a digital signature of a service provider is used.
  • a block including the remittance transaction is generated, and due to the gentle synchronization between the terminals, the block is distributed to all terminals connected to the virtual currency type network 3 (Blockchain).
  • Blockchain it is determined that a 1.0 BTC deposit has been remitted from the user's address to the multisig address in the virtual currency type blockchain.
  • an output condition is set such that the remittance transaction can be used only with the electronic signature of the user device 1.
  • a certain period of time has elapsed since the remittance transaction in step S11 was included in the blockchain, it is possible to pay out with an electronic signature of only the user. That is, the user can use the remittance transaction as an input for the next transaction after a certain period has elapsed since the block including the remittance transaction was registered in the blockchain.
  • time lock is called “time lock”.
  • the time lock period is, for example, a time period after the remittance transaction in S11 is included in the block chain and a predetermined number of blocks (for example, 100 blocks) are connected after the block.
  • time lock By applying a time lock to the multi-sig address, it is possible to prevent the settlement transaction by the service provider from being transmitted, thereby stopping the communication with the service provider and deadlocking the user's deposit. For example, if a time lock of 100 blocks has been applied, if 100 blocks or more have elapsed, the user will generate a refund transaction, and the deposit sent to the multi-sig address only with the user's electronic signature will be transferred to the user's address Can be remitted (refunded).
  • output conditions can be specified by script for the output of a transaction.
  • the time lock is one of the attributes of the transaction, and prevents the transaction from being approved until the time or time specified by the time lock (the transaction is treated as an invalid transaction when the block is generated by the minor).
  • FIG. 4 is a diagram for explaining output conditions of a remittance transaction in the present embodiment.
  • FIG. 4A is a conceptual diagram of an output condition of a remittance transaction.
  • “User” in FIG. 4A indicates a user
  • “SP” indicates a service provider.
  • the condition that the digital signature of “User” (user) and the digital signature of “SP” (service provider) are multi-sig addresses, and the time after the time specified by the time lock (here, 100 (After block) indicates that the digital signature can be used only with the electronic signature of “User”.
  • FIG. 4B is an example of a script for bit coins under the output conditions shown in FIG. 4A.
  • the user device 1 transmits a transaction (deposit information transaction) for registering deposit information relating to the deposit to the smart contract type network 4 (step S12).
  • the transaction includes at least the amount of the remitted deposit as the deposit information, and may further include information such as the ID and the multisig address of the remittance transaction in step S11.
  • the service provider device 2 acquires the deposit information registered by the user device 1 from the bridging contract registered in its own distributed ledger (step S13).
  • the service provider device 2 creates a transaction template (transaction template) using the acquired deposit information (step S14).
  • the transaction template is a form of an incomplete transaction that is a modification of the transaction of the virtual currency type blockchain.
  • the transaction is a transaction in which information of “remittance amount” and “all electronic signatures” is excluded from “payment transaction indicating remittance from multi-sig address” in “payment” processing described later.
  • FIG. 1 An image of a transaction template is shown in FIG.
  • “all digital signatures” required for input and “remittance amount” required for output are “null” (blank).
  • output 1 and output 2 there are two outputs (output 1 and output 2), and two kinds of remittance amounts are described.
  • One is basically the amount to be remitted to the service provider, and the other is the amount to be remitted as change to the user.
  • the destination of the output 1 is set with a hash value of a script that specifies output conditions (conditions 1 and 2) described below.
  • step S11 1.0 BTC is deposited in the multisig address.
  • the user device 1 updates the “transfer amount (that is, payment amount and change)” and “electronic signature” of the transaction template within this deposit range (1.0 BTC) and updates the payment information. You will generate a transaction and submit it to the bridging contract.
  • a plurality of output conditions are set for the output 1 of the transaction template, and the settlement transaction of the “settlement” process described later can be used when any of the plurality of output conditions is satisfied.
  • the following two output conditions are imposed.
  • FIG. 6 shows an example of a bitcoin script expressing the output conditions of conditions 1 and 2.
  • Condition 1 Output of a transaction template (incomplete transaction) is restricted by a time lock. After a certain period (second period) of the designated time lock has elapsed, the service provider device 2 can use the settlement transaction generated using the transaction template as an input of the next transaction. it can.
  • the certain period of the time lock is set in the script shown in FIG. 6, and the script is transmitted to the smart contract type network 4 together with the transaction template in S15, and is reflected in the distributed ledger of all terminals. The user can confirm the time lock time by looking at the script registered in his / her distributed ledger.
  • the certain period is a time period after the remittance transaction (FIG. 2: S11) is included in the block chain and 110 blocks are connected behind it.
  • Condition 2 Transaction template output is restricted by hash lock.
  • the user can unlock the script using the original image of the hash (original data) and its signature.
  • the “hash lock” is a condition under which an original image corresponding to a designated hash is submitted at the input of the next transaction, so that a settlement transaction generated using a transaction template can be used.
  • the service provider device 2 generates an arbitrary original image when generating a transaction template, and sets a hash of the original image in a script.
  • the original image is not disclosed at the stage of setting.
  • the script is shared by the user via the smart contract type network 4. Therefore, if the user device 1 can obtain the original image of the hash, the script, the original image, and the usage The payment transaction can be used together with the signature of the party.
  • Conditions 1 and 2 function after the transaction template is recorded in the virtual currency blockchain as a complete settlement transaction through the “settlement” process (see the “settlement” process described later). Only when either condition 1 or condition 2 is satisfied, the settlement transaction can be used.
  • Condition 1 indicates that the service provider device 2 can transfer the remittance from the multisig address to its own address (wallet) only after the specified time lock.
  • a complete transaction is broadcast as a settlement transaction, and after the settlement transaction is included in the block chain, a certain number of blocks are connected backward (for example, 110 blocks).
  • the funds received by itself can be freely moved.
  • condition 2 if the original image corresponding to the hash lock specified in the script is specified in the input of the transaction following the payment transaction, the payment transaction can be used only with the electronic signature of the user.
  • the condition 2 is set as a penalty for the service provider in order to establish the cancellation. The details will be described in the "cancel" process described later.
  • condition 1 the execution order of the condition 1 or the condition 2 is as follows: (1) When the service provider performs a betrayal action for the “cancellation agreement”, the user uses the condition 2 before the time lock of the condition 1 elapses. Remit the funds (output 1) that the service provider should obtain in the settlement transaction to its own address only with the signature of the user. (2) If no betrayal by the service provider is performed, condition 1 After the elapse of the time lock, the order in which the service provider remits the funds (output 1) to be obtained by the service provider in the settlement transaction using condition 1 to its own address.
  • the service provider device 2 waits for a time sufficient to determine the block including the remittance transaction transmitted in step S11, and then generates the template including the transaction template generated in step S14.
  • the information transaction is transmitted to the smart contract type network 4 (step S15).
  • a block including the template information transaction is generated, and the block is reflected in the distributed ledger of all terminals connected to the smart contract type network 4 by gradual synchronization between the terminals.
  • the transaction template is registered in the bridging contract of the smart contract type blockchain.
  • the service provider device 2 adds, in addition to the transaction template, information necessary for verifying the electronic signature performed in the next payment process (for example, disclosure of the virtual currency address of the user device 1) in the template information transaction.
  • a key and information (for example, a script shown in FIG. 6) necessary for verifying the payment process may be transmitted and registered in the bridging contract.
  • the bridging contract may hold in advance information necessary for verifying the electronic signature and information necessary for verifying the payment processing.
  • FIG. 7 shows a conceptual diagram of the “payment” process.
  • FIG. 7 shows an example in which the payment processing is performed three times while updating the payment amount.
  • the user device 1 acquires the transaction template registered by the service provider device 2 in the “setting” process from the bridging contract of its own distributed ledger (step S21). Then, the user device 1 creates the digital signature 1 from the transaction template (step S22).
  • FIG. 8 is a flowchart showing the processing in steps S21 and S22 of the user device 1.
  • the user device 1 acquires a transaction template from the bridging contract (Step S21). Then, the user device 1 sets the payment amount 1 (here, 0.3 BTC) in the acquired transaction template, and generates the pre-signature transaction 1 (step S221).
  • the payment amount 1 is set, the remittance amount (1.0 BTC-0.3 BTC-payment fee) to be changed to the user is appropriately calculated and set on the user terminal.
  • the payment fee may be determined between users, or a fixed value may be adopted for each service.
  • the user device 1 generates an electronic signature 1 for the pre-signature transaction 1 with the user's private key corresponding to the multisig address (step S223).
  • the user device 1 generates a transaction (payment information transaction) for including the payment amount 1 and the electronic signature 1 and registering the information in the bridging contract, and sends the transaction to the smart contract type network 4. Transmit (step S23).
  • a transaction payment information transaction
  • the smart contract type network 4 Transmit (step S23).
  • a block including the transaction is generated, and the block is reflected in the distributed ledger of all terminals connected to the smart contract type network 4 by gentle synchronization between the terminals.
  • the payment amount 1 and the electronic signature 1 are registered in the bridging contract of each terminal.
  • FIG. 9 is a flowchart showing the verification processing in step S24 performed by the bridging contract.
  • the bridging contract acquires the “transaction for registering the electronic signature 1 and the payment amount 1 (0.3 BTC)” transmitted by the user device 1 in step S23 (step S241).
  • the bridging contract verifies that the sum of the payment amount 1 of the acquired transaction and the payment fee (such as the fee paid to the miner in the virtual currency blockchain) does not exceed the deposit amount (1.0 BTC). (Step S242).
  • the bridging contract verifies the electronic signature 1 included in the payment information transaction using the payment amount and the transaction template. Specifically, the bridging contract creates a pre-signature transaction by setting the payment amount 1 to a transaction template registered in advance in the bridging contract in the setting process (see FIG. 3) (step S243). When the payment amount 1 is set, the remittance amount (1.0 BTC-0.3 BTC-payment fee) to be changed to the user is appropriately calculated and set on the bridging contract. Next, the bridging contract verifies the electronic signature 1 using the created pre-signature transaction (step S244).
  • the bridging contract uses the information (public key, public key hash, etc.) necessary for signature verification registered in advance in step S15 in FIG.
  • the validity of the electronic signature 1 is verified. That is, the bridging contract restores the public key using the generated pre-signature transaction and the electronic signature 1 transmitted from the user device 1, and restores the restored public key and the public key registered in advance. If they match, the digital signature 1 is verified as valid. On the other hand, if the restored public key does not match the public key registered in advance, the bridging contract verifies that the electronic signature 1 is not valid.
  • the bridging contract calls the service contract (Step S245).
  • the bridging contract calls the service contract to execute a service corresponding to the payment amount 1.
  • the bridging contract calls the method of the service contract with the payment amount 1 or the like as a parameter (step S25).
  • the service contract executes a predetermined service (for example, right transfer of digital content) according to the payment amount.
  • the user device 1 performs the payment process in steps S21 to S25 three times, and each time a service is provided by the service contract.
  • the second payment process (steps S31 to S35) and the third payment process (steps S31 to S35) are the same as the first payment process (steps S21 to S25).
  • the last payment amount (0.9 BTC) is the final settlement amount Become.
  • the second and subsequent payment amounts are obtained by adding the payment amount for the current service to the previous payment amount.
  • the user device 1 makes three payments, and provides a service of 0.3 BTC each time.
  • the user device 1 broadcasts the payment information transaction three times to the smart contract type network 4 (steps S23, S33, S43).
  • the service provider device 2 cannot perform the settlement using the first and second payment information. Even if a payment transaction is generated and broadcast using the first and second payment information, it is rejected in the process of consensus verification of the virtual currency type blockchain and becomes invalid on a network basis.
  • FIG. 10 shows an outline of the “cancel” process. By performing the processing illustrated in FIG. 10, it is considered that the cancellation of the “payment” processing has been agreed between the user and the service provider.
  • the user device 1 transmits a cancellation request to the service provider device 2 (step S71).
  • the service provider device 2 Upon receiving the cancel request, the service provider device 2 generates a new transaction template (another transaction template) (step S72). Specifically, the service provider device 2 generates a new original image, and generates a new transaction template and a script of output conditions using the hash of the original image.
  • the new transaction template and output condition script are the same as the transaction template of the “setting” process (FIG. 3: S14) and the output condition script (FIG. 6) except for the hash of the original image. Although the original image is not specified, it is necessary that the original image cannot be easily estimated.
  • the service provider device 2 transmits the template information transaction including the transaction template generated in step S72 to the smart contract type network 4 (step S73).
  • a block including the template information transaction is generated, and the block is reflected in the distributed ledger of all terminals connected to the smart contract type network 4 by gentle synchronization between the terminals.
  • the new transaction template is registered in the bridging contract of the smart contract type blockchain.
  • the service provider device 2 adds to the template information transaction, in addition to the new transaction template, information necessary for verifying the electronic signature performed in the cancellation process (for example, disclosure of the virtual currency address of the user device 1).
  • a key and information necessary for verifying the payment processing (for example, a script indicating an output condition) may be transmitted and registered in the bridging contract.
  • the bridging contract may hold in advance information necessary for verifying the electronic signature and information necessary for verifying the payment processing.
  • the user device 1 acquires a new transaction template from the bridging contract of its own distributed ledger (step S74). Then, similarly to S22 and S23 in FIG. 7, the user device 1 generates a new electronic signature and registers new payment information (payment amount, electronic signature) in the bridging contract using the new transaction template. A payment information transaction (another payment information transaction) is transmitted to the smart contract type network 4 (steps S75 and S76). As a result, a block including the payment information transaction is generated, and the block is registered in the distributed ledger of all terminals connected to the smart contract type network 4. The payment amount of the new payment information is lower than the payment amount of the latest payment information transaction of “payment processing”.
  • step S77 payment verification by the bridging contract is executed on all terminals (step S77). That is, the bridging contract verifies the payment amount and the electronic proof of the new payment information transaction. The bridging contract performs the same payment verification as in S24 of FIG. In addition, the bridging contract verifies whether the new payment amount is lower than the payment amount of the previous payment information transaction, and if it is lower, determines that the new payment amount is valid. .
  • the service provider device 2 acquires a new payment information transaction from its own distributed ledger, and presents the payment amount of the transaction to the service provider.
  • the service provider checks the payment amount and determines whether or not to agree to the cancellation requested by the user.
  • the service provider can also determine that the user does not agree with the cancellation request, such as when the user's cancellation request is improper. If they do not agree, the service provider device 2 does not perform the next step S79.
  • the service provider device 2 registers the original image serving as the base of the hash set in condition 2 of the old transaction template (FIG. 3: S15) in the bridging contract.
  • An original image transaction is generated and transmitted to the smart contract type network 4 (step S79).
  • a block including the original image transaction is generated, and the block is registered in the distributed ledger of all terminals connected to the smart contract type network 4.
  • the original image of the hash of the condition 2 in the old transaction template is shared by the user device 1.
  • the service provider device 2 transmits the original image transaction, it is considered that the service provider has agreed to the cancellation.
  • a service cancellation process by a bridging contract is executed on all terminals (step S80).
  • the bridging contract calls the service contract according to the payment amount of S74 in order to cancel the already executed service.
  • the bridging contract calls a service contract method using a predetermined amount (for example, a difference amount between the previous payment amount and the current payment amount) as a parameter. Thereby, the service contract cancels the predetermined service according to the difference amount.
  • FIG. 11 is a diagram showing the “settlement” process.
  • the service provider device 2 closes the payment at an arbitrary timing and reflects the payment on the virtual currency type blockchain.
  • the service provider device 2 acquires a final payment amount, an electronic signature, and a transaction template from its own distributed ledger (bridging contract) (step S51).
  • the final payment amount, the electronic signature, and the transaction template are the payment amount 3, the electronic signature 3, and the transaction template in FIG. 7 when the cancellation process is not performed. If it has been done, it is the new payment amount, the electronic signature, and the transaction template in FIG.
  • the service provider device 2 sets the payment amount and the electronic signature acquired in S51 in the transaction template to generate a settlement transaction.
  • the settlement transaction at this time is a “transaction from the multi-sig address to which the digital signature of only the user device 1 has been added”. That is, the settlement transaction at this point is not a valid transaction because the electronic signature of the service provider device 2 is not provided.
  • the service provider device 2 attaches an electronic signature to the settlement transaction with its own private key corresponding to the multisig on its own terminal in order to make the remittance from the multisig address valid, and the virtual currency type block.
  • a payment transaction valid on the chain is created (step S52).
  • the settlement transaction after the signature has two electronic signatures of the user and the service provider, and thus is effective on the virtual currency type blockchain.
  • the service provider device 2 transmits the settlement transaction after the signature to the virtual currency network 3 (step S53).
  • the service provider needs to transmit a settlement transaction before 100 blocks are connected after the block of the remittance transaction is registered in the distribution ledger, depending on the output condition of the remittance transaction (S11 in FIG. 3). .
  • the change of the output 2 of the settlement transaction is remitted to the user's address.
  • the payment amount of the output 1 of the settlement transaction satisfies one of the conditions 1 and 2 of the script indicated by the hash set at the destination of the output 1 of the settlement transaction (transaction template) in the virtual currency blockchain.
  • the settlement transaction can be used.
  • the service provider is made to perform the cancellation of the payment. That is, in the present embodiment, by transmitting the original image transaction by the service provider, it is possible to prevent a transaction in which the user agrees with the cancellation requested by the user and makes the transaction cancel.
  • the service provider can obtain a predetermined payment amount from the deposit remitted to the multisig address after the elapse of the period specified by the time lock of the condition 1.
  • step S79 in FIG. 10 the service provider device 2 registers the original image of the hash used in the old transaction template in the distribution ledger of the bridging contract and discloses it to the user. I have. Therefore, even if the service provider betrayed the user by falsifying the cancellation agreement and sent the settlement transaction using the old transaction template that should have been canceled, the user will still be By using the original image of, the hash lock of the condition 2 can be released.
  • the user transmits a penalty transaction for remitting the payment amount of the output 1 specified in the settlement transaction to his / her address before the time lock period (T2) of the condition 1 elapses.
  • the payment amount to be paid to the service provider can be recovered to the address (step S55).
  • the change of the output 2 of the settlement transaction is remitted to the user's address by registering the settlement transaction (S53) in the blockchain.
  • the penalty transaction of the user under the condition 2 functions as a penalty (fine), so that it is difficult for the service provider to take an action that betrays the user. Become. That is, it is difficult for the service provider to remit the payment amount of output 1 of the settlement transaction to its own address before the user by imposing an output condition on the settlement transaction (transaction template).
  • the service provider device 2 transmits the payment transaction generated using the payment amount 3, the electronic signature 3, and the transaction template in FIG. 7 to the virtual currency network 3 (step S53).
  • the service provider device 2 transmits the settlement transaction until the period (T1) specified by the output condition of the remittance transaction (S11 in FIG. 3).
  • the service provider apparatus 2 setstle the payment amount (output 1) specified in the payment transaction to its own address. Is transmitted to the virtual currency type network 3 (step S56).
  • step S53 Until the service provider device 2 transmits the settlement transaction to the virtual currency network 3 (step S53), that is, until the service provider closes the payment, the user device 1 performs the n-th payment process shown in FIG. To rewrite the payment amount and receive additional service provision.
  • the service provider device 2 transmits, in principle, the settlement transaction generated using the new payment amount registered in the cancellation process, the electronic signature, and the transaction template to the virtual currency network 3 (step S53).
  • the service provider device 2 transmits the settlement transaction until the period (T1) specified by the output condition of the remittance transaction (S11 in FIG. 3).
  • the user monitors whether the cryptocurrency type blockchain includes a settlement transaction in preparation for the service provider to betray the user with knowledge of the penalty (to make the cancellation wrong), and settle the settlement transaction. Is verified (S54).
  • the user device 1 refers to its own distributed ledger to determine whether or not there is a settlement transaction, and if there is a settlement transaction, the payment amount of the settlement transaction is determined by the cancellation process. Verify whether the payment amount is sent.
  • the user device 1 specifies the payment amount in the output 1 of the settlement transaction before the period (T2) of the condition 1 elapses.
  • a penalty transaction for transferring the payment amount to its own address is transmitted to the virtual currency network 3 (step S55).
  • the user can return the payment amount (output 1) to be paid to the service provider in the settlement transaction to his / her address as a penalty.
  • the user device 1 transmits a refund transaction to refund the deposit remitted to the multisig address in the remittance transaction to its own address.
  • the user device 1 does not transmit the penalty transaction of S55.
  • the service provider device 2 transmits the settlement execution transaction after the lapse of the period (T2) of the condition 1 (S56).
  • the service provider can remit the payment amount specified in the output 1 of the settlement transaction and agreed on in the cancellation process to its own address.
  • FIG. 12 shows the relationship of transactions in the virtual currency type blockchain.
  • the remittance transaction 121 is a transaction for the user to remit a 1.0 BTC deposit to the multisig address, as described in S11 of FIG. If the settlement transaction 123 (FIG. 11: S53) is not transmitted during the output condition of the remittance transaction (for example, a time lock of 100 blocks), the user transmits the refund transaction 122 and transmits the 1.0 BTC transferred by the remittance transaction. To get your deposit back to your own address. Thus, it is possible to prevent the contact with the service provider from being interrupted and the user's deposit from being deadlocked.
  • the service provider determines the condition 1 of the settlement transaction (output 1).
  • the payment execution transaction 125 (FIG. 11: S56) is transmitted, and the payment amount (0.7 BTC) set in the output 1 of the payment transaction is remitted to the address of the own (service provider).
  • the change 2 (0.3 BTC) of the settlement transaction output 2 is remitted to the user's address when the settlement transaction is registered in the blockchain.
  • the virtual currency block of the user terminal 1 is adjusted by adjusting the time lock period (T1) of the remittance transaction and the time lock period (T2) of the condition 1 of the settlement transaction (transaction template). Reduce the cost of monitoring the chain. Specifically, by setting the time lock period to T1 ⁇ T2, the time lock for the settlement transaction is always set to be longer than the time lock for the transmission transaction. As a result, the service provider must transmit the settlement transaction before the time lock of T1 expires (step S53). Cannot use the settlement transaction (transfer the payment amount of output 1 to its own address).
  • T2 of condition 1 registered with the transaction template is longer than T1
  • the user device 1 does not need to monitor the settlement transaction of the service provider device 2 at least until the time T1. Confirm the settlement transaction between T1 and T2. More specifically, the user device 1 connects to the virtual currency network 3 between T1 and T2, or refers to its own distributed ledger, and determines whether or not the settlement transaction is already included in the block. Then, it is confirmed whether or not the settlement transaction is valid (S54). Therefore, by setting the periods of T1 and T2, the period during which the user device is connected to the virtual currency type blockchain is limited, and the need to constantly monitor the blockchain is eliminated.
  • the bridging contract sets the time of the transaction template to be shorter than the time lock period (T1) of the remittance transaction. It is determined whether or not the lock period (T2) is long. If T1 ⁇ T2 is not satisfied, an error message is transmitted to the service provider device 2. Note that T1 is set in a transaction template input (script) as shown in FIG.
  • a plurality of output conditions are set in the transaction template (output 1), and the settlement transaction can be used when any of the plurality of output conditions is satisfied.
  • a plurality of block chains can be efficiently linked, and the cancellation of payment agreed between the user and the service provider can be reflected on the virtual currency block chain.
  • the hash lock of the condition 2 can be released by using the original image of the hash disclosed by the service provider in the processing. That is, the user sends a penalty transaction for remittance of the payment amount specified in the settlement transaction to his / her address before the time lock period of Condition 1 elapses, and recovers the deposit to his / her address. Can be.
  • the output condition is imposed on the transaction template.
  • the penalty transaction of the user according to Condition 2 functions as a penalty.
  • the service provider due to the time lock constraint of Condition 1, it is difficult for the service provider to remit the payment amount of the settlement transaction to its own address before the user. Therefore, it becomes difficult for the service provider to take action to betray the user.
  • the user can cancel the transmitted payment information transaction by performing the cancellation process shown in FIG. Further, by transmitting the original image transaction by the service provider, the user can confirm that the service provider has agreed to cancel.
  • the user device transmits a remittance transaction for remitting a predetermined amount of deposit to the multisig address to the network of the virtual currency blockchain, and the first period (T1) elapses in the remittance transaction. Then, an output condition that enables the use of the remittance transaction only by the electronic signature of the user device is set.
  • T1 the first period
  • the plurality of output conditions of the transaction template include a time lock in which the settlement transaction can be used after the elapse of the second period, and the smart contract uses the second period rather than the first period. Verify if it is long.
  • the period during which the user checks the virtual currency type blockchain (virtual currency type network 3 or its own distributed ledger) is limited, and it is necessary to constantly connect to the blockchain and monitor settlement transactions and the like. Operating costs are reduced.
  • the service provider device 2 does not intervene in the “payment” process, and the entire process from payment verification to service provision is performed on the smart contract blockchain.
  • the service provider device 2 does not need to connect to the smart contract blockchain from verification of payment to provision of the service. That is, since the service provider device 2 does not need to constantly monitor the smart contract type blockchain, the operation cost is reduced.
  • the service provider device 2 does not mediate from the time of payment verification to the provision of the service, so that a series of payment processing is correctly executed due to the failure of the service provider device 2 or the fraud of the service provider. You can avoid situations that are not done.
  • the bridging contract and the service contract of the smart contract type block chain autonomously execute the provision of the service from the verification of the payment, it is necessary to construct a more transparent and auditable system. Can be.
  • the transaction template is registered in the smart contract type blockchain, and the user device 1 and the service provider device 2 acquire and use the transaction template from their own distributed ledgers. , The block enlargement can be suppressed, and the calculation cost of the block can be reduced.
  • a transaction using a multisig address that requires a user's digital signature and a service provider's digital signature is used.
  • the user device 1 it is possible to prevent the user device 1 from automatically registering the settlement transaction in the virtual currency type blockchain and using the virtual currency. That is, in the present embodiment, only the service provider device 2 can add its own electronic signature to the payment transaction and register it in the virtual currency blockchain. That is, the service provider device 2 can control the timing of the settlement, and can determine the settlement at an arbitrary timing.
  • the user device 1 and the service provider device 2 described above include, for example, a CPU (Central Processing Unit), a memory, a storage (HDD: Hard Disk Drive, SSD: Solid State Drive), and a communication device.
  • a general-purpose computer system including an input device and an output device can be used.
  • each function of each device is realized by the CPU executing a predetermined program loaded on the memory.
  • each function of the user device 1 and the service provider device 2 is such that the CPU of the user device 1 is a program for the user device 1 and a service provider device is a program for the service provider device 2.
  • the two CPUs are implemented by executing each of them.
  • the program for the user device 1 and the program for the service provider device 2 must be stored in a computer-readable recording medium such as an HDD, SSD, USB memory, CD-ROM, DVD-ROM, or MO. Or via a network.
  • a computer-readable recording medium such as an HDD, SSD, USB memory, CD-ROM, DVD-ROM, or MO. Or via a network.
  • the smart contract of the present embodiment includes two types of smart contracts, a bridging contract and a service contract.
  • one smart contract may have both functions of a bridging contract and a service contract.
  • each service contract implements a different type of service, and the bridging contract calls the service contract corresponding to the service specified in the payment information transaction.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

Provided is a settlement system comprising: a service provider device 2 that transmits a model information transaction, which contains a transaction model, to a first blockchain network 4; a user device that transmits a payment information transaction, which contains a payment amount and an electronic signature generated using the transaction model, to the first blockchain network 4; and a smart contract 41. The smart contract 41 verifies the electronic signature using the payment amount and the transaction model. The service provider device 2 generates a settlement transaction using the transaction model, the electronic signature, and the payment amount, and transmits the settlement transaction to a second blockchain network 3. A plurality of output conditions are set in the transaction model. The settlement transaction can be used when any of the plurality of output conditions is met.

Description

決済システム、決済方法、利用者装置、決済プログラムPayment system, payment method, user device, payment program
 本発明は、ブロックチェーンの技術に関し、特に、複数のブロックチェーンを連携させる技術に関する。 {Circle over (1)} The present invention relates to blockchain technology, and more particularly, to technology for linking a plurality of blockchains.
 中央集権的な管理を必要とせずに、信頼性を担保可能な仕組みがデジタル仮想通貨ビットコインを中心に普及しつつある。ブロックチェーンと呼ばれるこの仕組みにおいては、やり取りされる情報の信頼性が分散ネットワーク内の合意形成のプロセスによって担保され、かつ、改ざんや二重使用などの不正を系全体で防ぐことで健全性が保たれる。 (4) A mechanism that can guarantee reliability without requiring centralized management is becoming popular, especially for the digital cryptocurrency Bitcoin. In this mechanism called blockchain, the reliability of the exchanged information is ensured by the consensus building process in the distributed network, and the integrity of the system is prevented by preventing tampering such as tampering and double use throughout the system. Dripping.
 ブロックチェーンでは、参加者間の仮想通貨の取引情報(トランザクション)が「ブロック」という単位でまとめられ、各ブロックは数珠つなぎとなって時系列順に管理される。新たなブロックの承認は、Proof of Workなどの分散ネットワークにおける合意アルゴリズムによって形成される。新たなブロックの承認は、ブロック内部に記録された通貨取引が系全体で合意されたことを示す。このブロックチェーンを用いて管理される一連の取引情報の帳簿を「分散台帳」と呼び、ネットワークに参加する各ノード(端末)は同一の分散台帳を保持している。 (4) In the blockchain, transaction information (transactions) of virtual currency between participants is organized in units of "blocks", and each block is managed in a time series in a daisy chain. The approval of the new block is formed by an agreement algorithm in a distributed network such as Proof of Work. The approval of the new block indicates that the currency transactions recorded inside the block have been agreed system-wide. A book of a series of transaction information managed using this blockchain is called a “distribution ledger”, and each node (terminal) participating in the network holds the same distributed ledger.
 ところで、ビットコインにおいて、オフチェーン取引と呼ばれる実装上の工夫がなされている。オフチェーン取引とは、全ての取引をブロックチェーンに記録するのではなく、ブロックチェーン外で実施した2者間の取引のうち、最終的な結果のみをブロックチェーンに記録する方式である。非特許文献1に示すように、オフチェーン取引の一方式であるペイメントチャネルでは、2者間の利用者で不完全なトランザクションのやりとりをすることで、仮想的な支払いを実現するチャネルを構築することができる。 By the way, in Bitcoin, there is a device in implementation called off-chain transaction. The off-chain transaction is a method in which not all transactions are recorded on the blockchain, but only the final result of transactions between two parties performed outside the blockchain is recorded on the blockchain. As described in Non-Patent Document 1, in a payment channel, which is a type of off-chain transaction, a channel that realizes virtual payment is constructed by exchanging incomplete transactions between two users. be able to.
 「Spillman-style payment channels」、「CLTV-style payment channels」など単方向のペイメントチャネルを応用して、仮想通貨ブロックチェーン用のトランザクションから、電子署名と支払金額を除いた不完全なトランザクションを作成し、この不完全なトランザクションを他のブロックチェーン内で更新していくことにより、仮想通貨ブロックチェーンに接続しなくても他のブロックチェーン上で、仮想的なビットコインの支払いを可能にすることが考えられる。 Applying one-way payment channels such as "Spillman-style payment channel" and "CLTV-style payment channel" to create an incomplete transaction excluding the electronic signature and payment amount from the transaction for the cryptocurrency blockchain. By updating this incomplete transaction in other blockchains, it is possible to make virtual bitcoin payments on other blockchains without connecting to the cryptocurrency blockchain Conceivable.
 この方法では、利用者からサービス提供者へサービスの対価の支払いを行うことができるが、逆の方向に(サービス提供者から利用者へ)支払いを行うことはできない。すなわち、支払いのキャンセルが発生した際に、サービス提供者から同じチャネルを用いて利用者に対して返金することができない。 In this method, the user can pay for the service to the service provider, but cannot pay in the opposite direction (from the service provider to the user). That is, when the payment is canceled, the service provider cannot refund the user using the same channel.
 これは、サービス提供者のみが最新の不完全トランザクションから生成したトランザクションを、仮想通貨ブロックチェーンにブロードキャストする権利を持っており、利用者のみが不完全なトランザクションの金額を更新していく形態であることに起因する。例えば利用者が前回更新した支払金額をキャンセルし、前回の支払金額よりも低い支払金額で不完全なトランザクションを更新したとする。この場合、最終的にどの時点の不完全なトランザクションの支払金額でトランザクションを生成し、仮想通貨ブロックチェーンにブロードキャストするかは、サービス提供者により決定される。 This is a form in which only the service provider has the right to broadcast the transaction generated from the latest incomplete transaction to the virtual currency blockchain, and only the user updates the amount of the incomplete transaction. Due to that. For example, assume that the user cancels the previously updated payment amount and updates an incomplete transaction with a payment amount lower than the previous payment amount. In this case, it is determined by the service provider at which point in time a transaction is generated with the incomplete transaction payment amount and is broadcast to the virtual currency blockchain.
 そのため、サービス提供者が、キャンセルを反映した低い支払金額のトランザクションを仮想通貨ブロックチェーンにブロードキャストするのではなく、キャンセル前の高い支払金額のトランザクションを仮想通貨ブロックチェーンにブロードキャストする可能性は否定できない。 Therefore, it is undeniable that the service provider does not broadcast a transaction with a low payment amount reflecting the cancellation to the cryptocurrency blockchain, but broadcasts a transaction with a high payment amount before the cancellation to the virtual currency blockchain.
 本発明は、上記課題を鑑みてなされたものであり、本発明の目的は、複数のブロックチェーンを効率的に連携し、利用者とサービス提供者とが合意した支払いのキャンセルを、仮想通貨ブロックチェーンに反映させることにある。 The present invention has been made in view of the above-described problems, and an object of the present invention is to efficiently cooperate with a plurality of block chains and cancel a payment agreed between a user and a service provider on a virtual currency block. To reflect on the chain.
 上記目的を達成するため、本発明の一態様は、第1ブロックチェーンと、第2ブロックチェーンとを連携した決済システムであって、トランザクションの雛形を含む雛形情報トランザクションを、第1ブロックチェーンのネットワークに送信するサービス提供者装置と、第1ブロックチェーンに登録された前記トランザクションの雛形を用いて生成される電子署名と、支払金額とを含む支払情報トランザクションを、第1ブロックチェーンのネットワークに送信する利用者装置と、第1ブロックチェーンに含まれるスマートコントラクトと、を備え、前記スマートコントラクトは、前記支払情報トランザクションに含まれる電子署名を、前記支払金額と前記トランザクションの雛形とを用いて検証し、前記サービス提供者装置は、第1ブロックチェーンに登録された前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて決済トランザクションを生成し、第2ブロックチェーンのネットワークに送信し、前記トランザクションの雛型には複数の出力条件が設定され、前記決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となる。 In order to achieve the above object, one embodiment of the present invention is a settlement system in which a first blockchain and a second blockchain are linked, and a template information transaction including a transaction template is transmitted to a network of the first blockchain. And a payment information transaction including a payment amount and a service provider device to be transmitted to the first blockchain, an electronic signature generated using the template of the transaction registered in the first blockchain, and a payment information transaction. A user device and a smart contract included in a first block chain, wherein the smart contract verifies an electronic signature included in the payment information transaction using the payment amount and the template of the transaction, The service provider device includes a first block. A settlement transaction is generated by using the transaction template registered in the transaction chain, the electronic signature, and the payment amount, and transmitted to the second blockchain network; A condition is set, and the settlement transaction becomes available when any of the plurality of output conditions is satisfied.
 本発明の一態様は、第1ブロックチェーンと、第2ブロックチェーンとを連携した決済方法であって、サービス提供者装置は、トランザクションの雛形を含む雛形情報トランザクションを、第1ブロックチェーンのネットワークに送信し、利用者装置は、第1ブロックチェーンに登録された前記トランザクションの雛形を用いて電子署名を生成し、前記電子署名と、支払金額とを含む支払情報トランザクションを、第1ブロックチェーンのネットワークに送信し、第1ブロックチェーンに含まれるスマートコントラクトは、前記支払情報トランザクションに含まれる電子署名を、前記支払金額と前記トランザクションの雛形とを用いて検証し、前記サービス提供者装置は、第1ブロックチェーンに登録された前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて決済トランザクションを生成し、第2ブロックチェーンのネットワークに送信し、前記トランザクションの雛型には複数の出力条件が設定され、前記決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となる。 One aspect of the present invention is a settlement method in which a first block chain and a second block chain are linked, and the service provider device transmits a template information transaction including a transaction template to a network of the first block chain. Transmitting, the user device generates an electronic signature using the template of the transaction registered in the first blockchain, and transmits a payment information transaction including the electronic signature and the payment amount to the network of the first blockchain. And the smart contract included in the first block chain verifies the electronic signature included in the payment information transaction using the payment amount and the template of the transaction. The template of the transaction registered in the blockchain and A payment transaction is generated using the electronic signature and the payment amount, and transmitted to a second blockchain network. A plurality of output conditions are set in the template of the transaction, and the payment transaction Becomes available when any of the output conditions is satisfied.
 本発明の一態様は、第1ブロックチェーンと、第2ブロックチェーンとを連携した決済システムにおける利用者装置であって、所定金額の保証金を送金する送金トランザクションを、第2ブロックチェーンのネットワークに送信する送金トランザクション生成部と、サービス提供者装置により第1ブロックチェーンに登録されたトランザクションの雛形を用いて電子署名を生成し、当該電子署名と支払金額とを含む支払情報トランザクションを、第1ブロックチェーンのネットワークに送信する支払トランザクション生成部と、を備え、前記トランザクションの雛型には複数の出力条件が設定され、前記サービス提供者装置により、前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて生成された決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となる。 One aspect of the present invention is a user device in a settlement system in which a first block chain and a second block chain are linked, and transmits a remittance transaction for remitting a deposit of a predetermined amount to a network of the second block chain. A remittance transaction generating unit that generates an electronic signature using the transaction template registered in the first blockchain by the service provider device, and transmits a payment information transaction including the electronic signature and the payment amount to the first blockchain. A payment transaction generation unit that transmits the transaction template to the network, wherein a plurality of output conditions are set in the transaction template, and the service provider device executes the transaction template, the electronic signature, and the payment amount. And the settlement transaction generated using , When filled with any of the plurality of output conditions, it becomes available.
 本発明の一態様は、上記利用者装置として、コンピュータを機能させることを特徴とする決済プログラムである。 One embodiment of the present invention is a payment program that causes a computer to function as the user device.
 本発明によれば、複数のブロックチェーンを効率的に連携し、利用者とサービス提供者とが合意した支払いのキャンセルを、仮想通貨ブロックチェーンに反映させることができる。 According to the present invention, a plurality of block chains can be efficiently linked, and the cancellation of payment agreed between the user and the service provider can be reflected on the virtual currency block chain.
本発明の実施形態に係る決済システムの全体構成を示す図である。It is a figure showing the whole composition of the settlement system concerning the embodiment of the present invention. ブロックチェーンクライアントの構成を示すブロック図である。FIG. 3 is a block diagram illustrating a configuration of a blockchain client. 「設定」処理を示す概念図である。It is a conceptual diagram which shows a "setting" process. 送金トランザクションの出力条件を示す図である。It is a figure showing the output conditions of a remittance transaction. トランザクション雛形のイメージ図である。It is an image figure of a transaction template. トランザクション雛形の出力条件を示すスクリプトの例である。It is an example of a script showing output conditions of a transaction template. 「支払」処理を示す概念図である。It is a conceptual diagram which shows a "payment" process. 利用者装置の電子署名の作成処理を示すフローチャートである。9 is a flowchart illustrating a process of creating a digital signature of a user device. ブリッジングコントラクトの支払い検証処理を示すフローチャートである。It is a flowchart which shows the payment verification process of a bridging contract. 「キャンセル」処理を示す概念図である。It is a key map showing “cancellation” processing. 「決済」処理を示す概念図である。It is a key map showing “payment” processing. 仮想通貨型ブロックチェーンにおけるトランザクションの関係を示す図である。FIG. 3 is a diagram illustrating a relationship between transactions in the virtual currency type block chain.
 以下、本発明の実施の形態について、図面を参照して説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
 図1は、本発明の実施の形態に係る決済システムの全体構成図である。本決済システムは、仮想通貨型ブロックチェーン(第2ブロックチェーン)での仮想通貨による支払いと、スマートコントラクト型ブロックチェーン(第1ブロックチェーン)によるサービス提供とを連携したシステムである。 FIG. 1 is an overall configuration diagram of a payment system according to an embodiment of the present invention. This payment system is a system in which payment by virtual currency on a virtual currency type blockchain (second blockchain) and service provision by a smart contract type blockchain (first blockchain) are linked.
 仮想通貨型ブロックチェーンは、当該ブロックチェーンのP2Pネットワーク3(以下、「仮想通貨型ネットワーク」)に参加するノードによって共有される分散台帳である。仮想通貨型ブロックチェーンには、仮想通貨の取引履歴が登録される。どこからどこにいくらの仮想通貨を移動するかといった取引情報を記載したトランザクションが仮想通貨型ネットワーク3にブロードキャストされると、そのトランザクションを含むブロックが生成されて、生成されたブロックが仮想通貨型ブロックチェーンの末尾に追加される。 The virtual currency type blockchain is a distributed ledger shared by nodes participating in the P2P network 3 (hereinafter, “virtual currency type network”) of the blockchain. The transaction history of the virtual currency is registered in the virtual currency type blockchain. When a transaction describing transaction information such as where and how much virtual currency is to be transferred is broadcast to the virtual currency type network 3, a block including the transaction is generated, and the generated block is stored in the virtual currency type blockchain. Added to the end.
 スマートコントラクト型ブロックチェーンは、当該ブロックチェーンのP2Pネットワーク4(以下、「スマートコントラクト型ネットワーク」)に参加するノードによって共有される分散台帳である。トランザクションがスマートコントラクト型ネットワーク4にブロードキャストされると、そのトランザクションを含むブロックが生成され、生成されたブロックがスマートコントラクト型ブロックチェーンの末尾に追加される。ブロックが追加されると、当該ブロックに含まれるトランザクションを入力として、参加ノードの端末上で事前に登録されたスクリプトコード(即ちスマートコントラクト)が実行され、分散台帳が更新される。このようなスマートコントラクト型ブロックチェーンを実現する基盤として例えば、Ethereum、Hyperledger Fabricなどが挙げられる。 The smart contract type blockchain is a distributed ledger shared by nodes participating in the P2P network 4 of the blockchain (hereinafter, “smart contract type network”). When a transaction is broadcast to the smart contract type network 4, a block including the transaction is generated, and the generated block is added to the end of the smart contract type block chain. When a block is added, a script code (that is, a smart contract) registered in advance is executed on the terminal of the participating node using the transaction included in the block as an input, and the distributed ledger is updated. Ethereum, Hyperledger @ Fabric, and the like are examples of a platform for realizing such a smart contract type blockchain.
 利用者装置1は、スマートコントラクト型ブロックチェーンが提供するサービスの利用者が使用する装置である。利用者装置1は、トランザクション生成部11と、キャンセル処理部12と、ブロックチェーンクライアント13とを備える。 The user device 1 is a device used by a user of a service provided by the smart contract type blockchain. The user device 1 includes a transaction generation unit 11, a cancellation processing unit 12, and a blockchain client 13.
 トランザクション生成部11は、後述する「設定」、「支払」、「決済」および「キャンセル(取消)」の処理(ステップ)において、必要なトランザクションを生成する。生成したトランザクションは、ブロックチェーンクライアント13を介して、対応するブロックチェーンのネットワーク3、4に送信される。 The transaction generation unit 11 generates necessary transactions in processing (steps) of “setting”, “payment”, “settlement”, and “cancel (cancel)” described later. The generated transaction is transmitted to the corresponding blockchain networks 3 and 4 via the blockchain client 13.
 「設定」処理では、トランザクション生成部11は、「利用者のアドレスからマルチシグアドレスへのデポジットを行う送金トランザクション」(送金トランザクション)を生成し、仮想通貨型ネットワーク3に送信する(ステップS1)。その後、利用者装置1は、「デポジット情報を登録するトランザクション」(保証金情報トランザクション)を生成し、スマートコントラクト型ネットワーク4に送信する(ステップS2)。 In the “setting” process, the transaction generation unit 11 generates a “transfer transaction for depositing a user's address to a multisig address” (transfer transaction) and transmits it to the virtual currency network 3 (step S1). Thereafter, the user device 1 generates a “transaction for registering deposit information” (deposit information transaction) and transmits it to the smart contract type network 4 (step S2).
 「支払」処理および「キャンセル」処理では、トランザクション生成部11は、「支払いを示す電子署名と支払金額を登録するトランザクション」(支払情報トランザクション)を生成し、スマートコントラクト型ネットワーク4に送信する(ステップS3)。 In the “payment” process and the “cancel” process, the transaction generation unit 11 generates a “transaction for registering an electronic signature indicating payment and a payment amount” (payment information transaction) and transmits it to the smart contract type network 4 (step). S3).
 「決済」処理では、トランザクション生成部11は、サービス提供者がキャンセルの同意を反故にした場合、「決済トランザクションのサービス提供者が受け取るはずの資金を利用者のアドレスに送金するトランザクション」(ペナルティトランザクション)を生成し、仮想通貨型ネットワーク3に送信する(ステップS8)。 In the “payment” process, when the service provider rejects the consent to cancel, the transaction generation unit 11 transmits the “transaction to transfer the funds that the service provider of the payment transaction should receive to the user address” (penalty transaction). ) Is generated and transmitted to the virtual currency network 3 (step S8).
 キャンセル処理部12は、スマートコントラクト型ブロックチェーンに登録した支払情報トランザクションをキャンセルする場合に、キャンセル要求をサービス提供者装置2に送信する。 The cancellation processing unit 12 transmits a cancellation request to the service provider device 2 when canceling the payment information transaction registered in the smart contract type blockchain.
 図2は、ブロックチェーンクライアント13の構成を示すブロック図である。本実施形態の利用者装置1は、仮想通貨型ネットワーク3およびスマートコントラクト型ネットワーク4と接続する。このため、ブロックチェーンクライアント13は、仮想通貨型ブロックチェーンクライアント14と、スマートコントラクト型ブロックチェーンクライアント15とを備える。 FIG. 2 is a block diagram showing the configuration of the blockchain client 13. The user device 1 of the present embodiment is connected to the virtual currency type network 3 and the smart contract type network 4. Therefore, the blockchain client 13 includes a virtual currency type blockchain client 14 and a smart contract type blockchain client 15.
 仮想通貨型ブロックチェーンクライアント14は、分散台帳141、と、ブロックチェーン制御部142とを備える。分散台帳141には、ブロックチェーン制御部142を介して、仮想通貨型ネットワーク3に接続された全ての端末(装置)と緩やかに同期することによって、リアルタイムに近い形で最新状態のブロックチェーンが記憶されている。 The virtual currency type blockchain client 14 includes a distributed ledger 141 and a blockchain control unit 142. The distributed ledger 141 synchronizes slowly with all terminals (devices) connected to the virtual currency network 3 via the blockchain control unit 142, so that the latest blockchain is stored in a form close to real time. Have been.
 ブロックチェーン制御部142は、仮想通貨型ネットワーク3に接続された端末と自律分散的に協調してブロックチェーンの系を維持する。具体的には、ブロックチェーン制御部142は、分散台帳141にアクセスし、分散台帳141のブロックチェーンを読み出し、または、更新する。ブロックチェーン制御部142は、トランザクションを仮想通貨型ネットワーク3に送信する。 (4) The blockchain control unit 142 cooperates autonomously with terminals connected to the virtual currency network 3 to maintain a blockchain system. Specifically, the block chain control unit 142 accesses the distribution ledger 141, and reads or updates the block chain of the distribution ledger 141. The blockchain control unit 142 transmits the transaction to the virtual currency network 3.
 スマートコントラクト型ブロックチェーンクライアント15は、分散台帳151と、ブロックチェーン制御部152とを備える。分散台帳151およびブロックチェーン制御部152は、分散台帳141およびブロックチェーン制御部142と同様である。 The smart contract type blockchain client 15 includes a distributed ledger 151 and a blockchain control unit 152. The distributed ledger 151 and the blockchain controller 152 are the same as the distributed ledger 141 and the blockchain controller 142.
 サービス提供者装置2は、スマートコントラクト型ブロックチェーン上でサービスを運営するサービス提供者が使用する装置である。サービス提供者は、利用者からの支払いを受けて何らかのサービス(例えば、デジタルコンテンツの権利登録など)を、利用者に提供する。 The service provider device 2 is a device used by a service provider operating a service on the smart contract type blockchain. The service provider provides the user with some service (for example, digital content right registration) upon receiving payment from the user.
 サービス提供者装置2は、トランザクション生成部21と、トランザクション雛形生成部22と、ブロックチェーンクライアント23とを備える。 The service provider device 2 includes a transaction generation unit 21, a transaction template generation unit 22, and a blockchain client 23.
 トランザクション生成部21およびトランザクション雛形生成部22は、「設定」、「支払」、「キャンセル」および「決済」の処理のうち、「設定」、「キャンセル」および「決済」において必要なトランザクションを生成する。 The transaction generation unit 21 and the transaction template generation unit 22 generate necessary transactions in “setting”, “cancel”, and “payment” among the processing of “setting”, “payment”, “cancel”, and “payment”. .
 「設定」処理および「キャンセル」処理では、トランザクション雛形生成部22は、「トランザクション雛形を登録するトランザクション」(雛形情報トランザクション)を生成し、スマートコントラクト型ネットワーク4に送信する(ステップS4)。トランザクション雛形については、後述する。 In the “setting” process and the “cancel” process, the transaction template generation unit 22 generates a “transaction for registering a transaction template” (template information transaction) and transmits it to the smart contract type network 4 (step S4). The transaction template will be described later.
 「キャンセル」処理では、トランザクション生成部21は、トランザクション雛形の出力条件であるハッシュの原像を登録するトランザクション」(原像トランザクション)を生成し、スマートコントラクト型ネットワーク4に送信する(ステップS9)。 In the “cancel” process, the transaction generation unit 21 generates a “transaction for registering a hash original image, which is an output condition of a transaction template” (original image transaction), and transmits it to the smart contract type network 4 (step S9).
 「決済」処理では、トランザクション生成部21は、「マルチシグアドレスのデポジットを決済するトランザクション」(決済トランザクション)を生成し、仮想通貨型ネットワーク3に送信する(ステップS5)。また、トランザクション生成部21は、「決済を実行して、マルチシグアドレスからサービス提供者へのアドレスへの支払いを確定するトランザクション」(決済実行トランザクション)を生成し、仮想通貨型ネットワーク3に送信する(ステップS10)。 In the “payment” process, the transaction generation unit 21 generates a “transaction to settle the deposit of the multisig address” (payment transaction) and sends it to the virtual currency network 3 (step S5). In addition, the transaction generation unit 21 generates a “transaction to execute payment and determine payment from the multisig address to the address to the service provider” (payment execution transaction), and transmits the transaction to the virtual currency network 3. (Step S10).
 ブロックチェーンクライアント23は、利用者装置1のブロックチェーンクライアント13(図2参照)と同様であるため、ここでは説明を省略する。 Since the blockchain client 23 is the same as the blockchain client 13 of the user device 1 (see FIG. 2), the description is omitted here.
 本実施形態の特徴として、スマートコントラクト型ネットワーク4上には、2つのスマートコントラクトが事前に登録されている。具体的には、スマートコントラクト型ブロックチェーンのプロトコルに従って、ブリッジングコントラクト41およびサービスコントラクト42が、当該ネットワーク4に接続された各端末上の分散台帳151に登録されている。 特 徴 As a feature of this embodiment, two smart contracts are registered in the smart contract type network 4 in advance. Specifically, the bridging contract 41 and the service contract 42 are registered in the distributed ledger 151 on each terminal connected to the network 4 according to the protocol of the smart contract type block chain.
 ブリッジングコントラクトは、仮想通貨型ブロックチェーンとスマートコントラクト型ブロックチェーンとを連携するスマートコントラクトである。ブリッジングコントラクトは、利用者装置1から支払いに関する情報(電子署名、支払金額)を受け取り、その正当性を検証する。 The bridging contract is a smart contract that links the virtual currency blockchain and the smart contract blockchain. The bridging contract receives information related to payment (electronic signature, payment amount) from the user device 1 and verifies its validity.
 サービスコントラクトは、ブリッジングコントラクトが支払情報の正当性を確認した後に、サービス提供者が実施するサービス(例えば、コンテンツの権利移転など)を実行するスマートコントラクトである。 (4) A service contract is a smart contract that executes a service (for example, content right transfer) performed by a service provider after the bridging contract confirms the validity of payment information.
 どちらのスマートコントラクトも、格納している変数の状態を確認・参照するAPI(Application Programming Interface)を備える。例えば、利用者装置1は、APIを用いて、自身の分散台帳151からサービスコントラクトの実行結果を取得する(ステップS6)。また、サービス提供者装置2は、APIを用いて、自身の分散台帳からブリッジングコントラクトに登録されたデポジット情報および支払情報を取得する(ステップS7)。なお、図1のステップS6およびS7の破線は、自身の装置に格納された分散台帳を参照する処理を示す。 Each smart contract has an API (Application Programming Interface) for checking and referring to the state of stored variables. For example, the user device 1 acquires the execution result of the service contract from its own distributed ledger 151 using the API (step S6). Further, the service provider device 2 acquires the deposit information and the payment information registered in the bridging contract from its own distributed ledger using the API (step S7). Note that the broken lines in steps S6 and S7 in FIG. 1 indicate a process of referring to the distributed ledger stored in the own device.
 次に、本実施形態の処理を説明する。本実施形態では、「設定」、「支払」および「決済」の3つの基本処理と、応用的な「キャンセル」の応用処理とを行う。 Next, the processing of this embodiment will be described. In the present embodiment, three basic processes of “setting”, “payment”, and “settlement” and an applied process of an applied “cancel” are performed.
 図3に、「設定」処理の概念図を示す。「設定」処理では、次の「支払」処理のために必要な準備をする。 FIG. 3 shows a conceptual diagram of the “setting” process. In the “setting” process, preparations are made for the next “payment” process.
 まず、利用者装置1は、送金トランザクションを生成し、送金トランザクションを仮想通貨型ネットワーク3に送信(ブロードキャスト)する(ステップS11)。送金トランザクションは、利用者のアドレス(ウォレット)から、利用者とサービス提供者とが共同で管理するマルチシグアドレス宛に、所定の金額のデポジット(保証金)を送金するトランザクションである。 First, the user device 1 generates a remittance transaction, and transmits (broadcasts) the remittance transaction to the virtual currency network 3 (step S11). The remittance transaction is a transaction in which a deposit (security deposit) of a predetermined amount is remitted from a user address (wallet) to a multisig address jointly managed by the user and the service provider.
 マルチシグアドレスは、仮想通貨型ブロックチェーンにおいて、出金の際にトランザクションに対して複数人の電子署名を必要とするアドレスのことである。本実施形態では、利用者の電子署名と、サービス提供者の電子署名とが必要なマルチシグアドレスを用いる。ここでは、例えば、1.0BTCがマルチシグアドレスに送金されたとする。 A multisig address is an address in a cryptocurrency type blockchain that requires a plurality of electronic signatures for transactions at the time of withdrawal. In the present embodiment, a multi-sig address that requires a digital signature of a user and a digital signature of a service provider is used. Here, for example, it is assumed that 1.0 BTC has been remitted to the multisig address.
 送金トランザクションが仮想通貨型ネットワーク3に送信されることにより、送金トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックが仮想通貨型ネットワーク3に接続された全ての端末の分散台帳(ブロックチェーン)に反映される。ここでは、仮想通貨型ブロックチェーンにおいて、利用者のアドレスから、マルチシグアドレス宛に、1.0BTCのデポジットが送金されたことが確定する。 When the remittance transaction is transmitted to the virtual currency type network 3, a block including the remittance transaction is generated, and due to the gentle synchronization between the terminals, the block is distributed to all terminals connected to the virtual currency type network 3 (Blockchain). Here, it is determined that a 1.0 BTC deposit has been remitted from the user's address to the multisig address in the virtual currency type blockchain.
 本実施形態においては、送金トランザクションには、所定の期間(第1期間)が経過すると、利用者装置1の電子署名のみで、送金トランザクションの利用が可能となる出力条件が設定されている。具体的には、ステップS11の送金トランザクションがブロックチェーンに含まれてから一定の期間が経過すると、利用者のみの電子署名で出金することができる。すなわち、利用者は送金トランザクションを含むブロックがブロックチェーンに登録されてれから、一定の期間が経過した後は、送金トランザクションを次のトランザクションの入力(インプット)として使用することができる。このような時間制限を「タイムロック」と呼ぶ。タイムロックの期間は、例えば、S11の送金トランザクションがブロックチェーンに含まれた後に、当該ブロックの後ろに所定の数のブロック(例えば、100ブロック)が接続する時間とする。送金トランザクションにこのような出力条件を設定することで、利用者は、タイムロックの期間が経過した後は、マルチシグアドレスのデポジットを、自身のアドレスに返金(送金)することができるようになる。 In the present embodiment, in the remittance transaction, after a predetermined period (first period) has elapsed, an output condition is set such that the remittance transaction can be used only with the electronic signature of the user device 1. Specifically, after a certain period of time has elapsed since the remittance transaction in step S11 was included in the blockchain, it is possible to pay out with an electronic signature of only the user. That is, the user can use the remittance transaction as an input for the next transaction after a certain period has elapsed since the block including the remittance transaction was registered in the blockchain. Such a time limit is called “time lock”. The time lock period is, for example, a time period after the remittance transaction in S11 is included in the block chain and a predetermined number of blocks (for example, 100 blocks) are connected after the block. By setting such output conditions in the remittance transaction, the user can refund (remit) the deposit of the multisig address to his / her address after the time lock period has elapsed. .
 このマルチシグアドレスにタイムロックを施すことで、サービス提供者による決済トランザクションが送信されず、サービス提供者との連絡が途絶え、利用者のデポジットがデッドロックされてしまうことを防ぐことができる。例えば100ブロックのタイムロックがかかっていた場合に、100ブロック以上経過すると、利用者は、返金トランザクションを生成し、利用者の電子署名のみでマルチシグアドレスに送金されたデポジットを、利用者のアドレスに送金(返金)できる。 By applying a time lock to the multi-sig address, it is possible to prevent the settlement transaction by the service provider from being transmitted, thereby stopping the communication with the service provider and deadlocking the user's deposit. For example, if a time lock of 100 blocks has been applied, if 100 blocks or more have elapsed, the user will generate a refund transaction, and the deposit sent to the multi-sig address only with the user's electronic signature will be transferred to the user's address Can be remitted (refunded).
 ビットコインでは、トランザクションの出力に対してスクリプトによって出力条件を規定することができる。タイムロックは、トランザクションの属性の1つで、タイムロックで指定した時間または時刻までトランザクションが承認されない(マイナーによるブロックの生成時に不正なトランザクションとして扱われる)ようにするものである。 In Bitcoin, output conditions can be specified by script for the output of a transaction. The time lock is one of the attributes of the transaction, and prevents the transaction from being approved until the time or time specified by the time lock (the transaction is treated as an invalid transaction when the block is generated by the minor).
 図4は、本実施形態における、送金トランザクションの出力条件を説明するための図である。図4(a)は、送金トランザクションの出力条件の概念図である。図4(a)の「User」は利用者を示し、「SP」はサービス提供者を示す。図示する例では、「User」(利用者)の電子署名および「SP」(サービス提供者)の電子署名のマルチシグアドレスであることの条件と、タイムロックで指定した時刻以後(ここでは、100ブロック以後)は、「User」の電子署名のみで利用可能であることを示している。図4(b)は、図4(a)に示す出力条件のビットコインにおけるスクリプトの例である。 FIG. 4 is a diagram for explaining output conditions of a remittance transaction in the present embodiment. FIG. 4A is a conceptual diagram of an output condition of a remittance transaction. “User” in FIG. 4A indicates a user, and “SP” indicates a service provider. In the illustrated example, the condition that the digital signature of “User” (user) and the digital signature of “SP” (service provider) are multi-sig addresses, and the time after the time specified by the time lock (here, 100 (After block) indicates that the digital signature can be used only with the electronic signature of “User”. FIG. 4B is an example of a script for bit coins under the output conditions shown in FIG. 4A.
 次に、利用者装置1は、デポジットに関するデポジット情報を登録するためのトランザクション(保証金情報トランザクション)を、スマートコントラクト型ネットワーク4に送信する(ステップS12)。当該トランザクションは、デポジット情報として、少なくとも送金したデポジットの金額を含み、ステップS11の送金トランザクションのID、マルチシグアドレスなどの情報を、さらに含んでも良い。 Next, the user device 1 transmits a transaction (deposit information transaction) for registering deposit information relating to the deposit to the smart contract type network 4 (step S12). The transaction includes at least the amount of the remitted deposit as the deposit information, and may further include information such as the ID and the multisig address of the remittance transaction in step S11.
 このトランザクションがスマートコントラクト型ネットワーク4に送信されることにより、当該トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックがスマートコントラクト型ネットワーク4に接続された全ての端末の分散台帳に反映される。これにより、全ての端末において、分散台帳のブリッジングコントラクトが管理するストレージ領域に、デポジット情報が登録される。 When this transaction is transmitted to the smart contract type network 4, a block including the transaction is generated, and due to gradual synchronization between the terminals, the block is distributed to all terminals connected to the smart contract type network 4. Is reflected in Thereby, in all the terminals, the deposit information is registered in the storage area managed by the bridging contract of the distributed ledger.
 サービス提供者装置2は、自身の分散台帳に登録されているブリッジングコントラクトから、利用者装置1が登録したデポジット情報を取得する(ステップS13)。サービス提供者装置2は、取得したデポジット情報を用いて、トランザクションの雛型(トランザクション雛形)を作成する(ステップS14)。ここで、トランザクション雛形は、仮想通貨型ブロックチェーンのトランザクションを変形した、不完全なトランザクションの形式である。具体的には、後述する「決済」処理で「マルチシグアドレスからの送金を示す決済トランザクション」から、「送金額」および「すべての電子署名」の情報を除外したトランザクションである。 (4) The service provider device 2 acquires the deposit information registered by the user device 1 from the bridging contract registered in its own distributed ledger (step S13). The service provider device 2 creates a transaction template (transaction template) using the acquired deposit information (step S14). Here, the transaction template is a form of an incomplete transaction that is a modification of the transaction of the virtual currency type blockchain. Specifically, the transaction is a transaction in which information of “remittance amount” and “all electronic signatures” is excluded from “payment transaction indicating remittance from multi-sig address” in “payment” processing described later.
 図5に、トランザクション雛形のイメージを図示する。図示する例では、入力に必要な「全ての電子署名」および出力に必要な「送金額」は、「null」(空欄)となっている。また、図示する例では、2つの出力(出力1、出力2)を有し、2種類の送金額が記載されている。1つは、基本的にはサービス提供者に送金する金額であり、もう1つは利用者へのお釣として送金する金額である。なお、出力1の宛先には、次に説明する出力条件(条件1、条件2)を指定するスクリプトのハッシュ値が設定されている。 (5) An image of a transaction template is shown in FIG. In the illustrated example, “all digital signatures” required for input and “remittance amount” required for output are “null” (blank). Further, in the illustrated example, there are two outputs (output 1 and output 2), and two kinds of remittance amounts are described. One is basically the amount to be remitted to the service provider, and the other is the amount to be remitted as change to the user. The destination of the output 1 is set with a hash value of a script that specifies output conditions (conditions 1 and 2) described below.
 また、ステップS11では、マルチシグアドレスには1.0BTCがデポジットされている。次の「支払」処理では、利用者装置1は、このデポジットの範囲(1.0BTC)で、トランザクション雛形の「送金額(すなわち支払金額とお釣)」と「電子署名」とを更新して支払情報トランザクションを生成し、ブリッジングコントラクトに提出することになる。 {Circle around (1)} In step S11, 1.0 BTC is deposited in the multisig address. In the next “payment” process, the user device 1 updates the “transfer amount (that is, payment amount and change)” and “electronic signature” of the transaction template within this deposit range (1.0 BTC) and updates the payment information. You will generate a transaction and submit it to the bridging contract.
 本実施形態においては、トランザクション雛形の出力1には複数の出力条件が設定され、後述する「決済」処理の決済トランザクションは、複数の出力条件のいずれかを満たした場合に利用可能となる。ここでは、以下の2つの出力条件が課せられている。 In the present embodiment, a plurality of output conditions are set for the output 1 of the transaction template, and the settlement transaction of the “settlement” process described later can be used when any of the plurality of output conditions is satisfied. Here, the following two output conditions are imposed.
 図6に、条件1、2の出力条件を表したビットコインのスクリプトの例を示す。 FIG. 6 shows an example of a bitcoin script expressing the output conditions of conditions 1 and 2.
 条件1:トランザクション雛形(不完全なトランザクション)の出力は、タイムロックによって制限される。サービス提供者装置2は、指定されたタイムロックの一定の期間(第2期間)が経過すると、当該トランザクション雛形を用いて生成した決済トランザクションを、次のトランザクションの入力(インプット)として使用することができる。なお、タイムロックの一定の期間は、図6に示すスクリプトに設定され、S15でトランザクション雛形とともに、当該スクリプトはスマートコントラクト型ネットワーク4に送信され、全ての端末の分散台帳に反映される。利用者は、自身の分散台帳に登録されたスクリプトを見てタイムロックの時間を確認することができる。図6に示す例では、一定の期間は、送金トランザクション(図2:S11)がブロックチェーンに含まれた後に、110個のブロックがその後ろに接続する時間である。 Condition 1: Output of a transaction template (incomplete transaction) is restricted by a time lock. After a certain period (second period) of the designated time lock has elapsed, the service provider device 2 can use the settlement transaction generated using the transaction template as an input of the next transaction. it can. The certain period of the time lock is set in the script shown in FIG. 6, and the script is transmitted to the smart contract type network 4 together with the transaction template in S15, and is reflected in the distributed ledger of all terminals. The user can confirm the time lock time by looking at the script registered in his / her distributed ledger. In the example shown in FIG. 6, the certain period is a time period after the remittance transaction (FIG. 2: S11) is included in the block chain and 110 blocks are connected behind it.
 条件2:トランザクション雛形の出力は、ハッシュロックによって制限される。利用者は、ハッシュの原像(元のデータ)と、その署名とを使用して、スクリプトのロックを解除することができる。ここで「ハッシュロック」とは、指定されたハッシュに対応する原像を次のトランザクションの入力において提出することで、トランザクション雛形を用いて生成される決済トランザクションが使用可能になる条件である。 Condition 2: Transaction template output is restricted by hash lock. The user can unlock the script using the original image of the hash (original data) and its signature. Here, the “hash lock” is a condition under which an original image corresponding to a designated hash is submitted at the input of the next transaction, so that a settlement transaction generated using a transaction template can be used.
 本実施形態では、サービス提供者装置2は、トランザクション雛形を生成する際に任意の原像を生成し、当該原像のハッシュをスクリプトに設定する。ただし、設定の段階では原像は公開しない。条件1で述べたように、スクリプトはスマートコントラクト型ネットワーク4を介して利用者にも共有されているため、利用者装置1がハッシュの原像を取得できれば、本スクリプトと、原像と、利用者の署名とを合わせて決済トランザクションが使用可能となる。 In the present embodiment, the service provider device 2 generates an arbitrary original image when generating a transaction template, and sets a hash of the original image in a script. However, the original image is not disclosed at the stage of setting. As described in the condition 1, the script is shared by the user via the smart contract type network 4. Therefore, if the user device 1 can obtain the original image of the hash, the script, the original image, and the usage The payment transaction can be used together with the signature of the party.
 条件1および条件2は、トランザクション雛形が「決済」処理を経て、完全な決済トランザクションとして仮想通貨型ブロックチェーンに記録された後に機能する(後述する「決済」処理を参照)。条件1または条件2のどちらか一方の条件が満たされた場合にのみ、決済トランザクションは使用可能になる。 Conditions 1 and 2 function after the transaction template is recorded in the virtual currency blockchain as a complete settlement transaction through the “settlement” process (see the “settlement” process described later). Only when either condition 1 or condition 2 is satisfied, the settlement transaction can be used.
 条件1は、サービス提供者装置2が、指定したタイムロック後にのみ、マルチシグアドレスからの送金を自身のアドレス(ウォレット)に移すことができることを示している。具体的には、「決済」処理で、完全なトランザクションである決済トランザクションとしてブロードキャストされ、当該決済トランザクションがブロックチェーンに含まれた後に、一定数のブロックが後ろに接続する時間分(例えば110ブロック)経過後に、マルチシグアドレスから送金された資金のうち、自身が受け取る資金(図5の出力1の支払金額)を自由に移動できるようになる。 Condition 1 indicates that the service provider device 2 can transfer the remittance from the multisig address to its own address (wallet) only after the specified time lock. Specifically, in the “settlement” process, a complete transaction is broadcast as a settlement transaction, and after the settlement transaction is included in the block chain, a certain number of blocks are connected backward (for example, 110 blocks). After the lapse of time, of the funds remitted from the multisig address, the funds received by itself (payment amount of output 1 in FIG. 5) can be freely moved.
 もし、この待機時間の間に、サービス提供者が裏切り行為(「キャンセル処理」を参照)を行った場合、利用者は、条件2でマルチシグアドレスから送金された資金を全て(出力1・出力2ともに)取り戻す、すなわち、自身のアドレスに送金(返金)することができる。 If the service provider performs a betrayal action (refer to “cancel processing”) during this waiting time, the user must use all the funds remitted from the multisig address under condition 2 (output 1 / output 1). 2 together), that is, the money can be remitted (refunded) to its own address.
 条件2では、スクリプトに指定されたハッシュロックに対応する原像を、当該決済トランザクションに後続するトランザクションの入力に指定した場合、当該決済トランザクションは、利用者の電子署名のみで利用可能となる。この条件2は、キャンセルを成立させるために、サービス提供者に対するペナルティとして設定されている。詳細は、後述する「キャンセル」処理で説明する。 In condition 2, if the original image corresponding to the hash lock specified in the script is specified in the input of the transaction following the payment transaction, the payment transaction can be used only with the electronic signature of the user. The condition 2 is set as a penalty for the service provider in order to establish the cancellation. The details will be described in the "cancel" process described later.
 なお、条件1または条件2の実行順序は、(1)サービス提供者によって「キャンセルの合意」に対する裏切り行為が行われた場合、条件1のタイムロックの経過前に利用者が条件2を用いて、決済トランザクションでサービス提供者が入手するはずの資金(出力1)を、利用者の署名のみで自身のアドレスに送金する、(2) サービス提供者による裏切り行為が行われなかった場合、条件1のタイムロックの経過後に、サービス提供者が条件1を用いて決済トランザクションでサービス提供者が入手するはずの資金(出力1)を自身のアドレスに送金する、という順番になる。 Note that the execution order of the condition 1 or the condition 2 is as follows: (1) When the service provider performs a betrayal action for the “cancellation agreement”, the user uses the condition 2 before the time lock of the condition 1 elapses. Remit the funds (output 1) that the service provider should obtain in the settlement transaction to its own address only with the signature of the user. (2) If no betrayal by the service provider is performed, condition 1 After the elapse of the time lock, the order in which the service provider remits the funds (output 1) to be obtained by the service provider in the settlement transaction using condition 1 to its own address.
 そして、サービス提供者装置2は、仮想通貨型ブロックチェーンにおいて、ステップS11で送信された送金トランザクションを含むブロックが確定するのに十分な時間を経た上で、ステップS14で生成したトランザクション雛形を含む雛形情報トランザクションを、スマートコントラクト型ネットワーク4に送信する(ステップS15)。 Then, in the virtual currency type block chain, the service provider device 2 waits for a time sufficient to determine the block including the remittance transaction transmitted in step S11, and then generates the template including the transaction template generated in step S14. The information transaction is transmitted to the smart contract type network 4 (step S15).
 これにより、当該雛形情報トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックがスマートコントラクト型ネットワーク4に接続された全ての端末の分散台帳に反映される。ここでは、トランザクション雛形は、スマートコントラクト型ブロックチェーンのブリッジングコントラクトに登録される。 (4) As a result, a block including the template information transaction is generated, and the block is reflected in the distributed ledger of all terminals connected to the smart contract type network 4 by gradual synchronization between the terminals. Here, the transaction template is registered in the bridging contract of the smart contract type blockchain.
 この時、サービス提供者装置2は、雛形情報トランザクションに、トランザクション雛形の他に、次の支払処理で行われる電子署名の検証に必要な情報(例えば、利用者装置1の仮想通貨のアドレスに関する公開鍵)と、決済処理の検証に必要な情報(例えば、図6に示すスクリプト)とを含めて送信し、ブリッジングコントラクトに登録してもよい。あるいは、ブリッジングコントラクトが、事前に電子署名の検証に必要な情報、および、決済処理の検証に必要な情報を保持していても良い。 At this time, the service provider device 2 adds, in addition to the transaction template, information necessary for verifying the electronic signature performed in the next payment process (for example, disclosure of the virtual currency address of the user device 1) in the template information transaction. A key) and information (for example, a script shown in FIG. 6) necessary for verifying the payment process may be transmitted and registered in the bridging contract. Alternatively, the bridging contract may hold in advance information necessary for verifying the electronic signature and information necessary for verifying the payment processing.
 次に、「支払」処理について説明する。 Next, the “payment” process will be described.
 図7に、「支払」処理の概念図を示す。図7では、支払金額を更新しながら3回の支払処理を行う例を示す。 FIG. 7 shows a conceptual diagram of the “payment” process. FIG. 7 shows an example in which the payment processing is performed three times while updating the payment amount.
 まず、1回目の支払いにおいて、利用者装置1は、「設定」処理でサービス提供者装置2が登録したトランザクション雛形を、自身の分散台帳のブリッジングコントラクトから取得する(ステップS21)。そして、利用者装置1は、トランザクション雛形から電子署名1を作成する(ステップS22)。 First, in the first payment, the user device 1 acquires the transaction template registered by the service provider device 2 in the “setting” process from the bridging contract of its own distributed ledger (step S21). Then, the user device 1 creates the digital signature 1 from the transaction template (step S22).
 図8は、利用者装置1のステップS21およびステップS22の処理を示すフローチャートである。利用者装置1は、前述のとおり、ブリッジングコントラクトからトランザクション雛形を取得する(ステップS21)。そして、利用者装置1は、取得したトランザクション雛形に支払金額1(ここでは、0.3BTCとする)を設定し、署名前トランザクション1を生成する(ステップS221)。支払金額1を設定する際には、利用者へのお釣となる送金額(1.0BTC-0.3BTC-支払手数料)も利用者端末上で適切に計算され、設定される。支払手数料は、利用者間で決める場合、サービスごとに固定値を採用する場合などがある。そして、利用者装置1は、署名前トランザクション1に対して、マルチシグアドレスに対応する利用者の秘密鍵で電子署名1を生成する(ステップS223)。 FIG. 8 is a flowchart showing the processing in steps S21 and S22 of the user device 1. As described above, the user device 1 acquires a transaction template from the bridging contract (Step S21). Then, the user device 1 sets the payment amount 1 (here, 0.3 BTC) in the acquired transaction template, and generates the pre-signature transaction 1 (step S221). When the payment amount 1 is set, the remittance amount (1.0 BTC-0.3 BTC-payment fee) to be changed to the user is appropriately calculated and set on the user terminal. The payment fee may be determined between users, or a fixed value may be adopted for each service. Then, the user device 1 generates an electronic signature 1 for the pre-signature transaction 1 with the user's private key corresponding to the multisig address (step S223).
 図7に戻り、利用者装置1は、支払金額1と電子署名1とを含み、これらの情報をブリッジングコントラクトに登録するためのトランザクション(支払情報トランザクション)を生成し、スマートコントラクト型ネットワーク4に送信する(ステップS23)。これにより、当該トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックがスマートコントラクト型ネットワーク4に接続された全ての端末の分散台帳に反映される。ここでは、スマートコントラクト型ブロックチェーンにおいて、支払金額1と電子署名1とが各端末のブリッジングコントラクトに登録される。 Returning to FIG. 7, the user device 1 generates a transaction (payment information transaction) for including the payment amount 1 and the electronic signature 1 and registering the information in the bridging contract, and sends the transaction to the smart contract type network 4. Transmit (step S23). As a result, a block including the transaction is generated, and the block is reflected in the distributed ledger of all terminals connected to the smart contract type network 4 by gentle synchronization between the terminals. Here, in the smart contract type blockchain, the payment amount 1 and the electronic signature 1 are registered in the bridging contract of each terminal.
 本トランザクションを含むブロックが分散台帳に登録される時、全ての端末上で、ブリッジングコントラクトによる所定の処理(支払い検証)が実行される(ステップS24)。 (4) When the block including the transaction is registered in the distributed ledger, a predetermined process (payment verification) by the bridging contract is executed on all terminals (step S24).
 図9は、ブリッジングコントラクトが行うステップS24の検証処理を示すフローチャートである。まず、ブリッジングコントラクトは、ステップS23で利用者装置1が送信した「電子署名1と支払金額1(0.3BTC)とを登録するトランザクション」を取得する(ステップS241)。ブリッジングコントラクトは、取得したトランザクションの支払金額1と、その支払手数料(仮想通貨型ブロックチェーンにおいてマイナーに支払う手数料など)とを合わせた金額がデポジット金額(1.0BTC)を超えていないかを検証する(ステップS242)。 FIG. 9 is a flowchart showing the verification processing in step S24 performed by the bridging contract. First, the bridging contract acquires the “transaction for registering the electronic signature 1 and the payment amount 1 (0.3 BTC)” transmitted by the user device 1 in step S23 (step S241). The bridging contract verifies that the sum of the payment amount 1 of the acquired transaction and the payment fee (such as the fee paid to the miner in the virtual currency blockchain) does not exceed the deposit amount (1.0 BTC). (Step S242).
 超えていないことが検証された場合(正当性が検証された場合)、ブリッジングコントラクトは、支払情報トランザクションに含まれる電子署名1を、支払金額とトランザクションの雛形とを用いて検証する。具体的には、ブリッジングコントラクトは、設定処理(図3参照)で事前にブリッジングコントラクトに登録されたトランザクション雛形に、支払金額1を設定して署名前トランザクションを作成する(ステップS243)。支払金額1を設定する際には、利用者へのお釣となる送金額(1.0BTC-0.3BTC-支払手数料)もブリッジングコントラクト上で適切に計算され、設定される。次に、ブリッジングコントラクトは、作成した署名前トランザクションを用いて、電子署名1を検証する(ステップS244)。 If it is verified that the value does not exceed (if the validity is verified), the bridging contract verifies the electronic signature 1 included in the payment information transaction using the payment amount and the transaction template. Specifically, the bridging contract creates a pre-signature transaction by setting the payment amount 1 to a transaction template registered in advance in the bridging contract in the setting process (see FIG. 3) (step S243). When the payment amount 1 is set, the remittance amount (1.0 BTC-0.3 BTC-payment fee) to be changed to the user is appropriately calculated and set on the bridging contract. Next, the bridging contract verifies the electronic signature 1 using the created pre-signature transaction (step S244).
 この電子署名の検証方法として、ビットコインなどで用いられているECDSA方式の電子署名では、署名前のメッセージと電子署名とを用いて、検証用の公開鍵を復元できることが知られている。 As a method of verifying the electronic signature, it is known that in the ECDSA-type electronic signature used in bit coins and the like, a public key for verification can be restored using a message before the signature and the electronic signature.
 そこで、ブリッジングコントラクトは、例えば図3のステップS15などで事前に登録しておいた署名検証に必要な情報(公開鍵、公開鍵のハッシュなど)を利用して、ステップS241で取得したトランザクションの電子署名1の正当性を検証する。すなわち、ブリッジングコントラクトは、生成した署名前トランザクションと、利用者装置1から送信された電子署名1とを用いて公開鍵を復元し、復元した公開鍵と事前に登録しておいた公開鍵とが一致する場合、電子署名1は正当であると検証する。一方、復元した公開鍵と事前に登録しておいた公開鍵とが一致しない場合、ブリッジングコントラクトは、電子署名1は正当でないと検証する。 Therefore, the bridging contract uses the information (public key, public key hash, etc.) necessary for signature verification registered in advance in step S15 in FIG. The validity of the electronic signature 1 is verified. That is, the bridging contract restores the public key using the generated pre-signature transaction and the electronic signature 1 transmitted from the user device 1, and restores the restored public key and the public key registered in advance. If they match, the digital signature 1 is verified as valid. On the other hand, if the restored public key does not match the public key registered in advance, the bridging contract verifies that the electronic signature 1 is not valid.
 そして、ブリッジングコントラクトは、電子署名1の正当性が検証された場合、サービスコントラクトを呼び出す(ステップS245)。 Then, when the validity of the electronic signature 1 is verified, the bridging contract calls the service contract (Step S245).
 図7に戻り、電子署名1が正当であると検証された場合、ブリッジングコントラクトは、その支払金額1に応じたサービスを実行するためにサービスコントラクトを呼び出す。(ステップS25)。具体的には、ブリッジングコントラクトは、支払金額1などをパラメータとして、サービスコントコントラクトのメソッドを呼び出す(ステップS25)。これにより、サービスコントラクトは、支払金額に応じた所定のサービス(例えばデジタルコンテンツの権利移転など)を実行する。 Returning to FIG. 7, when the electronic signature 1 is verified to be valid, the bridging contract calls the service contract to execute a service corresponding to the payment amount 1. (Step S25). Specifically, the bridging contract calls the method of the service contract with the payment amount 1 or the like as a parameter (step S25). Thereby, the service contract executes a predetermined service (for example, right transfer of digital content) according to the payment amount.
 図7では、利用者装置1は、ステップS21~S25の支払処理を3回の実施し、その都度、サービスコントラクトによるサービスが実施される。2回目の支払処理(ステップS31~S35)および3回目の支払処理(ステップS31~S35)は、1回目の支払処理(ステップS21~S25)と同様である。 In FIG. 7, the user device 1 performs the payment process in steps S21 to S25 three times, and each time a service is provided by the service contract. The second payment process (steps S31 to S35) and the third payment process (steps S31 to S35) are the same as the first payment process (steps S21 to S25).
 ただし、支払金額は、支払金額1(0.3BTC)<支払金額2(0.6BTC)<支払金額3(0.9BTC)の関係が成り立ち、最後の支払金額(0.9BTC)が最終的な決済金額となる。ここで、2回目以降の支払金額は、前回の支払金額に今回のサービス分の支払金額を加算したものである。図7に示す例では、利用者装置1は、3回の支払いを行い、その都度0.3BTC分のサービスが提供されることを示している。 However, payment amount 1 (0.3 BTC) <payment amount 2 (0.6 BTC) <payment amount 3 (0.9 BTC) holds, the last payment amount (0.9 BTC) is the final settlement amount Become. Here, the second and subsequent payment amounts are obtained by adding the payment amount for the current service to the previous payment amount. In the example shown in FIG. 7, the user device 1 makes three payments, and provides a service of 0.3 BTC each time.
 なお、図7では、利用者装置1は、3回に渡っての支払情報トランザクションを、スマートコントラクト型ネットワーク4にブロードキャストしているが(ステップS23、S33、S43)、もし、3回目の支払いで、下記で説明する「決済」処理を行なった場合、サービス提供者装置2は、1回目と2回目の支払情報を用いて決済を行うことはできない。例え1回目と2回目の支払情報を用いて決済トランザクションを生成し、ブロードキャストしたとしても、仮想通貨型ブロックチェーンの合意検証のプロセスで弾かれ、ネットワーク的に無効となる。 In FIG. 7, the user device 1 broadcasts the payment information transaction three times to the smart contract type network 4 (steps S23, S33, S43). When the “settlement” process described below is performed, the service provider device 2 cannot perform the settlement using the first and second payment information. Even if a payment transaction is generated and broadcast using the first and second payment information, it is rejected in the process of consensus verification of the virtual currency type blockchain and becomes invalid on a network basis.
 ここまでで、「設定」および「支払い」の処理について説明した。ここで、通常の支払いとは別のフローとなる「支払い」の「キャンセル」処理について説明する。「キャンセル」処理では、「支払い」処理とは異なり、先に登録した支払金額よりも、低い金額を登録することが可能である。キャンセルは以前の支払いを無効にするために、新たなトランザクション雛形を登録する必要がある。 処理 So far, the processing of “setting” and “payment” has been described. Here, “cancel” processing of “payment”, which is a flow different from normal payment, will be described. In the "cancel" process, unlike the "payment" process, it is possible to register an amount lower than the previously registered payment amount. Cancellation requires registering a new transaction template to invalidate the previous payment.
 図10に、「キャンセル」処理の概要を示す。図10に示す処理が行われることで、利用者およびサービス提供者との間で、「支払の」処理のキャンセルが合意されたと見なされる。 FIG. 10 shows an outline of the “cancel” process. By performing the processing illustrated in FIG. 10, it is considered that the cancellation of the “payment” processing has been agreed between the user and the service provider.
 利用者装置1は、サービス提供者装置2にキャンセル要求を送信する(ステップS71)。 (4) The user device 1 transmits a cancellation request to the service provider device 2 (step S71).
 サービス提供者装置2は、キャンセル要求を受信すると、新しいトランザクション雛形(他のトランザクション雛形)を生成する(ステップS72)。具体的には、サービス提供者装置2は、新しい原像を生成し、当該原像のハッシュを用いて新しいトランザクション雛形および出力条件のスクリプトを生成する。新たなトランザクション雛形および出力条件のスクリプトは、「設定」処理のトランザクション雛形(図3:S14)および出力条件のスクリプト(図6)と、原像のハッシュのみが異なり、その他は同様である。なお、原像は、特に指定しないが、簡単に推測できないものである必要がある。 (4) Upon receiving the cancel request, the service provider device 2 generates a new transaction template (another transaction template) (step S72). Specifically, the service provider device 2 generates a new original image, and generates a new transaction template and a script of output conditions using the hash of the original image. The new transaction template and output condition script are the same as the transaction template of the “setting” process (FIG. 3: S14) and the output condition script (FIG. 6) except for the hash of the original image. Although the original image is not specified, it is necessary that the original image cannot be easily estimated.
 サービス提供者装置2は、ステップS72で生成したトランザクション雛形を含む雛形情報トランザクションを、スマートコントラクト型ネットワーク4に送信する(ステップS73)。これにより、当該雛形情報トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックがスマートコントラクト型ネットワーク4に接続された全ての端末の分散台帳に反映される。ここでは、新たなトランザクション雛形は、スマートコントラクト型ブロックチェーンのブリッジングコントラクトに登録される。 {Circle around (2)} The service provider device 2 transmits the template information transaction including the transaction template generated in step S72 to the smart contract type network 4 (step S73). As a result, a block including the template information transaction is generated, and the block is reflected in the distributed ledger of all terminals connected to the smart contract type network 4 by gentle synchronization between the terminals. Here, the new transaction template is registered in the bridging contract of the smart contract type blockchain.
 この時、サービス提供者装置2は、雛形情報トランザクションに、新たなトランザクション雛形の他に、キャンセル処理で行われる電子署名の検証に必要な情報(例えば、利用者装置1の仮想通貨のアドレスに関する公開鍵)と、決済処理の検証に必要な情報(例えば、出力条件を示すスクリプト)とを含めて送信し、ブリッジングコントラクトに登録してもよい。あるいは、ブリッジングコントラクトが、事前に電子署名の検証に必要な情報、および、決済処理の検証に必要な情報を保持していても良い。 At this time, the service provider device 2 adds to the template information transaction, in addition to the new transaction template, information necessary for verifying the electronic signature performed in the cancellation process (for example, disclosure of the virtual currency address of the user device 1). A key) and information necessary for verifying the payment processing (for example, a script indicating an output condition) may be transmitted and registered in the bridging contract. Alternatively, the bridging contract may hold in advance information necessary for verifying the electronic signature and information necessary for verifying the payment processing.
 利用者装置1は、新しいトランザクション雛形を、自身の分散台帳のブリッジングコントラクトから取得する(ステップS74)。そして、利用者装置1は、図7のS22およびS23と同様に、新たな電子署名を生成し、新たなトランザクション雛形を用いて新たな支払情報(支払金額、電子署名)をブリッジングコントラクトに登録するための支払情報トランザクション(他の支払情報トランザクション)をスマートコントラクト型ネットワーク4に送信する(ステップS75、S76)。これにより、支払情報トランザクションを含むブロックが生成され、当該ブロックがスマートコントラクト型ネットワーク4に接続された全ての端末の分散台帳に登録される。新たな支払情報の支払金額は、「支払処理」の最新の支払情報トランザクションの支払金額よりも低い金額である。 (4) The user device 1 acquires a new transaction template from the bridging contract of its own distributed ledger (step S74). Then, similarly to S22 and S23 in FIG. 7, the user device 1 generates a new electronic signature and registers new payment information (payment amount, electronic signature) in the bridging contract using the new transaction template. A payment information transaction (another payment information transaction) is transmitted to the smart contract type network 4 (steps S75 and S76). As a result, a block including the payment information transaction is generated, and the block is registered in the distributed ledger of all terminals connected to the smart contract type network 4. The payment amount of the new payment information is lower than the payment amount of the latest payment information transaction of “payment processing”.
 新たな支払情報トランザクションを含むブロックが分散台帳に登録されると、全ての端末上で、ブリッジングコントラクトによる支払い検証が実行される(ステップS77)。すなわち、ブリッジングコントラクトは、新たな支払情報トランザクションの支払金額および電子証明を検証する。ブリッジングコントラクトは、図7のS24と同様の支払い検証を行う。さらに、ブリッジングコントラクトは、新たな支払金額が、前回の支払情報トランザクションの支払金額よりも低い金額であるか否かを検証し、低い金額の場合、新たな支払金額は正当であると判断する。 When the block including the new payment information transaction is registered in the distributed ledger, payment verification by the bridging contract is executed on all terminals (step S77). That is, the bridging contract verifies the payment amount and the electronic proof of the new payment information transaction. The bridging contract performs the same payment verification as in S24 of FIG. In addition, the bridging contract verifies whether the new payment amount is lower than the payment amount of the previous payment information transaction, and if it is lower, determines that the new payment amount is valid. .
 サービス提供者装置2は、自身の分散台帳から新たな支払情報トランザクションを取得し、当該トランザクションの支払金額をサービス提供者に提示する。サービス提供者は、支払金額を確認して、利用者が要求したキャンセルに合意するか否かを判断する。サービス提供者は、利用者のキャンセル要求が不当なものである場合など、利用者からのキャンセル要求に合意しないと判断することもできる。合意しない場合は、サービス提供者装置2は、次のステップS79を行わない。 (4) The service provider device 2 acquires a new payment information transaction from its own distributed ledger, and presents the payment amount of the transaction to the service provider. The service provider checks the payment amount and determines whether or not to agree to the cancellation requested by the user. The service provider can also determine that the user does not agree with the cancellation request, such as when the user's cancellation request is improper. If they do not agree, the service provider device 2 does not perform the next step S79.
 サービス提供者がキャンセルに合意する場合、サービス提供者装置2は、古いトランザクション雛型(図3:S15)の条件2で設定したハッシュの元となる原像を、ブリッジングコントラクトに登録するための原像トランザクションを生成し、スマートコントラクト型ネットワーク4に送信する(ステップS79)。これにより、原像トランザクションを含むブロックが生成され、当該ブロックがスマートコントラクト型ネットワーク4に接続された全ての端末の分散台帳に登録される。これにより、古いトランザクション雛型における条件2のハッシュの原像が利用者装置1に共有される。本実施形態では、サービス提供者装置2が原像トランザクションを送信することで、サービス提供者が、キャンセルに合意したとみなされる。 If the service provider agrees to cancel, the service provider device 2 registers the original image serving as the base of the hash set in condition 2 of the old transaction template (FIG. 3: S15) in the bridging contract. An original image transaction is generated and transmitted to the smart contract type network 4 (step S79). As a result, a block including the original image transaction is generated, and the block is registered in the distributed ledger of all terminals connected to the smart contract type network 4. As a result, the original image of the hash of the condition 2 in the old transaction template is shared by the user device 1. In the present embodiment, when the service provider device 2 transmits the original image transaction, it is considered that the service provider has agreed to the cancellation.
 原像トランザクションを含むブロックが各端末の分散台帳に登録されると、全ての端末上で、ブリッジングコントラクトによるサービスの取り消し処理が実行される(ステップS80)。ブリッジングコントラクトは、S74の支払金額に応じて、既に実行されたサービスを取り消すためにサービスコントラクトを呼び出す。具体的には、ブリッジングコントラクトは、所定の金額(例えば、前回の支払金額と今回お支払金額との差分金額)をパラメータとして、サービスコントコントラクトのメソッドを呼び出す。これにより、サービスコントラクトは、差分金額に応じた所定のサービスを取り消す。 (4) When the block including the original image transaction is registered in the distribution ledger of each terminal, a service cancellation process by a bridging contract is executed on all terminals (step S80). The bridging contract calls the service contract according to the payment amount of S74 in order to cancel the already executed service. Specifically, the bridging contract calls a service contract method using a predetermined amount (for example, a difference amount between the previous payment amount and the current payment amount) as a parameter. Thereby, the service contract cancels the predetermined service according to the difference amount.
 最後に「決済」処理について説明する。 Finally, the “settlement” process will be described.
 図11は、「決済」処理を示す図である。サービス提供者装置2は、任意のタイミングで支払いを締めて、仮想通貨型ブロックチェーン上に支払いを反映させる。まず、サービス提供者装置2は、最終的な支払金額と、電子署名と、トランザクション雛形とを、自身の分散台帳(ブリッジングコントラクト)から取得する(ステップS51)。 FIG. 11 is a diagram showing the “settlement” process. The service provider device 2 closes the payment at an arbitrary timing and reflects the payment on the virtual currency type blockchain. First, the service provider device 2 acquires a final payment amount, an electronic signature, and a transaction template from its own distributed ledger (bridging contract) (step S51).
 ここで、最終的な支払金額と、電子署名と、トランザクション雛形とは、キャンセル処理が行われていない場合は、図7の支払金額3と、電子署名3と、トランザクション雛形であり、キャンセル処理が行われた場合は、図10の新たな支払金額と、電子署名と、トランザクション雛形である。 Here, the final payment amount, the electronic signature, and the transaction template are the payment amount 3, the electronic signature 3, and the transaction template in FIG. 7 when the cancellation process is not performed. If it has been done, it is the new payment amount, the electronic signature, and the transaction template in FIG.
 そして、サービス提供者装置2は、トランザクション雛形にS51で取得した支払金額と電子署名とを設定して決済トランザクションを生成する。この時点の決済トランザクションは、「利用者装置1のみの電子署名が付与された、マルチシグアドレスから送金するトランザクション」である。すなわち、この時点の決済トランザクションは、サービス提供者装置2の電子署名がないため、有効なトランザクションではない。 Then, the service provider device 2 sets the payment amount and the electronic signature acquired in S51 in the transaction template to generate a settlement transaction. The settlement transaction at this time is a “transaction from the multi-sig address to which the digital signature of only the user device 1 has been added”. That is, the settlement transaction at this point is not a valid transaction because the electronic signature of the service provider device 2 is not provided.
 そこで、サービス提供者装置2は、マルチシグアドレスからの送金を有効にするために、決済トランザクションに、自身の端末上でマルチシグに対応する自身の秘密鍵で電子署名を付与し、仮想通貨型ブロックチェーン上で有効となる決済トランザクションを作成する(ステップS52)。署名後の決済トランザクションは、利用者とサービス提供者の2つの電子署名を持つため仮想通貨型ブロックチェーン上で有効となる。 Therefore, the service provider device 2 attaches an electronic signature to the settlement transaction with its own private key corresponding to the multisig on its own terminal in order to make the remittance from the multisig address valid, and the virtual currency type block. A payment transaction valid on the chain is created (step S52). The settlement transaction after the signature has two electronic signatures of the user and the service provider, and thus is effective on the virtual currency type blockchain.
 サービス提供者装置2は、署名後の決済トランザクションを仮想通貨型ネットワーク3に送信する(ステップS53)。サービス提供者は、送金トランザクション(図3のS11)の出力条件により、当該送金トランザクションのブロックが分散台帳に登録されてから100ブロックが接続されるまでの前に、決済トランザクションを送信する必要がある。 {Circle around (2)} The service provider device 2 transmits the settlement transaction after the signature to the virtual currency network 3 (step S53). The service provider needs to transmit a settlement transaction before 100 blocks are connected after the block of the remittance transaction is registered in the distribution ledger, depending on the output condition of the remittance transaction (S11 in FIG. 3). .
 決済トランザクションが仮想通貨型ネットワーク3に送信されることにより、決済トランザクションを含むブロックが生成され、端末間のゆるやかな同期により、当該ブロックが仮想通貨型ネットワーク3に接続された全ての端末の分散台帳に反映される。 When the settlement transaction is transmitted to the virtual currency network 3, a block including the settlement transaction is generated, and the loose synchronization between the terminals causes the block to be distributed to all terminals connected to the virtual currency network 3 Is reflected in
 これにより、決済トランザクションの出力2のお釣りは、利用者のアドレスに送金される。一方、決済トランザクションの出力1の支払金額については、仮想通貨型ブロックチェーンにおいて、決済トランザクション(トランザクション雛形)の出力1の宛先で設定されたハッシュが示すスクリプトの条件1、2のいずれかを満たした場合、当該決済トランザクションの使用が可能となる。 Thereby, the change of the output 2 of the settlement transaction is remitted to the user's address. On the other hand, the payment amount of the output 1 of the settlement transaction satisfies one of the conditions 1 and 2 of the script indicated by the hash set at the destination of the output 1 of the settlement transaction (transaction template) in the virtual currency blockchain. In this case, the settlement transaction can be used.
 これにより、本実施形態では、サービス提供者に支払いのキャンセルを履行させる。すなわち、本実施形態では、サービス提供者が原像トランザクションを送信することで、利用者が要求するキャンセルに合意したにもかかわらず、それを反故にする取引を防止することができる。 According to this, in the present embodiment, the service provider is made to perform the cancellation of the payment. That is, in the present embodiment, by transmitting the original image transaction by the service provider, it is possible to prevent a transaction in which the user agrees with the cancellation requested by the user and makes the transaction cancel.
 具体的には、サービス提供者がマルチシグアドレスに送金されたデポジットから所定の支払金額を得ることができるのは、条件1のタイムロックで指定された期間の経過後である。図示する例では、送金トランザクション(図3のS11)のブロックが分散台帳に登録されてから110ブロックが接続された期間(T2)の経過後である。すなわち、サービス提供者装置2は、決済トランザクションに指定された支払金額を自身のアドレスに送金するための決済実行トランザクションは、条件1のタイムロック期間経過後(T2)となる(ステップS56)。 Specifically, the service provider can obtain a predetermined payment amount from the deposit remitted to the multisig address after the elapse of the period specified by the time lock of the condition 1. In the illustrated example, the period (T2) after 110 blocks have been connected since the block of the remittance transaction (S11 in FIG. 3) was registered in the distribution ledger. That is, the service provider device 2 performs the payment execution transaction for remitting the payment amount specified in the payment transaction to its own address after the elapse of the time lock period of the condition 1 (T2) (step S56).
 また、サービス提供者装置2は、キャンセルに合意した場合、図10のステップS79において、古いトランザクション雛形で使用したハッシュの原像をブリッジングコントラクトの分散台帳に登録することで利用者に公開している。そのため、サービス提供者が、キャンセルの合意を反故にすることで利用者を裏切り、キャンセルしたはずの古いトランザクション雛形を用いて決済トランザクションを送信した場合であっても、利用者は、公開されたハッシュの原像を用いることで、条件2のハッシュロックの解除することができる。 Further, when the service provider device 2 agrees to the cancellation, in step S79 in FIG. 10, the service provider device 2 registers the original image of the hash used in the old transaction template in the distribution ledger of the bridging contract and discloses it to the user. I have. Therefore, even if the service provider betrayed the user by falsifying the cancellation agreement and sent the settlement transaction using the old transaction template that should have been canceled, the user will still be By using the original image of, the hash lock of the condition 2 can be released.
 この場合、利用者は、条件1のタイムロックの期間(T2)が経過する前に、決済トランザクションで指定された出力1の支払金額を自身のアドレスに送金するためのペナルティトランザクションを送信し、自身のアドレスにサービス提供者に支払われるはずの支払金額を取り戻すことができる(ステップS55)。なお、決済トランザクションの出力2のお釣りは、決済トランザクション(S53)がブロックチェーンに登録されることにより、利用者のアドレスに送金される。 In this case, the user transmits a penalty transaction for remitting the payment amount of the output 1 specified in the settlement transaction to his / her address before the time lock period (T2) of the condition 1 elapses. The payment amount to be paid to the service provider can be recovered to the address (step S55). The change of the output 2 of the settlement transaction is remitted to the user's address by registering the settlement transaction (S53) in the blockchain.
 このように本実施形態では、サービス提供者がキャンセルに合意した場合、条件2による利用者のペナルティトランザクションがペナルティ(罰金)として機能するため、サービス提供者は利用者を裏切るような行動が取り難くなる。すなわち、決済トランザクション(トランザクション雛形)に出力条件を課すことで、利用者よりも前に、サービス提供者が決済トランザクションの出力1の支払金額を自身のアドレスに送金することは難しい。 As described above, in the present embodiment, when the service provider agrees to cancel, the penalty transaction of the user under the condition 2 functions as a penalty (fine), so that it is difficult for the service provider to take an action that betrays the user. Become. That is, it is difficult for the service provider to remit the payment amount of output 1 of the settlement transaction to its own address before the user by imposing an output condition on the settlement transaction (transaction template).
 以下に、キャンセル処理が行われていない場合と、キャンセル処理が行われている場合とに分けて、S53以降の処理を説明する。 処理 Hereinafter, the processing after S53 will be described separately for a case where the cancel processing is not performed and a case where the cancel processing is performed.
 <キャンセル処理が行われていない場合>
 サービス提供者装置2は、図7の支払金額3と、電子署名3と、トランザクション雛形とを用いて生成した決済トランザクションを仮想通貨型ネットワーク3に送信する(ステップS53)。サービス提供者装置2は、送金トランザクション(図3のS11)の出力条件で指定された期間(T1)までの間に、決済トランザクションを送信する。
<When cancel processing is not performed>
The service provider device 2 transmits the payment transaction generated using the payment amount 3, the electronic signature 3, and the transaction template in FIG. 7 to the virtual currency network 3 (step S53). The service provider device 2 transmits the settlement transaction until the period (T1) specified by the output condition of the remittance transaction (S11 in FIG. 3).
 そして、サービス提供者装置2は、条件1のタイムロックで指定された期間(T2)の経過後に、決済トランザクションに指定された支払金額(出力1)を自身のアドレスに送金するための決済実行トランザクションを、仮想通貨型ネットワーク3に送信する(ステップS56)。 Then, after a period (T2) specified by the time lock of the condition 1 has elapsed, the service provider apparatus 2 setstle the payment amount (output 1) specified in the payment transaction to its own address. Is transmitted to the virtual currency type network 3 (step S56).
 これにより、マルチシグアドレスから、サービス提供者のアドレス宛に、0.9BTCの支払金額3が送金され、決済が完了する。 With this, the payment amount 3 of 0.9 BTC is remitted from the multisig address to the address of the service provider, and the settlement is completed.
 なお、サービス提供者装置2が決済トランザクションを仮想通貨型ネットワーク3に送信するまで(ステップS53)、すなわちサービス提供者が支払いを締めるまで、利用者装置1は、図5に示すn回目の支払処理を行い、支払金額を書き換えて、追加のサービス提供を受けることができる。 Until the service provider device 2 transmits the settlement transaction to the virtual currency network 3 (step S53), that is, until the service provider closes the payment, the user device 1 performs the n-th payment process shown in FIG. To rewrite the payment amount and receive additional service provision.
 <キャンセル処理が行われている場合>
 サービス提供者装置2は、原則として、キャンセル処理で登録された新たな支払金額と、電子署名と、トランザクション雛形とを用いて生成した決済トランザクションを仮想通貨型ネットワーク3に送信する(ステップS53)。サービス提供者装置2は、送金トランザクション(図3のS11)の出力条件で指定された期間(T1)までの間に、決済トランザクションを送信する。
<When cancel processing is performed>
The service provider device 2 transmits, in principle, the settlement transaction generated using the new payment amount registered in the cancellation process, the electronic signature, and the transaction template to the virtual currency network 3 (step S53). The service provider device 2 transmits the settlement transaction until the period (T1) specified by the output condition of the remittance transaction (S11 in FIG. 3).
 ここで、利用者は、サービス提供者がペナルティを承知で利用者を裏切る(キャンセルを反故にする)ことに備えて、仮想通貨型ブロックチェーンに決済トランザクションが含まれるかどうかを監視し、決済トランザクションを検証する(S54)。具体的には、利用者装置1は、自身の分散台帳を参照して、決済トランザクションが存在するか否か、また、決済トランザクションが存在する場合は、当該決済トランザクションの支払金額が、キャンセル処理で送信した支払金額であるか否かを検証する。 Here, the user monitors whether the cryptocurrency type blockchain includes a settlement transaction in preparation for the service provider to betray the user with knowledge of the penalty (to make the cancellation wrong), and settle the settlement transaction. Is verified (S54). Specifically, the user device 1 refers to its own distributed ledger to determine whether or not there is a settlement transaction, and if there is a settlement transaction, the payment amount of the settlement transaction is determined by the cancellation process. Verify whether the payment amount is sent.
 決済トランザクションの支払金額がキャンセル処理で送信した支払金額でない場合(検証NGの場合)、利用者装置1は、条件1の期間(T2)が経過する前に、決済トランザクションの出力1で指定された支払金額を自身のアドレスに送金するためのペナルティトランザクションを仮想通貨型ネットワーク3に送信する(ステップS55)。これにより、利用者は、決済トランザクションでサービス提供者に支払われるはずの支払金額(出力1)を、ペナルティとして自身のアドレスに戻すことができる。なお、決済トランザクションが送信されない場合、利用者装置1は、送金トランザクションでマルチシグアドレスに対して送金したデポジットを自身のアドレスに返金するための返金トランザクションを送信する。 If the payment amount of the settlement transaction is not the payment amount transmitted in the cancellation process (in the case of verification NG), the user device 1 specifies the payment amount in the output 1 of the settlement transaction before the period (T2) of the condition 1 elapses. A penalty transaction for transferring the payment amount to its own address is transmitted to the virtual currency network 3 (step S55). As a result, the user can return the payment amount (output 1) to be paid to the service provider in the settlement transaction to his / her address as a penalty. When the settlement transaction is not transmitted, the user device 1 transmits a refund transaction to refund the deposit remitted to the multisig address in the remittance transaction to its own address.
 決済トランザクションの支払金額がキャンセル処理で送信した支払金額の場合(検証OKの場合)、利用者装置1はS55のペナルティトランザクションを送信しない。これにより、サービス提供者装置2は、条件1の期間(T2)の経過後に、決済実行トランザクションを送信する(S56)。これにより、サービス提供者は、決済トランザクションの出力1に指定された、キャンセル処理で合意した支払金額を自身のアドレスに送金することができる。 (4) When the payment amount of the settlement transaction is the payment amount transmitted in the cancellation process (in the case of verification OK), the user device 1 does not transmit the penalty transaction of S55. As a result, the service provider device 2 transmits the settlement execution transaction after the lapse of the period (T2) of the condition 1 (S56). As a result, the service provider can remit the payment amount specified in the output 1 of the settlement transaction and agreed on in the cancellation process to its own address.
 図12に、仮想通貨型ブロックチェーンにおけるトランザクションの関係を示す。送金トランザクション121は、図3のS11で説明したように、利用者が1.0BTCのデポジットをマルチシグアドレスに送金するためのトランザクションである。この送金トランザクションの出力条件(例えば100ブロックのタイムロック)の間に、決済トランザクション123(図11:S53)が送信されない場合、利用者は、返金トランザクション122を送信し、送金トランザクションで送金した1.0BTCのデポジットを自身のアドレスに取り戻す。これにより、サービス提供者との連絡が途絶え、利用者のデポジットがデッドロックされてしまうことを防ぐことができる。 FIG. 12 shows the relationship of transactions in the virtual currency type blockchain. The remittance transaction 121 is a transaction for the user to remit a 1.0 BTC deposit to the multisig address, as described in S11 of FIG. If the settlement transaction 123 (FIG. 11: S53) is not transmitted during the output condition of the remittance transaction (for example, a time lock of 100 blocks), the user transmits the refund transaction 122 and transmits the 1.0 BTC transferred by the remittance transaction. To get your deposit back to your own address. Thus, it is possible to prevent the contact with the service provider from being interrupted and the user's deposit from being deadlocked.
 一方、送金トランザクションの出力条件の間に決済トランザクション123(図11:S53)が送信された場合であって、サービス提供者がキャンセル処理の合意を反故にした場合、利用者は、決済トランザクション(出力1)の条件2によりペナルティトランザクション124(図11:S55)を送信し、決済トランザクションの出力1に設定された支払金額(0.7BTC)を、自身(利用者)のアドレスに送金する。 On the other hand, when the settlement transaction 123 (FIG. 11: S53) is transmitted during the output condition of the remittance transaction, and the service provider rejects the cancellation processing agreement, the user sets the settlement transaction (output The penalty transaction 124 (FIG. 11: S55) is transmitted according to the condition 2 of 1), and the payment amount (0.7 BTC) set in the output 1 of the settlement transaction is remitted to the address of the user (user).
 また、決済トランザクション123が送信された場合であって、キャンセル処理が行われていない場合または合意したキャンセル処理が正しく履行されている場合、サービス提供者は、決済トランザクション(出力1)の条件1により決済実行トランザクション125(図11:S56)を送信し、決済トランザクションの出力1に設定された支払金額(0.7BTC)を、自身(サービス提供者)のアドレスに送金する。 Also, in the case where the settlement transaction 123 has been transmitted and the cancellation process has not been performed or the agreed cancellation process has been correctly performed, the service provider determines the condition 1 of the settlement transaction (output 1). The payment execution transaction 125 (FIG. 11: S56) is transmitted, and the payment amount (0.7 BTC) set in the output 1 of the payment transaction is remitted to the address of the own (service provider).
 なお、決済トランザクションの出力2のお釣り(0.3BTC)は、決済トランザクションがブロックチェーンに登録されると、利用者のアドレスへ送金される。 釣 り The change 2 (0.3 BTC) of the settlement transaction output 2 is remitted to the user's address when the settlement transaction is registered in the blockchain.
 本実施形態では、送金トランザクションのタイムロックの期間(T1)と、決済トランザクション(トランザクション雛形)の条件1のタイムロックの期間(T2)とを調整することで、利用者端末1の仮想通貨型ブロックチェーンへの監視コストを下げる。具体的には、タイムロックの期間をT1<T2とすることで、送信トランザクションへのタイムロックよりも、決済トランザクションへのタイムロックが必ず長くなるように設定する。これにより、サービス提供者は、T1のタイムロックが切れる前に決済トランザクションの送信(ステップS53)を行わなければならず、また、決済トランザクションの送信を行ったとしても、T1を経過しT2までは、決済トランザクションを利用(出力1の支払金額を自身のアドレスに送金)することができない。 In this embodiment, the virtual currency block of the user terminal 1 is adjusted by adjusting the time lock period (T1) of the remittance transaction and the time lock period (T2) of the condition 1 of the settlement transaction (transaction template). Reduce the cost of monitoring the chain. Specifically, by setting the time lock period to T1 <T2, the time lock for the settlement transaction is always set to be longer than the time lock for the transmission transaction. As a result, the service provider must transmit the settlement transaction before the time lock of T1 expires (step S53). Cannot use the settlement transaction (transfer the payment amount of output 1 to its own address).
 したがって、トランザクション雛形とともに登録される条件1のT2が、T1より長いことが保証できれば、利用者装置1は、少なくともT1までの時間は、サービス提供者装置2の決済トランザクションを監視する必要はなく、T1からT2までの間に決済トランザクションを確認すればよい。より具体的には、利用者装置1はT1からT2の間で仮想通貨型ネットワーク3に接続し、または、自身の分散台帳を参照し、「決済トランザクションが既にブロックに含まれているか否か」、「決済トランザクションが正当か否か」を確認する(S54)。したがって、T1とT2の期間が設定されていることにより、利用者装置が仮想通貨型ブロックチェーンに接続する期間が限定され、常時ブロックチェーンを監視する必要性がなくなる。 Therefore, if it can be guaranteed that T2 of condition 1 registered with the transaction template is longer than T1, the user device 1 does not need to monitor the settlement transaction of the service provider device 2 at least until the time T1. Confirm the settlement transaction between T1 and T2. More specifically, the user device 1 connects to the virtual currency network 3 between T1 and T2, or refers to its own distributed ledger, and determines whether or not the settlement transaction is already included in the block. Then, it is confirmed whether or not the settlement transaction is valid (S54). Therefore, by setting the periods of T1 and T2, the period during which the user device is connected to the virtual currency type blockchain is limited, and the need to constantly monitor the blockchain is eliminated.
 本実施形態では、T1<T2であることを、スマートコントラクトを用いて保証する。具体的には、トランザクション雛形を登録する際に(図3のステップS15、および、図10のステップS73)、ブリッジングコントラクトは、送金トランザクションのタイムロックの期間(T1)よりも、トランザクション雛形のタイムロックの期間(T2)が長いか否かを検証し、T1<T2を満たしていない場合は、エラーメッセージをサービス提供者装置2に送信する。なお、T1については、図5に示すように、トランザクション雛形の入力(スクリプト)に設定されている。 In this embodiment, it is guaranteed that T1 <T2 using a smart contract. Specifically, when registering the transaction template (Step S15 in FIG. 3 and Step S73 in FIG. 10), the bridging contract sets the time of the transaction template to be shorter than the time lock period (T1) of the remittance transaction. It is determined whether or not the lock period (T2) is long. If T1 <T2 is not satisfied, an error message is transmitted to the service provider device 2. Note that T1 is set in a transaction template input (script) as shown in FIG.
 以上説明した本実施形態では、トランザクションの雛型(出力1)には複数の出力条件が設定され、決済トランザクションは、複数の出力条件のいずれかを満たした場合に、利用可能となる。これにより、本実施形態では、複数のブロックチェーンを効率的に連携し、利用者とサービス提供者とが合意した支払いのキャンセルを、仮想通貨ブロックチェーンに反映させることができる。具体的には、サービス提供者が、キャンセルの合意を反故にすることで利用者を裏切り、キャンセルしたはずの古いトランザクション雛形を用いて決済トランザクションを送信した場合であっても、利用者は、キャンセル処理でサービス提供者が公開したハッシュの原像を用いることで、条件2のハッシュロックの解除することができる。すなわち、利用者は、条件1のタイムロックの期間が経過する前に、決済トランザクションで指定された支払金額を自身のアドレスに送金するためのペナルティトランザクションを送信し、自身のアドレスにデポジットを取り戻すことができる。 In the embodiment described above, a plurality of output conditions are set in the transaction template (output 1), and the settlement transaction can be used when any of the plurality of output conditions is satisfied. Thus, in the present embodiment, a plurality of block chains can be efficiently linked, and the cancellation of payment agreed between the user and the service provider can be reflected on the virtual currency block chain. Specifically, even if the service provider betrayed the user by reversing the cancellation agreement and sent a settlement transaction using the old transaction template that should have been cancelled, The hash lock of the condition 2 can be released by using the original image of the hash disclosed by the service provider in the processing. That is, the user sends a penalty transaction for remittance of the payment amount specified in the settlement transaction to his / her address before the time lock period of Condition 1 elapses, and recovers the deposit to his / her address. Can be.
 このように本実施形態では、トランザクション雛形に出力条件を課す。これにより、サービス提供者がキャンセルに合意した場合、条件2による利用者のペナルティトランザクションがペナルティとして機能する。また、条件1のタイムロックの制約があるため、サービス提供者が、利用者よりも前に決済トランザクションの支払金額を自身のアドレスに送金することは難しい。したがって、サービス提供者は利用者を裏切るような行動が取り難くなる。 As described above, in the present embodiment, the output condition is imposed on the transaction template. Thus, if the service provider agrees to cancel, the penalty transaction of the user according to Condition 2 functions as a penalty. Also, due to the time lock constraint of Condition 1, it is difficult for the service provider to remit the payment amount of the settlement transaction to its own address before the user. Therefore, it becomes difficult for the service provider to take action to betray the user.
 また、本実施形態では、図10に示すキャンセル処理を行うことで、利用者は、送信済みの支払情報トランザクションをキャンセルすることができる。また、サービス提供者が原像トランザクションを送信することで、利用者は、サービス提供者がキャンセルの合意したことを確認することができる。 In addition, in the present embodiment, the user can cancel the transmitted payment information transaction by performing the cancellation process shown in FIG. Further, by transmitting the original image transaction by the service provider, the user can confirm that the service provider has agreed to cancel.
 また、本実施形態では、利用者装置は、マルチシグアドレスへ所定金額の保証金を送金する送金トランザクションを、仮想通貨ブロックチェーンのネットワークに送信し、送金トランザクションには、第1期間(T1)が経過すると利用者装置の電子署名のみで、送金トランザクションの利用が可能となる出力条件が設定されている。これにより、本実施形態では、サービス提供者との連絡が途絶え、利用者のデポジットがデッドロックされてしまうことを防ぐことができる。 Further, in this embodiment, the user device transmits a remittance transaction for remitting a predetermined amount of deposit to the multisig address to the network of the virtual currency blockchain, and the first period (T1) elapses in the remittance transaction. Then, an output condition that enables the use of the remittance transaction only by the electronic signature of the user device is set. Thus, in the present embodiment, it is possible to prevent the contact with the service provider from being interrupted and the user's deposit from being deadlocked.
 また、本実施形態では、トランザクション雛形の複数の出力条件には、決済トランザクションが第2期間の経過後に利用可能となるタイムロックが含まれ、スマートコントラクトは、第1期間よりも、第2期間が長いか否かを検証する。これにより、本実施形態では、利用者が仮想通貨型ブロックチェーン(仮想通貨型ネットワーク3または自身の分散台帳)を確認する期間が限定され、常時ブロックチェーンに接続し決済トランザクション等を監視する必要がなく、運用コストが低減する。 Further, in the present embodiment, the plurality of output conditions of the transaction template include a time lock in which the settlement transaction can be used after the elapse of the second period, and the smart contract uses the second period rather than the first period. Verify if it is long. As a result, in this embodiment, the period during which the user checks the virtual currency type blockchain (virtual currency type network 3 or its own distributed ledger) is limited, and it is necessary to constantly connect to the blockchain and monitor settlement transactions and the like. Operating costs are reduced.
 また、本実施形態では、「支払」処理においてサービス提供者装置2は介在せず、支払の検証からサービスの提供までをスマートコントラクト型ブロックチェーン上で全て実行する。これにより、本実施形態では、サービス提供者装置2は、支払いの検証からサービスの提供まで、スマートコントラクト型ブロックチェーンへの接続を必要としない。すなわち、サービス提供者装置2は、スマートコントラクト型ブロックチェーンを常に監視する必要がないため、運用コストが低減する。 In addition, in the present embodiment, the service provider device 2 does not intervene in the “payment” process, and the entire process from payment verification to service provision is performed on the smart contract blockchain. Thus, in the present embodiment, the service provider device 2 does not need to connect to the smart contract blockchain from verification of payment to provision of the service. That is, since the service provider device 2 does not need to constantly monitor the smart contract type blockchain, the operation cost is reduced.
 また、本実施形態では、支払の検証からサービスの提供までの間、サービス提供者装置2が仲介しないため、サービス提供者装置2の故障またはサービス提供者の不正により、一連の支払処理が正しく実行されない状況を回避することができる。 Further, in the present embodiment, the service provider device 2 does not mediate from the time of payment verification to the provision of the service, so that a series of payment processing is correctly executed due to the failure of the service provider device 2 or the fraud of the service provider. You can avoid situations that are not done.
 また、本実施形態では、支払の検証からサービスの提供を、スマートコントラクト型ブロックチェーンのブリッジングコントラクトおよびサービスコントラクトが、自律的に実行するため、より透明性が高く監査可能なシステムを構築することができる。 Further, in the present embodiment, since the bridging contract and the service contract of the smart contract type block chain autonomously execute the provision of the service from the verification of the payment, it is necessary to construct a more transparent and auditable system. Can be.
 また、本実施形態では、トランザクション雛形をスマートコントラクト型ブロックチェーンに登録し、利用者装置1およびサービス提供者装置2は、自身の分散台帳からトランザクション雛形を取得して利用するため、トランザクションの送信数を削減し、ブロックの肥大化を抑制し、また、ブロックの計算コストも削減することができる。 Further, in the present embodiment, the transaction template is registered in the smart contract type blockchain, and the user device 1 and the service provider device 2 acquire and use the transaction template from their own distributed ledgers. , The block enlargement can be suppressed, and the calculation cost of the block can be reduced.
 また、本実施形態では、利用者の電子署名とサービス提供者の電子署名とが必要なマルチシグアドレスを利用したトランザクションを使用する。これにより、利用者装置1が、勝手に決済トランザクションを仮想通貨型ブロックチェーンに登録し、仮想通貨を使用することを防止することができる。すなわち、本実施形態では、サービス提供者装置2のみが、決済トランザクションに自身の電子署名を付与して仮想通貨型ブロックチェーンに登録することができる。すなわち、サービス提供者装置2が、決済のタイミングを制御することができ、任意のタイミングで決済を確定させることができる。 In the present embodiment, a transaction using a multisig address that requires a user's digital signature and a service provider's digital signature is used. Thus, it is possible to prevent the user device 1 from automatically registering the settlement transaction in the virtual currency type blockchain and using the virtual currency. That is, in the present embodiment, only the service provider device 2 can add its own electronic signature to the payment transaction and register it in the virtual currency blockchain. That is, the service provider device 2 can control the timing of the settlement, and can determine the settlement at an arbitrary timing.
 なお、上記説明した利用者装置1およびサービス提供者装置2は、例えば、CPU(Central Processing Unit、プロセッサ)と、メモリと、ストレージ(HDD:Hard Disk Drive、SSD:Solid State Drive)と、通信装置と、入力装置と、出力装置とを備える汎用的なコンピュータシステムを用いることができる。このコンピュータシステムにおいて、CPUがメモリ上にロードされた所定のプログラムを実行することにより、各装置の各機能が実現される。例えば、利用者装置1およびサービス提供者装置2の各機能は、利用者装置1用のプログラムの場合は利用者装置1のCPUが、サービス提供者装置2用のプログラムの場合はサービス提供者装置2のCPUが、それぞれ実行することにより実現される。 The user device 1 and the service provider device 2 described above include, for example, a CPU (Central Processing Unit), a memory, a storage (HDD: Hard Disk Drive, SSD: Solid State Drive), and a communication device. A general-purpose computer system including an input device and an output device can be used. In this computer system, each function of each device is realized by the CPU executing a predetermined program loaded on the memory. For example, each function of the user device 1 and the service provider device 2 is such that the CPU of the user device 1 is a program for the user device 1 and a service provider device is a program for the service provider device 2. The two CPUs are implemented by executing each of them.
 また、利用者装置1用のプログラム、および、サービス提供者装置2用のプログラムは、HDD、SSD、USBメモリ、CD-ROM、DVD-ROM、MOなどのコンピュータ読取り可能な記録媒体に記憶することも、ネットワークを介して配信することもできる。 The program for the user device 1 and the program for the service provider device 2 must be stored in a computer-readable recording medium such as an HDD, SSD, USB memory, CD-ROM, DVD-ROM, or MO. Or via a network.
 また、本発明は上記実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、本実施形態のスマートコントラクトは、図1に示すように、ブリッジングコントラクトと、サービスコントラクトの2つの種類のスマートコントラクトを備える。しかしながら、1つのスマートコントラクトが、ブリッジングコントラクトとサービスコントラクトの両方の機能を備えることとしてもよい。 The present invention is not limited to the above embodiment, and various modifications can be made within the scope of the invention. For example, as shown in FIG. 1, the smart contract of the present embodiment includes two types of smart contracts, a bridging contract and a service contract. However, one smart contract may have both functions of a bridging contract and a service contract.
 また、本実施形態では、1つのサービスコントラクトの場合を例として説明したが、サービスコントラクトは複数あってもよい。この場合、各サービスコントラクトは、それぞれ異なる種類のサービスを実施し、ブリッジングコントラクトは、支払情報トランザクションで指定されたサービスに対応するサービスコントラクトを呼び出す。 Also, in the present embodiment, the case of one service contract has been described as an example, but there may be a plurality of service contracts. In this case, each service contract implements a different type of service, and the bridging contract calls the service contract corresponding to the service specified in the payment information transaction.
 1 :利用者装置
 11:トランザクション生成部
 12:キャンセル処理部
 13:ブロックチェーンクライアント
 14:仮想通貨用ブロックチェーンクライアント
 15:スマートコントラクト用ブロックチェーンクライアント
 2 :サービス提供者装置
 21:トランザクション生成部
 22:トランザクション雛形生成部
 23:ブロックチェーンクライアント
 24:仮想通貨用ブロックチェーンクライアント
 25:スマートコントラクト用ブロックチェーンクライアント
 3 :仮想通貨型ブロックチェーンのネットワーク
 4 :スマートコントラクト型ブロックチェーンのネットワーク
 41:ブリッジングコントラクト
 42:サービスコントラクト  
1: User device 11: Transaction generation unit 12: Cancel processing unit 13: Blockchain client 14: Blockchain client for virtual currency 15: Blockchain client for smart contract 2: Service provider device 21: Transaction generation unit 22: Transaction Model generation unit 23: Blockchain client 24: Blockchain client for virtual currency 25: Blockchain client for smart contract 3: Network of virtual currency blockchain 4: Network of smart contract blockchain 41: Bridging contract 42: Service contract

Claims (7)

  1.  第1ブロックチェーンと、第2ブロックチェーンとを連携した決済システムであって、
     トランザクションの雛形を含む雛形情報トランザクションを、第1ブロックチェーンのネットワークに送信するサービス提供者装置と、
     第1ブロックチェーンに登録された前記トランザクションの雛形を用いて生成される電子署名と、支払金額とを含む支払情報トランザクションを、第1ブロックチェーンのネットワークに送信する利用者装置と、
     第1ブロックチェーンに含まれるスマートコントラクトと、を備え、
     前記スマートコントラクトは、前記支払情報トランザクションに含まれる電子署名を、前記支払金額と前記トランザクションの雛形とを用いて検証し、
     前記サービス提供者装置は、第1ブロックチェーンに登録された前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて決済トランザクションを生成し、第2ブロックチェーンのネットワークに送信し、
     前記トランザクションの雛型には複数の出力条件が設定され、前記決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となること
     を特徴とする決済システム。
    A settlement system in which a first blockchain and a second blockchain are linked,
    A service provider device for transmitting a template information transaction including a transaction template to the first blockchain network;
    A user device for transmitting a payment information transaction including an electronic signature generated using the template of the transaction registered in the first block chain and a payment amount to the network of the first block chain;
    And a smart contract included in the first blockchain.
    The smart contract verifies an electronic signature included in the payment information transaction using the payment amount and the template of the transaction,
    The service provider device generates a settlement transaction using the template of the transaction registered in the first blockchain, the electronic signature, and the payment amount, and transmits the transaction to the network of the second blockchain;
    A plurality of output conditions are set in the template of the transaction, and the settlement transaction can be used when any of the plurality of output conditions is satisfied.
  2.  請求項1記載の決済システムであって、
     前記利用者装置は、前記支払情報トランザクションのキャンセル要求を前記サービス提供者装置に送信し、前記サービス提供者装置により第1ブロックチェーンに登録された他のトランザクションの雛形を用いて生成される他の電子署名と、他の支払金額とを含むキャンセル用の他の支払情報トランザクションを、第1ブロックチェーンのネットワークに送信し、
     前記サービス提供者装置は、前記他のトランザクションの雛型を含む他の雛形情報トランザクションを第1ブロックチェーンのネットワークに送信し、第1ブロックチェーンに登録された前記他の支払情報トランザクションに合意する場合、前記複数の出力条件に含まれるハッシュロックで指定されたハッシュの原像を含む原像トランザクションを、第1ブロックチェーンのネットワークに送信すること
     を特徴とする決済システム。
    The settlement system according to claim 1, wherein
    The user device transmits a request to cancel the payment information transaction to the service provider device, and another request generated using another transaction template registered in the first block chain by the service provider device. Sending another payment information transaction for cancellation, including the electronic signature and the other payment amount, to the first blockchain network;
    The service provider device transmits another template information transaction including the template of the other transaction to the network of the first block chain, and agrees with the other payment information transaction registered in the first block chain. And transmitting an original image transaction including the original image of the hash specified by the hash lock included in the plurality of output conditions to the network of the first block chain.
  3.  請求項1記載の決済システムであって、
     前記利用者装置は、マルチシグアドレスへ所定金額の保証金を送金する送金トランザクションを、第2ブロックチェーンのネットワークに送信し、
     前記送金トランザクションには、第1期間が経過すると前記利用者装置の電子署名のみで、前記送金トランザクションの利用が可能となる出力条件が設定されていること
     を特徴とする決済システム。
    The settlement system according to claim 1, wherein
    The user device transmits a remittance transaction for remitting a predetermined amount of a deposit to a multisig address to a network of the second block chain,
    The settlement system according to claim 1, wherein the remittance transaction is set with an output condition that allows the use of the remittance transaction only with the electronic signature of the user device after a first period has elapsed.
  4.  請求項3記載の決済システムであって、
     前記複数の出力条件には、前記決済トランザクションが第2期間の経過後に利用可能となるタイムロックが含まれ、
     前記スマートコントラクトは、第1期間よりも、第2期間が長いか否かを検証すること
     を特徴とする決済システム。
    The settlement system according to claim 3, wherein
    The plurality of output conditions include a time lock in which the settlement transaction becomes available after a second period has elapsed,
    The payment system according to claim 1, wherein the smart contract verifies whether a second period is longer than a first period.
  5.  第1ブロックチェーンと、第2ブロックチェーンとを連携した決済方法であって、
     サービス提供者装置は、
      トランザクションの雛形を含む雛形情報トランザクションを、第1ブロックチェーンのネットワークに送信し、
     利用者装置は、
      第1ブロックチェーンに登録された前記トランザクションの雛形を用いて電子署名を生成し、
      前記電子署名と、支払金額とを含む支払情報トランザクションを、第1ブロックチェーンのネットワークに送信し、
     第1ブロックチェーンに含まれるスマートコントラクトは、前記支払情報トランザクションに含まれる電子署名を、前記支払金額と前記トランザクションの雛形とを用いて検証し、
     前記サービス提供者装置は、第1ブロックチェーンに登録された前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて決済トランザクションを生成し、第2ブロックチェーンのネットワークに送信し、
     前記トランザクションの雛型には複数の出力条件が設定され、前記決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となること
     を特徴とする決済方法。
    A settlement method in which a first block chain and a second block chain are linked,
    The service provider device
    Sending a template information transaction including a transaction template to the first blockchain network,
    The user device
    Generating an electronic signature using the template of the transaction registered in the first blockchain,
    Sending a payment information transaction including the electronic signature and a payment amount to a network of a first blockchain;
    The smart contract included in the first block chain verifies the electronic signature included in the payment information transaction using the payment amount and the template of the transaction,
    The service provider device generates a settlement transaction using the template of the transaction registered in the first blockchain, the electronic signature, and the payment amount, and transmits the transaction to the network of the second blockchain;
    A plurality of output conditions are set in the template of the transaction, and the settlement transaction can be used when any of the plurality of output conditions is satisfied.
  6.  第1ブロックチェーンと、第2ブロックチェーンとを連携した決済システムにおける利用者装置であって、
     所定金額の保証金を送金する送金トランザクションを、第2ブロックチェーンのネットワークに送信する送金トランザクション生成部と、
     サービス提供者装置により第1ブロックチェーンに登録されたトランザクションの雛形を用いて電子署名を生成し、当該電子署名と支払金額とを含む支払情報トランザクションを、第1ブロックチェーンのネットワークに送信する支払トランザクション生成部と、を備え、
     前記トランザクションの雛型には複数の出力条件が設定され、前記サービス提供者装置により、前記トランザクションの雛形と、前記電子署名と、前記支払金額とを用いて生成された決済トランザクションは、前記複数の出力条件のいずれかを満たした場合に、利用可能となること
     を特徴とする利用者装置。
    A user device in a settlement system in which a first block chain and a second block chain are linked,
    A remittance transaction generator for transmitting a remittance transaction for remitting a predetermined amount of the deposit to the network of the second blockchain;
    A payment transaction that generates an electronic signature using a template of a transaction registered in a first blockchain by a service provider device, and transmits a payment information transaction including the electronic signature and a payment amount to a network of the first blockchain. A generating unit,
    A plurality of output conditions are set in the template of the transaction. The settlement transaction generated by the service provider device using the template of the transaction, the electronic signature, and the payment amount is the plurality of transactions. A user device that can be used when any of the output conditions is satisfied.
  7.  請求項6に記載の利用者装置として、コンピュータを機能させることを特徴とする決済プログラム。 A payment program for causing a computer to function as the user device according to claim 6.
PCT/JP2019/037063 2018-09-20 2019-09-20 Settlement system, settlement method, user device, and settlement program WO2020059865A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/275,103 US11893583B2 (en) 2018-09-20 2019-09-20 Settlement system, settlement method, user device, and settlement program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018176397A JP7021747B2 (en) 2018-09-20 2018-09-20 Payment system, payment method, user device, payment program
JP2018-176397 2018-09-20

Publications (1)

Publication Number Publication Date
WO2020059865A1 true WO2020059865A1 (en) 2020-03-26

Family

ID=69887143

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/037063 WO2020059865A1 (en) 2018-09-20 2019-09-20 Settlement system, settlement method, user device, and settlement program

Country Status (3)

Country Link
US (1) US11893583B2 (en)
JP (1) JP7021747B2 (en)
WO (1) WO2020059865A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112365119A (en) * 2020-09-23 2021-02-12 四川大学 Distributed database support-based distributed transaction model for electric energy of power distribution network
WO2023075685A3 (en) * 2021-10-26 2023-06-22 Mastercard Asia/Pacific Pte. Ltd. Methods and systems for generating and validating transactions on a distributed ledger

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11468431B2 (en) 2018-11-20 2022-10-11 Forte Labs, Inc. System and method for authorizing blockchain network transactions
CN113302636A (en) * 2019-01-03 2021-08-24 华为技术有限公司 Data processing method, device and medium based on block chain
US20210110360A1 (en) * 2019-10-10 2021-04-15 Forte Labs, Inc. Cryptocurrency Exchange Without Bond Backing
US11880809B2 (en) 2019-10-10 2024-01-23 Frontage Road Holdings, Llc Blockchain cross-chain non-fungible token exchange
WO2022101980A1 (en) * 2020-11-10 2022-05-19 double jump.tokyo株式会社 Payment assistance system and payment assistance method
CN112801785B (en) * 2021-01-13 2023-10-20 中央财经大学 Fair data transaction method and device based on blockchain intelligent contract
CN112583608B (en) * 2021-02-24 2021-05-28 浙江口碑网络技术有限公司 Cooperative processing method, device and equipment
CN112926980A (en) * 2021-02-26 2021-06-08 贵州鑫众搏骏科技有限公司 Payment data transaction method based on block chain
JPWO2022224365A1 (en) 2021-04-20 2022-10-27
CN117280369A (en) * 2021-04-22 2023-12-22 松下电器(美国)知识产权公司 Control method, terminal, and program
US11494799B1 (en) * 2021-05-14 2022-11-08 William C. Rehm Supporting action tracking and deeds between multiple parties
WO2022254589A1 (en) * 2021-06-01 2022-12-08 富士通株式会社 Control method, control program, information processing device, and system
KR102634318B1 (en) * 2022-02-22 2024-02-08 주식회사 원유니버스 Method for storing application data in blockchain and system using the same
WO2024013856A1 (en) * 2022-07-12 2024-01-18 富士通株式会社 Coordination program, coordination method, and information processing device
CN117556471B (en) * 2024-01-12 2024-05-03 广东通莞科技股份有限公司 Block chain-based settlement data processing method and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017204070A (en) * 2016-05-10 2017-11-16 日本電信電話株式会社 Settlement system, settlement method, transaction generation device, and transaction generation program
WO2018020389A2 (en) * 2016-07-29 2018-02-01 Chain Holdings Limited Blockchain implemented method and system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10812274B2 (en) * 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US20170085545A1 (en) * 2015-07-14 2017-03-23 Fmr Llc Smart Rules and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US10402792B2 (en) * 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
WO2017098519A1 (en) * 2015-12-08 2017-06-15 Tallysticks Limited A system and method for automated financial transaction validation, processing and settlement using blockchain smart contracts
US20220156725A1 (en) * 2020-11-18 2022-05-19 International Business Machines Corporation Cross-chain settlement mechanism

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017204070A (en) * 2016-05-10 2017-11-16 日本電信電話株式会社 Settlement system, settlement method, transaction generation device, and transaction generation program
WO2018020389A2 (en) * 2016-07-29 2018-02-01 Chain Holdings Limited Blockchain implemented method and system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112365119A (en) * 2020-09-23 2021-02-12 四川大学 Distributed database support-based distributed transaction model for electric energy of power distribution network
CN112365119B (en) * 2020-09-23 2023-04-25 四川大学 Distribution network electric energy distributed transaction model based on distributed database support
WO2023075685A3 (en) * 2021-10-26 2023-06-22 Mastercard Asia/Pacific Pte. Ltd. Methods and systems for generating and validating transactions on a distributed ledger

Also Published As

Publication number Publication date
US11893583B2 (en) 2024-02-06
JP7021747B2 (en) 2022-02-17
US20220051235A1 (en) 2022-02-17
JP2020047104A (en) 2020-03-26

Similar Documents

Publication Publication Date Title
WO2020059865A1 (en) Settlement system, settlement method, user device, and settlement program
US20220084020A1 (en) System and method for scaling blockchain networks with secure off-chain payment hubs
Dziembowski et al. Perun: Virtual payment hubs over cryptocurrencies
Khalil et al. Revive: Rebalancing off-blockchain payment networks
JP7011203B2 (en) Payment system, payment method, user device, payment program
CN111183445B (en) Method and apparatus for digital asset auto-promise settlement
CN109214818B (en) Cross-chain transaction method and device
US20200193432A1 (en) Method and system for settling a blockchain transaction
WO2021218459A1 (en) Cross-chain interaction method, apparatus and system
Decker et al. A fast and scalable payment network with bitcoin duplex micropayment channels
Robinson et al. Atomic crosschain transactions for ethereum private sidechains
JP6813477B2 (en) A device, system, or method that facilitates value transfer between unreliable or unreliable parties.
US20190172026A1 (en) Cross blockchain secure transactions
WO2018197487A1 (en) Method and system for creating a user identity
CN110730963B (en) System and method for information protection
WO2020173499A1 (en) Public chain-based sub-blockchain construction method and system
JP2022520478A (en) Computer-implemented systems and methods for performing transfers over the blockchain network
Avarikioti et al. Brick: Asynchronous payment channels
US11544787B2 (en) Apparatus and method for providing protocol for digital asset trading
AU2022215275A1 (en) Temporary consensus networks in a resource transfer system
Aumayr et al. Thora: Atomic and privacy-preserving multi-channel updates
Zhang et al. Boros: Secure and efficient off-blockchain transactions via payment channel hub
Ge et al. Magma: Robust and flexible multi-party payment channel
Ye et al. Boros: Secure cross-channel transfers via channel hub
CN113781230A (en) Transaction processing method and device based on block chain

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: 19861434

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: 19861434

Country of ref document: EP

Kind code of ref document: A1