WO2021019683A1 - 仮想債券回収装置、仮想債券回収プログラム及び仮想債券回収方法 - Google Patents

仮想債券回収装置、仮想債券回収プログラム及び仮想債券回収方法 Download PDF

Info

Publication number
WO2021019683A1
WO2021019683A1 PCT/JP2019/029812 JP2019029812W WO2021019683A1 WO 2021019683 A1 WO2021019683 A1 WO 2021019683A1 JP 2019029812 W JP2019029812 W JP 2019029812W WO 2021019683 A1 WO2021019683 A1 WO 2021019683A1
Authority
WO
WIPO (PCT)
Prior art keywords
deposit
bond
virtual
unit
creditor
Prior art date
Application number
PCT/JP2019/029812
Other languages
English (en)
French (fr)
Inventor
松本 光弘
洋 横地
大輝 中島
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to CN201980098627.6A priority Critical patent/CN114144802A/zh
Priority to GB2200512.8A priority patent/GB2599332A/en
Priority to JP2019571076A priority patent/JP6752384B1/ja
Priority to PCT/JP2019/029812 priority patent/WO2021019683A1/ja
Publication of WO2021019683A1 publication Critical patent/WO2021019683A1/ja
Priority to US17/545,259 priority patent/US20220101431A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • 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
    • G06Q20/0655Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
    • 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/22Payment schemes or models
    • G06Q20/24Credit schemes, i.e. "pay after"

