Aspects of the present disclosure relate to management of blockchain addresses to improve efficiency of a blockchain network.
A blockchain is generally a distributed database or ledger that is shared among nodes of a computer next, and this is sometimes referred to as a blockchain network. Generally, “chain” or “blockchain” may refer to a blockchain network. Blockchains are generally configured to store information electronically in a digital formal, such as the record of ownership of an asset (e.g., a cryptocurrency asset). Blockchains may facilitate transactions, such as peer-to-peer transactions of assets.
To effectuate a peer-to-peer transaction on a blockchain, a sending user “transfers” an asset from the user's ownership to a receiving user's ownership. Each user uses a unique blockchain address to send and receive transactions on the blockchain, and may store such an address (and others) in a so-called blockchain “wallet.” Information regarding the transaction is recorded onto the blockchain and associated with the user's blockchain address.
Beneficially, in this manner, the transaction is recorded onto the blockchain “ledger” for all blockchain users to observe and verify, which enables secure and trustworthy transactions. However, this record allows tracking of balance and transaction history associated with individual blockchain address, which may be undesirable from a privacy standpoint. Thus, it may be desirable for a user of the blockchain to use different blockchain addresses for different transactions to improve privacy, for example, by reducing the ability to of observers to track the user's activity based on a common address.
However, technical problems arise when generating new blockchain addresses for every transaction. First, generating new blockchain addresses requires processing power, as the new blockchain address is generated based on the user's private key, such as through public key cryptography. Thus, generating a large number of new addresses for a large number of transactions is compute, time, and generally resource intensive. Further, each previous blockchain address must generally be maintained, which may require a significant amount of computer storage of time. Second, there is a fee associated with generating new blockchain addresses, as transactions on a blockchain (such as to generate a new address) incur a fee (e.g., gas fee or transaction fee).
Thus, there is a need in the art for improved systems and methods for managing blockchain addresses for users.
Certain aspects provide a method, comprising: receiving, from a first user, a first lease request for a blockchain address configured to receive a blockchain transaction on behalf of the first user; determining lease states for a plurality of existing blockchain addresses in a blockchain address lease pool; based on the determined lease states, determining whether to lease an existing blockchain address from the blockchain address lease pool or to generate a new blockchain address for the blockchain address lease pool; and leasing a first blockchain address from the blockchain address lease pool to the first user.
Other aspects provide processing systems configured to perform the aforementioned methods as well as those described herein; non-transitory, computer-readable media comprising instructions that, when executed by a processors of a processing system, cause the processing system to perform the aforementioned methods as well as those described herein; a computer program product embodied on a computer readable storage medium comprising code for performing the aforementioned methods as well as those further described herein; and a processing system comprising means for performing the aforementioned methods as well as those further described herein.
The following description and the related drawings set forth in detail certain illustrative features of one or more aspects.
The appended figures depict certain aspects and are therefore not to be considered limiting of the scope of this disclosure.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the drawings. It is contemplated that elements and features of one embodiment may be beneficially incorporated in other embodiments without further recitation.
Aspects described herein provide for systems and methods for managing blockchain addresses in a resource efficient manner, which in-turn enables users to leverage multiple blockchain addresses for improved privacy.
As described above, a technical problem exists in the art in which generating new blockchain addresses for new transactions to ensure privacy is resource inefficient, both in terms of use of physical resources, such as processing system compute, memory, power, and time, and in terms of financial resources, such as in regards to blockchain fees. Nevertheless, users, especially those completing a high volume of transactions on a blockchain, desire to generate and maintain many blockchain addresses to avoid, for example, blockchain observers from aggregating transaction information associated with the users.
Aspects described herein provide a technical solution to this technical problem by providing for the creation of and management of leasable addresses that may be utilized by any number of users. Notably, while different users can use different addresses within a lease pool at different times to improve privacy, this need not require creating new addresses, and then idling those addresses, every time the user transacts. Rather, the managed pool of leasable addresses recycles and reuses blockchain addresses following completed transactions. For example, a user may obtain a lease to a blockchain address (in other words, temporary use of the blockchain address) for a new transaction from a pool of available blockchain addresses without needing to generate a new address. Thereby, the user saves the resources conventionally required for obtaining a new address for a transaction, and the blockchain itself is spared an unnecessary transaction, which makes other transactions process more quickly. Once the transaction has completed, the blockchain address is returned to the pool of leasable addresses and may be used again later by other users. Thus, aspects described herein lead to beneficial technical effects, such as reduced use of processing resources, avoided delay in transaction time, more efficient use of the blockchain network, improved privacy, and others as described herein.
In certain aspects, blockchain addresses within a lease pool are assigned a state, wherein in some states, addresses are available for use by different users, and in other states, addresses are unavailable for use. For example, in an “available state” a blockchain address may be available to be “leased” to a user, allowing the blockchain address to be used to perform blockchain transactions (e.g., cryptocurrency transactions) on behalf of the user. In another example, in an unavailable state, a blockchain address may not be leased to another user to ensure there is no overlap in use by different users while a blockchain transaction is pending. Thus, a blockchain address management system may operate like a state machine with respect to managed addresses and enable different addresses to be used by different users at different times, which effectively provides the capabilities of a significantly larger number of unique addresses without the need to create that larger number of unique addresses. The reuse of addresses through a managed state system effectively multiplies the utility of the leased addresses.
In this example, customer 102 and merchant 104 desire to complete a transaction through blockchain network 106. For example, customer 102 may transfer cryptocurrency to merchant 104, such as to pay for goods or services.
As described above, merchant 104 may desire to use a different blockchain address for each transaction on blockchain network 106 to maintain privacy and avoid observer aggregation of transaction information; however, as above generating and managing a multitude of blockchain addresses is resource intensive. Instead, merchant 104 leases a blockchain address from blockchain address lease service 108 and uses the leased address for the transaction, and in so doing avoids the resources conventionally used to generate a new blockchain address.
After merchant 104 leases a blockchain address from blockchain address lease service 108, it may complete a blockchain-based transaction using blockchain network 106 (e.g., to receive cryptocurrency from customer 102).
Blockchain address lease service 108 maintains a blockchain address lease pool, and as described further with respect to
In this example, merchant 104 receives information from blockchain address lease service 108 regarding the leased blockchain address. This information may include the unique ID of the lease address as well as information on the length of the lease. Thereafter, merchant 104 transacts with customer 102 using blockchain network 106 and the leased blockchain address. For example, merchant 104 may receive payment from customer 102 for goods or services via blockchain network 106 using the leased blockchain address.
In some embodiments, blockchain address lease service 108 receives the blockchain transaction at the leased blockchain address on behalf of merchant 104. Blockchain address lease service 108 then allocates the blockchain assets received at the leased blockchain address to merchant 104.
In some embodiments, blockchain address lease service 108 assigns the leased blockchain address to a wallet associated with merchant 104. Merchant 104 receives the blockchain transaction at the leased blockchain address within the wallet.
After the transaction is complete, such as evidenced by receiving the assets at the leased address, the lease of the blockchain address to merchant 104 expires and the formerly leased blockchain address becomes available once again for subsequent leases to merchant 104 or other users. In some cases, the blockchain address may be removed from the wallet associated with merchant 104 after expiration of the lease. Beneficially, then, merchant 104 does not need to maintain a database of blockchain addresses, nor does merchant 104 need to generate a new blockchain addresses for every transaction. Moreover, as merchant 104 uses different leased blockchain addresses for different transaction, privacy is improved and the ability to track the transactions of merchant 104 is reduced.
As described above with respect to
As shown at arrow 205, upon the lease of a blockchain address expiring, the state of the blockchain address transitions to a grace period state 206. As above, in grace period state 206, the blockchain address is available for lease only to the immediate prior user, and no other users. This grace period thus helps to avoid any confusion, disputed, or the like with addresses being used by different users before a transaction is completed, for example.
A lease to a blockchain address may expire based on one or more factors associated with the lease, such as, for example, the time period of the lease. The lease to the blockchain address may also expire based on one or more factors associated with the blockchain address, such as the type of blockchain for which the blockchain address is allocated, the type of transaction to be performed with the blockchain address, the activity level of the blockchain for which the blockchain address is allocated, and others. Additionally, the lease of the blockchain address may expire based on the duration of the transaction, for example, by receiving an indication the transaction has completed on the blockchain. Further, the lease of the blockchain address may expire based on one or more factors associated with a user, for example, user preferences, such as a user lease period, a user activity level, and the like.
In some embodiments, the user may be notified of expiration of the lease. For example, a user may receive a notification or indication of expiration of the lease, such as from the blockchain address lease service 108 in
As shown at arrow 207, during grace period state 206, the immediate prior user that leased the blockchain address (e.g., while in allocated state 204) may request to re-lease the blockchain address. If this occurs, then the blockchain address returns to the allocated state 204.
As shown at arrow 209, upon the grace period expiring, the state of the blockchain address may return to idle state 202.
A grace period may be set to expire in various ways. For example, the blockchain address may remain in grace period state 206 while a blockchain transaction completes. In some embodiments, the blockchain associated with the blockchain address may be monitored (e.g., by blockchain address lease service 108 of
Note that state transition diagram 200 is just one example, and other transition diagrams having additional, fewer, alternative, or differently states may be implemented.
Initially, flow 300 begins at step 302 with a user (e.g., merchant 104 of
Flow 300 then proceeds to step 306 with determining if there is a blockchain address in the idle state, such as idle state 202 in
If a blockchain address in the idle state has been previously leased to the requesting user, then that blockchain address is selected for lease to the requesting user, and flow 300 proceeds to step 320.
If there is not a blockchain address in the idle state that has been previously leased to the requesting user, then flow 300 proceeds to step 308 with determining if there is a blockchain address in a grace period state, such as grace period state 206 in
If a blockchain address in the grace period state was last leased to the requesting user, then the blockchain address is selected for lease to the requesting user and flow 300 proceeds to step 320.
If there is not a blockchain address in the grace period state that was last leased to the requesting user, then flow 300 proceeds to step 310 with determining if there is a blockchain address in an idle state available for lease to the user that has not previously been leased to the user.
Flow 300 allows a blockchain address lease pool to be shared by a plurality of users, allowing the users to obtain different blockchain addresses for different blockchain transaction, without needing to generate and maintain multiple blockchain addresses (e.g., in the user's wallet). Furthermore, because the blockchain address lease pool are shared, privacy may be maintained because an aggregation of all the transactions for a particular blockchain address cannot be associated with a single user. Rather, the transactions are associated with the blockchain address leasing service (e.g., blockchain address lease service 108 in
If there is a blockchain address in the idle state, then that blockchain address is selected for lease to the requesting user, and flow 300 proceeds to step 320.
If there is not a blockchain address in the idle state, then flow 300 proceeds to step 312 with generating a new blockchain address to be leased to the requesting user, and flow 300 proceeds to step 320. A new blockchain address may be generated based on the blockchain type requested by the user.
At step 320, the blockchain address is leased to the requesting user. In some embodiments, the state of the blockchain address is set to allocated, such as allocated state 204 in
Note that flow 300 is just one example, and other flows including fewer, additional, or alternative steps, consistent with this disclosure, are possible.
Initially, flow 400 begins at step 402 with determining an address pool size for a user, or group of users. An address pool size generally refers to a number of blockchain addresses in the address pool that may be leased to one or more users. In some embodiments, an address pool may be shared by one or more users. Thus, the address pool size for a shared address pool may be based on factors associated with each of the users sharing the address pool.
In some embodiments, an address pool size may be based on one or more factors associated with a user, for example, an expected number of blockchain transactions, the type of blockchain used for blockchain transactions, average blockchain transaction amounts over different time intervals, etc. For example, where a user expects to perform a large number of blockchain transactions in a given period, the address pool size may be configured large enough to ensure sufficient (or some threshold level of) availability of blockchain addresses. In another example, where blockchain transactions on a given blockchain network have a longer transaction completion time, the address pool size may be increased to ensure sufficient (or some threshold level of) availability of blockchain addresses available for lease.
In some embodiments, an address pool size may be based on a ratio of addresses in one or more states. For example, a ratio of the number of addresses in an allocated state (e.g., allocated state 204 in
In some embodiments, an address pool size may be based on factors associated with address generation, such as a cost of generating new addresses, an amount of processing resources and/or time for generating the new address, etc. Where the resource costs of generating a new address are high (either transiently or consistently), the address pool size may be relatively smaller. In some embodiments, an address pool size may be based on a number of requests for new addresses, for example, received at step 404.
In some embodiments, flow 400 includes optional step 404, wherein a request is received for generating a new address, such as at step 312 of
At step 406, flow 400 proceeds with determining whether one or more new blockchain addresses are needed.
In some embodiments, the one or more new blockchain addresses are needed in response to a user request, such as described at step 312 of
In some embodiments, the one or more new blockchain addresses are needed based on the determined address pool size at step 402 (e.g., if the determined address pool size is larger than the current address pool size).
If one or more new blockchain addresses are not needed, for example, where the determined address pool size is smaller than, or equal to the current address pool size, then flow 400 returns to step 402 with determining the address pool size.
If one or more new blockchain addresses are needed, then flow 400 proceeds to step 408 with generating the one or more new blockchain addresses. In one example, a blockchain address may be generated using a public key and private key pair, through cryptographic hashing. Generally, a blockchain address may be generated for use with a specific blockchain, such as for a Bitcoin™, Ethereum™, Xerium, or other type of blockchain.
Flow 400 then proceeds to step 410 with adding the one or more new blockchain addresses to the address pool.
Flow 400 then proceeds to step 412 with setting the one or more new blockchain addresses to an idle state.
Flow 400 may then return to step 402, to re-determine the address pool size to maintain an adequate supply of blockchain addresses for leasing to a user.
Note that flow 400 is just one example, and other flows including fewer, additional, or alternative steps, consistent with this disclosure, are possible.
Initially, method 500 begins at step 502 with receiving, from a first user, such as merchant 104 in
Method 500 proceeds to step 504 with determining lease states for a plurality of existing blockchain addresses in a blockchain address lease pool, for example, the blockchain address pool generated and maintained in flow 400 in
At step 506, based on the determined lease states, method 500 proceeds with determining whether to lease an existing blockchain address form the blockchain address lease pool or to generate a new blockchain address for the blockchain address lease pool.
In some embodiments, method 500 optionally proceeds to step 508 with determining to generate the new blockchain address for the blockchain address lease pool, wherein the blockchain address is the new blockchain address, such as described with respect to step 312 in
Method 500 then proceeds to step 510 with leasing a first blockchain address from the blockchain address lease pool to the first user, such as at step 320 in
In some embodiments, method 500 further comprises setting a lease state for the first blockchain address to an allocated state, wherein the allocated state prevents the first blockchain address from being leased to another user for a configured lease period, for example, allocated state 204 in
In some embodiments, method 500 further comprises setting the lease state for the first blockchain address to a grace period state after expiration of the configured lease period, for example, as described with respect to setting the lease state to grace period state 206 following the lease expiration for allocated state 204 in
In some embodiments, the grace period state prevents the first blockchain address from being leased to any user other than the user that most recently leased the blockchain address for the configured grace period, such as described with respect to grace period state 206 in
In some embodiments, method 500 further comprises setting the lease state for the first blockchain address to an idle state after an expiration of the configured grace period, for example, as described with respect to setting the lease state to idle state 202 following the grace period expiration for grace period state 206 in
In some embodiments, method 500 further comprises receiving an indication of completion of the blockchain transaction using the first blockchain address. In some embodiments, expiration of a grace period may be based on receiving the indication of completion of the blockchain transaction using the first blockchain address.
In some embodiments, method 500 further comprises determining to lease the existing blockchain address from the blockchain address lease pool, wherein the existing blockchain address is one of the plurality of existing blockchain addresses in the blockchain address lease pool.
In some embodiments, determining to lease the existing blockchain address from the blockchain address lease pool, comprises selecting the existing blockchain address from the plurality of existing blockchain addresses in the blockchain address lease pool based on a lease state for the existing blockchain address being an idle state, such as described with respect to step 306 or step 310 in
In some embodiments, determining to lease the existing blockchain address from the blockchain address lease pool, comprises selecting the existing blockchain address from the plurality of existing blockchain addresses in the blockchain address lease pool based on a lease state for the existing blockchain address being a grace period state and the existing blockchain address received a previous blockchain transaction on behalf of the first user, such as described with respect to step 308 in
In some embodiments, method 500 further comprises receiving, from a second user, a second lease request for a second blockchain address configured to receive a second blockchain transaction on behalf of the second user; determining a lease state for the second blockchain address is in an idle state; and leasing the second blockchain address to the second user, such as described with respect to step 310 in
In some embodiments, method 500 further comprises determining a pool size for the blockchain address lease pool, such as described with respect to step 402 in
Note that method 500 is just one example, and other flows including fewer, additional, or alternative steps, consistent with this disclosure, are possible.
Method 600 begins at step 602 with requesting, by a first user, such as merchant 104 in
Method 600 proceeds to step 604 with receiving the first lease for a first blockchain address from a blockchain address lease pool, such as described at step 320 in
Method 600 then proceeds to step 606 with performing a blockchain transaction at the first blockchain address. In some embodiments, method 600 further comprises receiving an indication of completion of the blockchain transaction using the first blockchain address.
In some embodiments, the first lease for the first blockchain address expires after a configured lease period, for example, at allocated state 204 in
In some embodiments, method 600 further comprises receiving an indication the first blockchain address is associated with a first user's wallet, whereby the first user may receive a blockchain transaction at the first blockchain address with first user's wallet.
In some embodiments, method 600 further comprises receiving an indication the first blockchain address was removed from the first user's wallet, whereby the first user may no longer receive a subsequent blockchain transaction with the first blockchain address.
In some embodiments, the first blockchain address was previously leased to the first user, such as described with respect to step 306 or 308 in
In some embodiments, the first blockchain address is a generated new blockchain address, such as described with respect to step 312 in
Note that method 600 is just one example, and other flows including fewer, additional, or alternative steps, consistent with this disclosure, are possible.
Processing system 700 includes one or more processors 702. Generally, processor(s) 702 may be configured to execute computer-executable instructions (e.g., software code) to perform various functions, as described herein.
Processing system 700 further includes one or more network interfaces 704, which generally provide data access to any sort of data network, including personal area networks (PANs), local area networks (LANs), wide area networks (WANs), the Internet, and the like. In some cases, network interface(s) 704 provide access to blockchain networks, including source and destination blockchain networks, such as described above.
Processing system 700 further includes input(s) and output(s) 706, which generally provide means for providing data to and from processing system 700, such as via connection to computing device peripherals, including user interface peripherals.
Processing system further includes a memory 710 configured to store various types of components and data. In this example, memory 710 includes a determination component 712, a leasing component 714, a state determination component 716, a blockchain address generation component 718, a pool size component 720, a blockchain component 722, blockchain data 724, blockchain address data 726, and lease data 728.
In some embodiments, determination component 712 is configured to make determinations, for example, determine a blockchain address for a lease such as described with respect to steps 306-310 in
In some embodiments, leasing component 714 is configured to manage leasing of blockchain addresses, for example by receiving a lease request from a user, such as described with respect to step 302 in
In some embodiments, state determination component 716 is configured to manage the state of blockchain addresses in the pool, for example, determine and set blockchain address states, and transition blockchain addresses between states, such as described with respect to
In some embodiments, blockchain address generation component 718 is configured to generate new blockchain addresses, for example, generate a new batch of blockchain addresses, and generate a new blockchain address when there is not a blockchain address available for lease, such as described with respect to
In some embodiments, pool size component 720 is configured to manage the pool size for the blockchain address lease pool, for example, by determining the pool size, determining a new pool size, and determine the current number of existing blockchain addresses is less than the pool size, such as described with respect to step 406 in
In some embodiments, blockchain component 722 is configured to interact with a blockchain network, such as to receive blockchain transactions at one or more blockchain addresses, such as those leased to users, on behalf of the users, such as described with respect to blockchain network 106 in
Processing system 700 may be implemented in various ways. For example, processing system 700 may be implemented within on-site, remote, or cloud-based processing equipment.
Note that while depicted as a single processing system in
Processing system 700 is just one example, and other configurations are possible. For example, in alternative embodiments, aspects described with respect to processing system 700 may be omitted, added, or substituted for alternative aspects.
Processing system 800 includes one or more processors 802. Generally, processor(s) 802 may be configured to execute computer-executable instructions (e.g., software code) to perform various functions, as described herein.
Processing system 800 further includes one or more network interfaces 804, which generally provide data access to any sort of data network, including personal area networks (PANs), local area networks (LANs), wide area networks (WANs), the Internet, and the like. In some cases, network interface(s) 804 provide access to blockchain networks, including source and destination blockchain networks, such as described above.
Processing system 800 further includes input(s) and output(s) 806, which generally provide means for providing data to and from processing system 800, such as via connection to computing device peripherals, including user interface peripherals.
Processing system further includes a memory 810 configured to store various types of components and data. In this example, memory 810 includes a requesting component 812, a leasing component 814, a wallet component 816, a blockchain component 818, blockchain data 820, blockchain address data 824, and lease data 822.
In some embodiments, requesting component 812 is configured to make requests, for example, request a blockchain address for a lease such as described with respect to step 602 in
In some embodiments, leasing component 814 is configured to manage leasing of blockchain addresses, for example by receiving a lease from a blockchain address leasing service, such as described with respect to blockchain address leasing service 108 in
In some embodiments, wallet component 816 is configured to manage blockchain addresses, such as a leased blockchain address, and configured to send, receive, and hold blockchain assets, such as on behalf of a user (e.g., merchant 104 in
In some embodiments, blockchain component 818 is configured to interact with a blockchain network, such as to receive blockchain transactions at one or more blockchain addresses, such as those leased to users, on behalf of the users, such as described with respect to blockchain network 106 in
Processing system 800 may be implemented in various ways. For example, processing system 800 may be implemented within on-site, remote, or cloud-based processing equipment.
Note that while depicted as a single processing system in
Processing system 800 is just one example, and other configurations are possible. For example, in alternative embodiments, aspects described with respect to processing system 800 may be omitted, added, or substituted for alternative aspects.
Implementation examples are described in the following numbered clauses:
Clause 1: A method, comprising: receiving, from a first user, a first lease request for a blockchain address configured to receive a blockchain transaction on behalf of the first user; determining lease states for a plurality of existing blockchain addresses in a blockchain address lease pool; based on the determined lease states, determining whether to lease an existing blockchain address from the blockchain address lease pool or to generate a new blockchain address for the blockchain address lease pool; and leasing a first blockchain address from the blockchain address lease pool to the first user.
Clause 2: The method of Clause 1, further comprising setting a lease state for the first blockchain address to an allocated state, wherein the allocated state prevents the first blockchain address from being leased to another user for a configured lease period.
Clause 3: The method of any one of Clauses 1-2, further comprising setting the lease state for the first blockchain address to a grace period state after an expiration of the configured lease period.
Clause 4: The method of Clause 3, wherein the grace period state prevents the first blockchain address from being leased to another user for a configured grace period and allows the first blockchain address to be leased to the first user for the configured grace period.
Clause 5: The method of Clause 4, further comprising setting a lease state for the first blockchain address to an idle state after an expiration of the configured lease period.
Clause 6: The method of any one of Clauses 1-5, further comprising receiving an indication of completion of the blockchain transaction using the first blockchain address.
Clause 7: The method of any one of Clauses 1-6, further comprising: determining to lease the existing blockchain address from the blockchain address lease pool, wherein the existing blockchain address is one of the plurality of existing blockchain addresses in the blockchain address lease pool.
Clause 8: The method of Clause 6, determining to lease the existing blockchain address from the blockchain address lease pool, comprises selecting the existing blockchain address from the plurality of existing blockchain addresses in the blockchain address lease pool based on a lease state for the existing blockchain address being an idle state.
Clause 9: The method of Clause 6, determining to lease the existing blockchain address from the blockchain address lease pool, comprises selecting the existing blockchain address from the plurality of existing blockchain addresses in the blockchain address lease pool based on a lease state for the existing blockchain address being a grace period state and the existing blockchain address received a previous blockchain transaction on behalf of the first user.
Clause 10: The method of any one of Clauses 1-9, further comprising: determining to generate a new blockchain address for the blockchain address lease pool, wherein the blockchain address is the new blockchain address.
Clause 11: The method of any one of Clauses 1-10, further comprising: receiving, from a second user, a second lease request for a second blockchain address configured to receive a second blockchain transaction on behalf of the second user; determining a lease state for the second blockchain address is in an idle state; and leasing the second blockchain address to the second user.
Clause 12: The method of any one of Clauses 1-11, further comprising: determining a pool size for the blockchain address lease pool; determining the plurality of existing blockchain addresses has fewer blockchain addresses than the pool size; generating a batch of new blockchain addresses for the blockchain address lease pool such that the blockchain address lease pool has a number of blockchain addresses equal to the pool size; and setting a lease state for the batch of new blockchain addresses to an idle state.
Clause 13: A method, comprising: requesting, by a first user, a first lease for a blockchain address; receiving, the first lease for a first blockchain address from a blockchain address lease pool; and performing a blockchain transaction at the first blockchain address.
Clause 14: The method of clause 13, wherein the request for the first lease comprises an indication of a blockchain network associated with the blockchain address.
Clause 15: The method of any one of clauses 13-14, wherein the first blockchain address is configured to receive a blockchain transaction on behalf of the first user.
Clause 16: The method of any one of clauses 13-15, wherein the first lease for the first blockchain address expires after a configured lease period.
Clause 17: The method of clause 16, further comprising receiving an indicating of expiration of the lease for the first blockchain address after the configured lease period expires.
Clause 18: The method of any one of clauses 13-17, further comprising receiving an indication the first blockchain address is associated with a first user's wallet, whereby the first user may receive a blockchain transaction at the first blockchain address with first user's wallet.
Clause 19: The method of clause 18, further comprising receiving an indication the first blockchain address was removed from the first user's wallet, whereby the first user may no longer receive a subsequent blockchain transaction with the first blockchain address.
Clause 20: The method of any one of clauses 13-19, wherein the first blockchain address was previously leased to the first user.
Clause 21: The method of any one of clauses 13-20, wherein the first blockchain address is a generated new blockchain address.
Clause 22: A processing system, comprising: a memory comprising computer-executable instructions; and a processor configured to execute the computer-executable instructions and cause the processing system to perform a method in accordance with any one of Clauses 1-21.
Clause 23: A processing system, comprising means for performing a method in accordance with any one of Clauses 1-21.
Clause 24: A non-transitory computer-readable medium storing program code for causing a processing system to perform the steps of any one of Clauses 1-21.
Clause 25: A computer program product embodied on a computer-readable storage medium comprising code for performing a method in accordance with any one of Clauses 1-21.
The preceding description is provided to enable any person skilled in the art to practice the various embodiments described herein. The examples discussed herein are not limiting of the scope, applicability, or embodiments set forth in the claims. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments. For example, changes may be made in the function and arrangement of elements discussed without departing from the scope of the disclosure. Various examples may omit, substitute, or add various procedures or components as appropriate. For instance, the methods described may be performed in an order different from that described, and various steps may be added, omitted, or combined. Also, features described with respect to some examples may be combined in some other examples. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth herein. In addition, the scope of the disclosure is intended to cover such an apparatus or method that is practiced using other structure, functionality, or structure and functionality in addition to, or other than, the various aspects of the disclosure set forth herein. It should be understood that any aspect of the disclosure disclosed herein may be embodied by one or more elements of a claim.
As used herein, the word “exemplary” means “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
As used herein, a phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover a, b, c, a-b, a-c, b-c, and a-b-c, as well as any combination with multiples of the same element (e.g., a-a, a-a-a, a-a-b, a-a-c, a-b-b, a-c-c, b-b, b-b-b, b-b-c, c-c, and c-c-c or any other ordering of a, b, and c).
As used herein, the term “determining” encompasses a wide variety of actions. For example, “determining” may include calculating, computing, processing, deriving, investigating, looking up (e.g., looking up in a table, a database or another data structure), ascertaining and the like. Also, “determining” may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Also, “determining” may include resolving, selecting, choosing, establishing and the like.
The methods disclosed herein comprise one or more steps or actions for achieving the methods. The method steps and/or actions may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps or actions is specified, the order and/or use of specific steps and/or actions may be modified without departing from the scope of the claims. Further, the various operations of methods described above may be performed by any suitable means capable of performing the corresponding functions. The means may include various hardware and/or software component(s) and/or module(s), including, but not limited to a circuit, an application specific integrated circuit (ASIC), or processor. Generally, where there are operations illustrated in figures, those operations may have corresponding counterpart means-plus-function components with similar numbering.
The following claims are not intended to be limited to the embodiments shown herein, but are to be accorded the full scope consistent with the language of the claims. Within a claim, reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” Unless specifically stated otherwise, the term “some” refers to one or more. No claim element is to be construed under the provisions of 35 U.S.C. § 112(f) unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.” All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims.