Distributed Data Records

A decentralized system allows digital assets to manage their own transaction histories using digital signatures and checksums, addressing storage and computational challenges of centralized databases and public blockchains, enabling secure and efficient peer-to-peer transfers.

JP7792464B2Active Publication Date: 2025-12-25ORACLE INT CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024094889
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-06-21
Filing Date
2024-06-12
Publication Date
2025-12-25
Estimated Expiration
2039-08-02

AI Technical Summary

Technical Problem

Centralized databases for managing digital assets incur high computational costs and storage limitations, making public blockchains unsuitable for large-scale storage, and existing solutions lack efficient peer-to-peer transfer mechanisms.

Method used

A decentralized system where each digital asset carries its own transaction history and signature chain, managed by individual users, using digital signatures and checksums to ensure authenticity and prevent unauthorized changes, with optional third-party validation.

Benefits of technology

Enables secure, efficient, and scalable peer-to-peer transfer of digital assets with minimal storage requirements, ensuring authenticity and preventing double-spending without relying on a centralized ledger.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007792464000019
    Figure 0007792464000019
  • Figure 0007792464000020
    Figure 0007792464000020
  • Figure 0007792464000021
    Figure 0007792464000021
Patent Text Reader

Abstract

To provide a method for creating and verifying distributed digital records representing assets, a verification system, and a computer readable medium.SOLUTION: A method includes acquiring a first secret key and a first public key corresponding to a creator of a digital record, and generating one or more parameters for the digital record. A first parameter of the parameters is related to a transaction of the digital record. The method also generates one or more rules for the digital record, limits the transaction while corresponding to the first parameter via a first rule from the rules, uses the first secret key to calculate first digital signatures for all of the first public key, the parameters and the rules, and generates a first digital record containing the first public key, the parameters, the rules, and the first digital signature.SELECTED DRAWING: Figure 3A
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Field One embodiment relates generally to data records, and more particularly to distributed data records and electronic ledgers. [Background technology]

[0002] Background technology Traditionally, to keep track of electronic records or contracts, a centralized database keeps track of all assets, owners, transactions, etc. Digital assets or data records, such as electronic consumables, tokens, points, currency, titles, event tickets, vouchers, coupons, etc., often need to be transferable in a peer-to-peer manner, allowing people to directly negotiate asset transfers of ownership using a trusted platform not controlled by a single party. Blockchains, which include distributed and public ledgers, offer one solution, but have certain challenges, such as high computational costs and storage limitations, as many nodes must store the complete transaction history. Therefore, projects requiring large-scale storage require centralization, making public blockchains completely unsuitable. Summary of the Invention

[0003] Summary of the Invention

[0006] Embodiments create and verify a digital record representing an asset. The embodiments obtain a first private key and a first public key corresponding to a creator of the digital record and generate one or more parameters for the digital record. A first parameter of the parameters relates to a transaction of the digital record. The embodiments generate one or more rules for the digital record, a first rule of the rules corresponding to the first parameter and constraining the transaction. The embodiments use the first private key to calculate a first digital signature over the first public key, the parameters, and the rules, and create a first digital record including the first public key, the parameters, the rules, and the first digital signature. [Brief explanation of the drawings]

[0004] [Figure 1] 1 is an overview of elements that may implement an embodiment of the present invention; [Figure 2] FIG. 1 is a block diagram of a computer server / system according to an embodiment of the present invention. [Figure 3A] FIG. 3 is a flow diagram of the functionality of the distributed data record module of FIG. 2 in creating a new electronic record / digital certificate, according to one embodiment. [Figure 3B] FIG. 3 is a flow diagram of the functionality of the distributed data records module of FIG. 2 in conducting a transaction with an electronic record, according to one embodiment. [Figure 4] FIG. 3 is a flow diagram of the functionality of the distributed data records module of FIG. 2 in matching electronic records, according to one embodiment. [Figure 5] FIG. 3 is a flow diagram of the functionality of the distributed data records module of FIG. 2 in matching electronic records according to transaction rules, according to one embodiment. [Figure 6] FIG. 3 is a flow diagram of the functionality of the distributed data records module of FIG. 2 when verifying records with a third party validator, according to one embodiment. [Figure 7]FIG. 3 is a flow diagram of the functionality of the distributed data record module of FIG. 2 in creating a new record that is exposed to a third-party validator with additional security, according to one embodiment. [Figure 8] FIG. 3 is a flow diagram of the functionality of the distributed data records module of FIG. 2 in splitting parameters into multiple child records, according to one embodiment. [Figure 9] FIG. 3 is a flow diagram of the functionality of the distributed data record module of FIG. 2 in recording a split transaction in a validator repository, according to one embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0005] Detailed Description Embodiments relate to a ledger database that consists of standalone files rather than a central database. Embodiments provide a system of data records or certificates where information is not held in a centralized database instance but is maintained individually on separate devices, and where each user is responsible for managing their own records. Users are custodians of the individual records they own and may be able to perform data updates to their records in a manner that can be trusted by all participants.

[0006] In some embodiments, data records are maintained by each individual owner / user of the data on a respective device. The device corresponding to each owner of the data record and used to store the data record may be, for example, a computing device, a smartphone, a Universal Serial Bus (USB) device, or the like. The data records may include data records stored on a USB (Internet Bus) storage stick, email or online storage, or printed on paper or stored as a two-dimensional Quick Response (QR) code image. Each data record in an embodiment contains sufficient information to deliver some of the same features provided by a traditional centralized database instance, as disclosed in detail below. For example, the data record contains sufficient information to (1) ensure the authenticity of the record's provenance, (2) enforce which updates are allowed and which are not, (3) verify the current state of the record (i.e., the current value of each record parameter, including the current owner of the record), (4) maintain a transaction history to prove how the current state came to be, and (5) provide security against unauthorized changes to the record.

[0007] Instead of using a costly system of record storage like a typical database that is replicated at each node (i.e., known blockchain systems), in embodiments, each asset keeps track of itself. For example, with a blockchain, instead of a database node managing all record information and transaction history, in embodiments, data records circulate freely around the world, managing their ownership and status.

[0008] For example, in embodiments, if Alice sends Bob a digital "coin" (i.e., a digitally signed computer file), the coin (or file) carries within it a signed history, proving its authentic origin and ownership. Whether the digital asset in question is a sum of coins, tokens, titles, tickets, vouchers, coupons, etc., each individual asset carries its own history within it and is digitally signed in a way that the digital asset / record represents itself without the need to log transaction details in a master database. The whereabouts of the assets are completely unknown to the public. Who currently owns which assets may be unknown to the public. Instead, files likely kept by the owners keep track of the assets. However, in embodiments, encryption makes it extremely difficult to "cheat." According to embodiments, users are the custodians of their own ledgers, but cannot temper them. or its value cannot be modified in an unauthorized manner.