Definitions

  • the present invention relates to a virtual bond collection device that collects virtual bonds in a distributed ledger network.
  • virtual currency has a unique currency mechanism called tokens, and tokens can be issued independently or sent to other people.
  • tokens There is a method of recording transactions such as gold or stock by giving additional information to Bitcoin called colored coin, which is a token.
  • a method of managing securities transactions such as bonds and bills on a blockchain using the colored coin method has been proposed (Patent Documents 1 and 2).
  • the purpose of this invention is to smoothly carry out commodity transactions using virtual currency.
  • the virtual bond collection device of the present invention A deposit detector that detects the deposit of virtual currency, and When the deposit of the virtual currency is detected, the creditor who holds the virtual bond, which is electronic data, refers to the creditor information managed and repays at least a part of the amount indicated by the virtual bond to the creditor. It is equipped with a bond collection department.
  • the virtual bond collection device of the present invention is provided with a bond collection unit, commodity transactions using virtual currency can be smoothly performed.
  • FIG. 6 is a network configuration diagram of the blockchain network 30 in the figure of the first embodiment.
  • the software configuration diagram of the user terminal 100 and the exchange terminal 400 In the figure of the first embodiment, the software configuration diagram of the user terminal 100 and the exchange terminal 400.
  • FIG. 6 is a functional configuration diagram of the order application 200 in the figure of the first embodiment.
  • FIG. 6 is a functional configuration diagram of the contract application 600 in the figure of the first embodiment.
  • FIG. 6 is a functional configuration diagram of the smart contract 800 in the figure of the first embodiment.
  • FIG. 5 is a configuration diagram of data D100 in the figure of the first embodiment.
  • FIG. 5 is a diagram showing a software configuration of a user terminal 100 in the figure of the first embodiment.
  • FIG. 5 is a diagram showing a software configuration of a user terminal 100 in the figure of the first embodiment.
  • FIG. 5 is a diagram showing a software configuration of an exchange terminal 400 in the figure of the first embodiment.
  • FIG. 5 is a diagram showing a flow of money in a buy order (F000) in the diagram of the first embodiment.
  • FIG. 5 is a diagram showing a flow of money in a sell order (F100) in the diagram of the first embodiment.
  • FIG. FIG. 5 is a diagram of the first embodiment, showing a screen display by the ordering application 200.
  • FIG. 5 is a diagram of the first embodiment, showing a screen display by the ordering application 200.
  • FIG. 6 is a diagram of the first embodiment, showing a screen display by the contract application 600.
  • FIG. 5 is a diagram showing a screen display by the buy order (F000) in the diagram of the first embodiment.
  • FIG. 5 is a diagram showing a flow of money in a sell order (F100) in the diagram of the first embodiment.
  • FIG. 6 is a diagram of the first embodiment, showing a screen display by the contract application 600.
  • FIG. 5 is a flowchart of a buy order process (F000) in the figure of the first embodiment.
  • FIG. 5 is a flowchart of a sell order process (F100) in the figure of the first embodiment.
  • FIG. 5 is a flowchart of a contract process (F400) in the figure of the first embodiment.
  • FIG. 5 is a flowchart of a purchase contract process (F500) in the figure of the first embodiment.
  • the flowchart of the sale contract processing F600).
  • FIG. 5 is a flowchart of a deposit process (F700) in the figure of the first embodiment.
  • FIG. 5 is a flowchart of a withdrawal process (F800) in the figure of the first embodiment.
  • FIG. 5 is a flowchart of a transaction setting process (F810) in the figure of the first embodiment.
  • FIG. 5 is a flowchart of a refund process (F900) to a creditor in the figure of the first embodiment.
  • FIG. 5 is a diagram showing an example of issuance and collection of bonds in the figure of the first embodiment.
  • FIG. 2 is a functional configuration diagram of a smart contract 800 including an application unit 814 in the figure of the second embodiment.
  • FIG. 2 is a diagram showing a screen display by the application unit 814 in the figure of the second embodiment.
  • FIG. 3 is a functional configuration diagram of an order application 200 including a history viewing unit 223 in the figure of the third embodiment.
  • FIG. 4 is a diagram showing a transaction management terminal 900 connected to the
  • the term creditor is used in the description of the embodiments below.
  • a creditor is a user who has the right to receive a refund upon collection of a bond.
  • the term bond is used in the description of the embodiments below.
  • the bond used in the following embodiments is a virtual bond that is electronic data.
  • the "blockchain" is described in the following embodiments, the blockchain is an example of a distributed ledger that is electronic data.
  • the following embodiments can be applied to distributed ledgers and distributed ledger networks that process distributed ledgers. That is, the smart contract of the embodiment can be applied to the distributed ledger and the distributed ledger network that processes the distributed ledger.
  • FIG. 1 is a network configuration diagram of the blockchain network used in the first embodiment.
  • Terminals called nodes 10 connected to the Internet 20 perform P2P communication with each other and share data.
  • a network that shares a blockchain 710 by P2P communication via the Internet 20 is called a blockchain network 30.
  • the blockchain network 30 is used for virtual currency.
  • Virtual currencies include virtual currencies such as Bitcoin and Ethereum.
  • the big difference between Bitcoin and Ethereum is that Ethereum has a function called smart contract, which is a program that runs on the blockchain 710.
  • Each node 10 has a blockchain 710 and a smart contract 800.
  • the smart contract 800 is used on the blockchain 710.
  • the smart contract 800 can control the data registered in the blockchain 710.
  • Each node 10 operates on the premise of a blockchain 710 having a smart contract 800 such as Ethereum.
  • FIG. 2 is a software configuration diagram of a user terminal 100 and an exchange terminal 400 that perform commodity transactions.
  • a user who conducts commodity transactions has a user terminal 100.
  • the exchange that conducts commodity trading has an exchange terminal 400.
  • the user terminal 100 and the exchange terminal 400 are connected to the Internet 20.
  • the user terminal 100 and the exchange terminal 400 participate in the blockchain network 30 as the node 10 in FIG.
  • the user terminal 100 has two software, an order application 200 and a blockchain client 300.
  • the exchange terminal 400 has two software, a contract application 600 and a blockchain client 700.
  • the exchange terminal 400 also has a smart contract creation unit 500.
  • the smart contract creation unit 500 creates a smart contract 800, compiles the smart contract 800, and registers the smart contract 800 in the blockchain 710 via the blockchain client 700.
  • the smart contract 800 is developed in a smart contract development environment.
  • the smart contract development environment is Remix or Truffle in Ethereum.
  • the blockchain client 300 and the blockchain client 700 are software that constitutes the blockchain network 30.
  • the blockchain client 300 and the blockchain client 700 manage the virtual currency account and share the blockchain 710 with other blockchain clients.
  • the order application 200 is an application in which a user places a buy / sell order for commodities.
  • the execution application 600 is an application in which the exchange executes an order requested by a user.
  • FIG. 3 is a functional configuration diagram of the order application 200 used by the user when conducting commodity transactions in the first embodiment.
  • the order application 200 that operates on the user terminal 100 includes an order unit 210 that processes orders, a transaction history unit 220 that handles transaction history, and a refund unit 230 that remits the refunded currency to the user's account wallet.
  • the ordering unit 210 includes an order input unit 211 for inputting the order contents by the user, an order transmitting unit 212 for transmitting the input order contents to the blockchain network 30, and a canceling unit 213 for canceling the order contents.
  • the transaction history unit 220 includes a transaction history acquisition unit 221 that acquires a transaction history from the blockchain 710, and a transaction history display unit 222 that displays the acquired transaction history.
  • FIG. 4 is a functional configuration diagram of the contract application 600 used by the exchange when conducting commodity transactions.
  • the contract application 600 that operates on the exchange terminal 400 includes a contract unit 610 that processes contracts, a transaction setting unit 620 that sets transaction details, a transaction history unit 630 that handles transaction history, and a deposit unit 640 that manages deposits.
  • the contract unit 610 is an order acquisition unit 611 that acquires the order contents requested from the order application 200, a contract input unit 612 in which the contract contents are input for the acquired order, and a blockchain network for the input contract contents.
  • a contract transmission unit 613 that transmits to 30 and executes a contract is provided.
  • the transaction history unit 630 includes a transaction history acquisition unit 631 that acquires a transaction history from the blockchain 710, and a transaction history display unit 632 that displays the acquired transaction history.
  • the transaction setting unit 620 includes a setting input unit 621 for inputting setting information related to the transaction such as a trading price and a contract deadline, and a setting transmission unit 622 for transmitting the setting information to the blockchain network 30.
  • the deposit unit 640 includes a deposit amount input unit 641, a deposit transmission unit 642, a withdrawal amount input unit 643, and a withdrawal transmission unit 644.
  • the deposit unit 640 manages deposits for the exchange to prepare currency for payment for commodity sell orders from users.
  • the exchange inputs the deposit amount.
  • the deposit transmission unit 642 transmits the deposit amount to the blockchain network 30 in order to deposit the input deposit amount as a deposit.
  • the exchange inputs the withdrawal amount in order to withdraw the currency from the deposit.
  • the withdrawal transmission unit 644 transmits the withdrawal amount to the blockchain network 30 in order to withdraw the input withdrawal amount from the deposit.
  • FIG. 5 is a functional configuration diagram of the smart contract 800 that controls commodity transactions.
  • the smart contract 800 created by the smart contract creation unit 500 is transmitted to the blockchain network 30, and all commodity transactions are controlled by the smart contract 800.
  • the smart contract 800 includes a user request reception unit 810, an exchange request reception unit 820, a settlement unit 830, a transaction history output unit 840, and a processing completion notification unit 850.
  • the user request reception unit 810 accepts requests from users.
  • the exchange request reception unit 820 receives requests from the exchange.
  • the settlement unit 830 performs settlement processing.
  • the transaction history output unit 840 outputs the transaction history.
  • the processing completion notification unit 850 notifies the order application 200 and the execution application 600 that processing such as order registration and execution processing has been completed.
  • the user request reception unit 810 remits the refund amount to the user's wallet in response to the order unit 811 that registers the order from the user, the cancellation unit 812 that registers the order cancellation from the user, and the refund request from the user.
  • a refund unit 813 is provided.
  • the ordering unit 811 includes an account registration unit 811A that automatically registers an account for a user who places an order for the first time, and an order registration unit 811B that registers an order for the registered account.
  • the exchange request reception unit 820 performs the contract processing according to the contract contents when the exchange sends the contract to the registered order, and the exchange request reception unit 820 is in accordance with the transaction contents set by the exchange.
  • the transaction setting unit 822 that sets the transaction details
  • the deposit unit 823 that transfers the currency of the deposit amount set by the exchange from the user's wallet to the deposit
  • the withdrawal amount set by the exchange is transferred from the deposit to the user's wallet.
  • a withdrawal unit 824 is provided.
  • the settlement unit 830 has a remittance unit 831 that sends the buyer's payment to the seller, and a bond issuance that automatically issues bonds instead of currency when the user's sell order is executed at a selling price that exceeds the deposit. It includes a unit 832 and a bond collection unit 833 that automatically converts issued bonds into currency by acquiring currency by depositing money from an exchange or executing a buy order from another user.
  • FIG. 6 shows the configuration of the data D100 managed by the smart contract 800.
  • the data D100 managed by the smart contract 800 will be described with reference to FIG.
  • Management data D110 for the user includes a lump sum wallet D111, a refund wallet D112, a bond wallet D113, and a transaction history D114.
  • the lump sum wallet D111 is a place where the amount paid by the user when sending a commodity buy order is temporarily stored.
  • the refund wallet D112 is a place to put the user's change and sales price.
  • the currency is transferred from the lump sum wallet D111 to the deposit wallet D131 according to the contracted amount, and the change is transferred to the refund wallet D112.
  • the bond wallet D113 is a place for recording the unpaid price when the remaining amount of the deposit wallet D131 is small and the selling price cannot be paid at the time of executing the sell order.
  • the transaction history D114 is a place where the user's order contents and contract contents are recorded as a history.
  • Management data for the exchange includes a deposit wallet D131, a user list D132, and a creditor list D133.
  • the deposit wallet D131 is a place where the money deposited from the exchange or the price paid by the user at the time of executing the buy order is stored.
  • the user list D132 is a place to record the user who placed the order.
  • the creditor list D133 is a place to record the user for whom the bond was issued.
  • the transaction setting data D140 records the trading price D141 and the contract deadline D142.
  • the selling price D141 has a buying rate and a selling rate. For example, data such as buying at 30 yen and selling at 25 yen per 1kWh is recorded.
  • the execution deadline D142 is data for setting a deadline from the time an order is placed until it is executed. After the execution deadline, the exchange cannot execute the order and the user can cancel the order.
  • FIG. 7 shows the hardware configuration of the node 10. Since the node 10 is the user terminal 100 and the exchange terminal 400, FIG. 7 shows the hardware configuration of the user terminal 100 and the exchange terminal 400.
  • Node 10 is a computer.
  • Node 10 includes a processor 920.
  • the node 10 includes other hardware such as a main storage device 930, an auxiliary storage device 940, an input / output interface 950, and a network interface 960.
  • the processor 920 is connected to other hardware via the signal line 170 and controls the other hardware.
  • FIG. 8 shows a software configuration when the node 10 is the user terminal 100.
  • the user terminal 100 includes an ordering application 200 and a blockchain client 300 as programs.
  • the blockchain client 300 includes a blockchain 710 and a smart contract 800.
  • the smart contract 800 may be included in the blockchain 710 as a code, or as a method other than the blockchain 710, for example, as a file in which the smart contract code is recorded (hereinafter, smart contract file). You may keep it.
  • smart contract file it is necessary to share the smart contract file between blockchain clients using P2P or the cloud.
  • the processor 920 may execute the smart contract code registered in the blockchain or directly execute the smart contract file via the blockchain client 300.
  • FIG. 9 shows a software configuration when the node 10 is an exchange terminal 400.
  • the exchange terminal 400 includes a smart contract creation unit 500, a contract application 600, and a blockchain client 700 as programs.
  • the blockchain client 700 includes a blockchain 710.
  • the smart contract 800 may be included in the blockchain 710 or may be stored as a smart contract file.
  • the processor 920 executes the smart contract creation unit 500, the contract application 600, and the blockchain client 700. Since the execution of the smart contract by the processor 920 is the same as that in the case of the user terminal 100, the description thereof will be omitted.
  • the processor 920 is an IC (Integrated Circuit) that performs arithmetic processing. Specific examples of the processor 920 are a CPU (Central Processing Unit), a DSP (Digital Signal Processor), and a GPU (Graphics Processing Unit).
  • a CPU Central Processing Unit
  • DSP Digital Signal Processor
  • GPU Graphics Processing Unit
  • the main storage device 930 is a storage device. Specific examples of the main storage device 930 are SRAM (Static Random Access Memory) and DRAM (Dynamic Random Access Memory). The main storage device 930 holds the calculation result of the processor 920.
  • Auxiliary storage device 940 is a storage device that stores data non-volatilely.
  • a specific example of the auxiliary storage device 940 is an HDD (Hard Disk Drive).
  • the auxiliary storage device 940 is a portable recording medium such as an SD (registered trademark) (Secure Digital) memory card, a NAND flash, a flexible disk, an optical disk, a compact disc, a Blu-ray (registered trademark) disc, or a DVD (Digital Versaille Disc). There may be.
  • SD registered trademark
  • NAND flash a portable recording medium
  • the auxiliary storage device 940 stores the order application 200, the blockchain client 300, and the smart contract 800.
  • the auxiliary storage device 940 stores a smart contract creation unit 500, a contract application 600, a blockchain client 700, and a smart contract 800.
  • the smart contract 800 corresponds to a virtual bond collection program.
  • the bond collection program the "department" of the deposit detection unit 823, the deposit detection unit remittance unit 831, the bond issue unit 832, and the bond collection unit 833 is read as “processing", “procedure”, or "process”. It is a program that causes a computer to execute each process, each procedure, or each process.
  • the input / output interface 950 is a port on which the processor 920 inputs / outputs data to / from each device.
  • the input / output interface 950 is connected to the input device 951 and the display device 952.
  • the input device 951 is a device such as a mouse and a touch panel.
  • the display device 952 is a device such as a liquid crystal display.
  • Node 10 may include a plurality of processors that replace the processor 920. These multiple processors share the execution of the program. Each processor, like the processor 920, is a device that executes a program. A single processor and multiple processors are also referred to as processing circuits.
  • the functions of the order application 200, the blockchain client 300, and the smart contract 800 of the user terminal 100 are realized by the processing circuit.
  • the functions of the smart contract creation unit 500, the contract application 600, the blockchain client 700, and the smart contract 800 of the exchange terminal 400 are realized by the processing circuit.
  • the virtual bond collection program may be provided stored in a computer-readable recording medium.
  • the operation of the smart contract 800 shown below is the operation of the smart contract 800 on the exchange terminal 400, which is a virtual bond collection device, and the user terminal 100, which is a virtual bond collection device. This is because the method M executed by the smart contract 800 of the exchange terminal 400 is also executed by the smart contract 800 of the user terminal 100.
  • the operating procedure of the virtual bond collection device corresponds to the virtual bond collection method.
  • the program that realizes the operation of the virtual bond collection device corresponds to the virtual bond collection program.
  • FIG. 10 is a diagram showing a flow of money in a buy order (F000).
  • FIG. 11 is a diagram showing a flow of money in a sell order (F100).
  • FIG. 10 is a diagram showing a flow of money in a buy order (F000).
  • FIG. 11 is a diagram showing a flow of money in a sell order (F100).
  • FIG. 12 is a diagram showing a deposit (F) on an exchange.
  • 13 and 14 are views showing a screen display by the ordering application 200. The contents of FIGS. 13 and 14 are displayed on one screen.
  • FIG. 13 is the upper side of the screen, and FIG. 13 is the lower side of the screen.
  • 15 and 16 are diagrams showing screen display by the contract application 600. The contents of FIGS. 15 and 16 are displayed on one screen.
  • FIG. 15 is the upper side of the screen, and FIG. 16 is the lower side of the screen.
  • FIG. 17 is a flowchart of the buy order processing (F000).
  • FIG. 18 is a flowchart of the sell order processing (F100).
  • FIG. 19 is a flowchart of the cancel process (F200).
  • FIG. 20 is a flowchart of the refund process (F300).
  • FIG. 21 is a flowchart of the contract processing (F400).
  • FIG. 22 is a flowchart of the buy contract process (F500).
  • FIG. 23 is a flowchart of the selling contract processing (F600).
  • FIG. 24 is a flowchart of the deposit process (F700).
  • FIG. 25 is a flowchart of the withdrawal process (F800).
  • FIG. 26 is a flowchart of the transaction setting process (F810).
  • FIG. 27 is a flowchart of the refund process (F900) to the creditor.
  • FIG. 28 is a diagram showing an example of issuance and collection of bonds.
  • the user starts a sales transaction.
  • the user inputs an order content such as "buy 1,000 yen of electric power" into the order input unit 211 of the order application 200.
  • the order transmission unit 212 transmits the order contents to the blockchain network 30.
  • a buy order F000
  • the price according to the order is remitted.
  • the ordering unit 811 of the smart contract 800 processes the transmitted order.
  • the account registration unit 811A of the ordering unit 811 determines whether or not the account has placed an order for the first time.
  • the account registration unit 811A adds the account to the user list D132 if it is the account that placed the order for the first time (F001).
  • the order registration unit 811B registers the order in association with the account (F003).
  • the order registration unit 811B returns the order number to the order application 200 of the user terminal 100 (F004).
  • the currency is remitted (F002), so the order registration unit 811B is stored in the user lump sum wallet D111 as a reservation deposit (M101).
  • the processing completion notification unit 850 sends a processing completion notification to the order application 200 and the contract application 600 (F005).
  • the execution application 600 acquires the order contents registered by the order acquisition unit 611.
  • the contract input unit 612 accepts the contract contents based on the order contents.
  • the contract transmission unit 613 transmits the contract contents to the blockchain network 30.
  • the settlement unit 830 of the smart contract 800 executes the contract processing F400.
  • the settlement unit 830 determines whether the executor of the contract is the owner of the smart contract 800. Confirm (F401), and if you are the owner of the smart contract 800, confirm whether the order is valid (F402). After that, if the order is a buy order (buy with F403), the settlement unit 830 executes the buy contract process F500. If the order is a sell order (sell at F403), the settlement unit 830 executes the sell contract process F600. Finally, the processing completion notification unit 850 transmits a processing completion notification to the order application 200 and the contract application 600 (F005).
  • the remittance unit 831 is a deposit detection unit that detects the deposit of virtual currency.
  • the deposit detection unit deposits virtual currency as deposits of virtual currency, which the exchange that is the buyer pays to the user who is the seller (F506), and deposit of virtual currency for deposit of virtual currency by the exchange (F701). Is detected. Depositing virtual currency (F701) for depositing virtual currency will be described later.
  • the remittance unit 831 of the smart contract 800 confirms the bond of the user bond wallet D113 (F506), and if the bond is 0 (F506). YES), withdraw the contract amount from the user lump sum wallet D111 (F501).
  • the remittance unit 831 compares the contract amount with the bond amount (F507). If the contract amount is greater than or equal to the bond amount (YES in F507), the remittance department 831 withdraws the bond amount from the user bond wallet D113 (F508), removes the user from the creditor list D133 (F509), and removes the user from the lump sum wallet D111. The shortfall is deducted (F510). If the contract amount is smaller than the bond amount (NO in F507), the remittance unit 831 withdraws the contract amount from the user bond wallet D113 (F511), and the process proceeds to F502.
  • the remittance unit 831 puts the difference, the order amount minus the contract amount, into the refund wallet D112 as a change (F502, M103).
  • the remittance unit 831 puts the contract amount into the deposit wallet D131 (F503, M105).
  • the remittance unit 831 records the contract content in the transaction history D114 (F504), and sets the order status of the transaction content to "completed” (F505).
  • the bond collection unit 833 makes a refund to the creditor according to the contracted amount (M106) (F900, M107).
  • the selling contract processing F600 will be described.
  • the bond issuer 832 compares the payment amount data indicating the payment amount to be paid from the buyer's exchange to the seller's user with the deposit data indicating the deposit amount held by the buyer. Based on the comparison result, the bond issuing unit 832 issues the bond to the seller, and registers the seller to whom the bond has been issued in the creditor list D133, which is creditor information. This will be described in detail below.
  • the bond issuer 832 of the smart contract 800 confirms whether or not the contract amount can be paid with the money contained in the deposit wallet D131 (F601).
  • the remittance unit 831 transfers the contracted amount of money from the deposit wallet D131 to the user's refund wallet D112 (F602, M202). If the deposit amount is insufficient (NO in F601), the bond issuer 832 confirms whether the deposit amount is more than 0 (F603). If more than 0 (YES in F603), the remittance department 831 moves the entire amount of the deposit wallet D131 to the refund wallet D112 (F604, M202) in order to pay as much as part of the contracted amount. The bond issuer 832 issues the shortage of bonds and puts them in the bond wallet D113 (F605, M201).
  • the bond issuer 832 issues the shortage of bonds and puts them in the bond wallet D113 (F606, M201).
  • the bond issuer 832 registers the creditor in the creditor list D133 (F607). After the above settlement is completed, the contract unit 821 records the contract contents in the transaction history D114 (F608) and completes the order status (F609).
  • the bond issuer 832 determines the deposit amount in which the payment amount data indicating the payment amount to be paid from the owner who is the buyer to the user who is the seller is deposited in the deposit wallet of the buyer. It is determined whether the payment can be made with the indicated deposit data (F604).
  • the bond issuer 832 determines that the payment amount cannot be paid based on the deposit data, it issues a bond corresponding to at least a part of the payment amount to the seller as bond data, and sets the issued bond data for each user.
  • the bonds are stored in the bond wallet of the seller to which the bond was issued (F605, F606). Then, the bond issuer 832 registers the seller to whom the bond has been issued in the creditor list D133 (F607).
  • the cancellation process F200 will be described with reference to FIG.
  • the user can cancel the buy / sell order placed by himself / herself.
  • the user selects an order to be canceled from the transaction history unit 220 of the order application 200, and executes the cancellation in the cancel unit 213 of the order application 200 (F200).
  • the cancellation unit 213 of the order application 200 transmits the cancellation content to the blockchain network 30.
  • the cancellation unit 812 of the smart contract 800 confirms whether or not cancellation is possible (F201). Specifically, if the order status is "order" and the contract deadline has passed, it can be canceled (YES in F201). If cancellation is possible, the canceling unit 812 cancels the order status (F202) and confirms "buy / sell" of the order content (F203). If it is "buy” (YES in F203), the remittance unit 831 moves the order amount from the lump sum wallet D111 to the refund wallet D112 (F204, M103). Finally, the processing completion notification unit 850 sends a processing completion notification to the order application 200 and the contract application 600 (F005).
  • the user can transfer the refunded money from the refund wallet D112 to the account wallet (M104).
  • An account wallet is a wallet containing virtual currency that the account can use freely.
  • the refund content is transmitted to the blockchain network 30.
  • the refund unit 813 of the smart contract 800 processes the refund (F300). Specifically, the refund unit 813 sets the currency value of the refund wallet D112 to 0 (F301), and remits the currency amount contained in the refund wallet D112 to the user (F302). Finally, the processing completion notification unit 850 sends a processing completion notification to the order application 200 and the contract application 600 (F005).
  • the deposit processing F700 of the exchange Since the exchange pays the selling price from the deposit wallet D131 for the selling transaction from the user, the exchange can deposit the money in the deposit wallet D131 in advance.
  • the deposit amount input unit 641 of the contract application 600 inputs the deposit amount, and the deposit transmission unit 642 transmits the deposit amount to the blockchain network 30.
  • the deposit unit 823 is a deposit detection unit that detects the deposit of virtual currency.
  • the deposit unit 823 of the smart contract 800 stores the deposited amount in the deposit wallet D131 (F701, M301). After that, the creditor's bond is collected according to the deposit amount (F900).
  • the processing completion notification unit 850 sends a processing completion notification to the order application 200 and the contract application 600 (F005).
  • An exchange can withdraw the money it has deposited or the money obtained from a trading transaction.
  • the exchange inputs the withdrawal amount into the withdrawal amount input unit 643 of the contract application 600, and transmits the withdrawal amount to the blockchain network 30 with the withdrawal transmission unit 644.
  • the withdrawal unit 824 of the smart contract 800 confirms whether the withdrawal person is the target exchange, that is, whether the withdrawal person is the owner of the smart contract 800 (F801).
  • the exchange for which the withdrawal is made means that the withdrawal is the owner of the smart contract 800. If it is the target exchange (YES in F801), the withdrawal unit 824 deducts the specified withdrawal amount from the deposit wallet D131 (F802) and remits the withdrawal amount to the account wallet of the exchange (F803).
  • the processing completion notification unit 850 sends a processing completion notification to the order application 200 and the contract application 600 (F005).
  • the exchange can set and change the trading price and the contract deadline, which are the trading conditions.
  • the exchange inputs the setting contents from the setting input unit 621 of the contract application 600, and transmits the setting contents to the blockchain network 30 by the setting transmission unit 622.
  • the transaction setting unit 822 of the smart contract 800 sets the trading price D141 and the contract deadline D142 of the transaction setting data D140 (F811).
  • the processing completion notification unit 850 sends a processing completion notification to the order application 200 and the contract application 600 (F005).
  • Refund processing to creditors F900 is a bond collection processing. Bonds are automatically collected by the bond collection unit 833 according to the amount paid by the exchange or the user's buy transaction. When a deposit of virtual currency is detected by the deposit unit 823 or the remittance unit 831, the bond collection unit 833 refers to the creditor list D133 managed by the creditor holding the bond, and at least a part of the amount indicated by the bond. To the creditor.
  • the creditor list D133 is creditor information. This will be described in detail below.
  • the bond collection unit 833 selects a creditor from the creditor list D133, which is creditor information, and repays at least a part of the amount indicated by the virtual bond to the selected creditor (F901 to F905).
  • the bond collection unit 833 confirms whether one creditor will be paid off by the deposit amount or the payment amount (F901). If the repayment is possible (YES in F901), the money for the bond amount is transferred from the bond wallet D113 to the refund wallet D112 (F902, M102).
  • the bond collection unit 833 deducts the bond amount from the deposit amount or payment amount (F903), and removes the creditors corresponding to the bond collection from the creditor list D133 (F904). Based on the amount deducted above, that is, the amount of deposit or payment minus the amount of bonds, it is confirmed whether the next creditor can pay off (F901). By repeating this, the bond collection unit 833 automatically collects the creditor's bonds.
  • the bond collection department 833 moves the deposit or payment from the bond wallet D113 to the refund wallet D112 (F905, M107). ), The refund process to the creditor is completed.
  • the bonds are collected for each creditor, but the bonds may be collected for each order.
  • the order of collection of bonds is generally the order in which they are registered as creditors, but any collection order may be used. For example, a method of collecting in descending order of past usage frequency and payment amount, or a method of preferentially collecting good members can be considered.
  • the bond collection unit 833 selects one of the creditors registered in the creditor list D133 with this deposit as an opportunity. Then, the deposit amount to be deposited is compared with the amount indicated by the bond data issued to the selected creditor (F901). If, as a result of comparison, the bond collection unit 833 can repay at least a part of the amount indicated by the bond data by the deposit amount, the bond collection unit 833 will use the deposited amount to at least a part of the amount indicated by the bond data to the selected creditor. Repay (F902 and F905).
  • the deposits that trigger the bond collection are F503 and F701. Deposits to these deposit wallets are either payments from the buyer user to the seller user (F503) or deposits by the owner (F701).
  • the smart contract 800 automatically executes the bond collection process at the timing of obtaining the currency (F503 of the buy order and F701 of the deposit), so that the user can use the bond regardless of the intention of the exchange. You can get currency.
  • the bond collection process starts automatically with F503 of the buy order and F701 of the deposit of the deposit, regardless of the intention of the exchange. Then, the creditor can collect the bond by the transaction of another person.
  • the purchase contract of the buy order by the user U2 is confirmed, and the deposit wallet D131 of the owner is deposited at F503.
  • User U2 does not have to be a creditor or may be a creditor.
  • the bond collection unit 833 of the smart contract 800 can use the deposit from the user U2 for the bond collection of the user U1.
  • bonds are issued when there is a shortage of deposits, the following effects can be obtained. (1) It is possible to prevent the suspension of transactions due to a shortage of deposits. That is, the availability of transactions can be improved. (2) Exchanges do not need to make large deposits due to concerns about lack of deposits. That is, the cash flow can be improved.
  • FIG. 28 illustrates the issuance and collection of bonds as a specific example.
  • the issuance and collection of bonds will be described by way of example.
  • user U1, user U2 and an exchange will appear.
  • User U2 account wallet 100 yen, Refund amount: 0 yen, Bonds: 0 yen, Payment is 0 yen.
  • Exchange account wallet 100 yen, Deposit amount: 50 yen.
  • (1) User U1 placed a sell order for commodities of 100 yen, and the exchange executed 100 yen.
  • the state of (1) is as follows.
  • User U1 account wallet 100 yen, Refund amount: 50 yen (+50), Bonds: 50 yen (+50), Payment is 0 yen.
  • User U2 account wallet 100 yen, Refund amount: 0 yen, Bonds: 0 yen, Payment is 0 yen.
  • Exchange account wallet 100 yen, Deposit amount: -50 yen (-100).
  • (2) User U2 has placed a buy order for a commodity of 100 yen.
  • the state of (2) is as follows.
  • User U1 account wallet 100 yen, Refund amount: 50 yen, Bonds: 50 yen, Payment is 0 yen.
  • User U2 account wallet 0 yen (-100), Refund amount: 0 yen, Bonds: 0 yen, Payment 100 yen (+100).
  • the state of (3) is as follows.
  • User U1 account wallet 100 yen, Refund amount: 100 yen (+50), Bonds: 0 yen (-50), Payment is 0 yen.
  • User U2 account wallet 0 yen, Refund amount: 0 yen, Bonds: 0 yen, Payment is 0 yen (-100).
  • User U1 has executed a refund.
  • the state of (4) is as follows.
  • User U1 account wallet 200 yen (+100), Refund amount: 0 yen (-100), Bonds: 0 yen, Payment is 0 yen.
  • User U2 account wallet 0 yen, Refund amount: 0 yen, Bonds: 0 yen, Payment is 0 yen.
  • Exchange account wallet 100 yen, Deposit amount: 50 yen.
  • FIG. 29 shows a configuration in which the user request reception unit 810 of the smart contract 800 includes an application unit 814 that accepts an application for transaction details.
  • FIG. 30 shows a screen display of the application unit 814.
  • the smart contract 800 may include an application unit 814 in which the user can record the transaction details.
  • the application unit 814 acquires an application for transaction details from the user's order application 200, and writes the acquired application in the blockchain 710, which is a distributed ledger that is electronic data.
  • the application unit 814 is a writing unit.
  • FIG. 30 shows an application screen displayed on the display device 952 of the user terminal 100 by the application unit 814. If the user registers the genuine transaction volume by the application unit 814, the fraud of the exchange can be pursued.
  • FIG. 30 shows that although the user provided the exchange with the power of 3 kwh shown in frame 981, the exchange recorded that it received only 2 kwh shown in frame 982. For this reason, the user is paid an amount less than the amount originally paid. Therefore, the user can register that there was a transaction of 3 kwh and clarify the fraudulent transaction.
  • Embodiment 3 the user registers the transaction content to detect the fraudulent transaction, but it is not possible to know whether the user or the exchange has registered the false transaction from only one data. Therefore, a history viewing unit 223 that can browse information such as transaction history with users other than oneself and deposit history of exchanges may be added so that users and exchanges can trade with peace of mind.
  • FIG. 31 shows a configuration in which the transaction history unit 220 of the order application 200 has a history viewing unit 223.
  • the transaction history with users other than yourself can tell the user who is using the exchange for the first time whether it is an exchange that has not made false declarations or how many transactions are being made every day. It is a barometer that measures the reliability of exchanges.
  • the deposit history of an exchange is a barometer of how quickly bonds are collected during a sell transaction.
  • the history viewing unit 223 not only browses each transaction history, but also quantitatively evaluates it from the number of discrepancies and the degree of divergence between the transaction contents of the user and the exchange, as in the case of EC site reviews. There may be an index that does.
  • the third embodiment by showing the deposit history and the transaction history to the user by the history viewing unit 223, there is an effect that the user can select an exchange based on the reliability of the exchange.
  • Embodiment 4 In the first embodiment, the transaction is carried out by two parties, the user and the exchange. Since the smart contract 800 is created by the exchange, the user needs to evaluate whether the exchange is creating a valid smart contract 800. However, since it is not easy to decipher the program of the smart contract 800, it is difficult to evaluate whether it is a valid smart contract 800.
  • the transaction management terminal 900 is provided in the blockchain network 30.
  • FIG. 32 shows a transaction management terminal 900 connected to the blockchain network 30.
  • the smart contract 800 is certified to be genuine by the transaction management terminal 900, which is a transaction management device that is certified to be genuine. That is, the virtual bond collection program is certified as authentic by the transaction management terminal 900, which is a transaction management device.
  • the transaction management terminal 900 of the reliable transaction management organization guarantees the smart contract 800 and registers the smart contract 800 in the blockchain 710.
  • the user and the exchange perform a transaction using the smart contract 800 registered by the transaction management terminal 900.
  • bonds may be issued for each exchange for the shortage of deposits on the exchange, but by issuing bonds by the transaction management organization, bonds are issued not on an exchange basis but on the entire transaction unit. Can be recovered. For example, if user U1 issues a bond on exchange 1 and user U2 issues a bond on exchange 2, if user U1 becomes a creditor first, and if there is a deposit on exchange 2, the bond of user U1 Can be collected first.

