System and method for mitigating network congestion on blockchain network by supporting blockchain operations via under-chain interactions
By supporting off-chain interaction in the blockchain network and directly reflecting blockchain operations in the off-chain ledger, the problem of delay and congestion of the blockchain network is solved, and instant confirmation and efficient transactions between users are achieved.
Patent Information
- Application Number
- CN202380046275.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-15
- Filing Date
- 2023-06-13
- Publication Date
- 2025-01-10
- Estimated Expiration
- 2043-06-13
AI Technical Summary
The delay and network congestion caused by relying on community members to mine new blocks affect daily business interactions between users, leading to increased bottleneck risks and reduced network efficiency.
By supporting off-chain interactions between cryptography-based storage applications via shared public platforms, the system can determine the characteristics of the relevant addresses, avoiding the execution of synchronous on-chain events on the blockchain network, and directly reflecting the area in the off-chain ledger Blockchain operations to alleviate network congestion.
Realize instant confirmation and invisible transactions of blockchain operations between users, reduce network congestion and processing costs, and improve the efficiency and availability of blockchain networks.
Smart Images

Figure CN119301903A_ABST
Abstract
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of priority to U.S. Patent Application No. 17 / 841,280, filed on June 15, 2022. The contents of the foregoing application are incorporated herein by reference in their entirety. background
[0002] In recent years, the use of blockchain and blockchain technology has grown exponentially. A blockchain includes a list of records called "blocks" that are "linked" together using cryptography. Each block can include data computed using a one-way function (e.g., a function that is virtually impossible to reverse or compute in reverse) of the previous block, a timestamp (e.g., indicating creation and / or modification time), and additional data (e.g., transaction or operation data related to the operation of the blockchain).
[0003] While the hype around blockchain and blockchain technology has focused on its use for cryptocurrencies and smart contracts, blockchain and blockchain technology may be applicable to many technical approaches. A common theme among technical approaches is that blockchain and blockchain technology are decentralized in a way that the promotion, management, and / or verification of blockchain-based operations are governed or managed not by any one institution but by a community of users. Thus, a blockchain can be maintained distributed (e.g., over a network of computers that communicate and coordinate their actions by passing messages to each other) and in many cases public by recording a digital ledger of a series of blocks that form a chain. Notably, because each block is dependent on the previous block, it may not be possible to edit an existing block in the chain without affecting subsequent blocks.
[0004] Furthermore, updates to the blockchain (e.g., adding new blocks) can include an incentive system that rewards community members for generating updates while also ensuring community consensus. By doing so, the proliferation of the blockchain can proceed indefinitely. Overview
[0005] Systems and methods for novel uses and / or improvements of blockchain and blockchain technology are described herein. As an example, systems and methods are described herein for alleviating network congestion on a blockchain network by supporting blockchain operations conducted via off-chain interactions between cryptography-based storage applications that share a common platform. More specifically, the systems and methods describe the use of platform services that can facilitate the use of cryptocurrencies in everyday interactions between users. For example, while awareness of cryptocurrencies and their use in decentralized applications has increased in recent years, a fundamental problem with further adoption of cryptocurrencies is that they cannot be used for everyday commercial interactions between users. This fundamental problem is based on numerous technical challenges facing blockchain networks. For example, in order for a blockchain network to function, the network relies on community members to mine new blocks so that new blockchain operations can be recorded in the blockchain. Therefore, before any blockchain operation can be confirmed, the blockchain operation must wait for a new block to be mined. This delay can take several minutes or longer (e.g., depending on how many blocks need to be mined). As the delay increases, the risk of bottlenecks associated with serial blockchain operations also increases. In addition, as more blockchain operations are submitted to the blockchain network, delays and bottlenecks will only increase, leading to further network congestion.
[0006] In order to overcome these technical deficiencies in conventional systems, the systems and methods disclosed herein alleviate network congestion on blockchain networks by supporting blockchain operations performed via off-chain interactions. For example, when a communication initiating an off-chain event and / or blockchain operation is received, the system can determine various characteristics about the addresses involved. In particular, the system can determine whether the address corresponds to a cryptography-based storage application that shares a public platform service. If so, the system can avoid using on-chain events (e.g., submitting blockchain operations to a blockchain neck) by using an off-chain ledger. That is, the system can modify the off-chain ledger of the platform service to reflect the blockchain operation without performing synchronous on-chain events between a first cryptography-based storage application and a second cryptography-based storage application through a blockchain network. By doing so, the system can avoid causing further network congestion.
[0007] In some aspects, systems and methods are described for alleviating network congestion on a blockchain network by supporting blockchain operations performed via off-chain interactions between cryptography-based storage applications that share a common platform. For example, a system may receive a communication that initiates an off-chain response corresponding to a blockchain operation on a blockchain network, wherein the off-chain response corresponds to a first user. The system may determine a first address of a first cryptography-based storage application for performing blockchain operations based on the communication, wherein the first cryptography-based storage application corresponds to the first user, and wherein the first cryptography-based storage application is managed by a platform service. The system may determine a second address of a second cryptography-based storage application for performing blockchain operations based on the communication, wherein the second cryptography-based storage application corresponds to a second user. The system may determine whether the second cryptography-based storage application is managed by a platform service. In response to determining that the second cryptography-based storage application is managed by a platform service, the system may modify the off-chain ledger of the platform service to reflect the blockchain operation without performing a synchronous on-chain event between the first cryptography-based storage application and the second cryptography-based storage application through the blockchain network. The system may transmit an off-chain response from the platform service to the second user.
[0008] Through the detailed description of the present invention and the accompanying drawings, various other aspects, features and advantages of the present invention will be apparent. It should also be understood that the above general description and the following detailed description are examples and do not limit the scope of the present invention. As used in this specification and claims, unless the context clearly specifies otherwise, the singular forms "a", "an" and "the" include plural indicators. In addition, as used in this specification and claims, unless the context clearly specifies otherwise, the term "or" means "and / or". In addition, as used in this specification, unless the context clearly specifies otherwise, "a portion" refers to part or all (i.e., the entire portion) of a given item (e.g., data). BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Figure 1 A schematic diagram of a user interface for performing operations to alleviate network congestion is shown in accordance with one or more embodiments.
[0010] Figure 2 A schematic diagram for performing blockchain operations according to one or more embodiments is shown.
[0011] Figure 3 A schematic diagram of a decentralized application according to one or more embodiments is shown.
[0012] Figure 4A schematic diagram for operating in a decentralized application using blockchain operations according to one or more embodiments is shown.
[0013] Figure 5 A schematic diagram of a blockchain indexer is shown in accordance with one or more embodiments.
[0014] Figure 6 A flow diagram illustrating steps involved in alleviating network congestion on a blockchain network by supporting blockchain operations conducted via off-chain interactions in accordance with one or more embodiments. Detailed description of the drawings
[0015] In the following description, for the purpose of explanation, many specific details are set forth to provide a thorough understanding of the embodiments of the present invention. However, it will be appreciated by those skilled in the art that the embodiments of the present invention can be practiced without these specific details or with equivalent arrangements. In other cases, well-known structures and devices are shown in block diagram form to avoid unnecessarily obscuring the embodiments of the present invention.
[0016] Figure 1 A schematic diagram of a user interface for performing operations to alleviate network congestion according to one or more embodiments is shown. For example, Figure 1 User interface 100 and user interface 150 are shown. As referred to herein, a "user interface" may include mechanisms for human-computer interaction and communication in a device, and may include a display screen, keyboard, mouse, and desktop appearance. For example, a user interface may include a way for a user to interact with an application or website in order to alleviate network congestion on a blockchain network by supporting blockchain operations performed via off-chain interactions, and the user interface may display content related to blockchain operations. As referred to herein, "content" should be understood to mean representations of electronically consumable user assets, goods, or services (including nonfungible tokens), Internet content (e.g., streaming content, downloadable content, webcasts, etc.), video data, audio data, image data, and / or text data, etc.
[0017] The user interface 100 may correspond to a screen for creating a communication for initiating an off-chain response corresponding to a blockchain operation on a blockchain network, wherein the off-chain response corresponds to a first user. For example, while awareness of cryptocurrencies and their use in decentralized applications has increased in recent years, a fundamental problem with further adoption of cryptocurrencies is that they cannot be used for everyday commercial interactions between users. This fundamental problem raises many technical issues because there is currently no mechanism for integrating blockchain-based transactions (e.g., communications, transactions, etc. performed on the chain via one or more smart contracts) and off-chain responses (e.g., communications, transactions, etc. performed off the chain via conventional means). For example, a merchant (e.g., a second user) may want to offer a crypto payment option to its customers (e.g., a first user).
[0018] The first user may create a charge (e.g., a payment intent) using the user interface 100. The first user may create the charge via selecting an icon in the user interface 100. For example, the first user may select the "Pay with Coinbase" option as shown in the user interface 100, which may open an iframe for the user to log in to the platform service and authenticate themselves in order to access digital assets in their user account on the platform service.
[0019] In response to the selection, the system may generate a user interface 150. For example, the user interface 150 may generate content for facilitating blockchain operations. For example, the system may generate a machine-readable optical label. The label may include a quick response (QR) code generated based on information related to the user, the platform service, and / or the current blockchain operation. For example, the second user may include a merchant that scans a quick response (QR) code displayed on the mobile device of the first user. The QR code may include information about the off-chain response (e.g., off-chain characteristics), such as the entities involved, the price of the goods or services discussed, and the like. For example, the off-chain characteristics may include any characteristics that can distinguish one off-chain response from another off-chain response. In some embodiments, the off-chain response may include an electronic payment. In this case, the off-chain characteristics may include the amount of the electronic payment.
[0020] For example, the user interface 150 may include an encrypted communication for initiating an off-chain response corresponding to a blockchain operation on a blockchain network. When the platform service receives the communication, the platform service may determine a secure user account corresponding to a first user hosted by the platform service based on the encrypted communication. For example, the system may determine a first address of a first cryptography-based storage application to be used to perform a blockchain operation, where the first cryptography-based storage application corresponds to the first user.
[0021] Additionally or alternatively, a cryptography-based storage application may refer to a digital wallet or other cryptography-based digital storage repository. A digital wallet may include a software-based system that securely (and usually in an encrypted format) stores users, confidential information, personal information, payment information, and / or passwords for numerous payment methods and websites. By using a digital wallet, a user can easily and securely complete communications, purchases, and / or other blockchain operations without the risk of the information becoming public or subject to cyberattacks.
[0022] For example, the first cryptography-based storage application may be a non-custodial cryptography-based storage application. That is, the first cryptography-based storage application may be a separate standalone application that allows users to store their own passwords or maintain custody of their own passwords and explore the decentralized web using a decentralized application browser. The first cryptography-based storage application may be a standalone application that does not require interaction with a user account (e.g., an account from a blockchain service provider, a centralized brokerage, and / or an exchange). The first cryptography-based storage application may allow users to manage their own private keys and store their crypto assets directly on their devices (without going through a centralized brokerage or exchange).
[0023] Alternatively, the first cryptography-based storage application may be a custodial or semi-custodial cryptography-based storage application. That is, the first cryptography-based storage application may be a separate standalone application that allows users to store their own passwords or maintain custody of their own passwords and explore the decentralized web using a decentralized application browser through an application provided by a blockchain service provider, centralized brokerage firm, and / or exchange. The first cryptography-based storage application may be an application that needs to interact with a user account from a blockchain service provider, centralized brokerage firm, and / or exchange. The first cryptography-based storage application may allow users to have their private keys managed by the blockchain service provider, centralized brokerage firm, and / or exchange without having to store their own private keys (at least in full) and crypto assets directly on their devices.
[0024] In generating communications (e.g. Figure 1After the system receives the wallet addresses of the first user and the second user (the fees created as shown), the system can receive the wallet addresses of the first user and the second user. The system can then determine whether the first user and / or the second user share a common platform service. If the address corresponds to a platform service, the system can perform an off-chain transaction. For example, if both addresses correspond to platform services, the platform service can provide instant confirmation of blockchain operations, senseless transactions (e.g., by processing transactions off-chain), and / or other features. That is, if the system determines that a platform service is used, the system can process the blockchain operation in an off-chain manner that avoids excessive network charges and processing costs. Conversely, if the address does not correspond to a platform service, the system can perform an on-chain transaction.
[0025] Figure 2 A schematic diagram for performing blockchain operations according to one or more embodiments is shown. For example, in some embodiments, the diagram presents various components that can be used to alleviate network congestion on a blockchain network by supporting blockchain operations performed via off-chain interactions.
[0026] Figure 2 The user device 202 may include a user interface. Figure 2 As shown, system 200 may include multiple user devices (eg, user device 202, user device 208, and / or user device 210). For example, system 200 may include a distributed state machine, wherein Figure 2 Each component in acts as a client of system 200. For example, system 200 (and other systems described herein) may include a large data structure that not only holds all accounts and balances but also holds a state machine that can change between blocks according to a predefined set of rules and can execute arbitrary machine code. The specific rules for changing state between blocks can be maintained by the system's virtual machine (e.g., a computer file implemented on and / or accessible by a user device that behaves like an actual computer).
[0027] It should be noted that although Figure 2 200 are shown as smartphones, personal computers, and servers, but the user devices may be any type of computing device, including but not limited to laptop computers, tablet computers, handheld computers, and / or other computing devices (e.g., servers), including "smart", wireless, wearable, and / or mobile devices. It should be noted that the embodiments describing the system 200 for performing blockchain operations may be equally applicable to and correspond to individual user devices (e.g., user device 202, user device 208, and / or user device 210) that perform blockchain operations. That is, the system 200 may correspond to user devices (e.g., user device 202, user device 208, and / or user device 210) uniformly or individually.
[0028] The system can use each of the user devices to perform blockchain operations and / or help alleviate network congestion. As referred to herein, "blockchain operations" may include any operations that include and / or involve blockchain and blockchain technology. For example, blockchain operations may include conducting transactions, querying distributed ledgers, generating additional blocks for blockchains, transmitting unforgeable tokens related to communications, performing encryption / decryption, exchanging public / private keys, and / or other operations involving blockchain and blockchain technology. In some embodiments, blockchain operations may include creating, modifying, detecting, and / or executing smart contracts or programs stored on blockchains. For example, a smart contract may include a program stored on a blockchain that is executed (e.g., automatically, without any involvement or time loss of an intermediary) when one or more predetermined conditions are met. In some embodiments, blockchain operations may include creating, modifying, exchanging, and / or reviewing tokens (e.g., digital assets specific to blockchains), including unforgeable tokens. Unforgeable tokens may include tokens associated with goods, services, smart contracts, and / or other content that can be verified by blockchain technology and stored using blockchain technology.
[0029] In some embodiments, blockchain operations may also include actions related to mechanisms that facilitate other blockchain operations (e.g., actions related to metering activities of blockchain operations on a given blockchain network). For example, Ethereum is an open source, global decentralized computing infrastructure for executing smart contracts that uses blockchain to synchronize and store state changes of the system. Ethereum uses a network-specific cryptocurrency called ether to meter and constrain execution resource costs. The metering mechanism is called "gas". When the system executes a smart contract, the system considers each blockchain operation (e.g., calculation, data access, transaction, etc.). Each blockchain operation has a predetermined cost in units of fuel (e.g., as determined based on a set of predefined rules for the system). When a blockchain operation triggers the execution of a smart contract, the blockchain operation may include an amount of fuel that sets an upper limit on the fuel that can be consumed when running the smart contract. If the amount of fuel consumed by the computation exceeds the fuel available in the blockchain operation, the system may terminate the execution of the smart contract. For example, in Ethereum, fuel includes a mechanism for allowing Turing-complete computations while limiting the resources that any smart contract and / or blockchain operation may consume.
[0030] In some embodiments, fuel may be obtained as part of a blockchain operation (e.g., purchase) using a network-specific cryptocurrency (e.g., Ether in the case of Ethereum). The system may require that fuel (or an amount of network-specific cryptocurrency corresponding to the amount of required fuel) be transmitted with the blockchain operation as an earmark for the blockchain operation. In some embodiments, if a certain amount remains unused after the computation is performed, the fuel earmarked for the blockchain operation may be returned to the initiator of the blockchain operation.
[0031] like Figure 2 As shown, one or more user devices may include a digital wallet (e.g., digital wallet 204) for performing blockchain operations. For example, a digital wallet may include a repository that allows users to store, manage, and trade their cryptocurrencies and assets, interact with the blockchain, and / or use one or more applications to perform blockchain operations. A digital wallet may be specific to a given blockchain protocol, or may provide access to multiple blockchain protocols. In some embodiments, the system may use various types of wallets, such as hot wallets and cold wallets. Hot wallets are connected to the internet, while cold wallets are not connected to the internet. Most digital wallet holders hold both hot wallets and cold wallets. Hot wallets are most commonly used to perform blockchain operations, while cold wallets are typically used to manage user accounts and may not be connected to the internet.
[0032] like Figure 2 As shown, one or more user devices may include a private key (e.g., key 212) and / or a digital signature. For example, the system 200 may use a cryptographic system to perform blockchain operations and alleviate network congestion on the blockchain network by supporting blockchain operations performed via off-chain interactions. For example, the system 200 may use public key cryptography, characterized by a pair of digital keys (e.g., which may include a data string). In this case, each pair includes a public key (e.g., which may be public) and a private key (e.g., which may remain private). The system 200 may use an encryption algorithm (e.g., characterized by a one-way function) to generate a key pair. The system 200 may then use the public key of the intended recipient to encrypt a message (or other blockchain operation) so that the encrypted message can be decrypted using only the corresponding private key of the recipient. In some embodiments, the system 200 may combine a message with a private key to create a digital signature on the message. For example, a digital signature may be used to verify the authenticity of a blockchain operation. As an illustration, when performing a blockchain operation, the system 200 may use a digital signature to prove to each node in the system that it is authorized to perform the blockchain operation.
[0033] For example, the system 200 may include a plurality of nodes for a blockchain network. Each node may correspond to a user device (e.g., user device 208). The nodes of the blockchain network may include applications or other software that record and / or monitor peer connections to other nodes and / or miners of the blockchain network. For example, miners include nodes in a blockchain network that facilitate blockchain operations by validating blockchain operations on the blockchain, adding new blocks to an existing chain, and / or ensuring that these additions are accurate. The nodes may continuously record the state of the blockchain and respond to remote process requests for information about the blockchain.
[0034] For example, a user device 208 may request a blockchain operation (e.g., conduct a transaction). The blockchain operation may be authenticated by the user device 208 and / or another node (e.g., a user device in a community network of the system 200). For example, using cryptographic keys, the system 200 may identify the user and grant access to their corresponding user account (e.g., corresponding digital wallet) within the system 200. Using a private key (e.g., known only to the corresponding user) and a public key (e.g., known to the community network), the system 200 may create a digital signature to authenticate the user.
[0035] After the blockchain operation is authenticated (e.g., using the key 212), the blockchain operation can be authorized. For example, after the blockchain operation is authenticated between users, the system 200 can authorize the blockchain operation before adding the blockchain operation to the blockchain. The system 200 can add the blockchain operation to the blockchain 206. The system 200 can perform this operation based on the consensus of the user devices within the system 200. For example, the system 200 can rely on the majority (or other metric) of the nodes (e.g., user device 202, user device 208, and / or user device 210) in the community network to determine that the blockchain operation is valid. In response to the verification of the block, the node user device (e.g., user device 202, user device 208, and / or user device 210) (e.g., miner) in the community network can receive a reward (e.g., a given cryptocurrency) as an incentive for verifying the block.
[0036] To verify the blockchain operation, the system 200 may use one or more verification protocols and / or verification mechanisms. For example, the system 200 may use a proof-of-work mechanism, in which a user device must provide evidence that it has performed computational work to verify the blockchain operation, and thus the mechanism provides a way to achieve consensus in a decentralized manner and prevent fraudulent verification. For example, the proof-of-work mechanism may involve iterations of a hashing algorithm. The successful user device aggregates and records the blockchain operation from a storage pool (e.g., a collection of all valid blockchain operations waiting to be confirmed by the blockchain network) into the next block. Alternatively or in addition, the system 200 may use a proof-of-stake mechanism, in which a user account (e.g., corresponding to a node on a blockchain network) is required to have or "stake" a predetermined amount of tokens so that the system 200 identifies the user account as a validator in the blockchain network.
[0037] In response to the validation of the block, the block is added to the blockchain 206 and the blockchain operation is completed. For example, to add a blockchain operation to the blockchain 206, the successful node (e.g., a successful miner) encapsulates the blockchain operation in a new block before transmitting the block throughout the system 200.
[0038] Figure 3 A schematic diagram of a decentralized application according to one or more embodiments is shown. For example, in some embodiments, system 300 can perform blockchain operations within a decentralized application environment. Decentralized applications can include applications that exist on a blockchain (e.g., blockchain 302) and / or a peer-to-peer network (e.g., network 306). That is, decentralized applications can include applications with a backend that is partially powered by a decentralized peer-to-peer network, such as a decentralized open source blockchain with smart contract functionality.
[0039] For example, network 306 may allow user devices (e.g., user device 304) within network 306 to share files and access. In particular, the peer-to-peer architecture of network 306 allows blockchain operations (e.g., corresponding to blockchain 302) to be performed between user devices in the network without the need for any intermediary or central authority.
[0040] In some embodiments, the user device of system 300 may include one or more cloud components. For example, the cloud component may be implemented as a cloud computing system and may be characterized by one or more component devices. It should also be noted that system 300 is not limited to four devices. For example, users may utilize one or more devices to interact with each other, one or more servers, or other components of system 300. It should be further noted that although one or more operations (e.g., blockchain operations) are described herein as being performed by a specific component of system 300 (e.g., user device 304), in some embodiments, those operations may be performed by other components of system 300. As an example, although one or more operations are described herein as being performed by a component of user device 304, in some embodiments, those operations may be performed by one or more cloud components. In some embodiments, the various computers and systems described herein may include one or more computing devices programmed to perform the described functions. Additionally or alternatively, multiple users may interact with system 300 and / or one or more components of system 300. For example, in one embodiment, a first user and a second user may use two different components (e.g., user device 304 and user device 308, respectively) to interact with system 300. Additionally or alternatively, a single user (and / or a user account linked to a single user) may use two different components (e.g., user device 304 and user device 308, respectively) to interact with system 300 and / or one or more components of system 300.
[0041] With respect to the components of system 300, each of these devices may receive content and data via input / output (hereinafter "I / O") paths using I / O circuitry. Each of these devices may also include a processor and / or control circuitry to send and receive commands, requests, and other suitable data using the I / O paths. The control circuitry may include any suitable processing, storage, and / or I / O circuitry. Each of these devices may also include a user input interface and / or a user output interface (e.g., a display) for receiving and displaying data. For example, Figure 3 As shown, user device 308 and user device 310 both include a display on which data (e.g., content related to one or more blockchain operations) is displayed.
[0042] In addition, the devices in system 300 can run an application (or another suitable program). The application can cause the processor and / or control circuit to perform relevant operations to reduce network congestion on the blockchain network by supporting blockchain operations performed via off-chain interactions within a decentralized application environment.
[0043] Each of these devices may also include an electronic storage device. The electronic storage device may include a non-transitory storage medium that stores information electronically. The electronic storage medium of the electronic storage device may include one or both of the following: (i) a system storage device that is provided integrally with the server or client device (e.g., substantially non-removable), or (ii) a removable storage device that can be removably connected to the server or client device via, for example, a port (e.g., a USB port, a FireWire port, etc.) or a drive (e.g., a disk drive, etc.). The electronic storage device may include one or more optically readable storage media (e.g., optical disks, etc.), magnetically readable storage media (e.g., tapes, magnetic hard drives, floppy disk drives, etc.), charge-based storage media (e.g., EEPROM, RAM, etc.), solid-state storage media (e.g., flash drives, etc.), and / or other electronically readable storage media. The electronic storage device may include one or more virtual storage resources (e.g., cloud storage devices, virtual private networks, and / or other virtual storage resources). The electronic storage device may store software algorithms, information determined by a processor, information obtained from a server, information obtained from a client device, or other information that implements the functions described herein.
[0044] Figure 3 Also included is a network 306, which may include communication paths between user devices. The communication paths may include the Internet, a mobile phone network, a mobile voice or data network (e.g., a 5G or LTE network), a cable network, a public switched telephone network, or other types of communication networks or combinations of communication networks. The communication paths may include one or more communication paths, such as satellite paths, fiber optic paths, cable paths, paths that support Internet communications (e.g., IPTV), free space connections (e.g., for broadcast or other wireless signals), or any other suitable wired or wireless communication paths or combinations of such paths, individually or together. The computing device may include additional communication paths that link multiple hardware, software, and / or firmware components that operate together. For example, the computing device may be implemented by a cloud that is a computing platform that operates together as a computing device.
[0045] Figure 4A schematic diagram for operating in a decentralized application using blockchain operations according to one or more embodiments is shown. For example, system 400 may include a user device 402. In addition, user device 402 may include an application (e.g., application 404) implemented on and / or accessible by user device 402. For example, application 404 may interact with one or more other applications and / or application programming interfaces (APIs) to alleviate network congestion. For example, application 404 may include a decentralized application digital wallet and / or wallet service that is capable of signing and sending transactions to transfer tokens and / or perform other blockchain operations, as well as being able to interact with one or more decentralized applications.
[0046] The system 400 also includes an API layer 406. In some embodiments, the API layer 406 can be implemented on the user device 402. Alternatively or in addition, the API layer 406 can reside on one or more cloud components (e.g., server 408). For example, the API layer 406 can reside on the server 408 and include platform services for custodial wallet services, decentralized applications, etc. The API layer 406 (which can be a REST or web service API layer) can provide a decoupled interface to the data and / or functionality of one or more applications.
[0047] The API layer 406 can provide various low-level and / or blockchain-specific operations to alleviate network congestion on the blockchain network by supporting blockchain operations performed via off-chain interactions. For example, the API layer 406 can provide blockchain operations such as blockchain writes. In addition, the API layer 406 can perform transfer verification before forwarding a blockchain operation (e.g., a transaction) to another service (e.g., a cryptographic service). The API layer 406 can then record the results. For example, by recording to the blockchain before forwarding, the API layer 406 can maintain internal records and balances without relying on external verification (e.g., based on blockchain update activity, which may take up to ten minutes).
[0048] API layer 406 may also provide information reading. For example, API layer 406 (or a platform service powered by API layer 406) may generate a blockchain operation log and write the results of the reading to an additional ledger (e.g., an internal record and / or indexer service). If this is done, users who access the information through other means can see consistent information, allowing downstream users to ingest the same data points as the user.
[0049] The API layer 406 may also provide a unified API to access balances, transaction histories, and / or other blockchain operational activity records between one or more decentralized applications and custodial user accounts. By doing so, the system maintains the security of sensitive information such as balances and transaction histories. Alternatively, the mechanism for maintaining such security would be to separate API access between decentralized applications and custodial user accounts using special logic. The introduction of special logic reduces the streamlining of the system, which may lead to system errors based on divergence and coordination.
[0050] The API layer 406 can provide a common, language-agnostic way to interact with applications. In some embodiments, the API layer 406 can include a web service API that provides a well-defined contract that describes the service in terms of its operations and the data types used to exchange information. REST APIs typically do not have this contract; instead, they are documented with client libraries for most common languages, including Ruby, Java, PHP, and JavaScript. SOAP web services are traditionally adopted in enterprises for publishing internal services and for exchanging information with partners in business-to-business (B2B) transactions.
[0051] API layer 406 can use various architectural arrangements. For example, system 400 can be based in part on API layer 406, so that there is strong adoption of SOAP and RESTful web services, using resources such as Service Repository and Developer Portal, but with low governance, standardization, and separation of concerns. Alternatively, system 400 can be based entirely on API layer 406, so that separation of concerns between layers such as API layer 406, services, and applications is in place.
[0052] In some embodiments, the system architecture can use a microservices approach. Such a system can use two types of layers: a front-end layer and a back-end layer where microservices reside. In this architecture, the role of the API layer 406 can be to provide integration between the front-end layer and the back-end layer. In such a case, the API layer 406 can use a RESTful API (exposed to the front-end or even the communication between microservices). The API layer 406 can use the Advanced Message Queuing Protocol (AMQP), which is an open standard for delivering business messages between applications or organizations. The API layer 406 can use an open source, high-performance remote procedure call (RPC) framework that can run in a decentralized application environment. In some embodiments, the system architecture can use an open API approach. In this case, the API layer 406 can use a commercial or open source API platform and its modules. The API layer 406 can use a developer portal. The API layer 406 can use strong security constraints of an application web application firewall, which protects decentralized applications and / or the API layer 406 from common web vulnerabilities, robots, and denial of service (DoS) attacks. The API layer 406 can use RESTful API as a standard for external integration.
[0053] like Figure 4 As shown, system 400 can use API layer 406 to communicate with server 408 and / or facilitate blockchain operations on server 408. For example, server 408 can represent a custodial platform for blockchain operations. The custodial platform can manage private keys stored by a centralized service provider (e.g., server 408). In this case, server 408 can communicate with blockchain 410, a wallet service for blockchain 410, an indexer service for blockchain 410 (e.g., Figure 5 ) and / or other platform services.
[0054] For example, a wallet service may include an application and / or software-based system that securely stores a user's payment information, private keys, and / or passwords, thereby facilitating blockchain operations on websites, nodes, and / or other devices. In some embodiments, the wallet service may also provide access to additional ledgers (e.g., a second ledger). In addition, as described above, the second ledger may receive updates directly from the API layer 406, rather than relying on data extracted directly from the blockchain 410.
[0055] For example, the system 400 can maintain its records (e.g., real-time records and records used for accounting) in good order, separate from the balances on the blockchain 410. That is, the system 400 can maintain an architecture featuring a second ledger (on which balances are stored and updated) and a log of blockchain operations. Conventional systems may rely on directly referencing the blockchain 410, but since the blockchain is the system's source of truth, this reliance leads to additional technical issues.
[0056] First, there is a high probability of impedance mismatch between the format of the platform service and the API used to retrieve data from the blockchain (e.g., this may result in bookkeeping imbalances). For example, the system 400 may need to be able to generate bookkeeping entries that reflect changes in balances. However, while changes in balances can be tracked by checking the blockchain 410, this requires additional processing and computing power.
[0057] Second, accounting changes in a blockchain architecture should be irreversible. This is achieved in practice for current blockchain operations by waiting for a variable number of confirmations from a blockchain (e.g., blockchain 410). By waiting for a variable number of confirmations, the likelihood of error in the blockchain becomes infinitesimally small. However, while blockchain services rely on this approach, this is not an inherent rule of the blockchain itself. That is, blockchains do not have an inherent authentication mechanism that relies on a large number of confirmations. Instead, blockchains rely on an absolute system - blockchain operations are either recorded on a specific node or they are not recorded.
[0058] Thus, forks in a blockchain are always possible. In the event of a fork, the system 400 may not follow the "right" fork for an indeterminate amount of time. If this occurs, and if the system 400 decides to move from one fork to another for the purpose of custody of the digital wallet, the system 400 may have a more direct mechanism to maintain an accurate history of the user account location if the system 400 stores the user account location independently of a given blockchain. In addition, in the event of a fork, the system 400 performs some internal remediation of the user account, which is achieved by the system 400 maintaining an insulation layer from the blockchain for remediating blockchain operations. For example, the system 400 may have a separate storage device protected by a second ledger (e.g., a ledger service) for reading and protected by a transfer service for writing, which reflects the state of the blockchain relevant to the purposes of the system 400.
[0059] In some embodiments, the system may also use one or more application binary interfaces (ABIs). An ABI is an interface between two program modules (usually between an operating system and a user program). The ABI may be specific to a blockchain protocol. For example, the Ethereum Virtual Machine (EVM) is a core component of the Ethereum network, and a smart contract may be a piece of code stored on the Ethereum blockchain that is executed on the EVM. Smart contracts written in high-level languages such as Solidity or Vyper may be compiled by the system into EVM executable bytecode. When a smart contract is deployed, the bytecode is stored on the blockchain and associated with an address. To access a function defined in a high-level language, the system translates the name and parameters into a byte representation of the bytecode to work with it. To interpret the bytes sent in the response, the system converts back to a tuple of return values defined in a high-level language (e.g., a finite ordered list of elements). Languages compiled for the EVM maintain strict conventions about these conversions, but in order to execute them, the system must maintain precise names and types associated with the operations. The ABI precisely records these names and types in an easily parsable format, translating between human-expected method calls and discoverable and reliable smart contract operations.
[0060] For example, an ABI defines methods and structures for interacting with binary contracts similar to an API (but at a lower level). The ABI instructs the caller of a function to encode the required information (such as function signatures and variable declarations) in a format that the EVM can understand (e.g., ABI encoding) to call the function in bytecode. ABI encoding can be done automatically by the system using a compiler or wallet that interacts with the blockchain.
[0061] Figure 5 A schematic diagram of a blockchain indexer located at a platform service according to one or more embodiments is shown. For example, in some embodiments, the system can use the indexer service 500 to alleviate network congestion. The indexer service 500 can obtain raw data (e.g., data related to the current state and / or instance of the blockchain 502) from the nodes of the blockchain network (e.g., as described above). The indexer service 500 can then process the data and store the data in a database and / or data structure in an efficient manner to provide fast access to the data. For example, the indexer 504 can publish and / or record a subset of blockchain operations that occur for the blockchain 502. Therefore, for subsequent blockchain operations, the indexer service 500 can reference the index at the indexer 504 (rather than the node of the blockchain 502) to provide various services at the platform service 506.
[0062] In some embodiments, indexer 504 can be used as an off-chain ledger to alleviate network congestion during blockchain operations. For example, the system can modify records, values, and / or entries in indexer 504 to reflect blockchain operations without performing synchronous on-chain events through the blockchain network. By doing so, indexer 504 can avoid network charges and processing costs. For example, indexer 504 can receive communications (e.g., fees) based on the interaction of user device 508 and user device 510. In some embodiments, user device 508 and user device 510 can correspond to user interface 100 ( Figure 1 ) and user interface 150 ( Figure 1 ).
[0063] For example, a system (e.g., indexer 504 at platform service 506) may receive a communication (e.g., from user device 508) to initiate an off-chain response corresponding to a blockchain operation on a blockchain network (e.g., blockchain 502). The platform service may then determine whether the recipient of the blockchain operation (e.g., corresponding to user device 510) uses an account managed by platform service 506.
[0064] For example, the indexer 504 may store a predetermined list of blockchain operations to monitor for the index and / or record according to the index. These may include blockchain operations related to a given type of blockchain operation (e.g., "transaction", "external transfer", "internal transfer", "new contract metadata", "ownership change", etc.) (e.g., "operation included", "operation removed", "operation completed") and blockchain operations related to a given protocol, protocol subgroup, and / or other characteristics (e.g., "ETH", "ERC20", and / or "ERC721"). In addition and / or alternatively, various blockchain operations and metadata related to those blockchain operations (e.g., block designation, user account, timestamp, etc.) and aggregations of multiple blockchain operations (e.g., total number of blockchain operations, rate of blockchain operations, rate of blockchain updates, etc.) may be monitored and / or recorded.
[0065] The indexer 504 may likewise provide navigation and search features (e.g., supporting Boolean operations) for the indexed blockchain operations. In some embodiments, the indexer 504 may apply one or more formatting protocols to generate representations of the indexed blockchain operations in a human-readable format. In some embodiments, the indexer 504 may also tag blockchain operations based on whether the blockchain operations originate from a local user account (e.g., a user account corresponding to a custodial account) and / or a locally hosted digital wallet. The indexer service 500 may determine whether a blockchain operation contains relevant information for a user of the indexer service 500 by storing information about whether an address is an internal address of the indexer service 500 or an address used in a digital wallet hosted by a predetermined wallet service. For example, the indexer 504 may allow the platform service 506 to facilitate off-chain blockchain operations between users by modifying entries in its off-chain ledger.
[0066] Figure 6 A flow chart of steps involved in alleviating network congestion according to one or more embodiments is shown. For example, a system may use process 600 (e.g., as implemented on one or more system components described above) to alleviate network congestion on a blockchain network by supporting blockchain operations performed via off-chain interactions. For example, the system may be used to make payments between a point-of-sale terminal or other electronic payment system involving a merchant and a user, where the payment is made in cryptocurrency and / or has some other blockchain dependency. In turn, the system may generate an off-chain response. For example, the off-chain response may be a payment (e.g., in fiat currency). Additionally or alternatively, the off-chain response may include an electronic payment (or e-payment). An electronic payment may include any non-cash payment that does not involve a paper check (e.g., a credit card, a debit card, and / or using the ACH (Automated Clearing House) network).
[0067] At step 602, process 600 (e.g., using one or more components described above) receives a communication. For example, the system can receive a communication to initiate an off-chain response corresponding to a blockchain operation on a blockchain network, where the off-chain response corresponds to a first user. For example, the system can receive a communication from a merchant (e.g., a first user) requesting authorization for a transaction involving a cryptocurrency. The merchant can be a self-managed merchant (e.g., having an account not managed by a platform service) or a custodial merchant (e.g., having an account managed by a platform service).
[0068] Communications may be received and / or generated in a variety of ways. For example, the system may receive a first user input in a user interface from a first user, where the first user input corresponds to accessing a webpage of a second user. The system may receive a second user input in a user interface from a first user, where the second user input corresponds to selecting an icon in a webpage, and where the icon corresponds to generating a communication. For example, a user may select a “Pay with Crypto” option present on a hosted webpage and / or checkout screen. This option may open an iframe for the user to log in to the platform service and authenticate in order to use their digital asset funds to pay for a product (e.g., as described in the example above) at checkout. Figure 1 described above).
[0069] Additionally or alternatively, the system may receive a first user input from a first user in a user interface, wherein the first user input corresponds to a web application for a platform service. The system may then generate a machine-readable optical label indicating a first address, a second address, and an off-chain characteristic. For example, a user may select a "Pay with Crypto" option present on a hosted web page and / or a checkout screen. The option may then generate a QR code for performing a blockchain operation. For example, a second user may include a merchant that scans a QR code displayed on a mobile device of the first user. The QR code may include information about an off-chain response (e.g., an electronic payment), such as the entities involved, the price of the goods or services being discussed, and the like. The QR code may include several off-chain characteristics. For example, an off-chain characteristic may include any characteristic that can distinguish one off-chain response from another off-chain response. In some embodiments, an off-chain response may include an electronic payment. In this case, the off-chain characteristic may include the amount of the electronic payment.
[0070] In some embodiments, the system may determine the first address based on a user account. For example, the system may determine a user account corresponding to a first user. The system may then retrieve a first cryptography-based storage application based on the user account. For example, the system may receive user identifier information (e.g., a user account number) and other transaction details (e.g., an identity of an off-chain entity, an account corresponding to an off-chain entity, a time period, a good or service related to the transaction, a price related to the transaction, and / or other information related to the transaction).
[0071] In some embodiments, the communication may be encrypted. The system may perform decryption of the communication by retrieving a portion of the encryption key pair and verifying the communication based on the portion. For example, in response to receiving a communication from a user, the system may verify the authenticity of the communication. In some embodiments, the system may need to decrypt and / or otherwise process encryption on the communication (e.g., an entity off the chain may use encryption to make it difficult for an intruder to intercept confidential information). In some embodiments, the system may use secure socket layer (“SSL”) technology to encrypt data. The system may then utilize software that verifies the user's electronic payment information (e.g., which is received at a secure server). In this case, the system may retrieve an SSL certificate (also known as a TLS or SSL / TLS certificate), which is a digital document that binds the identity of a website to an encryption key pair consisting of a public key and a private key. The public key included in the certificate allows the merchant to initiate an encrypted communication session with the platform service via the TLS and HTTPS protocols. For example, the private key may be kept safe on the merchant's server and used to digitally sign the communication.
[0072] At step 604, process 600 (e.g., using one or more components described above) determines a first address for performing blockchain operations. For example, the system may determine a first address of a first cryptography-based storage application for performing blockchain operations based on the communication, wherein the first cryptography-based storage application corresponds to the first user, and wherein the first cryptography-based storage application is managed by the platform service. For example, the first address may correspond to a custodial or non-custodial cryptography-based storage application assigned by the blockchain. The wallet may correspond to a private key and / or public key that allows the blockchain operations to be performed using funds and / or information in the wallet.
[0073] For example, the first cryptography-based storage application may be a non-custodial cryptography-based storage application. That is, the first cryptography-based storage application may be a separate standalone application that allows users to store their own passwords or maintain custody of their own passwords and explore the decentralized web using a decentralized application browser. The first cryptography-based storage application may be a standalone application that does not require interaction with a user account (e.g., an account from a blockchain service provider, a centralized brokerage firm, and / or an exchange). The first cryptography-based storage application may allow users to manage their own private keys and store their crypto assets directly on their devices (rather than through a centralized brokerage firm or exchange).
[0074] Alternatively, the first cryptography-based storage application may be a custodial or semi-custodial cryptography-based storage application. That is, the first cryptography-based storage application may be a separate standalone application that allows users to store their own passwords or maintain custody of their own passwords and explore the decentralized web using a decentralized application browser through an application provided by a blockchain service provider, centralized brokerage firm, and / or exchange. The first cryptography-based storage application may be an application that needs to interact with a user account from a blockchain service provider, centralized brokerage firm, and / or exchange. The first cryptography-based storage application may allow users to have their private keys managed by the blockchain service provider, centralized brokerage firm, and / or exchange without having to store their own private keys (at least in full) and crypto assets directly on their devices.
[0075] At step 606, process 600 (e.g., using one or more of the above components) determines a second address for performing blockchain operations. For example, the system may determine a second address of a second cryptography-based storage application for performing blockchain operations based on the communication, wherein the second cryptography-based storage application corresponds to a second user. For example, the second cryptography-based storage application may be a custodial or semi-custodial cryptography-based storage application. That is, the second cryptography-based storage application may be a separate standalone application that allows users to store their own passwords or maintain custody of their own passwords and explore the decentralized web using a decentralized application browser through an application provided by a blockchain service provider, a centralized brokerage firm, and / or an exchange. The second cryptography-based storage application may be an application that requires interaction with a user account from a blockchain service provider, a centralized brokerage firm, and / or an exchange. The second cryptography-based storage application may allow users (e.g., merchants) to have their private keys managed by the blockchain service provider, the centralized brokerage firm, and / or the exchange without having to store their own private keys (at least in full) and crypto assets directly on their devices (or to their accounts).
[0076] At step 608, process 600 (eg, using one or more components described above) determines whether a common platform service exists based on the first address and the second address. For example, the system can determine whether the second cryptography-based storage application is managed by a platform service.
[0077] In some embodiments, the system can compare the characteristics of the address with known addresses of the platform service. For example, the system can retrieve the second address from the communication. The system can then compare the second address with a list of addresses of a cryptography-based storage application managed by the platform service.
[0078] At step 610, process 600 (e.g., using one or more components described above) determines a type of off-chain response based on the common platform service. For example, in response to determining that the second cryptography-based storage application is managed by the platform service, the system can modify the off-chain ledger of the platform service to reflect the blockchain operation without performing a synchronous on-chain event between the first cryptography-based storage application and the second cryptography-based storage application through the blockchain network.
[0079] The system may determine the type of off-chain response based on whether the second digital wallet is managed by a public platform service. For example, if the second digital wallet is managed by a public platform service, the platform service may provide additional options and features for the off-chain response. These options and features may include the type of asset transferred (e.g., legal assets, digital assets, and / or specific payment formats), the information provided (e.g., party identifiers, contract information, transaction details), etc. For example, the type of off-chain response may be based on any characteristics that distinguish one off-chain response from another off-chain response. The system may use these characteristics to determine the processing workflow for generating the off-chain response.
[0080] In some embodiments, the system may determine the type of off-chain response based on determining that the second cryptography-based storage application is managed by the platform service. In response to determining the type, the system may modify the off-chain ledger of the platform service to reflect the blockchain operation without performing a synchronous on-chain event between the first cryptography-based storage application and the second cryptography-based storage application through the blockchain network.
[0081] For example, if the system determines that both the first cryptography-based storage application and the second cryptography-based storage application are managed by the platform service, the system can process blockchain operations off-chain to avoid excessive network charges and processing costs.
[0082] Alternatively, in response to determining that the second cryptography-based storage application is not managed by the platform service, the system may use a third cryptography-based storage application to perform blockchain operations on the blockchain network, wherein the third cryptography-based storage application includes an integrated account for the platform service.
[0083] For example, the third cryptography-based storage application may be a custodial or semi-custodial cryptography-based storage application associated with the platform service. In some embodiments, the third cryptography-based storage application may include an omnibus account. The omnibus account may include a pass-through funds account created to collect incoming payments for custodial fees.
[0084] At step 612, process 600 (e.g., using one or more components described above) transmits an off-chain response. For example, the system can transmit an off-chain response from the platform service to the second user. For example, after completing the blockchain operation, the platform service can transmit an amount (e.g., a portion of the amount corresponding to the electronic payment) to the merchant.
[0085] In some embodiments, the off-chain response (or the characteristics of the off-chain response) may be affected by network conditions, current exchange rates, platform fees, and the like. For example, the system may determine a processing metric, where the processing metric is used to account for changes in processing characteristics that occur during blockchain operations. For example, the system may determine a hedging spread that can absorb exchange rate fluctuations based on the conversion of digital assets involved in the blockchain operation to fiat currencies for off-chain responses. The system may then determine a first blockchain operation characteristic based on user input. For example, a blockchain operation characteristic may include any characteristic that can distinguish one blockchain operation from another. In some embodiments, the off-chain response may include an electronic payment. In this case, the blockchain operation characteristic may include an amount of cryptocurrency corresponding to the amount of the electronic payment (e.g., based on an exchange rate). The system may then determine a second blockchain operation characteristic based on the sum of the processing metric and the first blockchain operation characteristic. The second blockchain characteristic may be the total amount of the electronic payment (e.g., converted into cryptocurrency) and the hedging spread.
[0086] In some embodiments, the system may use a digital key signing ceremony to perform a blockchain operation. For example, the system may retrieve a first portion of a private key from a secure user account. The system may query a first user device to perform a blockchain operation using a second portion of a private key. The system may generate a first digital signature based on the first portion of the private key and the second portion of the private key, and perform the blockchain operation based on the digital signature. For example, in some embodiments, the system may use a multi-computation signature system including multiple private keys.
[0087] For example, the system may use a multi-party computation ("MPC") system. MPC involves the use of multiple parties, each of which holds corresponding private data that can be used to evaluate computations without ever exposing any of the private data held by each party. For example, each of the multiple parties may have private data (e.g., d1, d2, ..., d N The parties can use their respective private data together to compute the value of a public function: (e.g., F((d1, d2, …, d N )). When private data is used to compute a value based on a function, the private data remains private during the process.
[0088] The use of MPC-based keys reduces the risks involved in private key loss and / or private key access by unauthorized parties. For example, traditional key sharing systems rely on public-private key configurations, where the security of the system is tied to the private key remaining private. In some cases, these keys are stored in various cryptography-based digital repositories (or digital wallets). These digital wallets can have a variety of configurations, typically categorized by whether the private key is held online or offline. For example, hot storage wallets have private keys held online. Cold storage wallets have private keys held offline, and hardware wallets have private keys held offline and on physical devices (e.g., thumb drives). While holding private keys offline and / or binding private keys to physical devices is beneficial from a security perspective, this creates practical problems when attempting to operate with a digital wallet. For example, in order to operate, a user must be able to access the private key from their offline location and / or physical device. This is particularly burdensome for MPC-based key operations because it requires each user (e.g., corresponding to the corresponding private key) to be available at a given time.
[0089] In addition, the use of private keys stored at offline locations and / or physical devices increases the risk that the offline location becomes inaccessible and / or the physical device is lost. In this case, the digital wallet and any digital assets therein may also be lost. This creates a key flaw in MPC-based key operations because the loss of any one key may result in the loss of digital assets for all parties. The methods and systems described herein overcome this problem by using threshold signature requirements, separate approval and signing policies, independent key recovery mechanisms, and group / group key creation. More specifically, the methods and systems described herein mitigate the flaws in MPC-based key operations by creating MPC-based key operations in which MPC relies on partial private keys. In this case, one partial private key is kept online (e.g., in a hot wallet) while other partial private keys can be kept offline. In addition, due to the use of partial private keys, the exposure of online partial private keys does not itself create a security risk (e.g., because multiple partial private keys are required to perform blockchain operations, including offline partial private keys), and the loss of offline partial private keys (e.g., stored on user devices) does not create a risk of digital asset loss (e.g., because online partial private keys can be used to recover offline partial private keys).
[0090] MPC-based key operations maintain flexibility in the algorithms used. For example, the system can use online MPC algorithms, such as the Gennaro and Goldfeder MPC algorithm and the MPC algorithm of Lindell et al. Online MPC algorithms have two limitations that constrain their use in traditional systems. First, they require users to wait for blockchain operations to go through up to eight to twelve rounds of signatures, which can create latency issues. Second, they require the use of online storage for private keys. Since partial private keys are used (e.g., including online and offline pairs), the system can use online MPC algorithms. Furthermore, assuming that the online partial private keys meet the online requirements of the online MPC algorithm, the system can use the online MPC algorithm while maintaining the offline partial private keys (e.g., increasing overall security).
[0091] Additionally, the MPC-based key operations used by the system may include offline and / or online hybrid MPC algorithms. For example, the system may use an MPC algorithm that includes dynamic key refreshes (e.g., private key shares may be dynamically updated / modified at given intervals) and / or dynamic approval and / or signing policies. Online partial private keys make these dynamic policies possible. Thus, the system introduces the enhanced security of a dynamic system while still maintaining the security of an offline system (e.g., by using offline partial private keys).
[0092] Finally, MPC-based key operations can use a threshold key signature strategy where only a threshold number of users (e.g., corresponding to partial private keys of the users) are required. When the system determines that the threshold is met, the system can allow subsequent users (e.g., online users) to complete and execute the blockchain operation. Thus, the system allows the use of MPC-based key operations without requiring all parties to be online and / or available at the same time.
[0093] In some embodiments, querying the first user device to use the second portion of the private key may include: the system establishes a key signing session between the first user device and the first remote device, wherein during the key signing session, a random nonce value is generated based on the first portion of the private key and the second portion of the private key, and wherein the random nonce value is not shared with the first user device or the first remote device. For example, the key signing session may involve the setting of one or more parameters and a hash function. The system may also select a nonce value. The nonce may be any value that can be used once in a cryptographic communication. The system may determine the nonce as a random or pseudo-random value. The nonce value may be selected by the system based on an authentication protocol to ensure that previous blockchain operations (and / or communications containing them) cannot be reused. The system may also use the nonce value to initialize a vector of a hash function. For example, the system may select a nonce value to adjust the difficulty level (e.g., the amount of work required) in a proof-of-work system.
[0094] In some embodiments, the system may select a signature scheme based on the characteristics of the user device. For example, the system may determine the characteristics of the first user device and select a signature scheme for the first digital signature based on the characteristics. In some embodiments, the system may select a signature scheme based on the processing power and / or geographic location of the first user device. For example, some devices may encounter problems with low processing power and / or low connectivity. In this way, the system can determine the characteristics of the user device and select a signature scheme based on the characteristics. For example, the system can select a flexible round optimized Schnorr threshold signature (FROST) protocol, which can use a two-round distributed key generation (DKG) protocol to generate the random number required for the signature.
[0095] It is conceivable that Figure 6 The steps or descriptions of can be used with any other embodiments of the present disclosure. Figure 6 The steps and descriptions described may be performed in alternative orders or in parallel to facilitate the purposes of the present disclosure. For example, each of these steps may be performed in any order or in parallel or simultaneously to reduce latency or increase the speed of the system or method. In addition, it should be noted that any component, device, or equipment discussed above with respect to the figures may be used to perform Figure 6 One or more steps in .
[0096] The above embodiments of the present disclosure are presented for the purpose of illustration and not limitation, and the present disclosure is limited only by the appended claims. In addition, it should be noted that the features and limitations described in any one embodiment can be applied to any embodiment herein, and the flowcharts or examples associated with one embodiment can be combined with any other embodiment in a suitable manner, completed in a different order, or completed in parallel. In addition, the systems and methods described herein can be executed in real time. It should also be noted that the above systems and / or methods can be applied to or used according to other systems and / or methods.
[0097] The present invention will be better understood with reference to the following embodiments: 1. A method, the method comprising: receiving a communication initiating an off-chain response corresponding to a blockchain operation on a blockchain network, wherein the off-chain response corresponds to a first user; determining a first address of a first cryptography-based storage application for performing the blockchain operation based on the communication, wherein the first cryptography-based storage application corresponds to the first user, and wherein the first cryptography-based storage application is managed by a platform service; determining a second address of a second cryptography-based storage application for performing the blockchain operation based on the communication, wherein the second cryptography-based storage application corresponds to a second user; determining whether the second cryptography-based storage application is managed by the platform service; in response to determining that the second cryptography-based storage application is managed by the platform service, modifying an off-chain ledger of the platform service to reflect the blockchain operation without performing a synchronous on-chain event between the first cryptography-based storage application and the second cryptography-based storage application through the blockchain network; and transmitting the off-chain response from the platform service to the second user.
[0098] 2. A method according to the aforementioned embodiment, wherein the method is used to alleviate network congestion on a blockchain network by supporting blockchain operations performed via off-chain interactions between cryptography-based storage applications sharing a common platform.
[0099] 3. A method according to any one of the preceding embodiments, wherein receiving a communication is based on: receiving a first user input from a first user in a user interface, wherein the first user input corresponds to accessing a web page of a second user; and receiving a second user input from the first user in the user interface, wherein the second user input corresponds to selecting an icon in a web page, and wherein the icon corresponds to generating a communication.
[0100] 4. A method according to any one of the preceding embodiments, wherein receiving communication is based on: receiving a first user input from a first user in a user interface, wherein the first user input corresponds to a web application for a platform service; generating a machine-readable optical label indicating a first address, a second address, and off-chain characteristics.
[0101] 5. The method according to any one of the preceding embodiments further includes: in response to determining that the second cryptography-based storage application is not managed by the platform service, using a third cryptography-based storage application to perform blockchain operations on the blockchain network, wherein the third cryptography-based storage application includes a comprehensive account of the platform service.
[0102] 6. The method according to any one of the preceding embodiments further includes: determining a processing metric, wherein the processing metric is used to account for changes in processing characteristics that occur during blockchain operation; determining a first blockchain operation characteristic based on user input; and determining a second blockchain operation characteristic based on the sum of the processing metric and the first blockchain operation characteristic.
[0103] 7. A method according to any one of the preceding embodiments, wherein determining the first address based on the communication further comprises: determining a user account corresponding to the first user; and retrieving a first cryptography-based storage application based on the user account.
[0104] 8. The method according to any of the preceding embodiments further includes: retrieving a portion of the encryption key pair; and verifying the communication based on the portion.
[0105] 9. The method according to any one of the preceding embodiments also includes: retrieving a first partial private key from a first user device corresponding to the first user; querying a second user device to perform a blockchain operation using the second partial private key; and generating a first digital signature based on the first partial private key and the second partial private key.
[0106] 10. A method according to any one of the preceding embodiments, wherein querying the first user device to use the second portion of the private key includes establishing a key signing session between the first user device and the second user device, wherein during the key signing session, a random nonce value is generated based on the first portion of the private key and the second portion of the private key, and wherein the random nonce value is not shared with the first user device or the second user device.
[0107] 11. The method according to any one of the preceding embodiments further includes: determining a characteristic of the first user device; and selecting a signature scheme for the first digital signature based on the characteristic.
[0108] 12. A method according to any of the preceding embodiments, wherein determining whether the second cryptography-based storage application is managed by the platform service comprises: retrieving a second address from the communication; and comparing the second address with a list of addresses of cryptography-based storage applications managed by the platform service.
[0109] 13. A tangible, non-transitory, machine-readable medium storing instructions that, when executed by a data processing apparatus, cause the data processing apparatus to perform operations including those of any of embodiments 1-12.
[0110] 14. A system comprising: one or more processors; and a memory storing instructions that, when executed by the processor, cause the processor to implement operations including those of any of embodiments 1-12.
[0111] 15. A system comprising means for performing any one of embodiments 1-12.
Claims
1. A system for alleviating network congestion on a blockchain network by supporting blockchain operations performed via off-chain interactions between cryptography-based storage applications sharing a common platform, the system comprising: one or more processors; as well as One or more non-transitory media including instructions recorded thereon that, when executed by the one or more processors, result in operations including: receiving an encrypted communication initiating an off-chain response corresponding to a blockchain operation on a blockchain network, wherein the off-chain response corresponds to a first user; determining, based on the encrypted communication, a secure user account hosted by a platform service corresponding to the first user; determining, based on the secure user account, a first address of a first cryptography-based storage application for performing the blockchain operation, wherein the first cryptography-based storage application corresponds to the first user, and wherein the first cryptography-based storage application is managed by the platform service; determining, based on the encrypted communication, a second address of a second cryptography-based storage application for performing the blockchain operation, wherein the second cryptography-based storage application corresponds to a second user; determining whether the second cryptography-based storage application is managed by the platform service; determining a type of the off-chain response based on determining that the second cryptography-based storage application is managed by the platform service; In response to determining the type, modifying an off-chain ledger of the platform service to reflect the blockchain operation without performing synchronous on-chain events between the first cryptography-based storage application and the second cryptography-based storage application over the blockchain network; as well as The off-chain response is transmitted from the platform service to the second user.
2. A method for alleviating network congestion on a blockchain network by supporting blockchain operations performed via off-chain interactions between cryptography-based storage applications sharing a common platform, the method comprising: receiving a communication initiating an off-chain response corresponding to a blockchain operation on a blockchain network, wherein the off-chain response corresponds to a first user; determining, based on the communication, a first address of a first cryptography-based storage application for performing the blockchain operation, wherein the first cryptography-based storage application corresponds to the first user, and wherein the first cryptography-based storage application is managed by a platform service; determining, based on the communication, a second address of a second cryptography-based storage application for performing the blockchain operation, wherein the second cryptography-based storage application corresponds to a second user; determining whether the second cryptography-based storage application is managed by the platform service; In response to determining that the second cryptography-based storage application is managed by the platform service, modifying an off-chain ledger of the platform service to reflect the blockchain operation without performing synchronous on-chain events between the first cryptography-based storage application and the second cryptography-based storage application over the blockchain network; as well as The off-chain response is transmitted from the platform service to the second user.
3. The method according to claim 2, wherein: Receiving said communication is based on: receiving a first user input from the first user in a user interface, wherein the first user input corresponds to accessing a web page of the second user; as well as A second user input is received in the user interface from the first user, wherein the second user input corresponds to a selection of an icon in the web page, and wherein the icon corresponds to generating the communication.
4. The method according to claim 2, wherein: Receiving said communication is based on: receiving a first user input from the first user in a user interface, wherein the first user input corresponds to a web application for the platform service; and A machine-readable optical label is generated that indicates the first address, the second address, and an off-chain characteristic.
5. The method according to claim 2, further comprising: In response to determining that the second cryptography-based storage application is not managed by the platform service, performing the blockchain operations on the blockchain network using a third cryptography-based storage application, wherein the third cryptography-based storage application includes an omnibus account for the platform service.
6. The method according to claim 2, further comprising: determining a processing metric, wherein the processing metric is used to account for changes in processing characteristics that occur during operation of the blockchain; determining a first blockchain operational characteristic based on the user input; as well as A second blockchain operational characteristic is determined based on a sum of the processing metric and the first blockchain operational characteristic.
7. The method according to claim 2, wherein: Determining the first address based on the communication further comprises: determining a user account corresponding to the first user; and The first cryptography-based storage application is retrieved based on the user account.
8. The method according to claim 2, further comprising: Retrieve a portion of an encryption key pair; as well as The communication is authenticated based on the portion.
9. The method according to claim 2, further comprising: retrieving a first partial private key from a first user device corresponding to the first user; querying a second user device to use the second portion of the private key to perform the blockchain operation; as well as A first digital signature is generated based on the first partial private key and the second partial private key.
10. The method according to claim 9, wherein: Querying the first user device to use the second partial private key includes establishing a key signing session between the first user device and the second user device, wherein during the key signing session, a random nonce value is generated based on the first partial private key and the second partial private key, and wherein the random nonce value is not shared with the first user device or the second user device.
11. The method according to claim 9, further comprising: determining a characteristic of the first user equipment; as well as A signature scheme for the first digital signature is selected based on the characteristic.
12. The method according to claim 2, wherein: Determining whether the second cryptography-based storage application is managed by the platform service includes: retrieving the second address from the communication; and The second address is compared to a list of addresses of cryptography-based storage applications managed by the platform service.
13. One or more non-transitory computer-readable media comprising instructions recorded thereon that, when executed by one or more processors, result in operations comprising: receiving a communication initiating an off-chain response corresponding to a blockchain operation on a blockchain network, wherein the off-chain response corresponds to a first user; determining, based on the communication, a first address of a first cryptography-based storage application for performing the blockchain operation, wherein the first cryptography-based storage application corresponds to the first user, and wherein the first cryptography-based storage application is managed by a platform service; determining, based on the communication, a second address of a second cryptography-based storage application for performing the blockchain operation, wherein the second cryptography-based storage application corresponds to a second user; determining whether the second cryptography-based storage application is managed by the platform service; In response to determining that the second cryptography-based storage application is managed by the platform service, modifying an off-chain ledger of the platform service to reflect the blockchain operation without performing synchronous on-chain events between the first cryptography-based storage application and the second cryptography-based storage application over the blockchain network; as well as The off-chain response is transmitted from the platform service to the second user.
14. One or more non-transitory computer-readable media according to claim 13, wherein: Receiving said communication is based on: receiving a first user input from the first user in a user interface, wherein the first user input corresponds to accessing a web page of the second user; as well as A second user input is received in the user interface from the first user, wherein the second user input corresponds to a selection of an icon in the web page, and wherein the icon corresponds to generating the communication.
15. The one or more non-transitory computer-readable media of claim 13, wherein: Receiving said communication is based on: receiving a first user input from the first user in a user interface, wherein the first user input corresponds to a web application for the platform service; and A machine-readable optical label is generated that indicates the first address, the second address, and an off-chain characteristic.
16. The one or more non-transitory computer-readable media of claim 13, further comprising: In response to determining that the second cryptography-based storage application is not managed by the platform service, performing the blockchain operations on the blockchain network using a third cryptography-based storage application, wherein the third cryptography-based storage application includes an omnibus account for the platform service.
17. The one or more non-transitory computer-readable media of claim 13, further comprising: determining a processing metric, wherein the processing metric is used to account for changes in processing characteristics that occur during operation of the blockchain; determining a first blockchain operational characteristic based on the user input; as well as A second blockchain operational characteristic is determined based on a sum of the processing metric and the first blockchain operational characteristic.
18. The one or more non-transitory computer-readable media of claim 13, wherein: Determining the first address based on the communication further comprises: determining a user account corresponding to the first user; and The first cryptography-based storage application is retrieved based on the user account.
19. The one or more non-transitory computer-readable media of claim 13, further comprising: Retrieve a portion of an encryption key pair; as well as The communication is authenticated based on the portion.
20. The one or more non-transitory computer-readable media of claim 13, further comprising: determining that the second cryptography-based storage application is managed by the platform service; as well as The type of the off-chain response is determined based on determining that the second cryptography-based storage application is managed by the platform service.
Citation Information
Patent Citations
Blockchain message processing method and device, computer and readable storage medium
CN111401903A
An endogenous data security interaction method for a double-middle-station double-chain architecture
CN112347491A
Heterogeneous parallel block chain and on-chain data and off-chain contract cooperation method thereof
CN113821564A
Method, system and device for processing governance request under block chain, and medium
CN114244528A
Transaction processing method, apparatus, device and system
WO2021239089A1