[0009] Embodiments are implemented using digital signatures, such as the Elliptic Curve Digital Signature Algorithm (ECDSA). In ECDSA, record creations and transactions are signed with a secret private key and verified with an associated public key. Records are created and signed with their creator's private key, leaving behind a signature string that can be used to verify the signature. The next transaction or record update is signed again, thereby generating a record signature that includes the previous signatures as part of the signed content. Each time the record is updated, a record signature is generated again, including all previous signatures, creating a chain of signatures on top of each other. Thus, if any part of the history is adjusted, the signature will not match the expected value during verification. Additionally, the record also contains metadata that describes which updates are allowed, disallowed, or required. These rules, described in the metadata, are also protected by the signature (i.e., if the rule text is changed, the signature will not pass verification). The embodiment is novel in part because verifying a record requires both a signature verification and a verification of compliance with any predefined transaction rules: a record is true only if it passes both verifications.

[0010] FIG. 1 is an overview of elements upon which embodiments of the present invention may be implemented. The embodiments relate to individual devices 101-108 that may communicate with each other continuously or intermittently via a network 110. Each device 101-108 may be any type of device that includes a processor / controller (or hardware implementation) for executing instructions, a storage device for storing files, and a communication device for communicating with other devices. The devices 101-108 may include desktop or laptop computers, servers, smartphones, tablets, watches, etc. The network 110 may be any type of communication mechanism, such as the Internet or a local network, or may be a combination of different networks. In embodiments disclosed below that use a third-party validator, one of the devices in FIG. 1 functions as the validator.

[0011] 2 is a block diagram of a computer server / system 10 according to an embodiment of the present invention. Although shown as a single system, the functionality of system 10 may be implemented as a distributed system. Additionally, the functionality disclosed herein may be implemented on separate servers or devices that may be coupled together via a network. Furthermore, one or more components of system 10 may not be included. Multiple systems 10 may provide functionality for all of the elements of FIG. 1.

[0012] System 10 includes a bus 12 or other communication mechanism for communicating information and a processor 22 coupled to bus 12 for processing information. Processor 22 may be any type of general-purpose or special-purpose processor. System 10 also includes memory 14 for storing information and instructions to be executed by processor 22. Memory 14 may be comprised of any combination of random access memory (“RAM”), read-only memory (“ROM”), static storage such as a magnetic or optical disk, or any other type of computer-readable medium. System 10 also includes a communication device 20, such as a network interface card, to provide access to a network. Thus, a user may interface with system 10 directly, remotely over a network, or in any other manner.

[0013] Computer-readable media may be any available medium that can be accessed by processor 22. Communication media may include computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.

[0014] Processor 22 is further coupled via bus 12 to a display 24, such as a liquid crystal display ("LCD"), and a keyboard 26 and cursor control device 28, such as a computer mouse, are further coupled to bus 12 to allow a user to interface with system 10.

[0015] In one embodiment, memory 14 stores software modules that provide functionality when executed by processor 22. The modules include operating system 15, which provides operating system functionality for system 10. The modules further include distributed data record module 16, which provides distributed data record functionality for each device and all other functionality disclosed herein. System 10 may be part of a larger system. Thus, system 10 may include one or more additional functional modules 18, such as a transaction-based system, a digital wallet, or any other type of app that utilizes digital assets, to include additional functionality. A file storage device or database 17 is coupled to bus 12, thereby providing a centralized storage device for modules 16 and 18, data record files, and any other necessary data, such as digital signatures. In one embodiment, database 17 may use Structured Query Language ("SQL") to manage the stored data. It is a relational database management system (RDBMS).

[0016] In one embodiment, database 17 is implemented as an in-memory database ("IMDB"), especially when there are many distributed files on a single device. An IMDB is a database management system that relies primarily on main memory for computer data storage. This contrasts with database management systems that use disk storage mechanisms. Main-memory databases are faster than disk-optimized databases because disk access is slower than memory access and the internal optimization algorithms are simpler and execute fewer CPU instructions. Accessing data in memory eliminates seek times when querying data, providing faster and more predictable performance than disk.

[0017] In one embodiment, when database 17 is implemented as an IMDB, it is implemented based on a distributed data grid. A distributed data grid is a system in which a collection of computer servers work together in one or more clusters to manage information and related operations, such as computation, in a distributed or clustered environment. Distributed data grids can be used to manage application objects and data shared across servers. Distributed data grids provide low response time, high throughput, predictable scalability, continuous availability, and reliability of information. In a particular example, a distributed data grid, such as Oracle's "Oracle Coherence" data grid, uses redundancy in storing information in-memory to achieve higher performance and keeping copies of that information synchronized across multiple servers, thereby ensuring system resilience and continuous availability of data in the event of a server failure.

[0018] In one embodiment, system 10 is a computing / data processing system that includes an application or a collection of distributed applications for an enterprise organization, and may also implement logistics, manufacturing, and inventory management functions. The application and computing system 10 may be a cloud-based networking system, a software-as-a-service (SaaS) architecture, or the like. The network may be configured to operate with a cloud-based networking system, a software-as-a-service (SaaS) architecture, or other type of computing solution. Alternatively, it may be implemented as any other type of computing solution.

[0019] As disclosed, embodiments provide a decentralized asset / record where each decentralized asset carries metadata that represents itself and controls what types of transactions are allowed. This contrasts with blockchain systems, which rely on a shared ledger that serves as a complete ledger of all of the assets (rather than just one asset) and is stored by each user. In some embodiments, digital assets serve as the decentralized data records, and third-party validators are used for reconciliation.

[0020] Distributed Digital Data Records A digital record, digital asset, or "certificate file" proves who owns what. In the context of embodiments of the present invention, a certificate file represents an asset such as a ticket, coin, data, voucher, digital art, electronic device, tangible object, or service. A certificate file contains an owner address. The owner address is associated with a secret private key that can sign for that address. An asset is represented as a chain of digital signatures. A transaction is recorded by its owner digitally signing a hash of the previous transaction and a next state parameter, appending their public key, creating a verifiable chain. In a blockchain-based ledger, this signature chain is recorded on a blockchain server. In contrast, according to embodiments, each certificate carries this signature chain internally on the user's device.