Landscapes

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

Abstract

スマートコントラクト(800)は、債券発行部(832)と債券回収部(833)を備える。債券発行部(832)は、買い主である取引所から売り主であるユーザに支払うべき支払額が、取引所の預金ウォレットの預金額で支払えるかを判定し、支払えない場合、支払額の少なくとも一部の金額に相当する債券をユーザに発行し、債券の金額をユーザの債券ウォレットに格納し、ユーザを債権者リストに登録する。債券回収部(833)は、取引所の預金ウォレットへの入金がある場合、入金を契機として債権者リストに登録されている債権者を選択し、入金額と債権者に発行されている債券の金額とを比較する。債券回収部(833)は、入金額によって債券の金額の少なくとも一部を返済できる場合は、入金額によって、債権者に債券の金額の少なくとも一部を返済する。

Description

仮想債券回収装置、仮想債券回収プログラム及び仮想債券回収方法
 この発明は、分散台帳ネットワークにおける仮想債券を回収する仮想債券回収装置に関する。
 従来では、仮想通貨を用いた所持金以上の取引は、できなかった。所持金以上の取引を実行すると、トランザクションが許可されず、ブロックチェーンに登録できないからである。
 一方、仮想通貨にはトークンという独自通貨の仕組みがあり、トークンは独自に発行したり、他の人に送付したりすることができる。トークンであるカラードコインというビットコインに付加情報を与えて、金あるいは株式のような取引を記録する方法がある。カラードコインの方法を用いて債券及び手形のような有価証券取引を、ブロックチェーンで管理する方法が提案されている(特許文献1,2)。
 また、スマートコントラクトと呼ばれるプログラムを実行ができるブロックチェーンもある。スマートコントラクトのようなプログラムにより制御されたトークンによって、資産を管理することができる。
 例えば、知的財産権をトークンとして管理する方法が提案されている(特許文献3)。
