Exchange rate identification system, exchange rate identification method, settlement system, and settlement method
The exchange rate identification system addresses calculation errors by using a payment gateway and multiple oracle machines to verify and determine a reliable exchange rate, ensuring accurate payment amounts despite potential machine failures.
Patent Information
- Application Number
- JP2025175333
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-10-17
- Publication Date
- 2026-05-13
- Estimated Expiration
- 2045-10-17
AI Technical Summary
Existing settlement systems, such as those described in Patent Document 1, do not adequately address the issue of calculation errors in payment amounts due to failures of single oracle machines, which can lead to inaccuracies in exchange rate determination.
An exchange rate identification system utilizing a payment gateway, multiple oracle machines, and a contract to generate and verify exchange rate data, ensuring reliability through consensus among multiple machines and data source verification.
The system effectively suppresses calculation errors by identifying a reliable exchange rate based on data from multiple oracle machines, enhancing accuracy and reliability in payment transactions.
Smart Images

Figure 0007857640000001_ABST
Abstract
Description
Technical Field
[0004] ,
[0006] , , , , ,
[0005] , , , , ,
[0001] The present invention relates to an exchange rate specifying system, an exchange rate specifying method, a settlement system, and a settlement method.
Background Art
[0002] Patent Document 1 discloses a settlement system that integrates cryptocurrency and fiat currency.
Prior Art Document
Patent Document
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In the settlement system described in such Patent Document 1, although there is no specific mention of obtaining an exchange rate, generally, it is conceivable to obtain it from a single oracle machine. However, a calculation error in the payment amount may occur due to a failure of a single oracle machine or the like.
[0005] Therefore, the present invention has been made paying attention to this problem, and an object thereof is to provide an exchange rate specifying system, an exchange rate specifying method, a settlement system, and a settlement method capable of suppressing a calculation error in the payment amount due to a failure of a single oracle machine or the like.
Means for Solving the Problems
[0006] According to one aspect of the present invention, an exchange rate identification system is provided comprising a payment gateway, a plurality of oracle machines, and a contract, wherein the payment gateway transmits a request to the plurality of oracle machines, each oracle machine generates a response packet containing exchange rate data based on the request and transmits it to the payment gateway, the payment gateway invokes the contract based on the received response packet, and the contract identifies a reliable exchange rate based on the exchange rate data of the plurality of oracle machines.
[0007] According to another aspect of the present invention, a settlement system is provided comprising a payment gateway, a plurality of oracle machines, a contract, and a currency payment execution unit, wherein the payment gateway transmits a request to the plurality of oracle machines, each oracle machine generates a response packet containing exchange rate data based on the request and transmits it to the payment gateway, the payment gateway invokes the contract based on the received response packet, the contract identifies a reliable exchange rate based on the exchange rate data of the plurality of oracle machines and transmits it to the currency payment execution unit, and the currency payment execution unit executes the user's payment using the received reliable exchange rate.
[0008] Another aspect of the present invention provides an exchange rate identification method comprising: a payment gateway sending a request to a plurality of oracle machines; each of the oracle machines generating a response packet containing exchange rate data based on the request and sending it to the payment gateway; the payment gateway invoking a contract based on the received response packets; and the contract identifying a reliable exchange rate based on the exchange rate data from the plurality of oracle machines.
[0009] According to another aspect of the present invention, a settlement method is provided which includes: a payment gateway sending a request to a plurality of oracle machines; each of the oracle machines generating a response packet containing exchange rate data based on the request and sending it to the payment gateway; the payment gateway calling a contract based on the received response packet; the contract identifying a reliable exchange rate based on the exchange rate data of the plurality of oracle machines and sending it to a currency payment execution unit; and the currency payment execution unit executing a payment to the user using the received reliable exchange rate. [Effects of the Invention]
[0010] These embodiments can help suppress calculation errors in payment amounts due to malfunctions of some oracle machines, etc. [Brief explanation of the drawing]
[0011] [Figure 1] Figure 1 is a block diagram showing the configuration of the payment system according to this embodiment. [Figure 2] Figure 2 shows a sequence of processes performed by the payment system according to this embodiment. [Modes for carrying out the invention]
[0012] Hereinafter, embodiments of the present invention (hereinafter referred to as "these embodiments") will be described with reference to the attached drawings. Throughout this specification, the same elements will be denoted by the same reference numerals.
[0013] (Payment system) First, the payment system 100 according to this embodiment will be described with reference to Figure 1.
[0014] Figure 1 is a block diagram showing the configuration of the payment system 100 according to this embodiment.
[0015] As shown in Figure 1, the payment system 100 according to this embodiment includes a payment gateway 1, Cloudflare (Cloudflare WAF (Web Application Firewall)) 2, rate regulation device 3, Nonce server 4, oracle machine 5, data source server 6, blockchain network 7, contract 8, and currency payment execution unit 9. The payment gateway 1, Cloudflare 2, rate regulation device 3, Nonce server 4, oracle machine 5, data source server 6, blockchain network 7 (contract 8), and currency payment execution unit 9 are connected to each other via network N, enabling communication between them.
[0016] In this embodiment, the payment gateway 1, Cloudflare 2, rate regulation device 3, Nonce server 4, oracle machine 5, data source server 6, blockchain network 7, and contract 8 constitute the exchange rate identification system 10. The oracle machine 5 is operated on an SGX (Software Guard Extensions) Enclave. The data source server 6 stores data sources containing exchange rate data. The contract 8 is created by a human or AI and is operated on the blockchain network 7.
[0017] (Payment methods) Next, the payment method (processing) by the payment system 100 will be explained in detail with reference to Figure 2.
[0018] Figure 2 shows a sequence of processes performed by the payment system 100 according to this embodiment.
[0019] As shown in FIG. 2, first, in step S101, the payment gateway 1 generates a request, sends the generated request to Cloudflare 2, and proceeds to step S102. Here, the request includes HMAC (Hash-based Message Authentication Code).
[0020] In step S102, Cloudflare 2 receives the request sent from the payment gateway 1, filters it, and sends the filtered request to the rate limiting device 3, and proceeds to step S103.
[0021] In step S103, the rate limiting device 3 counts the number of requests (specifically, the filtered requests) within a predetermined time (for example, 1 s), and determines whether the number of requests within the predetermined time has reached a predetermined number (for example, 10 times). And when the number of requests within the predetermined time has not reached the predetermined number (in the case of No), it proceeds to step S104. On the other hand, when the number of requests within the predetermined time has reached the predetermined number (in the case of Yes), it returns to step S101. Thereby, since it is possible to suppress excessive requests from being sent from the payment gateway 1, the anti-DDoS property can be enhanced.
[0022] In step S104, the rate limiting device 3 sends the filtered request to the Nonce server 4 and proceeds to step S105.
[0023] In step S105, the Nonce server 4 verifies the uniqueness of the received filtered request. Thereby, duplicate attacks can be suppressed. And when the Nonce server 4 verifies the uniqueness of the request, it proceeds to step S106.
[0024] In step S106, Nonce server 4 uses the API (Application Programming Interface) private key (i.e., a part of the share key) stored in AWS (Amazon Web Services) KMS (Key Management Service) HSM (Hardware Security Module) to API sign the request, sends the API-signed request to Oracle machine 5, and proceeds to step S107. Here, the API private key is automatically updated at a first predetermined period (e.g., every hour).
[0025] In step S107, Oracle machine 5 uses the TLS (Transport Layer Security) private key (i.e., the shared key of the other party) stored in the SGX Enclave to TLS sign the received API signed request, verifies the HMAC based on the API signature and the TLS signed request, and proceeds to step S108. This allows Oracle machine 5 to identify that payment gateway 1, which sent the request, is a legitimate payment gateway, thus preventing attacks on Oracle machine 5. Here, the TLS private key is automatically renewed at a second predetermined interval (e.g., every season).
[0026] In step S108, Oracle Machine 5 verifies the uniqueness of the request. This helps to deter duplicate attacks. If Oracle Machine 5 has verified the uniqueness of the request, it proceeds to step S109.
[0027] In step S109, the oracle machine 5 sends a command to the data source server 6 to request exchange rate data, and proceeds to step S110.
[0028] In step S110, the data source server 6 selects exchange rate data from the data source based on the received command and sends it to the oracle machine 5, then proceeds to step S111.
[0029] In step S111, the oracle machine 5 signs the received exchange rate data using a private key (specifically, an ECDSA (Elliptic Curve Digital Signature Algorithm) private key) stored in network-incompatible hardware (specifically, a Ledger HSM), generates a response packet based on the signed (specifically, ECDSA-signed) exchange rate data and sends it to the payment gateway 1, then proceeds to step S112.
[0030] In step S112, payment gateway 1 invokes contract 8 based on the received response packet and proceeds to step S113.
[0031] In step S113, contract 8 verifies whether the address of the signed exchange rate data exists in a predetermined address list stored in contract 8. This verifies the legitimacy of the data source and thus deters tampering with the exchange rate data. If contract 8 verifies that the address of the signed exchange rate data exists in the predetermined address list, it proceeds to step S114.
[0032] In step S114, contract 8 identifies a reliable exchange rate based on exchange rate data from multiple (e.g., five) oracle machines 5 and transmits it to the currency payment execution unit 9, then proceeds to step S115. This ensures that even if some of the multiple oracle machines 5 fail, a reliable exchange rate can be identified as long as the other oracle machines 5 are functioning correctly, thereby reducing the likelihood of calculation errors in payment amounts due to failures of some of the oracle machines 5.
[0033] Specifically, in step S114, contract 8, upon verifying that the address of the signed exchange rate data exists in a predetermined address list, identifies the median value among the exchange rate data of multiple oracle machines 5 (specifically, the non-faulting oracle machines 5) as the reliable exchange rate. This allows for the removal of noise (i.e., outliers) and improves the reliability of the exchange rate required for payment calculations.
[0034] On the other hand, in step S114, if contract 8 verifies that the address of the signed exchange rate data exists in a predetermined address list, and if exchange rate data does not exist for all oracle machines 5 (i.e., if all of the oracle machines 5 have failed), contract 8 identifies the historical exchange rate cached in contract 8 (for example, the previously identified reliable exchange rate) as the reliable exchange rate. This makes it possible to identify a reliable exchange rate even if all of the oracle machines 5 have failed, thereby suppressing calculation errors in payment amounts due to the failure of all oracle machines 5, etc.
[0035] In step S115, the currency payment execution unit 9 uses the received reliable exchange rate to execute the user's payment and terminates the process.
[0036] (Effects and Benefits) Next, the effects and benefits of the above-described embodiment will be explained.
[0037] The exchange rate identification system 10 according to the above embodiment comprises a payment gateway 1, a plurality of oracle machines 5, and a contract 8. The payment gateway 1 sends a request to the plurality of oracle machines 5, each oracle machine 5 generates a response packet containing exchange rate data based on the request and sends it to the payment gateway 1, the payment gateway 1 calls the contract 8 based on the received response packet, and the contract 8 identifies a reliable exchange rate based on the exchange rate data from the plurality of oracle machines.
[0038] Furthermore, the payment system 100 according to the above embodiment comprises a payment gateway 1, a plurality of oracle machines 5, a contract 8, and a currency payment execution unit 9. The payment gateway 1 sends a request to the plurality of oracle machines 5, each oracle machine 5 generates a response packet containing exchange rate data based on the request and sends it to the payment gateway 1, the payment gateway 1 calls the contract 8 based on the received response packet, the contract 8 identifies a reliable exchange rate based on the exchange rate data of the plurality of oracle machines and sends it to the currency payment execution unit 9, and the currency payment execution unit 9 executes the user's payment using the received reliable exchange rate.
[0039] Furthermore, the method for determining the exchange rate according to the embodiment described above includes: the payment gateway 1 sending a request to a plurality of oracle machines 5; each oracle machine 5 generating a response packet containing exchange rate data based on the request and sending it to the payment gateway 1; the payment gateway 1 calling a contract 8 based on the received response packets; and the contract 8 determining a reliable exchange rate based on the exchange rate data from the plurality of oracle machines 5.
[0040] Furthermore, the payment method according to the above embodiment includes: the payment gateway 1 sending a request to a plurality of oracle machines 5; each oracle machine 5 generating a response packet containing exchange rate data based on the request and sending it to the payment gateway 1; the payment gateway 1 calling a contract 8 based on the received response packet; the contract 8 identifying a reliable exchange rate based on the exchange rate data from the plurality of oracle machines 5 and sending it to the currency payment execution unit 9; and the currency payment execution unit 9 executing the user's payment using the received reliable exchange rate.
[0041] With these configurations, even if some of the multiple oracle machines 5 fail, as long as the other parts of the multiple oracle machines 5 do not fail, a reliable exchange rate can be identified, thereby suppressing calculation errors in payment amounts due to the failure of some of the oracle machines 5.
[0042] Furthermore, in the embodiment described above, contract 8 identifies the median value among the exchange rate data of multiple oracle machines 5 as the reliable exchange rate.
[0043] This configuration allows for the removal of noise (i.e., outliers) and improves the reliability of the exchange rates needed for payment calculations.
[0044] Furthermore, in the embodiment described above, if all of the oracle machines 5 fail, contract 8 identifies the cached historical exchange rate as a reliable exchange rate.
[0045] This configuration allows for the identification of a reliable exchange rate even if all of the Oracle Machine 5s fail, thereby reducing calculation errors in payment amounts due to the failure of all Oracle Machine 5s.
[0046] Furthermore, in the above-described embodiment, each oracle machine 5 obtains exchange rate data from a trusted data source based on a request, signs the obtained exchange rate data using a secret key stored in hardware that cannot communicate with the network, generates a response packet and sends it to the payment gateway 1, the payment gateway 1 invokes contract 8 based on the received response packet, contract 8 verifies whether the address of the signed exchange rate data exists in a predetermined address list, and if it verifies that the address of the signed exchange rate data exists in the predetermined address list, it identifies a trusted exchange rate based on the exchange rate data of the multiple oracle machines 5.
[0047] This configuration allows for verification of the legality of data sources, thereby deterring manipulation of exchange rate data. As a result, the reliability of reliable exchange rates can be further enhanced.
[0048] Furthermore, in the embodiment described above, the exchange rate identification system 10 further comprises a rate regulation device 3, which counts the number of requests within a predetermined time based on the received requests, and sends the requests to multiple oracle machines 5 if the number of requests is less than or equal to a predetermined number.
[0049] This configuration can suppress excessive requests from being sent from payment gateway 1, thereby improving DDoS resistance.
[0050] Although this embodiment has been described above, the above-described embodiment only illustrates a part of the application of the present invention, and is not intended to limit the technical scope of the present invention to the specific configurations of the above-described embodiment. [Explanation of Symbols]
[0051] 1. Payment Gateway 5 Oracle Machines 8 Contracts 10. Exchange Rate Identification System 100 Payment Systems
Claims
1. A settlement system comprising a payment gateway, a plurality of oracle machines, a blockchain network having contracts, and a currency payment execution unit, The payment gateway sends the request to multiple oracle machines, Each oracle machine, based on the request, generates a response packet containing exchange rate data and sends it to the payment gateway. The payment gateway invokes the contract based on the received response packet. The contract identifies the median value among the exchange rate data from multiple non-faulting oracle machines as the reliable exchange rate and transmits it to the currency payment execution unit. The currency payment execution unit executes the user's payment using the received reliable exchange rate. Payment system.
2. Equipped with further rate regulation equipment, The rate regulating device counts the number of requests within a predetermined time period based on the received requests, and if the number of requests is less than or equal to a predetermined number, it sends the requests to multiple oracle machines. The payment system according to claim 1.
3. A settlement method to be performed in a settlement system comprising a payment gateway, a plurality of oracle machines, a blockchain network having contracts, and a currency payment execution unit, The payment gateway sends requests to multiple oracle machines, Each of the oracle machines generates a response packet containing exchange rate data based on the request and sends it to the payment gateway. The payment gateway invokes a contract based on the response packet it receives, The contract identifies the median value among the exchange rate data of multiple oracle machines that are not malfunctioning as a reliable exchange rate and transmits it to the currency payment execution unit. The currency payment execution unit executes the user's payment using a reliable exchange rate received by the currency payment execution unit, Payment methods.