[0021] As an example, Alice might initiate a set of 100 certificates of authenticity to be given to purchasers of 100 custom guitars she created. Bob might initiate a pool of 200,000 "BobCoins." Carol might initiate a pool of food and drink tickets for a fair. These assets are traded peer-to-peer as certificate files. Using wallet apps and QR codes, these items can be acquired, used, gifted, or sold, and those certificates can be transferred to new addresses, split or merged among other addresses, giving rise to successive certificate files. Each subsequent certificate file contains a verifiable signature history of its pedigree.

[0022] Thus, if Dave owns an asset that is tracked by a distributed data record file, Dave may store that file anywhere he wishes. When Dave decides to transfer or redeem that record, Dave's wallet app provides a digital signature that authenticates the parameters of the new record file. According to an embodiment, once Dave makes the transaction, Dave's old record file must be invalidated. This can be accomplished with a relatively small amount of online digital information, and Dave will no longer be able to use the old record file again, since the whole world must know that the old file is no longer accepted. Otherwise, Dave could double-spend.

[0023] Third-Party Validator Repositories In embodiments, digital records / assets / certificates are standalone digital files. However, in some embodiments, proof of their integrity requires a relatively small amount of digital information to be online and available over a network (e.g., a backend) in the form of a cryptographic checksum of each currently valid certificate. The certificate may need to be available via a trusted data server. If the checksum digest is present in the repository, it is valid. When a transaction is posted, the checksum digest of the new child certificate is inserted, so embodiments prevent double spending by ensuring that the checksum digest of the parent certificate is removed from the repository.

[0024] An embodiment uses a distributed consensus algorithm. In the case of a private or shared ledger, the validator (or checksum digest repository) can be a private distributed database. In the case of a distributed ledger, this repository should run on a distributed algorithm such as blockchain smart contracts or hashgraph. Nevertheless, the entity operating the reconciliation repository has no control over the assets, addresses, or keys, and therefore cannot issue counterfeit certificates. The repository must be able to maintain an obscure checksum. It is not a mint authority, as it only manages checksum hash values. Its only purpose is to stop double-spending, and it requires very little storage to do so, no matter how large the digital asset is in bytes. Privacy is very high, as the list of checksum hash digests in a repository cannot provide any useful information.

[0025] Electronic data record / asset creation and reconciliation 3A is a flow diagram of the functionality of the distributed data records module 16 of FIG. 2 in creating a new electronic record / digital certificate, according to one embodiment. In one embodiment, the functionality of the flow diagram of FIG. 3A (and FIGS. 3B and 4-9 below) is implemented by software stored in memory or other computer-readable or tangible medium and executed by a processor. In other embodiments, the functionality is implemented by hardware (e.g., an application specific integrated circuit (ASIC)). "), programmable gate array ("PGA"), Field programmable gate arrays (FPGAs) The invention may be implemented by any combination of hardware and software, or through the use of any other hardware or software.

[0026] At 302, a private / public key pair (e.g., an elliptic curve digital signature key pair) of the record creator is obtained. At 304, a new electronic record is written that includes at least one parameter described in more detail below. At 306, a digital signature is calculated using the record creator's private key and all record information as message text, including the creator's public key, resulting in a signature hash value. At 308, the digital signature value is added to the record.

[0027] As an example of the functionality of FIG. 3A, a digital record is as follows:

[0028]

number

[0029] The above example digital record, and all other examples herein, are written in JavaScript Object Notation (“JSON”) for readability. However, records can be in any format, including data records with fields separated by special characters (e.g., comma-separated or tab-separated files), tag-separated fields (e.g., Extensible Markup Language (“XML”)), or fixed-width or line-number-separated fields. Records can be human-readable text or non-human-readable, such as binary or compressed formats. Records need not be represented as computer files, as they can be information in read-access memory (“RAM”) or stored as a segment of a larger data set, such as the contents of a database. Because JSON is used in the examples disclosed herein, it is noted that JSON is by definition unsorted. JSON records can have parameters in different orders and still be considered equal. Embodiments employ the use of digital signatures and checksum hashes, so records must be consistently the same by all clients and in all parts of the process. This means that when using JSON format (or any unsorted format), to ensure that signing, checksumming, and matching are deterministic, all participants must treat the parameters in the same order and format (indentation, line breaks, etc.), and always achieve the same result.

[0030] The digital record has a parameter called "message" with a value of "Hello word!". The record contains the public key of the "creator" and the and a digital signature calculated using the secret private key of

[0031] In the second example below, the record contains more parameters: During creation, the creator has already assigned ownership of the record to another key pair, and then signs it as follows:

[0032]

number

[0033] The digital signature is calculated using the private key and the entire contents of the record as the message to be signed. The transaction parameter "to" is the part of the message to be digitally signed.

[0034]

number

[0035] This signature is added to the record, which is then stored or sent to its intended destination.

[0036] FIG. 3B is a flow diagram of the functionality of the distributed data records module 16 of FIG. 2 in conducting a transaction with an electronic record, according to one embodiment.

[0037] At 310, the relevant record is retrieved (i.e., extracted from storage). At 312, a new transaction, such as a transfer of ownership and / or a change to the value of one or more parameters, is added to the record. At 314, the modified record is digitally signed using all the information on the record as an input message, including all previous transactions and signatures, and including details about the current transaction. At a minimum, the information to be signed (i.e., the input message to the signing algorithm) is The message must contain at least the most recent previous signature because This is because the most recent previous signature already attests to everything that happened previously and details about the current transaction, such as modified parameter values ​​or changes in record ownership. However, in some embodiments, all previous transactions and signatures, or parameter values ​​of the record, may also be included as part of the message to be signed. The private key of the current record owner is used to calculate the digital signature. At 316, the digital signature value is added to the record as part of the current transaction.

[0038] As an example of the functionality of Figure 3B, assume a record containing one signed transaction has already been received. After adding digital signatures to a second and third transaction, the record becomes:

[0039]

number

[0040] In the example above, the record already had one transaction, which was a transfer of ownership. A second transaction was added to the record, updating the "title" parameter, and then a third transaction was added. It was added and another change of ownership took place.

[0041] Subsequent transactions can be performed multiple times by repeating the above steps, and the record increases with each successively recorded signed transaction. The value of the most recent signature is the product of a calculation that includes all previous signatures as part of the input. If someone tries to modify something anywhere in the file, the last digital signature will become unverifiable or invalid.

[0042] In the example above, the record has had multiple transfers of ownership. In this case, the current owner of the record is whoever controls the private key associated with the public key in the "to" field of the most recent transfer. In this example, it is the public / private key pair that currently controls the record.

