US20190333030A1 - Blockchain-based digital token utilization - Google Patents
Blockchain-based digital token utilization Download PDFInfo
- Publication number
- US20190333030A1 US20190333030A1 US15/967,064 US201815967064A US2019333030A1 US 20190333030 A1 US20190333030 A1 US 20190333030A1 US 201815967064 A US201815967064 A US 201815967064A US 2019333030 A1 US2019333030 A1 US 2019333030A1
- Authority
- US
- United States
- Prior art keywords
- tokens
- smart contract
- computing device
- amount
- digital
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
- G06Q20/0655—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3674—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Definitions
- aspects described herein generally relate to decentralized peer-to-peer (P2P) computer systems specialized for the purpose of managing a blockchain.
- P2P peer-to-peer
- one or more aspects of the disclosure relate to utilizing digital tokens on or using a blockchain.
- Centralized computing systems may be used to manage information related to digital tokens.
- Centralized computing systems may receive digital tokens from a plurality of entities, and may control the distribution of the digital tokens to users of the centralized system in return for interest provided by the users.
- centralized computing systems may constitute a single point of failure, which may be undesirable from a reliability standpoint and from a security standpoint.
- aspects described herein are directed towards utilizing digital tokens on a blockchain.
- a computing platform configured to operate in a decentralized peer-to-peer (P2P) network and including one or more processors and memory storing at least a portion of a blockchain of the decentralized P2P network may receive, from a first user computing device, a first registration request for registering a collection smart contract.
- the computing platform may register the collection smart contract by adding a first new block to the blockchain.
- the first new block may comprise the collection smart contract.
- the computing platform may receive, from the first user computing device, a first event message indicating a first amount of service provider tokens, an identifier of the collection smart contract, and a digital signature associated with the first user computing device.
- the computing platform may verify an authenticity of the first event message based on the digital signature associated with the first user computing device.
- the computing platform may, in response to receiving the first event message, execute the collection smart contract, which may cause the computing platform to transfer, from a service provider token holder associated with the first user computing device and to the collection smart contract, the first amount of the service provider tokens.
- the computing platform may receive, from a second user computing device, a second event message indicating a first amount of digital tokens, an identifier of the collection smart contract, and a digital signature associated with the second user computing device.
- the computing platform may verify an authenticity of the second event message based on the digital signature associated with the second user computing device.
- the computing platform may, in response to receiving the second event message, execute the collection smart contract, which may cause the computing platform to transfer, from a digital token holder associated with the second user computing device and to the collection smart contract, the first amount of the digital tokens.
- Execution of the collection smart contract may cause the computing platform to determine, based on the first amount of the digital tokens and an exchange rate between the digital tokens and the service provider tokens, a second amount of the service provider tokens.
- Execution of the collection smart contract may cause the computing platform to transfer, from the collection smart contract and to a service provider token holder associated with the second user computing device, the second amount of the service provider tokens.
- the computing platform may receive, from the second user computing device, a third event message indicating a third amount of the service provider tokens and an identifier of the collection smart contract.
- the computing platform may, in response to receiving the third event message, execute the collection smart contract, which may cause the computing platform to transfer, from the service provider token holder associated with the second user computing device and to the collection smart contract, the third amount of the service provider tokens.
- Execution of the collection smart contract may cause the computing platform to determine, based on an appreciation rate associated with the digital tokens and a time period between receiving the second event message and receiving the third event message, an updated exchange rate between the digital tokens and the service provider tokens.
- Execution of the collection smart contract may cause the computing platform to determine, based on the third amount of the service provider tokens and the updated exchange rate between the digital tokens and the service provider tokens, a second amount of the digital tokens. Execution of the collection smart contract may cause the computing platform to transfer, from the collection smart contract and to the digital token holder associated with the second user computing device, the second amount of the digital tokens.
- the computing platform may receive, from the first user computing device, a second registration request for registering a distribution smart contract.
- the computing platform may register the distribution smart contract by adding a second new block to the blockchain.
- the second new block may comprise the distribution smart contract.
- the computing platform may receive, from the first user computing device, a fourth event message indicating a third amount of the digital tokens and an identifier of the distribution smart contract.
- the computing platform may, in response to receiving the fourth event message, execute the distribution smart contract, which may cause the computing platform to transfer, from a digital token holder associated with the first user computing device and to the distribution smart contract, the third amount of the digital tokens.
- the computing platform may receive, from a third user computing device, a fifth event message indicating a first amount of credit tokens and an identifier of the distribution smart contract.
- the computing platform may, in response to receiving the fifth event message, execute the distribution smart contract, which may cause the computing platform to transfer, from a credit token holder associated with the third user computing device and to the distribution smart contract, the first amount of the credit tokens.
- Execution of the distribution smart contract may cause the computing platform to determine, based on the first amount of the credit tokens and an exchange rate between the digital tokens and the credit tokens, a fourth amount of the digital tokens.
- Execution of the distribution smart contract may cause the computing platform to transfer, from the distribution smart contract and to a digital token holder associated with the third user computing device, the fourth amount of the digital tokens.
- the computing platform may receive, from the third user computing device, a sixth event message indicating a fifth amount of the digital tokens and an identifier of the distribution smart contract.
- the computing platform may, in response to receiving the sixth event message, execute the distribution smart contract, which may cause the computing platform to determine, based on the fourth amount of the digital tokens, a time period between receiving the fifth event message and receiving the sixth event message, and an interest rate associated with the digital tokens, an expected amount of the digital tokens.
- Execution of the distribution smart contract may cause the computing platform to, in response to determining that the fifth amount of the digital tokens corresponds to the expected amount of the digital tokens, transfer, from the distribution smart contract and to the credit token holder associated with the third user computing device, the first amount of the credit tokens and an additional amount of the credit tokens.
- Execution of the distribution smart contract may cause the computing platform to transfer, from the digital token holder associated with the third user computing device and to the distribution smart contract, the fifth amount of the digital tokens.
- the computing platform may, in response to determining that the fifth amount of the digital tokens does not correspond to the expected amount of the digital tokens, transfer, from the distribution smart contract and to a credit token holder associated with the first user computing device, the first amount of the credit tokens. In some embodiments, the computing platform may, in response to receiving the second event message, transfer, from the collection smart contract and to the distribution smart contract, a portion of the first amount of the digital tokens. In some embodiments, the computing platform may determine, based on a credit score associated with the third user computing device, a second amount of the credit tokens. The computing platform may assign the second amount of the credit tokens to the credit token holder associated with the third user computing device.
- FIG. 1 depicts an illustrative example of centralized computer system in accordance with one or more illustrative aspects described herein.
- FIG. 2 depicts an illustrative example of decentralized P2P computer system that may be used in accordance with one or more illustrative aspects described herein.
- FIG. 3A depicts an illustrative example of a full node computing device that may be used in accordance with one or more illustrative aspects described herein.
- FIG. 3B depicts an illustrative example of a lightweight node computing device that may be used in accordance with one or more illustrative aspects described herein.
- FIG. 4 depicts an illustrative digital token utilization system that may be used in accordance with one or more example embodiments described herein.
- FIGS. 5A-5H depict an illustrative event sequence for digital token utilization in accordance with one or more example embodiments described herein.
- FIG. 6 depicts an illustrative method for digital token utilization in accordance with one or more example embodiments described herein.
- Data corresponding to digital tokens may be stored on a blockchain associated with a decentralized peer-to-peer (P2P) network.
- P2P peer-to-peer
- Smart contracts for collecting digital tokens in exchange for service provider tokens may be deployed to the blockchain.
- Smart contracts for distributing digital tokens based on credit tokens may be deployed to the blockchain.
- digital tokens may be utilized by users in various ways.
- the disclosure provided herein is described, at least in part, in relation to a decentralized peer-to-peer (e.g., P2P) system specialized for the purpose of managing a blockchain.
- the decentralized P2P system may be comprised of computing devices that are distributed in multiple locations across a geographical area as opposed to a single location.
- the computing devices forming the decentralized P2P system may operate with each other to manage a blockchain, which may be a data structure used to store information related to the decentralized P2P system. More specifically, the blockchain may be a chronological linkage of data elements (e.g., blocks) which store data records relating to the decentralized computing system.
- data elements e.g., blocks
- a user may access the decentralized P2P system through a specialized “wallet” that serves to uniquely identify the user and enable the user to perform functions related to the decentralized P2P network.
- the wallet Through the wallet, the user may be able to hold tokens, funds, and/or any other asset associated with the decentralized P2P system. Furthermore, the user may be able to use the wallet to request performance of network-specific functions related to the decentralized P2P system such as fund, token, and/or asset transfers.
- the various computing devices forming the decentralized P2P computing system may operate as a team to perform network-specific functions requested by the user. In performing the network-specific functions, the various computing devices may produce blocks that store the data generated during the performance of the network-specific functions and may add the blocks to the blockchain. After the block has been added to the blockchain, the wallet associated with the user may indicate that the requested network-specific function has been performed.
- a user may have a wallet which reflects that the user has five tokens associated with the decentralized P2P system.
- the user may provide a request to the decentralized P2P system to transfer the five tokens to a friend who also has a wallet.
- the various computing devices forming the decentralized P2P computing system may perform the request and transfer the five tokens from the wallet of the user to the wallet of the friend.
- a block may be created by the various computing devices of the decentralized P2P computing system.
- the block may store data indicating that the five tokens were transferred from the wallet of the user to the wallet of the friend.
- the various computing devices may add the block to the blockchain.
- the wallet of the user may reflect the transfer of the five tokens to the wallet of the friend, and may indicate a balance of zero.
- the wallet of the friend may also reflect the transfer of the five tokens and may have a balance of five tokens.
- the decentralized P2P system may be specialized for the purpose of managing a distributed ledger, such as a private blockchain or a public blockchain, through the implementation of digital cryptographic hash functions, consensus algorithms, digital signature information, and network-specific protocols and commands.
- the decentralized P2P system (e.g., decentralized system) may be comprised of decentralized system infrastructure consisting of a plurality computing devices, either of a heterogeneous or homogenous type, which serve as network nodes (e.g., full nodes and/or lightweight nodes) to create and sustain a decentralized P2P network (e.g., decentralized network).
- Each of the full network nodes may have a complete replica or copy of a blockchain stored in memory and may operate in concert, based on the digital cryptographic hash functions, consensus algorithms, digital signature information, and network-specific protocols, to execute network functions and/or maintain inter-nodal agreement as to the state of the blockchain.
- Each of the lightweight network nodes may have at least a partial replica or copy of the blockchain stored in memory and may request performance of network functions through the usage of digital signature information, hash functions, and network commands.
- network functions of the decentralized network such as balance sheet transactions and smart contract operations, at least a portion of the full nodes forming the decentralized network may execute the one or more cryptographic hash functions, consensus algorithms, and network-specific protocols to register a requested network function on the blockchain.
- a plurality of network function requests may be broadcasted across at least a portion of the full nodes of the decentralized network and aggregated through execution of the one or more digital cryptographic hash functions and by performance of the one or more consensus algorithms to generate a single work unit (e.g., block), which may be added in a time-based, chronological manner to the blockchain through performance of network-specific protocols.
- a single work unit e.g., block
- blockchain refers to a concatenation of sequentially dependent data elements (e.g., blocks) acting as a data ledger that stores records relating to a decentralized computing system.
- Such data records may be related to those used by a particular entity or enterprise, such as a financial institution, and/or may be associated with a particular application and/or use case including, but not limited to, cryptocurrency, digital content storage and delivery, entity authentication and authorization, digital identity, marketplace creation and operation, internet of things (e.g., IoT), prediction platforms, election voting, medical records, currency exchange and remittance, P2P transfers, ride sharing, gaming, trading platforms, and real estate, precious metal, and work of art registration and transference, among others.
- a “private blockchain” may refer to a blockchain of a decentralized private system in which only authorized computing devices are permitted to act as nodes in a decentralized private network and have access to the private blockchain.
- the private blockchain may be viewable and/or accessible by authorized computing devices which are not participating as nodes within the decentralized private network, but still have proper credentials.
- a “public blockchain” may refer to a blockchain of a decentralized public system in which any computing devices may be permitted to act as nodes in a decentralized public network and have access to the public blockchain. In some instances, the public blockchain may be viewable and/or accessible by computing devices which are not participating as nodes within the decentralized public network.
- a “full node” or “full node computing device,” as used herein, may describe a computing device in a decentralized system which operates to create and maintain a decentralized network, execute requested network functions, and maintain inter-nodal agreement as to the state of the blockchain.
- a computing device operating as a full node in the decentralized system may have a complete replica or copy of the blockchain stored in memory, as well as executable instructions for the execution of hash functions, consensus algorithms, digital signature information, network protocols, and network commands.
- a “lightweight node,” “light node,” “lightweight node computing device,” or “light node computing device” may refer to a computing device in a decentralized system, which operates to request performance of network functions (e.g., balance sheet transactions, smart contract operations, and the like) within a decentralized network but without the capacity to execute requested network functions and maintain inter-nodal agreement as to the state of the blockchain.
- a computing device operating as a lightweight node in the decentralized system may have a partial replica or copy of the blockchain.
- network functions requested by lightweight nodes to be performed by the decentralized network may also be able to be requested by full nodes in the decentralized system.
- Network functions” and/or “network-specific functions,” as described herein, may relate to functions which are able to be performed by nodes of a decentralized P2P network.
- the data generated in performing network-specific functions may or may not be stored on a blockchain associated with the decentralized P2P network.
- Examples of network functions may include “smart contract operations” and “balance sheet transaction.”
- a smart contract operation as used herein, may describe one or more operations associated with a “smart contract,” which may be one or more algorithms and/or programs stored on a blockchain and identified by one or more wallets and/or public keys within a decentralized P2P network.
- each full node computing device within a decentralized P2P network may identify a block within a blockchain comprising the smart contract and, responsive to identifying the block associated with the smart contract, may execute the one or more algorithms and/or programs of the smart contract.
- a balance sheet transaction may describe one or more changes to data holdings associated with one or more nodes within a decentralized network.
- a “digital cryptographic hash function,” as used herein, may refer to any function which takes an input string of characters (e.g., message), either of a fixed length or non-fixed length, and returns an output string of characters (e.g., hash, hash value, message digest, digital fingerprint, digest, and/or checksum) of a fixed length.
- an input string of characters e.g., message
- an output string of characters e.g., hash, hash value, message digest, digital fingerprint, digest, and/or checksum
- Examples of digital cryptographic hash functions may include BLAKE (e.g., BLAKE-256, BLAKE-512, and the like), MD (e.g., MD2, MD4, MD5, and the like), Scrypt, SHA (e.g., SHA-1, SHA-256, SHA-512, and the like), Skein, Spectral Hash, SWIFT, Tiger, and so on.
- a “consensus algorithm,” as used herein and as described in further detail below, may refer to one or more algorithms for achieving agreement on one or more data values among nodes in a decentralized network.
- consensus algorithms may include proof of work (e.g., PoW), proof of stake (e.g., PoS), delegated proof of stake (e.g., DPoS), practical byzantine fault tolerance algorithm (e.g., PBFT), and so on.
- digital signature information may refer to one or more private/public key pairs and digital signature algorithms which are used to digitally sign a message and/or network function request for the purposes of identity and/or authenticity verification.
- digital signature algorithms which use private/public key pairs contemplated herein may include public key infrastructure (PKI), Rivest-Shamir-Adleman signature schemes (e.g., RSA), digital signature algorithm (e.g., DSA), Edwards-curve digital signature algorithm, and the like.
- a “wallet,” as used herein, may refer to one or more data and/or software elements (e.g., digital cryptographic hash functions, digital signature information, and network-specific commands) that allow a node in a decentralized P2P network to interact with the decentralized P2P network.
- a wallet may be associated with a public key, which may serve to identify the wallet.
- a private key associated with the wallet may be used to digitally sign the network operation requests.
- a decentralized P2P system implementing a blockchain data structure may provide solutions to technological problems existing in current centralized system constructs with traditional data storage arrangements.
- conventional data storage arrangements that use a central data authority have a single point of failure (namely, the central storage location) which, if compromised by a malicious attacker, can lead to data tampering, unauthorized data disclosure, and exploitation and/or loss of operative control of the processes performed by the centralized system.
- the implementation of a blockchain data structure in a decentralized P2P system acts as a safeguard against unreliable and/or malicious nodes acting in the decentralized P2P network to undermine the work efforts of the other nodes, e.g., by providing byzantine fault tolerance within the network.
- FIG. 1 depicts an illustrative example of centralized computer system 100 in accordance with one or more illustrative aspects described herein.
- Centralized computer system 100 may comprise one or more computing devices including at least server infrastructure 110 and user computing devices 120 .
- Each of user computing devices 120 may be configured to communicate with server infrastructure 110 through network 130 .
- centralized computer system 100 may include additional computing devices and networks that are not depicted in FIG. 1 , which also may be configured to interact with server infrastructure 110 and, in some instances, user computing devices 120 .
- Server infrastructure 110 may be associated with a distinct entity such as a company, school, government, and the like, and may comprise one or more personal computer(s), server computer(s), hand-held or laptop device(s), multiprocessor system(s), microprocessor-based system(s), set top box(es), programmable consumer electronic device(s), network personal computer(s) (PC), minicomputer(s), mainframe computer(s), distributed computing environment(s), and the like.
- Server infrastructure 110 may include computing hardware and software that may host various data and applications for performing tasks of the centralized entity and for interacting with user computing devices 120 , as well as other computing devices.
- each of the computing devices comprising server infrastructure 110 may include one or more processors 112 and one or more databases 114 , which may be stored in memory of the one or more computing devices of server infrastructure 110 .
- the computing devices of server infrastructure 110 may be configured to perform functions of the centralized entity and store the data generated during the performance of such functions in databases 114 .
- server infrastructure 110 may include and/or be part of enterprise information technology infrastructure and may host a plurality of enterprise applications, enterprise databases, and/or other enterprise resources. Such applications may be executed on one or more computing devices included in server infrastructure 110 using distributed computing technology and/or the like.
- server infrastructure 110 may include a relatively large number of servers that may support operations of a particular enterprise or organization, such as a financial institution. Server infrastructure 110 , in this embodiment, may generate a single centralized ledger for data received from the various user computing devices 120 , which may be stored in databases 114 .
- Each of the user computing devices 120 may be configured to interact with server infrastructure 110 through network 130 .
- one or more of the user computing devices 120 may be configured to receive and transmit information corresponding to system requests through particular channels and/or representations of webpages and/or applications associated with server infrastructure 110 .
- the system requests provided by user computing devices 120 may initiate the performance of particular computational functions such as data and/or file transfers at server infrastructure 110 .
- the one or more of the user computing devices may be internal computing devices associated with the particular entity corresponding to server infrastructure 110 and/or may be external computing devices which are not associated with the particular entity.
- centralized computer system 100 also may include one or more networks, which may interconnect one or more of server infrastructure 110 and one or more user computing devices 120 .
- centralized computer system 100 may include network 130 .
- Network 130 may include one or more sub-networks (e.g., local area networks (LANs), wide area networks (WANs), or the like).
- centralized computer system 100 may include a local network configured to interlink each of the computing devices comprising server infrastructure 110 .
- centralized computer system 100 may include a plurality of computer systems arranged in an operative networked communication arrangement with one another through a network, which may interface with server infrastructure 110 , user computing devices 120 , and network 130 .
- the network may be a system specific distributive network receiving and distributing specific network feeds and identifying specific network associated triggers.
- the network may also be a global area network (GAN), such as the Internet, a wide area network (WAN), a local area network (LAN), or any other type of network or combination of networks.
- GAN global area network
- the network may provide for wireline, wireless, or a combination wireline and wireless communication between devices on the network.
- server infrastructure 110 may serve as a central authority which manages at least a portion of the computing data and actions performed in relation to the particular entity associated with server infrastructure 110 .
- server infrastructure 110 of centralized computer system 100 provides a single point of failure which, if compromised by a malicious attacker, can lead to data tampering, unauthorized data disclosure, and exploitation and/or loss of operative control of the processes performed by the server infrastructure 110 in relation to the particular entity associated with server infrastructure 110 .
- a single point of failure e.g., server infrastructure 110
- significant technological problems arise regarding maintenance of operation and data control, as well as preservation of data integrity.
- such technological problems existing in centralized computing arrangements may be solved by a decentralized P2P system implementing a blockchain data structure, even wholly within the server infrastructure 110 .
- FIG. 2 depicts an illustrative example of decentralized P2P computer system 200 that may be used in accordance with one or more illustrative aspects described herein.
- Decentralized P2P computer system 200 may include a plurality of full node computing devices 210 A, 210 B, 210 C, 210 D, 210 E, and 210 F and lightweight node computing devices 250 A and 250 B, which may be respectively similar to full node computing device 210 described in regard to FIG. 3A and lightweight node computing device 250 described in regard to FIG. 3B . While a particular number of full node computing devices and lightweight node computing devices are depicted in FIG.
- any additional full node computing devices and/or lightweight node computing devices may respectively perform in the manner described below in regard to full node computing devices 210 A- 210 F and lightweight node computing devices 250 A and 250 B in decentralized P2P computer system 200 .
- Each of full node computing devices 210 A- 210 F may operate in concert to create and maintain decentralized P2P network 270 of decentralized P2P computer system 200 .
- processors, ASIC devices, and/or graphics processing units (e.g., GPUs) of each full node computing device 210 A- 210 F may execute network protocols which may cause each full node computing device 210 A- 210 F to form a communicative arrangement with the other full node computing devices 210 A- 210 F in decentralized P2P computer system 200 and thereby create decentralized P2P network 270 .
- full node computing devices 210 A- 210 F may cause full node computing devices 210 A- 210 F to execute network functions related to blockchain 226 and maintain decentralized P2P network 270 .
- Lightweight node computing devices 250 A and 250 B may request execution of network functions related to decentralized P2P network 270 .
- processors of lightweight node computing devices 250 A and 250 B may execute network commands to broadcast the network functions to decentralized P2P network 270 comprising full node computing devices 210 A- 210 F.
- lightweight node computing device 250 A may request execution of a balance sheet transaction related to decentralized P2P network 270 , which may entail a data transfer from a wallet associated with lightweight node computing device 250 A to a wallet associated with lightweight node 250 B.
- processors of lightweight node computing device 250 A may execute network commands to broadcast balance sheet transaction network function request 280 to decentralized P2P network 270 .
- Balance sheet transaction network function request 280 may include details about the data transfer such as data type and amount, as well as a data transfer amount to full node computing devices 210 A- 201 F of decentralized P2P network 270 for executing balance sheet transaction network function request 280 .
- Balance sheet transaction network function request 280 may further include the public key associated with the wallet of lightweight node computing device 250 B.
- Processors of lightweight node computing device 250 A may execute digital signature algorithms to digitally sign balance sheet transaction network function request 280 with the private key associated with the wallet of lightweight node computing device 250 A.
- balance sheet transaction network function request 280 may be broadcasted to each of full node computing devices 210 A- 210 F through execution of network protocols by full node computing devices 210 A- 210 F.
- processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 F may execute network protocols to receive broadcast of the network function through decentralized P2P network 270 and from lightweight node computing device 250 A.
- Processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 F may execute hash functions to generate a digest of balance sheet transaction network function request 280 .
- the resultant digest of balance sheet transaction network function request 280 may, in turn, be hashed with the block hash of the most immediately preceding block of blockchain 226 .
- Processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 F may execute consensus algorithms to identify a numerical value (e.g., nonce) corresponding to the particular executed consensus algorithm and related to the digest that combines the digest of the balance sheet transaction network function request 280 and the block hash of the most immediately preceding block of blockchain 226 .
- processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 F may perform a plurality of hashing operations to identify a nonce that, when hashed with the digest that combines the digest of the balance sheet transaction network function request 280 and the block hash of the most immediately preceding block of blockchain 226 , produces a hash of a predetermined alphanumerical format.
- Such a predetermined alphanumerical format may include a predetermined number of consecutive alphanumerical characters at a predetermined position within the resultant digest that combines the nonce, digest of the balance sheet transaction network function request 280 , and block hash of the most immediately preceding block of blockchain 226 .
- a private key associated with one of full node computing devices 210 A- 210 F may be pseudo-randomly selected, based on balance sheet holdings associated with the public keys of full node computing devices 210 A- 210 F, to serve as the nonce.
- full node computing devices 210 A- 210 F are entered into a lottery in which the odds of winning are proportional to a balance sheet amount associated the wallet of each of full node computing devices 210 A- 210 F, wherein a larger balance sheet amount corresponds to a higher probability to win the lottery.
- the PoS consensus algorithm may cause a full node computing device from full node computing devices 210 A- 210 F to be selected, and the public key of the wallet of the selected full node computing device to be used as the nonce.
- a group of delegates are chosen from full node computing devices 210 A- 210 F by each of computing devices 210 A- 210 F, wherein full node computing devices 210 A- 210 F are allowed to vote on delegates based on balance sheet holdings associated with the respective wallets. Full node computing devices 210 A- 210 F, however, may not vote for themselves to be delegates.
- the group of delegates from full node computing devices 210 A- 210 F select a public key associated with a wallet of one of full node computing devices 210 A- 210 F to serve as the nonce.
- each of full node computing devices 210 A- 210 F are associated with a particular status and/or ongoing specific information associated with the respective public key of the full node computing devices.
- Each of full node computing devices 210 A- 210 F receive a message through decentralized P2P network 270 based on network protocols. Based on the received message and particular status and/or ongoing specific information, each of full node computing devices 210 A- 210 F perform computational tasks and transmit a response to the tasks to each of the other full node computing devices 210 A- 210 F.
- a public key of a wallet associated with a particular full node computing device from full node computing devices 210 A- 210 F is selected by each of full node computing devices 210 A- 210 F based on the response of the particular full node computing device best fulfilling criteria determined based on the network protocols.
- the identification of the nonce enables processors, ASIC devices, and/or GPUs of the full node computing device from full node computing devices 210 A- 210 F corresponding to the nonce to create a new block with a block header (e.g., block hash), which is a digest that combines the digest of balance sheet transaction network function request 280 , the block hash of the most immediately preceding block, and the identified nonce.
- a block header e.g., block hash
- Processors, ASIC devices, and/or GPUs of the full node computing device from full node computing devices 210 A- 210 F may execute network protocols to add the new block to blockchain 226 and broadcast the new block to the other full node computing devices in the decentralized P2P network 270 .
- the new block may also be time-stamped at a time corresponding to the addition to blockchain 226 .
- the full node computing device from full node computing devices 210 A- 210 F may be allowed, per the network protocols, to increase balance sheet holdings associated with itself by a predetermined amount.
- each of full node computing devices 210 A- 210 F may receive an equal portion of the data transfer amount specified by lightweight node computing device 250 A for executing balance sheet transaction network function request 280 .
- balance sheet transaction network function request 280 may be considered to be executed and the data transfer from the wallet associated with lightweight node computing device 250 A to the wallet associated with lightweight node 250 B may be registered.
- a plurality of network function requests may be broadcasted across decentralized network P2P network 270 .
- Processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 F may execute network protocols to receive broadcast of each of the network functions, including balance sheet transaction network function request 280 , through decentralized P2P network 270 and from the requesting entities, including lightweight node computing device 250 A.
- Processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 F may execute hash functions to generate a hash tree (e.g., Merkle tree) of the requested network functions, which culminates in a single digest (e.g., root digest, root hash, and the like) that comprises the digests of each of the requested network functions, including balance sheet transaction network function request 280 .
- the root digest of the requested network function may, in turn, be hashed with the block hash of the most immediately preceding block of blockchain 226 .
- Processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 B may execute consensus algorithms in the manner described above to identify a nonce corresponding to the particular executed consensus algorithm and related to the digest that combines the root digest of the requested network functions and the block hash of the most immediately preceding block of blockchain 226 .
- the identification of the nonce enables processors, ASIC devices, and/or GPUs of the full node computing device from full node computing devices 210 A- 210 F to create a new block with a block header (e.g., block hash), which is a digest that combines the root digest of the network function requests, the block hash of the most immediately preceding block, and the identified nonce.
- a block header e.g., block hash
- Processors, ASIC devices, and/or GPUs of the full node computing device from full node computing devices 210 A- 210 F may execute network protocols to add the new block to blockchain 226 and broadcast the new block to the other full node computing devices in the decentralized P2P network 270 .
- the new block may also be time-stamped at a time corresponding to the addition to blockchain 226 .
- the full node computing device from full node computing devices 210 A- 210 F may be allowed, per the network protocols, to increase a balance sheet holdings amount associated with itself by a predetermined amount.
- each of full node computing devices 210 A- 210 F may receive an equal portion of the data transfer amount specified by each of the network function requests.
- each of the network functions requests including balance sheet transaction network function request 280 , may be considered to be executed and the data transfer from the private/public key associated with lightweight node computing device 250 A to the private/public key associated with lightweight node 250 B may be registered.
- balance sheet transactions are not limited to lightweight node computing device 250 A and lightweight node computing device 250 B, but rather may be made across any of the full node computing devices and/or lightweight node computing devices in decentralized P2P system 200 .
- lightweight node computing device 250 B may request a smart contract operation related to decentralized P2P network 270 , which may facilitate a dual data transfer between a wallet associated with lightweight node computing device 250 B and a wallet associated with another node in decentralized P2P network 270 , such as lightweight node computing device 250 A, based on fulfillment of programmatic conditions established by a smart contract.
- Processors of lightweight node computing device 250 B may execute network commands to broadcast smart contract operation network function request 290 to decentralized P2P network 270 .
- Smart contract operation network function request 290 may include details about the data transfer such as data type and amount, as well as a data transfer amount to full node computing devices 210 A- 210 F of decentralized P2P network 270 for executing the smart contract corresponding to smart contract operation network function request 290 .
- Smart contract operation network function request 290 may further include the public key associated with the smart contract.
- Processors of lightweight node computing device 250 B may execute digital signature algorithms to digitally sign smart contract operation network function request 290 with the private key associated with the wallet of lightweight node computing device 250 B.
- smart contract operation network function request 290 may be broadcasted to each of full node computing devices 210 A- 210 F through execution of network protocols by full node computing devices 210 A- 210 F.
- processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 F may execute network protocols to receive broadcast of the network function through a decentralized P2P network 270 and from lightweight node computing device 250 B.
- Processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 F may execute hash functions to generate a digest of smart contract operation network function request 290 .
- the resultant digest of smart contract operation network function request 290 may be hashed with the block hash of the most immediately preceding block of blockchain 226 .
- Processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 F may execute consensus algorithms to identify a nonce corresponding to the particular executed consensus algorithm and related to the digest that combines the digest of smart contract operation network function request 290 and the block hash of the most immediately preceding block of blockchain 226 .
- the identification of the nonce enables processors, ASIC devices, and/or GPUs of the full node computing device from full node computing devices 210 A- 210 F to create a new block with a block header (e.g., block hash), which is a digest that combines smart contract operation network function request 290 , the block hash of the most immediately preceding block, and the identified nonce.
- a block header e.g., block hash
- Processors, ASIC devices, and/or GPUs of the full node computing device from full node computing devices 210 A- 210 F may execute network protocols to add the new block to blockchain 226 and broadcast the new block to the other full node computing devices in the decentralized P2P network 270 .
- the new block may also be time-stamped at a time corresponding to the addition to blockchain 226 .
- the full node computing device from full node computing devices 210 A- 210 F may, per the network protocols, increase a balance sheet holdings amount associated with itself by a predetermined amount.
- each of full node computing devices 210 A- 210 F may receive an equal portion of the data transfer amount specified by lightweight node computing device 250 B for executing smart contract operation network function request 290 .
- smart contract operation request 290 may be considered to be executed and the data transfer from the wallet associated with lightweight node computing device 250 B to the public key associated with the smart contract may be registered.
- the smart contract may be configured to hold the data transfer from the wallet associated with lightweight node computing device 250 B until fulfillment of certain predetermined criteria hardcoded into the smart contract are achieved.
- the smart contract may be configured such that it serves as an intermediate arbiter between entities within the decentralized P2P network 270 and may specify details of a dual data transfer between entities.
- the smart contract corresponding to smart contract operation request 290 may be one or more algorithms and/or programs stored on a block of blockchain 226 .
- the smart contract may be identified by one or more wallets and/or public keys within decentralized P2P network 270 .
- Lightweight node computing device 250 B may transmit smart contract operation network function request 290 to decentralized P2P network 270 , which may cause execution of the corresponding smart contract that facilitates a dual data transfer between a wallet associated with lightweight node computing device 250 B and a wallet associated with another node in decentralized P2P network 270 , such as lightweight node computing device 250 A, based on fulfillment of programmatic conditions established by the smart contract.
- each of full node computing devices 210 A- 210 F may identify the block within blockchain 226 comprising the smart contract, associate the data transfer entailed by smart contract operation request 290 with the smart contract, and execute the one or more algorithms and/or programs of the smart contract.
- each of full node computing devices 210 A- 210 F may execute the smart contract without fulfillment of the programmatic conditions established by the smart contract. Accordingly, the funds transferred by lightweight node computing device 250 B may remain in the smart contract until the data transfer from the other node is also associated with the smart contract.
- lightweight node computing device 250 A may also request a smart contract operation related to decentralized P2P network 270 , which may conclude the dual data transfer between the wallet associated lightweight node computing device 250 A and the wallet associated with lightweight node computing device 250 B.
- Processors of lightweight node computing device 250 A may execute network commands to broadcast the smart contract operation network function request to decentralized P2P network 270 .
- the smart contract operation network function request may include details about the data transfer such as data type and amount, as well as a data transfer amount to full node computing devices 210 A- 210 F of decentralized P2P network 270 for executing the smart contract corresponding to the smart contract operation network function request.
- the smart contract operation network function request may further include the public key associated with the smart contract.
- Processors of lightweight node computing device 250 A may execute digital signature algorithms to digitally sign the smart contract operation network function request with the private key associated with the wallet of lightweight node computing device 250 A.
- the smart contract operation network function request may be broadcasted to each of full node computing devices 210 A- 210 F through execution of network protocols by full node computing devices 210 A- 210 F.
- processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 F may execute network protocols to receive broadcast of the network function through a decentralized P2P network 270 and from lightweight node computing device 250 A.
- Processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 F may execute hash functions to generate a digest of the smart contract operation network function request.
- the resultant digest of the smart contract operation network function request may be hashed with the block hash of the most immediately preceding block of blockchain 226 .
- Processors, ASIC devices, and/or GPUs of full node computing devices 210 A- 210 F may execute consensus algorithms to identify a nonce corresponding to the particular executed consensus algorithm and related to the digest that combines the digest of the smart contract operation network function request and the block hash of the most immediately preceding block of blockchain 226 .
- the identification of the nonce enables processors, ASIC devices, and/or GPUs of the full node computing device from full node computing devices 210 A- 210 F to create a new block with a block header (e.g., block hash), which is a digest that combines the smart contract operation network function request, the block hash of the most immediately preceding block, and the identified nonce.
- a block header e.g., block hash
- Processors, ASIC devices, and/or GPUs of the full node computing device from full node computing devices 210 A- 210 F may execute network protocols to add the new block to blockchain 226 and broadcast the new block to the other full node computing devices in the decentralized P2P network 270 .
- the new block may also be time-stamped at a time corresponding to the addition to blockchain 226 .
- the full node computing device from full node computing devices 210 A- 210 F may be allowed, per the network protocols, to increase a balance sheet holdings amount associated with itself by a predetermined amount.
- each of full node computing devices 210 A- 210 F may receive an equal portion of the data transfer amount specified by lightweight node computing device 250 A for executing the smart contract operation network function request.
- the smart contract operation transaction network function request 290 may be considered to be executed and the data transfer from the wallet associated with lightweight node computing device 250 A to the public key associated with the smart contract may be registered.
- the execution of the smart contract by each of full node computing devices 210 A- 210 F may cause transfer of the data value from lightweight node computing device 250 A to lightweight node computing device 250 B and the data value from lightweight node computing device 250 B to lightweight node computing device 250 A.
- lightweight node computing device 250 A may transmit the smart contract operation network function request to decentralized P2P network 270 , which may cause execution of the corresponding smart contract that facilitates the dual data transfer.
- each of full node computing devices 210 A- 210 F may identify the block within blockchain 226 comprising the smart contract, associate the data transfer entailed by smart contract operation request of lightweight node computing device 250 A with the smart contract, and execute the one or more algorithms and/or programs of the smart contract.
- each of full node computing devices 210 A- 210 F may execute the smart contract as fulfillment of the programmatic conditions established by the smart contract has occurred. Accordingly, the funds allocated to the smart contract by each of lightweight node computing device 250 A and lightweight node computing device 250 B may be respectively distributed to the intended counterparty.
- the smart contract may be able to fulfill dual data transfers in the manner described above across a plurality of entities entering into the smart contract. For example, a first plurality of entities may enter into the smart contract, which may hold the data values for each of the first plurality of entities until a second plurality of entities enter into the smart contract. When each of the first plurality of entities and the second plurality of entities have entered, the smart contract may perform the data transfer.
- Other smart contracts may be included which include algorithms, programs, and/or computer-executable instructions which cause the performance of one or more functions related to at least cryptocurrency, digital content storage and delivery, entity authentication and authorization, digital identity, marketplace creation and operation, internet of things (e.g., IoT), prediction platforms, election voting, medical records, currency exchange and remittance, P2P transfers, ride sharing, gaming, trading platforms, and real estate, precious metal, and work of art registration and transference.
- IoT internet of things
- prediction platforms e.g., election voting, medical records
- currency exchange and remittance e.g., P2P transfers, ride sharing, gaming, trading platforms, and real estate, precious metal, and work of art registration and transference.
- decentralized P2P computer system 200 may provide technological advantages. For example, by distributing storage of blockchain 226 across multiple full node computing devices 210 A- 210 F, decentralized P2P computer system 200 may not provide a single point of failure for malicious attack. In the event that any of the full node computing devices 210 A- 210 F are compromised by a malicious attacker, decentralized P2P computer system 200 may continue to operate unabated as data storage of blockchain 226 and performance of network processes are not controlled by a singular entity such as server infrastructure 110 of centralized computing system 100 .
- decentralized P2P system 200 may provide technological improvements to conventional decentralized P2P systems in regard to byzantine fault tolerance stemming from an unreliable and/or malicious full node acting in decentralized P2P network 270 to undermine the work efforts of the other nodes.
- a malicious node would need to have computational power greater than the combined computational power of each of the other full node computing devices in decentralized P2P network 270 to identify the nonce and thereby be able to modify blockchain 226 .
- the likelihood that a malicious node could subvert decentralized P2P network 270 and enter falsified data into blockchain 226 is inversely proportional to the total computational power of decentralized P2P system 200 . Therefore, the greater the total computational power of decentralized P2P system 200 , the less likely that a malicious node could subvert decentralized P2P network 270 and undermine blockchain 226 .
- FIG. 3A depicts an illustrative example of a full node computing device 210 that may be used in accordance with one or more illustrative aspects described herein.
- Full node computing device 210 may be any of a personal computer, server computer, hand-held or laptop device, multiprocessor system, microprocessor-based system, set top box, programmable consumer electronic device, network personal computer, minicomputer, mainframe computer, distributed computing environment, virtual computing device, and the like and may operate in a decentralized P2P network.
- full node computing device 210 may be configured to operate in a decentralized P2P network and may request execution of network functions and/or execute requested network functions and maintain inter-nodal agreement as to the state of a blockchain of the decentralized P2P network.
- Full node computing device 210 may include one or more processors 211 , which control overall operation, at least in part, of full node computing device 210 .
- Full node computing device 210 may further include random access memory (RAM) 213 , read only memory (ROM) 214 , network interface 212 , input/output interfaces 215 (e.g., keyboard, mouse, display, printer, or the like), and memory 220 .
- RAM random access memory
- ROM read only memory
- I/O Input/output
- I/O may include a variety of interface units and drives for reading, writing, displaying, and/or printing data or files.
- full node computing device 210 may further comprise specialized hardware components such as application-specific integrated circuit (e.g., ASIC) devices 216 and/or graphics processing units (e.g., GPUs) 217 .
- ASIC application-specific integrated circuit
- GPUs graphics processing units
- Full node computing device 210 may further store in memory 220 operating system software for controlling overall operation of the full node computing device 210 , control logic for instructing full node computing device 210 to perform aspects described herein, and other application software providing secondary, support, and/or other functionality which may or might not be used in conjunction with aspects described herein.
- Memory 220 may also store data and/or computer executable instructions used in performance of one or more aspects described herein.
- memory 220 may store digital signature information 221 and one or more hash functions 222 , consensus algorithms 223 , network protocols 224 , and network commands 225 .
- digital signature information 221 , hash functions 222 , and/or network commands 225 may comprise a wallet of full node computing device 210 .
- Memory 220 may further store blockchain 226 .
- Each of digital signature information 221 , hash functions 222 , consensus algorithms 223 , network protocols 224 , and network commands 225 may be used and/or executed by one or more processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 to create and maintain a decentralized P2P network, request execution of network functions, and/or execute requested network functions and maintain inter-nodal agreement as to the state of blockchain 226 .
- processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 may execute network protocols 225 .
- Execution of network protocols 225 may cause full node computing device 210 to form a communicative arrangement with other full node computing devices and thereby create a decentralized P2P network.
- the execution of network protocols 225 may cause full node computing device 210 to maintain the decentralized P2P network through the performance of computational tasks related to the execution of network requests related to a blockchain such as blockchain 226 .
- full node computing device 210 may maintain inter-nodal agreement as to the state of a blockchain with other full node computing devices comprising the decentralized P2P network.
- processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 may execute network commands 225 to broadcast the network function to a decentralized P2P network comprising a plurality of full nodes and/or lightweight nodes.
- the request may be digitally signed by full node computing device 210 with usage of the private/public key information and through execution of the digital signature algorithms of digital signature information 221 .
- processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 may execute network protocols 224 to receive a broadcast of a requested network function through a decentralized P2P network and from a requesting entity such as a full node or lightweight node.
- processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 may execute hash functions 222 to generate a digest of the requested network function.
- the resultant digest of the requested network function may be hashed with the block hash of the most immediately preceding block of the blockchain.
- processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 may execute consensus algorithms 223 to identify a numerical value (e.g., nonce) corresponding to the particular executed consensus algorithm and related to the digest that combines the digest of the requested network function and the block hash of the most immediately preceding block of the blockchain.
- the identification of the numerical value enables processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 to create a new block with a block header (e.g., block hash), which is a digest that combines the digest of the requested network function, the block hash of the most immediately preceding block, and the identified nonce.
- Processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 may add the new block to the blockchain based on network protocols 224 and broadcast the new block to the other nodes in the decentralized P2P network.
- a plurality of network function requests may be broadcasted across the decentralized network P2P network.
- Processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 may execute network protocols 224 to receive broadcast of each of the network functions through the decentralized P2P network and from the requesting entities.
- Processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 may execute hash functions 222 to generate a hash tree (e.g., Merkle tree) of the requested network functions, which culminates in a single digest (e.g., root digest, root hash, and the like) that comprises the digests of each of the requested network functions.
- hash tree e.g., Merkle tree
- the root digest of the requested network function may be hashed with the block hash of the most immediately preceding block of the blockchain.
- Processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 may execute consensus algorithms 223 to identify a numerical value (e.g., nonce) corresponding to the particular executed consensus algorithm and related to the digest that combines the root digest of the requested network functions and the block hash of the most immediately preceding block of the blockchain.
- a numerical value e.g., nonce
- the identification of the numerical value enables processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 to create a new block with a block header (e.g., block hash), which is a digest that combines the root digest of the requested network functions, the block hash of the most immediately preceding block, and the identified nonce.
- a block header e.g., block hash
- Processors 211 , ASIC devices 216 , and/or GPUs 217 of full node computing device 210 may add the new block to the blockchain based on network protocols 224 and broadcast the new block to the other nodes in the decentralized P2P network.
- memory 220 of full node computing device 210 may store blockchain 226 .
- Blockchain 226 may include a blocks 227 A, 227 B, 227 C, . . . 227 n, wherein block 227 A represents the first block (e.g., genesis block) of blockchain 226 and block 227 n represents the most immediate block of blockchain 226 .
- the blockchain 226 which may be a replica or copy of the blockchain of the decentralized P2P network in which full node computing device 210 operates, may be a full or complete copy of the blockchain of the decentralized P2P network.
- Each of the blocks within blockchain 226 may include information corresponding to the one or more network functions executed by the decentralized P2P network.
- blockchain 226 as stored in memory 220 of full node computing device 210 may comprise the totality of network functions executed by the decentralized network.
- FIG. 3B depicts an illustrative example of a lightweight node computing device 250 that may be used in accordance with one or more illustrative aspects described herein.
- Lightweight node computing device 250 may be any of a personal computer, server computer, hand-held or laptop device, multiprocessor system, microprocessor-based system, set top box, programmable consumer electronic device, network personal computer, minicomputer, mainframe computer, distributed computing environment, virtual computing device, and the like and may operate in a decentralized P2P network.
- lightweight node computing device 250 may operate in a decentralized P2P network and may be configured to request execution of network functions through the decentralized P2P network.
- lightweight node computing device 250 may be different than full node computing device 210 in that it is not configured to execute network functions and/or operate to maintain a blockchain of a decentralized P2P network.
- lightweight node computing device 250 may have substantially the same physical configuration as full node computing device 210 , but may be configured with different programs, software, or the like.
- Lightweight node computing device 250 may include one or more processors 251 , which control overall operation of lightweight node computing device 250 .
- Lightweight node computing device 250 may further include random access memory (RAM) 253 , read only memory (ROM) 254 , network interface 252 , input/output interfaces 255 (e.g., keyboard, mouse, display, printer, or the like), and memory 260 .
- Input/output (I/O) 255 may include a variety of interface units and drives for reading, writing, displaying, and/or printing data or files.
- Lightweight node computing device 250 may store in memory 260 operating system software for controlling overall operation of the lightweight node computing device 250 , control logic for instructing lightweight node computing device 250 to perform aspects described herein, and other application software providing support and/or other functionality which may or might not be used in conjunction with aspects described herein.
- lightweight node computing device 250 might not include, in some instances, specialized hardware such as ASIC devices 216 and/or GPUs 217 . Such may be the case because lightweight node computing device 250 might not be configured to execute network functions and/or operate to maintain a blockchain of a decentralized P2P network as is full node computing device 210 . However, in certain arrangements, lightweight node computing device 250 may include such specialized hardware.
- Memory 260 of lightweight node computing device 250 may also store data and/or computer executable instructions used in performance of one or more aspects described herein.
- memory 260 may store digital signature information 261 and one or more hash functions 222 and network commands 225 .
- digital signature information 261 , hash functions 222 , and/or network commands 225 may comprise a wallet of lightweight node computing device 250 .
- Each of hash functions 222 and network commands 225 stored in memory 260 of lightweight node computing device 250 may be respectively similar and/or identical to hash functions 222 network commands 225 stored in memory 220 of full node computing device 210 .
- each of digital signature information 261 stored in memory 260 of lightweight node computing device 250 and digital signature information 221 stored in memory 220 of full node computing device 210 may comprise similar and/or identical digital signature algorithms.
- the private/public key information of digital signature information 261 stored in memory 260 of lightweight node computing device 250 may be different than that of the private/public key information of digital signature information 221 stored in memory 220 of full node computing device 210 .
- the private/public key information of each node, whether full or lightweight, in a decentralized P2P computing network may be unique to that particular node.
- a first node in a decentralized P2P computing network may have first private/public key information
- a second node may have second private/public key information
- a third node may have third private/public key information, and so on, wherein each of the private/public key information is unique to the particular node.
- the private/public key information may serve as a unique identifier for the nodes in a decentralized P2P computing network.
- Each of digital signature information 261 , hash functions 222 , and network commands 225 may be used and/or executed by one or more processors 251 of lightweight node computing device 250 to request execution of network functions in a decentralized P2P network.
- processors 251 of lightweight node computing device 250 may execute network commands 225 to broadcast the network function to a decentralized P2P network comprising a plurality of full nodes and/or lightweight nodes.
- the request may be digitally signed by lightweight node computing device 250 with usage of the private/public key information and through execution of the digital signature algorithms of digital signature information 261 .
- memory 260 of lightweight node computing device 250 may store blockchain 226 .
- Blockchain 226 stored in memory 260 of lightweight node computing device 250 may include at least block 227 n, wherein block 227 n represents the most immediate block of blockchain 226 .
- the blockchain 226 which may be a replica or copy of the blockchain of the decentralized P2P network in which lightweight node computing device 250 operates, may be a partial or incomplete copy of the blockchain of the decentralized P2P network.
- blockchain 226 may include a blocks 227 A, 227 B, 227 C, . . .
- block 227 A represents the first block (e.g., genesis block) of blockchain 226 and block 227 n represents the most immediate block of blockchain 226 .
- the blockchain 226 may be a full or complete copy of the blockchain of the decentralized P2P network.
- Each of the blocks within blockchain 226 may include information corresponding to the one or more network functions executed by the decentralized P2P network.
- FIG. 4 depicts an illustrative digital token utilization system that may be used in accordance with one or more example embodiments described herein.
- Digital token utilization system 400 may include a decentralized P2P network 401 , network nodes 403 A- 403 N, networks 405 A- 405 C, a service provider computing device 407 , a lender computing device 409 , and a borrower computing device 411 .
- Service provider computing device 407 may communicate with decentralized P2P network 401 through network 405 A.
- Lender computing device 409 may communicate with decentralized P2P network 401 through network 405 B.
- Borrower computing device 411 may communicate with decentralized P2P network 401 through network 405 C.
- Digital token utilization system 400 may include additional and/or other computing devices and/or networks similar to decentralized P2P network 401 , network nodes 403 A- 403 N, networks 405 A- 405 C, service provider computing device 407 , lender computing device 409 , and borrower computing device 411 .
- Decentralized P2P network 401 may be a public or private decentralized network, and may be similar to decentralized P2P network 270 described above in connection with FIG. 2 .
- Decentralized P2P network 401 may include network nodes 403 A- 403 N.
- a network node of network nodes 403 A- 403 N may be any type of computing device or computing platform.
- a network node of network nodes 403 A- 403 N may be configured to operate as a full node in decentralized P2P network 401 .
- a network node of network nodes 403 A- 403 N may be similar to full node computing devices 201 A- 201 F described above in connection with FIG. 2 , or full node computing device 210 described above in connection with FIG. 3A .
- a network node of network nodes 403 A- 403 N may include (e.g., store in its memory) at least a portion of a blockchain corresponding to decentralized P2P network 401 .
- the blockchain corresponding to decentralized P2P network 401 may store information related to network functions (e.g., balance sheet transactions, data storage operations, smart contract operations, or the like) of decentralized P2P network 401 . Additionally or alternatively, the blockchain of decentralized P2P network 401 may store information related to digital tokens, service provider tokens, credit tokens, and/or other types of tokens, as will be described in further detail below.
- network functions e.g., balance sheet transactions, data storage operations, smart contract operations, or the like
- the blockchain of decentralized P2P network 401 may store information related to digital tokens, service provider tokens, credit tokens, and/or other types of tokens, as will be described in further detail below.
- the digital tokens may include any type of digital token.
- the digital tokens may be cryptocurrency and/or cryptocurrency digitally backed by fiat currency, gold, or other objects of value.
- the service provider token may be a type of cryptocurrency and/or cryptocurrency digitally backed by fiat currency, gold, or other objects of value.
- the service provider token may be issued by service provider computing device 407 to facilitate depositing and withdrawing of the digital tokens as further discussed below.
- the credit token may be a type of token that represents its holder's reputation (e.g., the holder's creditworthiness).
- the credit token may be issued by service provider computing device 407 .
- the credit token may be configured to be freely transferrable or not freely transferrable.
- the credit token may be used to facilitate lending the digital tokens as further discussed below.
- a network node of network nodes 403 A- 403 N may be configured to executed requested network functions, maintain inter-nodal agreement as to the state of the blockchain of decentralized P2P network 401 , and request execution of network functions. Additionally or alternatively, a network node of network nodes 403 A- 403 N may be configured to operate as a lightweight node.
- Each of service provider computing device 407 , lender computing device 409 , and/or borrower computing device 411 may be configured to operate as a lightweight node communicating with decentralized P2P network 401 .
- Each of service provider computing device 407 , lender computing device 409 , and/or borrower computing device 411 may be similar to lightweight node computing devices 250 A- 250 B described above in connection with FIG. 2 , or lightweight node computing device 250 described above in connection with FIG. 3B .
- service provider computing device 407 , lender computing device 409 , and/or borrower computing device 411 may each be configured to interface with decentralized P2P network 401 by requesting execution of network functions related to facilitating the blockchain-based digital token utilization processes described herein.
- service provider computing device 407 , lender computing device 409 , and/or borrower computing device 411 may be configured to operate as a full node.
- Each of service provider computing device 407 , lender computing device 409 , and/or borrower computing device 411 may be associated with a particular entity, such as a company or an enterprise organization.
- service provider computing device 407 may be associated with a service provider
- lender computing device 409 may be associated with a lender
- borrower computing device 411 may be associated with a borrower.
- the service provider may accept deposits of the digital tokens from the lender, and provide loans of the digital tokens to the borrower.
- Service provider computing device 407 , lender computing device 409 , and/or borrower computing device 411 may each be configured to interface with its associated entity via a user interface, a web interface, a computing device, or the like.
- Each of service provider computing device 407 , lender computing device 409 , and/or borrower computing device 411 may have a digital token wallet stored in its memory which may be associated with a digital token.
- the digital token wallet may be associated with a public key, which may serve to identify the digital token wallet.
- the digital token wallet may be associated with a private key, which may be used to digitally sign requests and/or operations related to the digital token wallet in order to verify the authenticity of the requests and/or operations.
- Each of service provider computing device 407 and/or lender computing device 409 may have a service provider token wallet stored in its memory which may be associated with the service provider token. Similar to the digital token wallets, the service provider token wallets may be associated with public keys and private keys. Each of service provider computing device 407 and/or borrower computing device 411 may have a credit token wallet stored in its memory which may be associated with the credit token. The credit token wallets may be associated with public keys and private keys. Additionally or alternatively, service provider computing device 407 , lender computing device 409 , and/or borrower computing device 411 may each have any other type of wallet associated with other types of tokens.
- FIGS. 5A-5H depict an illustrative event sequence for digital token utilization in accordance with one or more example embodiments described herein. While the steps of the event sequence are described in a particular order, the steps may be performed in any order without departing from the scope of the disclosure provided herein. Although the event sequence is described as being performed by a particular arrangement of computing systems, devices, and networks (e.g., service provider computing device 407 , lender computing device 409 , borrower computing device 411 , and network nodes 403 A- 403 N in decentralized P2P network 401 ), the processes may be performed by a greater or smaller number of computing systems, devices, and/or networks, and/or by any type of computing system, device, and/or network.
- service provider computing device 407 e.g., lender computing device 409 , borrower computing device 411 , and network nodes 403 A- 403 N in decentralized P2P network 401
- the processes may be performed by a greater or smaller number of computing systems, devices, and/
- service provider computing device 407 may receive a digital token collection request.
- the digital token collection request may be received via an application operating locally on the service provider computing device 407 .
- a service provider associated with service provider computing device 407 may enter, via a user interface of the application, the digital token collection request.
- the digital token collection request may be received through a web interface associated with service provider computing device 407 .
- the digital token collection request may indicate that service provider computing device 407 intends to accept deposits of digital tokens.
- the digital token collection request may indicate a type of digital token, an appreciation rate associated with the digital token, an exchange rate between the digital token and the service provider token, and wallet information (e.g., public keys) associated with service provider computing device 407 .
- service provider computing device 407 may generate a collection smart contract based on the digital token collection request.
- the collection smart contract may include one or more algorithms and/or computer executable functions that control the collecting and returning of digital tokens (e.g., in exchange of the service provider token).
- the collection smart contract may be configured to create a number of data fields, which may store values for an amount of digital tokens of a particular type (a digital token quantity data field), an amount of the service provider tokens (a service provider token quantity data field), an exchange rate between the digital token and the service provider token (an exchange rate data field), and/or an appreciation rate associated with the digital token (an appreciation rate data field).
- service provider computing device 407 may deploy the collection smart contract to the blockchain of decentralized P2P network 401 .
- Service provider computing device 407 may compile the collection smart contract, and send, to decentralized P2P network 401 , a network function request including the collection smart contract.
- the network function request may be broadcasted to network nodes 403 A- 403 N.
- the broadcasting of the network function request may be performed by each of the full node computing devices (e.g., network nodes 403 A- 403 N) comprising decentralized P2P network 401 so that each of the full node computing devices receives the network function request.
- At least one of network nodes 403 A- 403 N in decentralized P2P network 401 may generate a block corresponding to the blockchain of decentralized P2P network 401 , and may add the block to the blockchain.
- the network node of network nodes 403 A- 403 N that generates the block may broadcast the block to other network nodes of network nodes 403 A- 403 N.
- the other network nodes of network nodes 403 A- 403 N may validate the block, and add the block to their copies of the blockchain.
- the generated block added to the blockchain of decentralized P2P network 401 may include the collection smart contract generated by service provider computing device 407 .
- the operations of generating and adding the block to the blockchain may be similar to those described above in connection with FIG. 2 .
- a public key corresponding to the collection smart contract stored in the blockchain of decentralized P2P network 401 may be returned by one or more of network nodes 403 A- 403 N to service provider computing device 407 .
- the public key may be returned responsive to storing the collection smart contract on the blockchain of decentralized P2P network 401 .
- the public key may uniquely identify the collection smart contract in the blockchain of decentralized P2P network 401 .
- service provider computing device 407 may send a token collection configuration request to network nodes 403 A- 403 N in decentralized P2P network 401 .
- the token collection configuration request may be a smart contract operation request, and may include the public key corresponding to the collection smart contract in the blockchain of decentralized P2P network 401 .
- the token collection configuration request may request to transfer an amount of digital tokens of a particular type from the digital token wallet associated with service provider computing device 407 to the collection smart contract.
- the request to transfer the digital token may be digitally signed by the private key of the digital token wallet associated with service provider computing device 407 .
- the token collection configuration request may request to transfer an amount of the service provider tokens from the service provider token wallet associated with service provider computing device 407 to the collection smart contract.
- the request to transfer the service provider token may be digitally signed by the private key of the service provider token wallet associated with service provider computing device 407 .
- the token collection configuration request may request to populate the exchange rate data field and/or the appreciation rate data field in the collection smart contract with the corresponding values specified in the digital token collection request.
- network nodes 403 A- 403 N of decentralized P2P network 401 may receive the token collection configuration request (e.g., from service provider computing device 407 ), and may execute the collection smart contract (e.g., by applying the token collection configuration request to the collection smart contract).
- the token collection configuration request e.g., from service provider computing device 407
- the collection smart contract e.g., by applying the token collection configuration request to the collection smart contract.
- each of network nodes 403 A- 403 N may identify, within the blockchain of decentralized P2P network 401 , the block comprising the collection smart contract based on the public key corresponding to the collection smart contract. After verifying that the digital signatures associated with the token collection configuration request are valid, each of network nodes 403 A- 403 N may transfer the digital token and/or the service provider token from the wallets associated with service provider computing device 407 to the collection smart contract. For example, each of network nodes 403 A- 403 N may decrease the value of the digital token wallet associated with service provider computing device 407 by the amount specified in the token collection configuration request, and increase the value of the digital token quantity data field in the collection smart contract by the same amount.
- the digital tokens and/or service provider tokens may remain in the collection smart contract until further network function requests are received. Additionally or alternatively, based on the token collection configuration request, each of network nodes 403 A- 403 N may set the values of the exchange rate data field and the appreciation rate data field in the collection smart contract.
- At least one of network nodes 403 A- 403 N in decentralized P2P network 401 may generate a block corresponding to the blockchain of decentralized P2P network 401 , and may add the block to the blockchain.
- the network node of network nodes 403 A- 403 N that generates the block may broadcast the block to other network nodes of network nodes 403 A- 403 N.
- the other network nodes of network nodes 403 A- 403 N may validate the block, and add the block to their copies of the blockchain.
- the operations of generating and adding the block to the blockchain may be similar to those described above in connection with FIG. 2 .
- the generated block added to the blockchain of decentralized P2P network 401 may include the token collection configuration request generated by service provider computing device 407 . Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after applying the token collection configuration request to the collection smart contract.
- the most recent state of the blockchain of decentralized P2P network 401 e.g., values of wallets, values of data fields in smart contracts, or the like
- lender computing device 409 may send a lender input request to network nodes 403 A- 403 N in decentralized P2P network 401 .
- the lender input request may be a smart contract operation request, and may include the public key corresponding to the collection smart contract in the blockchain of decentralized P2P network 401 .
- the lender input request may request to transfer digital tokens of a particular type from the digital token wallet associated with lender computing device 409 to the collection smart contract.
- the lender input request may indicate that lender computing device 409 intends to deposit an amount of the digital tokens for an appreciation rate.
- the lender input request may specify the quantity of the digital tokens that lender computing device 409 intends to transfer.
- the lender input request may be digitally signed by a private key of the digital token wallet associated with lender computing device 409 .
- network nodes 403 A- 403 N of decentralized P2P network 401 may receive the lender input request (e.g., from lender computing device 409 ), and may execute the collection smart contract (e.g., by applying the lender input request to the collection smart contract). For example, each of network nodes 403 A- 403 N may identify, within the blockchain of decentralized P2P network 401 , the block comprising the collection smart contract based on the public key corresponding to the collection smart contract. After verifying that the digital signature associated with the lender input request is valid, each of network nodes 403 A- 403 N may transfer the specified amount of the digital tokens from the digital token wallet associated with lender computing device 409 to the collection smart contract. For example, each of network nodes 403 A- 403 N may decrease the value of the digital token wallet associated with lender computing device 409 by the specified amount, and may increase the value of the digital token quantity data field in the collection smart contract by the specified amount.
- the lender input request e.g., from lender computing device 409
- execution of the collection smart contract may cause network nodes 403 A- 403 N to transmit the digital tokens to the digital token wallet associated with service provider computing device 407 .
- service provider computing device 407 may have a digital token wallet stored in its memory which may be associated with the digital token, and execution of the collection smart contract may cause network nodes 403 A- 403 N to transmit the digital tokens to service provider computing device 407 .
- the amount of the digital tokens to be transmitted to the digital token wallet associated with service provider computing device 407 may be all or a portion of the digital tokens received from the digital token wallet associated with lender computing device 409 .
- a portion of the digital tokens received from the digital token wallet associated with lender computing device 409 may remain in the collection smart contract as anytime available digital tokens for lender computing device 409 to withdraw in step 514 .
- the portion remaining in the collection smart contract may be calculated based on historical withdrawal events.
- a portion of the digital tokens received from the digital token wallet associated with lender computing device 409 may be transferred to a distribution smart contract configured to facilitate lending digital tokens to borrower computing device 411 as discussed below.
- execution of the collection smart contract may cause network nodes 403 A- 403 N to transmit the service provider tokens to the service provider token wallet associated with lender computing device 409 .
- lender computing device 409 may have a service provider token wallet stored in its memory which may be associated with the service provider token, and execution of the collection smart contract may cause network nodes 403 A- 403 N to transmit the service provider tokens to lender computing device 409 .
- the amount of the service provider tokens to be transmitted to the service provider token wallet associated with lender computing device 409 may be determined based on the amount of the digital tokens received from the digital token wallet associated with lender computing device 409 and the exchange rate between the digital token and the service provider token. For example, if the exchange rate between the digital token and the service provider token is R:1, the amount of the service provider tokens to be transmitted to the service provider token wallet associated with lender computing device 409 may be the amount of the digital tokens received from the digital token wallet associated with lender computing device 409 divided by R. Different types of digital tokens may have same or different exchange rates to the service provider token.
- the service provider token may be used to facilitate the deposit and withdrawal of the digital token.
- the service provider token may be issued by service provider computing device 407 .
- the service provider token may be issued according to a particular technical standard, such as the ERC20 technical standard.
- the service provider token may be backed by physical objects of value, which may be audited by a third party.
- At least one of network nodes 403 A- 403 N in decentralized P2P network 401 may generate a block corresponding to the blockchain of decentralized P2P network 401 , and may add the block to the blockchain.
- the network node of network nodes 403 A- 403 N that generates the block may broadcast the block to other network nodes of network nodes 403 A- 403 N.
- the other network nodes of network nodes 403 A- 403 N may validate the block, and add the block to their copies of the blockchain.
- the operations of generating and adding the block to the blockchain may be similar to those described above in connection with FIG. 2 .
- the generated block added to the blockchain of decentralized P2P network 401 may include the lender input request generated by lender computing device 409 . Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after applying the lender input request to the collection smart contract.
- the most recent state of the blockchain of decentralized P2P network 401 e.g., values of wallets, values of data fields in smart contracts, or the like
- lender computing device 409 may send a lender output request to network nodes 403 A- 403 N in decentralized P2P network 401 .
- the lender output request may be a smart contract operation request, and may include the public key corresponding to the collection smart contract in the blockchain of decentralized P2P network 401 .
- the lender output request may request to transfer an amount of the service provider tokens from the service provider token wallet associated with lender computing device 409 to the collection smart contract.
- the lender output request may indicate that lender computing device 409 intends to withdraw an amount of digital tokens of a particular type based on the returned service provider tokens.
- the lender output request may specify the amount of the service provider tokens that lender computing device 409 intends to transfer.
- the lender output request may be signed by a private key of the service provider token wallet associated with lender computing device 409 .
- network nodes 403 A- 403 N of decentralized P2P network 401 may receive the lender output request (e.g., from lender computing device 409 ), and may execute the collection smart contract (e.g., by applying the lender output request to the collection smart contract), in a similar manner as in step 510 .
- the lender output request e.g., from lender computing device 409
- the collection smart contract e.g., by applying the lender output request to the collection smart contract
- each of network nodes 403 A- 403 N may identify, within the blockchain of decentralized P2P network 401 , the block comprising the collection smart contract based on the public key corresponding to the collection smart contract. After verifying that the digital signature associated with the lender output request is valid, each of network nodes 403 A- 403 N may transfer the specified amount of the service provider tokens from the service provider token wallet associated with lender computing device 409 to the collection smart contract. For example, each of network nodes 403 A- 403 N may decrease the value of the service provider token wallet associated with lender computing device 409 by the amount specified in the lender output request, and may increase the value of the service provider token quantity data field in the collection smart contract by the specified amount.
- execution of the collection smart contract may cause network nodes 403 A- 403 N to transmit the digital tokens to the digital token wallet associated with lender computing device 409 .
- lender computing device 409 may have a digital token wallet stored in its memory which may be associated with the digital token, and execution of the collection smart contract may cause network nodes 403 A- 403 N to transmit the digital tokens to lender computing device 409 .
- the amount of the digital tokens to be transmitted to the digital token wallet associated with lender computing device 409 may be determined based on the amount of the service provider tokens received from the service provider token wallet associated with lender computing device 409 and an updated exchange rate between the digital token and the service provider token.
- the exchange rate between the digital token and the service provider token may be updated based on the appreciation rate associated with the digital token.
- the appreciation rate may be a rate per second, a rate per minute, a rate per hour, a rate per day, or the like.
- Execution of the collection smart contract may cause network nodes 403 A- 403 N to determine a time period between receiving the lender input request and receiving the lender output request (e.g., based on timestamps recorded at the time of receiving the requests).
- the network nodes 403 A- 403 N may calculate an overall appreciation rate for the determined time period based on the appreciation rate and the time period (e.g., through the simple interest calculation method, the compound interest calculation method, or the like).
- the updated exchange rate may be equal to the previous exchange rate multiplied by the overall appreciation rate for the determined time period.
- the network nodes 403 A- 403 N may periodically update the exchange rate (e.g., every hour, every day, or the like). Additionally or alternatively, the network nodes 403 A- 403 N may update the exchange rate every time the collection smart contract is executed.
- the exchange rate between the digital token and the service provider token may be constantly increasing, representing the appreciation value of the deposited digital tokens. For example, when lender computing device 409 deposits the digital tokens to the collection smart contract, the exchange rate between the digital token and the service provider token may be 101:100. When lender computing device 409 withdraws the digital tokens from the collection smart contract, the exchange rate between the digital token and the service provider token may be 101.05:100 (increased based on the appreciation rate associated with the digital token). Lender computing device 409 may withdraw its deposited digital tokens together with interest based on simply transmitting the service provider tokens to the collection smart contract.
- execution of the collection smart contract may cause network nodes 403 A- 403 N to transmit the service provider tokens to the service provider token wallet associated with service provider computing device 407 .
- service provider computing device 407 may have a service provider token wallet stored in its memory which may be associated with the service provider token, and execution of the collection smart contract may cause network nodes 403 A- 403 N to transmit the service provider tokens to service provider computing device 407 .
- the amount of the service provider tokens to be transmitted to the service provider token wallet associated with service provider computing device 407 may be all or a portion of the service provider tokens received from the service provider token wallet associated with lender computing device 409 .
- a portion of the service provider tokens received from the service provider token wallet associated with lender computing device 409 may remain in the collection smart contract for future use. The portion remaining in the collection smart contract may be determined based on historical deposit events.
- At least one of network nodes 403 A- 403 N in decentralized P2P network 401 may generate a block corresponding to the blockchain of decentralized P2P network 401 , and may add the block to the blockchain.
- the network node of network nodes 403 A- 403 N that generates the block may broadcast the block to other network nodes of network nodes 403 A- 403 N.
- the other network nodes of network nodes 403 A- 403 N may validate the block, and add the block to their copies of the blockchain.
- the operations of generating and adding the block to the blockchain may be similar to those described above in connection with FIG. 2 .
- the generated block added to the blockchain of decentralized P2P network 401 may include the lender output request generated by lender computing device 409 . Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after applying the lender output request to the collection smart contract.
- the most recent state of the blockchain of decentralized P2P network 401 e.g., values of wallets, values of data fields in smart contracts, or the like
- service provider computing device 407 may receive a digital token distribution request.
- the digital token distribution request may be received via an application operating locally on the service provider computing device 407 .
- a service provider associated with service provider computing device 407 may enter, via a user interface of the application, the digital token distribution request.
- the digital token distribution request may be received through a web interface associated with service provider computing device 407 .
- the digital token distribution request may indicate that service provider computing device 407 intends to provide loans of digital tokens of a particular type.
- the digital token distribution request may indicate a type of digital token, an interest rate associated with the digital token, conditions for allocating an amount of the digital tokens to borrower computing device 411 (e.g., an exchange rate between the digital token and a credit token), and wallet information (e.g., public keys) associated with service provider computing device 407 .
- the interest rates associated with the different types of digital tokens may be determined based on the risk levels associated with the different digital tokens, the market values of the different digital tokens, or the like. Additionally or alternatively, the interest rate associated with a type of digital token may be determined based on the appreciation rate, associated with the digital token, which is used in the collection smart contract. For example, the interest rate associated with the digital token may be set to be higher than the appreciation rate associated with the digital token.
- service provider computing device 407 may generate a distribution smart contract based on the digital token distribution request.
- the distribution smart contract may include one or more algorithms and/or computer executable functions that control the distributing and recollecting of the digital tokens.
- the distribution smart contract may be configured to create a number of data fields, which may store values for an amount of digital tokens of a particular type (a digital token quantity data field), quantities of other types of tokens (token quantity data fields), exchange rates between the digital token and the other types of tokens (exchange rate data fields), and/or an interest rate associated with the digital token (interest rate data field).
- the distribution smart contract may include programmatic conditions for allocating the digital tokens to borrower computing device 411 .
- borrower computing device 411 may transmit another type of token (e.g., the credit token) to the distribution smart contract as collateral, and the distribution smart contract may use an exchange rate between the digital token and the other type of token to calculate whether and/or how much digital tokens may be distributed to borrower computing device 411 .
- the distribution smart contract may allow borrower computing device 411 to get an amount of the digital tokens even if the distribution smart contract does not receive any tokens as collateral.
- the distribution smart contract may request authorization from service provider computing device 407 before sending the requested digital tokens to borrower computing device 411 .
- Service provider computing device 407 may assess whether to authorize sending the digital tokens to borrower computing device 411 based on various factors, such as a credit score associated with borrower computing device 411 .
- service provider computing device 407 may deploy the distribution smart contract to the blockchain of decentralized P2P network 401 .
- Service provider computing device 407 may compile the distribution smart contract, and send, to decentralized P2P network 401 , a network function request including the distribution smart contract.
- the network function request may be broadcasted to network nodes 403 A- 403 N.
- the broadcasting of the network function request may be performed by each of the full node computing devices (e.g., network nodes 403 A- 403 N) comprising decentralized P2P network 401 so that each of the full node computing devices receives the network function request.
- At least one of network nodes 403 A- 403 N in decentralized P2P network 401 may generate a block corresponding to the blockchain of decentralized P2P network 401 , and may add the block to the blockchain.
- the network node of network nodes 403 A- 403 N that generates the block may broadcast the block to other network nodes of network nodes 403 A- 403 N.
- the other network nodes of network nodes 403 A- 403 N may validate the block, and add the block to their copies of the blockchain.
- the operations of generating and adding the block to the blockchain may be similar to those described above in connection with FIG. 2 .
- the generated block added to the blockchain of decentralized P2P network 401 may include the distribution smart contract generated by service provider computing device 407 .
- a public key corresponding to the distribution smart contract in the blockchain of decentralized P2P network 401 may be returned by one or more of network nodes 403 A- 403 N to service provider computing device 407 .
- the public key may be returned responsive to storing the distribution smart contract on the blockchain of decentralized P2P network 401 .
- the public key may uniquely identify the distribution smart contract in the blockchain of decentralized P2P network 401 .
- service provider computing device 407 may send a token distribution configuration request to network nodes 403 A- 403 N in decentralized P2P network 401 .
- the token distribution configuration request may be a smart contract operation request, and may include the public key corresponding to the distribution smart contract in the blockchain of decentralized P2P network 401 .
- the token distribution configuration request may request to transfer an amount of the digital tokens from the digital token wallet associated with service provider computing device 407 to the distribution smart contract.
- the transfer request may be signed by a private key of the digital token wallet associated with service provider computing device 407 .
- the token distribution configuration request may request to populate the exchange rate data fields and/or the interest rate data field in the distribution smart contract with values specified in the digital token distribution request.
- the network nodes 403 A- 403 N of decentralized P2P network 401 may receive the token distribution configuration request (e.g., from service provider computing device 407 ), and may executed the distribution smart contract (e.g., by applying the token distribution configuration request to the distribution smart contract).
- the token distribution configuration request e.g., from service provider computing device 407
- the distribution smart contract e.g., by applying the token distribution configuration request to the distribution smart contract.
- each of network nodes 403 A- 403 N may identify, within the blockchain of decentralized P2P network 401 , the block comprising the distribution smart contract based on the public key corresponding to the distribution smart contract. After verifying that the digital signature associated with the token distribution configuration request is valid, each of network nodes 403 A- 403 N may transfer the digital tokens from the digital token wallet associated with service provider computing device 407 to the distribution smart contract. For example, each of the network nodes 403 A- 403 N may decrease the value of the digital token wallet associated with service provider computing device 407 by an amount (e.g., specified in the token distribution configuration request), and increase the value of the digital token quantity data field in the distribution smart contract by the same amount.
- an amount e.g., specified in the token distribution configuration request
- each of network nodes 403 A- 403 N may set the values of the exchange rate data fields and/or the interest rate data field in the distribution smart contract.
- At least one of network nodes 403 A- 403 N in decentralized P2P network 401 may generate a block corresponding to the blockchain of decentralized P2P network 401 , and may add the block to the blockchain.
- the network node of network nodes 403 A- 403 N that generates the block may broadcast the block to other network nodes of network nodes 403 A- 403 N.
- the other network nodes of network nodes 403 A- 403 N may validate the block, and add the block to their copies of the blockchain.
- the operations of generating and adding the block to the blockchain may be similar to those described above in connection with FIG. 2 .
- the generated block added to the blockchain of decentralized P2P network 401 may include the token distribution configuration request generated by service provider computing device 407 . Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after applying the token distribution configuration request to the distribution smart contract.
- the most recent state of the blockchain of decentralized P2P network 401 e.g., values of wallets, values of data fields in smart contracts, or the like
- borrower computing device 411 may send a borrower output request to network nodes 403 A- 403 N in decentralized P2P network 401 .
- the borrower output request may be a smart contract operation request, and may include the public key corresponding to the distribution smart contract in the blockchain of decentralized P2P network 401 .
- the borrower output request may request to transfer an amount of the digital tokens from the distribution smart contract to the digital token wallet associated with borrower computing device 411 .
- the borrower output request may indicate that borrower computing device 411 intends to obtain an amount of the digital tokens at an interest rate.
- the borrower output request may request to transfer other types of tokens as collateral from wallets associated with borrower computing device 411 to the distribution smart contract.
- the other types of tokens may include, for example, a credit token or digital tokens of types other than the type that borrower computing device 411 intends to obtain.
- the other types of tokens may be backed by gold, real property, personal property, intellectual property, or the like, which may be audited by a third party.
- the credit token may be issued by service provider computing device 407 .
- the credit token may be configured to be freely transferrable or not freely transferrable.
- service provider computing device 407 may issue an initial amount of the credit tokens to borrower computing device 411 .
- the initial amount of the credit tokens may be determined based on a credit score associated with borrower computing device 411 .
- the credit score may be determined based on, for example, data obtained from government agencies, insurance companies, telecommunication providers, utility providers, or the like.
- the credit token may be issued to borrower computing device 411 based on historical event data associated with borrower computing device 411 . As discussed in more details below, if borrower computing device 411 returns its obtained digital tokens with additional digital tokens as interest and within a threshold period, an amount of the credit tokens may be issued to borrower computing device 411 as a reward and as an indication of the increasing creditworthiness of borrower computing device 411 .
- network nodes 403 A- 403 N of decentralized P2P network 401 may receive the borrower output request (e.g., from borrower computing device 411 ), and may execute the distribution smart contract (e.g., by applying the borrower output request to the distribution smart contract).
- the borrower output request e.g., from borrower computing device 411
- the distribution smart contract e.g., by applying the borrower output request to the distribution smart contract.
- each of network nodes 403 A- 403 N may identify, within the blockchain of decentralized P2P network 401 , the block comprising the distribution smart contract based on the public key corresponding to the distribution smart contract. After verifying that the digital signature(s) associated with the borrower output request is valid, each of network nodes 403 A- 403 N may transfer, from the credit token wallet associated with borrower computing device 411 to the distribution smart contract, an amount of credit tokens (e.g., specified in the borrower output request). For example, each of network nodes 403 A- 403 N may decrease the value of the credit token wallet associated with borrower computing device 411 by the specified amount, and may increase the value of a credit token quantity data field in the distribution smart contract by the specified amount. The credit tokens may remain in the distribution smart contract. Additionally or alternatively, execution of the distribution smart contract may cause other types of tokens to be transferred from wallets associated with borrower computing device 411 to the distribution smart contract.
- an amount of credit tokens e.g., specified in the borrower
- execution of the distribution smart contract may cause network nodes 403 A- 403 N to transmit the digital tokens to the digital token wallet associated with borrower computing device 411 .
- borrower computing device 411 may have a digital token wallet stored in its memory which may be associated with the digital token, and execution of the collection smart contract may cause network nodes 403 A- 403 N to transmit the digital tokens to borrower computing device 411 .
- the amount of the digital tokens to be transmitted to the digital token wallet associated with borrower computing device 411 may be determined based on the other types of tokens received from the borrower computing device 411 .
- the amount of the digital tokens to be transmitted may be determined based on an exchange rate between the digital token and the credit token.
- At least one of network nodes 403 A- 403 N in decentralized P2P network 401 may generate a block corresponding to the blockchain of decentralized P2P network 401 , and may add the block to the blockchain.
- the network node of network nodes 403 A- 403 N that generates the block may broadcast the block to other network nodes of network nodes 403 A- 403 N.
- the other network nodes of network nodes 403 A- 403 N may validate the block, and add the block to their copies of the blockchain.
- the operations of generating and adding the block to the blockchain may be similar to those described above in connection with FIG. 2 .
- the generated block added to the blockchain of decentralized P2P network 401 may include the borrower output request generated by borrower computing device 411 . Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after applying the borrower output request to the distribution smart contract.
- the most recent state of the blockchain of decentralized P2P network 401 e.g., values of wallets, values of data fields in smart contracts, or the like
- borrower computing device 411 may send a borrower input request to network nodes 403 A- 403 N in decentralized P2P network 401 .
- the borrower input request may be a smart contract operation request, and may include the public key corresponding to the distribution smart contract in the blockchain of decentralized P2P network 401 .
- the borrower input request may request to transfer the obtained digital tokens plus an additional amount of the digital tokens representing interest from the digital token wallet associated with borrower computing device 411 to the distribution smart contract.
- the borrower input request may indicate that borrower computing device 411 intends to return the obtained digital tokens.
- the borrower input request may be signed by a private key of the digital token wallet associated with borrower computing device 411 .
- network nodes 403 A- 403 N of decentralized P2P network 401 may receive the borrower input request (e.g., from borrower computing device 411 ), and may execute the distribution smart contract (e.g., by applying the borrower input request to the distribution smart contract).
- the borrower input request e.g., from borrower computing device 411
- the distribution smart contract e.g., by applying the borrower input request to the distribution smart contract.
- each of network nodes 403 A- 403 N may identify, within the blockchain of decentralized P2P network 401 , the block comprising the distribution smart contract based on the public key corresponding to the distribution smart contract. After verifying that the digital signature associated with the borrower input request is valid, each of network nodes 403 A- 403 N may transfer the specified amount of the digital tokens from the digital token wallet associated with borrower computing device 411 to the distribution smart contract. For example, each of network nodes 403 A- 403 N may decrease the value of the digital token wallet associated with borrower computing device 411 by the specified amount, and may increase the value of the digital token quantity data field in the distribution smart contract by the specified amount.
- execution of the collection smart contract may cause network nodes 403 A- 403 N to transmit the tokens representing collateral (e.g., the credit tokens) to the wallets associated with borrower computing device 411 .
- the tokens representing collateral e.g., the credit tokens
- borrower computing device 411 may have wallets stored in its memory which may be associated with the collateral token, and execution of the collection smart contract may cause network nodes 403 A- 403 N to transmit the collateral tokens to borrower computing device 411 .
- Network nodes 403 A- 403 N may return the collateral tokens previously received from the wallets associated with borrower computing device 411 . Additionally or alternatively, responsive to determining that borrower computing device 411 has returned the borrowed digital tokens within a particular time threshold, network nodes 403 A- 403 N may transmit an additional amount of credit tokens to wallets associated with borrower computing device 411 as a reward. This additional amount of credit tokens can be used to implement a reputation based lending system.
- At least one of network nodes 403 A- 403 N in decentralized P2P network 401 may generate a block corresponding to the blockchain of decentralized P2P network 401 , and may add the block to the blockchain.
- the network node of network nodes 403 A- 403 N that generates the block may broadcast the block to other network nodes of network nodes 403 A- 403 N.
- the other network nodes of network nodes 403 A- 403 N may validate the block, and add the block to their copies of the blockchain.
- the operations of generating and adding the block to the blockchain may be similar to those described above in connection with FIG. 2 .
- the generated block added to the blockchain of decentralized P2P network 401 may include the borrower input request generated by borrower computing device 411 . Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after applying the borrower input request to the distribution smart contract.
- the most recent state of the blockchain of decentralized P2P network 401 e.g., values of wallets, values of data fields in smart contracts, or the like
- network nodes 403 A- 403 N may determine that borrower computing device 411 fails to properly return its obtained digital tokens with an additional amount of the digital tokens representing interest on time.
- Network nodes 403 A- 403 N may record the time when borrower computing device 411 obtained the digital tokens (e.g., in step 527 ), and may set a time threshold within which borrower computing device 411 is to return the obtained digital tokens together with an additional amount of the digital tokens representing interest.
- the additional amount of the digital tokens may be determined based on the value of the interest rate data field in the distribution smart contract and the set time threshold.
- Execution of the distribution smart contract may cause network nodes 403 A- 403 N to determine whether the correct amount of the digital tokens are returned by borrower computing device 411 . If the answer to this question is no, network nodes 403 A- 403 N may proceed to step 536 .
- network nodes 403 A- 403 N may periodically determine whether the time threshold has been reached since borrower computing device 411 obtained the digital tokens. If network nodes 403 A- 403 N determines that the time threshold has been reached and borrower computing device 411 has not returned the digital tokens, network nodes 403 A- 403 N may proceed to step 536 .
- execution of the distribution smart contract may cause network nodes 403 A- 403 N to transmit the credit tokens (that may have been received from borrower computing device 411 ) to a credit token wallet associated with service provider computing device 407 .
- service provider computing device 407 may have a credit token wallet stored in its memory which may be associated with the credit token, and execution of the distribution smart contract may cause network nodes 403 A- 403 N to transmit the credit tokens to service provider computing device 407 .
- execution of the distribution smart contract may cause network nodes 403 A- 403 N to forfeit or destroy all or a portion of the credit tokens.
- the other types of tokens that were received as collateral from borrower computing device 411 in step 527 may be similarly transmitted to service provider computing device 407 .
- At least one of network nodes 403 A- 403 N in decentralized P2P network 401 may generate a block corresponding to the blockchain of decentralized P2P network 401 , and may add the block to the blockchain.
- the network node of network nodes 403 A- 403 N that generates the block may broadcast the block to other network nodes of network nodes 403 A- 403 N.
- the other network nodes of network nodes 403 A- 403 N may validate the block, and add the block to their copies of the blockchain.
- the operations of generating and adding the block to the blockchain may be similar to those described above in connection with FIG. 2 .
- the generated block added to the blockchain of decentralized P2P network 401 may include the determination that borrower computing device 411 failed to properly return its obtained digital tokens on time. Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after transmitting the collateral tokens to service provider computing device 407 .
- the most recent state of the blockchain of decentralized P2P network 401 e.g., values of wallets, values of data fields in smart contracts, or the like
- FIG. 6 depicts an illustrative method for digital token utilization in accordance with one or more example embodiments described herein.
- a computing platform configured to operate in a decentralized P2P network and including one or more processors and memory storing at least a portion of a blockchain of the decentralized P2P network may register, to the blockchain of the decentralized P2P network, a collection smart contract configured to facilitate collecting and returning of digital tokens of a particular type.
- the computing platform may send the digital tokens from a digital token wallet associated with a second computing device to the collection smart contract.
- the computing platform may send the digital tokens with an amount of appreciation value from the collection smart contract to the digital token wallet associated with the second computing device.
- the computing platform may register, to the blockchain of the decentralized P2P network, a distribution smart contract configured to facilitate distributing and recollecting the digital tokens.
- the computing platform may send other types of tokens from wallets associated with a third computing device to the distribution smart contract, and may send a corresponding amount of the digital tokens from the distribution smart contract to a digital token wallet associated with the third computing device.
- the computing platform may determine whether the third computing device has returned the digital tokens with an additional amount of the digital tokens representing interest within a time threshold.
- the computing platform may in step 615 return the other types of tokens from the distribution smart contract to the wallets associated with the third computing device. If the computing platform determines that the third computing device has not returned the digital tokens with the additional amount of the digital tokens representing the interest within the time threshold, then the computing platform may in step 613 forfeit the other types of tokens in the distribution smart contract.
- the example embodiments discussed herein may be used for depositing and lending of digital tokens. Lenders may deposit their digital tokens to the example systems discussed herein, and borrowers may borrow the digital tokens. Service provider tokens may be used to facilitate the depositing of the digital tokens, and the credit tokens may be used to facilitate the lending of the digital tokens. Using the service provider tokens and the credit tokens, the depositing and lending processes may be simplified. Additionally, the example systems discussed herein may provide a secure environment for depositing and lending tokens. As centralized computing systems may create a single point of failure, the decentralized P2P network may facilitate depositing and lending tokens with enhanced security.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
- Aspects described herein generally relate to decentralized peer-to-peer (P2P) computer systems specialized for the purpose of managing a blockchain. In particular, one or more aspects of the disclosure relate to utilizing digital tokens on or using a blockchain.
- Centralized computing systems may be used to manage information related to digital tokens. Centralized computing systems may receive digital tokens from a plurality of entities, and may control the distribution of the digital tokens to users of the centralized system in return for interest provided by the users. But centralized computing systems may constitute a single point of failure, which may be undesirable from a reliability standpoint and from a security standpoint.
- The following presents a simplified summary of various aspects described herein. This summary is not an extensive overview, and is not intended to identify required or critical elements or to delineate the scope of the claims. The following summary merely presents some concepts in a simplified form as an introductory prelude to the more detailed description provided below.
- To overcome limitations in the prior art described above, and to overcome other limitations that will be apparent upon reading and understanding the present specification, aspects described herein are directed towards utilizing digital tokens on a blockchain.
- In accordance with one or more embodiments, a computing platform configured to operate in a decentralized peer-to-peer (P2P) network and including one or more processors and memory storing at least a portion of a blockchain of the decentralized P2P network may receive, from a first user computing device, a first registration request for registering a collection smart contract. The computing platform may register the collection smart contract by adding a first new block to the blockchain. The first new block may comprise the collection smart contract. The computing platform may receive, from the first user computing device, a first event message indicating a first amount of service provider tokens, an identifier of the collection smart contract, and a digital signature associated with the first user computing device. The computing platform may verify an authenticity of the first event message based on the digital signature associated with the first user computing device. The computing platform may, in response to receiving the first event message, execute the collection smart contract, which may cause the computing platform to transfer, from a service provider token holder associated with the first user computing device and to the collection smart contract, the first amount of the service provider tokens. The computing platform may receive, from a second user computing device, a second event message indicating a first amount of digital tokens, an identifier of the collection smart contract, and a digital signature associated with the second user computing device. The computing platform may verify an authenticity of the second event message based on the digital signature associated with the second user computing device. The computing platform may, in response to receiving the second event message, execute the collection smart contract, which may cause the computing platform to transfer, from a digital token holder associated with the second user computing device and to the collection smart contract, the first amount of the digital tokens. Execution of the collection smart contract may cause the computing platform to determine, based on the first amount of the digital tokens and an exchange rate between the digital tokens and the service provider tokens, a second amount of the service provider tokens. Execution of the collection smart contract may cause the computing platform to transfer, from the collection smart contract and to a service provider token holder associated with the second user computing device, the second amount of the service provider tokens.
- In some embodiments, the computing platform may receive, from the second user computing device, a third event message indicating a third amount of the service provider tokens and an identifier of the collection smart contract. The computing platform may, in response to receiving the third event message, execute the collection smart contract, which may cause the computing platform to transfer, from the service provider token holder associated with the second user computing device and to the collection smart contract, the third amount of the service provider tokens. Execution of the collection smart contract may cause the computing platform to determine, based on an appreciation rate associated with the digital tokens and a time period between receiving the second event message and receiving the third event message, an updated exchange rate between the digital tokens and the service provider tokens. Execution of the collection smart contract may cause the computing platform to determine, based on the third amount of the service provider tokens and the updated exchange rate between the digital tokens and the service provider tokens, a second amount of the digital tokens. Execution of the collection smart contract may cause the computing platform to transfer, from the collection smart contract and to the digital token holder associated with the second user computing device, the second amount of the digital tokens.
- In some embodiments, the computing platform may receive, from the first user computing device, a second registration request for registering a distribution smart contract. The computing platform may register the distribution smart contract by adding a second new block to the blockchain. The second new block may comprise the distribution smart contract. The computing platform may receive, from the first user computing device, a fourth event message indicating a third amount of the digital tokens and an identifier of the distribution smart contract. The computing platform may, in response to receiving the fourth event message, execute the distribution smart contract, which may cause the computing platform to transfer, from a digital token holder associated with the first user computing device and to the distribution smart contract, the third amount of the digital tokens. The computing platform may receive, from a third user computing device, a fifth event message indicating a first amount of credit tokens and an identifier of the distribution smart contract. The computing platform may, in response to receiving the fifth event message, execute the distribution smart contract, which may cause the computing platform to transfer, from a credit token holder associated with the third user computing device and to the distribution smart contract, the first amount of the credit tokens. Execution of the distribution smart contract may cause the computing platform to determine, based on the first amount of the credit tokens and an exchange rate between the digital tokens and the credit tokens, a fourth amount of the digital tokens. Execution of the distribution smart contract may cause the computing platform to transfer, from the distribution smart contract and to a digital token holder associated with the third user computing device, the fourth amount of the digital tokens.
- In some embodiments, the computing platform may receive, from the third user computing device, a sixth event message indicating a fifth amount of the digital tokens and an identifier of the distribution smart contract. The computing platform may, in response to receiving the sixth event message, execute the distribution smart contract, which may cause the computing platform to determine, based on the fourth amount of the digital tokens, a time period between receiving the fifth event message and receiving the sixth event message, and an interest rate associated with the digital tokens, an expected amount of the digital tokens. Execution of the distribution smart contract may cause the computing platform to, in response to determining that the fifth amount of the digital tokens corresponds to the expected amount of the digital tokens, transfer, from the distribution smart contract and to the credit token holder associated with the third user computing device, the first amount of the credit tokens and an additional amount of the credit tokens. Execution of the distribution smart contract may cause the computing platform to transfer, from the digital token holder associated with the third user computing device and to the distribution smart contract, the fifth amount of the digital tokens.
- In some embodiments, the computing platform may, in response to determining that the fifth amount of the digital tokens does not correspond to the expected amount of the digital tokens, transfer, from the distribution smart contract and to a credit token holder associated with the first user computing device, the first amount of the credit tokens. In some embodiments, the computing platform may, in response to receiving the second event message, transfer, from the collection smart contract and to the distribution smart contract, a portion of the first amount of the digital tokens. In some embodiments, the computing platform may determine, based on a credit score associated with the third user computing device, a second amount of the credit tokens. The computing platform may assign the second amount of the credit tokens to the credit token holder associated with the third user computing device.
- These and additional aspects will be appreciated with the benefit of the disclosures discussed in further detail below.
- A more complete understanding of aspects described herein and the advantages thereof may be acquired by referring to the following description in consideration of the accompanying drawings, in which like reference numbers indicate like features, and wherein:
-
FIG. 1 depicts an illustrative example of centralized computer system in accordance with one or more illustrative aspects described herein. -
FIG. 2 depicts an illustrative example of decentralized P2P computer system that may be used in accordance with one or more illustrative aspects described herein. -
FIG. 3A depicts an illustrative example of a full node computing device that may be used in accordance with one or more illustrative aspects described herein. -
FIG. 3B depicts an illustrative example of a lightweight node computing device that may be used in accordance with one or more illustrative aspects described herein. -
FIG. 4 depicts an illustrative digital token utilization system that may be used in accordance with one or more example embodiments described herein. -
FIGS. 5A-5H depict an illustrative event sequence for digital token utilization in accordance with one or more example embodiments described herein. -
FIG. 6 depicts an illustrative method for digital token utilization in accordance with one or more example embodiments described herein. - In the following description of the various embodiments, reference is made to the accompanying drawings identified above and which form a part hereof, and in which is shown by way of illustration various embodiments in which aspects described herein may be practiced. It is to be understood that other embodiments may be utilized and structural and functional modifications may be made without departing from the scope described herein. Various aspects are capable of other embodiments and of being practiced or being carried out in various different ways.
- As a general introduction to the subject matter described in more detail below, aspects described herein are directed towards methods, systems, and apparatuses for blockchain-based digital token utilization. Data corresponding to digital tokens may be stored on a blockchain associated with a decentralized peer-to-peer (P2P) network. Smart contracts for collecting digital tokens in exchange for service provider tokens may be deployed to the blockchain. Smart contracts for distributing digital tokens based on credit tokens may be deployed to the blockchain. Through execution of the smart contracts, digital tokens may be utilized by users in various ways.
- It is to be understood that the phraseology and terminology used herein are for the purpose of description and should not be regarded as limiting. Rather, the phrases and terms used herein are to be given their broadest interpretation and meaning. The use of “including” and “comprising” and variations thereof is meant to encompass the items listed thereafter and equivalents thereof as well as additional items and equivalents thereof. The use of the terms “mounted,” “connected,” “coupled,” “positioned,” “engaged” and similar terms, is meant to include both direct and indirect mounting, connecting, coupling, positioning and engaging.
- The disclosure provided herein is described, at least in part, in relation to a decentralized peer-to-peer (e.g., P2P) system specialized for the purpose of managing a blockchain. The decentralized P2P system may be comprised of computing devices that are distributed in multiple locations across a geographical area as opposed to a single location. The computing devices forming the decentralized P2P system may operate with each other to manage a blockchain, which may be a data structure used to store information related to the decentralized P2P system. More specifically, the blockchain may be a chronological linkage of data elements (e.g., blocks) which store data records relating to the decentralized computing system.
- A user may access the decentralized P2P system through a specialized “wallet” that serves to uniquely identify the user and enable the user to perform functions related to the decentralized P2P network. Through the wallet, the user may be able to hold tokens, funds, and/or any other asset associated with the decentralized P2P system. Furthermore, the user may be able to use the wallet to request performance of network-specific functions related to the decentralized P2P system such as fund, token, and/or asset transfers. The various computing devices forming the decentralized P2P computing system may operate as a team to perform network-specific functions requested by the user. In performing the network-specific functions, the various computing devices may produce blocks that store the data generated during the performance of the network-specific functions and may add the blocks to the blockchain. After the block has been added to the blockchain, the wallet associated with the user may indicate that the requested network-specific function has been performed.
- For example, a user may have a wallet which reflects that the user has five tokens associated with the decentralized P2P system. The user may provide a request to the decentralized P2P system to transfer the five tokens to a friend who also has a wallet. The various computing devices forming the decentralized P2P computing system may perform the request and transfer the five tokens from the wallet of the user to the wallet of the friend. In doing so, a block may be created by the various computing devices of the decentralized P2P computing system. The block may store data indicating that the five tokens were transferred from the wallet of the user to the wallet of the friend. The various computing devices may add the block to the blockchain. At such a point, the wallet of the user may reflect the transfer of the five tokens to the wallet of the friend, and may indicate a balance of zero. The wallet of the friend, however, may also reflect the transfer of the five tokens and may have a balance of five tokens.
- In more detail, the decentralized P2P system may be specialized for the purpose of managing a distributed ledger, such as a private blockchain or a public blockchain, through the implementation of digital cryptographic hash functions, consensus algorithms, digital signature information, and network-specific protocols and commands. The decentralized P2P system (e.g., decentralized system) may be comprised of decentralized system infrastructure consisting of a plurality computing devices, either of a heterogeneous or homogenous type, which serve as network nodes (e.g., full nodes and/or lightweight nodes) to create and sustain a decentralized P2P network (e.g., decentralized network). Each of the full network nodes may have a complete replica or copy of a blockchain stored in memory and may operate in concert, based on the digital cryptographic hash functions, consensus algorithms, digital signature information, and network-specific protocols, to execute network functions and/or maintain inter-nodal agreement as to the state of the blockchain. Each of the lightweight network nodes may have at least a partial replica or copy of the blockchain stored in memory and may request performance of network functions through the usage of digital signature information, hash functions, and network commands. In executing network functions of the decentralized network, such as balance sheet transactions and smart contract operations, at least a portion of the full nodes forming the decentralized network may execute the one or more cryptographic hash functions, consensus algorithms, and network-specific protocols to register a requested network function on the blockchain. In some instances, a plurality of network function requests may be broadcasted across at least a portion of the full nodes of the decentralized network and aggregated through execution of the one or more digital cryptographic hash functions and by performance of the one or more consensus algorithms to generate a single work unit (e.g., block), which may be added in a time-based, chronological manner to the blockchain through performance of network-specific protocols.
- While in practice the term “blockchain” may hold a variety of contextually derived meanings, the term blockchain, as used herein, refers to a concatenation of sequentially dependent data elements (e.g., blocks) acting as a data ledger that stores records relating to a decentralized computing system. Such data records may be related to those used by a particular entity or enterprise, such as a financial institution, and/or may be associated with a particular application and/or use case including, but not limited to, cryptocurrency, digital content storage and delivery, entity authentication and authorization, digital identity, marketplace creation and operation, internet of things (e.g., IoT), prediction platforms, election voting, medical records, currency exchange and remittance, P2P transfers, ride sharing, gaming, trading platforms, and real estate, precious metal, and work of art registration and transference, among others. A “private blockchain” may refer to a blockchain of a decentralized private system in which only authorized computing devices are permitted to act as nodes in a decentralized private network and have access to the private blockchain. In some instances, the private blockchain may be viewable and/or accessible by authorized computing devices which are not participating as nodes within the decentralized private network, but still have proper credentials. A “public blockchain” may refer to a blockchain of a decentralized public system in which any computing devices may be permitted to act as nodes in a decentralized public network and have access to the public blockchain. In some instances, the public blockchain may be viewable and/or accessible by computing devices which are not participating as nodes within the decentralized public network.
- Further, a “full node” or “full node computing device,” as used herein, may describe a computing device in a decentralized system which operates to create and maintain a decentralized network, execute requested network functions, and maintain inter-nodal agreement as to the state of the blockchain. In order to perform such responsibilities, a computing device operating as a full node in the decentralized system may have a complete replica or copy of the blockchain stored in memory, as well as executable instructions for the execution of hash functions, consensus algorithms, digital signature information, network protocols, and network commands. A “lightweight node,” “light node,” “lightweight node computing device,” or “light node computing device” may refer to a computing device in a decentralized system, which operates to request performance of network functions (e.g., balance sheet transactions, smart contract operations, and the like) within a decentralized network but without the capacity to execute requested network functions and maintain inter-nodal agreement as to the state of the blockchain. As such, a computing device operating as a lightweight node in the decentralized system may have a partial replica or copy of the blockchain. In some instances, network functions requested by lightweight nodes to be performed by the decentralized network may also be able to be requested by full nodes in the decentralized system.
- “Network functions” and/or “network-specific functions,” as described herein, may relate to functions which are able to be performed by nodes of a decentralized P2P network. In some arrangements, the data generated in performing network-specific functions may or may not be stored on a blockchain associated with the decentralized P2P network. Examples of network functions may include “smart contract operations” and “balance sheet transaction.” A smart contract operation, as used herein, may describe one or more operations associated with a “smart contract,” which may be one or more algorithms and/or programs stored on a blockchain and identified by one or more wallets and/or public keys within a decentralized P2P network. In performing a smart contract operation, each full node computing device within a decentralized P2P network may identify a block within a blockchain comprising the smart contract and, responsive to identifying the block associated with the smart contract, may execute the one or more algorithms and/or programs of the smart contract. A balance sheet transaction may describe one or more changes to data holdings associated with one or more nodes within a decentralized network.
- In one or more aspects of the disclosure, a “digital cryptographic hash function,” as used herein, may refer to any function which takes an input string of characters (e.g., message), either of a fixed length or non-fixed length, and returns an output string of characters (e.g., hash, hash value, message digest, digital fingerprint, digest, and/or checksum) of a fixed length. Examples of digital cryptographic hash functions may include BLAKE (e.g., BLAKE-256, BLAKE-512, and the like), MD (e.g., MD2, MD4, MD5, and the like), Scrypt, SHA (e.g., SHA-1, SHA-256, SHA-512, and the like), Skein, Spectral Hash, SWIFT, Tiger, and so on. A “consensus algorithm,” as used herein and as described in further detail below, may refer to one or more algorithms for achieving agreement on one or more data values among nodes in a decentralized network. Examples of consensus algorithms may include proof of work (e.g., PoW), proof of stake (e.g., PoS), delegated proof of stake (e.g., DPoS), practical byzantine fault tolerance algorithm (e.g., PBFT), and so on. Furthermore, “digital signature information” may refer to one or more private/public key pairs and digital signature algorithms which are used to digitally sign a message and/or network function request for the purposes of identity and/or authenticity verification. Examples of digital signature algorithms which use private/public key pairs contemplated herein may include public key infrastructure (PKI), Rivest-Shamir-Adleman signature schemes (e.g., RSA), digital signature algorithm (e.g., DSA), Edwards-curve digital signature algorithm, and the like. A “wallet,” as used herein, may refer to one or more data and/or software elements (e.g., digital cryptographic hash functions, digital signature information, and network-specific commands) that allow a node in a decentralized P2P network to interact with the decentralized P2P network. A wallet may be associated with a public key, which may serve to identify the wallet. In requesting performance of network operations, a private key associated with the wallet may be used to digitally sign the network operation requests.
- As will be described in further detail below, a decentralized P2P system implementing a blockchain data structure may provide solutions to technological problems existing in current centralized system constructs with traditional data storage arrangements. For example, conventional data storage arrangements that use a central data authority have a single point of failure (namely, the central storage location) which, if compromised by a malicious attacker, can lead to data tampering, unauthorized data disclosure, and exploitation and/or loss of operative control of the processes performed by the centralized system. The implementation of a blockchain data structure in a decentralized P2P system acts as a safeguard against unreliable and/or malicious nodes acting in the decentralized P2P network to undermine the work efforts of the other nodes, e.g., by providing byzantine fault tolerance within the network.
- Computing Architectures
-
FIG. 1 depicts an illustrative example ofcentralized computer system 100 in accordance with one or more illustrative aspects described herein.Centralized computer system 100 may comprise one or more computing devices including atleast server infrastructure 110 anduser computing devices 120. Each ofuser computing devices 120 may be configured to communicate withserver infrastructure 110 throughnetwork 130. In some arrangements,centralized computer system 100 may include additional computing devices and networks that are not depicted inFIG. 1 , which also may be configured to interact withserver infrastructure 110 and, in some instances,user computing devices 120. -
Server infrastructure 110 may be associated with a distinct entity such as a company, school, government, and the like, and may comprise one or more personal computer(s), server computer(s), hand-held or laptop device(s), multiprocessor system(s), microprocessor-based system(s), set top box(es), programmable consumer electronic device(s), network personal computer(s) (PC), minicomputer(s), mainframe computer(s), distributed computing environment(s), and the like.Server infrastructure 110 may include computing hardware and software that may host various data and applications for performing tasks of the centralized entity and for interacting withuser computing devices 120, as well as other computing devices. For example, each of the computing devices comprisingserver infrastructure 110 may include one or more processors 112 and one ormore databases 114, which may be stored in memory of the one or more computing devices ofserver infrastructure 110. Through execution of computer-readable instructions stored in memory, the computing devices ofserver infrastructure 110 may be configured to perform functions of the centralized entity and store the data generated during the performance of such functions indatabases 114. - In some arrangements,
server infrastructure 110 may include and/or be part of enterprise information technology infrastructure and may host a plurality of enterprise applications, enterprise databases, and/or other enterprise resources. Such applications may be executed on one or more computing devices included inserver infrastructure 110 using distributed computing technology and/or the like. In some instances,server infrastructure 110 may include a relatively large number of servers that may support operations of a particular enterprise or organization, such as a financial institution.Server infrastructure 110, in this embodiment, may generate a single centralized ledger for data received from the varioususer computing devices 120, which may be stored indatabases 114. - Each of the
user computing devices 120 may be configured to interact withserver infrastructure 110 throughnetwork 130. In some instances, one or more of theuser computing devices 120 may be configured to receive and transmit information corresponding to system requests through particular channels and/or representations of webpages and/or applications associated withserver infrastructure 110. The system requests provided byuser computing devices 120 may initiate the performance of particular computational functions such as data and/or file transfers atserver infrastructure 110. In such instances, the one or more of the user computing devices may be internal computing devices associated with the particular entity corresponding toserver infrastructure 110 and/or may be external computing devices which are not associated with the particular entity. - As stated above,
centralized computer system 100 also may include one or more networks, which may interconnect one or more ofserver infrastructure 110 and one or moreuser computing devices 120. For example,centralized computer system 100 may includenetwork 130.Network 130 may include one or more sub-networks (e.g., local area networks (LANs), wide area networks (WANs), or the like). Furthermore,centralized computer system 100 may include a local network configured to interlink each of the computing devices comprisingserver infrastructure 110. - Furthermore, in some embodiments,
centralized computer system 100 may include a plurality of computer systems arranged in an operative networked communication arrangement with one another through a network, which may interface withserver infrastructure 110,user computing devices 120, andnetwork 130. The network may be a system specific distributive network receiving and distributing specific network feeds and identifying specific network associated triggers. The network may also be a global area network (GAN), such as the Internet, a wide area network (WAN), a local area network (LAN), or any other type of network or combination of networks. The network may provide for wireline, wireless, or a combination wireline and wireless communication between devices on the network. - In the
centralized computer system 100 described in regard toFIG. 1 ,server infrastructure 110 may serve as a central authority which manages at least a portion of the computing data and actions performed in relation to the particular entity associated withserver infrastructure 110. As such,server infrastructure 110 ofcentralized computer system 100 provides a single point of failure which, if compromised by a malicious attacker, can lead to data tampering, unauthorized data disclosure, and exploitation and/or loss of operative control of the processes performed by theserver infrastructure 110 in relation to the particular entity associated withserver infrastructure 110. In such a centralized construct in which a single point of failure (e.g., server infrastructure 110) is created, significant technological problems arise regarding maintenance of operation and data control, as well as preservation of data integrity. As will be described in further detail below in regard toFIG. 2 , such technological problems existing in centralized computing arrangements may be solved by a decentralized P2P system implementing a blockchain data structure, even wholly within theserver infrastructure 110. -
FIG. 2 depicts an illustrative example of decentralizedP2P computer system 200 that may be used in accordance with one or more illustrative aspects described herein. DecentralizedP2P computer system 200 may include a plurality of fullnode computing devices node computing devices node computing device 210 described in regard toFIG. 3A and lightweightnode computing device 250 described in regard toFIG. 3B . While a particular number of full node computing devices and lightweight node computing devices are depicted inFIG. 2 , it should be understood that a number of full node computing devices and/or lightweight node computing devices greater or less than that of the depicted full node computing devices and lightweight node computing devices may be included in decentralizedP2P computer system 200. Accordingly, any additional full node computing devices and/or lightweight node computing devices may respectively perform in the manner described below in regard to fullnode computing devices 210A-210F and lightweightnode computing devices P2P computer system 200. - Each of full
node computing devices 210A-210F may operate in concert to create and maintaindecentralized P2P network 270 of decentralizedP2P computer system 200. In creatingdecentralized P2P network 270 of decentralizedP2P computer system 200, processors, ASIC devices, and/or graphics processing units (e.g., GPUs) of each fullnode computing device 210A-210F may execute network protocols which may cause each fullnode computing device 210A-210F to form a communicative arrangement with the other fullnode computing devices 210A-210F in decentralizedP2P computer system 200 and thereby createdecentralized P2P network 270. Furthermore, the execution of network protocols by the processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210F may cause fullnode computing devices 210A-210F to execute network functions related toblockchain 226 and maintaindecentralized P2P network 270. - Lightweight
node computing devices decentralized P2P network 270. In order to request execution of network functions, such as balance sheet transaction and/or smart contract operations, processors of lightweightnode computing devices decentralized P2P network 270 comprising fullnode computing devices 210A-210F. - For example, lightweight
node computing device 250A may request execution of a balance sheet transaction related todecentralized P2P network 270, which may entail a data transfer from a wallet associated with lightweightnode computing device 250A to a wallet associated withlightweight node 250B. In doing so, processors of lightweightnode computing device 250A may execute network commands to broadcast balance sheet transactionnetwork function request 280 todecentralized P2P network 270. Balance sheet transactionnetwork function request 280 may include details about the data transfer such as data type and amount, as well as a data transfer amount to fullnode computing devices 210A-201F ofdecentralized P2P network 270 for executing balance sheet transactionnetwork function request 280. Balance sheet transactionnetwork function request 280 may further include the public key associated with the wallet of lightweightnode computing device 250B. Processors of lightweightnode computing device 250A may execute digital signature algorithms to digitally sign balance sheet transactionnetwork function request 280 with the private key associated with the wallet of lightweightnode computing device 250A. - At
decentralized P2P network 270, balance sheet transactionnetwork function request 280 may be broadcasted to each of fullnode computing devices 210A-210F through execution of network protocols by fullnode computing devices 210A-210F. In order to execute balance sheet transactionnetwork function request 280 and maintain inter-nodal agreement as to the state ofblockchain 226, processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210F may execute network protocols to receive broadcast of the network function throughdecentralized P2P network 270 and from lightweightnode computing device 250A. Processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210F may execute hash functions to generate a digest of balance sheet transactionnetwork function request 280. The resultant digest of balance sheet transactionnetwork function request 280 may, in turn, be hashed with the block hash of the most immediately preceding block ofblockchain 226. Processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210F may execute consensus algorithms to identify a numerical value (e.g., nonce) corresponding to the particular executed consensus algorithm and related to the digest that combines the digest of the balance sheet transactionnetwork function request 280 and the block hash of the most immediately preceding block ofblockchain 226. - For example, in embodiments in which the consensus algorithm is proof of work (e.g., PoW), processors, ASIC devices, and/or GPUs of full
node computing devices 210A-210F may perform a plurality of hashing operations to identify a nonce that, when hashed with the digest that combines the digest of the balance sheet transactionnetwork function request 280 and the block hash of the most immediately preceding block ofblockchain 226, produces a hash of a predetermined alphanumerical format. Such a predetermined alphanumerical format may include a predetermined number of consecutive alphanumerical characters at a predetermined position within the resultant digest that combines the nonce, digest of the balance sheet transactionnetwork function request 280, and block hash of the most immediately preceding block ofblockchain 226. - In embodiments in which the consensus algorithm is proof of stake (e.g., PoS), a private key associated with one of full
node computing devices 210A-210F may be pseudo-randomly selected, based on balance sheet holdings associated with the public keys of fullnode computing devices 210A-210F, to serve as the nonce. For example, through execution of the PoS consensus algorithm, fullnode computing devices 210A-210F are entered into a lottery in which the odds of winning are proportional to a balance sheet amount associated the wallet of each of fullnode computing devices 210A-210F, wherein a larger balance sheet amount corresponds to a higher probability to win the lottery. The PoS consensus algorithm may cause a full node computing device from fullnode computing devices 210A-210F to be selected, and the public key of the wallet of the selected full node computing device to be used as the nonce. - In embodiments in which the consensus algorithm is delegated proof of stake (e.g., DpoS), a group of delegates are chosen from full
node computing devices 210A-210F by each ofcomputing devices 210A-210F, wherein fullnode computing devices 210A-210F are allowed to vote on delegates based on balance sheet holdings associated with the respective wallets. Fullnode computing devices 210A-210F, however, may not vote for themselves to be delegates. Once the group of delegates are chosen, the group of delegates from fullnode computing devices 210A-210F select a public key associated with a wallet of one of fullnode computing devices 210A-210F to serve as the nonce. - In embodiments in which the consensus algorithm is practical byzantine fault tolerance algorithm (e.g., PBFT), each of full
node computing devices 210A-210F are associated with a particular status and/or ongoing specific information associated with the respective public key of the full node computing devices. Each of fullnode computing devices 210A-210F receive a message throughdecentralized P2P network 270 based on network protocols. Based on the received message and particular status and/or ongoing specific information, each of fullnode computing devices 210A-210F perform computational tasks and transmit a response to the tasks to each of the other fullnode computing devices 210A-210F. A public key of a wallet associated with a particular full node computing device from fullnode computing devices 210A-210F is selected by each of fullnode computing devices 210A-210F based on the response of the particular full node computing device best fulfilling criteria determined based on the network protocols. - The identification of the nonce enables processors, ASIC devices, and/or GPUs of the full node computing device from full
node computing devices 210A-210F corresponding to the nonce to create a new block with a block header (e.g., block hash), which is a digest that combines the digest of balance sheet transactionnetwork function request 280, the block hash of the most immediately preceding block, and the identified nonce. Processors, ASIC devices, and/or GPUs of the full node computing device from fullnode computing devices 210A-210F may execute network protocols to add the new block toblockchain 226 and broadcast the new block to the other full node computing devices in thedecentralized P2P network 270. In some arrangements, the new block may also be time-stamped at a time corresponding to the addition toblockchain 226. Furthermore, as a reward for adding the new block toblockchain 226, the full node computing device from fullnode computing devices 210A-210F may be allowed, per the network protocols, to increase balance sheet holdings associated with itself by a predetermined amount. In some arrangements, each of fullnode computing devices 210A-210F may receive an equal portion of the data transfer amount specified by lightweightnode computing device 250A for executing balance sheet transactionnetwork function request 280. After the new block has been added toblockchain 226, balance sheet transactionnetwork function request 280 may be considered to be executed and the data transfer from the wallet associated with lightweightnode computing device 250A to the wallet associated withlightweight node 250B may be registered. - As stated above, in some arrangements, a plurality of network function requests may be broadcasted across decentralized
network P2P network 270. Processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210F may execute network protocols to receive broadcast of each of the network functions, including balance sheet transactionnetwork function request 280, throughdecentralized P2P network 270 and from the requesting entities, including lightweightnode computing device 250A. Processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210F may execute hash functions to generate a hash tree (e.g., Merkle tree) of the requested network functions, which culminates in a single digest (e.g., root digest, root hash, and the like) that comprises the digests of each of the requested network functions, including balance sheet transactionnetwork function request 280. The root digest of the requested network function may, in turn, be hashed with the block hash of the most immediately preceding block ofblockchain 226. Processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210B may execute consensus algorithms in the manner described above to identify a nonce corresponding to the particular executed consensus algorithm and related to the digest that combines the root digest of the requested network functions and the block hash of the most immediately preceding block ofblockchain 226. The identification of the nonce enables processors, ASIC devices, and/or GPUs of the full node computing device from fullnode computing devices 210A-210F to create a new block with a block header (e.g., block hash), which is a digest that combines the root digest of the network function requests, the block hash of the most immediately preceding block, and the identified nonce. Processors, ASIC devices, and/or GPUs of the full node computing device from fullnode computing devices 210A-210F may execute network protocols to add the new block toblockchain 226 and broadcast the new block to the other full node computing devices in thedecentralized P2P network 270. In some arrangements, the new block may also be time-stamped at a time corresponding to the addition toblockchain 226. Furthermore, as a reward for adding the new block toblockchain 226, the full node computing device from fullnode computing devices 210A-210F may be allowed, per the network protocols, to increase a balance sheet holdings amount associated with itself by a predetermined amount. In some arrangements, each of fullnode computing devices 210A-210F may receive an equal portion of the data transfer amount specified by each of the network function requests. After the new block has been added toblockchain 226, each of the network functions requests, including balance sheet transactionnetwork function request 280, may be considered to be executed and the data transfer from the private/public key associated with lightweightnode computing device 250A to the private/public key associated withlightweight node 250B may be registered. - While the description provided above is made in relation to a balance sheet transaction involving lightweight
node computing device 250A and lightweightnode computing device 250B, it is to be understood that balance sheet transactions are not limited to lightweightnode computing device 250A and lightweightnode computing device 250B, but rather may be made across any of the full node computing devices and/or lightweight node computing devices indecentralized P2P system 200. - For another example, lightweight
node computing device 250B may request a smart contract operation related todecentralized P2P network 270, which may facilitate a dual data transfer between a wallet associated with lightweightnode computing device 250B and a wallet associated with another node indecentralized P2P network 270, such as lightweightnode computing device 250A, based on fulfillment of programmatic conditions established by a smart contract. Processors of lightweightnode computing device 250B may execute network commands to broadcast smart contract operationnetwork function request 290 todecentralized P2P network 270. Smart contract operationnetwork function request 290 may include details about the data transfer such as data type and amount, as well as a data transfer amount to fullnode computing devices 210A-210F ofdecentralized P2P network 270 for executing the smart contract corresponding to smart contract operationnetwork function request 290. Smart contract operationnetwork function request 290 may further include the public key associated with the smart contract. Processors of lightweightnode computing device 250B may execute digital signature algorithms to digitally sign smart contract operationnetwork function request 290 with the private key associated with the wallet of lightweightnode computing device 250B. - At
decentralized P2P network 270, smart contract operationnetwork function request 290 may be broadcasted to each of fullnode computing devices 210A-210F through execution of network protocols by fullnode computing devices 210A-210F. In order to execute smart contract operationnetwork function request 290 and maintain inter-nodal agreement as to the state ofblockchain 226, processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210F may execute network protocols to receive broadcast of the network function through adecentralized P2P network 270 and from lightweightnode computing device 250B. Processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210F may execute hash functions to generate a digest of smart contract operationnetwork function request 290. The resultant digest of smart contract operationnetwork function request 290, in turn, may be hashed with the block hash of the most immediately preceding block ofblockchain 226. Processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210F may execute consensus algorithms to identify a nonce corresponding to the particular executed consensus algorithm and related to the digest that combines the digest of smart contract operationnetwork function request 290 and the block hash of the most immediately preceding block ofblockchain 226. - The identification of the nonce enables processors, ASIC devices, and/or GPUs of the full node computing device from full
node computing devices 210A-210F to create a new block with a block header (e.g., block hash), which is a digest that combines smart contract operationnetwork function request 290, the block hash of the most immediately preceding block, and the identified nonce. Processors, ASIC devices, and/or GPUs of the full node computing device from fullnode computing devices 210A-210F may execute network protocols to add the new block toblockchain 226 and broadcast the new block to the other full node computing devices in thedecentralized P2P network 270. In some arrangements, the new block may also be time-stamped at a time corresponding to the addition toblockchain 226. Furthermore, as a reward for adding the new block toblockchain 226, the full node computing device from fullnode computing devices 210A-210F may, per the network protocols, increase a balance sheet holdings amount associated with itself by a predetermined amount. In some arrangements, each of fullnode computing devices 210A-210F may receive an equal portion of the data transfer amount specified by lightweightnode computing device 250B for executing smart contract operationnetwork function request 290. After the new block has been added toblockchain 226, smartcontract operation request 290 may be considered to be executed and the data transfer from the wallet associated with lightweightnode computing device 250B to the public key associated with the smart contract may be registered. - The smart contract may be configured to hold the data transfer from the wallet associated with lightweight
node computing device 250B until fulfillment of certain predetermined criteria hardcoded into the smart contract are achieved. The smart contract may be configured such that it serves as an intermediate arbiter between entities within thedecentralized P2P network 270 and may specify details of a dual data transfer between entities. - For example, the smart contract corresponding to smart
contract operation request 290 may be one or more algorithms and/or programs stored on a block ofblockchain 226. The smart contract may be identified by one or more wallets and/or public keys withindecentralized P2P network 270. Lightweightnode computing device 250B may transmit smart contract operationnetwork function request 290 todecentralized P2P network 270, which may cause execution of the corresponding smart contract that facilitates a dual data transfer between a wallet associated with lightweightnode computing device 250B and a wallet associated with another node indecentralized P2P network 270, such as lightweightnode computing device 250A, based on fulfillment of programmatic conditions established by the smart contract. In the processes of adding the block comprising smartcontract operation request 290 toblockchain 226, each of fullnode computing devices 210A-210F may identify the block withinblockchain 226 comprising the smart contract, associate the data transfer entailed by smartcontract operation request 290 with the smart contract, and execute the one or more algorithms and/or programs of the smart contract. In this instance, given that the smart contract facilitates a dual data transfer and that data transfer has yet to be received from another node (e.g., lightweightnode computing device 250A), each of fullnode computing devices 210A-210F may execute the smart contract without fulfillment of the programmatic conditions established by the smart contract. Accordingly, the funds transferred by lightweightnode computing device 250B may remain in the smart contract until the data transfer from the other node is also associated with the smart contract. - Moving forward, lightweight
node computing device 250A may also request a smart contract operation related todecentralized P2P network 270, which may conclude the dual data transfer between the wallet associated lightweightnode computing device 250A and the wallet associated with lightweightnode computing device 250B. Processors of lightweightnode computing device 250A may execute network commands to broadcast the smart contract operation network function request todecentralized P2P network 270. The smart contract operation network function request may include details about the data transfer such as data type and amount, as well as a data transfer amount to fullnode computing devices 210A-210F ofdecentralized P2P network 270 for executing the smart contract corresponding to the smart contract operation network function request. The smart contract operation network function request may further include the public key associated with the smart contract. Processors of lightweightnode computing device 250A may execute digital signature algorithms to digitally sign the smart contract operation network function request with the private key associated with the wallet of lightweightnode computing device 250A. - At
decentralized P2P network 270, the smart contract operation network function request may be broadcasted to each of fullnode computing devices 210A-210F through execution of network protocols by fullnode computing devices 210A-210F. In order to execute the smart contract operation network function request and maintain inter-nodal agreement as to the state ofblockchain 226, processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210F may execute network protocols to receive broadcast of the network function through adecentralized P2P network 270 and from lightweightnode computing device 250A. Processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210F may execute hash functions to generate a digest of the smart contract operation network function request. The resultant digest of the smart contract operation network function request, in turn, may be hashed with the block hash of the most immediately preceding block ofblockchain 226. Processors, ASIC devices, and/or GPUs of fullnode computing devices 210A-210F may execute consensus algorithms to identify a nonce corresponding to the particular executed consensus algorithm and related to the digest that combines the digest of the smart contract operation network function request and the block hash of the most immediately preceding block ofblockchain 226. - The identification of the nonce enables processors, ASIC devices, and/or GPUs of the full node computing device from full
node computing devices 210A-210F to create a new block with a block header (e.g., block hash), which is a digest that combines the smart contract operation network function request, the block hash of the most immediately preceding block, and the identified nonce. Processors, ASIC devices, and/or GPUs of the full node computing device from fullnode computing devices 210A-210F may execute network protocols to add the new block toblockchain 226 and broadcast the new block to the other full node computing devices in thedecentralized P2P network 270. In some arrangements, the new block may also be time-stamped at a time corresponding to the addition toblockchain 226. Furthermore, as a reward for adding the new block toblockchain 226, the full node computing device from fullnode computing devices 210A-210F may be allowed, per the network protocols, to increase a balance sheet holdings amount associated with itself by a predetermined amount. In some arrangements, each of fullnode computing devices 210A-210F may receive an equal portion of the data transfer amount specified by lightweightnode computing device 250A for executing the smart contract operation network function request. After the new block has been added toblockchain 226, the smart contract operation transactionnetwork function request 290 may be considered to be executed and the data transfer from the wallet associated with lightweightnode computing device 250A to the public key associated with the smart contract may be registered. - When the smart contract receives the data value from each of lightweight
node computing device 250A and lightweightnode computing device 250B, the execution of the smart contract by each of fullnode computing devices 210A-210F may cause transfer of the data value from lightweightnode computing device 250A to lightweightnode computing device 250B and the data value from lightweightnode computing device 250B to lightweightnode computing device 250A. - For example, lightweight
node computing device 250A may transmit the smart contract operation network function request todecentralized P2P network 270, which may cause execution of the corresponding smart contract that facilitates the dual data transfer. In the process of adding the block comprising the smart contract operation request provided by lightweightnode computing device 250A toblockchain 226, each of fullnode computing devices 210A-210F may identify the block withinblockchain 226 comprising the smart contract, associate the data transfer entailed by smart contract operation request of lightweightnode computing device 250A with the smart contract, and execute the one or more algorithms and/or programs of the smart contract. In this instance, given that the smart contract facilitates a dual data transfer and that data transfers have been received from lightweightnode computing device 250A and lightweightnode computing device 250B, each of fullnode computing devices 210A-210F may execute the smart contract as fulfillment of the programmatic conditions established by the smart contract has occurred. Accordingly, the funds allocated to the smart contract by each of lightweightnode computing device 250A and lightweightnode computing device 250B may be respectively distributed to the intended counterparty. - While the description provided above was made in relation to lightweight
node computing device 250A and lightweightnode computing device 250B, it should be understood that any of the full node computing devices and lightweight node computing devices indecentralized system 200 may participate in the smart contract. Furthermore, it should be understood that the smart contract may be able to fulfill dual data transfers in the manner described above across a plurality of entities entering into the smart contract. For example, a first plurality of entities may enter into the smart contract, which may hold the data values for each of the first plurality of entities until a second plurality of entities enter into the smart contract. When each of the first plurality of entities and the second plurality of entities have entered, the smart contract may perform the data transfer. Other smart contracts may be included which include algorithms, programs, and/or computer-executable instructions which cause the performance of one or more functions related to at least cryptocurrency, digital content storage and delivery, entity authentication and authorization, digital identity, marketplace creation and operation, internet of things (e.g., IoT), prediction platforms, election voting, medical records, currency exchange and remittance, P2P transfers, ride sharing, gaming, trading platforms, and real estate, precious metal, and work of art registration and transference. - In comparison to the
centralized computing system 100 described in regard toFIG. 1 , decentralizedP2P computer system 200 may provide technological advantages. For example, by distributing storage ofblockchain 226 across multiple fullnode computing devices 210A-210F, decentralizedP2P computer system 200 may not provide a single point of failure for malicious attack. In the event that any of the fullnode computing devices 210A-210F are compromised by a malicious attacker, decentralizedP2P computer system 200 may continue to operate unabated as data storage ofblockchain 226 and performance of network processes are not controlled by a singular entity such asserver infrastructure 110 ofcentralized computing system 100. - Furthermore, by utilizing
blockchain data structure 226,decentralized P2P system 200 may provide technological improvements to conventional decentralized P2P systems in regard to byzantine fault tolerance stemming from an unreliable and/or malicious full node acting indecentralized P2P network 270 to undermine the work efforts of the other nodes. For example, in coordinating action between fullnode computing devices 210A-210F in relation to a similar computational task (e.g., consensus algorithm), a malicious node would need to have computational power greater than the combined computational power of each of the other full node computing devices indecentralized P2P network 270 to identify the nonce and thereby be able to modifyblockchain 226. As such, the likelihood that a malicious node could subvertdecentralized P2P network 270 and enter falsified data intoblockchain 226 is inversely proportional to the total computational power ofdecentralized P2P system 200. Therefore, the greater the total computational power ofdecentralized P2P system 200, the less likely that a malicious node could subvertdecentralized P2P network 270 and undermineblockchain 226. -
FIG. 3A depicts an illustrative example of a fullnode computing device 210 that may be used in accordance with one or more illustrative aspects described herein. Fullnode computing device 210 may be any of a personal computer, server computer, hand-held or laptop device, multiprocessor system, microprocessor-based system, set top box, programmable consumer electronic device, network personal computer, minicomputer, mainframe computer, distributed computing environment, virtual computing device, and the like and may operate in a decentralized P2P network. In some embodiments, fullnode computing device 210 may be configured to operate in a decentralized P2P network and may request execution of network functions and/or execute requested network functions and maintain inter-nodal agreement as to the state of a blockchain of the decentralized P2P network. - Full
node computing device 210 may include one or more processors 211, which control overall operation, at least in part, of fullnode computing device 210. Fullnode computing device 210 may further include random access memory (RAM) 213, read only memory (ROM) 214,network interface 212, input/output interfaces 215 (e.g., keyboard, mouse, display, printer, or the like), andmemory 220. Input/output (I/O) 215 may include a variety of interface units and drives for reading, writing, displaying, and/or printing data or files. In some arrangements, fullnode computing device 210 may further comprise specialized hardware components such as application-specific integrated circuit (e.g., ASIC)devices 216 and/or graphics processing units (e.g., GPUs) 217. Such specialized hardware components may be used by fullnode computing device 210 in performing one or more of the processes involved in the execution of requested network functions and maintenance of inter-nodal agreement as to the state of a blockchain. Fullnode computing device 210 may further store inmemory 220 operating system software for controlling overall operation of the fullnode computing device 210, control logic for instructing fullnode computing device 210 to perform aspects described herein, and other application software providing secondary, support, and/or other functionality which may or might not be used in conjunction with aspects described herein. -
Memory 220 may also store data and/or computer executable instructions used in performance of one or more aspects described herein. For example,memory 220 may storedigital signature information 221 and one or more hash functions 222,consensus algorithms 223,network protocols 224, and network commands 225. In some arrangements,digital signature information 221, hash functions 222, and/or network commands 225 may comprise a wallet of fullnode computing device 210.Memory 220 may further storeblockchain 226. Each ofdigital signature information 221, hash functions 222,consensus algorithms 223,network protocols 224, and network commands 225 may be used and/or executed by one or more processors 211,ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 to create and maintain a decentralized P2P network, request execution of network functions, and/or execute requested network functions and maintain inter-nodal agreement as to the state ofblockchain 226. - For example, in order to create and maintain a decentralized P2P network, processors 211,
ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 may executenetwork protocols 225. Execution ofnetwork protocols 225 may cause fullnode computing device 210 to form a communicative arrangement with other full node computing devices and thereby create a decentralized P2P network. Furthermore, the execution ofnetwork protocols 225 may cause fullnode computing device 210 to maintain the decentralized P2P network through the performance of computational tasks related to the execution of network requests related to a blockchain such asblockchain 226. As will be described in detail below, the execution of such computational tasks (e.g., hash functions 222,consensus algorithms 223, and the like) may cause fullnode computing device 210 to maintain inter-nodal agreement as to the state of a blockchain with other full node computing devices comprising the decentralized P2P network. - In order to request execution of network functions, such as balance sheet transactions and/or smart contract operations, processors 211,
ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 may execute network commands 225 to broadcast the network function to a decentralized P2P network comprising a plurality of full nodes and/or lightweight nodes. The request may be digitally signed by fullnode computing device 210 with usage of the private/public key information and through execution of the digital signature algorithms ofdigital signature information 221. - In order to execute requested network functions and maintain inter-nodal agreement as to the state of a blockchain, processors 211,
ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 may executenetwork protocols 224 to receive a broadcast of a requested network function through a decentralized P2P network and from a requesting entity such as a full node or lightweight node. Processors 211,ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 may executehash functions 222 to generate a digest of the requested network function. The resultant digest of the requested network function, in turn, may be hashed with the block hash of the most immediately preceding block of the blockchain. As will be described in further detail below, processors 211,ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 may executeconsensus algorithms 223 to identify a numerical value (e.g., nonce) corresponding to the particular executed consensus algorithm and related to the digest that combines the digest of the requested network function and the block hash of the most immediately preceding block of the blockchain. The identification of the numerical value enables processors 211,ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 to create a new block with a block header (e.g., block hash), which is a digest that combines the digest of the requested network function, the block hash of the most immediately preceding block, and the identified nonce. Processors 211,ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 may add the new block to the blockchain based onnetwork protocols 224 and broadcast the new block to the other nodes in the decentralized P2P network. - As stated above, in some arrangements, a plurality of network function requests may be broadcasted across the decentralized network P2P network. Processors 211,
ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 may executenetwork protocols 224 to receive broadcast of each of the network functions through the decentralized P2P network and from the requesting entities. Processors 211,ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 may executehash functions 222 to generate a hash tree (e.g., Merkle tree) of the requested network functions, which culminates in a single digest (e.g., root digest, root hash, and the like) that comprises the digests of each of the requested network functions. The root digest of the requested network function, in turn, may be hashed with the block hash of the most immediately preceding block of the blockchain. Processors 211,ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 may executeconsensus algorithms 223 to identify a numerical value (e.g., nonce) corresponding to the particular executed consensus algorithm and related to the digest that combines the root digest of the requested network functions and the block hash of the most immediately preceding block of the blockchain. The identification of the numerical value enables processors 211,ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 to create a new block with a block header (e.g., block hash), which is a digest that combines the root digest of the requested network functions, the block hash of the most immediately preceding block, and the identified nonce. Processors 211,ASIC devices 216, and/orGPUs 217 of fullnode computing device 210 may add the new block to the blockchain based onnetwork protocols 224 and broadcast the new block to the other nodes in the decentralized P2P network. - Furthermore,
memory 220 of fullnode computing device 210 may storeblockchain 226.Blockchain 226 may include ablocks block 227A represents the first block (e.g., genesis block) ofblockchain 226 and block 227 n represents the most immediate block ofblockchain 226. As such, theblockchain 226, which may be a replica or copy of the blockchain of the decentralized P2P network in which fullnode computing device 210 operates, may be a full or complete copy of the blockchain of the decentralized P2P network. Each of the blocks withinblockchain 226 may include information corresponding to the one or more network functions executed by the decentralized P2P network. As such,blockchain 226 as stored inmemory 220 of fullnode computing device 210 may comprise the totality of network functions executed by the decentralized network. -
FIG. 3B depicts an illustrative example of a lightweightnode computing device 250 that may be used in accordance with one or more illustrative aspects described herein. Lightweightnode computing device 250 may be any of a personal computer, server computer, hand-held or laptop device, multiprocessor system, microprocessor-based system, set top box, programmable consumer electronic device, network personal computer, minicomputer, mainframe computer, distributed computing environment, virtual computing device, and the like and may operate in a decentralized P2P network. In some embodiments, lightweightnode computing device 250 may operate in a decentralized P2P network and may be configured to request execution of network functions through the decentralized P2P network. As such, lightweightnode computing device 250 may be different than fullnode computing device 210 in that it is not configured to execute network functions and/or operate to maintain a blockchain of a decentralized P2P network. In other aspects, lightweightnode computing device 250 may have substantially the same physical configuration as fullnode computing device 210, but may be configured with different programs, software, or the like. - Lightweight
node computing device 250 may include one ormore processors 251, which control overall operation of lightweightnode computing device 250. Lightweightnode computing device 250 may further include random access memory (RAM) 253, read only memory (ROM) 254,network interface 252, input/output interfaces 255 (e.g., keyboard, mouse, display, printer, or the like), andmemory 260. Input/output (I/O) 255 may include a variety of interface units and drives for reading, writing, displaying, and/or printing data or files. Lightweightnode computing device 250 may store inmemory 260 operating system software for controlling overall operation of the lightweightnode computing device 250, control logic for instructing lightweightnode computing device 250 to perform aspects described herein, and other application software providing support and/or other functionality which may or might not be used in conjunction with aspects described herein. - In comparison to full
node computing device 210, lightweightnode computing device 250 might not include, in some instances, specialized hardware such asASIC devices 216 and/orGPUs 217. Such may be the case because lightweightnode computing device 250 might not be configured to execute network functions and/or operate to maintain a blockchain of a decentralized P2P network as is fullnode computing device 210. However, in certain arrangements, lightweightnode computing device 250 may include such specialized hardware. -
Memory 260 of lightweightnode computing device 250 may also store data and/or computer executable instructions used in performance of one or more aspects described herein. For example,memory 260 may storedigital signature information 261 and one or more hash functions 222 and network commands 225. In some arrangements,digital signature information 261, hash functions 222, and/or network commands 225 may comprise a wallet of lightweightnode computing device 250. Each of hash functions 222 and network commands 225 stored inmemory 260 of lightweightnode computing device 250 may be respectively similar and/or identical to hashfunctions 222 network commands 225 stored inmemory 220 of fullnode computing device 210. - In regard to the digital signature information, each of
digital signature information 261 stored inmemory 260 of lightweightnode computing device 250 anddigital signature information 221 stored inmemory 220 of fullnode computing device 210 may comprise similar and/or identical digital signature algorithms. However, the private/public key information ofdigital signature information 261 stored inmemory 260 of lightweightnode computing device 250 may be different than that of the private/public key information ofdigital signature information 221 stored inmemory 220 of fullnode computing device 210. Furthermore, the private/public key information of each node, whether full or lightweight, in a decentralized P2P computing network may be unique to that particular node. For example, a first node in a decentralized P2P computing network may have first private/public key information, a second node may have second private/public key information, a third node may have third private/public key information, and so on, wherein each of the private/public key information is unique to the particular node. As such, the private/public key information may serve as a unique identifier for the nodes in a decentralized P2P computing network. - Each of
digital signature information 261, hash functions 222, and network commands 225 may be used and/or executed by one ormore processors 251 of lightweightnode computing device 250 to request execution of network functions in a decentralized P2P network. For example, in order to request execution of network functions, such as balance sheet transactions and/or smart contract operations,processors 251 of lightweightnode computing device 250 may execute network commands 225 to broadcast the network function to a decentralized P2P network comprising a plurality of full nodes and/or lightweight nodes. The request may be digitally signed by lightweightnode computing device 250 with usage of the private/public key information and through execution of the digital signature algorithms ofdigital signature information 261. - Furthermore,
memory 260 of lightweightnode computing device 250 may storeblockchain 226.Blockchain 226 stored inmemory 260 of lightweightnode computing device 250 may include at least block 227 n, wherein block 227 n represents the most immediate block ofblockchain 226. As such, theblockchain 226, which may be a replica or copy of the blockchain of the decentralized P2P network in which lightweightnode computing device 250 operates, may be a partial or incomplete copy of the blockchain of the decentralized P2P network. In some instances, however, blockchain 226 may include ablocks block 227A represents the first block (e.g., genesis block) ofblockchain 226 and block 227 n represents the most immediate block ofblockchain 226. As such, theblockchain 226 may be a full or complete copy of the blockchain of the decentralized P2P network. Each of the blocks withinblockchain 226 may include information corresponding to the one or more network functions executed by the decentralized P2P network. - Blockchain-Based Digital Token Utilization
-
FIG. 4 depicts an illustrative digital token utilization system that may be used in accordance with one or more example embodiments described herein. Digitaltoken utilization system 400 may include adecentralized P2P network 401,network nodes 403A-403N,networks 405A-405C, a serviceprovider computing device 407, alender computing device 409, and aborrower computing device 411. Serviceprovider computing device 407 may communicate withdecentralized P2P network 401 throughnetwork 405A.Lender computing device 409 may communicate withdecentralized P2P network 401 throughnetwork 405B.Borrower computing device 411 may communicate withdecentralized P2P network 401 throughnetwork 405C. Digitaltoken utilization system 400 may include additional and/or other computing devices and/or networks similar todecentralized P2P network 401,network nodes 403A-403N,networks 405A-405C, serviceprovider computing device 407,lender computing device 409, andborrower computing device 411. -
Decentralized P2P network 401 may be a public or private decentralized network, and may be similar todecentralized P2P network 270 described above in connection withFIG. 2 .Decentralized P2P network 401 may includenetwork nodes 403A-403N. A network node ofnetwork nodes 403A-403N may be any type of computing device or computing platform. A network node ofnetwork nodes 403A-403N may be configured to operate as a full node indecentralized P2P network 401. A network node ofnetwork nodes 403A-403N may be similar to full node computing devices 201A-201F described above in connection withFIG. 2 , or fullnode computing device 210 described above in connection withFIG. 3A . As such, a network node ofnetwork nodes 403A-403N may include (e.g., store in its memory) at least a portion of a blockchain corresponding todecentralized P2P network 401. - The blockchain corresponding to
decentralized P2P network 401 may store information related to network functions (e.g., balance sheet transactions, data storage operations, smart contract operations, or the like) ofdecentralized P2P network 401. Additionally or alternatively, the blockchain ofdecentralized P2P network 401 may store information related to digital tokens, service provider tokens, credit tokens, and/or other types of tokens, as will be described in further detail below. - The digital tokens may include any type of digital token. The digital tokens may be cryptocurrency and/or cryptocurrency digitally backed by fiat currency, gold, or other objects of value. The service provider token may be a type of cryptocurrency and/or cryptocurrency digitally backed by fiat currency, gold, or other objects of value. The service provider token may be issued by service
provider computing device 407 to facilitate depositing and withdrawing of the digital tokens as further discussed below. The credit token may be a type of token that represents its holder's reputation (e.g., the holder's creditworthiness). The credit token may be issued by serviceprovider computing device 407. The credit token may be configured to be freely transferrable or not freely transferrable. The credit token may be used to facilitate lending the digital tokens as further discussed below. - As a full node in
decentralized P2P network 401, a network node ofnetwork nodes 403A-403N may be configured to executed requested network functions, maintain inter-nodal agreement as to the state of the blockchain ofdecentralized P2P network 401, and request execution of network functions. Additionally or alternatively, a network node ofnetwork nodes 403A-403N may be configured to operate as a lightweight node. - Each of service
provider computing device 407,lender computing device 409, and/orborrower computing device 411 may be configured to operate as a lightweight node communicating withdecentralized P2P network 401. Each of serviceprovider computing device 407,lender computing device 409, and/orborrower computing device 411 may be similar to lightweightnode computing devices 250A-250B described above in connection withFIG. 2 , or lightweightnode computing device 250 described above in connection withFIG. 3B . As a lightweight node computing device, serviceprovider computing device 407,lender computing device 409, and/orborrower computing device 411 may each be configured to interface withdecentralized P2P network 401 by requesting execution of network functions related to facilitating the blockchain-based digital token utilization processes described herein. Additionally or alternatively, serviceprovider computing device 407,lender computing device 409, and/orborrower computing device 411 may be configured to operate as a full node. - Each of service
provider computing device 407,lender computing device 409, and/orborrower computing device 411 may be associated with a particular entity, such as a company or an enterprise organization. For example, serviceprovider computing device 407 may be associated with a service provider,lender computing device 409 may be associated with a lender, andborrower computing device 411 may be associated with a borrower. The service provider may accept deposits of the digital tokens from the lender, and provide loans of the digital tokens to the borrower. Serviceprovider computing device 407,lender computing device 409, and/orborrower computing device 411 may each be configured to interface with its associated entity via a user interface, a web interface, a computing device, or the like. - Each of service
provider computing device 407,lender computing device 409, and/orborrower computing device 411 may have a digital token wallet stored in its memory which may be associated with a digital token. The digital token wallet may be associated with a public key, which may serve to identify the digital token wallet. The digital token wallet may be associated with a private key, which may be used to digitally sign requests and/or operations related to the digital token wallet in order to verify the authenticity of the requests and/or operations. - Each of service
provider computing device 407 and/orlender computing device 409 may have a service provider token wallet stored in its memory which may be associated with the service provider token. Similar to the digital token wallets, the service provider token wallets may be associated with public keys and private keys. Each of serviceprovider computing device 407 and/orborrower computing device 411 may have a credit token wallet stored in its memory which may be associated with the credit token. The credit token wallets may be associated with public keys and private keys. Additionally or alternatively, serviceprovider computing device 407,lender computing device 409, and/orborrower computing device 411 may each have any other type of wallet associated with other types of tokens. -
FIGS. 5A-5H depict an illustrative event sequence for digital token utilization in accordance with one or more example embodiments described herein. While the steps of the event sequence are described in a particular order, the steps may be performed in any order without departing from the scope of the disclosure provided herein. Although the event sequence is described as being performed by a particular arrangement of computing systems, devices, and networks (e.g., serviceprovider computing device 407,lender computing device 409,borrower computing device 411, andnetwork nodes 403A-403N in decentralized P2P network 401), the processes may be performed by a greater or smaller number of computing systems, devices, and/or networks, and/or by any type of computing system, device, and/or network. - Referring to
FIG. 5A , instep 501, serviceprovider computing device 407 may receive a digital token collection request. The digital token collection request may be received via an application operating locally on the serviceprovider computing device 407. For example, a service provider associated with serviceprovider computing device 407 may enter, via a user interface of the application, the digital token collection request. Additionally or alternatively, the digital token collection request may be received through a web interface associated with serviceprovider computing device 407. - The digital token collection request may indicate that service
provider computing device 407 intends to accept deposits of digital tokens. The digital token collection request may indicate a type of digital token, an appreciation rate associated with the digital token, an exchange rate between the digital token and the service provider token, and wallet information (e.g., public keys) associated with serviceprovider computing device 407. - In
step 502, serviceprovider computing device 407 may generate a collection smart contract based on the digital token collection request. The collection smart contract may include one or more algorithms and/or computer executable functions that control the collecting and returning of digital tokens (e.g., in exchange of the service provider token). The collection smart contract may be configured to create a number of data fields, which may store values for an amount of digital tokens of a particular type (a digital token quantity data field), an amount of the service provider tokens (a service provider token quantity data field), an exchange rate between the digital token and the service provider token (an exchange rate data field), and/or an appreciation rate associated with the digital token (an appreciation rate data field). - In
step 503, serviceprovider computing device 407 may deploy the collection smart contract to the blockchain ofdecentralized P2P network 401. Serviceprovider computing device 407 may compile the collection smart contract, and send, todecentralized P2P network 401, a network function request including the collection smart contract. The network function request may be broadcasted tonetwork nodes 403A-403N. In some examples, the broadcasting of the network function request may be performed by each of the full node computing devices (e.g.,network nodes 403A-403N) comprisingdecentralized P2P network 401 so that each of the full node computing devices receives the network function request. - In
step 504, at least one ofnetwork nodes 403A-403N indecentralized P2P network 401 may generate a block corresponding to the blockchain ofdecentralized P2P network 401, and may add the block to the blockchain. For example, the network node ofnetwork nodes 403A-403N that generates the block may broadcast the block to other network nodes ofnetwork nodes 403A-403N. The other network nodes ofnetwork nodes 403A-403N may validate the block, and add the block to their copies of the blockchain. - The generated block added to the blockchain of
decentralized P2P network 401 may include the collection smart contract generated by serviceprovider computing device 407. The operations of generating and adding the block to the blockchain may be similar to those described above in connection withFIG. 2 . - In
step 505, a public key corresponding to the collection smart contract stored in the blockchain ofdecentralized P2P network 401 may be returned by one or more ofnetwork nodes 403A-403N to serviceprovider computing device 407. For example, the public key may be returned responsive to storing the collection smart contract on the blockchain ofdecentralized P2P network 401. The public key may uniquely identify the collection smart contract in the blockchain ofdecentralized P2P network 401. - Referring to
FIG. 5B , instep 506, serviceprovider computing device 407 may send a token collection configuration request tonetwork nodes 403A-403N indecentralized P2P network 401. The token collection configuration request may be a smart contract operation request, and may include the public key corresponding to the collection smart contract in the blockchain ofdecentralized P2P network 401. - The token collection configuration request may request to transfer an amount of digital tokens of a particular type from the digital token wallet associated with service
provider computing device 407 to the collection smart contract. The request to transfer the digital token may be digitally signed by the private key of the digital token wallet associated with serviceprovider computing device 407. Additionally or alternatively, the token collection configuration request may request to transfer an amount of the service provider tokens from the service provider token wallet associated with serviceprovider computing device 407 to the collection smart contract. The request to transfer the service provider token may be digitally signed by the private key of the service provider token wallet associated with serviceprovider computing device 407. The token collection configuration request may request to populate the exchange rate data field and/or the appreciation rate data field in the collection smart contract with the corresponding values specified in the digital token collection request. - In
step 507,network nodes 403A-403N ofdecentralized P2P network 401 may receive the token collection configuration request (e.g., from service provider computing device 407), and may execute the collection smart contract (e.g., by applying the token collection configuration request to the collection smart contract). - For example, each of
network nodes 403A-403N may identify, within the blockchain ofdecentralized P2P network 401, the block comprising the collection smart contract based on the public key corresponding to the collection smart contract. After verifying that the digital signatures associated with the token collection configuration request are valid, each ofnetwork nodes 403A-403N may transfer the digital token and/or the service provider token from the wallets associated with serviceprovider computing device 407 to the collection smart contract. For example, each ofnetwork nodes 403A-403N may decrease the value of the digital token wallet associated with serviceprovider computing device 407 by the amount specified in the token collection configuration request, and increase the value of the digital token quantity data field in the collection smart contract by the same amount. The digital tokens and/or service provider tokens may remain in the collection smart contract until further network function requests are received. Additionally or alternatively, based on the token collection configuration request, each ofnetwork nodes 403A-403N may set the values of the exchange rate data field and the appreciation rate data field in the collection smart contract. - In
step 508, at least one ofnetwork nodes 403A-403N indecentralized P2P network 401 may generate a block corresponding to the blockchain ofdecentralized P2P network 401, and may add the block to the blockchain. For example, the network node ofnetwork nodes 403A-403N that generates the block may broadcast the block to other network nodes ofnetwork nodes 403A-403N. The other network nodes ofnetwork nodes 403A-403N may validate the block, and add the block to their copies of the blockchain. The operations of generating and adding the block to the blockchain may be similar to those described above in connection withFIG. 2 . - The generated block added to the blockchain of
decentralized P2P network 401 may include the token collection configuration request generated by serviceprovider computing device 407. Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after applying the token collection configuration request to the collection smart contract. - In
step 509,lender computing device 409 may send a lender input request tonetwork nodes 403A-403N indecentralized P2P network 401. The lender input request may be a smart contract operation request, and may include the public key corresponding to the collection smart contract in the blockchain ofdecentralized P2P network 401. - The lender input request may request to transfer digital tokens of a particular type from the digital token wallet associated with
lender computing device 409 to the collection smart contract. The lender input request may indicate thatlender computing device 409 intends to deposit an amount of the digital tokens for an appreciation rate. The lender input request may specify the quantity of the digital tokens thatlender computing device 409 intends to transfer. The lender input request may be digitally signed by a private key of the digital token wallet associated withlender computing device 409. - In
step 510,network nodes 403A-403N ofdecentralized P2P network 401 may receive the lender input request (e.g., from lender computing device 409), and may execute the collection smart contract (e.g., by applying the lender input request to the collection smart contract). For example, each ofnetwork nodes 403A-403N may identify, within the blockchain ofdecentralized P2P network 401, the block comprising the collection smart contract based on the public key corresponding to the collection smart contract. After verifying that the digital signature associated with the lender input request is valid, each ofnetwork nodes 403A-403N may transfer the specified amount of the digital tokens from the digital token wallet associated withlender computing device 409 to the collection smart contract. For example, each ofnetwork nodes 403A-403N may decrease the value of the digital token wallet associated withlender computing device 409 by the specified amount, and may increase the value of the digital token quantity data field in the collection smart contract by the specified amount. - Referring to
FIG. 5C , instep 511, execution of the collection smart contract may causenetwork nodes 403A-403N to transmit the digital tokens to the digital token wallet associated with serviceprovider computing device 407. For example, serviceprovider computing device 407 may have a digital token wallet stored in its memory which may be associated with the digital token, and execution of the collection smart contract may causenetwork nodes 403A-403N to transmit the digital tokens to serviceprovider computing device 407. - The amount of the digital tokens to be transmitted to the digital token wallet associated with service
provider computing device 407 may be all or a portion of the digital tokens received from the digital token wallet associated withlender computing device 409. For example, a portion of the digital tokens received from the digital token wallet associated withlender computing device 409 may remain in the collection smart contract as anytime available digital tokens forlender computing device 409 to withdraw instep 514. The portion remaining in the collection smart contract may be calculated based on historical withdrawal events. Additionally or alternatively, a portion of the digital tokens received from the digital token wallet associated withlender computing device 409 may be transferred to a distribution smart contract configured to facilitate lending digital tokens toborrower computing device 411 as discussed below. - In
step 512, execution of the collection smart contract may causenetwork nodes 403A-403N to transmit the service provider tokens to the service provider token wallet associated withlender computing device 409. For example,lender computing device 409 may have a service provider token wallet stored in its memory which may be associated with the service provider token, and execution of the collection smart contract may causenetwork nodes 403A-403N to transmit the service provider tokens tolender computing device 409. - The amount of the service provider tokens to be transmitted to the service provider token wallet associated with
lender computing device 409 may be determined based on the amount of the digital tokens received from the digital token wallet associated withlender computing device 409 and the exchange rate between the digital token and the service provider token. For example, if the exchange rate between the digital token and the service provider token is R:1, the amount of the service provider tokens to be transmitted to the service provider token wallet associated withlender computing device 409 may be the amount of the digital tokens received from the digital token wallet associated withlender computing device 409 divided by R. Different types of digital tokens may have same or different exchange rates to the service provider token. - The service provider token may be used to facilitate the deposit and withdrawal of the digital token. The service provider token may be issued by service
provider computing device 407. For example, the service provider token may be issued according to a particular technical standard, such as the ERC20 technical standard. Additionally or alternatively, the service provider token may be backed by physical objects of value, which may be audited by a third party. - In
step 513, at least one ofnetwork nodes 403A-403N indecentralized P2P network 401 may generate a block corresponding to the blockchain ofdecentralized P2P network 401, and may add the block to the blockchain. For example, the network node ofnetwork nodes 403A-403N that generates the block may broadcast the block to other network nodes ofnetwork nodes 403A-403N. The other network nodes ofnetwork nodes 403A-403N may validate the block, and add the block to their copies of the blockchain. The operations of generating and adding the block to the blockchain may be similar to those described above in connection withFIG. 2 . - The generated block added to the blockchain of
decentralized P2P network 401 may include the lender input request generated bylender computing device 409. Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after applying the lender input request to the collection smart contract. - In
step 514,lender computing device 409 may send a lender output request tonetwork nodes 403A-403N indecentralized P2P network 401. The lender output request may be a smart contract operation request, and may include the public key corresponding to the collection smart contract in the blockchain ofdecentralized P2P network 401. - The lender output request may request to transfer an amount of the service provider tokens from the service provider token wallet associated with
lender computing device 409 to the collection smart contract. The lender output request may indicate thatlender computing device 409 intends to withdraw an amount of digital tokens of a particular type based on the returned service provider tokens. The lender output request may specify the amount of the service provider tokens thatlender computing device 409 intends to transfer. The lender output request may be signed by a private key of the service provider token wallet associated withlender computing device 409. - In
step 515,network nodes 403A-403N ofdecentralized P2P network 401 may receive the lender output request (e.g., from lender computing device 409), and may execute the collection smart contract (e.g., by applying the lender output request to the collection smart contract), in a similar manner as instep 510. - For example, each of
network nodes 403A-403N may identify, within the blockchain ofdecentralized P2P network 401, the block comprising the collection smart contract based on the public key corresponding to the collection smart contract. After verifying that the digital signature associated with the lender output request is valid, each ofnetwork nodes 403A-403N may transfer the specified amount of the service provider tokens from the service provider token wallet associated withlender computing device 409 to the collection smart contract. For example, each ofnetwork nodes 403A-403N may decrease the value of the service provider token wallet associated withlender computing device 409 by the amount specified in the lender output request, and may increase the value of the service provider token quantity data field in the collection smart contract by the specified amount. - Referring to
FIG. 5D , instep 516, execution of the collection smart contract may causenetwork nodes 403A-403N to transmit the digital tokens to the digital token wallet associated withlender computing device 409. For example,lender computing device 409 may have a digital token wallet stored in its memory which may be associated with the digital token, and execution of the collection smart contract may causenetwork nodes 403A-403N to transmit the digital tokens tolender computing device 409. - The amount of the digital tokens to be transmitted to the digital token wallet associated with
lender computing device 409 may be determined based on the amount of the service provider tokens received from the service provider token wallet associated withlender computing device 409 and an updated exchange rate between the digital token and the service provider token. - The exchange rate between the digital token and the service provider token may be updated based on the appreciation rate associated with the digital token. The appreciation rate may be a rate per second, a rate per minute, a rate per hour, a rate per day, or the like. Execution of the collection smart contract may cause
network nodes 403A-403N to determine a time period between receiving the lender input request and receiving the lender output request (e.g., based on timestamps recorded at the time of receiving the requests). Thenetwork nodes 403A-403N may calculate an overall appreciation rate for the determined time period based on the appreciation rate and the time period (e.g., through the simple interest calculation method, the compound interest calculation method, or the like). The updated exchange rate may be equal to the previous exchange rate multiplied by the overall appreciation rate for the determined time period. - Additionally or alternatively, the
network nodes 403A-403N may periodically update the exchange rate (e.g., every hour, every day, or the like). Additionally or alternatively, thenetwork nodes 403A-403N may update the exchange rate every time the collection smart contract is executed. In such arrangements, the exchange rate between the digital token and the service provider token may be constantly increasing, representing the appreciation value of the deposited digital tokens. For example, whenlender computing device 409 deposits the digital tokens to the collection smart contract, the exchange rate between the digital token and the service provider token may be 101:100. Whenlender computing device 409 withdraws the digital tokens from the collection smart contract, the exchange rate between the digital token and the service provider token may be 101.05:100 (increased based on the appreciation rate associated with the digital token).Lender computing device 409 may withdraw its deposited digital tokens together with interest based on simply transmitting the service provider tokens to the collection smart contract. - In
step 517, execution of the collection smart contract may causenetwork nodes 403A-403N to transmit the service provider tokens to the service provider token wallet associated with serviceprovider computing device 407. For example, serviceprovider computing device 407 may have a service provider token wallet stored in its memory which may be associated with the service provider token, and execution of the collection smart contract may causenetwork nodes 403A-403N to transmit the service provider tokens to serviceprovider computing device 407. - The amount of the service provider tokens to be transmitted to the service provider token wallet associated with service
provider computing device 407 may be all or a portion of the service provider tokens received from the service provider token wallet associated withlender computing device 409. For example, a portion of the service provider tokens received from the service provider token wallet associated withlender computing device 409 may remain in the collection smart contract for future use. The portion remaining in the collection smart contract may be determined based on historical deposit events. - In
step 518, at least one ofnetwork nodes 403A-403N indecentralized P2P network 401 may generate a block corresponding to the blockchain ofdecentralized P2P network 401, and may add the block to the blockchain. For example, the network node ofnetwork nodes 403A-403N that generates the block may broadcast the block to other network nodes ofnetwork nodes 403A-403N. The other network nodes ofnetwork nodes 403A-403N may validate the block, and add the block to their copies of the blockchain. The operations of generating and adding the block to the blockchain may be similar to those described above in connection withFIG. 2 . - The generated block added to the blockchain of
decentralized P2P network 401 may include the lender output request generated bylender computing device 409. Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after applying the lender output request to the collection smart contract. - In
step 519, serviceprovider computing device 407 may receive a digital token distribution request. The digital token distribution request may be received via an application operating locally on the serviceprovider computing device 407. For example, a service provider associated with serviceprovider computing device 407 may enter, via a user interface of the application, the digital token distribution request. Additionally or alternatively, the digital token distribution request may be received through a web interface associated with serviceprovider computing device 407. - The digital token distribution request may indicate that service
provider computing device 407 intends to provide loans of digital tokens of a particular type. The digital token distribution request may indicate a type of digital token, an interest rate associated with the digital token, conditions for allocating an amount of the digital tokens to borrower computing device 411 (e.g., an exchange rate between the digital token and a credit token), and wallet information (e.g., public keys) associated with serviceprovider computing device 407. - For different types of digital tokens, same or different interest rates may be used. The interest rates associated with the different types of digital tokens may be determined based on the risk levels associated with the different digital tokens, the market values of the different digital tokens, or the like. Additionally or alternatively, the interest rate associated with a type of digital token may be determined based on the appreciation rate, associated with the digital token, which is used in the collection smart contract. For example, the interest rate associated with the digital token may be set to be higher than the appreciation rate associated with the digital token.
- In
step 520, serviceprovider computing device 407 may generate a distribution smart contract based on the digital token distribution request. The distribution smart contract may include one or more algorithms and/or computer executable functions that control the distributing and recollecting of the digital tokens. - The distribution smart contract may be configured to create a number of data fields, which may store values for an amount of digital tokens of a particular type (a digital token quantity data field), quantities of other types of tokens (token quantity data fields), exchange rates between the digital token and the other types of tokens (exchange rate data fields), and/or an interest rate associated with the digital token (interest rate data field).
- The distribution smart contract may include programmatic conditions for allocating the digital tokens to
borrower computing device 411. For example,borrower computing device 411 may transmit another type of token (e.g., the credit token) to the distribution smart contract as collateral, and the distribution smart contract may use an exchange rate between the digital token and the other type of token to calculate whether and/or how much digital tokens may be distributed toborrower computing device 411. Additionally or alternatively, the distribution smart contract may allowborrower computing device 411 to get an amount of the digital tokens even if the distribution smart contract does not receive any tokens as collateral. After receiving, fromborrower computing device 411, a request to obtain an amount of the digital tokens, the distribution smart contract may request authorization from serviceprovider computing device 407 before sending the requested digital tokens toborrower computing device 411. Serviceprovider computing device 407 may assess whether to authorize sending the digital tokens toborrower computing device 411 based on various factors, such as a credit score associated withborrower computing device 411. - Referring to
FIG. 5E , instep 521, serviceprovider computing device 407 may deploy the distribution smart contract to the blockchain ofdecentralized P2P network 401. Serviceprovider computing device 407 may compile the distribution smart contract, and send, todecentralized P2P network 401, a network function request including the distribution smart contract. The network function request may be broadcasted tonetwork nodes 403A-403N. In some examples, the broadcasting of the network function request may be performed by each of the full node computing devices (e.g.,network nodes 403A-403N) comprisingdecentralized P2P network 401 so that each of the full node computing devices receives the network function request. - In
step 522, at least one ofnetwork nodes 403A-403N indecentralized P2P network 401 may generate a block corresponding to the blockchain ofdecentralized P2P network 401, and may add the block to the blockchain. For example, the network node ofnetwork nodes 403A-403N that generates the block may broadcast the block to other network nodes ofnetwork nodes 403A-403N. The other network nodes ofnetwork nodes 403A-403N may validate the block, and add the block to their copies of the blockchain. The operations of generating and adding the block to the blockchain may be similar to those described above in connection withFIG. 2 . The generated block added to the blockchain ofdecentralized P2P network 401 may include the distribution smart contract generated by serviceprovider computing device 407. - In
step 523, a public key corresponding to the distribution smart contract in the blockchain ofdecentralized P2P network 401 may be returned by one or more ofnetwork nodes 403A-403N to serviceprovider computing device 407. For example, the public key may be returned responsive to storing the distribution smart contract on the blockchain ofdecentralized P2P network 401. The public key may uniquely identify the distribution smart contract in the blockchain ofdecentralized P2P network 401. - In
step 524, serviceprovider computing device 407 may send a token distribution configuration request tonetwork nodes 403A-403N indecentralized P2P network 401. The token distribution configuration request may be a smart contract operation request, and may include the public key corresponding to the distribution smart contract in the blockchain ofdecentralized P2P network 401. - The token distribution configuration request may request to transfer an amount of the digital tokens from the digital token wallet associated with service
provider computing device 407 to the distribution smart contract. The transfer request may be signed by a private key of the digital token wallet associated with serviceprovider computing device 407. The token distribution configuration request may request to populate the exchange rate data fields and/or the interest rate data field in the distribution smart contract with values specified in the digital token distribution request. - In
step 525, thenetwork nodes 403A-403N ofdecentralized P2P network 401 may receive the token distribution configuration request (e.g., from service provider computing device 407), and may executed the distribution smart contract (e.g., by applying the token distribution configuration request to the distribution smart contract). - For example, each of
network nodes 403A-403N may identify, within the blockchain ofdecentralized P2P network 401, the block comprising the distribution smart contract based on the public key corresponding to the distribution smart contract. After verifying that the digital signature associated with the token distribution configuration request is valid, each ofnetwork nodes 403A-403N may transfer the digital tokens from the digital token wallet associated with serviceprovider computing device 407 to the distribution smart contract. For example, each of thenetwork nodes 403A-403N may decrease the value of the digital token wallet associated with serviceprovider computing device 407 by an amount (e.g., specified in the token distribution configuration request), and increase the value of the digital token quantity data field in the distribution smart contract by the same amount. The digital tokens may remain in the distribution smart contract until further network function requests are received. Additionally or alternatively, based on the token distribution configuration request, each ofnetwork nodes 403A-403N may set the values of the exchange rate data fields and/or the interest rate data field in the distribution smart contract. - Referring to
FIG. 5F , instep 526, at least one ofnetwork nodes 403A-403N indecentralized P2P network 401 may generate a block corresponding to the blockchain ofdecentralized P2P network 401, and may add the block to the blockchain. For example, the network node ofnetwork nodes 403A-403N that generates the block may broadcast the block to other network nodes ofnetwork nodes 403A-403N. The other network nodes ofnetwork nodes 403A-403N may validate the block, and add the block to their copies of the blockchain. The operations of generating and adding the block to the blockchain may be similar to those described above in connection withFIG. 2 . - The generated block added to the blockchain of
decentralized P2P network 401 may include the token distribution configuration request generated by serviceprovider computing device 407. Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after applying the token distribution configuration request to the distribution smart contract. - In
step 527,borrower computing device 411 may send a borrower output request tonetwork nodes 403A-403N indecentralized P2P network 401. The borrower output request may be a smart contract operation request, and may include the public key corresponding to the distribution smart contract in the blockchain ofdecentralized P2P network 401. - The borrower output request may request to transfer an amount of the digital tokens from the distribution smart contract to the digital token wallet associated with
borrower computing device 411. The borrower output request may indicate thatborrower computing device 411 intends to obtain an amount of the digital tokens at an interest rate. - Additionally or alternatively, the borrower output request may request to transfer other types of tokens as collateral from wallets associated with
borrower computing device 411 to the distribution smart contract. The other types of tokens may include, for example, a credit token or digital tokens of types other than the type thatborrower computing device 411 intends to obtain. The other types of tokens may be backed by gold, real property, personal property, intellectual property, or the like, which may be audited by a third party. - The credit token may be issued by service
provider computing device 407. The credit token may be configured to be freely transferrable or not freely transferrable. Whenborrower computing device 411 begins to participate indecentralized P2P network 401, serviceprovider computing device 407 may issue an initial amount of the credit tokens toborrower computing device 411. The initial amount of the credit tokens may be determined based on a credit score associated withborrower computing device 411. The credit score may be determined based on, for example, data obtained from government agencies, insurance companies, telecommunication providers, utility providers, or the like. - Additionally or alternatively, the credit token may be issued to
borrower computing device 411 based on historical event data associated withborrower computing device 411. As discussed in more details below, ifborrower computing device 411 returns its obtained digital tokens with additional digital tokens as interest and within a threshold period, an amount of the credit tokens may be issued toborrower computing device 411 as a reward and as an indication of the increasing creditworthiness ofborrower computing device 411. - In
step 528,network nodes 403A-403N ofdecentralized P2P network 401 may receive the borrower output request (e.g., from borrower computing device 411), and may execute the distribution smart contract (e.g., by applying the borrower output request to the distribution smart contract). - For example, each of
network nodes 403A-403N may identify, within the blockchain ofdecentralized P2P network 401, the block comprising the distribution smart contract based on the public key corresponding to the distribution smart contract. After verifying that the digital signature(s) associated with the borrower output request is valid, each ofnetwork nodes 403A-403N may transfer, from the credit token wallet associated withborrower computing device 411 to the distribution smart contract, an amount of credit tokens (e.g., specified in the borrower output request). For example, each ofnetwork nodes 403A-403N may decrease the value of the credit token wallet associated withborrower computing device 411 by the specified amount, and may increase the value of a credit token quantity data field in the distribution smart contract by the specified amount. The credit tokens may remain in the distribution smart contract. Additionally or alternatively, execution of the distribution smart contract may cause other types of tokens to be transferred from wallets associated withborrower computing device 411 to the distribution smart contract. - In
step 529, execution of the distribution smart contract may causenetwork nodes 403A-403N to transmit the digital tokens to the digital token wallet associated withborrower computing device 411. For example,borrower computing device 411 may have a digital token wallet stored in its memory which may be associated with the digital token, and execution of the collection smart contract may causenetwork nodes 403A-403N to transmit the digital tokens toborrower computing device 411. - The amount of the digital tokens to be transmitted to the digital token wallet associated with
borrower computing device 411 may be determined based on the other types of tokens received from theborrower computing device 411. For example, the amount of the digital tokens to be transmitted may be determined based on an exchange rate between the digital token and the credit token. - In
step 530, at least one ofnetwork nodes 403A-403N indecentralized P2P network 401 may generate a block corresponding to the blockchain ofdecentralized P2P network 401, and may add the block to the blockchain. For example, the network node ofnetwork nodes 403A-403N that generates the block may broadcast the block to other network nodes ofnetwork nodes 403A-403N. The other network nodes ofnetwork nodes 403A-403N may validate the block, and add the block to their copies of the blockchain. The operations of generating and adding the block to the blockchain may be similar to those described above in connection withFIG. 2 . - The generated block added to the blockchain of
decentralized P2P network 401 may include the borrower output request generated byborrower computing device 411. Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after applying the borrower output request to the distribution smart contract. - Referring to
FIG. 5G , instep 531,borrower computing device 411 may send a borrower input request tonetwork nodes 403A-403N indecentralized P2P network 401. The borrower input request may be a smart contract operation request, and may include the public key corresponding to the distribution smart contract in the blockchain ofdecentralized P2P network 401. - The borrower input request may request to transfer the obtained digital tokens plus an additional amount of the digital tokens representing interest from the digital token wallet associated with
borrower computing device 411 to the distribution smart contract. The borrower input request may indicate thatborrower computing device 411 intends to return the obtained digital tokens. The borrower input request may be signed by a private key of the digital token wallet associated withborrower computing device 411. - In
step 532,network nodes 403A-403N ofdecentralized P2P network 401 may receive the borrower input request (e.g., from borrower computing device 411), and may execute the distribution smart contract (e.g., by applying the borrower input request to the distribution smart contract). - For example, each of
network nodes 403A-403N may identify, within the blockchain ofdecentralized P2P network 401, the block comprising the distribution smart contract based on the public key corresponding to the distribution smart contract. After verifying that the digital signature associated with the borrower input request is valid, each ofnetwork nodes 403A-403N may transfer the specified amount of the digital tokens from the digital token wallet associated withborrower computing device 411 to the distribution smart contract. For example, each ofnetwork nodes 403A-403N may decrease the value of the digital token wallet associated withborrower computing device 411 by the specified amount, and may increase the value of the digital token quantity data field in the distribution smart contract by the specified amount. - In
step 533, execution of the collection smart contract may causenetwork nodes 403A-403N to transmit the tokens representing collateral (e.g., the credit tokens) to the wallets associated withborrower computing device 411. For example,borrower computing device 411 may have wallets stored in its memory which may be associated with the collateral token, and execution of the collection smart contract may causenetwork nodes 403A-403N to transmit the collateral tokens toborrower computing device 411. -
Network nodes 403A-403N may return the collateral tokens previously received from the wallets associated withborrower computing device 411. Additionally or alternatively, responsive to determining thatborrower computing device 411 has returned the borrowed digital tokens within a particular time threshold,network nodes 403A-403N may transmit an additional amount of credit tokens to wallets associated withborrower computing device 411 as a reward. This additional amount of credit tokens can be used to implement a reputation based lending system. - In
step 534, at least one ofnetwork nodes 403A-403N indecentralized P2P network 401 may generate a block corresponding to the blockchain ofdecentralized P2P network 401, and may add the block to the blockchain. For example, the network node ofnetwork nodes 403A-403N that generates the block may broadcast the block to other network nodes ofnetwork nodes 403A-403N. The other network nodes ofnetwork nodes 403A-403N may validate the block, and add the block to their copies of the blockchain. The operations of generating and adding the block to the blockchain may be similar to those described above in connection withFIG. 2 . - The generated block added to the blockchain of
decentralized P2P network 401 may include the borrower input request generated byborrower computing device 411. Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after applying the borrower input request to the distribution smart contract. - In
step 535, as an additional or alternative step to step 533,network nodes 403A-403N may determine thatborrower computing device 411 fails to properly return its obtained digital tokens with an additional amount of the digital tokens representing interest on time.Network nodes 403A-403N may record the time whenborrower computing device 411 obtained the digital tokens (e.g., in step 527), and may set a time threshold within whichborrower computing device 411 is to return the obtained digital tokens together with an additional amount of the digital tokens representing interest. The additional amount of the digital tokens may be determined based on the value of the interest rate data field in the distribution smart contract and the set time threshold. Execution of the distribution smart contract may causenetwork nodes 403A-403N to determine whether the correct amount of the digital tokens are returned byborrower computing device 411. If the answer to this question is no,network nodes 403A-403N may proceed to step 536. - Additionally or alternatively,
network nodes 403A-403N may periodically determine whether the time threshold has been reached sinceborrower computing device 411 obtained the digital tokens. Ifnetwork nodes 403A-403N determines that the time threshold has been reached andborrower computing device 411 has not returned the digital tokens,network nodes 403A-403N may proceed to step 536. - In
step 536, execution of the distribution smart contract may causenetwork nodes 403A-403N to transmit the credit tokens (that may have been received from borrower computing device 411) to a credit token wallet associated with serviceprovider computing device 407. For example, serviceprovider computing device 407 may have a credit token wallet stored in its memory which may be associated with the credit token, and execution of the distribution smart contract may causenetwork nodes 403A-403N to transmit the credit tokens to serviceprovider computing device 407. Additionally or alternatively, execution of the distribution smart contract may causenetwork nodes 403A-403N to forfeit or destroy all or a portion of the credit tokens. Additionally or alternatively, the other types of tokens that were received as collateral fromborrower computing device 411 instep 527 may be similarly transmitted to serviceprovider computing device 407. - In
step 537, at least one ofnetwork nodes 403A-403N indecentralized P2P network 401 may generate a block corresponding to the blockchain ofdecentralized P2P network 401, and may add the block to the blockchain. For example, the network node ofnetwork nodes 403A-403N that generates the block may broadcast the block to other network nodes ofnetwork nodes 403A-403N. The other network nodes ofnetwork nodes 403A-403N may validate the block, and add the block to their copies of the blockchain. The operations of generating and adding the block to the blockchain may be similar to those described above in connection withFIG. 2 . - The generated block added to the blockchain of
decentralized P2P network 401 may include the determination thatborrower computing device 411 failed to properly return its obtained digital tokens on time. Additionally or alternatively, the generated block may include the most recent state of the blockchain of decentralized P2P network 401 (e.g., values of wallets, values of data fields in smart contracts, or the like) after transmitting the collateral tokens to serviceprovider computing device 407. -
FIG. 6 depicts an illustrative method for digital token utilization in accordance with one or more example embodiments described herein. Instep 601, a computing platform configured to operate in a decentralized P2P network and including one or more processors and memory storing at least a portion of a blockchain of the decentralized P2P network may register, to the blockchain of the decentralized P2P network, a collection smart contract configured to facilitate collecting and returning of digital tokens of a particular type. Instep 603, the computing platform may send the digital tokens from a digital token wallet associated with a second computing device to the collection smart contract. Instep 603, the computing platform may send the digital tokens with an amount of appreciation value from the collection smart contract to the digital token wallet associated with the second computing device. Instep 607, the computing platform may register, to the blockchain of the decentralized P2P network, a distribution smart contract configured to facilitate distributing and recollecting the digital tokens. Instep 609, the computing platform may send other types of tokens from wallets associated with a third computing device to the distribution smart contract, and may send a corresponding amount of the digital tokens from the distribution smart contract to a digital token wallet associated with the third computing device. Instep 611, the computing platform may determine whether the third computing device has returned the digital tokens with an additional amount of the digital tokens representing interest within a time threshold. If the computing platform determines that the third computing device has returned the digital tokens with the additional amount of the digital tokens representing the interest within the time threshold, then the computing platform may instep 615 return the other types of tokens from the distribution smart contract to the wallets associated with the third computing device. If the computing platform determines that the third computing device has not returned the digital tokens with the additional amount of the digital tokens representing the interest within the time threshold, then the computing platform may instep 613 forfeit the other types of tokens in the distribution smart contract. - The example embodiments discussed herein may be used for depositing and lending of digital tokens. Lenders may deposit their digital tokens to the example systems discussed herein, and borrowers may borrow the digital tokens. Service provider tokens may be used to facilitate the depositing of the digital tokens, and the credit tokens may be used to facilitate the lending of the digital tokens. Using the service provider tokens and the credit tokens, the depositing and lending processes may be simplified. Additionally, the example systems discussed herein may provide a secure environment for depositing and lending tokens. As centralized computing systems may create a single point of failure, the decentralized P2P network may facilitate depositing and lending tokens with enhanced security.
- Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are described as example implementations of the following claims.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/967,064 US20190333030A1 (en) | 2018-04-30 | 2018-04-30 | Blockchain-based digital token utilization |
US16/584,442 US11669811B2 (en) | 2018-04-30 | 2019-09-26 | Blockchain-based digital token utilization |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/967,064 US20190333030A1 (en) | 2018-04-30 | 2018-04-30 | Blockchain-based digital token utilization |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/584,442 Continuation US11669811B2 (en) | 2018-04-30 | 2019-09-26 | Blockchain-based digital token utilization |
Publications (1)
Publication Number | Publication Date |
---|---|
US20190333030A1 true US20190333030A1 (en) | 2019-10-31 |
Family
ID=68292631
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/967,064 Abandoned US20190333030A1 (en) | 2018-04-30 | 2018-04-30 | Blockchain-based digital token utilization |
US16/584,442 Active 2039-09-22 US11669811B2 (en) | 2018-04-30 | 2019-09-26 | Blockchain-based digital token utilization |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/584,442 Active 2039-09-22 US11669811B2 (en) | 2018-04-30 | 2019-09-26 | Blockchain-based digital token utilization |
Country Status (1)
Country | Link |
---|---|
US (2) | US20190333030A1 (en) |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190340685A1 (en) * | 2018-05-03 | 2019-11-07 | Alpha Ledger Technologies, Inc. | Blockchain-based asset and immutable real-time intelligent securities platform |
CN110609867A (en) * | 2019-08-29 | 2019-12-24 | 北京初块信息科技有限公司 | Block chain system construction method based on capacity certification |
US20200027066A1 (en) * | 2018-04-30 | 2020-01-23 | Bank Of America Corporation | Blockchain-Based Digital Token Utilization |
US20200038761A1 (en) * | 2018-07-31 | 2020-02-06 | Assaf Packin | Market-based gaming platform |
US20200120039A1 (en) * | 2018-10-11 | 2020-04-16 | Citrix Systems, Inc. | Systems and methods for controlling access to broker resources |
CN111064749A (en) * | 2019-12-30 | 2020-04-24 | 中国联合网络通信集团有限公司 | Network connection method, device and storage medium |
CN111181946A (en) * | 2019-12-24 | 2020-05-19 | 浙江大学 | Credible traceability system and method based on block chain and Internet of things |
CN111343208A (en) * | 2020-05-21 | 2020-06-26 | 腾讯科技(深圳)有限公司 | Block chain-based data detection method and device and computer-readable storage medium |
CN111373402A (en) * | 2019-11-08 | 2020-07-03 | 支付宝(杭州)信息技术有限公司 | Lightweight decentralized application platform |
CN111885128A (en) * | 2020-07-08 | 2020-11-03 | 佛山市海协科技有限公司 | Identity management method based on block chain |
US20210065300A1 (en) * | 2019-08-26 | 2021-03-04 | Compound Labs, Inc. | Systems and methods for managing a money market of digital assets |
US11038958B2 (en) * | 2018-06-05 | 2021-06-15 | Network Defines Inc. | Method and apparatus for proving data delivery in untrusted network |
US11256581B2 (en) * | 2017-04-21 | 2022-02-22 | Vmware, Inc. | Byzantine agreement using communications having linear complexity |
US11263604B2 (en) * | 2020-06-22 | 2022-03-01 | TraDove, Inc. | Systems and methods for streamlining credit and/or debit card transactions utilizing blockchain supported credit tokens and/or debit tokens |
US20220123924A1 (en) * | 2020-10-15 | 2022-04-21 | Robert Bosch Gmbh | Method for providing a state channel |
US11394550B2 (en) * | 2020-07-30 | 2022-07-19 | Dapper Labs Inc. | Systems and methods providing specialized proof of confidential knowledge |
US20220230506A1 (en) * | 2008-06-20 | 2022-07-21 | Ag 18, Llc | Play-To-Earn Electronic Gaming Systems And Methods |
US20220230240A1 (en) * | 2019-09-26 | 2022-07-21 | Verona Holdings Sezc | Smart contract-managed decentralized lending processes using collateral tokens |
US20220294650A1 (en) * | 2019-08-09 | 2022-09-15 | Hiroshi Tanimoto | Program, challenge assistance system, challenge assistance method, and terminal |
US20220391360A1 (en) * | 2019-03-13 | 2022-12-08 | Visa International Service Association | Image blockchain system and method |
US20220417030A1 (en) * | 2021-06-26 | 2022-12-29 | Redpine Signals, Inc. | Device Authentication using Blockchain |
US20230120897A1 (en) * | 2021-10-18 | 2023-04-20 | Glimpse Enterprises Incorporated | Apparatus for cryptographic resource transfer based on quantitative assessment regarding non-fungible tokens |
US20230379179A1 (en) * | 2022-05-19 | 2023-11-23 | Cboe Exchange, Inc. | Blockchain-based systems and method for providing secure digital identities and affiliations for users via digital tokens |
US11829996B1 (en) * | 2019-04-25 | 2023-11-28 | Phunware, Inc. | Hybrid organizational system for data management and tracking |
US20230412402A1 (en) * | 2022-06-15 | 2023-12-21 | International Business Machines Corporation | Endorsement policy consolidation in blockchain networks |
US11961142B2 (en) | 2019-08-26 | 2024-04-16 | Compound Labs, Inc. | Systems and methods for pooling and transferring digital assets |
WO2024102396A1 (en) * | 2022-11-09 | 2024-05-16 | Quarter, Inc. | Methods and systems for transmitting information |
US12002024B2 (en) | 2018-11-02 | 2024-06-04 | Verona Holdings Sezc | Tokenization platform |
US12056764B1 (en) * | 2019-12-20 | 2024-08-06 | Wells Fargo Bank, N.A. | Device-to-device microlending within a distributed system |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
US12147956B2 (en) | 2021-11-10 | 2024-11-19 | Verona Holdings Sezc | Tokenization platform |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11687929B2 (en) * | 2018-03-23 | 2023-06-27 | American Express Travel Related Services Co., Inc. | Authenticated secure online and offline transactions |
US11245576B2 (en) * | 2018-09-07 | 2022-02-08 | Dell Products L.P. | Blockchain-based configuration profile provisioning system |
CN112235429B (en) * | 2020-12-17 | 2021-03-30 | 暗链科技(深圳)有限公司 | Central accounting type decentralized distributed data processing method and system |
US12086792B2 (en) * | 2022-01-20 | 2024-09-10 | VocaLink Limited | Tokenized control of personal data |
US12045879B2 (en) | 2022-06-28 | 2024-07-23 | Capital One Services, Llc | Systems and methods for securing risk in blockchain networks |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130191278A1 (en) | 1999-05-03 | 2013-07-25 | Jpmorgan Chase Bank, N.A. | Method and System for Processing Internet Payments Using the Electronic Funds Transfer Network |
US8224723B2 (en) * | 2002-05-31 | 2012-07-17 | Jpmorgan Chase Bank, N.A. | Account opening system, method and computer program product |
US7720757B2 (en) * | 2003-11-12 | 2010-05-18 | Compucredit Intellectual Property Holdings Corp. Ii | System and method for providing a credit account for debt recovery |
US7314166B2 (en) * | 2004-06-16 | 2008-01-01 | American Express Travel Related Services Company, Inc. | System and method for calculating recommended charge limits |
US20080091589A1 (en) * | 2006-10-17 | 2008-04-17 | Gary Kremen | Method for underwriting the financing of solar consumer premises equipment |
US20080091580A1 (en) * | 2006-10-17 | 2008-04-17 | Gary Kremen | Methods for cost reduction and underwriting considerations for financing renewable energy consumer premises equipment (CPE) |
US20080243569A1 (en) * | 2007-04-02 | 2008-10-02 | Michael Shane Hadden | Automated loan system and method |
US20130227653A1 (en) | 2008-11-29 | 2013-08-29 | Yu Yung Choi | System and method for streamlined registration of products over a communication network and for verification and management of information related thereto |
US20090248574A1 (en) * | 2008-03-28 | 2009-10-01 | Leung Florence F L | Peer-to-peer currency exchange and associated systems and methods |
US8880425B2 (en) * | 2010-04-07 | 2014-11-04 | The Western Union Company | Mobile agent point-of-sale (POS) |
US20110282780A1 (en) * | 2010-04-19 | 2011-11-17 | Susan French | Method and system for determining fees and foreign exchange rates for a value transfer transaction |
US8447667B1 (en) * | 2011-07-27 | 2013-05-21 | Intuit Inc. | Methods, systems and articles for facilitating loans using income tax refunds |
US10108521B2 (en) * | 2012-11-16 | 2018-10-23 | Ab Initio Technology Llc | Dynamic component performance monitoring |
US20150011265A1 (en) * | 2013-07-05 | 2015-01-08 | James A. Walsh, JR. | Support Apparatus for Mobile Device |
US11270263B2 (en) | 2013-09-12 | 2022-03-08 | Netspective Communications Llc | Blockchain-based crowdsourced initiatives tracking system |
US20160335628A1 (en) | 2014-05-15 | 2016-11-17 | Adam Mark Weigold | System and method for digital currency storage, payment and credit |
US9704143B2 (en) | 2014-05-16 | 2017-07-11 | Goldman Sachs & Co. LLC | Cryptographic currency for securities settlement |
US9818092B2 (en) | 2014-06-04 | 2017-11-14 | Antti Pennanen | System and method for executing financial transactions |
US10592985B2 (en) | 2015-03-02 | 2020-03-17 | Dell Products L.P. | Systems and methods for a commodity contracts market using a secure distributed transaction ledger |
US9397985B1 (en) | 2015-04-14 | 2016-07-19 | Manifold Technology, Inc. | System and method for providing a cryptographic platform for exchanging information |
US20170024813A1 (en) | 2015-07-22 | 2017-01-26 | MB Technology Partners Ltd. | System and Method for Provisioning Financial Transaction Between a Lender and a Borrower |
US20170140408A1 (en) | 2015-11-16 | 2017-05-18 | Bank Of America Corporation | Transparent self-managing rewards program using blockchain and smart contracts |
US9849364B2 (en) | 2016-02-02 | 2017-12-26 | Bao Tran | Smart device |
EP3411824B1 (en) | 2016-02-04 | 2019-10-30 | Nasdaq Technology AB | Systems and methods for storing and sharing transactional data using distributed computer systems |
US10715531B2 (en) * | 2016-02-12 | 2020-07-14 | Visa International Service Association | Network topology |
CA3014398A1 (en) * | 2016-02-18 | 2017-08-24 | 10353744 Canada Ltd. | Information processing device, information processing method, and computer program |
US10346406B2 (en) | 2016-03-28 | 2019-07-09 | International Business Machines Corporation | Decentralized autonomous edge compute coordinated by smart contract on a blockchain |
US9635000B1 (en) | 2016-05-25 | 2017-04-25 | Sead Muftic | Blockchain identity management system based on public identities ledger |
US10447478B2 (en) * | 2016-06-06 | 2019-10-15 | Microsoft Technology Licensing, Llc | Cryptographic applications for a blockchain system |
WO2018058108A1 (en) * | 2016-09-26 | 2018-03-29 | Shapeshift Ag | System and method of providing a multi-asset rebalancing mechanism |
US20180150910A1 (en) * | 2016-11-30 | 2018-05-31 | Paypal, Inc. | Systems and methods for processing business data |
KR102471948B1 (en) * | 2017-01-08 | 2022-11-29 | 비프로토콜 파운데이션 | How to exchange and evaluate virtual currency |
SG10202107575VA (en) * | 2017-01-13 | 2021-08-30 | Jpmorgan Chase Bank Na | Systems and methods for management of asset or obligation-backed virtual receipts on a distributed system |
WO2018140913A1 (en) * | 2017-01-30 | 2018-08-02 | SALT Lending Holdings, Inc. | System and method of creating an asset based automated secure agreement |
US20180240191A1 (en) * | 2017-02-03 | 2018-08-23 | Terry Aronson | System and Method for asset backed crypto-currency |
US10521604B2 (en) * | 2017-03-17 | 2019-12-31 | Labyrinth Research Llc | Unified control of privacy-impacting devices |
US11816642B2 (en) * | 2017-03-20 | 2023-11-14 | Steven Victor Wasserman | Blockchain digital currency: systems and methods for use in enterprise blockchain banking |
CA3000340A1 (en) * | 2017-04-06 | 2018-10-06 | Stronghold Labs, Llc | Account platform for a distributed network of nodes |
US11488121B2 (en) * | 2017-05-11 | 2022-11-01 | Microsoft Technology Licensing, Llc | Cryptlet smart contract |
WO2018232036A1 (en) * | 2017-06-14 | 2018-12-20 | Visa International Service Association | Systems and methods for creating multiple records based on an ordered smart contract |
US10944546B2 (en) * | 2017-07-07 | 2021-03-09 | Microsoft Technology Licensing, Llc | Blockchain object interface |
US11449887B2 (en) * | 2017-10-09 | 2022-09-20 | American Express Travel Related Services Company, Inc. | Systems and methods for loyalty point distribution |
US20190303939A1 (en) * | 2018-03-27 | 2019-10-03 | Bank Of America Corporation | Cryptocurrency Storage Distribution |
US20190333030A1 (en) * | 2018-04-30 | 2019-10-31 | Bank Of America Corporation | Blockchain-based digital token utilization |
CN109087190A (en) * | 2018-06-08 | 2018-12-25 | 阿里巴巴集团控股有限公司 | A kind of financing loan method and apparatus |
US10250395B1 (en) * | 2018-08-29 | 2019-04-02 | Accenture Global Solutions Limited | Cryptologic blockchain interoperation |
US11410168B2 (en) * | 2019-04-03 | 2022-08-09 | Acronis International Gmbh | Method for user management for blockchain-based operations |
CN113781043A (en) * | 2020-06-09 | 2021-12-10 | 富泰华工业(深圳)有限公司 | Block chain-based currency transaction method and device and electronic equipment |
-
2018
- 2018-04-30 US US15/967,064 patent/US20190333030A1/en not_active Abandoned
-
2019
- 2019-09-26 US US16/584,442 patent/US11669811B2/en active Active
Cited By (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220230506A1 (en) * | 2008-06-20 | 2022-07-21 | Ag 18, Llc | Play-To-Earn Electronic Gaming Systems And Methods |
US11256581B2 (en) * | 2017-04-21 | 2022-02-22 | Vmware, Inc. | Byzantine agreement using communications having linear complexity |
US11675677B2 (en) | 2017-04-21 | 2023-06-13 | Vmware, Inc. | Byzantine agreement using communications having linear complexity |
US20200027066A1 (en) * | 2018-04-30 | 2020-01-23 | Bank Of America Corporation | Blockchain-Based Digital Token Utilization |
US11669811B2 (en) * | 2018-04-30 | 2023-06-06 | Bank Of America Corporation | Blockchain-based digital token utilization |
US20190340685A1 (en) * | 2018-05-03 | 2019-11-07 | Alpha Ledger Technologies, Inc. | Blockchain-based asset and immutable real-time intelligent securities platform |
US11038958B2 (en) * | 2018-06-05 | 2021-06-15 | Network Defines Inc. | Method and apparatus for proving data delivery in untrusted network |
US20200038761A1 (en) * | 2018-07-31 | 2020-02-06 | Assaf Packin | Market-based gaming platform |
US11724200B2 (en) * | 2018-07-31 | 2023-08-15 | Assaf Packin | Market-based gaming platform |
US10751628B2 (en) * | 2018-07-31 | 2020-08-25 | Assaf Packin | Market-based gaming platform |
US20200376387A1 (en) * | 2018-07-31 | 2020-12-03 | Assaf Packin | Market-based gaming platform |
US10778603B2 (en) * | 2018-10-11 | 2020-09-15 | Citrix Systems, Inc. | Systems and methods for controlling access to broker resources |
US20200120039A1 (en) * | 2018-10-11 | 2020-04-16 | Citrix Systems, Inc. | Systems and methods for controlling access to broker resources |
US12086794B2 (en) | 2018-11-02 | 2024-09-10 | Verona Holdings Sezc | Tokenization platform |
US12002024B2 (en) | 2018-11-02 | 2024-06-04 | Verona Holdings Sezc | Tokenization platform |
US12045789B2 (en) | 2018-11-02 | 2024-07-23 | Verona Holdings Sezc | Techniques for locking and unlocking tokenized tokens |
US12056676B2 (en) | 2018-11-02 | 2024-08-06 | Verona Holdings Sezc | Techniques for facilitating transactions for real world items using digital tokens |
US12118527B2 (en) | 2018-11-02 | 2024-10-15 | Verona Holdings Sezc | Methods and systems for awarding non-fungible tokens to users using smart contracts |
US12045206B2 (en) * | 2019-03-13 | 2024-07-23 | Visa International Service Association | Image blockchain system and method |
US20220391360A1 (en) * | 2019-03-13 | 2022-12-08 | Visa International Service Association | Image blockchain system and method |
US11829996B1 (en) * | 2019-04-25 | 2023-11-28 | Phunware, Inc. | Hybrid organizational system for data management and tracking |
US20220294650A1 (en) * | 2019-08-09 | 2022-09-15 | Hiroshi Tanimoto | Program, challenge assistance system, challenge assistance method, and terminal |
US20210065300A1 (en) * | 2019-08-26 | 2021-03-04 | Compound Labs, Inc. | Systems and methods for managing a money market of digital assets |
US11961142B2 (en) | 2019-08-26 | 2024-04-16 | Compound Labs, Inc. | Systems and methods for pooling and transferring digital assets |
CN110609867A (en) * | 2019-08-29 | 2019-12-24 | 北京初块信息科技有限公司 | Block chain system construction method based on capacity certification |
US20220230240A1 (en) * | 2019-09-26 | 2022-07-21 | Verona Holdings Sezc | Smart contract-managed decentralized lending processes using collateral tokens |
US11429617B2 (en) | 2019-11-08 | 2022-08-30 | Alipay (Hangzhou) Information Technology Co., Ltd. | System and method for blockchain-based data synchronization |
CN111373402A (en) * | 2019-11-08 | 2020-07-03 | 支付宝(杭州)信息技术有限公司 | Lightweight decentralized application platform |
US12056764B1 (en) * | 2019-12-20 | 2024-08-06 | Wells Fargo Bank, N.A. | Device-to-device microlending within a distributed system |
CN111181946A (en) * | 2019-12-24 | 2020-05-19 | 浙江大学 | Credible traceability system and method based on block chain and Internet of things |
CN111064749A (en) * | 2019-12-30 | 2020-04-24 | 中国联合网络通信集团有限公司 | Network connection method, device and storage medium |
US12099997B1 (en) | 2020-01-31 | 2024-09-24 | Steven Mark Hoffberg | Tokenized fungible liabilities |
WO2021233048A1 (en) * | 2020-05-21 | 2021-11-25 | 腾讯科技(深圳)有限公司 | Blockchain-based data detection method and device, and computer-readable storage medium |
CN111343208A (en) * | 2020-05-21 | 2020-06-26 | 腾讯科技(深圳)有限公司 | Block chain-based data detection method and device and computer-readable storage medium |
US11741441B2 (en) | 2020-06-22 | 2023-08-29 | TraDove, Inc. | Systems and methods for streamlining credit and/or debit card transactions utilizing blockchain supported credit tokens and/or debit tokens |
US11263604B2 (en) * | 2020-06-22 | 2022-03-01 | TraDove, Inc. | Systems and methods for streamlining credit and/or debit card transactions utilizing blockchain supported credit tokens and/or debit tokens |
CN111885128A (en) * | 2020-07-08 | 2020-11-03 | 佛山市海协科技有限公司 | Identity management method based on block chain |
US11824990B2 (en) * | 2020-07-30 | 2023-11-21 | Dapper Labs, Inc. | Systems and methods providing specialized proof of confidential knowledge |
US20220278844A1 (en) * | 2020-07-30 | 2022-09-01 | Dapper Labs, Inc. | Systems and methods providing specialized proof of confidential knowledge |
US11394550B2 (en) * | 2020-07-30 | 2022-07-19 | Dapper Labs Inc. | Systems and methods providing specialized proof of confidential knowledge |
US20220123924A1 (en) * | 2020-10-15 | 2022-04-21 | Robert Bosch Gmbh | Method for providing a state channel |
US12107966B2 (en) * | 2021-06-26 | 2024-10-01 | Ceremorphic, Inc. | Device authentication using blockchain |
US20220417030A1 (en) * | 2021-06-26 | 2022-12-29 | Redpine Signals, Inc. | Device Authentication using Blockchain |
US11966894B2 (en) * | 2021-10-18 | 2024-04-23 | Glimpse Enterprises Incorporated | Apparatus for cryptographic resource transfer based on quantitative assessment regarding non-fungible tokens |
US20230120897A1 (en) * | 2021-10-18 | 2023-04-20 | Glimpse Enterprises Incorporated | Apparatus for cryptographic resource transfer based on quantitative assessment regarding non-fungible tokens |
US12147955B2 (en) | 2021-11-05 | 2024-11-19 | Verona Holdings Sezc | Tokenization platform |
US12147956B2 (en) | 2021-11-10 | 2024-11-19 | Verona Holdings Sezc | Tokenization platform |
US20230379179A1 (en) * | 2022-05-19 | 2023-11-23 | Cboe Exchange, Inc. | Blockchain-based systems and method for providing secure digital identities and affiliations for users via digital tokens |
US20230412402A1 (en) * | 2022-06-15 | 2023-12-21 | International Business Machines Corporation | Endorsement policy consolidation in blockchain networks |
WO2024102396A1 (en) * | 2022-11-09 | 2024-05-16 | Quarter, Inc. | Methods and systems for transmitting information |
Also Published As
Publication number | Publication date |
---|---|
US20200027066A1 (en) | 2020-01-23 |
US11669811B2 (en) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669811B2 (en) | Blockchain-based digital token utilization | |
US10965446B2 (en) | Blockchain-based automated user matching | |
US11153069B2 (en) | Data authentication using a blockchain approach | |
US11599555B2 (en) | Data manifest as a blockchain service | |
US10965445B2 (en) | Blockchain-based unexpected data detection | |
US11461769B2 (en) | Multi-tiered digital wallet security | |
US10942994B2 (en) | Multicomputer processing for data authentication using a blockchain approach | |
US11159537B2 (en) | Multicomputer processing for data authentication and event execution using a blockchain approach | |
US20190354518A1 (en) | Chain mesh network for decentralized transaction systems | |
US10693646B2 (en) | Event execution using a blockchain approach | |
US20230410111A1 (en) | Cryptocurrency Storage Distribution | |
US20200021598A1 (en) | Automated Event Processing Computing Platform for Handling and Enriching Blockchain Data | |
US20200027085A1 (en) | Automated Event Processing Computing Platform for Handling and Enriching Blockchain Data | |
US20200167770A1 (en) | Blockchain implementation across multiple organizations | |
US20190164150A1 (en) | Using Blockchain Ledger for Selectively Allocating Transactions to User Accounts | |
US11295402B2 (en) | Blockchain-based property repair | |
US20190354968A1 (en) | Utilization Management Method, Utilization Management System, and Node | |
US20190303882A1 (en) | Blockchain-based property utilization | |
Tkachuk et al. | Towards efficient privacy and trust in decentralized blockchain-based peer-to-peer renewable energy marketplace | |
US20240242204A1 (en) | Blockchain-Based System for Management of Digital Tokens | |
Guo | Cypherium: a scalable and permissionless smart contract platform | |
US20240154814A1 (en) | Method to Validate Application Programming Interface (API) leveraging Non fungible Token (NFT) | |
US20240152917A1 (en) | Method to Validate Application Programming Interface (API) leveraging Non fungible Token (NFT) | |
US20240311825A1 (en) | Zero Trust Enable Intelligent Apparatus To Register IoT Devices For Payment Leveraging Non Fungible Token | |
US20240154825A1 (en) | Method to Validate Application Programming Interface (API) leveraging Non fungible Token (NFT) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: BANK OF AMERICA CORPORATION, NORTH CAROLINA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RAMASAMY, SUKI;PURUSHOTHAMAN, SASIDHAR;SIGNING DATES FROM 20180423 TO 20180430;REEL/FRAME:045672/0867 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |