Method and system for applying sanctions on blockchain

By integrating geographic key assignment and smart contracts, the system addresses the challenge of unauthorized blockchain transactions, ensuring compliance with sanctions while preserving anonymity.

JP2025535689APending Publication Date: 2025-10-28MASTERCARD INT INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2025518561
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2022-09-30
Filing Date
2023-09-25
Publication Date
2025-10-28

AI Technical Summary

Technical Problem

The decentralized and anonymous nature of blockchains poses challenges in preventing unauthorized transactions, particularly in enforcing geographically based sanctions, as traditional methods rely on identifying physical locations which are not applicable to blockchain participants.

Method used

Participants provide geographic location information during onboarding, assigning geographic keys, and using smart contracts to validate transactions, ensuring compliance with sanctions by matching or rejecting transactions based on geographic keys.

Benefits of technology

Prevents geographically unauthorized transactions while maintaining blockchain anonymity, effectively enforcing sanctions without sacrificing the benefits of cryptocurrency transfers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025535689000001_ABST
    Figure 2025535689000001_ABST
Patent Text Reader

Abstract

A method and system for preventing geographically unauthorized blockchain transactions is described. Blockchain participants provide information identifying their associated geographic location during the onboarding process, and a geographic key is assigned to the participant based on the geographic location. When a newly proposed blockchain transaction is submitted, the geographic key associated with the participant is identified. If the geographic key matches, the transaction is approved and proceeds with standard blockchain endorsement processing. If the geographic key does not match, a check is performed to determine whether the transaction can proceed using a smart contract, which determines whether there are any sanctions or other restrictions that prevent transactions from occurring between participants in their associated geographic locations.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to mitigating geographically unauthorized blockchain transactions, such as applying issued sanctions to blockchain transactions.

[0002] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of Indian Patent Application No. 202241056456 filed on September 30, 2022, the entire contents of which are incorporated by reference for all purposes. [Background technology]

[0003] Blockchains were originally created as a way to provide cryptocurrencies that could be transferred between participants in a decentralized manner while still providing anonymity to the participants. Although all transactions, including source and destination addresses, are recorded on the blockchain, there is no requirement that information linking any address to a specific user be stored or made available on the blockchain, nor is there any requirement to provide any further information about the user. This makes using blockchains for transactions an attractive advantage, combined with their ease of implementation, has led to the creation of hundreds of different cryptocurrencies, each managed on its own blockchain.

[0004] However, the decentralized and anonymous nature of blockchains also poses significant challenges in preventing unauthorized transactions. For example, one or more national governments may wish to impose sanctions on other countries, which may include preventing payment transactions involving participants from other countries. For traditional electronic payment transactions, such as those using credit or debit cards, such sanctions can be easily implemented because the physical locations of both participants can be identified when processing the transaction. However, because blockchain participants are typically anonymous and no information about them is available beyond the data related to their respective blockchain wallets, there is currently no technical way to impose sanctions on blockchain transactions.

[0005] Therefore, there is a need to bring about technological improvements in blockchain and blockchain transaction processing that can prevent geographically unauthorized transactions. Summary of the Invention

[0006] This disclosure provides a description of a system and method for preventing geographically unauthorized blockchain transactions. Blockchain participants provide information identifying their associated geographic locations during the onboarding process. During the participant onboarding process, participants are assigned geographic keys based on their identified geographic locations. When a newly proposed blockchain transaction is submitted, geographic keys associated with the sending and receiving participants are identified. If the geographic keys match, indicating that the participants are associated with the same geographic location, the transaction is approved and passed through standard blockchain approval processing. If the geographic keys do not match, indicating that the participants are in different geographic locations, a check is performed using a smart contract to determine whether the transaction can proceed without violating sanctions. The check is used to determine whether there are any sanctions or other restrictions that prevent transactions from occurring between participants in the associated geographic locations. In some embodiments, each geographic location can be associated with a different blockchain, and in some cases, a core blockchain can be utilized to store the geographic keys and other data for all individual blockchains.

[0007] A method for preventing geographically unauthorized blockchain transactions includes: receiving, by a receiver of a processing server, transaction data for a proposed blockchain transaction from an external computing system, the transaction data including at least a source address and a destination address; identifying, by a processor of the processing server, a source geographic key associated with a first geographic location based at least on the source address and a destination geographic key associated with a second geographic location based at least on the destination address; determining, by the processor of the processing server, whether the source geographic key is equal to the destination geographic key; and if the processor determines that the source geographic key is equal to the destination geographic key, initiating, by the processor of the processing server, a new blockchain transaction on a first blockchain associated with the source geographic key based at least on the transaction data; If the processor determines that the source geographic key is not equal to the destination geographic key, executing, by the processor of the processing server, a smart contract using at least the source geographic key and the destination geographic key as input, wherein the smart contract outputs a validation for the proposed blockchain transaction; if the validation for the proposed blockchain transaction is a negative validation, sending, by a transmitter of the processing server, a rejection message for the proposed blockchain transaction to the external computing system; if the validation for the proposed blockchain transaction is a positive validation, initiating, by the processor of the processing server, a first blockchain transaction on the first blockchain associated with the source geographic key based at least on the transaction data;and initiating a second blockchain transaction on a second blockchain associated with the destination geographic key based at least on the transaction data.