[0043] Some embodiments allow multiple owners to own a record simultaneously. In such cases, the owner of a record may be identified by multiple addresses, or by a public key if derived addresses are not used. For example, an owner may be represented by an array of address strings separated by commas. In this case, a record may require any, some, or all of the owners to sign the transaction. To complete a transaction involving multiple owners, one owner signs the transaction, generates a digital signature, adds it to the record, and then passes the resulting record to the next owner, who signs the same transaction and adds their signature as well. A transaction is considered final after all required owners have signed it. In such embodiments, verifying a transaction requires verifying each of the multiple transactions signed by the multiple owners.

[0044] FIG. 4 is a flow diagram of the functionality of the distributed data records module 16 of FIG. 2 in matching electronic records, according to one embodiment.

[0045] At 402, an electronic record to be matched is obtained. At 404, the first (or next) transaction to be matched is selected. If the record contains multiple transactions, the process can start with any one, as no particular order is required. At 406, the signature hash value and public key string are extracted from the signed transaction of the record. These two values ​​will be used as inputs in a function to verify whether the signature is valid. To verify the signature, an embodiment must obtain the same input message that was used at the time of signing. To do this, the signature string is removed, since it was not already present at the time of signing, and all transactions made after the one that was verified at this point are removed. The functions of 404 and 406 may be performed in any order.

[0046] At 410, a signature verification algorithm is invoked / executed to verify whether the digital signature is valid, since three key pieces of information have been obtained: (1) a copy of the original signed message as it existed in the record at the time of signing; (2) a public key pair corresponding to the secret private key used to sign the signer's input message; and (3) the signature hash value recorded on the transaction. With these three pieces of information, a function can be performed to verify whether the signature was actually generated by the secret private key corresponding to the public key. Thus, embodiments avoid the need to know the private key of the creator of the record or the creator of any subsequent transactions. In one embodiment, the function used is an elliptic curve digital signature algorithm, although other algorithms could be used. The signature algorithm is assumed to be known by all participants. For example, if a record is signed and verified using an elliptic curve digital signature algorithm, the curve is assumed to be known by the program verifying the file, since the curve is not specified in the file.

[0047] If, at 410, the function verifies that the signature was indeed generated by the private key corresponding to the public key using the exact same message, at 412, the function proceeds to 414. If the verification fails, at 418 the function terminates after returning failure (i.e., the record is not valid).

[0048] At 414, if there are additional transactions to match, the function continues at 404. Otherwise, at 416, it returns that the record is valid (i.e., match successful) and the function ends.

[0049] As an example of the functionality of Figure 4, assume the following sample record with two transactions (both transfers from one record owner to another):

[0050]

number

[0051] To match the above records, the function in Figure 4 begins by checking one signed transaction. It can be either transaction (no particular order required), but in this example, the function starts with the first transaction.

[0052] 1) The public key on the first transaction is:

[0053]

number

[0054] 2) The signature hash value on the first transaction is:

[0055]

number

[0056] 3) The original message input signed in the first transaction is:

[0057]

number

[0058] These three pieces of information are used to verify that the signature was indeed generated using the private key. If the test passes, the same is done for all other transactions. However, the transaction is verified using an input message that excludes all subsequent transactions but includes all previous transactions. Thus, when testing a second transaction, details about the first transaction become part of the signed input message.

[0059] The extracted copy of the input message that matches the second transaction is represented in one example (without the signature) as follows:

[0060]

number

[0061] Address Usage In an embodiment, the address is a hash value derived from the public key or public portion of a key pair. For example, if a record has ownership transferred to an "address", If so, the recipient's public key may, in some embodiments, remain secret until a future signature is made. This optional security measure may be necessary because, depending on the digital signature algorithm used, it may be best to keep the public key secret until it is used. For ease of readability for client applications, the record may also include top-level parameters for the creator's address and the current owner's address, so the client application does not need to extract that information from the transaction history.

[0062] In embodiments using this security measure, the functionality is similar to that of Figures 3A, 3B, and 4, except that the key pair that controls the record is identified by a hash of the public key rather than the public key itself.

[0063] Transaction Rules In some embodiments, an electronic record may include metadata that dictates allowed, prohibited, or required parameter value changes. For example, a numeric parameter must always satisfy one or more mathematical comparisons, such as being equal to, less than, greater than, and / or different from one or more predefined values, another parameter, or function value. A text parameter may be required to satisfy one or more format or value comparisons, such as satisfying a format mask or regular expression, or matching a value from another field or a predefined list of allowed values. A date and time parameter may be required to have a value that is equal to, greater than, less than, or different from a specific date and time or date and time range, or the value of another date and time parameter.

[0064] Parameter value updates may be required by rules. A record may contain metadata that dictates that one or more parameters be updated in response to some event. For example, a record may require that a numeric parameter called "transfer_counter" be incremented by a predefined factor of 1 each time a transaction causes a change in record ownership; the parameter is used to impose a limit on the maximum number of transfers allowed.

[0065] The functionality for creating a record with parameter constraints is the same as creating a "basic" record, except that the record itself contains additional metadata that describes whether one or more parameters must have values ​​that satisfy any conditions, as shown in Figure 3A.

[0066] An example record with parameter constraints is as follows:

[0067]

number

[0068] In the above record, each parameter has some rules specified. The parameters "Speed" and "Ability" are read-only and cannot be modified.

[0069] The parameter "Status" can be modified, but must match a predefined list of text values.

[0070] The parameter "Transfers" is read-only and can be changed by the user. It cannot be modified graphically, but needs to be incremented by a factor of 1 each time a transaction changes owners, with a maximum value of 10. Thus, after a record has been transferred 10 times, it can no longer be transferred to a new owner, or the condition will not be met during matching.

[0071] These rules, which are realized by parameter values, are documented in a record, and their text is signed by the record creator. Therefore, another user cannot modify the rule definition, as this would invalidate the creator's signature. The rules are protected by the creator's signature.

[0072] To match records containing parameter constraints, the functionality is the same as without parameters but with one additional task: when matching a transaction, each record parameter must be compared with predefined transaction rules to check if all rule requirements are met by the transaction and return invalid if any transaction results in a parameter value that does not meet the rules defined by the record creator.

[0073] The matching functions may be performed in any order, including (1) first matching all signatures for all transactions, then matching all rules for all transactions, (2) first matching all rules for all transactions, then matching all signatures, (3) matching rule compliance and signatures for each transaction, i.e., one transaction at a time, or (4) matching signatures and rule compliance for each transaction, i.e., one transaction at a time. The order is not important as long as all signatures and all rules are matched.

