Cryptocurrencies, such as Bitcoin, are increasing in popularity. An ever-growing number of businesses and individuals are using cryptocurrencies to store value and as a medium of exchange. It is now possible to pay individuals and purchase goods and services using cryptocurrencies. As a result, the number of daily transactions using cryptocurrencies is increasing.
For many cryptocurrency systems to work it is important that there be a ledger system that maintains the integrity of the system. In most such cryptocurrency systems, a virtual ledger system may be maintained by a group of decentralized individuals who validate and timestamp transactions and add them to the virtual ledger. In one example, that of Bitcoin, this virtual ledger system is referred to as a blockchain and the individuals who maintain the blockchain are referred to as miners. These miners serve to encode data regarding Bitcoin transactions into the blockchain.
The blockchain allows for recording of information, including information associated with multiple parties who wish to protect at least some of the information. Cryptology can provide methods for protecting information, but known methods do not provide the use of cryptology to protect information on a blockchain. As such, methods and systems for utilizing cryptology with virtual ledgers are needed.
So that those having ordinary skill in the art, to which the present disclosure pertains, will more readily understand how to employ the novel system and methods of the present disclosure, certain illustrated embodiments thereof will be described in detail herein-below with reference to the drawings, wherein:
A component or a feature that is common to more than one drawing is indicated with the same reference number in each of the drawings.
In one aspect of the disclosure, a computer-implemented method of encrypting information on a virtual ledger includes receiving the information from a first party and a second party, encrypting a portion of the information received from at least one of the first party and the second party, publishing the encrypted portion on the virtual ledger, and providing a decryption key based upon the published encrypted portion to the first party and the second party.
In one aspect of the disclosure, a computer-implemented method of decrypting information on a virtual ledger includes receiving, via a graphical user interface, a request from at least one of a first party and a second party to access information on the virtual ledger, at least a portion of the information being encrypted, requesting the information from the virtual ledger, receiving the information from the virtual ledger, decrypting the encrypted portion of the information, and providing the information after the decrypting step to at least one of the first party and the second party.
In another aspect of the disclosure, a computer-implemented system of encrypting information on a virtual ledger includes a non-transitory memory to store instructions, a display including a graphical user interface to receive information, a processor operably coupled to the memory and display and to execute the instructions including providing the graphical user interface to one or more parties to receive the information, receiving, via the graphical user interface, the information from the one or more parties, encrypting a portion of the information, and publishing the information, including the encrypted portion and an unencrypted portion, on the ledger.
The present disclosure is directed to systems and methods for utilizing virtual ledgers. It is to be appreciated the subject disclosure is described below more fully with reference to the accompanying drawings, in which illustrated embodiments of the present disclosure are shown. The present disclosure is not limited in any way to the illustrated embodiments as the illustrated embodiments described below are merely exemplary of the disclosure, which can be embodied in various forms, as appreciated by one skilled in the art. Therefore, it is to be understood that any structural and functional details disclosed herein are not to be interpreted as limiting, but merely as a basis for the claims and as a representative for teaching one skilled in the art to variously employ the present disclosure. Furthermore, the terms and phrases used herein are not intended to be limiting but rather to provide an understandable description of the disclosure.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. Although any methods and materials similar or equivalent to those described herein can also be used in the practice or testing of the aspects of the present disclosure, exemplary methods and materials are now described.
It must be noted that as used herein and in the appended claims, the singular forms “a”, “an,” and “the” include plural referents unless the context clearly dictates otherwise. Thus, for example, reference to “a stimulus” includes a plurality of such stimuli and reference to “the signal” includes reference to one or more signals and equivalents thereof as known to those skilled in the art, and so forth.
One skilled in the art will appreciate further features and advantages of the disclosure based on the above-described aspects. Accordingly, the disclosure is not to be limited by what has been particularly shown and described, except as indicated by any appended claims. Further, although at least one series of steps are presented as an exemplary method of practicing one or more aspects described herein, it will be appreciated by those skilled in the art that the steps identified may be practiced in any order that is practicable, including without limitation the omission of one or more steps.
Referring to
Referring further to
Referring further to
User devices may be networked via a local area network (LAN), a wide area network (WAN), a personal area network (PAN), and/or combinations thereof. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet. It is to be appreciated that the network connections described and identified above are exemplary and other means of establishing a communications link between multiple devices may be used.
The platform 200 may also have a computer readable medium 210. The computer readable medium 210 may be configured to store, for example, instructions, encryption data, decryption data, and the like. For the purposes of this disclosure, the computer readable medium 210 may store computer data, which may include computer program code that may be executable by a processor 212 of the platform 200 in machine readable form. By way of example, and not limitation, the computer readable medium 210 may include computer readable storage media, for example tangible or fixed storage of data, or communication media for transient interpretation of code-containing signals. Computer readable storage media, as used herein, refers to physical or tangible storage (as opposed to signals) and includes without limitation volatile and non-volatile, removable and non-removable storage media implemented in any method or technology for the tangible storage of information 106 such as computer-readable instructions, data structures, program modules, or other data. In one or more aspects, the actions and/or events of a method, algorithm, or module may reside as one or any combination or set of codes and/or instructions on a computer readable medium 210 or machine readable medium, which may be incorporated into a computer program product.
The platform 200 may also have one or more processors 212. The processor 212 can be, for example, dedicated hardware as defined herein, a computing device as defined herein, a processor, a microprocessor, a programmable logic array (PLA), a programmable array logic (PAL), a generic array logic (GAL), a complex programmable logic device (CPLD), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or any other programmable logic device (PLD) configurable to execute instructions and to facilitate the transmission of data.
In another aspect, the platform 200 may have one or more servers 214. The server 214 may run on any computer including dedicated computers. The computer may include at least one processing element, typically a central processing unit (CPU), and some form of memory. The processing element may carry out arithmetic and logic operations, and a sequencing and control unit may change the order of operations in response to stored information. The server 214 may include peripheral devices that may allow information 106 to be retrieved from an external source, and the result of operations saved and retrieved. The server 214 may operate within a client-server architecture. The server 214 may perform some tasks on behalf of clients. The clients may connect to the server 214 through the network on a communication channel. The server 214 may use memory with error detection and correction, redundant disks, redundant power supplies and so on.
The parties storing on and requesting information 106 from the blockchain may want to protect at least some of the information 106. Because blockchain may be a public ledger, some form of cryptology may be used to maintain privacy and control over some or all of the information 106 in the blockchain. For example, to protect the information 106 for use in the blockchain, at least some of the information 106 may be encrypted as explained herein.
The platform 200 may receive information 106 from two or more parties using user devices 202 and 204, for example, and any additional number of user devices. The information 106 may include contract information related to the parties, the terms of their agreement, and the like. The parties may request that all or some of the information 106 be protected. The information 106 to be protected may be specified by the parties, or may be automatically determined by the platform 200. For example, the parties may wish to protect access to all or some terms of their contract stored in the blockchain. In another aspect, the platform 200 may be programmed to determine which types of information 106 related to the contract should be protected. For example, the platform 200 may be programmed to allow for some general information such as the parties and type of contract to be unencrypted and therefore publicly accessible from the blockchain, and to recognize that specific terms and conditions are to be encrypted.
Any information 106 received by the platform 200 which does not need to be encrypted may be published as unencrypted information 218 on the blockchain. Unencrypted information 106 on the blockchain may be publicly accessible. Any information 106 to be encrypted may be encrypted in one or more ways including advanced encryption standard, RSA, triple data encryption standard, hashing, symmetric key decryption, public key decryption, and the like. All encrypted information 216 may be encrypted completely by the same encryption method, or different portions of the encrypted information 216 may be encrypted with multiple encryption methods. Encryption methods employed by the platform 200 may also be updated manually or periodically.
Encryption can include link encryption, end-to-end encryption, and the like. Link encryption, for example, may encrypt and decrypt the information 106 as the information 106 is transmitted between network locations. In one aspect, as the information 106 is transmitted from a server, the information 106 may be encrypted upon leaving the server, decrypted at another server or link, and encrypted again upon leaving the server or link until the information 106 reaches an end destination such as the user devices 202 and 204. Information 106 requested by the user devices 202 and 204 from the blockchain may be encrypted upon leaving the blockchain, decrypted upon receipt by the platform 200, and provided to the user devices 202 and 204. Alternatively, the platform 200 may re-encrypt the information 106 received from the blockchain for decryption by the user devices 202 and 204. For example, the platform 200 may re-encrypt the entire portion of information 106 with the same or a different method of encryption before providing the information to the user devices 202 and 204. A different method of encryption may be used based on the capabilities and resources of the user devices 202 and 204, the sensitivity of the information 106, user requests, and the like. Alternatively, the platform 200 may determine that only a portion of the information 106 should be encrypted and/or provided to the user devices 202 and 204.
Encryption can also be end-to-end, meaning only the sender and receiver of the information 106 may be able to decrypt the information 106 being transmitted. In such an aspect, encryption and decryption keys may be used by the communicating parties such as the user devices 202 and 204, and the platform 200. In an aspect, encryption and decryption keys may be used by the blockchain and the platform 200 so that when the platform 200 receives a request for information 106 from the blockchain, the transmission of the information 106 between the blockchain and the platform 200 is protected so that no one without a decryption key can access the information 106 from the blockchain. In such an aspect, the platform 200 may decrypt the information 106 before sending it to the user devices 202 and 204, or may re-encrypt the information 106 for decryption by the user devices 202 and 204.
To allow for protection and control of encrypted information 216, the platform 200 may provide decryption keys. A decryption key may decrypt some or all of the decrypted information, and may be provided to one or more parties and/or the platform 200 to decrypt the information 106. A decryption key may also have multiple portions split between users so that each user may only obtain certain portions of the encrypted information 216 from the blockchain.
In one aspect, the platform 200 may provide each user with one or more decryption keys corresponding to one or more encrypted portions of the information 106 stored in the blockchain. A decryption key can be a symmetric key, meaning the same key is used for both encryption and decryption. Decryption keys can also be asymmetric from encryption keys. A decryption key may determine based on a cryptology algorithm the information 106 to be output.
When a user requests information 106 from the blockchain, the platform 200 may provide any unencrypted information 218 to which the user is allowed to access. The platform 200 may evaluate whether a requesting user has a decryption key and whether the decryption key is valid for particular information 106 requested by a user, or may alternatively provide the encrypted information 21106 to the user for a decryption key to decrypt. In another aspect, the platform 200 may decrypt the encrypted information 216 and provide it to the proper user based on the user request and a corresponding decryption key for the user to access the information 106. The platform 200 may recognize that the requesting user has a valid decryption key for the requested information 106, and may facilitate decryption upon that determination.
In another aspect, multiple parties of a contract may wish to allow some of their information 106 to be unencrypted, such as the type of contract, the names of the parties, terms, timing, and the like. If the users wish to encrypt other portions of the information, the information 106 may be encrypted accordingly. In one such aspect, all encrypted information 216 may be accessed by each user who is a party to the agreement. In this aspect, one decryption or more decryption keys may be provided by the platform 200 to the contracting parties to access all of the encrypted information 216 upon request. Also, in this aspect, each party may, independent from the other party, provide the decryption key to other parties to access encrypted information 216 from the blockchain.
For example, a contracting party may want to allow other business partners and subcontracting parties to see at least some portion of the information 106 in the blockchain. The contracting party may provide a decryption key to such parties. Alternatively, the platform 200 may issue additional decryption keys to such parties upon request. The platform 200 may also maintain a record or which parties have the ability to access encrypted information 216 so that the platform 200 may issue those parties decryption keys and/or may perform decryption of encrypted information 216 based on whether a requesting party has been authorized to receive decrypted information 106.
In another aspect, each party may receive from the platform 200 one or more decryption keys or portions of decryption keys corresponding to different portions of encrypted data in the blockchain. As such, a party requesting encrypted information 216 may only be able to access the portions of encrypted data corresponding to their decryption keys. The platform 200 can perform this determination to restrict access to requesting parties based on whether or not they have proper decryption keys corresponding to encrypted information 216 requested. Alternatively, requested encrypted information 216 may be transmitted to a user who may only be able to view the information that the user's decryption key can decrypt.
Each encrypted portion of the information 106 may correspond to one decryption key or separate decryption keys. The same decryption key may be provided by the platform 200 to each party, or the platform 200 may provide each party different decryption keys or different portions of the same decryption keys corresponding to different encrypted information 216 stored on the blockchain.
Once the information 106 has been received at step 406, the platform 200 may receive the requested information 106 from the blockchain. At least some portion of the information 106 may be encrypted as it leaves the blockchain. At step 408, the platform may decrypt any encrypted portion of requested information 106 at step 408. Decryption at step 408 may include using one or more decryption keys stored on the platform 200 or provided by the requesting user.
To access the encrypted information 216, the user must have access to a decryption key corresponding to the encrypted data. For example, a user may have access to all of the encrypted information 216, so the platform 200 may determine that any decryption keys or portions of decryption keys the user has may be valid and used to decrypt the encrypted information 216. In another example, a user may only have access to one or more portions of the encrypted information 216. The platform 200 may decrypt the encrypted portions of the information 106 corresponding to the user's decryption keys. Decryption can be performed by advanced encryption standard, RSA, triple data encryption standard, hashing, symmetric key decryption, public key decryption, and the like.
Once encrypted information 216 has been decrypted, the platform may determine whether to provide the information 106 to the requesting information 106 by determining the user's authorization at step 410. The determination may include verifying that the requesting user has a valid decryption key for any encrypted information 216. The platform 200 may also determine whether to re-encrypt any portion of the information 106 before providing it to the requesting user.
Once the platform 200 has determined which information 106 to provide to the requesting user, the platform 200 may provide all decrypted and unencrypted information 218 to a requesting user at step 412. Alternatively, the platform 200 may re-encrypt the information 106 before providing the information 106 to the requesting user. If all requesting users have a decryption key for all of the requested encrypted information 216, the platform 200 may provide all of the requested data to the users. If, however, each user only has access to some of the requested information 106 that is encrypted, the platform may decrypt and provide only the information 106 corresponding the each user's decryption keys.
The disclosure may include communication channels that may be any type of wired or wireless electronic communications network, such as, e.g., a wired/wireless local area network (LAN), a wired/wireless personal area network (PAN), a wired/wireless home area network (HAN), a wired/wireless wide area network (WAN), a campus network, a metropolitan network, an enterprise private network, a virtual private network (VPN), an internetwork, a backbone network (BBN), a global area network (GAN), the Internet, an intranet, an extranet, an overlay network, a cellular telephone network, a Personal Communications Service (PCS), using known protocols such as the Global System for Mobile Communications (GSM), CDMA (Code-Division Multiple Access), W-CDMA (Wideband Code-Division Multiple Access), Wireless Fidelity (Wi-Fi), Bluetooth, Long Term Evolution (LTE), EVolution-Data Optimized (EVDO) and/or the like, and/or a combination of two or more thereof.
The aspects in the disclosure may be implemented in any type of computing devices, such as, e.g., a desktop computer, personal computer, a laptop/mobile computer, a personal data assistant (PDA), a mobile phone, a tablet computer, cloud computing device, and the like, with wired/wireless communications capabilities via the communication channels.
It should also be noted that the software implementations of the disclosure as described herein are optionally stored on a tangible storage medium, such as: a magnetic medium such as a disk or tape; a magneto-optical or optical medium such as a disk; or a solid state medium such as a memory card or other package that houses one or more read-only (non-volatile) memories, random access memories, or other re-writable (volatile) memories. A digital file attachment to email or other self-contained information archive or set of archives is considered a distribution medium equivalent to a tangible storage medium. Accordingly, the disclosure is considered to include a tangible storage medium or distribution medium, as listed herein and including art-recognized equivalents and successor media, in which the software implementations herein are stored.
While the system and method have been described in terms of what are presently considered to be specific aspects, the disclosure need not be limited to the disclosed aspects. It is intended to cover various modifications and similar arrangements included within the spirit and scope of the claims, the scope of which should be accorded the broadest interpretation so as to encompass all such modifications and similar structures. The present disclosure includes any and all aspects of the following claims.
This application claims priority to App. No. 62/156,706, filed May 4, 2015, titled “SYSTEMS AND METHODS FOR UTILIZING VIRTUAL LEDGERS IN SUPPORT OF TRANSACTIONS AND AGREEMENTS,” and to App. No. 62/158,968, filed May 8, 2015, titled “SYSTEMS AND METHODS FOR UTILIZING VIRTUAL LEDGERS IN SUPPORT OF TRANSACTIONS AND AGREEMENTS” the entirety of which are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
9413735 | Hird | Aug 2016 | B1 |
9569771 | Lesavich et al. | Feb 2017 | B2 |
9722790 | Ebrahimi | Aug 2017 | B2 |
9742564 | Moffat | Aug 2017 | B2 |
9774578 | Ateniese et al. | Sep 2017 | B1 |
9830580 | MacGregor | Nov 2017 | B2 |
20040030894 | Labrou | Feb 2004 | A1 |
20090132351 | Gibson | May 2009 | A1 |
20090210328 | Fomenko et al. | Aug 2009 | A1 |
20140222885 | Mohan | Aug 2014 | A1 |
20150278820 | Meadows | Oct 2015 | A1 |
20150332395 | Walker et al. | Nov 2015 | A1 |
20150356524 | Pennanen | Dec 2015 | A1 |
20150356555 | Pennanen | Dec 2015 | A1 |
20150371224 | Lingappa | Dec 2015 | A1 |
20150379510 | Smith | Dec 2015 | A1 |
20160203477 | Yang et al. | Jul 2016 | A1 |
20160210626 | Ortiz et al. | Jul 2016 | A1 |
20160261411 | Yau et al. | Sep 2016 | A1 |
20160321751 | Creighton, IV et al. | Nov 2016 | A1 |
20160330027 | Ebrahimi | Nov 2016 | A1 |
20160358165 | Maxwell | Dec 2016 | A1 |
20160365978 | Ganesan et al. | Dec 2016 | A1 |
20160371771 | Serrano et al. | Dec 2016 | A1 |
20170011460 | Molinari et al. | Jan 2017 | A1 |
20170046664 | Haldenby et al. | Feb 2017 | A1 |
20170046799 | Chan et al. | Feb 2017 | A1 |
20170053249 | Tunnell et al. | Feb 2017 | A1 |
20170076280 | Castinado et al. | Mar 2017 | A1 |
20170076286 | Castinado et al. | Mar 2017 | A1 |
20170076306 | Snider et al. | Mar 2017 | A1 |
20170078299 | Castinado et al. | Mar 2017 | A1 |
20170103391 | Wilson, Jr. et al. | Apr 2017 | A1 |
20170109748 | Kote | Apr 2017 | A1 |
20170116693 | Rae et al. | Apr 2017 | A1 |
20170134161 | Goeringer et al. | May 2017 | A1 |
20170140375 | Kunstel | May 2017 | A1 |
20170154331 | Voorhees | Jun 2017 | A1 |
20170177898 | Dillenberger | Jun 2017 | A1 |
20170193619 | Rollins et al. | Jul 2017 | A1 |
20170206382 | Rodriguez De Castro et al. | Jul 2017 | A1 |
20170206532 | Choi | Jul 2017 | A1 |
20170214699 | Johnsrud | Jul 2017 | A1 |
20170221029 | Lund et al. | Aug 2017 | A1 |
20170228371 | Seger, II | Aug 2017 | A1 |
20170228704 | Zhou et al. | Aug 2017 | A1 |
20170228734 | Kurian | Aug 2017 | A1 |
20170230375 | Kurian | Aug 2017 | A1 |
20170232300 | Tran et al. | Aug 2017 | A1 |
20170236123 | Ali et al. | Aug 2017 | A1 |
20170237554 | Jacobs et al. | Aug 2017 | A1 |
20170243208 | Kurian et al. | Aug 2017 | A1 |
20170244707 | Johnsrud et al. | Aug 2017 | A1 |
20170250972 | Ronda et al. | Aug 2017 | A1 |
20170270527 | Rampton | Sep 2017 | A1 |
20170278186 | Creighton, IV et al. | Sep 2017 | A1 |
20170279783 | Milazzo et al. | Sep 2017 | A1 |
20170279801 | Andrade | Sep 2017 | A1 |
20170286717 | Khi et al. | Oct 2017 | A1 |
20170287068 | Nugent | Oct 2017 | A1 |
20170289111 | Voell et al. | Oct 2017 | A1 |
Number | Date | Country |
---|---|---|
2016101183 | Sep 2016 | AU |
105488722 | Apr 2016 | CN |
105681301 | Jun 2016 | CN |
105956923 | Sep 2016 | CN |
105976231 | Sep 2016 | CN |
106097101 | Nov 2016 | CN |
106228446 | Dec 2016 | CN |
106230808 | Dec 2016 | CN |
106230852 | Dec 2016 | CN |
106339875 | Jan 2017 | CN |
106355488 | Jan 2017 | CN |
106408299 | Feb 2017 | CN |
106452785 | Feb 2017 | CN |
106453415 | Feb 2017 | CN |
106484836 | Mar 2017 | CN |
106485167 | Mar 2017 | CN |
106504091 | Mar 2017 | CN |
106530083 | Mar 2017 | CN |
106530088 | Mar 2017 | CN |
106600403 | Apr 2017 | CN |
106790431 | May 2017 | CN |
101590076 | Feb 2016 | KR |
101591244 | Feb 2016 | KR |
20160150278 | Dec 2016 | KR |
101762245 | Jul 2017 | KR |
101773074 | Aug 2017 | KR |
1101773073 | Aug 2017 | KR |
101780636 | Sep 2017 | KR |
2015085393 | Jun 2015 | WO |
2016036969 | Mar 2016 | WO |
2016154001 | Sep 2016 | WO |
2016201429 | Dec 2016 | WO |
2017006134 | Jan 2017 | WO |
2017006135 | Jan 2017 | WO |
2017006136 | Jan 2017 | WO |
2017021154 | Feb 2017 | WO |
2017027648 | Feb 2017 | WO |
2017044554 | Mar 2017 | WO |
2017065389 | Apr 2017 | WO |
2017066715 | Apr 2017 | WO |
2017079795 | May 2017 | WO |
2017091530 | Jun 2017 | WO |
2017095036 | Jun 2017 | WO |
2017104899 | Jun 2017 | WO |
2017109140 | Jun 2017 | WO |
2017119564 | Jul 2017 | WO |
2017136643 | Aug 2017 | WO |
2017136956 | Aug 2017 | WO |
2017139688 | Aug 2017 | WO |
2017143435 | Aug 2017 | WO |
2017146333 | Aug 2017 | WO |
Number | Date | Country | |
---|---|---|---|
62158968 | May 2015 | US | |
62156706 | May 2015 | US |