特開2018-77714号公報 特開2018-81498号公報 特開2019-23843号公報
 スマートコントラクトを用いることで、取引をプログラムにより制御できるため、信頼できない2者間であっても、安全に取引を行うことができる。例えば、ユーザが取引所にコモディティを売る場合、ユーザがコモディティを取引所に渡し、取引所が通貨を支払う。この時、取引所が通貨を支払わなかった場合、ユーザはコモディティの対価を受け取ることができない。
 スマートコントラクトを用いた場合、予め取引所がスマートコントラクトに通貨を預けておき、この預金から自動的に支払いが実行されれば、ユーザは対価を受け取ることができる。
 しかし、債券を考慮していないと、以下の課題が発生する。
(1)預金以上の売り注文を受け付けることができないため、取引所は想定以上の通貨をスマートコントラクトに預金しておく必要があり、預けたお金はその他の取引に利用できない。したがって、キャッシュフローが下がる。
(2)ユーザが大金の売り注文を出すと、注文を約定させるために、取引所は預金を確保しなければならず、他のユーザの売り注文を受け付けることができない。
(3)ユーザは、コモディティを売らないという空売り注文ができるため、サイバー攻撃のDOS(Denial of Service attack)に似た攻撃が可能となる。
 もし、注文順ではなく、約定順、すなわち、コモディティの売りが成立した順に支払いを行えば、上記の空売りの課題(3)はなくなる。しかし、売り注文の成立を保証することができなくなるため、コモディティを取引所に渡したのに通貨を得ることができないという状況が発生し、安心して取引を行うことができない。
 注文が受け付けられたことで取引成立を約束される、という状況の方がユーザにとって好ましい。
 債券という概念を加えることで、通貨が不足しても債券を発行すれば、上記のような課題は起こらず、取引所は、全ての取引を成立させることができる。
 一方、従来では債券をトークン(独自通貨)として管理する方法は提案されているが、債券を強制的に回収する仕組みがない。
 このため、仮想通貨が不足した場合に債券を発行しても、債券分が仮想通貨として返ってくる保証がなく、債券を考慮した仮想通貨で、電力の売買のようなコモディティ取引を実現できないという課題があった。
 この発明は、仮想通貨を用いたコモディティ取引を、円滑に行うことを目的とする。
 本発明の仮想債券回収装置は、
 仮想通貨の入金を検出する入金検出部と、
 前記仮想通貨の入金が検出された場合に、電子データである仮想債券を有する債権者が管理されている債権者情報を参照し、前記仮想債券の示す金額の少なくとも一部を前記債権者に返済する債券回収部と、を備える。
 この発明の仮想債券回収装置は、債券回収部を備えているので、仮想通貨を用いたコモディティ取引を、円滑に行うことができる。