[0008] A system for preventing geographically unauthorized blockchain transactions includes: an external computing system; a processing server; a receiver that receives transaction data for a proposed blockchain transaction from the external computing system, the transaction data including at least a source address and a destination address; a processor that performs the steps of identifying a source geographic key associated with a first geographic location based at least on the source address and a destination geographic key associated with a second geographic location based at least on the destination address, and determining whether the source geographic key is equal to the destination geographic key; and a transmitter that, if the processor of the processing server determines that the source geographic key is equal to the destination geographic key, transmits, by the processor of the processing server, a geographic key associated with the source geographic key based at least on the transaction data. and if the processor determines that the source geographic key is not equal to the destination geographic key, the processor of the processing server executes a smart contract using at least the source geographic key and the destination geographic key as input, wherein the smart contract outputs a validation for the proposed blockchain transaction, and if the validation for the proposed blockchain transaction is a negative validation, the transmitter of the processing server sends a rejection message for the proposed blockchain transaction to the external computing system, and if the validation for the proposed blockchain transaction is a positive validation, the processor of the processing server initiates a first blockchain transaction on the first blockchain associated with the source geographic key based on at least the transaction data; andThe processor of the processing server initiates a second blockchain transaction on a second blockchain associated with the destination geographic key based on at least the transaction data. [Brief explanation of the drawings]

[0009] The scope of the present disclosure is best understood from the following detailed description of exemplary embodiments when taken in conjunction with the accompanying drawings, in which:

[0010] [Figure 1] FIG. 1 is a block diagram illustrating a high-level system architecture for preventing geographically unauthorized blockchain transactions, according to an example embodiment. [Figure 2] FIG. 2 is a block diagram illustrating a processing server in the system of FIG. 1 that prevents geographically unauthorized blockchain transactions, according to an example embodiment. [Figure 3] 3 is a flow diagram illustrating a process performed by the processing server of FIG. 2 to prevent geographically unauthorized blockchain transactions, according to an example embodiment. [Figure 4] 1 is a flow diagram illustrating an example method for preventing geographically unauthorized blockchain transactions, according to an example embodiment. [Figure 5] FIG. 1 is a block diagram illustrating a computer system architecture, according to an exemplary embodiment.

[0011] Further areas of applicability of the present disclosure will become apparent from the following detailed description. The detailed description of exemplary embodiments is intended for purposes of illustration only and is not intended to necessarily limit the scope of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0012] A system to prevent geographically unauthorized blockchain transactions FIG. 1 illustrates a system 100 for preventing geographically unauthorized blockchain transactions through the use of geographic keys.

[0013] System 100 may include a processing server 102. Processing server 102 may be configured to participate in the processing of proposed blockchain transactions to prevent unauthorized transactions between participants in different geographic locations, as described in more detail below. System 100 may also include a sender device 104 and a recipient device 106, each of which may have a blockchain wallet stored thereon or associated therewith, as described below. Sender device 104 and recipient device 106 may be any type of computing device suitable for performing the described functions, such as a desktop computer, a laptop computer, a notebook computer, a tablet computer, a mobile phone, a smartphone, a smart watch, a smart television, a wearable computing device, an embeddable computing device, etc.

[0014] A sender device 104 can be located in a first geographic location 108a. The sender device 104 can participate in a blockchain transaction, a recipient device 106a can be located in the same first geographic location 108a, and a recipient device 106b can be located in a second geographic location 108b. A geographic location 108 can be a country, a state, a province, or any other geographically distinct area.

[0015] The system 100 may also include a blockchain network 110. In some cases, each geographic location 108 may have its own blockchain network 110 associated with it, such as blockchain networks 110a and 110b shown in FIG. 1. The blockchain network 110 may include multiple blockchain nodes 112. Each blockchain node 112 may be a computing system, as shown in FIG. 5 and described in more detail below, configured to perform functions related to blockchain processing and management, which may include, for example, generating blockchain data values, verifying proposed blockchain transactions, verifying digital signatures, generating new blocks, validating new blocks, and maintaining copies of the blockchain.

[0016] A blockchain may be a distributed ledger comprising at least a plurality of blocks. Each block may include at least a block header and one or more data values. Each block header may include at least a timestamp, a block reference value, and a data reference value. The timestamp may be the time when the block header was generated and may be represented using any suitable method (e.g., a UNIX timestamp, DateTime notation, etc.). The block reference value may be a value that references a preceding block in the blockchain (e.g., based on the timestamp). In some embodiments, the block reference value in the block header may be a reference to the block header of the most recently added block preceding the respective block. In an exemplary embodiment, the block reference value may be a hash value generated by hashing the block header of the most recently added block. Similarly, the data reference value may be a reference to one or more data values ​​stored in the block containing the block header. In an exemplary embodiment, the data reference value may be a hash value generated by hashing one or more data values. For example, the block reference value may be the root of a Merkle tree generated using one or more data values.

[0017] The use of a block reference value and a data reference value in each block header results in immutability for the blockchain. Any attempted change to the data value requires the generation of a new data reference value for that block, which in turn requires the generation of a new block reference value for the subsequent block, which in turn requires the generation of a new block reference value for each subsequent block. For the change to be permanent, this must be performed and updated for every single blockchain node 112 in the blockchain network 110 before a new block is created and added to the blockchain. Computational and communication limitations can make such changes extremely difficult, if not impossible, and thus the blockchain achieves immutability.

[0018] In some embodiments, a blockchain can be used to store information about blockchain transactions made between two different blockchain wallets. A blockchain wallet can contain a private key of a cryptographic key pair, which can be used to generate a digital signature that can serve as the payer's authorization for the blockchain transaction, and which can be verified by the blockchain network 110 using the public key of the cryptographic key pair. In some cases, the term "blockchain wallet" can specifically refer to a private key. In other cases, the term "blockchain wallet" can refer to a computing device (e.g., sender device 104, recipient device 106, etc.) that stores a private key for use in blockchain transactions. For example, each computing device can have its own private key for each cryptographic key pair and can be a blockchain wallet for use in transactions with a blockchain associated with the blockchain network. The computing device can be any type of device suitable for storing and utilizing a blockchain wallet, such as a desktop computer, laptop computer, notebook computer, tablet computer, mobile phone, smartphone, smartwatch, smart TV, wearable computing device, embedded computing device, etc.