[0074] FIG. 5 is a flow diagram of the functionality of the distributed data records module 16 of FIG. 2 in matching electronic records with transaction rules, according to one embodiment.

[0075] The functionality of Figure 5 includes the same functionality as Figure 4, with the following additions: At 502, the metadata is checked for any (or next) rules to check. For example, it could be a parameter with a maximum allowed value. At 504, the rule requirements are compared to the change in transaction value. For example, if the rule specifies that the maximum transaction value allowed is 10, the transaction has its value updated to 11. At 506, if a rule is violated, the record is invalid at 418. Otherwise, at 508, the functionality continues at 502.

[0076] Third-Party Validators In embodiments, when an electronic record is updated, it is often required that previous versions of the record become outdated and no longer valid. For example, if a record changes ownership, the old version held by the previous owner should become invalid. The system of records may need to be in chronological order to avoid race conditions or "double spends." This may be solved by using a third-party validator. Record creations, transactions, and verifications can be sent to a third-party service that can identify whether a record is stale or current. An online validator can verify whether a record is current or stale by maintaining a list of currently valid records. The repository (which can be a file, directory, database, or data structure) does not need to maintain a full copy of each record because it only requires a checksum of each currently valid record. The checksum can be a very short string. A record of any size can be confirmed as valid if the record's checksum exists in the validator repository.

[0077] To create a new record that will be exposed to a third-party validator, the functionality for creating a new signed record in Figure 3A is implemented. Then, after the record includes the digital signature (i.e., after 308), the record is used as an input message to calculate a checksum hash of the record using a hashing algorithm such as md5, keccak, or SHA. The checksum is then inserted into an online repository or database, which may require credentials and creation privileges. The checksum in the validator repository will indicate that the record is legitimate.

[0078] Figure 6 is a flow diagram of the functionality of distributed data records module 16 of Figure 2 when verifying records with a third-party validator, according to one embodiment. The functionality of Figure 6 is realized after receiving an updated record at the third party, including the third-party validator checksum, at 602.

[0079] At 604, it is necessary to check whether the old record receiving the update is actually valid. This is done by checking whether the checksum of the old record exists in the repository. To do this, the most recent transaction is removed from the record to get the old version of the record (i.e., the one before the transaction).

[0080] At 606, a checksum hash of the old version of the record is calculated. If the checksum of the old record exists in the repository at 608, then the old record is valid. If "NO" at 608, then the old record is invalid and the match fails. For example, the old record may have already been made outdated by another transaction that posted it first.

[0081] If 608 is YES, then at 610 the new updated record is verified using the functionality of Figures 4 and 5. This means checking whether the transaction signature is indeed signed by the private key of the record's current owner, and checking for any potential rule violations. Since the checksum of the old record has already been verified, there is no need to verify the entire transaction history again; only the new transaction needs to be verified.

[0082] If the new (updated) record is valid at 612, proceed to 614. However, if the new transaction signature is invalid or violates the rules, the match fails.

[0083] Now that the old and new records have been matched, it is safe to remove the checksum of the old file at 614 and insert the checksum of the new file at 616. Depending on the type of data repository used, 614 and 616 may be combined into a single "update" rather than a "remove and insert". If used, the database management system used may provide the ability to guarantee an atomic change, meaning that both the delete and insert are successful, or , meaning that both will fail.

[0084] Using the functionality of Figure 6, a requestor may use a third-party validator to verify whether a record is valid by performing two simple steps: (1) calculating a checksum hash of the record, and (2) requesting the third-party validator to confirm whether the checksum is valid (present) or invalid (not found).

[0085] In one embodiment, specifically, if the online validator repository is fully trusted, e.g., in a private system or a reputable distributed algorithm (e.g., open-source smart contracts on a reputable distributed system), the signature chain may be omitted from the record. The signature chain may be implicit, since all transactions are verified by the online validator before updating the repository. In other words, if a checksum digest is present in the online repository, all previous transactions must be honorable. Otherwise, If the checksum is not found in the repository, it will not be found. This embodiment eliminates the need for records to maintain a complete transaction history of the record. Systems employing this model must be designed and developed from the beginning to create and update records that exclude the transaction history as part of the record. This prevents the record file size from becoming too large. Furthermore, since the previous owners of the record are unknown, ultimate privacy is provided if desired. However, this is only beneficial if the repository (online validator) can be completely trusted, which is not always the case. Furthermore, in some use cases, the transaction history may still be needed for other reasons, such as verifying that a record has passed through expected ownership.

[0086] In some embodiments, the described system of records may operate with specific software, a single online validator, a known creator key, a known signature algorithm, and a known checksum algorithm. However, in other embodiments, a general system of records may be created, transacted, and verified using many different software (e.g., different smartphone wallets), many record creators, many algorithms used, and many validator services. Thus, in embodiments, the electronic record may include the following additional parameters to facilitate a universal framework:

[0087] (A) A parameter for the creator's HyperText Transfer Protocol ("HTTP") Uniform Resource Locator ("URL"), which allows users and client applications to verify the creator's address. For example, if a company called ACME.COM creates a record, it can post a page on the ACME.COM domain, allowing users and applications to obtain its official address or public key. The wallet app can inform the user that the record being inspected has its public portion signed using a key provided by ACME.COM.