実施の形態1の図で、ブロックチェーンネットワーク30のネットワーク構成図。 実施の形態1の図で、ユーザ端末100及び取引所端末400のソフトウェア構成図。 実施の形態1の図で、注文アプリ200の機能構成図。 実施の形態1の図で、約定アプリ600の機能構成図。 実施の形態1の図で、スマートコントラクト800の機能構成図。 実施の形態1の図で、データD100の構成図。 実施の形態1の図で、ノード10のハードウェア構成図。 実施の形態1の図で、ユーザ端末100のソフトウェア構成を示す図。 実施の形態1の図で、取引所端末400のソフトウェア構成を示す図。 実施の形態1の図で、買い注文(F000)におけるお金の流れを示す図。 実施の形態1の図で、売り注文(F100)におけるお金の流れを示す図。 実施の形態1の図で、取引所の預金(F)を示す図。 実施の形態1の図で、注文アプリ200による画面表示を示す図。 実施の形態1の図で、注文アプリ200による画面表示を示す図。 実施の形態1の図で、約定アプリ600による画面表示を示す図。 実施の形態1の図で、約定アプリ600による画面表示を示す図。 実施の形態1の図で、買い注文処理(F000)のフローチャート。 実施の形態1の図で、売り注文処理(F100)のフローチャート。 実施の形態1の図で、キャンセル処理(F200)のフローチャート。 実施の形態1の図で、返金処理(F300)のフローチャート。 実施の形態1の図で、約定処理(F400)のフローチャート。 実施の形態1の図で、買い約定処理(F500)のフローチャート。 実施の形態1の図で、売り約定処理(F600)のフローチャート。 実施の形態1の図で、入金処理(F700)のフローチャート。 実施の形態1の図で、出金処理(F800)のフローチャート。 実施の形態1の図で、取引設定処理(F810)のフローチャート。 実施の形態1の図で、債権者への返金処理(F900)のフローチャート。 実施の形態1の図で、債券の発行と回収の例を示す図。 実施の形態2の図で、申請部814を備えるスマートコントラクト800の機能構成図。 実施の形態2の図で、申請部814による画面表示を示す図。 実施の形態3の図で、履歴閲覧部223を備える注文アプリ200の機能構成図。 実施の形態4の図で、ブロックチェーンネットワーク30に接続する取引管理端末900を示す図。
 以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
 以下の実施の形態の説明では債権者という用語を使用している。債権者とは、債券の回収により返金を受ける権利を有するユーザをいう。
 以下の実施の形態の説明では債券という用語を使用している。以下の実施の形態で用いる債券とは、電子データである仮想債券である。
 なお、以下の実施の形態では「ブロックチェーン」を説明しているが、ブロックチェーンは電子データである分散台帳の例である。以下の実施の形態は、分散台帳及び分散台帳を処理する分散台帳ネットワークに適用できる。すなわち実施の形態のスマートコントラクトは、分散台帳及び分散台帳を処理する分散台帳ネットワークに適用できる。
 実施の形態1.
 図1は、実施の形態1で用いるブロックチェーンネットワークのネットワーク構成図である。インターネット20に接続されたノード10と呼ばれる端末が、互いにP2P通信をして、データを共有する。インターネット20を介したP2P通信によって、ブロックチェーン710を共有するネットワークを、ブロックチェーンネットワーク30と呼ぶ。ブロックチェーンネットワーク30は仮想通貨に使用される。仮想通貨には、ビットコイン及びイーサリアムといった仮想通貨がある。ビットコインとイーサリアムとの大きな違いは、イーサリアムは、ブロックチェーン710上で動作するプログラムである、スマートコントラクトという機能を有している点である。
 各ノード10は、ブロックチェーン710とスマートコントラクト800を有する。スマートコントラクト800はブロックチェーン710で使用される。スマートコントラクト800によって、ブロックチェーン710に登録するデータを制御できる。各ノード10は、イーサリアムのようなスマートコントラクト800を有するブロックチェーン710を前提に動作する。
 図2は、コモディティ取引を行うユーザ端末100及び取引所端末400のソフトウェア構成図である。コモディティ取引を行うユーザは、ユーザ端末100を有する。コモディティ取引を行う取引所は、取引所端末400を有する。ユーザ端末100及び取引所端末400は、インターネット20に接続している。ユーザ端末100と取引所端末400は、図1のノード10として、ブロックチェーンネットワーク30に参加する。ユーザ端末100は、注文アプリ200とブロックチェーンクライアント300という2つのソフトウェアを持つ。
 取引所端末400は、約定アプリ600とブロックチェーンクライアント700との2つの ソフトウェアを持つ。また取引所端末400は、スマートコントラクト作成部500を有する。スマートコントラクト作成部500は、スマートコントラクト800を作成し、スマートコントラクト800をコンパイルし、ブロックチェーンクライアント700を介して、ブロックチェーン710に、スマートコントラクト800を登録する。一般的に、スマートコントラクト800は、スマートコントラクト開発環境で開発される。スマートコントラクト開発環境とは、イーサリアムでいうと、RemixあるいはTruFFleである。
 ブロックチェーンクライアント300及びブロックチェーンクライアント700は、ブロックチェーンネットワーク30を構成するソフトウェアである。ブロックチェーンクライアント300及びブロックチェーンクライアント700は、仮想通貨のアカウントを管理し、ブロックチェーン710を他のブロックチェーンクライアントと共有する。
 注文アプリ200は、ユーザがコモディティの売買注文を出すアプリである。
 約定アプリ600は、取引所がユーザからリクエストされた注文を約定するアプリである。
 図3は、実施の形態1において、コモディティ取引を行う際にユーザが利用する注文アプリ200の機能構成図である。ユーザ端末100で動作する注文アプリ200は、注文を処理する注文部210、取引履歴を扱う取引履歴部220、及び返金された通貨をユーザのアカウントウォレットに送金する返金部230を備える。注文部210は、ユーザが注文内容を入力する注文入力部211、入力された注文内容をブロックチェーンネットワーク30に送信する注文送信部212及び注文内容をキャンセルするキャンセル部213を備える。取引履歴部220は、ブロックチェーン710から取引履歴を取得する取引履歴取得部221と、取得した取引履歴を表示する取引履歴表示部222とを備える。
 図4は、コモディティ取引を行う際に取引所が利用する、約定アプリ600の機能構成図である。
 取引所端末400で動作する約定アプリ600は、約定を処理する約定部610、取引内容を設定する取引設定部620、取引履歴を扱う取引履歴部630、及び預金を管理する預金部640を備える。約定部610は、注文アプリ200からリクエストされた注文内容を取得する注文取得部611、取得した注文に対して、約定内容が入力される約定入力部612、及び入力された約定内容をブロックチェーンネットワーク30に送信し、約定を実行する約定送信部613を備える。取引履歴部630は、ブロックチェーン710から取引履歴を取得する取引履歴取得部631、及び取得した取引履歴を表示する取引履歴表示部632を備える。取引設定部620は、売買価格及び約定期限のような取引に関する設定情報が入力される設定入力部621、及び設定情報をブロックチェーンネットワーク30に送信する設定送信部622を備える。
 預金部640は、入金額入力部641、入金送信部642、出金額入力部643、及び出金送信部644を備える。預金部640は、取引所がユーザからのコモディティ売り注文に対して支払い用の通貨を用意するための預金を管理する。入金額入力部641は、取引所が入金額を入力する。入金送信部642は、入力された入金額を預金として入金するために、入金額をブロックチェーンネットワーク30に送信する。
 出金額入力部643は、預金から通貨を引き出すために、取引所が出金額を入力する。出金送信部644は、入力された出金額を預金から出金するために、出金額をブロックチェーンネットワーク30に送信する。
 図5は、コモディティ取引を制御するスマートコントラクト800の機能構成図である。スマートコントラクト作成部500によって作成されたスマートコントラクト800は、ブロックチェーンネットワーク30に送信され、全てのコモディティ取引は、スマートコントラクト800によって制御される。スマートコントラクト800は、ユーザリクエスト受付部810、取引所リクエスト受付部820、決済部830、取引履歴出力部840及び処理完了通知部850を備える。
 ユーザリクエスト受付部810は、ユーザからのリクエストを受け付ける。取引所リクエスト受付部820は、取引所からのリクエストを受け付ける。決済部830は、決済処理を行う。取引履歴出力部840は、取引履歴を出力する。処理完了通知部850は、注文登録及び約定処理のような処理が完了したことを、注文アプリ200と約定アプリ600に通知する。
 ユーザリクエスト受付部810は、ユーザからの注文を登録する注文部811と、ユーザからの注文キャンセルを登録するキャンセル部812と、ユーザからの返金リクエストに応えて、ユーザのウォレットに返金額を送金する返金部813を備える。
 注文部811は、初めて注文を出したユーザに対して、自動的にアカウントを登録するアカウント登録部811Aと、登録されたアカウントに対して注文を登録する注文登録部811Bを備える。
 取引所リクエスト受付部820は、登録された注文に対して取引所が約定を送信した際に、約定内容に応じて約定処理を行う約定部821と、取引所が設定した取引内容に合わせて、取引内容を設定する取引設定部822と、取引所が設定した入金額の通貨をユーザのウォレットから預金に送金する入金部823と、取引所が設定した出金額を預金からユーザのウォレットに送金する出金部824を備える。
 決済部830は、買い手の支払い金を売り手に送金する送金部831と、ユーザの売り注文に対して預金を超える売り価格で約定した際に、通貨の代わりに債券を自動的に発行する債券発行部832と、取引所からの入金や他ユーザの買い注文約定によって通貨を取得することで、発行した債券を自動的に通貨に換金する債券回収部833を備える。
 図6は、スマートコントラクト800で管理するデータD100の構成を示す。図6を参照して、スマートコントラクト800で管理するデータD100を説明する。ユーザのための管理データD110として、一時金ウォレットD111、返金ウォレットD112、債券ウォレットD113、取引履歴D114がある。一時金ウォレットD111は、ユーザがコモディティの買い注文を送信時に支払う金額が一時的に保存される場所である。返金ウォレットD112は、ユーザのおつりや売り代金を入れる場所である。買い注文約定時に、一時金ウォレットD111から約定額に従って、預金ウォレットD131に通貨が移動し、おつりが返金ウォレットD112に移動する。
 また、売り注文約定時に、預金ウォレットD131から返金ウォレットD112に通貨が移動することで、支払いが行われる。債券ウォレットD113は、売り注文約定時に、預金ウォレットD131の残代が少なく、売り代金を支払えない場合に、支払えなかった代金を記録しておく場所である。取引履歴D114は、ユーザの注文内容と約定内容を履歴として記録しておく場所である。取引所のための管理データとして、預金ウォレットD131、ユーザリストD132、債権者リストD133がある。預金ウォレットD131は、取引所からの入金されたお金または買い注文約定時にユーザから支払われた代金が、保存される場所である。
 ユーザリストD132は、注文を出したユーザを記録する場所である。債権者リストD133は、債券が発行されたユーザを記録する場所である。取引設定データD140は、売買価格D141と約定期限D142を記録する。売買価格D141は、買いレートと売りレートがあり、例えば、1kwhあたり、30円で買い、25円で売るといったデータを記録する。約定期限D142は、注文が出されてから、約定するまで期限を設定するためのデータであり、約定期限が過ぎると、取引所は約定することはできず、ユーザは注文をキャンセルできる。
 図7は、ノード10のハードウェア構成を示す。ノード10はユーザ端末100及び取引所端末400であるから、図7はユーザ端末100及び取引所端末400のハードウェア構成を示す。
 ノード10は、コンピュータである。ノード10は、プロセッサ920を備える。ノード10は、プロセッサ920の他に、主記憶装置930、補助記憶装置940、入出力インタフェース950及びネットワークインタフェース960といった、他のハードウェアを備える。プロセッサ920は、信号線170を介して、他のハードウェアと接続され、他のハードウェアを制御する。
 図8は、ノード10がユーザ端末100の場合のソフトウェア構成を示す。ノード10がユーザ端末100の場合、ユーザ端末100は、プログラムとして、注文アプリ200及びブロックチェーンクライアント300を備える。ブロックチェーンクライアント300は、ブロックチェーン710とスマートコントラクト800を備えている。スマートコントラクト800はコードとして図8に示すように、ブロックチェーン710に含まれてもよいし、ブロックチェーン710以外の方法、例えば、スマートコントラクトコードが記録されているファイル(以下、スマートコントラクトファイル)として保管してもよい。スマートコントラクトファイルの場合は、P2Pあるいはクラウドを利用してブロックチェーンクライアント間でスマートコントラクトファイルを共有する必要がある。
 プロセッサ920は、ブロックチェーンクライアント300を介して、ブロックチェーンに登録されているスマートコントラクトコードを実行してもよいし、スマートコントラクトファイルを直接実行してもよい。
 図9は、ノード10が取引所端末400の場合のソフトウェア構成を示す。ノード10が取引所端末400の場合、取引所端末400は、プログラムとして、スマートコントラクト作成部500、約定アプリ600及びブロックチェーンクライアント700を備える。ブロックチェーンクライアント700は、ブロックチェーン710を備えている。スマートコントラクト800はブロックチェーン710に含まれてもよいし、スマートコントラクトファイルとして保管してもよい。プロセッサ920が、スマートコントラクト作成部500、約定アプリ600及びブロックチェーンクライアント700を実行する。プロセッサ920によるスマートコントラクトの実行はユーザ端末100の場合と同じであるので、説明は省略する。
 プロセッサ920は、演算処理を行うIC(Integrated Circuit)である。プロセッサ920の具体例は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 主記憶装置930は記憶装置である。主記憶装置930の具体例は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。主記憶装置930は、プロセッサ920の演算結果を保持する。
 補助記憶装置940は、データを不揮発的に保管する記憶装置である。補助記憶装置940の具体例は、HDD(Hard Disk Drive)である。また、補助記憶装置940は、SD(登録商標)(Secure Digital)メモリカード、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記録媒体であってもよい。ノード10がユーザ端末100の場合、補助記憶装置940は、注文アプリ200、ブロックチェーンクライアント300及びスマートコントラクト800を格納する。ノード10が取引所端末400の場合、補助記憶装置940は、スマートコントラクト作成部500、約定アプリ600、ブロックチェーンクライアント700及びスマートコントラクト800を格納する。スマートコントラクト800は、仮想債券回収プログラムに相当する。債券回収プログラムは、入金検出部である入金部823、入金検出部である送金部831、債券発行部832及び債券回収部833の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程をコンピュータに実行させるプログラムである。
 入出力インタフェース950は、プロセッサ920が各装置とデータを入出力するポートである。入出力インタフェース950は、入力装置951及び表示装置952と接続している。入力装置951はマウス及びタッチパネルのような装置である。
表示装置952は液晶ディスプレイのような装置である。
 ノード10は、プロセッサ920を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ920と同じように、プログラムを実行する装置である。単一のプロセッサ及び複数のプロセッサは、プロセッシングサーキットリとも呼ばれる。ユーザ端末100の注文アプリ200、ブロックチェーンクライアント300及びスマートコントラクト800の機能はプロセッシングサーキットリによって実現される。また、取引所端末400のスマートコントラクト作成部500、約定アプリ600、ブロックチェーンクライアント700及びスマートコントラクト800の機能は、プロセッシングサーキットリによって実現される。
 仮想債券回収プログラムは、コンピュータ読み取り可能な記録媒体に格納されて提供されてもよい。