[0019] Each blockchain data value stored in the blockchain may correspond to a blockchain transaction or other data storage, as appropriate. A blockchain transaction may include at least the following: a digital signature of the sender (e.g., sender device 104) of the currency generated using the sender's private key, a blockchain address of the recipient (e.g., recipient device 106) of the currency generated using the recipient's public key, and the amount of blockchain currency to be transferred or other data to be stored. In some blockchain transactions, the transaction may also include the following: one or more blockchain addresses of the sender where the blockchain currency is currently stored (e.g., if a digital signature demonstrates access to such currency); and an address for any changes held by the sender, generated using the sender's public key. Addresses to which cryptocurrency that can be used in future transactions is sent are called "output" addresses because they were previously used to capture the output of a previous blockchain transaction, and are also called "unspent transactions" because there is currency sent to the address in a previous transaction where that currency has not yet been spent. In some cases, a blockchain transaction may also include a sender public key for use by an entity in validating the transaction. For traditional processing of a blockchain transaction, such data may be provided by either the sender or the recipient to a blockchain node 112 in the blockchain network 110. The node can verify the digital signature using the public key in the sender's wallet cryptographic key pair and verify access to the sender's funds (e.g., if the unspent transaction has not yet been spent and was sent to an address associated with the sender's wallet), a process known as "confirming" the transaction, and the node then includes the blockchain transaction in a new block.In a traditional blockchain implementation, new blocks may be validated by other blockchain nodes 112 in the blockchain network 110 before being added to the blockchain and distributed to all blockchain nodes 112 in the blockchain network 110. If the blockchain data value does not relate to a blockchain transaction but instead relates to the storage of other types of data, the blockchain data value may still include or involve digital signature validation.

[0020] In the system 100, each geographic location 108 can have a blockchain network 110 associated with it. Each blockchain associated with a geographic location 108 can store transaction data for transactions involving participants associated with the geographic location 108. During the onboarding process, the sender device 104 can register with the blockchain network 110a via the blockchain node 112a or the processing server 102 and open a blockchain wallet for participating in blockchain transactions on the blockchain associated with the blockchain network 110a. In some cases, the sender device 104 may be required to provide information demonstrating its association with the geographic location 108a. Such information may include, for example, proof of a mailing address located within the geographic location 108a, which may be verified through identification, bank statements, utility bills, or other means, such as server location, internet traffic, database research, web-based identification tools, other registration data, know-your-customer (KYC) technologies and services, etc. In some cases, the blockchain node 112a or processing server 102 may authenticate the provided information using appropriate methods and systems.

[0021] As part of the onboarding process, a geographic key can be assigned to the sender device 104. The geographic key can be a unique identification value associated with the geographic location 108a, such as an identification number, a digital token, etc. The geographic key assigned to the sender device 104 can be the same geographic key assigned to any blockchain wallets associated with the geographic location 108a, or it can be a different geographic key that includes a value common to all keys assigned to the blockchain wallets associated with the geographic location 108a. The blockchain node 112a or the processing server 102 can optionally store a new blockchain data value on the blockchain associated with the geographic location 108a, including the geographic key and data associated with the sender device's 104's blockchain wallet, such as the sender device's blockchain wallet's public key.

[0022] After the sender device 104 completes the onboarding process, the sender device 104 can participate in blockchain transactions with other devices onboarded to the blockchain network 110. The sender device 104 can obtain from the recipient device 106 a destination address generated using the public key of the recipient device's blockchain wallet. The sender device 104 can identify one or more unspent addresses from which the sender device's blockchain wallet has received an adequate amount of cryptocurrency to fulfill the transaction, and can generate digital signatures for the unspent transaction addresses using the sender device's private key.

[0023] The proposed blockchain transaction can be transmitted electronically to the processing server 102 via an appropriate communication network and method, either directly from the sender device 104 or the recipient device 106, or through one or more intermediary systems, such as, for example, a blockchain node 112. The processing server 102 can receive the proposed blockchain transaction and use data included in the proposed blockchain transaction (e.g., a destination address, an unspent transaction address, or a public key) to identify a geographic key associated with each device participating in the proposed blockchain transaction. The processing server 102 can identify the geographic keys and determine whether the geographic keys are the same or contain a common identifying value. If the geographic keys match, the sender device 104 and the recipient device 106 are determined to be located in the same geographic location 108a. The proposed blockchain transaction can then be transmitted to a blockchain node 112a in the blockchain network 110a associated with the geographic location 108a.

[0024] If the processing server 102 determines that the geographic keys do not match, the processing server 102 determines that the sender device 104 and the recipient device 106 are located in different geographic locations 108. The processing server 102 can then enter the geographic key into a smart contract stored on a blockchain. The smart contract can be stored on a blockchain associated with the geographic location 108a of the sender device 104, on a blockchain associated with the geographic location 108b of the recipient device 106b, or on a core blockchain. The core blockchain can be associated with a blockchain network 110 that includes blockchain nodes 112 of all participating blockchain networks 110a, 110b, etc. As described below, the core blockchain can be used to store data related to the geographic keys, smart contracts, and approvals of the proposed blockchain transaction.

[0025] The processing server 102 can execute a smart contract using the geographic key as input. A smart contract can be a self-executing program stored on a blockchain that accepts input, performs one or more functions utilizing the input, and outputs one or more values ​​as a result of the performed functions. In the system 100, the smart contract accepts the geographic key as input and performs a validation process to determine whether a blockchain transaction between two associated geographic locations 108a and 108b is authorized. The determination can be based on sanctions or regulations, such as may be received from one or more regulatory authorities 114, such as the federal government or their affiliates, or participants in the blockchain network 110. For example, a government agency associated with geographic location 108a can impose sanctions on all transactions involving geographic location 108b. In such a case, the smart contract can be configured to output a negative validation if geographic keys associated with both geographic location 108a and geographic location 108b are provided. If no constraints are imposed on transactions between geographic locations 108a and 108b, the smart contract may output a positive validation.