[0088] (B) Parameters for the HTTP URL of the validator service (i.e., the record (This tells the client application where to look up the code.)

[0089] (C) Parameters for the signature algorithm used, e.g., using elliptic curves If so, a parameter indicating which curve is used so that other applications can match the file.

[0090] Some embodiments provide a security option to ensure that a creator's key can only be used once. This may be desirable if the creator's secret private key is compromised, or if users want to be confident that the creator will not have the ability to create additional records using the same key, thereby limiting supply. To accomplish this, a third-party online validator may add the creator's public key (or address, if used) to a list of previously used keys (or addresses). Before completing the creation of any new record, the third-party validator may check whether the creator's key has previously been used to create a previous record.

[0091] Figure 7 is a flow diagram of the functionality of distributed data record module 16 of Figure 2 in creating new records exposed to third-party validators with added security, according to one embodiment. The functionality of Figure 7 is in addition to the functionality disclosed above for creating new records exposed to third-party validators.

[0092] After receiving a request to insert a new record at 702, the newly created record is verified to be correctly signed (i.e., the signature is verified against the creator's public key) at 704, and the creator's key is verified to have not been used before by querying a list, directory, or database that keeps track of previously used keys or addresses at 706. 704 and 706 can be performed in any order.

[0093] At 708, the creator's key (or address) is inserted into a list, directory, or database that keeps track of previously used keys or addresses. At 710, a checksum of the new record is created. At 712, the checksum is inserted into a list, directory, or database of valid records.

[0094] Record Splitting In embodiments, records may have divisible numerical parameters. For example, a record representing an account may have a balance of points, currency, stocks, or any divisible numerical value, which may be partially allocated to other owners.

[0095] For example, Alice may control a record with a "points" parameter with a value of "10". She may execute a transaction that assigns 3 "points" to Bob (his address) and 2 "points" to Carol (her address). This transaction results in a record that allows Bob's private key to control the 3 "points", while Carol's private key controls 2 "points", and Alice's private key retains control over 5 "points". From that point on, they do not need to maintain a single copy of the record; they can each get their own copy and do what they want without the other two knowing.

[0096] Record split transactions are similar to those disclosed below, except that the transaction details include details regarding allocation of portions, for example:

[0097]

number

[0098] In the above example, the creator (5XA5AH...) is a file that can be divided and assigned to different owners. It has 10 "Kudos" which are numerical parameters that can have parts assigned to them. The creator created a record that would create a new record. The creator recorded a transaction that transferred ownership of the record to Alice (CIDK3...).

[0099] On the second transaction, Alice divides the qudos parameter and gives Bob (SDJF8...) 3 "qudos". From this point on, if this record receives a transaction signed by Alice doing something in 7 qudos or less, then the record is valid. If the record receives a transaction signed by Bob doing something in 3 qudos or less, then the record is also valid. Thus, Alice and Bob can both give continuations to this record on different paths, which ultimately results in multiple files that are different from each other but still valid.

[0100] The split functionality disclosed above is useful when double-spending is not a concern and when the system of record does not require a third-party validator. In other embodiments, double-spending resistant splits are performed and verified by a third-party repository. In these embodiments, the split would result in multiple child records that are different enough from each other to result in different checksum hash values. For example, if record A is split into two parts, two new records B and C would result, and A, B, and C would generate distinct checksum values ​​for the repository. After the split is recorded in the repository, the checksum of record A would be removed and the checksums of records B and C would be found in the repository. It is also possible to split a record into more than two parts.

[0101] 8 is a flow diagram of the functionality of distributed data records module 16 of FIG. 2 when splitting parameters into multiple child records, according to one embodiment. As an example of the functionality of FIG. 8, assume that a record parameter includes an initial supply of 10, and that initial supply becomes the minuend. If owner Alice gives 3 units to Bob, 2 units to Carol, and keeps 5 units for herself, the supply is divided so that nothing is left over:

[0102]

number

[0103] In the function of Figure 8, each portion subtracted from the original amount is called a subtrahend. Each subtrahend results in a unique child record. The original record (starting point) will be reused as the starting copy for each child record.

[0104] After obtaining the original record at 802, for each subtrahend (a portion to be subtracted from the original amount), a copy of the original record is created as a starting point at 804. At 806, a transaction is added to the child record, assigning the subtrahend to control of the public key or derived address. For example, if Alice gives Bob 3 units, a transaction is added to the child record to indicate that 3 units have been assigned to Bob's public key (or address).

[0105] At 808, the transaction from 806 is digitally signed with the secret private key that controls the record. At 810, the digital signature is added to the transaction, completing the child record.

[0106] At 812, it is determined whether there are any more subtrahends in this transaction. In other words, it is determined whether there are any more portions of the original amount being divided that still need to be recorded as child records. If "NO" at 812, the function continues at 804. If YES at 812, the function ends by returning a batch of multiple unique child records.

[0107] In an embodiment, if a transaction splits a record into multiple child records, recording them in the validator repository means that one old checksum hash will be removed and many new checksum hashes will be added. Figure 9 is a flow diagram of the functionality of distributed data record module 16 of Figure 2 when recording a split transaction in a validator repository, according to one embodiment.

[0108] A batch of records is received at 902. The next record in the batch is selected at 904. The last transaction from the selected child record is removed at 906. This is done to identify the original document (before the split transaction) so that it can be checked to see if it is a good place to start.

[0109] At 908, a checksum hash of the original record is calculated and saved for later. At 910, the child record is verified using the functionality of Figure 4 or Figure 5. The child record is invalid if the signature verification fails or if the transaction rules are violated. If the child record is invalid, at 912, the record fails. Otherwise, at 914, a checksum hash of the new child record is calculated and saved for later. The checksum of the old original record has already been saved, but a checksum of the new record is also needed.

[0110] At 916, if there are more child records in the batch, the function continues at 904. Otherwise, at 918, all child records in the batch should be unique continuations of the same original record. An embodiment needs to ensure that all child records have the same exact origin, or in other words, that the original record portion is identical in all of them. There are several ways to do this. One is to compare their text without the last transaction to ensure that they all have the same identical original portion. Another way, as used in the embodiment of FIG. 9, is to take all checksums generated in step 3 and ensure that they all match. For each child record, a checksum of their original record was created at 908. If they all generated the same checksum, they all had the exact same original record as a starting point, and the process can continue. If at least one child record has a mismatched "original record" in it, the process will fail.

[0111] At 920, it is determined whether the checksum generated at 908, now known to be the same for all child records, exists in the repository as a valid record. If "NO" at 920, the process fails. An original record is not valid if it does not have a checksum in the repository. If YES at 920, the checksum of the original record is removed from the repository at 922. At 924, the checksum of each child record is inserted into the repository.

[0112] 908, 910, 912, and 914 can be in a different order. For example, a checksum can be determined after verifying the file. 918 and 920 can be in any order. 922 and 924 should be atomic, i.e., an "all-or-nothing" scenario. All insertions and deletions must succeed, or everything must roll back to the initial state.

[0113] In an embodiment, all child records must be unique. For example, if Alice allocates 2 units to Bob, then 2 more units to Bob, then 2 more units to Bob, then the 3 subtrahends will result in 3 identical records with the same checksum. This should be taken into consideration to ensure that each child record has enough information, such as a unique partial ID number for each transaction, to ensure that all child records are unique by at least one character so that they will have unique checksums in the repository.

[0114] Additionally, in embodiments, there is an option for split transactions to be recorded one by one so that the original documents maintain a tally of the transactions. may be included. For example, if Alice gives part of a quantity to Bob, then another part to Carol, and then another part to Dave, Alice may have the remainder as a record containing a trace of all three different split transactions. This is useful if Alice needs to prove to Bob that she made a payment to Bob's address. The proof is that Alice's currently valid file shows the transaction as a payment to Bob's address. The record then becomes, in itself, a running ledger of payment history.

[0115] As an example, a record may be split into a batch of three child records. In this example, a creator (5XA5A...) creates a record with a supply of 10 "kudos" and assigns it to Alice (CIDK3...). Alice then splits the 10 kudos, assigning 3 kudos to Bob (SDJF8...), 2 kudos to Carol (S98DF...), and the remaining 5 kudos back to herself. A batch of three child records is represented in JSON format as an array of three nested JSON documents as follows:

[0116]

number

[0117] As disclosed, embodiments create a ledger database composed of standalone files. For example, Alice's bank account is a file on her personal laptop. Bob's bank account is a file on his smartphone. They are the custodians of their own ledger history, but modern cryptography makes it impossible for them to cheat. This model makes storage virtually unlimited because the majority of the data is offloaded to the consumer's own device. The control database in embodiments does not need to store everything, only a small checksum of each standalone file. Thus, a few bytes of database storage can represent and collate gigabytes of application data offloaded to the consumer's own device.

[0118] Embodiments enable the following exemplary use cases: 1. Tickets for concerts, sporting events, ferries, etc. The ticket holder is allowed in by presenting a "signed" QR code image to a scanner. The ticket cannot be used twice. The ticket cannot be forged. The ticket is useless to theft without the private key.

[0119] 2. Tickets for food, drinks, and activities at public fairs as a digital replacement for paper reams of tickets (e.g., red coupons saying "good for one person"). Prevents losses from people bringing non-legitimate tickets. People can load ticket credits onto their phone app using credit cards, PayPal, etc., eliminating the need to exchange cash.

[0120] 3. Raffle Tickets. Same as above. People buy raffle tickets and get a digital certificate that cannot be forged and only the true owner can redeem it.

[0121] 4. Guest credit at casinos, resorts or cruise ships. On plastic cards Instead of loading credits, guests may load credits onto their phones.

[0122] 5. Supply Chain Integrity. A pharmaceutical company can ship a drug to a retailer or hospital and prove that the drug is authentic by using a certificate that shows the signature chain of all planned transfers (e.g., truck, warehouse, etc.). Once sold / consumed, the certificate can no longer be used to represent another bottle with a copied serial number.

[0123] 6. Video game consumables, such as ownership of game maps or cards of famous athletes in sports video games.

[0124] 7. Digital securities trading. Decentralized, autonomous companies issue their shares in the form of distributed data records. Voting and transfers are performed by anyone who can sign with a private key. Digital assets such as data in a database or token supplies, control of online organizations, or open source projects are examples of divisible assets not regulated by the U.S. Securities and Exchange Commission.

[0125] 8. Certificate of authenticity and title of ownership issued with collectible or memorabilia item. 9. Voting system. Each voter receives a unique certificate as a digital ballot and sends a signed final vote to the ballot counter. Voting from home.

[0126] 10. Any contract that should be signed by the key holder, not a person. Embodiments have the following advantages over storing data in a traditional database or blockchain:

[0127] 1. Complete Privacy. No database instance or node can be forensically examined to analyze the current state or transaction history of a record. This is because that information is kept in separate, independent record files across the globe, likely stored on a user's personal device, not a database instance. Report queries cannot be run against the dataset. This restriction is a desirable feature in some privacy-oriented use cases.

[0128] 2. Portability. A community can create a system of record on the fly without having to develop or invest in a back-end database solution. All that is needed to publish records and execute transactions with those records is a smartphone or computer. Building a transaction system without the cost of a database enables free open source work. For example, a community could develop an open source video game and allow players to exchange in-game consumables without having to develop or invest in a back-end system for trading items.

[0129] 3. Scalability: Since information is not stored on database nodes, storage allocation is not a challenge.

[0130] 4. Availability. In traditional database models, if the database is unavailable or unreachable, transactions cannot occur. In contrast, in embodiments, transactions occur on a user's own device, and the resulting updated record (with the new transaction history and state) can be sent directly to another user.

[0131] 5. Verifiability. According to some embodiments, if someone claims to have control of a record and lists it privately or publicly for sale or use, others can quickly verify the integrity and authenticity of the record. For example, if someone posts on a website that they are selling a record such as a ticket, video game consumable, or title, potential buyers will be able to verify that the record listed for sale is authentic and that the seller actually controls it, or in other words, that it is not a fake. Because transactions must be digitally signed with a secret private key, the record owner can securely enable public inspection of the record and still maintain full control of the record. Publicly publishing a record does not expose it to the risk of being stolen. This is a significant advantage, because many times when people list digital items (such as video game consumables or event tickets) for sale on the internet, they are fake or fraudulent.

[0132] 6. Guaranteed Value. A user (or technically, a user's key pair and address) cannot be banned from the system, since there is no instance keeping track of such an entity. Furthermore, a record cannot be modified by an administrator to increase or decrease its value, since there is no instance exposed to or affected by the administrator's authority. These restrictions may be desirable protections in some use cases requiring ultimate trust. Optionally, it is easy to guarantee a finite supply of records, so that all participants (service providers and consumers) can be confident that the finite supply limit is enforced (in other words, no new additional supply items will be issued). This guarantee is possible and optional and may be useful to prevent corruption and the introduction of counterfeit goods into the supply chain. Value is guaranteed as long as the user does not lose the record or the private key that controls it.

[0133] Although several embodiments are specifically illustrated and / or described herein, it will be understood that modifications and variations of the disclosed embodiments are covered by the above teachings and within the scope of the appended claims without departing from the spirit and intended scope of the invention.

Claims

1. 1. A computer-implemented method using at least one hardware processor for verifying a digital asset by a first owner of the digital asset in response to a first transaction with a creator of the digital asset, the first owner having a corresponding first owner private key and first owner public key, the method comprising: receiving a first digital record corresponding to the digital asset, the first digital record comprising: an initial part including one or more initial parameters and a creator public key of the creator, and an additional initial digital signature calculated using the one or more initial parameters, the creator public key, and the creator private key; a first portion including one or more first parameters, the first parameters including the first transaction assigning ownership of the digital asset from the creator to the first owner, the first parameters including a first field identifying the first owner public key and the creator public key, and an additional first digital signature calculated using the initial portion, the additional initial digital signature, the first portion, and the creator private key, the method further comprising: extracting the creator public key from the first digital record; extracting the additional first digital signature from the first digital record; extracting the initial portion, the additional initial digital signature, and the first portion from the first digital record; a verification function and using the extracted creator public key, the additional first digital signature, and the initial portion to verify that the additional first digital signature was calculated using the creator private key.

2. The method of claim 1 , wherein the additional first digital signature comprises a signature hash value.

3. and performing a second transaction for the digital asset with a second owner having a second owner private key and a second owner public key, the performing including: adding a second portion to the first digital record that includes the second transaction assigning ownership of the digital asset from the first owner to the second owner and that includes second parameters that include a second field identifying the second owner public key; calculating a second digital signature using the first owner private key, the first digital record, and the second portion; creating a second digital record by adding the second digital signature over the first digital record and the second portion; and transmitting the second digital record to the second owner, the second digital record representing the digital asset.

4. 4. The method of claim 1, wherein the first digital record includes a plurality of transactions, each transaction including a new digital signature calculated using a current owner private key, and the method further includes using the verification function to verify the new digital signature for each transaction.

5. The method of any one of claims 1 to 4, wherein the first field includes a first hash value derived from the first owner public key.

6. The method of any one of claims 1 to 5, wherein at least one of the parameters is required by a rule.

7. The method of claim 6 , wherein one of the parameters is a counter that is incremented each time the digital asset changes ownership.

8. 8. The method of claim 1, wherein stored checksum hashes of the initial portion and the additional initial digital signature are stored by a third-party validator, and wherein the verifying further comprises calculating new checksum hashes of the initial portion and the additional initial digital signature and comparing the new checksum hashes to the stored checksum hashes.

9. 1. A computer-readable program storing instructions that, when executed by a processor, cause the processor to verify a digital asset by a first owner of the digital asset in response to a first transaction with a creator of the digital asset, the first owner having a corresponding first owner private key and first owner public key, the verifying comprising: receiving a first digital record corresponding to the digital asset, the first digital record comprising: an initial part including one or more initial parameters and a creator public key of the creator, and an additional initial digital signature calculated using the one or more initial parameters, the creator public key, and the creator private key; a first portion including one or more first parameters, the first parameters including the first transaction assigning ownership of the digital asset from the creator to the first owner, the first parameters including a first field identifying the first owner public key and the creator public key, and an additional first digital signature calculated using the initial portion, the additional initial digital signature, the first portion, and the creator private key, and the matching further includes: extracting the creator public key from the first digital record; extracting the additional first digital signature from the first digital record; extracting the initial portion, the additional initial digital signature, and the first portion from the first digital record; a verification function and using the extracted creator public key, the additional first digital signature, and the initial portion to verify that the additional first digital signature was calculated using the creator private key.

10. The computer-readable program of claim 9 , wherein the additional first digital signature comprises a signature hash value.

11. and performing a second transaction for the digital asset with a second owner having a second owner private key and a second owner public key, the performing including: adding a second portion to the first digital record that includes the second transaction assigning ownership of the digital asset from the first owner to the second owner and that includes second parameters that include a second field identifying the second owner public key; calculating a second digital signature using the first owner private key, the first digital record, and the second portion; creating a second digital record by adding the second digital signature over the first digital record and the second portion; and transmitting the second digital record to the second owner, the second digital record representing the digital asset.

12. 12. The computer-readable program of claim 9, wherein the first digital record includes a plurality of transactions, each transaction including a new digital signature calculated using a current owner private key, and wherein the verifying further includes using the verify function to verify the new digital signature of each transaction.

13. The computer readable program of any one of claims 9 to 12, wherein the first field includes a first hash value derived from the first owner public key.

14. The computer readable program of any one of claims 9 to 13, wherein at least one of the one or more initial parameters is required by a rule.

15. 15. The computer-readable program of claim 14, wherein one of the one or more initial parameters is a counter that is incremented each time the digital asset changes ownership.

16. 16. The computer-readable program of claim 9, wherein stored checksum hashes of the initial portion and the additional initial digital signature are stored by a third-party validator, and wherein the verifying further comprises calculating new checksum hashes of the initial portion and the additional initial digital signature and comparing the new checksum hashes to the stored checksum hashes.

17. 1. A digital asset transaction matching system, comprising: and one or more hardware processors that execute stored instructions to verify the digital asset for a first owner of the digital asset in response to a first transaction with a creator of the digital asset, the first owner having a corresponding first owner private key and first owner public key, and wherein the verifying includes: receiving a first digital record corresponding to the digital asset, the first digital record comprising: an initial part including one or more initial parameters and a creator public key of the creator, and an additional initial digital signature calculated using the one or more initial parameters, the creator public key, and the creator private key; a first portion including one or more first parameters, the first parameters including the first transaction assigning ownership of the digital asset from the creator to the first owner, the first parameters including a first field identifying the first owner public key and the creator public key, and an additional first digital signature calculated using the initial portion, the additional initial digital signature, the first portion, and the creator private key, and the matching further includes: extracting the creator public key from the first digital record; extracting the additional first digital signature from the first digital record; extracting the initial portion, the additional initial digital signature, and the first portion from the first digital record; a matching function, and using the extracted creator public key, the additional first digital signature, and the initial portion to verify that the additional first digital signature was calculated using the creator private key.

18. 20. The system of claim 17, wherein the additional first digital signature comprises a signature hash value.

19. The verifying further includes performing a second transaction for the digital asset with a second owner having a second owner private key and a second owner public key, the performing including: adding a second portion to the first digital record, the second portion including second parameters containing the second transaction assigning ownership of the digital asset from the first owner to the second owner, and including a second field identifying the second owner public key; calculating a second digital signature using the first owner private key, the first digital record, and the second portion; creating a second digital record by adding the second digital signature onto the first digital record and the second portion; and transmitting the second digital record to the second owner, the second digital record representing the digital asset.

20. 20. The system of claim 17, wherein the first digital record includes a plurality of transactions, each transaction including a new digital signature calculated using a current owner private key, and wherein the verifying further includes using the verify function to verify the new digital signature of each transaction.

Citation Information

Patent Citations

  • Electronic document storage management system, electronic document storage management method, and electronic document storage management program

    JP2006127365A

  • Apparatus, method and computer program for authenticating document image

    JP2008269591A

  • Information life cycle management system, information management server apparatus, information medium control apparatus and program

    JP2010157022A

  • Digital asset brokerage electronic payment platform

    JP2018511137A

  • System and Method for Implementing Hybrid Public-Private Block-Chain Ledgers

    US20170046526A1