***動作の説明***
 次に、図面を参照して動作を説明する。
 以下に示すスマートコントラクト800の動作は、仮想債券回収装置である取引所端末400におけるスマートコントラクト800の動作であり、また、仮想債券回収装置であるユーザ端末100である。これは、取引所端末400のスマートコントラクト800で実行されるメソッドMは、ユーザ端末100のスマートコントラクト800でも同様に実行されるからである。仮想債券回収装置の動作手順は、仮想債券回収方法に相当する。仮想債券回収装置の動作を実現するプログラムは、仮想債券回収プログラムに相当する。
図10は、買い注文(F000)におけるお金の流れを示す図である。
図11は、売り注文(F100)におけるお金の流れを示す図である。
図12は、取引所の預金(F)を示す図である。
図13と図14は、注文アプリ200による画面表示を示す図である。
図13と図14の内容が1画面に表示される。図13が画面上側、図13が画面の下側である。
図15と図16は、約定アプリ600による画面表示を示す図である。
図15と図16の内容が1画面に表示される。図15が画面上側、図16が画面下側である。
図17は、買い注文処理(F000)のフローチャートである。
図18は、売り注文処理(F100)のフローチャートである。
図19は、キャンセル処理(F200)のフローチャートである。
図20は、返金処理(F300)のフローチャートである。
図21は、約定処理(F400)のフローチャートである。
図22は、買い約定処理(F500)のフローチャートである。
図23は、売り約定処理(F600)のフローチャートである。
図24は、入金処理(F700)のフローチャートである。
図25は、出金処理(F800)のフローチャートである。
図26は、取引設定処理(F810)のフローチャートである。
図27は、債権者への返金処理(F900)のフローチャートである。
図28は、債券の発行と回収の例を示す図である。
<F000、F100>
 図10、図17及び図18を参照して、まず、ユーザが売買取引を開始するところから説明する。
 ユーザは、注文アプリ200の注文入力部211に、「電力を1,000円分買う」のような、注文内容を入力する。注文送信部212は、注文内容をブロックチェーンネットワーク30に送信する。買い注文(F000)の場合は、注文に従った代金が送金される。
 ブロックチェーンネットワーク30では、スマートコントラクト800の注文部811が、送信された注文を処理する。まず、注文部811のアカウント登録部811Aは、初めて注文を出したアカウントかどうかを判断する。アカウント登録部811Aは、初めて注文を出したアカウントであれば、アカウントをユーザリストD132に追加する(F001)。さらに、注文登録部811Bは、アカウントに対応付けて、注文を登録する(F003)。注文登録部811Bは、注文を登録すると、注文番号を、ユーザ端末100の注文アプリ200に返信する(F004)。買い注文の場合は通貨が送金されてくるため(F002)、注文登録部811Bは、予約金としてユーザ用一時金ウォレットD111に保存される(M101)。処理完了通知部850により、注文アプリ200と約定アプリ600に、処理完了の通知が送られる(F005)。
<F400、F500、F600>
 図21、図22及び図23を参照して、スマートコントラクト800による約定処理を説明する。
 取引所がユーザの注文を約定する際の動作を説明する。約定アプリ600は、注文取得部611によって登録された注文内容を取得する。取引所では、約定入力部612が、注文内容に基づき、約定内容を受け付ける。次に、約定送信部613が、約定内容をブロックチェーンネットワーク30に送信する。ブロックチェーンネットワーク30では、スマートコントラクト800の決済部830が、約定処理F400を実施する。
<F400>
 約定処理F400では、取引所がスマートコントラクト800をブロックチェーンに登録した人(以下、スマートコントラクト800のオーナー)である場合は、決済部830が、約定の実行者がスマートコントラクト800のオーナーかどうかを確認し(F401)、スマートコントラクト800のオーナーであれば、注文が有効かを確認する(F402)。
 その後、注文が買い注文であれば(F403で買い)、決済部830は、買い約定処理F500を実行する。注文が売り注文であれば(F403で売り)、決済部830は、売り約定処理F600を実行する。最後に処理完了通知部850が、注文アプリ200と約定アプリ600に、処理完了の通知送信する(F005)。
<F500>
 送金部831は、仮想通貨の入金を検出する入金検出部である。
 入金検出部は、仮想通貨の入金として、買い主である取引所が売り主であるユーザへ支払う仮想通貨の入金(F506)と、取引所による仮想通貨の預金のための仮想通貨の入金(F701)とを検出する。仮想通貨の預金のための仮想通貨の入金(F701)は後述する。
 送金部831が仮想通貨の入金を検出した場合、買い約定処理F500では、スマートコントラクト800の送金部831が、ユーザ用債券ウォレットD113の債券を確認し(F506)、債券が0の場合は(F506のYES)、ユーザ用一時金ウォレットD111から約定額を引き出す(F501)。債券が0でない場合は(F506のNO)、送金部831は、約定額と債券額とを比較する(F507)。約定額が債券額以上の場合(F507のYES)、送金部831は、ユーザ用債券ウォレットD113から債券額を引き出し(F508)、ユーザを債権者リストD133から外し(F509)、一時金ウォレットD111から不足額を差し引く(F510)。約定額が債券額より小さい場合(F507のNO)、送金部831は、ユーザ用債券ウォレットD113から約定額を引き出し(F511)、処理はF502に進む。
 送金部831は差額である注文額から約定額を引いた額を、おつりとして返金ウォレットD112に入れる(F502、M103)。送金部831は、約定額を預金ウォレットD131に入れる(F503,M105)。その後、送金部831は、約定内容を取引履歴D114に記録し(F504)、取引内容の注文の状態を「完了」にする(F505)。図13から図16において、取引履歴部630の注文の状態として、「発注」「キャンセル」「完了」がある。最後に、債券回収部833が、約定額に従って(M106)、債権者への返金を行う(F900、M107)。
<F600>
 売り約定処理F600を説明する。債券発行部832は、買い主である取引所から売り主であるユーザに支払うべき支払額を示す支払額データと、買い主の有する預金額を示す預金データとを比較する。債券発行部832は、比較結果に基づいて取引所は債券を売り主に発行し、債券が発行された売り主を債権者情報である債権者リストD133に登録する。以下に具体的に説明する。
 売り約定処理F600では、スマートコントラクト800の債券発行部832が、預金ウォレットD131に入っているお金で約定額を支払えるかどうかを確認する(F601)。支払える場合(F601でYES)は、送金部831は、約定額のお金を預金ウォレットD131からユーザの返金ウォレットD112に移動する(F602、M202)。もし、預金額が足りない場合(F601でNO)は、債券発行部832は、預金額が0より多いかを確認する(F603)。0より多い場合は(F603でYES)、約定額の一部を支払えるだけ支払うために、送金部831は、預金ウォレットD131の全額を返金ウォレットD112に移動する(F604、M202)。債券発行部832は、不足分の債券を発行し、債券ウォレットD113に入れる(F605,M201)。
 もし、預金額が0以下であれば(F603でNO)、債券発行部832は、不足分の債券を発行し、債券ウォレットD113に入れる(F606,M201)。
 F605またはF606で債券が発行された場合は、債券発行部832は、債権者を債権者リストD133に登録する(F607)。上記決済が完了後、約定部821は、約定内容を取引履歴D114に記録し(F608)、注文の状態を完了にする(F609)。
 以上のF605またはF606で述べたように、債券発行部832は、買い主であるオーナーから売り主であるユーザに支払うべき支払額を示す支払額データが、買い主の預金ウォレットに預金されている預金額を示す預金データで支払えるかを判定する(F604)。債券発行部832は、預金データで支払額を支払えないと判定した場合、支払額の少なくとも一部の金額に相当する債券を債券データとして売り主に発行し、発行した債券データを、ユーザごとに設定されている債券ウォレットのうちの、前記債券が発行された前記売り主の債券ウォレットに格納する(F605、F606)。そして債券発行部832は、債券が発行された売り主を債権者リストD133に登録する(F607)。
<F200>
 次に、図19を参照して、キャンセル処理F200を説明する。ユーザは、自らが出した売買注文をキャンセルすることができる。ユーザは注文アプリ200の取引履歴部220からキャンセルする注文を選び、注文アプリ200のキャンセル部213でキャンセルを実行する(F200)。注文アプリ200のキャンセル部213が、キャンセル内容を、ブロックチェーンネットワーク30に送信する。
 ブロックチェーンネットワーク30では、スマートコントラクト800のキャンセル部812が、キャンセル可否を確認する(F201)。具体的には、注文の状態が「発注」で約定期限を過ぎていれば、キャンセル可能である(F201でYES)。キャンセルが可能であれば、キャンセル部812は、注文の状態をキャンセルにし(F202)、注文内容の「買い/売り」を確認し(F203)する。「買い」であれば(F203でYES)、送金部831が、注文額分を、一時金ウォレットD111から返金ウォレットD112に移動する(F204、M103)。最後に、処理完了通知部850が、注文アプリ200と約定アプリ600に、処理完了の通知を送る(F005)。
<F300>
 次に、図20を参照して、返金処理F300を説明する。ユーザは、返金されたお金を、返金ウォレットD112からアカウントウォレットに送金できる(M104)。アカウントウォレットは、アカウント本人が自由に使える仮想通貨が入ったウォレットである。ユーザは、注文アプリ200の返金部230から返金を実行すると、返金内容がブロックチェーンネットワーク30に送信される。
 ブロックチェーンネットワーク30では、スマートコントラクト800の返金部813が、返金を処理する(F300)。具体的には、返金部813は、返金ウォレットD112の通貨の値を0にし(F301)、返金ウォレットD112に入っていた通貨分を、ユーザに送金する(F302)。最後に、処理完了通知部850が、注文アプリ200と約定アプリ600に、処理完了の通知を送る(F005)。
<F700>
 次に、図24を参照して、取引所の入金処理F700を説明する。取引所は、ユーザからの売り取引に対して、預金ウォレットD131から売り代金を支払うため、予め預金ウォレットD131に入金しておくことができる。取引所では、約定アプリ600の入金額入力部641は入金額を入力され、入金送信部642が入金額をブロックチェーンネットワーク30に送信する。
 入金部823は仮想通貨の入金を検出する入金検出部である。入金部823は仮想通貨の入金を検出した場合、ブロックチェーンネットワーク30では、スマートコントラクト800の入金部823が、入金された金額を預金ウォレットD131に格納する(F701,M301)。
 その後、預金額に応じて債権者の債券が回収される(F900)。最後に、処理完了通知部850が、注文アプリ200と約定アプリ600に、処理完了の通知を送る(F005)。
<F800>
 次に、図25を参照して、出金処理800を説明する。取引所は、自分が入金したお金あるいは売買取引によって得られたお金を、引き出すことができる。取引所は、約定アプリ600の出金額入力部643に出金額を入力し、出金送信部644で出金額をブロックチェーンネットワーク30に送信する。
 ブロックチェーンネットワーク30では、スマートコントラクト800の出金部824が、出金者が対象の取引所かどうか、つまり、出金者がスマートコントラクト800のオーナーかどうかを確認する(F801)。出金者が対象の取引所とは、出金者がスマートコントラクト800のオーナーであることを意味する。対象の取引所であれば(F801でYES)、出金部824は、預金ウォレットD131から、指定された出金額を引き(F802)、出金額を取引所のアカウントウォレットに送金する(F803)。最後に、処理完了通知部850が、注文アプリ200と約定アプリ600に、処理完了の通知を送る(F005)。