[0026] The processing server 102 can execute a smart contract using the geographic key as input and receive a validation result therefrom. If the validation is negative (indicating the blockchain transaction is not approved), the processing server 102 can reject the proposed blockchain transaction. In such a case, the processing server 102 can indicate to the sender device 104 or the recipient device 106, either directly or through one or more intermediary systems (e.g., blockchain node 112), that the transaction has been rejected, and in some cases may include an indication that the transaction was rejected due to one or more constraints. If the validation is positive, the processing server 102 can begin processing the blockchain transaction. The processing server 102 can electronically transmit the proposed blockchain transaction to blockchain nodes 112a and 112b associated with the blockchains of the geographic locations 108a and 108b. The blockchain nodes 112a and 112b can then perform conventional processing to determine whether the blockchain transaction is approved and, if so, add the blockchain transaction to the blockchain using conventional methods.

[0027] In some cases, a blockchain transaction stored on a blockchain associated with a geographic location 108 may include only data related to the blockchain wallet associated with that geographic location 108. For example, in the example above, the blockchain associated with geographic location 108a may store a blockchain transaction indicating the sending of cryptocurrency from a blockchain wallet of a sender device out of the blockchain (e.g., using a provided unspent transaction output), while the blockchain associated with geographic location 108b may store a blockchain transaction indicating the receipt of cryptocurrency from outside the blockchain to a destination address of a recipient device. In some embodiments, the complete blockchain transaction or other data associated with the blockchain transaction may be stored in a core blockchain. In some cases, the core blockchain may be used to store all blockchain transaction data, while the local blockchain associated with each geographic location 108 may be used to store geographic keys for the blockchain wallet associated with each geographic location 108.

[0028] In some embodiments, the smart contract can be configured to initiate processing of the blockchain transaction if a positive validation result is determined. For example, the smart contract can be configured to determine a validation result for approval of the proposed blockchain transaction, and if a positive authorization is determined, the smart contract electronically transmits the relevant transaction data to blockchain nodes 112a and 112b, as identified using the provided geographic key.

[0029] The described methods and systems provide for the prevention of geographically unauthorized blockchain transactions. By associating the sender device 104 and recipient device 106 with a geographic location 108 during onboarding, blockchain transactions across multiple geographic locations 108 that are restricted due to sanctions or the like can be prevented. In certain exemplary embodiments, no data is maintained about any of the participants, thereby maintaining the anonymity of blockchain wallets while preventing unauthorized transactions. As a result, the described methods and systems offer significant improvements over traditional blockchains, and do so without sacrificing the benefits of using blockchains for cryptocurrency transfers.

[0030] Processing Server 2 illustrates an embodiment of a processing server 102. Those skilled in the art will appreciate that the embodiment of the processing server 102 illustrated in FIG. 2 is provided for illustrative purposes only and is not an exhaustive list of all possible configurations of a processing server 102 suitable for performing the functions of the present disclosure. For example, computer system 500 illustrated in FIG. 5 and described in more detail below may be a suitable configuration of a processing server 102. In some cases, additional components of the system 100, such as the sender device 104, recipient device 106, blockchain node 112, regulator 114, etc., may include the components illustrated in FIG. 2 and described below.

[0031] The processing server 102 may include a receiving device 202. The receiving device 202 may be configured to receive data over one or more networks via one or more network protocols. In some examples, the receiving device 202 may be configured to receive data from the sender device 104, the recipient device 106, the blockchain node 112, the regulatory authority 114, and other systems and entities via one or more communication methods, such as radio frequency, a local area network, a wireless area network, a cellular communication network, Bluetooth, the Internet, etc. In some embodiments, the receiving device 202 may include multiple devices (e.g., different receiving devices receiving data over different networks (e.g., a first receiving device receiving data over a local area network and a second receiving device receiving data over the Internet)). The receiving device 202 may receive a transmitted electronic data signal. Upon receipt of the data signal by the receiving device 202, data may be superimposed on the data signal and may be decoded, parsed, read, or otherwise obtained. In some embodiments, the receiving device 202 may include an analysis module for analyzing the received data signal to obtain the data superimposed thereon. For example, the receiving device 202 may include an analysis program configured to receive and convert received data signals into usable input for functions performed by the processing device to implement the methods and systems of the present disclosure.

[0032] The receiving device 202 can be configured to receive data signals transmitted electronically by the sender device 104 and the recipient device 106, which can be superimposed or encoded with onboarding data such as geographic location identification data and cryptographic keys, proposed blockchain transactions, etc. The receiving device 202 can be configured to receive data signals transmitted electronically by the blockchain nodes 112, which can be superimposed or encoded with blockchain data values, cryptographic keys, smart contracts, blocks, proposed blockchain transaction data, geographic keys, etc. The receiving device 202 can be configured to receive data signals transmitted electronically by the regulatory authorities 114, which can be superimposed or encoded with data such as regulations, sanctions, or other restrictions on blockchain transactions between geographic locations 108.

[0033] The processing server 102 may also include a communications module 204. The communications module 204 may be configured to transfer data between modules, engines, databases, memory, and other components of the processing server 102 for use in performing the functions of the present disclosure. The communications module 204 may include one or more communication types and may use various communication methods for communication within a computing device. For example, the communications module 204 may include a bus, a contact pin connector, wires, etc. In some embodiments, the communications module 204 may also be configured to communicate between internal components of the processing server 102 and external components of the processing server 102 (e.g., an externally connected database, display device, input device, etc.). The processing server 102 may also include a processing unit. The processing unit may be configured to perform the functions of the processing server 102 of the present disclosure, as will be apparent to those skilled in the art. In some embodiments, the processing unit may include multiple engines and / or modules (e.g., query module 216, generation module 218, validation module 220, etc.) specifically configured to perform one or more functions of the processing unit. As used herein, the term "module" may refer to software or hardware that is specifically programmed to receive input, perform one or more operations using the input, and provide an output. The inputs, outputs, and operations performed by the various modules will be apparent to one of ordinary skill in the art based on this disclosure.

