Blockchain tokens are used for many different purposes. A very common blockchain token is used for cryptocurrency. Other blockchain tokens such as Ethereum and others can be used for holding many different kinds of information.
Blockchain relies on a distributed ledger which maintains a cryptographically verified and secure version of each transaction being carried out with the blockchain sequence. The ledger is distributed, in the sense that many different parties include identical copies of the ledger.
Users can interact with the blockchain by using their own personal credentials. An electronic file, often called a blockchain “wallet” stores these credentials along with various information about the user's personal stake in the blockchain. For example, a blockchain wallet may store the user's private key that is used by the owner to access the tokens, and in the case of cryptocurrency, to spend the cryptocurrency. The wallet may also store a public key corresponding to the private key, and they also store a digest of the block chain tokens that are associated with the user. In the case of crypto currency, this can include the crypto currency balance. This crypto currency balance is typically just a summary, however, of what is called out in the distributed ledger.
Different kinds of blockchain wallets are known. A blockchain wallet can be stored on the user's own computer, either with or without the distributed ledger. Blockchain wallets can also be stored in apps on a portable phone, or in servers that are accessible by the user with a password. There are also more specific blockchain forms, such as hardware-based blockchain solutions that use special purpose computers or machines to hold and interact with the cryptographic tokens.
The inventor recognizes that there are certain advantages to maintaining one's own version of the blockchain under one's own individual control. This gives the user more confidence in the blockchain, since the user stores the entire blockchain on their own computer.
Also, storing blockchain information on a server owned or operated by someone other than the user flies in the face of some of the anonymity and privacy concerns that are touted as advantages of blockchain. However, the distributed ledger for a blockchain, such as bitcoin sequences, can often run to gigabytes or terabytes, thus overloading the capacity of many different hard drives.
An embodiment describes a blockchain wallet and a version of the distributed ledger which provides only parts of the ledger associated with the user's own transactions, along with the additional information that can be used for the user to verify cryptographically that at least part of these transactions are correct.
Since the system provides all necessary aspects for a blockchain, one embodiment describes usability with, which also contains different sections for, different types of blockchain all in the same “wallet” structure. Because the system allows for a reduced version of the distributed ledger, which still maintains information for verifying cryptographic credibility, a “skill” is defined as a software driver that can be used to teach the computer system how to store information for any different kind of blockchain or distributed ledger system, now known or later developed, all within the same basic wallet structure. In one embodiment, all the information can be formed and stored within a single file, even though the information represents different formats of distributed ledger.
the drawings show aspects of the invention as described herein and specifically,
The basic wallet is shown in
Each section may have completely different mathematical necessity; and each section operates according to an “skill” that defines the different features that define the parameters that are stored by the section and the way in which a reduced ledger is formed for the section.
A user, referred to herein as user 0, receives access to the wallet by entering their credentials shown as 130, here a wallet ID 131 which is a special code for the wallet, a password 132, and additional ID 133 that may be set by user 0 as additional security. This latter can be additional identifying information such as a biometric or a 2 factor authentication.
In an embodiment, each section such as 110 stores a reduced ledger 111 which is created from the entire distributed ledger. The reduced ledger forms a reduced data set version of the blockchain ledger. The reduced ledger includes certain information from the distributed ledger, including, the transactions which are associated with the user of the wallet, transactions preceding and following those transactions by a number necessary or desirable to verifiably or cryptographically ascertain the veracity of these transactions, along with identifying information about the transactions so that these transactions can be coordinated with the main distributed ledger during a sync operation.
Each blockchain format has its own set of characteristics, defined by the skill associated with that blockchain. An embodiment is described where the blockchain system is bitcoin, however, there can be many other different formats of blockchain, including “private” blockchain sequences that can be owned by a private party to convey or verify different kind of information.
In bitcoin, the users balance is shown as 112. The ledger stores transactions that are associated with that balance and from which the balance can be verified.
One of the things that is done by crypto currency is using the crypto currency to pay for purchases. Say user 0 has a balance of 0.5 BTC, and wants to pay 0.1 BTC to another party called Y0. The user uses their own private key along with party Y0's public key to transfer the 0.1 BTC from user 0 to party y0.
To carry out this transfer, a transaction is set in the distributed ledger that verifies the transaction. A version of this transaction is shown as 114, referred to as Tx Y0. This transaction in the distributed ledger represents the transfer of 0.1 BTC to Y0.
This also includes additional cryptographic information that cryptographically verifies that the transaction is correct. This additional cryptographic information, for bitcoin, includes a block that is formed by pieces of multiple previous transactions, including a hash value of the previous block, and including a “link” generated with respect to the dependencies of the hash values within the previous block and the following block. This cryptographically prevents tampering with the distributed ledger, since any tampering will defeat the mathematical completeness of the hash and/or link values. In this embodiment, the actual transaction y0 114 represents transferring the 0.1 BTC, also including the block information 116, the hash information 117 and the link information 118.
In order to verify the veracity of this data, the system also stores the previous transaction (Tx y0−1) 121, and the subsequent transaction (Tx y0+1) 122. This can be used to verify cryptographically the hash and the link without consulting the full distributed ledger.
In another embodiment, instead of storing a single antecedent and preceding transaction, the system could store any number of transactions before or after the transaction of interest, e.g. 10 or 100 transactions.
The basic point is that a reduced size ledger is stored, this reduced size ledger having enough extraneous information to allow verifying cryptographically at least some of the data is accurate.
The system also stores the transaction sequence numbers, which are preferably the same transaction sequence numbers that are used in the distributed ledger, so that when the system syncs with the distributed ledger, it can verify that the reduced set of transactions in the reduced set transaction actually synchronize with the data in the full ledger.
In some blockchain formats there can be different kinds of sequence numbers, or none at all.
According to another embodiment, any transactions in the distributed ledger that are older than a specified criteria are also left off of the reduced ledger. For example, transactions which are 5 years old can be removed from the reduced ledger, and either replaced by an indication of “null” or by an indication of “old”.
In an embodiment, this can be stored in a handheld device shown as 200 that communicates via the Internet 202 with a server 205. The server 205 can be the user's home computer, or can be for example a server associated with an app that runs this system. In an embodiment, the system creates the reduced ledger using either the processor in the phone or the processor in the server, or some other cloud-based processor to carry out the following steps. It is recognized that these steps may take significant amounts of time and processing power because of the huge number of transactions included in a blockchain.
However, in some embodiments this only needs to be done once. The values can be synchronized or verified during a phone home by the computer associated with the reduced ledger, however this does not necessarily ever need to be done, unless there is for some reason and inconsistency between the reduced ledger and the full ledger.
The system starts at 300 where the processing element gets either the ledger or a piece of the ledger. For example, if this is being done in a handheld device, processing element may process only a very small part of the ledger at any particular time. For each item in the ledger, the system determines at 310 whether the entry in the ledger is associated in any way with user 0, the owner of the blockchain wallet. If not, the value is kept for N cycles at 315, and then discarded.
If 310 does determine that the value is for user 0, then control passes to 320 which gets NY of the discards representing the previous NY discard cycles. The value NY is a value that is associated with each blockchain format individually and can be specified by the skill for that block chain format. After getting the NY discards at 320, the system stores the records along with the sequence number, the link and other cryptographic information is defined by the skill.
At 325, the records themselves are stored, for +/−NY around the item, including all of this data for each of those items. This preferably stores enough data so at least a hash and the link makes sense and can be verified if necessary.
Control continues to pass through this loop, until 330 determines that we are at the end of the sequence. At this point, the system stores the end sequence number at 335 along with the final and Nz values predating this sequence number.
The reduced ledger thus stores the last Nz entries from the full ledger. When the system later updates to incorporate new ledger entries, the first thing that the system does is compare the last Nz stored at 335 with the corresponding ones in the full ledger. This is shown generally as find sequence at 340, which represents the system finding its spot in the sequence of the full ledger to continue the operation of creating the updated reduced ledger until getting to the end at 330.
In order to update the reduced sequence, the operation obtains the sequence number which is stored at 335, gets a number of transactions from that sequence number, and compares that with the actual values from the full ledger. These actual values of then compared with the Nz values that have been stored, to start the process of comparing at 310. This continues until the end at 330, which again stores values enabling a user to verify the cryptographic integrity. In step 300 of
to assign the bit coin balance to the party why, Once saved, all users who click on the field 400 will receive this information.
An additional or alternate way of reducing the size of the ledger 111 is by setting a maximum number and/or age of the transactions that will be included in the reduced ledger. As one example, users may choose to exclude any transactions which are greater than 100 transactions ago and also more than one year old. Alternatively, the users may simply exclude any transaction greater than a certain age, or greater than a certain transaction number. Users, for example, can thus set the maximum number of transactions that are stored in the reduced ledger, and this function in any case further reduces the size of the reduced ledger.
The reduced ledger 111 for the blockchain defined by S1 is shown in
After the first sequence of data, there will in general be a null set, extending between N0, and N1, where N1 is the first transaction that involves user 0. The system defines a null set from N0 to N1, which is basically a notation in the file that all of these values do not concern the user 0. However, user 0 does have a transaction at N1, shown by 410 which shows storing both the transaction N1, and values around N1, defined by the value Nv. Nv may be one, or may be more than one, depending on and defined by the skill.
After the first transaction 410 that concerns the user, there will be a second null set (in general) shown by 415. This continues on, until the end set at 499, which stores the last Nz transactions.
Each transaction in the reduced ledger stores parameters specified by the skill: typically the sequence number, the information itself, the “hash”, the link, possibly the block, and any other value that can be used to carry out a cryptographic verification.
In an embodiment, a skill can be defined for any blockchain or distributed ledger sequence, as shown in
Based on the skill, the system can automatically create a new file which is populated using the shared address 530 which is an address to the distributed ledger.
Although only a few embodiments have been disclosed in detail above, other embodiments are possible and the inventors intend these to be encompassed within this specification. The previous description of the disclosed exemplary embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these exemplary embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
This application claims priority from Provisional application No. 62/897,280, filed Sep. 7, 2019, the entire contents of which are herewith incorporated by reference.
Number | Date | Country | |
---|---|---|---|
62897280 | Sep 2019 | US |