<F810>
 次に、図26を参照して、取引設定処理F810を説明する。取引所は、取引条件である売買価格と約定期限を設定及び変更できる。取引所は、約定アプリ600の設定入力部621から設定内容を入力し、設定送信部622により、設定内容をブロックチェーンネットワーク30に送信する。
 ブロックチェーンネットワーク30では、スマートコントラクト800の取引設定部822が、取引設定データD140の売買価格D141及び約定期限D142を設定する(F811)。最後に処理完了通知部850が、注文アプリ200と約定アプリ600に、処理完了の通知を送る(F005)。
<F900>
 最後に、図27を参照して、債権者への返金処理F900について説明する。
債権者への返金処理F900は債券回収処理である。債券は、債券回収部833が、取引所からの入金、または、ユーザの買い取引による支払額に応じて、自動的に回収する。
 債券回収部833は、仮想通貨の入金が入金部823または送金部831によって検出された場合、債券を有する債権者が管理されている債権者リストD133を参照し、債券の示す金額の少なくとも一部を債権者に返済する。債権者リストD133は債権者情報である。以下に具体的に説明する。
 債券回収部833は、債権者情報である債権者リストD133から債権者を選択し、選択した債権者に、仮想債券の示す金額の少なくとも一部を返済する(F901からF905)。
 まず、債券回収部833は、入金額または支払額で、一人の債権者が完済されるかを確認する(F901)。完済可能であれば(F901でYES)、債券額分のお金を、債券ウォレットD113から返金ウォレットD112に移動する(F902、M102)。
 次に、債券回収部833は、入金額または支払額から、債券分を差し引き(F903)、債権者リストD133から債券回収に該当する債権者を外す(F904)。上記で差し引いた額、つまり、入金額または支払額から債券分の金額を引いた額を基に、次の債権者が完済できるかを確認する(F901)。これを繰り返すことで、債券回収部833は、自動的に債権者の債券を回収する。
 もし、入金額または支払額で債権者が完済できない場合は(F901でNO)、債券回収部833は、入金額または支払額分のお金を債券ウォレットD113から返金ウォレットD112に移動し(F905、M107)、債権者への返金処理が完了する。
 ここでは、債権者毎に債券を回収しているが、注文単位で債券を回収してもよい。また、債券の回収順については、債権者として登録された順に、回収していくのが一般的であるが、どのような回収順でも構わない。例えば、過去の利用頻度や支払額が高い順に回収する方法や、優良会員を優先して回収するといった方法が考えられる。
 以上のF900で説明したように、債券回収部833は、預金ウォレットへの入金がある場合(F503及びF701)、この入金を契機として債権者リストD133に登録されているいずれかの債権者を選択し、入金される入金額と選択した債権者に発行されている債券データの示す金額とを比較する(F901)。債券回収部833は、比較の結果、入金額によって債券データの示す金額の少なくとも一部を返済できる場合には、入金された入金額によって、選択した債権者に債券データの示す金額の少なくとも一部を返済する(F902及びF905)。債券回収の契機となる入金はF503及びF701である。これらの預金ウォレットへの入金は、買い主であるユーザから売り主であるユーザへの支払いと(F503)、オーナーによる預金(F701)とのいずれかである。
***実施の形態1の効果***
取引所が発行した債券は、通常は取引所が後日、債券回収処理を実施することで、ユーザは債券分の通貨を入手できる。しかし、従来では、取引所が債券回収処理をしなければ、ユーザは通貨を得られないという課題があった。
 実施の形態1ではスマートコントラクト800が通貨を得るタイミング(買い注文のF503及び、預金の入金のF701)で、自動的に債券回収処理を実行することで、取引所の意図に関わらず、ユーザは通貨を得ることができる。
債券回収処理は、取引所の意思とは無関係に、買い注文のF503及び預金の入金のF701を契機として、自動的に開始する。
 そして、債権者は、他人の取引によって債券を回収できる。つまり、ユーザU1が債権者の場合に、ユーザU2による買い注文の買い約定が確定し、F503でオーナーの預金ウォレットD131へ入金があるとする。ユーザU2は債権者でなくてもよいし債権者でもよい。スマートコントラクト800の債券回収部833は、ユーザU2からの入金を、ユーザU1の債券回収に使用することができる。
 以上のように、預金が不足している場合に、債券を発行するようにしているので、以下の効果を得ることができる。
(1)預金が不足することによる取引停止を防止することができる。すなわち、取引の可用性を向上できる。
(2)取引所は、預金不足を懸念して、多めに入金しておく必要がない。すなわち、キャッシュフローの向上を図ることができる。
(3)ユーザの空売り注文による売り取引停止の妨害を防止することができる。すなわち、悪意ある注文を無効化することができる。
また、他ユーザの買い取引や取引所の入金により得られたお金を、強制的に債券回収に使うことで、以下の効果を得ることができる。
(4)ユーザが安心して売り取引を実施することができる。すなわち、取引の信頼性を向上することができる。
(5)取引所は、債権者への返金を気にする必要がない。すなわち、管理負担を軽減することができる。
 図28は、債券の発行と回収とを具体例で示す。図28を参照して、債券の発行と回収を具体例で説明する。以下の説明ではユーザU1、ユーザU2及び取引所が登場する。
<初期状態>
初期状態では、以下のようである。
ユーザU1のアカウントウォレット:100円、
返金額:0円、
債券:0円、
支払金0円。
ユーザU2のアカウントウォレット:100円、
返金額:0円、
債券:0円、
支払金0円。
取引所のアカウントウォレット:100円、
預金額:50円。
(1)ユーザU1がコモディティ100円分の売り注文を出し、取引所が100円分を約定した。
(1)の状態は、以下のようである。
ユーザU1のアカウントウォレット:100円、
返金額:50円(+50)、
債券:50円(+50)、
支払金0円。
ユーザU2のアカウントウォレット:100円、
返金額:0円、
債券:0円、
支払金0円。
取引所のアカウントウォレット:100円、
預金額:-50円(-100)。
(2)ユーザU2がコモディティ100円分の買い注文を出した。
(2)の状態は、以下のようである。
ユーザU1のアカウントウォレット:100円、
返金額:50円、
債券:50円、
支払金0円。
ユーザU2のアカウントウォレット:0円(-100)、
返金額:0円、
債券:0円、
支払金100円(+100)。
取引所のアカウントウォレット:100円、
預金額:-50円。
(3)取引所がユーザU2の買い注文100円分を約定した。
(3)の状態は、以下のようである。
ユーザU1のアカウントウォレット:100円、
返金額:100円(+50)、
債券:0円(-50)、
支払金0円。
ユーザU2のアカウントウォレット:0円、
返金額:0円、
債券:0円、
支払金0円(-100)。
取引所のアカウントウォレット:100円、
預金額:50円(+100)。
(4)ユーザU1が返金を実行した。
(4)の状態は、以下のようである。
ユーザU1のアカウントウォレット:200円(+100)、
返金額:0円(-100)、
債券:0円、
支払金0円。
ユーザU2のアカウントウォレット:0円、
返金額:0円、
債券:0円、
支払金0円。
取引所のアカウントウォレット:100円、
預金額:50円。
 ユーザU1が100円分のコモディティを売り、ユーザU2が100円分のコモディティを買った。このため、最終的には、ユーザU1のアカウントウォレットが100円増え、ユーザU2のアカウントウォレットが100円減っており、取引所の変化はない。
 実施の形態2.
 図29及び図30を参照して、実施の形態2を説明する。
 図29は、スマートコントラクト800のユーザリクエスト受付部810が、取引内容の申請を受け付ける申請部814を備える構成を示す。
 図30は、申請部814の画面表示を示す。
 以上の実施の形態1に加え、スマートコントラクト800は、ユーザが取引内容を記録できる申請部814を備えても良い。
申請部814は、ユーザの注文アプリ200から取引内容の申請を取得し、取得した前記申請を、電子データである分散台帳であるブロックチェーン710に書き込む。申請部814は、書込部である。
 図30は、申請部814がユーザ端末100の表示装置952に表示する申請画面を示す。申請部814により、ユーザ側で真正な取引量を登録しておけば、取引所の不正を追及することができる。図30では、ユーザが枠981で示す電力3kwhを取引所に提供したにも関わらず、取引所は枠982で示す2kwhしかもらっていないと記録したことを示す。このため、ユーザには、本来支払ってもらえる額より少ない額が、支払われたことになる。そこで、ユーザが3kwhの取引があったということを登録し、不正な取引を明らかにすることができる。
 実施の形態3.
 実施の形態2では、ユーザが取引内容を登録することで不正な取引を摘発するが、一つのデータだけでは、ユーザと取引所のどちらが虚偽の取引を登録しているか分からない。そこで、ユーザおよび取引所が安心して取引ができるように、自分以外のユーザとの取引履歴、取引所の預金履歴のような情報を閲覧できる履歴閲覧部223を追加しても良い。
 図31は、注文アプリ200の取引履歴部220が、履歴閲覧部223を有する構成を示す。
 自分以外のユーザとの取引履歴は、初めて取引所を利用するユーザにとって、虚偽の申告をしていない取引所なのか、日々どれくらい多くの取引が行われているかといったことを知ることができるため、取引所の信頼性を測るバロメータとなる。
 取引所の預金履歴は、売り取引の際に、どれだけ素早く債券が回収されるのかを知るバロメータとなる。履歴閲覧部223は、一つ一つの取引履歴を閲覧することはもちろんのこと、ECサイトのレビューのように、ユーザと取引所の取引内容の齟齬の回数や乖離度等から、定量的に評価するような指標があっても良い。
 実施の形態3によれば、履歴閲覧部223により預金履歴及び取引履歴をユーザに示すことにより、ユーザが取引所の信頼度をもとに取引所を選択することができる効果がある。
 実施の形態4.
 実施の形態1では、ユーザと取引所との2者で取引を実施した。スマートコントラクト800は取引所が作成するため、ユーザは取引所が妥当なスマートコントラクト800を作成しているのかを評価する必要がある。
しかし、スマートコントラクト800のプログラムを解読するのは簡単ではないため、妥当なスマートコントラクト800かどうかの評価は難しい。
 そこで、図32のように、ブロックチェーンネットワーク30に取引管理端末900を設ける。
 図32は、ブロックチェーンネットワーク30に接続する取引管理端末900を示す。
 スマートコントラクト800は、真正であることが認証されている取引管理装置である取引管理端末900によって、真正であることが認証されている。すなわち、仮想債券回収プログラムは、取引管理装置である取引管理端末900によって、真正であることが認証されている
 信頼のある取引管理組織の取引管理端末900が、スマートコントラクト800を保証し、スマートコントラクト800をブロックチェーン710に登録する。ユーザ及び取引所は、取引管理端末900が登録したスマートコントラクト800を使って、取引を行う。
 スマートコントラクト800のオーナーは取引管理組織となるため、信頼性のある取引が可能となる。
 また、取引所の不足した預金に対しては、取引所毎に債券を発行しても良いが、取引管理組織が債券を発行することで、取引所単位ではなく、全体の取引単位で債券を回収できる。例えば、ユーザU1が取引所1、ユーザU2が取引所2でそれぞれ債券を発行された場合、ユーザU1が先に債権者になった場合は、取引所2で入金があれば、ユーザU1の債券を先に回収することが可能になる。
 10 ノード、20 インターネット、30 ブロックチェーンネットワーク、100 ユーザ端末、200 注文アプリ、210 注文部、211 注文入力部、212 注文送信部、213 キャンセル部、220 取引履歴部、221 取引履歴取得部、222 取引履歴表示部、223 履歴閲覧部、230 返金部、300 ブロックチェーンクライアント、400 取引所端末、500 スマートコントラクト作成部、600 約定アプリ、610 約定部、611 注文取得部、612 約定入力部、613 約定送信部、620 取引設定部、621 設定入力部、622 設定送信部、630 取引履歴部、631 取引履歴取得部、632 取引履歴表示部、640 預金部、641 入金額入力部、642 入金送信部、643 出金額入力部、644 出金送信部、700 ブロックチェーンクライアント、710 ブロックチェーン、800 スマートコントラクト、810 ユーザリクエスト受付部、811 注文部、811A アカウント登録部、811B 注文登録部、812 キャンセル部、813 返金部、814 申請部、820 取引所リクエスト受付部、821 約定部、822 取引設定部、823 入金部、824 出金部、830 決済部、831 送金部、832 債券発行部、833 債券回収部、840 取引履歴出力部、850 処理完了通知部、900 取引管理端末、910 ブロックチェーンクライアント、920 プロセッサ、930 主記憶装置、940 補助記憶装置、950 入出力インタフェース、951 入力装置、952 表示装置、960 ネットワークインタフェース、970 信号線、981,982 枠、D100 データ、D110 管理データ、D111 一時金ウォレット、D112 返金ウォレット、D113 債券ウォレット、D114 取引履歴、D130 取引所用管理データ、D131 預金ウォレット、D132 ユーザリスト、D133 債権者リスト、D140 取引設定データ、D141 売買価格、D142 約定期限。