[0034] The processing server 102 may also include blockchain data 206, which may be stored in the memory 214 of the processing server 102 or stored in or accessible by a separate area within the computing system 200. The blockchain data 206 may include a blockchain, which may comprise multiple blocks, and which may be associated with the blockchain network 110 and the core blockchain. In some cases, the blockchain data 206 may further include any other data associated with the blockchain and its management and performance, including, for example, block generation algorithms, digital signature generation and confirmation algorithms, communication data for blockchain nodes 112, smart contracts, geographic keys, etc. The blockchain data 206 may also include data used by the processing server 102 for operations related to the blockchain, including, for example, cryptographic key pairs for blockchain wallets, public keys for generating destination addresses or validating digital signatures, transaction history, cryptocurrency amounts, etc.

[0035] The processing server 102 may also include memory 214. The memory 214 may be configured to store data (e.g., public keys, private keys, symmetric keys, etc.) for use by the processing server 102 in performing the functions of the present disclosure. The memory 214 may be configured to store data using any suitable data formatting methodology and schema and may be any suitable type of memory (e.g., read-only memory, random access memory, etc.). The memory 214 may include, for example, cryptographic keys and algorithms, communication protocols and standards, data formatting standards and protocols, program code for modules and processing unit application programs, and other suitable data used by the processing server 102 in performing the functions of the present disclosure. This will be apparent to those skilled in the art upon reading this disclosure. In some embodiments, the memory 214 may include a relational database using Structured Query Language (SQL) to store, identify, modify, update, access, etc., stored structured data sets. The memory 214 may be configured to store, for example, cryptographic keys, cryptographic key pairs, cryptographic algorithms, encryption algorithms, communication information, data formatting rules, network identifiers, geographic keys, smart contracts, and the like.

[0036] The processing server 102 may also include a query module 216. The query module 216 may be configured to run queries on databases to identify information. The query module 216 may receive one or more data values ​​or query strings, and based thereon, may run the query string on an indicated database (e.g., the entity database 206 of the processing server 102) to identify information stored therein. The query module 216 may then output the identified information to an appropriate engine or module of the processing server 102, as needed. The query module 216 may, for example, run queries against blockchain data to identify blockchain data values, including data associated with blockchain wallets included in proposed blockchain transactions received for identification of stored geographic keys.

[0037] The processing server 102 may also include a generation module 218. The generation module 218 may be configured to generate data for use by the processing server 102 when performing the functions of the present disclosure. The generation module 218 may receive instructions as input, generate data based on the instructions, and output the generated data to one or more modules of the processing server 102. For example, the generation module 218 may be configured to generate data messages, notification messages, cryptographic keys, blockchain transactions, blockchain data values, smart contracts, etc.

[0038] The processing server 102 may also include a validation module 220. The validation module 220 may be configured to perform validation on the processing server 102 as part of the functionality of the present disclosure. The validation module 220 may receive instructions as input, which may include data to be used in performing the validation, perform the validation upon request, and output validation results to another module or engine of the processing server 102. The validation module 220 may be configured, for example, to validate blockchain transactions involving blockchain wallets associated with multiple geographic locations 108 using a geographic key as input and based on included constraint and restriction data, and output a positive or negative validation result.

[0039] The processing server 102 may also include a transmitting device 222. The transmitting device 222 may be configured to transmit data over one or more networks via one or more network protocols. In some examples, the transmitting device 222 may be configured to transmit data to the sender device 104, the recipient device 106, the blockchain node 112, the regulatory authority 114, and other entities via one or more communication methods, such as a local area network, a wireless area network, cellular communication, Bluetooth, radio frequency, the Internet, etc. In some embodiments, the transmitting device 222 may include multiple devices (e.g., different transmitting devices for transmitting data over different networks (e.g., a first transmitting device transmitting data over a local area network and a second transmitting device transmitting data over the Internet)). The transmitting device 222 may electronically transmit a data signal having superimposed data, the data being analyzed by a receiving computing device. In some embodiments, the transmitting device 222 may include one or more modules for superimposing, encoding, or formatting data into a data signal suitable for transmission.

[0040] The transmitting device 222 can be configured to electronically transmit data signals to the sender device 104 and the recipient device 106, which can be superimposed or encoded with data requests, notification messages, geographic keys, etc. The transmitting device 222 can also be configured to electronically transmit data signals to the blockchain node 112, which can be superimposed or encoded with blockchain wallet identification data, geographic key requests, proposed blockchain transaction data, smart contracts, geographic key entry data, etc. The transmitting device 222 can also be configured to electronically transmit data signals to the regulator 114, which can be superimposed or encoded with requests for constraints and restriction data, etc.

[0041] Processing to prevent geographically unauthorized transactions FIG. 3 illustrates a process 300 performed by a processing server 102 in the system 100 of FIG. 1 for preventing geographically unauthorized blockchain transactions when participants in multiple geographic locations 108 are involved.

[0042] At S302, the receiving device 202 of the processing server 102 can receive a proposed blockchain transaction from the sender device 104, the recipient device 106, or the blockchain node 112, where the blockchain transaction includes one or more unspent transaction outputs (also referred to as a source address), a digital signature, a destination address, and a cryptocurrency amount. The proposed blockchain transaction may also include public keys or other data used to identify the blockchain wallets involved in the proposed blockchain transaction. At S304, the processing server 102 can identify a geographic key associated with each blockchain wallet involved in the proposed blockchain transaction, which can be performed, for example, by running a query on the blockchain data 206 of the processing server 102 via the query module 216 to identify a blockchain data value including identification data for each blockchain wallet, or by sending a data request to the blockchain node 112 via the sending device 222 including identification data for the blockchain wallet. At S306, the processing server 102 may determine whether the proposed blockchain transaction is a cross-border transaction, which may be done, for example, by checking whether the geographic keys for the two blockchain wallets match or contain a common identifying value. If the processing server 102 determines that the proposed blockchain transaction is non-cross-border, at S308, the processing server 102 may process the local blockchain transaction, which may be done, for example, by electronically transmitting the proposed blockchain transaction to a blockchain node 112 in the geographic location 108 associated with the identified geographic key, and may approve and add the blockchain transaction to the associated blockchain using conventional methods and systems.

[0043] If the processing server 102 determines that the proposed blockchain transaction is a cross-border transaction, at S310, the processing server 102 may execute a smart contract stored in the core blockchain or in the blockchain associated with one of the geographic locations 108 associated with the identified geographic key, where the identified geographic key is used as input to the smart contract. The smart contract may perform and execute a validation using the provided geographic key and may output a validation result. At S312, the receiving device 202 may receive the validation result output by the smart contract. At S314, the processing server 102 may determine whether the validation result from the smart contract is a positive result. If the validation result is not a positive result, at S316, the processing server 102 may reject the blockchain transaction, which may be done, for example, by sending a notification message indicating the rejection of the blockchain transaction via the sending device 222 to the sender device 104, the recipient device 106, or the blockchain node 112, as appropriate. In some cases, a reason for the denial may be provided, such as an indication that the denial was made due to restrictions on transactions between geographic locations 108 .

[0044] If the validation result is positive, then at S318, the processing server 102 may process the first blockchain transaction for addition to a blockchain associated with the first geographic location 108a, which may be done, for example, by electronically transmitting the proposed blockchain transaction to a blockchain node 112a in the first geographic location 108a, and conventional methods and systems may be used to approve and add the blockchain transaction to the associated blockchain. At S320, the processing server 102 may process the second blockchain transaction for addition to a blockchain associated with the second geographic location 108b, which may be done, for example, by electronically transmitting the proposed blockchain transaction to a blockchain node 112b in the second geographic location 108b, and conventional methods and systems may be used to approve and add the blockchain transaction to the associated blockchain.

[0045] Exemplary Methods for Preventing Unauthorized Blockchain Transactions FIG. 4 illustrates a method 400 for preventing unauthorized blockchain transactions due to different geographic locations of participants.

[0046] At S402, a receiver (e.g., receiving device 202) of a processing server (e.g., processing server 102) may receive transaction data for a proposed blockchain transaction from an external computing system (e.g., sender device 104, recipient device 106, blockchain node 112, etc.), where the transaction data includes at least a source address and a destination address. At S404, a processor (e.g., query module 216) of the processing server may identify a source geographic key associated with a first geographic location based at least on the source address and a destination geographic key associated with a second geographic location based at least on the destination address. At S406, a processor (e.g., validation module 220) of the processing server may determine whether the source geographic key is equal to the destination geographic key.

[0047] At S408, if the processor determines that the source geographic key equals the destination geographic key, the processor of the processing server (e.g., the generation module 218, the sending device 222, etc.) may initiate a new blockchain transaction on a first blockchain associated with the source geographic key based at least on the transaction data. At S410, if the processor determines that the source geographic key does not equal the destination geographic key, the processor of the processing server (e.g., the query module 214, the sending device 222, etc.) may execute a smart contract using at least the source geographic key and the destination geographic key as inputs, where the smart contract outputs validation for the proposed blockchain transaction.

[0048] At S412, if the validation for the proposed blockchain transaction is a negative validation, a transmitter of the processing server (e.g., sending device 222, etc.) may send a rejection message for the proposed blockchain transaction to the external computing system. At S414, if the validation for the proposed blockchain transaction is a positive validation, a processor of the processing server (e.g., generating module 218, sending device 222, etc.) may initiate a first blockchain transaction on a first blockchain associated with the source geographic key based at least on the transaction data, and may also initiate a second blockchain transaction on a second blockchain associated with the destination geographic key based at least on the transaction data by a processor of the processing server (e.g., generating module 218, sending device 222, etc.).

[0049] In one embodiment, method 400 may further include initiating, by a processor of the processing server (e.g., generating module 218, sending device 222, etc.), a third blockchain transaction on the core blockchain based at least on the transaction data. In further embodiments, the smart contract may be stored in a block in the core blockchain. In some embodiments, the smart contract may be stored in a block in a first blockchain associated with the source geographic key. In one embodiment, the smart contract may be stored in a block in a second blockchain associated with the destination geographic key.

[0050] In some embodiments, validation of a proposed blockchain transaction can be based on one or more sanctions restricting transactions between different geographic locations. In further embodiments, the one or more sanctions can be imposed by at least one government agency. In one embodiment, the first blockchain transaction can represent a transfer of a first amount of blockchain currency associated with the first blockchain from the first blockchain, and the second blockchain transaction can represent a transfer of a second amount of blockchain currency associated with the second blockchain to the second blockchain.

[0051] Computer System Architecture 5 illustrates a computer system 500 in which embodiments of the present disclosure, or portions thereof, may be implemented as computer-readable code. For example, the processing server 102, the sender device 104, the recipient device 106, the blockchain node 112, and the regulator 114 may be implemented in the computer system 500 using hardware, a non-transitory computer-readable medium having instructions stored thereon, or a combination thereof, and may be implemented in one or more computer systems or other processing systems. The hardware may embody modules and components used to implement the methods of FIGS. 3 and 4.