Claims (8)

  1.  仮想通貨の入金を検出する入金検出部と、
     前記仮想通貨の入金が検出された場合に、電子データである仮想債券を有する債権者が管理されている債権者情報を参照し、前記仮想債券の示す金額の少なくとも一部を前記債権者に返済する債券回収部と、
    を備える仮想債券回収装置。
  2.  前記入金検出部は、
     前記仮想通貨の前記入金として、買い主が売り主へ支払う仮想通貨の入金と、仮想通貨の預金のための仮想通貨の入金とを検出する請求項1に記載の仮想債券回収装置。
  3.  前記債券回収部は、
     前記債権者情報から前記債権者を選択し、選択した前記債権者に、前記仮想債券の示す金額の少なくとも一部を返済する請求項1または請求項2に記載の仮想債券回収装置。
  4.  前記仮想債券回収装置は、さらに、
     買い主から売り主に支払うべき支払額を示す支払額データと、前記買い主の有する預金額を示す預金データとを比較し、比較結果に基づいて前記仮想債券を前記売り主に発行し、前記債券が発行された前記売り主を前記債権者情報に登録する債券発行部を備える請求項1から請求項3のいずれか一項に記載の仮想債券回収装置。
  5.  前記仮想債券回収装置は、さらに、
     ユーザから取引内容の申請を取得し、取得した前記申請を電子データである分散台帳に書き込む書込部を備える請求項1から請求項4のいずれか1項に記載の仮想債券回収装置。
  6.  コンピュータに、
     仮想通貨の入金を検出する入金検出処理と、
     前記仮想通貨の入金が検出された場合に、電子データである仮想債券を有する債権者が管理されている債権者情報を参照し、前記仮想債券の示す金額の少なくとも一部を前記債権者に返済する仮想債券回収処理と、
    を実行させるための仮想債券回収プログラム。
  7.  前記仮想債券回収プログラムは、
     取引を管理する取引管理装置によって、真正であることが認証されている請求項6に記載の仮想債券回収プログラム。
  8.  コンピュータが、
     仮想通貨の入金を検出し、
     前記仮想通貨の入金が検出された場合に、電子データである仮想債券を有する債権者が管理されている債権者情報を参照し、前記仮想債券の示す金額の少なくとも一部を前記債権者に返済する、
    仮想債券回収方法。
PCT/JP2019/029812 2019-07-30 2019-07-30 仮想債券回収装置、仮想債券回収プログラム及び仮想債券回収方法 WO2021019683A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201980098627.6A CN114144802A (zh) 2019-07-30 2019-07-30 虚拟债券回收装置、虚拟债券回收程序和虚拟债券回收方法
GB2200512.8A GB2599332A (en) 2019-07-30 2019-07-30 Virtual securities collection device, virtual securities collection program, and virtual securities collection method
JP2019571076A JP6752384B1 (ja) 2019-07-30 2019-07-30 仮想債券回収装置、仮想債券回収プログラム及び仮想債券回収方法
PCT/JP2019/029812 WO2021019683A1 (ja) 2019-07-30 2019-07-30 仮想債券回収装置、仮想債券回収プログラム及び仮想債券回収方法
US17/545,259 US20220101431A1 (en) 2019-07-30 2021-12-08 Virtual-bond collecting device, computer readable medium and virtual-bond collecting method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/029812 WO2021019683A1 (ja) 2019-07-30 2019-07-30 仮想債券回収装置、仮想債券回収プログラム及び仮想債券回収方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/545,259 Continuation US20220101431A1 (en) 2019-07-30 2021-12-08 Virtual-bond collecting device, computer readable medium and virtual-bond collecting method

Publications (1)

Publication Number Publication Date
WO2021019683A1 true WO2021019683A1 (ja) 2021-02-04

Family

ID=72333547

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/029812 WO2021019683A1 (ja) 2019-07-30 2019-07-30 仮想債券回収装置、仮想債券回収プログラム及び仮想債券回収方法

Country Status (5)

Country Link
US (1) US20220101431A1 (ja)
JP (1) JP6752384B1 (ja)
CN (1) CN114144802A (ja)
GB (1) GB2599332A (ja)
WO (1) WO2021019683A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113283957B (zh) * 2021-03-19 2023-04-28 电子科技大学 一种基于区块链的实体产品交易方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6363254B2 (ja) * 1980-03-18 1988-12-06
JPH0131568B2 (ja) * 1980-08-27 1989-06-27 Ferranti Plc
US20130238478A1 (en) * 2012-03-06 2013-09-12 Daniel B. Bruno System and method for providing debt securities denominated in virtual currencies
JP2018045611A (ja) * 2016-09-16 2018-03-22 株式会社ebs 電子マネー充当装置
JP2018060300A (ja) * 2016-10-04 2018-04-12 株式会社野村総合研究所 購買管理システム
US20180285971A1 (en) * 2017-03-31 2018-10-04 International Business Machines Corporation Management of consumer debt collection using a blockchain and machine learning
JP2019049930A (ja) * 2017-09-12 2019-03-28 株式会社日立製作所 収益配分システム、収益配分方法、および、収益配分プログラム
US20190205870A1 (en) * 2017-12-29 2019-07-04 Ebay Inc. Stored value smart contracts on a blockchain

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5877760U (ja) * 1981-11-21 1983-05-26 芦森工業株式会社 シ−トベルトのリトラクタ−
DE69638122D1 (de) * 1996-09-04 2010-03-18 Intertrust Tech Corp Zuverlässige Infrastrukturhilfssysteme, Verfahren und Techniken für sicheren elektronischen Handel, elektronische Transaktionen, Handelsablaufsteuerung und Automatisierung, verteilte Verarbeitung und Rechteverwaltung
JP3659491B2 (ja) * 2001-01-19 2005-06-15 株式会社日立製作所 電子決済仲介方法、電子決済仲介システム、および電子決済仲介プログラム
JP5431568B2 (ja) * 2009-03-20 2014-03-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 微生物培養デバイス及びその動作方法
US20170213287A1 (en) * 2012-03-06 2017-07-27 Daniel B. Bruno System and method for providing a cryptographic platform for exchanging debt securities denominated in virtual currencies
JP6006266B2 (ja) * 2014-07-29 2016-10-12 ケイ・アンド・アイ有限会社 価値情報システム
US10504178B2 (en) * 2015-11-04 2019-12-10 Chicago Mercantile Exchange Inc. System for physically delivering virtual currencies
WO2018175504A1 (en) * 2017-03-20 2018-09-27 Wasserman Steven Victor Blockchain digital currency: systems and methods for use in enterprise blockchain banking
JP6363254B1 (ja) * 2017-05-02 2018-07-25 株式会社 みずほ銀行 支払支援システム及び支払支援方法
JP6431568B1 (ja) * 2017-05-30 2018-11-28 高崎 将紘 給与管理装置、方法、及びコンピュータプログラム
WO2020053985A1 (ja) * 2018-09-12 2020-03-19 中国電力株式会社 電力取引システム、電力取引方法、プログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6363254B2 (ja) * 1980-03-18 1988-12-06
JPH0131568B2 (ja) * 1980-08-27 1989-06-27 Ferranti Plc
US20130238478A1 (en) * 2012-03-06 2013-09-12 Daniel B. Bruno System and method for providing debt securities denominated in virtual currencies
JP2018045611A (ja) * 2016-09-16 2018-03-22 株式会社ebs 電子マネー充当装置
JP2018060300A (ja) * 2016-10-04 2018-04-12 株式会社野村総合研究所 購買管理システム
US20180285971A1 (en) * 2017-03-31 2018-10-04 International Business Machines Corporation Management of consumer debt collection using a blockchain and machine learning
JP2019049930A (ja) * 2017-09-12 2019-03-28 株式会社日立製作所 収益配分システム、収益配分方法、および、収益配分プログラム
US20190205870A1 (en) * 2017-12-29 2019-07-04 Ebay Inc. Stored value smart contracts on a blockchain

Also Published As

Publication number Publication date
US20220101431A1 (en) 2022-03-31
GB2599332A (en) 2022-03-30
JP6752384B1 (ja) 2020-09-09
CN114144802A (zh) 2022-03-04
JPWO2021019683A1 (ja) 2021-09-13

Similar Documents

Publication Publication Date Title
JP7149368B2 (ja) デジタル暗号化された証券プラットフォーム、ならびに、そのための方法およびシステム
JP7276495B2 (ja) 制御方法、制御プログラム、情報処理装置および制御システム
JP6852025B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP4414572B2 (ja) 有価証券取引システム及び取引方法
JP2023067685A (ja) 取引システム、取引方法及びプログラム
JP7042637B2 (ja) プログラム、情報処理装置、情報処理方法及び仮想通貨取引システム
JP6752384B1 (ja) 仮想債券回収装置、仮想債券回収プログラム及び仮想債券回収方法
US20100125518A1 (en) System and method for facilitating exchange of credit default swaps
KR20200081895A (ko) 암호화폐 거래시 에스크로 서비스 방법 및 에스크로 시스템
JP2023184726A (ja) サーバ
JP2002092328A (ja) 株式売買システム及び株式売買方法
JP6498643B2 (ja) 異種通貨交換装置
JP2004334276A (ja) 担保株式売買システム及びその方法
JP7061992B2 (ja) 資産運用システムおよびプログラム
JP2005085133A (ja) 貸借取引システム、コンピュータプログラム、および方法
CN112116445A (zh) 信息处理方法、信息处理装置以及程序
JP4048915B2 (ja) 証券売買システム及びその方法
JP6960493B2 (ja) 資金調達支援装置、資金調達支援方法、および資金調達支援プログラム
JP2019144781A (ja) 仮想通貨の取引方法及び仮想通貨取引システム
JP6774066B2 (ja) 金融商品取引管理装置、プログラム
JP7379570B2 (ja) サービス提供装置、サービス提供方法、プログラム、および電子決済システム
JP2001312605A (ja) 商品投資システム、商品投資処理装置、商品投資方法及び記録媒体
JP2004145486A (ja) 証券担保金融システム及びその融資方法
JP7503430B2 (ja) サーバ
WO2023190747A1 (ja) 情報処理装置、情報処理方法、及びプログラム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2019571076

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 19939525

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 202200512

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20190730

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19939525

Country of ref document: EP

Kind code of ref document: A1