[0052] Where programmable logic is used, such logic may be executed on commercially available processing platforms configured with executable software code, resulting in special-purpose or dedicated devices (e.g., programmable logic arrays, application-specific integrated circuits (ASICs), etc.). Those skilled in the art will appreciate that embodiments of the disclosed subject matter may be implemented in a variety of computer system configurations, including multi-core, multi-processor systems, minicomputers, mainframe computers, distributed functionality linked or clustered computers, and general-purpose or miniature computers that may be implemented in virtually any device. For example, at least one processor unit and memory may be used to implement the embodiments.

[0053] A processor unit or device of the present disclosure may be a single processor, multiple processors, or a combination thereof. A processor device may have one or more processor “cores.” The terms “computer program medium,” “non-transitory computer-readable medium,” and “computer-usable medium” of the present disclosure are used generally to refer to tangible media (e.g., removable storage unit 518, removable storage unit 522, and a hard disk installed in hard disk drive 512, etc.).

[0054] Various embodiments of the present disclosure are described with respect to this exemplary computer system 500. After reading this disclosure, it will be apparent to one skilled in the art how to implement the present disclosure using other computer systems and / or computer architectures. While operations are disclosed as sequential processes, some operations may in fact be performed in parallel, concurrently, and / or in distributed environments, where program code is stored locally or remotely for access by uniprocessor or multiprocessor machines. Furthermore, in some embodiments, the order of operations may be rearranged without departing from the spirit of the disclosed subject matter.

[0055] The processor unit 504 may be a special-purpose or general-purpose processor unit specially configured to perform the functions of the present disclosure. The processor unit 504 may be connected to a communications infrastructure 506 (e.g., a bus, a message queue, a network, a multi-core message passing scheme, etc.). The network may be any network suitable for performing the functions of the present disclosure and may include a local area network (LAN), a wide area network (WAN), a wireless network (e.g., Wi-Fi), a mobile communications network, a satellite network, the Internet, fiber optics, coaxial cable, infrared, radio frequency (RF), or any combination thereof. Other suitable network types and configurations will be apparent to those skilled in the art. The computer system 500 may also include a main memory 508 (e.g., random access memory, read-only memory, etc.) and may also include a secondary memory 510. The secondary memory 510 may include a hard disk drive 512 and a removable storage drive 514 (e.g., a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, etc.).

[0056] Removable storage drive 514 may read from and / or write to removable storage unit 518 in a well-known manner. Removable storage unit 518 may include a removable storage medium that can be read from and written to by removable storage drive 514. For example, if removable storage drive 514 is a floppy disk drive or a USB port, removable storage unit 518 may be a floppy disk or a portable flash drive, respectively. In one embodiment, removable storage unit 518 may be a non-transitory readable recording medium.

[0057] In some embodiments, secondary memory 510 may include alternative means for allowing computer programs or other instructions to be loaded into computer system 500 (e.g., removable storage unit 522 and interface 520). Examples of such means may include program cartridges and cartridge interfaces (e.g., found in video game systems), removable memory chips (e.g., EEPROM, PROM, etc.) and associated sockets, other removable storage units 522 and interfaces 520, as will be apparent to those skilled in the art.

[0058] Data stored in computer system 500 (e.g., in main memory 508 and / or secondary memory 510) may be stored on any type of suitable computer-readable medium, such as optical storage (compact disc, digital versatile disc, Blu-ray disc, etc.) or magnetic tape storage (e.g., hard disk drive). The data may be organized in any type of suitable database structure (e.g., a relational database, a Structured Query Language (SQL) database, a distributed database, an object database, etc.). Suitable structures and storage types will be apparent to those skilled in the art.

[0059] Computer system 500 may also include a communications interface 524. Communications interface 524 may allow software and data to be sent and received between computer system 500 and external devices. Exemplary communications interface 524 may include a modem, a network interface (e.g., an Ethernet card), a communications port, a PCMCIA slot and card, etc. The software and data transferred via communications interface 524 may be in the form of signals. The signals may be electronic, electromagnetic, optical, or other signals apparent to those skilled in the art. The signals propagate over communications path 526. The paths are configured to carry the signals and may be implemented using wire, cable, fiber optics, a telephone line, a cellular phone link, a radio frequency link, etc.

[0060] Computer system 500 may further include a display interface 502. Display interface 502 may be configured to allow data to be transferred between computer system 500 and an external display 530. Exemplary display interfaces 502 may include a high-definition multimedia interface (HDMI), a digital visual interface (DVI), a video graphics array (VGA), etc. Display 530 may be any suitable type of display that displays data transferred via display interface 502 of computer system 500, including a cathode ray tube (CRT) display, a liquid crystal display (LCD), a light-emitting diode (LED) display, a capacitive touch display, a thin-film transistor (TFT) display, etc.

[0061] The computer program medium and computer usable medium may refer to memory (e.g., main memory 508 and secondary memory 510), which may be semiconductor memory (such as DRAM). These computer program products may be means for providing software to computer system 500. Computer programs (e.g., computer control logic) may be stored in main memory 508 and / or secondary memory 510. Computer programs may also be received via communications interface 524. Such computer programs, when executed, may enable computer system 500 to perform methods of the present disclosure. In particular, computer programs, when executed, may enable processor unit 504 to implement the methods illustrated in FIGS. 3 and 4 as described herein. Such computer programs therefore represent the controller of computer system 500. The present disclosure is implemented using software. The software may be stored in a computer program product and loaded into computer system 500 using removable storage drive 514, interface 520, and hard disk drive 512 or communications interface 524.

[0062] The processor unit 504 may include one or more modules or engines configured to perform the functions of the computer system 500. Each module or engine may be implemented using hardware, or in some embodiments, software (e.g., corresponding to program code or programs stored in the main memory 508 or the secondary memory 510). In such embodiments, the program code may be compiled by the processor unit 504 (e.g., by a compilation module or engine) before execution by the hardware of the computer system 500. For example, the program code may be source code written in a programming language (e.g., assembly language or machine code) that is translated into a lower-level language for execution by the processor unit 504 and / or any additional hardware components of the computer system 500. The compilation process may include the use of lexical analysis, preprocessing, syntactic analysis, semantic analysis, syntax-driven translation, code generation, code optimization, or any other techniques suitable for translating program code into a lower-level language suitable for controlling the computer system 500 to perform the functions of the present disclosure. Those skilled in the art will appreciate that such processing results in computer system 500 being a specially configured computer system 500 that is uniquely programmed to perform the functions described above.

[0063] Among other features, technology consistent with the present disclosure provides systems and methods for preventing geographically unauthorized blockchain transactions. While various exemplary embodiments of the systems and methods of the present disclosure are described above, it should be understood that they are presented by way of example only, and not by way of limitation. They are not exhaustive and do not limit the present disclosure to the precise form disclosed. Modifications and variations are possible in light of the above teachings. Modifications and variations may be obtained from implementations of the present disclosure without departing from the scope or spirit of the present disclosure.

Claims

1. 1. A method for preventing geographically unauthorized blockchain transactions, comprising: receiving, by a receiver of the processing server, transaction data for a proposed blockchain transaction from an external computing system, the transaction data including at least a source address and a destination address; identifying, by a processor of the processing server, a source geographic key associated with a first geographic location based at least on the source address and a destination geographic key associated with a second geographic location based at least on the destination address; determining, by the processor of the processing server, whether the source geographic key is equal to the destination geographic key; if the processor determines that the source geographic key is equal to the destination geographic key, initiating, by the processor of the processing server, a new blockchain transaction on a first blockchain associated with the source geographic key based at least on the transaction data; If the processor determines that the source geographic key is not equal to the destination geographic key, executing, by the processor of the processing server, a smart contract using at least the source geographic key and the destination geographic key as inputs, wherein the smart contract outputs a validation for the proposed blockchain transaction; If the validation of the proposed blockchain transaction is a negative validation, sending, by a transmitter of the processing server, a rejection message for the proposed blockchain transaction to the external computing system; If the validation of the proposed blockchain transaction is a positive validation, Initiating, by the processor of the processing server, a first blockchain transaction on the first blockchain associated with the source geographic key based at least on the transaction data; and executing, by the processor of the processing server, a second blockchain transaction on a second blockchain associated with the destination geographic key based at least on the transaction data.

2. The method of claim 1 further comprising: initiating, by the processor of the processing server, a third blockchain transaction on a core blockchain based at least on the transaction data.

3. 3. The method of claim 2, wherein the smart contracts are stored in blocks in the core blockchain.

4. 2. The method of claim 1, wherein the smart contract is stored in a block in the first blockchain associated with the source geographic key.

5. 2. The method of claim 1, wherein the smart contract is stored in a block in the second blockchain associated with the destination geographic key.

6. 10. The method of claim 1, wherein the validation of the proposed blockchain transaction is based on one or more sanctions that restrict transactions between different geographic locations.

7. 7. The method of claim 6, wherein the one or more sanctions are imposed by at least one government agency.

8. 10. The method of claim 1, the first blockchain transaction indicates a transfer from the first blockchain of a first amount of blockchain currency associated with the first blockchain; the second blockchain transaction indicates a transfer of a second amount of blockchain currency associated with the second blockchain to the second blockchain.

9. 1. A system for preventing geographically unauthorized blockchain transactions, comprising: an external computing system; a processing server, the processing server comprising: a receiver that receives transaction data for a proposed blockchain transaction from the external computing system, the transaction data including at least a source address and a destination address; A processor, the processor comprising: identifying a source geographic key associated with a first geographic location based at least on the source address and a destination geographic key associated with a second geographic location based at least on the destination address; determining whether the source geographic key is equal to the destination geographic key; a transmitter; if the processor of the processing server determines that the source geographic key is equal to the destination geographic key, initiating, by the processor of the processing server, a new blockchain transaction on a first blockchain associated with the source geographic key based at least on the transaction data; If the processor determines that the source geographic key is not equal to the destination geographic key, the processor of the processing server executes a smart contract using at least the source geographic key and the destination geographic key as inputs, wherein the smart contract outputs a validation for the proposed blockchain transaction; If the validation for the proposed blockchain transaction is a negative validation, the transmitter of the processing server sends a rejection message for the proposed blockchain transaction to the external computing system; If the validation of the proposed blockchain transaction is a positive validation, The processor of the processing server initiates a first blockchain transaction on the first blockchain associated with the source geographic key based on at least the transaction data; and The processor of the processing server initiates a second blockchain transaction on a second blockchain associated with the destination geographic key based at least on the transaction data.

10. 10. The system of claim 9, wherein the processor of the processing server further initiates a third blockchain transaction on a core blockchain based at least on the transaction data.

11. 11. The system of claim 10, wherein the smart contracts are stored in blocks in the core blockchain.

12. 10. The system of claim 9, wherein the smart contract is stored in a block in the first blockchain associated with the source geographic key.

13. 10. The system of claim 9, wherein the smart contract is stored in a block in the second blockchain associated with the destination geographic key.

14. 10. The system of claim 9, wherein the validation of the proposed blockchain transaction is based on one or more sanctions that restrict transactions between different geographic locations.

15. 15. The system of claim 14, wherein the one or more sanctions are imposed by at least one government agency.

16. 10. The system of claim 9, the first blockchain transaction indicates a transfer from the first blockchain of a first amount of blockchain currency associated with the first blockchain; The second blockchain transaction indicates a transfer of a second amount of blockchain currency associated with the second blockchain to the second blockchain.

Citation Information

Patent Citations

  • System for improved transaction processing and routing

    JP2020528605A

  • Identity and risk scoring of government-backed token assets and associated token transactions

    JP2022536485A