[go: up one dir, main page]

US20220058622A1 - Protocols in Blockchain Environments - Google Patents

Protocols in Blockchain Environments Download PDF

Info

Publication number
US20220058622A1
US20220058622A1 US17/451,655 US202117451655A US2022058622A1 US 20220058622 A1 US20220058622 A1 US 20220058622A1 US 202117451655 A US202117451655 A US 202117451655A US 2022058622 A1 US2022058622 A1 US 2022058622A1
Authority
US
United States
Prior art keywords
blockchain
data layer
contract
server
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US17/451,655
Inventor
Paul Snow
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inveniam Capital Partners Inc
Original Assignee
Inveniam Capital Partners Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inveniam Capital Partners Inc filed Critical Inveniam Capital Partners Inc
Priority to US17/451,655 priority Critical patent/US20220058622A1/en
Assigned to INVENIAM CAPITAL PARTNERS, INC. reassignment INVENIAM CAPITAL PARTNERS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FACTOM, INC.
Assigned to FACTOM, INC. reassignment FACTOM, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SNOW, PAUL
Publication of US20220058622A1 publication Critical patent/US20220058622A1/en
Assigned to 1221 INVENIAM LLC reassignment 1221 INVENIAM LLC SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: INVENIAM CAPITAL PARTNERS, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Definitions

  • FIGS. 1-8 illustrate a Factom protocol and system, according to exemplary embodiments
  • FIGS. 9-21 are simplified illustrations of a digital contract in a blockchain environment, according to exemplary embodiments.
  • FIGS. 22-24 are more detailed illustrations of an operating environment, according to exemplary embodiments.
  • FIGS. 25-29 illustrate a blockchain data layer, according to exemplary embodiments
  • FIGS. 30-32 further illustrate the digital contract, according to exemplary embodiments
  • FIGS. 33-35 illustrate an access mechanism, according to exemplary embodiments
  • FIG. 36 illustrates a public entity, according to exemplary embodiments
  • FIGS. 37-40 illustrate contractual execution, according to exemplary embodiments
  • FIGS. 41-42 illustrate virtual execution, according to exemplary embodiments
  • FIG. 43 illustrates cryptographic affinities, according to exemplary embodiments
  • FIG. 44 illustrates virtual assignments based on the blockchain data layer, according to exemplary embodiments
  • FIGS. 45-51 illustrate an architectural scheme, according to exemplary embodiments
  • FIG. 52 illustrates compliance scheme, according to exemplary embodiments
  • FIGS. 53-59 illustrate a decisional architecture and scheme, according to exemplary embodiments
  • FIG. 60 is a flowchart illustrating a method or algorithm for executing of digital contracts, according to exemplary embodiments.
  • FIGS. 61-63 depict still more operating environments for additional aspects of the exemplary embodiments.
  • first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first device could be termed a second device, and, similarly, a second device could be termed a first device without departing from the teachings of the disclosure.
  • FIG. 1 illustrates a distributed, autonomous Factom protocol, according to exemplary embodiments.
  • the Factom protocol cost effectively separates any blockchain (such as the Bitcoin blockchain) from any cryptocurrency (such as the Bitcoin cryptocurrency).
  • the Factom protocol provides client-defined Chains of Entries, client-side validation of Entries, a distributed consensus algorithm for recording the Entries, and a blockchain anchoring approach for security.
  • Factom is a protocol designed to address these three core constraints. Factom creates a protocol for Applications that provide functions and features beyond currency transactions. Factom constructs a standard, effective, and secure foundation for these Applications to run faster, cheaper, and without bloating Bitcoin.
  • Factom Servers create Entry Blocks and Directory Blocks
  • the Factom protocol secures entries. Factom extends Bitcoin's feature set to record events outside of monetary transfers. Factom has a minimal ruleset for adding permanent Entries. Factom pushes most data validation tasks to the client side. The only validation Factom enforces are those required by the protocol to trade Factoids, convert Factoids to Entry Credits, and to ensure Entries are properly paid for and recorded.
  • Bitcoin limits transactions to those moving value from a set of inputs to a set of outputs. Satisfying the script required of the inputs (generally requiring certain signatures) is enough for the system to ensure validity. This is a validation process that can be automated, so the auditing process is easy. If Factom were used, for instance, to record a deed transfer of real estate, Factom would be used to simply record the process occurred.
  • the rules for real estate transfers are very complex. For example, a local jurisdiction may have special requirements for property if the buyer is a foreigner, farmer, or part time resident. A property might also fall into a number of categories based on location, price, or architecture. Each category could have its own rules reflecting the validation process for smart contracts. In this example, a cryptographic signature alone is insufficient to fully verify the validity of a transfer of ownership. Factom then is used to record the process occurred rather than validate transfers.
  • Bitcoin miners perform two primary tasks. First, they resolve double spends. Seeing two conflicting transactions that spend the same funds twice, they resolve which one is admissible. The second job miners perform (along with the other full nodes) is auditing. Since Bitcoin miners only include valid transactions, one that is included in the blockchain can be assumed to have been audited. A thin client does not need to know the full history of Bitcoin to see if value they receive has already been spent.
  • a thin client could trust a competent auditor they choose. After an Entry was entered into the system, an auditor would verify the Entry was valid. Auditors would submit their own cryptographically signed Entry. The signature would show that the Entry passed all the checks the auditor deemed was required. The audit requirements could in fact be part of a Factom Chain as well. In the real estate example from earlier, the auditor would double check the transfer conformed to local standards. The auditor would publicly attest that the transfer was valid.
  • Trustless auditing would be similar to Bitcoin. If a system is internally consistent with a mathematical definition of validity like Bitcoin, it can be audited programmatically. If the rules for transfer were able to be audited by a computer, then an Application could download the relevant data and run the audit itself. The application would build an awareness of the system state as it downloaded, verified, and decided which Entries were valid or not.
  • Mastercoin, Counterparty, and Colored Coins have a similar trust model. These are all client-side validated protocols, meaning transactions are embedded into the Bitcoin blockchain. Bitcoin miners do not audit them for validity; therefore, invalid transactions designed to look like transactions on these protocols can be inserted into the blockchain. Clients that support one of these protocols scan through the blockchain and find potential transactions, check them for validity, and build an interpretation of where the control of these assets lie (usually a Bitcoin address). It is up to the clients to do their own auditing under these protocols.
  • Bitcoin, land registries, and many other systems need to solve a fundamental problem: proving a negative. They prove some “thing” has been transferred to one person, and prove that thing hasn't been transferred to someone else. While proof of the negative is impossible in an unbounded system, it is quite possible in a bounded system.
  • Blockchain based cryptocurrencies solve this problem by limiting the places where transactions can be found. Bitcoin transactions can only be found in the Bitcoin blockchain. If a relevant transaction is not found in the blockchain, it is defined from the Bitcoin protocol perspective not to exist and thus the BTC hasn't been sent twice (double spent).
  • Factom there is a hierarchy of data categorization. Factom only records Entries in Chains; the various user-defined Chains have no dependencies that Factom enforces at the protocol level. This differs from Bitcoin, where every transaction is potentially a double-spend, and so it must be validated. By organizing Entries into Chains, Factom allows Applications to have smaller search spaces than if all Factom data were combined together into one ledger.
  • Factom may or may not validate Entries; Entries are instead validated client-side by users and Applications. As long as an Application understands and knows the rules a Chain should follow, then the existence of invalid Entries doesn't cause unreasonable disruption. Entries in a Chain that do not follow the rules can be disregarded by the Application.
  • An enforced sequence can be specified. Entries that do not meet the requirements of the specified enforced sequence will be rejected. However, Entries that might be rejected by the rules or the audit program will still be recorded. Users of such chains will need to run the audit program to validate a chain sequence of this type. The Factom servers will not validate rules using the audit program.
  • Factom is a decentralized way to collect, package, and secure data into the Bitcoin blockchain. Factom accomplishes this with a network of Authority servers.
  • Authority Servers are the set of Federated Servers and Audit Servers which share responsibility for different aspects of the system. The Federated Servers actually acknowledge and order entries and transactions in Factom, and Audit Servers duplicate and audit the work done by the Federated Servers and are always ready to replace a Federated Server that might go offline.
  • the design ensures decentralization. No single server is ever in control of the whole system, but only a part of the system. All servers verify and double check the work of all other servers. And no server is permanently in control of any part of the system; the responsibility for each part of Factom cycles among the Federated Servers each minute, and the role of being a Federated Server or an Audit Server shifts among the servers in the Authority Set (the set of all Authority Servers).
  • the Federated servers take a very active role in running the protocol.
  • the Federated servers each take responsibility for a subsection of the user Chains at the beginning of the creation of a Directory Block. The process works like this:
  • the Federated servers for their minute are constructing a process list for the Chains for which they are responsible, as well as constructing the Entry Blocks that will be used to create the Directory Block at the end of the 10 minutes.
  • the process list is important for broadcasting decisions made by a server to the rest of the network.
  • the servers in the authority set are re-ranked on a regular, scheduled basis.
  • the ranking is a function of support by the standing parties, who must create a profile Chain in Factom.
  • the profile contains any number of signed public address Entries.
  • the weight of a standing party's support is determined by various public addresses and entries in their profile.
  • the function computing the weight of a standing party uses a combination of many factors. Such weights may be organized in categories to further distribute influence. Factors that determine an identity's weight include factors that can be measured from the protocol, and audited by the protocol. Examples of factors that might be used to calculate weight include:
  • Tokens “staked” to a profile Chain and not moved or transferred.
  • Support may be specified by the Standing parties at any time. At regular intervals, the support of all the servers in the Authority set will be evaluated, and the membership of the authority set adjusted. The same mechanism can be used to measure support in the protocol for decisions about the protocol.
  • servers To maintain a position in the authority set, servers must continually demonstrate the ability to maintain their ability to monitor and keep up with the operation of the protocol.
  • the Federated Servers do this by simply doing their job and syncing with the end of minute operations with all other Federated Servers.
  • Performance in the protocol's ecosystem may also factor into decisions to support or not support an authority node.
  • Audit servers may have to issue a heartbeat message, that can be monitored by the network. Other solutions are possible.
  • FIG. 3 illustrates the Factom protocol as a set of layered data structures, according to exemplary embodiments.
  • Factom is constructed of a hierarchical set of blocks, with the highest being Directory Blocks. They constitute a micro-chain, consisting primarily of compact references. To keep the size small, each reference in the Directory Block is just a hash of the Entry Block plus its ChainID. These Entry Blocks have references which point to all the Entries with a particular ChainID which arrived during a time period. The Entry Block for a Chain ID is also part of a micro-chain. The bulk of the data in Factom is at the leaves, the Entries themselves. These hierarchical data structures are rendered unchangeable by Bitcoin's hashpower. They can be conceptualized as different layers. The layers and concepts in the Factom system are:
  • Entries Contains an Application's raw data or a hash of its private data
  • the Directory layer is the first level of hierarchy in the Factom system. It defines which Entry ChainIDs have been updated during the time period covered by a Directory Block. (ChainIDs identify the user's Chain of Entries; the generation of the ChainID is discussed later.) It mainly consists of a list pairing a ChainID and the Merkle root of the Entry Block containing data for that ChainID.
  • Each Entry Block referenced in the Directory Block takes up 64 bytes (two 32 byte hashes, the ChainID and the Merkle root of the Entry Block). A million such Entries would result in a set of Directory Blocks roughly 64 MB in size. If the average Entry Block had 5 Entries, 64 MB of Directory Blocks would provide the high level management of 5 million distinct Entries. Note that the exact implementation of Directory blocks my vary as we build for greater scale in the future.
  • an Application only has the Directory Blocks, it can find Entry Blocks it is interested in without downloading every Entry Block.
  • An individual Application would only be interested in a small subset of ChainIDs being tracked by Factom. This greatly limits the amount of bandwidth an individual client would need to use with Factom as their system of record. For example, an Application monitoring real estate transfers could safely ignore video camera security logs.
  • Factom servers collect Merkle roots of Entry Blocks and package them into a Directory Block.
  • Directory Block the Merkle roots are recorded into the Bitcoin blockchain. This allows the most minimum expansion of the blockchain, and still allows the ledger to be secured by the Bitcoin hash power.
  • anchoring The process of adding the Merkle root into the Bitcoin blockchain we referred to as “anchoring”. See the section “Appendix: Timestamping into Bitcoin” for further details.
  • Directory Blocks Data entered into Directory Blocks is the most expensive, from a bandwidth and storage perspective. All users of Factom wishing to find data in their Chains need the full set of Directory Blocks starting from when their Chain began.
  • Activities that increase the Directory Block size include the creation and first update of individual Chains. These activities externalize costs of Applications attempting finer-grained organization.
  • Entry Block Layer How the Entry Block Layer Organizes Hashes and Data
  • FIG. 4 illustrates entry blocks of the Factom protocol, according to exemplary embodiments.
  • Entry Blocks are the second level of hierarchy in the system. Individual Applications will pay attention to various ChainIDs. Entry Blocks are the place where an Application looking for Entries can expand its search from a ChainID to discover all possibly relevant Entries.
  • the Entry Blocks contain hashes of individual Entries.
  • the hashes of Entries both prove the existence of the data and give a key to find the Entries in a Distributed Hash Table (DHT) network. (See the below explanation of the “Factom Peer-to-Peer Network” for more detail.)
  • DHT Distributed Hash Table
  • the Entry Blocks encompass the full extent of possible Entries related to a ChainID. If an Entry is not referred to in an Entry Block, it can be assumed not to exist. This allows an Application to prove a negative, as described in the section Security and Proofs.
  • the Entry Block intentionally does not contain the Entries themselves. This allows the Entry Blocks to be much smaller than if all the data was grouped together. Separating the Entries from the Entry Blocks also allows for easier auditing of auditors.
  • An auditor can post Entries in a separate chain that approves or rejects Entries in a common chain. The audit can add reasons for rejection in its Entry. If an Application trusts the auditor, they can cross reference that the auditor has approved or rejected every Entry, without knowing what the Entry is. The Application would then only attempt to download the Entries which passed the audit. Multiple auditors could reference the same Entries, and the Entries would only exist once on the Distributed Hash Table (DHT). Entries are expected to be significantly larger than the mere 32 bytes a hash takes up. Lists of things to ignore do not have to have the full object being ignored for an Application to know to ignore it. The exact implementation of entry blocks may vary in the future in response to identified improvements possible in the protocol.
  • An Entry detailing the specifics of a land transfer would be entered into a Chain where land transfers of that type are expected to be found.
  • One or more auditors could then reference the hashes of land transfer in their own Chains, adding cryptographic signatures indicating a pass or fail.
  • the land transfer document would only need to be stored once, and it would be referenced by multiple different Chains.
  • FIG. 5 illustrates how entries are created, according to exemplary embodiments.
  • Entries are constructed by users and submitted to Factom. By hashing or encoding information, the user can ensure the privacy of Entries. The Entries can instead be plain text if encoding or obscuring the data isn't necessary.
  • Factom By recording a hash of a document, Factom can provide basic proof of publication. Presenting the document at a later time allows one to create its hash, and compare it to the hash recorded in the past.
  • FIG. 6 illustrates the complete Factom protocol and system, according to exemplary embodiments.
  • Chains in Factom are sequences of Entries that reflect the events relevant to an Application. These sequences are at the heart of Bitcoin 2.0. Chains document these event sequences and provide an audit trail recording that an event sequence occurred. With the addition of cryptographic signatures, those events would be proof they originated from a known source.
  • Chains are logical interpretations of data placed inside Directory Blocks and Entry Blocks.
  • the Directory Blocks indicate which Chains are updated, and the Entry Blocks indicate which Entries have been added to the Chain. This is somewhat analogous to how Bitcoin full clients maintain a local idea of the UTXO (Unspent Transaction Output) set.
  • the UTXO set is not (currently) in the blockchain itself, but is interpreted by the full client.
  • P2P peer-to-peer
  • Factom will have a P2P network very similar to Bitcoin's. It will consist of full nodes which have all the Factom data. The full nodes create a gossip network which will flood fill valid data throughout the network.
  • the Authority servers would be full nodes, but not all full nodes are Authority servers. This is very much like Bitcoin, where miners are full nodes, but not all full nodes are miners. This will limit the ability to DDOS the Authority servers individually. They can connect anywhere inside the network to acquire the data needed to build the data structures.
  • Factom data structures (Directory Blocks, Entry Blocks, Entries) are needed for Factom to be useful. They are public and will be preserved in two places. The Authority Servers need to maintain this data to make correct decisions about adding new Entries. Since they have this data, they can provide it as a service, as part of being a full node. As the protocol grows the protocol will be able to support partial nodes, which share only part of the Factom dataset. The partial nodes could share only the data which is relevant to their specific application. Peer discovery for the partial nodes may be handled by any sort of directory service, such as a Distributed Hash Table (DHT).
  • DHT Distributed Hash Table
  • FIG. 7 illustrates a read operation, according to exemplary embodiments.
  • This setup allows for efficient peer distribution of data even if the entire Factom dataset grows to unwieldy sizes.
  • the Directory Service also allows the data to be preserved independent of any Authority servers or full nodes. Even if all the full nodes were removed from the network, the data could still be shared by a more numerous set of parties interested in specific subsets of the data.
  • FIG. 8 further illustrates the Chain ID, according to exemplary embodiments.
  • Factom groups all Entries under a ChainID.
  • the ChainID is computed from a Chain Name.
  • the ChainID is a hash of the Chain Name.
  • the Chain Name is a byte array arbitrarily long in length. See figure below. Since the conversion from Chain Name to ChainID is a hash operation, it is a simple process. Deriving a Chain Name from a ChainID is not simple, so a lookup table would be needed.
  • the user may provide a Chain Name, or the Chain Name may be auto-generated. Regardless, that the ChainID can be shown to be a hash of something. This prevents unhashed data from being a ChainID, which is stored all the way up to the Directory Blocks. This convention eliminates insertion of obscene plaintext in the block structure.
  • the Chain Name is fairly arbitrary. It could be a random number, a string of text, or a public key. An individual Application could derive meaning from different Chain Names.
  • Factoids are the main internal scarcity token used to moderate and reward the system actors. The right to put Entries into Factom is represented by Entry Credits. Factom separates the two value-holding mechanisms, as they serve different purposes. Factoids can be converted into Entry Credits, but not vice versa.
  • Factoids are implemented in much the same way Bitcoin is implemented, allowing multiple inputs, multiple outputs, etc. where each input requires the proper signature for the transaction to be valid. Other sorts of validation including multisig is possible.
  • Factoid transactions are managed on a special Factoid Chain. This Factoid Chain is handled more restrictively than other Chains. Entries in the Factoid Chain must be valid Factoid transactions, or the Factom Servers will reject the Entries.
  • Factoids are included into the protocol to completely decentralize Factom, and to reduce bloat and spam in both Factom and Bitcoin. Factoids can be converted to Entry Credits in the protocol, and paid out to Factom servers from the protocol. Factoids budgeted but not paid out can remain in a “grant pool”. These tokens can be issued to support and develop the protocol from the protocol.
  • Factoids also help to bind consensus. If consensus is lost, then the Factoids will fall in value, incentivizing the support of the protocol.
  • the conversion of a Factoid to Entry Credits will be done via a special purchase transaction on the Factoid Chain.
  • This purchase transaction will include:
  • Entry Credits once purchased, cannot be transferred to another public key. They can only be used to pay for Entries. This greatly reduces their value to thieves, since they cannot be resold. Entry Credit private keys can be held in low security areas with minimal risk.
  • Adding Entries into Factom requires giving up a scarce resource. That resource is Entry Credits, which are derived from Factoids. Adding Entries to Factom is a two step process. First the Entry is paid for (committed). The payment accomplishes two things. It decrements the Entry Credits associated with a user's public key. In the same operation, the hash of the Entry is specified. After the Entry is paid for, the server will wait for the unhashed Entry and include it once seen (revealed).
  • One benefit is to separate the payment overhead from the recorded data. Future users will not be forced to download the data generated by payment minutia. They only need to download the minimum data to validate their system. It allows users to safely and easily ignore the payment information.
  • the transactions deducting Entry Credits will be recorded in a special Chain, similar to the Factoid Chain.
  • the Federated servers will only fill the Chain with valid Entry Credit transactions.
  • the conversion rate of Factoids to Entry Credits will be determined by first choosing a target real world value for an Entry Credit. This target will be determined by a distributed and autonomous process. At minimum it will be agreed upon by some process driven by the Authority Set. Other parties might be involved through various auditable processes in Factom to further decentralize the decision.
  • Factom's two step recording process allows for the separation of Factoids, Factom's tradable token, from the opportunity to post Entries to Factom, represented by Entry Credits.
  • Servers and other recipients of Factom Tokens can sell Entry Credits to customers for payment via Bitcoin, conventional credit card payments, etc.
  • the user would provide a public key to hold the Entry Credits.
  • the seller would convert the appropriate amount of Factoids to Entry Credits and assign those rights to the user's public key. Users could thus buy Entries Credits for Factom without ever owning the Factoids that drive the Factom servers.
  • Factom is a distributed, autonomous layer residing on top of the Bitcoin blockchain.
  • the goal of Factom is to provide the power of Bitcoin's blockchain to a nearly unlimited range of Applications and uses. Further, Factom is architected such that its users do not need any cryptocurrency whatsoever.
  • a distributed, immutable ledger is the radical, foundational, and unprecedented technology represented by the Bitcoin blockchain.
  • the dream of many is to extend the honesty inherent to an immutable ledger validated by math to chaotic, real-world interactions.
  • Factom extends the benefits of the blockchain to the real world.
  • FIGS. 9-21 are simplified illustrations of a digital contract 20 in a blockchain environment 22 , according to exemplary embodiments.
  • the digital contract 20 is sometimes referred to as a self-executing or “smart” contract between parties to a transaction.
  • the digital contract 20 may be executable code that runs on a blockchain 24 .
  • the blockchain 24 has one or more blocks 26 of data.
  • a conventional smart contract facilitates, executes, and/or enforces the terms of an agreement. Whatever the terms, the digital contract 20 may automatically execute the terms once predetermined logical rules, conditions, or code is satisfied.
  • the digital contract 20 may thus be expressed in a programming language. Smart contracts are generally known, so this disclosure will not dwell on the known aspects.
  • the blockchain 24 need only reference the digital contract 20 . That is, the actual programming language defining the digital contract 20 need not be included within or attached to the blockchain 24 . Instead, the blockchain 24 need only include or specify a contract identifier 28 and perhaps one or more contractual parameters 30 .
  • the contract identifier 28 is any digital identifying information that uniquely identifies or references the digital contract 20 .
  • the contractual parameters 30 may digitally identify the parties to the digital contract 20 , their respective performance obligations and terms, and even consideration. So, instead of the blockchain 24 carrying or conveying the actual code representing the digital contract 20 , exemplary embodiments need only specify the contract identifier 28 and perhaps the contractual parameters 30 .
  • the blocks 26 of data within the blockchain 24 are thus not burdened with the programming code that is required to execute the digital contract 20 .
  • the blockchain 24 need only include or specify the contract identifier 28 and/or the contractual parameters 30 (or their respective hash values), thus greatly simplifying the blockchain 24 and reducing its size (in bytes) and processing requirements.
  • FIG. 10 further illustrates the blockchain 24 .
  • any entity 32 may generate the blockchain 24 .
  • exemplary embodiments may be applied to any entity 32 , most readers are thought familiar with financial services. That is, suppose the entity 32 is a bank, lender, or other financial institution 34 (such as PIMCO®, CITI®, or BANK OF AMERICA®). As the reader likely understands, the financial institution 34 creates a massive amount of banking records, transaction records, mortgage instruments, and other private data 36 . The financial institution 34 thus has a financial server 38 executing a software application 40 that encrypts its private data 36 . While the software application 40 may use any encryption scheme, FIG. 2 illustrates the private blockchain 24 .
  • the software application 40 causes the financial server 38 to cryptographically hash the private data 36 and to integrate the resulting hash value(s) into the block 26 of data within the private blockchain 24 .
  • the software application 40 may further cause the blockchain 24 to include the contract identifier 28 and the contractual parameters 30 .
  • the contract identifier 28 and the contractual parameters 30 may be encoded as data or information contained within the block 26 of data, or the contract identifier 28 and the contractual parameters 30 may be data or information that is separate from the block 26 of data (such as informational content in metadata or in a packet header/body).
  • the blockchain 24 need not include the programming code representing the digital contract 20 .
  • the blockchain 24 need only specify the contract identifier 28 and/or the contractual parameters 30 .
  • FIG. 11 illustrates a contract server 42 .
  • the contract server 42 may be responsible for executing the digital contract 20 referenced by the contract identifier 28 and/or the contractual parameters 30 .
  • the financial server 38 may send the blockchain 24 to the network address (e.g., Internet protocol address) associated with the contract server 42 .
  • the contract server 42 inspects the blockchain 24 to identify the contract identifier 28 and/or the contractual parameters 30 .
  • the contract server 42 may then consult an electronic database 44 of contracts.
  • the database 44 of contracts has entries that map or relate the contract identifier 28 to its corresponding digital contract 20 .
  • the database 44 of contracts may identify a computer file 46 that contains the programming language representing the digital contract 20 identified by the contract identifier 28 . So, once the digital contract 20 is determined, the contract server 42 may retrieve and locally execute the computer file 46 , perhaps based on parameters defined or described by the contractual parameters 30 (such as party names, parameters associated with their respective performance obligations and terms, and consideration). Again, then, the blockchain 24 need only reference the digital contract 20 (using the contract identifier 28 and/or the contractual parameters 30 ). The actual execution of the digital contract 20 may be offloaded or outsourced to the contract server 42 .
  • FIG. 12 also illustrates the contract server 42 .
  • the contract server 42 may only manage the execution of the digital contract 20 referenced by the contract identifier 28 and/or the contractual parameters 30 . That is, the contract server 42 may outsource the execution of the digital contract 20 to a vendor, a supplier, or a subcontractor process.
  • the contract server 42 inspects the blockchain 24 to identify the contract identifier 28 and/or the contractual parameters 30 . The contract server 42 may then consult the database 44 of contracts.
  • the database 44 of contracts has entries that map or relate the contract identifier 28 to a network resource 50 that processes and/or executes the digital contract 20 as a service (perhaps as a software-as-a-service or “SAAS”).
  • the network resource 50 may thus be a remote server, a virtual machine, a web page or web server, a client device/machine, or other resource that executes the digital contract 20 .
  • the contract server 42 may retrieve and send the contractual parameters 30 to the network resource 50 for execution.
  • the network resource 50 (perhaps operated on behalf of a third party) applies the parameters defined or described by the contractual parameters 30 to the programming code representing the digital contract 20 .
  • the contract identifier 28 and the contractual parameters 30 need only be informational content in the private blockchain 24 .
  • the contract identifier 28 is any digital identifying information that uniquely identifies or references the digital contract 20 .
  • the contract identifier 28 may be an alphanumeric combination that uniquely identifies a vendor and/or version of the digital contract 20 and/or a processor or executioner of the digital contract 20 .
  • the contract identifier 28 may be expressed as a unique hash value that is included within, or specified by, the private blockchain 24 .
  • the contractual parameters 30 may identify the parties to the digital contract 20 , their respective performance obligations and terms, and consideration.
  • FIG. 13 illustrates consideration.
  • the parties to the digital contract 20 may be compensated (perhaps according to the contractual parameters 30 describing consideration).
  • the contract server 42 and/or the network resource 50 may also be compensated. While there are many compensation schemes, this disclosure mostly explains crypto-compensation. That is, when the digital contract 20 successfully executes, perhaps the parties exchange, trade, or transfer cryptographic currencies.
  • the financial institution 34 creates its own cryptographic coinage 60 in the blockchain environment 22 .
  • the entity 32 in other words, may establish entity-specific electronic tokens 62 to access and/or to use the blockchain environment 22 .
  • the private blockchain 24 represents hashes of the financial institution's private data 36
  • the private blockchain 24 may be considered a private resource or property of the financial institution 34 . That is, the private blockchain 24 is controlled by, or affiliated with, the financial institution 34 , so the financial institution 34 may control who adds and/or writes to the private blockchain 24 and who reads, accesses, or receives the private blockchain 24 .
  • the entity-specific tokens 62 may thus be control mechanisms. While the entity-specific tokens 62 may have any functional scheme, FIG. 5 illustrates a private credit token 64 and a private tradeable token 66 .
  • the entity's credit token 64 may be acquired and then spent or burned when accessing the financial institution's private blockchain 24 .
  • the entity's credit token 64 in other words, represents any credit-based entry system associated with the financial institution's private blockchain 24 .
  • the tradeable token 66 may be generated for transfer among others.
  • the entity 32 generates the tradeable token 66 to be traded and/or spent.
  • the tradeable token 66 in other words, may be considered as the entity's specific, private currency to be used as the entity 32 governs.
  • Exemplary embodiments may thus trade or exchange crypto-compensation. That is, when the digital contract 20 successfully executes, perhaps the parties exchange, trade, or transfer the credit token 64 and/or the tradeable token 66 . When any party, or all the parties, perform their assigned role in the transaction, value is given via the credit token 64 and/or the tradeable token 66 . Similarly, the contract server 42 and/or the network resource 50 may also be compensated via the credit token 64 and/or the tradeable token 66 , perhaps as a “mining” fee for executing the digital contract 20 .
  • the digital contract 20 is thus a computer program or code that verifies and/or enforces negotiation and/or performance of a contract between parties.
  • One fundamental purpose of so-called smart contracts is to integrate the practice of contract law and related business practices with electronic commerce protocols between parties or devices via the Internet.
  • Smart contracts may leverage a user interface that provides one or more parties or administrators access, which may be restricted at varying levels for different people, to the terms and logic of the contract.
  • Smart contracts typically include logic that emulates contractual clauses that are partially or fully self-executing and/or self-enforcing.
  • Smart contracts are digital rights management (DRM) used for protecting copyrighted works, financial cryptography schemes for financial contracts, admission control schemes, token bucket algorithms, other quality of service mechanisms for assistance in facilitating network service level agreements, person-to-person network mechanisms for ensuring fair contributions of users, and others.
  • Smart contract infrastructure can be implemented by replicated asset registries and contract execution using cryptographic hash chains and Byzantine fault tolerant replication. For example, each node in a peer-to-peer network or blockchain distributed network may act as a title registry and escrow, thereby executing changes of ownership and implementing sets of predetermined rules that govern transactions on the network. Each node may also check the work of other nodes and in some cases, as noted above, function as miners or validators.
  • FIG. 14 further illustrates the contract server 42 .
  • the contract server 42 may generate data records 70 in a blockchain data layer 72 , as later paragraphs will explain.
  • the contract server 42 may thus be termed or called a data layer server 74 .
  • the blockchain data layer 72 may also add another layer of cryptographic hashing to generate a public blockchain 76 .
  • the blockchain data layer 72 acts as a validation service 78 that validates the digital contract 20 was executed.
  • the blockchain data layer 72 may generate a cryptographic proof 80 .
  • the public blockchain 76 thus publishes the cryptographic proof 80 as a public ledger 82 that establishes chains of blocks of immutable evidence.
  • FIGS. 15-16 illustrate examples of the entity-specific tokens 62 .
  • a third-party 90 wishes to receive, read, write to, or otherwise access the financial institution's private blockchain 24 and/or the digital contract 20 .
  • exemplary embodiments may require that the third-party 90 spend or burn one or more of the credit tokens 64 .
  • the credit token 64 may thus control access to the financial institution's private blockchain 24 and/or the digital contract 20 .
  • vendors, service providers, individual users, and other third-parties 60 may wish to access the hash values of the private data 36 contained within the financial institution's private blockchain 24 .
  • the third party may want to access, inspect, execute, or verify the digital contract 20 .
  • the financial institution 34 may thus require that the third-party 90 redeem the entity's credit token(s) 50 before granting read, write, or access permission to the digital contract 20 .
  • the financial institution 34 may additionally or alternatively require redemption of the entity's credit token(s) 64 for using protocols, rules, and application programming interfaces (“APIs”) associated with the private blockchain 24 and/or the digital contract 20 .
  • APIs application programming interfaces
  • the financial institution 34 may thus establish or issue its own credit tokens 64 and even govern their usage restrictions 92 and value 94 , as later paragraphs will explain.
  • FIG. 16 illustrates the tradeable token 66 .
  • the financial institution 34 may establish the tradeable token 66 and also govern its usage restrictions 92 and value 94 .
  • the tradeable token 66 in other words, is a cryptocurrency or “coin.”
  • the tradeable token 66 may be earned. That is, anyone (such as the third party 90 ) may earn the tradeable token 66 according to the usage restrictions 92 .
  • the data layer server 74 earns the entity's tradeable token(s) 52 in exchange for processing and/or managing an execution of the digital contract 20 .
  • the data layer server 74 may additionally or alternatively earn the entity's tradeable token(s) 52 in exchange for the validation service 78 .
  • a provider of the validation service 78 is paid, or earns, the entity's tradeable token(s) 52 for processing or executing the digital contract 20 and/or for cryptographically hashing the proof 80 of the digital contract 20 .
  • the provider of the validation service 78 may also be paid in the entity's tradeable token(s) 52 for publishing the proof 80 .
  • the tradeable token 66 may thus be transferred as currency according to the usage restrictions 92 and its value 94 .
  • FIG. 17 illustrates transaction records 100 .
  • the transaction record 100 may be generated.
  • the transaction record 100 may then be documented in the blockchain environment 22 .
  • the entity-specific tokens 62 may be addressable. That is, the credit token 64 and the tradeable token 66 may be uniquely associated with a common, single cryptographic address 102 .
  • the cryptographic address 102 may represent an owner or holder (e.g., the entity 32 or the third-party 90 ).
  • the entity-specific tokens 62 may be assigned or associated with the cryptographic address 102 .
  • the cryptographic address 102 may then be received by, and propagated within, the blockchain data layer 72 to identify the corresponding data records 70 .
  • the blockchain data layer 72 may even hash the cryptographic address 102 as the cryptographic proof 80 of the transaction records 100 .
  • Exemplary embodiments thus publicly document the transaction records 100 involving the entity-specific tokens 62 , based on the single cryptographic address 102 .
  • the blockchain data layer 72 publishes ownership and transfer proofs 80 of the credit token 64 and the tradeable token 66 based on the transaction records 100 associated with the single cryptographic address 102 .
  • the transaction records 100 may also document the digital contract 20 . Whenever the digital contract 20 is specified, generated, processed, or even executed, the transaction record 100 may be generated. The transaction record 100 may then be documented in the blockchain environment 22 .
  • the entity-specific tokens 62 may be earned as payment according to the executable terms of the digital contract 20 .
  • the entity-specific tokens 62 may additionally or alternatively be earned or awarded for processing or executing a portion of, or entirely, the digital contract 20 .
  • the entity-specific tokens 62 may thus be uniquely associated with a party to the digital contract 20 and/or with a service provider/processor of the digital contract 20 .
  • the transaction record 100 may document the parties to the digital contract 20 , a transactional description describing a transaction governed by the digital contract 20 , and any financial or performance terms.
  • the transaction record 100 may thus document an offer, an acceptance, a consideration, and terms.
  • the single cryptographic address 102 may represent a party to the digital contract 20 and/or with a service provider/processor of the digital contract 20 .
  • the entity-specific tokens 62 may be received by, and propagated within, the blockchain data layer 72 to identify the corresponding data records 70 .
  • the blockchain data layer 72 may thus publish the proofs 80 of the digital contract 20 and any entity-specific tokens 62 paid or exchanged, according to the transaction records 100 .
  • FIG. 18 illustrates a filling station 110 in the blockchain environment 22 .
  • the filling station 110 allows the third party 90 to replenish or fill an account 112 .
  • the third-party entity 32 may be required to spend the tokens 62 to access the financial institution's private blockchain 24 and/or the digital contract 20 .
  • the tokens 62 may also be earned or transferred according to the terms of the digital contract 20 .
  • the account 112 may thus be established, and the account 112 maintains a monetary or numerical balance 114 of the tokens 62 . As the tokens 62 are spent, traded, or redeemed, the account 112 may need filling to continue using or accessing the blockchain 24 and/or the digital contract 20 .
  • the filling station 110 may access both the transaction records 100 and the blockchain data layer 72 . Because the blockchain data layer 72 may document the data records 70 using the single cryptographic address 102 , the single cryptographic address 102 may serve as a common reference or query parameter with the entity's transaction records 100 . The filling station 110 , in other words, may use the single cryptographic address 102 to identify the transaction records 100 that correspond to the blockchain data layer 72 . The filling station 110 may thus present a transaction summary of the account 112 and the balance 114 . Because blockchain data layer 72 may track and/or prove the transaction records 100 , exemplary embodiments may search the blockchain data layer 72 for the single cryptographic address 102 .
  • the filling station 110 may query the blockchain data layer 72 for the single cryptographic address 102 , and the blockchain data layer 72 may identify the transaction records 100 that match the single cryptographic address 102 .
  • exemplary embodiments may query the blockchain data layer 72 for the contract identifier 28 and/or the contractual parameters 30 , and the blockchain data layer 72 may identify the transaction records 100 that match the contract identifier 28 and/or the contractual parameters 30 .
  • the filling station 110 may then process the transaction records 100 to provide the transaction summary of the account 112 , the balance 114 , and any other transactional data.
  • the filling station 110 may also allow the user to replenish an amount or value of the tokens 62 , thus allowing the user to continue exchanging the tokens 62 for access to the private blockchain 24 , the blockchain data layer 72 , and/or the digital contract 20 .
  • the filling station 110 may thus be an access mechanism to the blockchain data layer 72 .
  • FIG. 19 further illustrates the filling station 110 .
  • the blockchain data layer 72 may have its own cryptocoinage 120 . That is, a provider of the blockchain data layer 72 may establish its cryptocoinage 120 for accessing and/or using the validation service 78 .
  • the cryptocoinage 120 may thus include a credit token and a tradeable token (not shown for simplicity).
  • the credit token may be required to enter or access the blockchain data layer 72 to receive the validation service 78 , and the tradeable token may be earned for participating in the validation service 78 .
  • the filling station 110 may use the single cryptographic address 102 .
  • the third party 90 may use the single cryptographic address 102 to access the entity's cryptocoinage 60 and the blockchain data layer's cryptocoinage 120 . Exemplary embodiments may thus identify and track the transaction records 100 and the blockchain data layer's cryptocoinage 120 using the same, single cryptographic address 102 .
  • Exemplary embodiments thus present elegant solutions.
  • Any entity 32 may create its own private blockchain 24 and offer or present the digital contract 20 for self-execution.
  • the entity 32 may then establish or create the tokens 62 for using, accessing, or processing the entity's private blockchain 24 and/or the digital contract 20 .
  • the tokens 62 may have the value 94 , thus fostering a market for entity-specific tradeable assets in the blockchain environment 22 .
  • the tradable value 94 of the tokens 62 may thus drive demand to use the digital contracts 20 .
  • Exemplary embodiments may thus provide a two-token system that isolates any use of the entity's private blockchain 24 from the entity's tradeable token 66 .
  • the credit token 64 may be associated with the third party 90 (perhaps via the single cryptographic address 102 ), thus allowing the third party 90 to retrieve the account balance 114 from the filling station 110 and sign entries or other transactions.
  • the third party 90 may also use the single cryptographic address 102 to access the blockchain data layer 72 via the filling station 110 .
  • the filling station 110 is a single resource or destination (such as a secure website) for managing a user's cryptographic coinage 60 and defining payments according to the digital contract 20 .
  • FIG. 20 expands the entity concept.
  • multiple, different entities 32 a - d provide their respective software applications 40 a - d that encrypt their respective private data 36 a - d as their individual, private blockchains 24 a - d .
  • FIG. 20 illustrates a simple example of four (4) different entities 32 a - d .
  • First entity 32 a again represents the bank, lender, or other financial institution 34 that encrypts its private data 36 a as its private blockchain 24 a .
  • Second entity 32 b represents any retailer 122 (such as HOME DEPOT®, KOHL'S®, or WALMART®) that encrypts its private data 36 b as its private blockchain 24 b .
  • Third entity 32 c represents a web site 124 offering a service 126 (such as AMAZON®, NETFLIX®, or GOOGLE®) that encrypts its private data 36 c as the private blockchain 24 c .
  • Fourth entity 32 d represents an automotive or other manufacturer or supplier 128 (such as FORD®, TOYOTA®, or DELPHI®) that encrypts its private data 36 d as the private blockchain 24 d .
  • the entities 32 a - d thus use their respective software applications 40 a - d to provide a first layer 130 of cryptographic hashing.
  • the entities 32 a - d may also use their respective software applications 40 a - d to issue their own private and entity-specific cryptocoinage 60 a - d .
  • Each entity 32 a - d may then send their respective private blockchains 24 a - d to the blockchain data layer 72 , and the blockchain data layer 72 may add a second layer 132 of cryptographic hashing.
  • the blockchain data layer 72 thus generates the public blockchain 76 as a public resource or utility for record keeping.
  • Any entity 32 that subscribes to the blockchain data layer 72 may thus access, read, and/or store the proofs 80 of its private data 36 to the public blockchain 76 .
  • the blockchain data layer 72 acts as the public ledger 82 that establishes chain of blocks of immutable evidence.
  • each entity 32 a - d may establish its own private cryptocoinage 60 a - d .
  • Each entity's private software application 40 a - d may create and/or issue its cryptocoinage 60 a - d (such as respective entity-specific tokens 62 above explained).
  • Each entity 32 a - d may also establish its own usage restrictions and value (illustrated as reference numerals 92 and 94 in FIGS. 15-16 ) according to rules governing ownership, trade, and other policies.
  • Each entity 32 a - d may generate and sends its respective transaction records 100 a - d which reference each entity's single cryptographic address 102 a - d to the blockchain data layer 72 for documentation.
  • each entity 32 a - d may also specify their respective digital contract 20 a - d .
  • the blockchain data layer 72 may coordinate execution of any digital contract 20 a - d .
  • the blockchain data layer 72 may inspect any private blockchain 24 a - d and identify any information associated with the digital contract 20 a - d .
  • the blockchain data layer 72 may then execute the digital contract 20 a - d , and/or the blockchain data layer 72 may identify a service provider that executes the digital contract 20 a - d .
  • the blockchain data layer 72 may manage the execution of the digital contracts 20 a - d according to a subcontractor relationship. A provider of the blockchain data layer 72 may then be compensated via any entity's cryptocoinage 60 a - d and/or the blockchain data layer's cryptocoinage 120 .
  • the filling station 110 may be agnostic. Any user (such as the entity 32 a - d or the third party 90 ) may authenticate to the filling station 110 . Once authenticated, the user need only enter or provide the correct single cryptographic address 102 a - d to access the entity's private cryptocoinage 60 a - d , the blockchain data layer's cryptocoinage 120 , and/or the entity's digital contract 20 a - d .
  • the single cryptographic address 102 a - d allows the user to access her account 112 and balance 114 for the entity's private cryptocoinage 60 a - d , the blockchain data layer's cryptocoinage 120 , and/or the entity's digital contract 20 a - d .
  • the user may thus easily conduct transactions between the entity's private cryptocoinage 60 a - d and the blockchain data layer's cryptocoinage 120 .
  • the entity 32 a - d may fuel or replenish its supply of the blockchain data layer's cryptocoinage 120 , perhaps by redeeming or exchanging the entity's private cryptocoinage 60 a - d (perhaps according to an exchange rate or other value).
  • the provider of the blockchain data layer 72 may fuel or replenish its supply of the entity's private cryptocoinage 60 a - d by purchasing or exchanging the blockchain data layer's cryptocoinage 120 .
  • the provider of the blockchain data layer 72 may also earn the entity's private cryptocoinage 60 a - d by processing any portion of, or by executing, the entity's digital contract 20 a - d .
  • the respective private blockchains 24 a - d and the blockchain data layer 72 would contain the data records 70 confirming the processing and/or execution of the digital contract 20 a - d , so the transaction records 100 a - d thus propagate into the blockchain data layer 72 for public disclosure via the public blockchain 76 .
  • Any user that successfully authenticates to the filling station 110 may access a full accounting of his or her digital cryptocoinages 60 a - d and/or 120 and any digital contracts 20 , perhaps according to the respective single cryptographic address 102 a - d .
  • the user may thus buy, sell, trade, and/or redeem any entity-specific cryptocoinages 20 a - d and/or 90 , all by accessing the filling station 110 .
  • the user may buy or sell any entity's coins or replenish credits, all by accessing the filling station 110 .
  • the user may also track performance or obligations defined by the digital contracts 20 a - d and any payments or consideration received or paid.
  • the filling station 110 is another service offered by the blockchain data layer 72 . Because all the transaction records 100 in the blockchain data layer 72 are identifiable (perhaps via the single cryptographic address 102 ), the filling station 110 can present the summary of the user's credit tokens and tradeable tokens. The filling station 110 may thus provide a single or universal electronic wallet for all of a user's digital coinage and credits, regardless of the issuing entity 32 a - d . The user may thus only perform a single authentication to the blockchain data layer 72 and access all her cryptofunds.
  • FIGS. 22-24 are more detailed illustrations of an operating environment, according to exemplary embodiments.
  • FIG. 22 illustrates an entity server 140 communicating with the data layer server 74 via a communications network 142 .
  • the entity server 140 operates on behalf of the entity 32 and generates the entity's private blockchain 24 (such as the financial server 38 explained with reference to FIGS. 10-19 ).
  • the entity server 140 in other words, has a processor 144 (e.g., “ ⁇ P”), application specific integrated circuit (ASIC), or other component that executes the entity's software application 40 stored in a local memory device 146 .
  • the entity server 140 has a network interface to the communications network 142 , thus allowing two-way, bidirectional communication with the data layer server 74 .
  • the entity's software application 40 includes instructions, code, and/or programs that cause the entity server 140 to perform operations, such as calling, invoking, and/or applying an electronic representation of a hashing algorithm 148 to the entity's private data 36 .
  • the hashing algorithm 148 thus generates one or more hash values 150 , which are incorporated into the entity's private blockchain 24 .
  • the entity's software application 40 then instructs the entity server 140 to send the private blockchain 24 via the communications network 142 to a network address (e.g., Internet protocol address) associated with the data layer server 74 .
  • a network address e.g., Internet protocol address
  • the digital contract 20 may also be identified.
  • the entity's software application 40 may also instruct the entity server 140 to specify the digital contract 20 as informational content in the private blockchain 24 .
  • the digital contract 20 may be identified by the contract identifier 28 and contractual parameters 30 .
  • the contract identifier 28 is any digital identifying information that uniquely identifies or references the digital contract 20 .
  • the contract identifier 28 may be an alphanumeric combination that uniquely identifies a vendor and/or version of the digital contract 20 and/or a processor or executioner of the digital contract 20 .
  • the contract identifier 28 may also be one of the unique hash values 150 (perhaps generated by the hashing algorithm 148 ) that is included within, or specified by, the private blockchain 24 .
  • the contractual parameters 30 may identify the parties to the digital contract 20 , their respective performance obligations and terms, and consideration.
  • FIG. 23 illustrates the blockchain data layer 72 .
  • the data layer server 74 has a processor 152 (e.g., “ ⁇ P”), application specific integrated circuit (ASIC), or other component that executes a data layer application 154 stored in a local memory device 156 .
  • the data layer server 74 has a network interface to the communications network 142 .
  • the data layer application 154 includes instructions, code, and/or programs that cause the data layer server 74 to perform operations, such as receiving the entity's private blockchain 24 , the digital contract 20 , the contract identifier 28 , and/or the contractual parameters 30 .
  • the data layer application 154 then causes the data layer server 74 to generate the blockchain data layer 72 .
  • the data layer application 154 may optionally call, invoke, and/or apply the hashing algorithm 148 to the data records 70 contained within the blockchain data layer 72 .
  • the data layer application 154 may also generate the public blockchain 76 .
  • the data layer application 154 may thus generate the public ledger 82 that publishes, records, or documents the digital contract 20 , the contract identifier 28 , and/or the contractual parameters 30 . Indeed, if the data layer application 154 processes and/or manages the digital contract 20 , the data records 70 may document any processing or execution, and the data layer application 154 may optionally apply the hashing algorithm 148 to the data records 70 to generate the cryptographic proof 80 of the digital contract 20 .
  • FIG. 24 illustrates additional publication mechanisms.
  • the blockchain data layer 72 may be published in a decentralized manner to any destination.
  • the data layer server 74 may generate and distribute the public blockchain 76 (via the communications network 142 illustrated in FIGS. 22-23 ) to one or more federated servers 160 . While there may be many federated servers 160 , for simplicity FIG. 24 only illustrates two (2) federated servers 160 a and 160 b .
  • the federated servers 160 a and 160 b provide a service and, in return, they are compensated according to a compensation or services agreement or scheme.
  • Exemplary embodiments include still more publication mechanisms.
  • the cryptographic proof 80 and/or the public blockchain 76 may be sent (via the communications network 142 illustrated in FIGS. 22-23 ) to a server 162 .
  • the server 162 may then add another, third layer of cryptographic hashing (perhaps using the hashing algorithm 148 ) and generate another or second public blockchain 164 .
  • the server 162 and/or the public blockchain 164 may be operated by, or generated for, any entity, exemplary embodiments may integrate another cryptographic coin mechanism. That is, the server 162 and/or the public blockchain 164 may be associated with BITCOIN®, ETHEREUM®, RIPPLE®, or other cryptographic coin mechanism.
  • the cryptographic proof 80 and/or the public blockchain 76 may be publicly distributed and/or documented as evidentiary validation. The cryptographic proof 80 and/or the public blockchain 76 may thus be historically and publicly anchored for public inspection and review.
  • Exemplary embodiments may be applied regardless of networking environment. Exemplary embodiments may be easily adapted to stationary or mobile devices having cellular, wireless local area network (WI-FI®), near field, and/or BLUETOOTH® capability. Exemplary embodiments may be applied to mobile devices utilizing any portion of the electromagnetic spectrum and any signaling standard (such as the IEEE 802 family of standards, GSM/CDMA/TDMA or any cellular standard, and/or the ISM band). Exemplary embodiments, however, may be applied to any processor-controlled device operating in the radio-frequency domain and/or the Internet Protocol (IP) domain.
  • IP Internet Protocol
  • Exemplary embodiments may be applied to any processor-controlled device utilizing a distributed computing network, such as the Internet (sometimes alternatively known as the “World Wide Web”), an intranet, a local-area network (LAN), and/or a wide-area network (WAN).
  • Exemplary embodiments may be applied to any processor-controlled device utilizing power line technologies, in which signals are communicated via electrical wiring. Indeed, exemplary embodiments may be applied regardless of physical componentry, physical configuration, or communications standard(s).
  • Exemplary embodiments may utilize any processing component, configuration, or system.
  • Any processor could be multiple processors, which could include distributed processors or parallel processors in a single machine or multiple machines.
  • the processor can be used in supporting a virtual processing environment.
  • the processor could include a state machine, application specific integrated circuit (ASIC), programmable gate array (PGA) including a Field PGA, or state machine.
  • ASIC application specific integrated circuit
  • PGA programmable gate array
  • any of the processors execute instructions to perform “operations,” this could include the processor performing the operations directly and/or facilitating, directing, or cooperating with another device or component to perform the operations.
  • Exemplary embodiments may packetize.
  • the entity server 140 and the data layer server 74 may collect, send, and retrieve information.
  • the information may be formatted or generated as packets of data according to a packet protocol (such as the Internet Protocol).
  • the packets of data contain bits or bytes of data describing the contents, or payload, of a message.
  • a header of each packet of data may contain routing information identifying an origination address and/or a destination address.
  • FIGS. 25-29 further illustrate the blockchain data layer 72 , according to exemplary embodiments.
  • the blockchain data layer 72 chains hashed directory blocks 170 of data into the public blockchain 76 .
  • the blockchain data layer 72 accepts input data (such as the entity's private blockchain 24 illustrated in FIGS. 9-21 ) within a window of time. While the window of time may be configurable from fractions of seconds to hours, exemplary embodiments use ten (10) minute intervals.
  • FIG. 25 illustrates a simple example of only three (3) directory blocks 170 a -c of data, but in practice there may be millions or billions of different blocks.
  • Each directory block 184 of data is linked to the preceding blocks in front and the following or trailing blocks behind. The links are created by hashing all the data within a single directory block 184 and then publishing that hash value within the next directory block.
  • published data may be organized within chains 172 .
  • Each chain 172 is created with an entry that associates a corresponding chain identifier 174 .
  • Each entity 32 a - f in other words, may have its corresponding chain identifier 174 a - d .
  • the blockchain data layer 72 may thus track any data associated with the entity 32 a - f with its corresponding chain identifier 174 a - d .
  • New and old data in time may be associated with, linked to, identified by, and/or retrieved using the chain identifier 174 a - d .
  • Each chain identifier 174 a - d thus functionally resembles a directory 176 a - d (e.g., files and folders) for organized data entries according to the entity 32 a - f.
  • FIG. 27 illustrates the data records 70 in the blockchain data layer 72 .
  • data is received as an input (such as the private blockchain 24 and/or the digital contract 20 illustrated in FIGS. 9-21 )
  • data is recorded within the blockchain data layer 72 as an entry 180 . While the data may have any size, small chunks (such as 10 KB) may be pieced together to create larger file sizes.
  • One or more of the entries 180 may be arranged into entry blocks 182 representing each chain 172 according to the corresponding chain identifier 174 . New entries for each chain 172 are added to their respective entry block 182 (again perhaps according to the corresponding chain identifier 174 ).
  • all the entry blocks 182 are then placed within in the directory block 184 generated within or occurring within a window 186 of time. While the window 186 of time may be chosen within any range from seconds to hours, exemplary embodiments may use ten (10) minute intervals. That is, all the entry blocks 182 generated every ten minutes are placed within in the directory block 184 .
  • FIG. 28 illustrates cryptographic hashing.
  • the data layer server 74 executes the data layer application 154 to generate the data records 70 in the blockchain data layer 72 .
  • the data layer application 154 may then instruct the data layer server 74 to execute the hashing algorithm 148 on the data records 70 (such as the directory block 184 illustrated in FIGS. 25-27 ).
  • the hashing algorithm 148 thus generates one or more hash values 150 as a result, and the hash values 150 represent the hashed data records 70 .
  • the blockchain data layer 72 may apply a Merkle tree analysis to generate a Merkle root (representing a Merkle proof 80 ) representing each directory block 184 .
  • the blockchain data layer 72 may then publish the Merkle proof 80 (as this disclosure explains).
  • FIG. 29 illustrates hierarchical hashing.
  • the entity's private software application 40 provides the first layer 130 of cryptographic hashing and generates the private blockchain 24 .
  • the entity 32 then sends its private blockchain 24 (perhaps referencing or specifying the digital contract 20 ) to the data layer server 74 .
  • the data layer server 74 executing the data layer application 154 , generates the blockchain data layer 72 .
  • the data layer application 154 may optionally provide the second or intermediate layer 132 of cryptographic hashing to generate the cryptographic proof 80 .
  • the data layer application 154 may also publish any of the data records 70 as the public blockchain 76 , and the cryptographic proof 80 may or may not also be published via the public blockchain 76 .
  • the public blockchain 76 and/or the cryptographic proof 80 may be optionally sent to the server 162 as an input to yet another public blockchain 164 (again, such as BITCOIN®, ETHEREUM®, or RIPPLE®) for a third layer 188 of cryptographic hashing and public publication.
  • the first layer 130 and the second layer 132 thus ride or sit atop a conventional public blockchain 164 (again, such as BITCOIN®, ETHEREUM®, or RIPPLE®) and provide additional public and/or private cryptographic proofs 80 .
  • Exemplary embodiments may use any hashing function. Many readers may be familiar with the SHA-256 hashing algorithm.
  • the SHA-256 hashing algorithm acts on any electronic data or information to generate a 256 -bit hash value as a cryptographic key. The key is thus a unique digital signature.
  • hashing algorithms There are many hashing algorithms, though, and exemplary embodiments may be adapted to any hashing algorithm.
  • FIGS. 30-32 are more detailed illustrations of the digital contract 20 , according to exemplary embodiments.
  • the private entity 32 sends its private blockchain 24 to the network address associated with the data layer server 74 that generates the blockchain data layer 72 .
  • the private blockchain 24 may contain information representing the transaction records 100 associated with the entity's private cryptocoinage 60 (perhaps as one or more privately hashed blocks of data).
  • the private blockchain 24 may also specify, or incorporate, information or data representing the single cryptographic address 102 and/or the digital contract 20 (e.g., the contract identifier 28 and the contractual parameters 30 ).
  • the single cryptographic address 102 and/or the digital contract 20 may additionally or alternatively be separately sent from the entity server 140 to the data layer server 74 (perhaps via the communications network 142 illustrated by FIGS. 22-23 ).
  • the entity's private cryptocoinage 60 may be associated with the digital contract 20 (e.g., the contract identifier 28 and the contractual parameters 30 ) and/or the single cryptographic address 102 .
  • the transaction records 100 and/or their privately hashed blocks of data may thus specify, include, reference, and/or be associated with, and/or identified by, the single cryptographic address 102 , the digital contract 20 , the contract identifier 28 , and/or the contractual parameters 30 .
  • the data records 70 may also carry or reference the contract identifier 28 and/or the contractual parameters 30 . So, should the blockchain data layer 72 create or issue its own cryptocoinage 120 , the cryptocoinage 120 may also reference, be identified by, or be associated with the single cryptographic address 102 and/or the contract identifier 28 and/or the contractual parameters 30 .
  • the single cryptographic address 102 , the contract identifier 28 , and/or the contractual parameters 30 may thus common indicators or reference data for tracking both the entity's private cryptocoinage 60 and the cryptocoinage 120 issued by the blockchain data layer 72 , according to the terms of the digital contract 20 .
  • the transaction records 100 (representing entity's private cryptocoinage 60 ) may thus be commonly mapped or identified to the cryptocoinage 120 issued by the blockchain data layer 72 and to the digital contract 20 .
  • FIG. 31 illustrates a simple illustration.
  • the contract identifier 28 may propagate and be recorded within the blockchain data layer 72 .
  • the contract identifier 28 may be recorded in any of the entries 180 .
  • the entry 180 and thus the contract identifier 28 , may then be recorded and/or arranged as the entry block 182 and placed within the directory block 184 .
  • the entry 180 , the entry block 182 , and the directory block 184 may thus reference, specify, or be associated with, the contract identifier 28 .
  • the contract identifier 28 has thus propagated as informational content from the private blockchain 24 and into and through the blockchain data layer 72 .
  • the contract identifier 28 thus hierarchically moves through the multiple layers of cryptographic hashing for public publication.
  • the blockchain data layer 72 thus tracks the transaction records 100 involving the contract identifier 28 .
  • the blockchain data layer 72 may track contractual performance of the digital contract 20 via the transaction records 100 that reference or contain the contract identifier 28 .
  • the blockchain data layer 72 may also track ownership and transfer of the entity's private cryptocoinage 60 and the cryptocoinage 120 issued by the blockchain data layer 72 , all via the common single cryptographic address 102 and/or the contract identifier 28 .
  • FIG. 32 illustrates more details. While the single cryptographic address 102 and/or the contract identifier 28 may be any alphanumeric entry or biometric input, FIG. 24 illustrates a common authentication mechanism 190 . Here the same or similar authentication mechanism 190 is used to access both the entity's private cryptocoinage 60 and the cryptocoinage 120 issued by the blockchain data layer 72 . If a user of the blockchain data layer 72 satisfies the authentication mechanism 190 , then exemplary embodiments may access both the private cryptocoinage 60 , the cryptocoinage 120 , and/or the data records 70 associated with the contract identifier 28 .
  • the single cryptographic address 102 and/or the contract identifier 28 may be any unique alphanumeric entry, biometric input, user identifier, or other authentication credential. For example, most readers are likely familiar with an alphanumeric username and password, which is a common authentication mechanism 190 .
  • FIG. 32 illustrates a passphrase 192 (such as a multi-word mnemonic). When the entity's private cryptocoinage 60 is/are created, generated, or assigned, the entity's private cryptocoinage 60 may be assigned or associated with the passphrase 192 .
  • the passphrase 192 is unique to the registered owner, possessor, or user of the entity's private cryptocoinage 60 .
  • the passphrase 192 may even be hashed as a hash value and supplied to the blockchain data layer 72 (as above explained).
  • the passphrase 192 in other words, may be hashed as the single cryptographic address 102 and propagated within the blockchain environment 22 to document the transaction records 100 involving the entity's private cryptocoinage 60 .
  • the passphrase 192 may also authenticate to the cryptocoinage 120 . If the user correctly supplies the passphrase 192 , then the same user may conduct transactions involving the cryptocoinage 120 issued by the blockchain data layer 72 and/or involving the contract identifier 28 associated with the digital contract 20 . Exemplary embodiments thus allow the user to order transactions and exchanges involving the entity's private cryptocoinage 60 , the cryptocoinage 120 issued by the blockchain data layer 72 , and/or the digital contract 20 .
  • FIGS. 33-35 further illustrate the access mechanism, according to exemplary embodiments.
  • the filling station 110 may be a public and/or private service for financial transactions involving the entity's private cryptocoinage 60 , the cryptocoinage 120 issued by the blockchain data layer 72 , and/or the digital contract 20 .
  • FIG. 33 illustrates the filling station 110 as a software-as-a-service offered by the secure data layer server 74 for accessing the blockchain data layer 72 .
  • the filling station 110 for example, may be a module within, or called by, the data layer application 154 .
  • FIG. 33 illustrates a web interface 194 . That is, the filling station 110 may be accessed via a webpage 196 .
  • the webpage 196 prompts the user to input her authentication credentials according to the authentication mechanism 190 (such as typing the passphrase 192 into a data field or audibly speaking the passphrase 192 ).
  • FIG. 34 further illustrates the web interface 194 .
  • the user accesses the filling station 110 using a user device 200 .
  • the user device 200 may be any processor-controlled device, most readers are familiar with a smartphone 202 . If the smartphone 202 correctly sends authentication credentials (such as the single cryptographic address 102 and/or passphrase 192 , as above explained), then the smartphone 202 may utilize the web interface 194 to the data layer server 74 and/or the blockchain data layer 72 .
  • the smartphone 202 executes a web browser and/or a mobile application to send a request 204 specifying an address or domain name associated with or representing the filling station 110 .
  • the web interface 194 to the data layer server 74 thus sends the webpage 196 as a response, and the user's smartphone 202 downloads the webpage 196 .
  • the smartphone 202 has a processor and memory device (not shown for simplicity) that causes a display of the webpage 196 as a graphical user interface (or “GUI”) 206 on its display device 208 .
  • the GUI 206 may generate one or more prompts or fields for specifying the authentication mechanism 190 and transactional options.
  • the user preferably enters, speaks, or otherwise provides the passphrase 192 .
  • Exemplary embodiments may or may not hash the authentication passphrase (using the hashing algorithm 148 above explained) to produce or generate a hashed passphrase.
  • Exemplary embodiments may then search the blockchain data layer 72 for the data records 70 . That is, exemplary embodiments may query the blockchain data layer 72 for a query parameter (such as the contract identifier 28 and/or its hashed value) and the blockchain data layer 72 identifies the data records 70 that match or reference the query parameter.
  • the filling station 110 may then process the data records 70 to provide a transactional summary 210 of the digital contract 20 .
  • the filling station 110 may also allow the user to replenish an amount or value of the private cryptocoinage 60 and/or the cryptocoinage 120 , even allowing the user to continue exchanging the cryptocoinage 60 for access to the blockchain data layer 72 .
  • Exemplary embodiments may thus share the common authentication mechanism 190 . If the entity's private software application 40 requires the same passphrase 192 to establish any terms of the digital contract 20 , then the passphrase 192 may have been hashed and recorded within the blockchain data layer 72 .
  • the single cryptographic address 102 , the contract identifier 28 , and/or the passphrase 192 may be associated with the data records 70 representing the digital contract 20 , the private cryptocoinage 60 (issued by the entity 32 ), and the cryptocoinage 120 (issued by the blockchain data layer 72 ).
  • the filling station 110 may thus identify any of the data records 70 that are commonly associated with the contract identifier 28 , the private cryptocoinage 60 (issued by the entity 32 ), and/or the cryptocoinage 120 .
  • the filling station 110 thus allows the user to exchange cryptocoinage 60 and 90 for access to the private blockchain 24 and/or the blockchain data layer 72 .
  • FIG. 35 illustrates a query mechanism.
  • the data layer server 74 may access a database 220 of data layer records.
  • the database 220 of data layer records provides a referential record of the informational content contained within the blockchain data layer 72 .
  • FIG. 35 illustrates the data layer server 74 locally storing the database 220 of data layer records in its local memory device 156 , but the database 220 of data layer records may be remotely stored and accessed via the communications network 142 .
  • the data layer server 74 may query the database 220 of data layer records for the single cryptographic address 102 and/or the contract identifier 28 and identify and/or retrieve any corresponding data records 70 . While the database 220 of data layer records may have any logical structure, FIG.
  • 35 illustrates the database 220 of data layer records as a table 222 that maps, converts, or translates the single cryptographic address 102 and/or the contract identifier 28 to its corresponding entry 180 , entry block 182 , and/or directory block 184 within the blockchain data layer 72 .
  • the data layer server 74 may add an entry to the database 220 of data layer records.
  • the database 220 of data layer tracks a comprehensive historical repository of information that is electronically associated with its corresponding contract identifier 28 .
  • the data layer server 74 may then read or retrieve the entry 180 , entry block 182 , and/or directory block 184 containing or corresponding to the contract identifier 28 .
  • Exemplary embodiments thus present the entity-specific cryptocoinage 60 .
  • Any entity 32 may create its own private blockchain 24 , establish its entity-specific tokens 62 , and define or offer digital contracts 20 .
  • the entity-specific tokens 62 may or may not have the value 94 .
  • the tradeable token 66 may have a market value based on supply and/or demand, thus allowing or causing the value 94 of the tradeable token 66 to rise/fall or to increase/decrease, based on market forces.
  • the credit token 64 may have a constant price or value, perhaps set by the entity 32 .
  • the entity-specific tokens 62 may be associated with the contract identifier 28 , thus allowing a faster and simpler accounting scheme for machine executable contractual terms.
  • Exemplary embodiments may thus create coinage on top of coinage.
  • the hierarchical scheme (explained with reference to FIG. 29 ) allows the private entity 32 to establish its private cryptocoinage 60 hierarchically above the traditional BITCOIN®, ETHEREUM®, or RIPPLE® coinage.
  • the entity's private data 36 remains private, but the transaction records 100 may be publicly documented or proved via the traditional BITCOIN®, ETHEREUM®, or RIPPLE® environment.
  • the private entity 32 in other words, need to worry about or concern itself with public publication.
  • the private entity 32 need only subscribe (e.g., pay for write access) to the blockchain data layer 72 .
  • the digital contract 20 may also be offered, executed, and documented by the transaction records 100 .
  • FIG. 36 illustrates a public entity 230 , according to exemplary embodiments.
  • exemplary embodiments may be applied to public data 232 generated by the public entity 230 .
  • the public entity 230 may be a city, state, or federal governmental agency, but the public entity 230 may also be a contractor, non-governmental organization, or other actor that acts on behalf of the governmental agency.
  • the public entity 230 operates a public server 234 and applies its software application 236 to its public data 232 to generate its governmental blockchain 238 .
  • the public entity 230 may further generate/issue its cryptocoinage 240 and offer digital contracts 20 for governmental, public services.
  • the data layer server 74 receives the governmental blockchain 238 and generates the blockchain data layer 72 .
  • the data layer server 74 may then generate the public blockchain 76 representing any data records 70 representing the public data 232 and/or the cryptocoinage 240 .
  • FIGS. 37-40 further illustrate contractual execution, according to exemplary embodiments.
  • the contract server 42 (such as the data layer server 74 ) receives the blockchain 24
  • exemplary embodiments inspect the blockchain 24 to identify the contract identifier 28 and/or the contractual parameters 30 .
  • the contract identifier 28 and/or the contractual parameters 30 may be contained within the block 26 of data within the blockchain 24 .
  • the contract identifier 28 and/or the contractual parameters 30 may be additionally or alternatively be metadata contained within the block 26 of data, and/or the contract identifier 28 and/or the contractual parameters 30 may be a data, data field, and/or a file attachment.
  • the contract identifier 28 and/or the contractual parameters 30 may be information or data specified by the blockchain 24 and/or by a packet header or body. Regardless, once the contract identifier 28 and/or the contractual parameters 30 are determined, exemplary embodiments may consult the electronic database 44 of contracts.
  • FIG. 38 illustrates the database 44 of contracts. While the database 44 of contracts may have any logical structure, a relational database is perhaps easiest to understand.
  • FIG. 38 thus illustrates the database 44 of contracts as an electronic table 250 that maps, converts, or translates the contract identifier 28 and/or the contractual parameters 30 to their corresponding network resource(s) 50 .
  • the database 44 of contracts may thus be preconfigured or preloaded with entries that assign or associate different contract identifiers 28 and/or contractual parameters 30 to their corresponding network resource 50 that provides, processes, and/or executes the corresponding digital contract 20 .
  • the data layer server 74 may inspect the blockchain 24 for the contract identifier 28 and/or the contractual parameters 30 .
  • the data layer server 74 may then query the database 44 of contracts for the contract identifier 28 and/or the contractual parameters 30 to identify the computer file 46 , server 254 , virtual machine 256 , Internet protocol address 258 , or other network resource 50 that is responsible for executing the digital contract 20 .
  • the database 44 of contracts may optionally contain entries that relate hashed values of the contract identifier 28 and/or the contractual parameters 30 . Regardless, once the network resource 50 is identified, the data layer server 74 may direct, assign, or outsource the contractual information 30 to the network resource 50 for processing.
  • FIG. 39 illustrates a simple example.
  • the contract identifier 28 maps to a filename 260 that is associated with, or that represents, the computer file 46 that contains the programming language representing the digital contract 20 .
  • the data layer server 74 may locally retrieve and execute the computer file 46 that corresponds to, or is associated with, the filename 260 .
  • the data layer server 74 may then execute the computer file 46 , perhaps based on parameters defined or described by the contractual parameters 30 (such as party names, parameters associated with their respective performance obligations and terms, and consideration).
  • the data layer server 74 may retrieve the computer file 46 (perhaps via the communications network 146 illustrated by FIGS. 22-23 ) from a remote server, database, or other device.
  • the data layer server 74 may generate the data records 70 in the blockchain data layer 72 describing the execution of the computer file 46 .
  • the data records 70 may sequentially and/or serially track the execution of the computer file 46 , perhaps logging or documenting periodic or random updates as the computer file 46 executes, perhaps along with timestamps toward completion.
  • the data records 70 may also log or document a final step or outcome of the programming language representing the digital contract 20 .
  • the blockchain 24 only referenced the digital contract 20 (using the contract identifier 28 and/or the contractual parameters 30 ).
  • the actual execution of the digital contract 20 may be offloaded or outsourced to the data layer server 74 .
  • FIG. 40 illustrates another example.
  • the data layer server 74 may only manage the execution of the digital contract 20 referenced by the contract identifier 28 and/or the contractual parameters 30 . That is, the data layer server 74 may outsource the execution of the digital contract 20 to a vendor or supplier as a subcontractor process.
  • the data layer server 74 inspects the blockchain 24 to identify the contract identifier 28 and/or the contractual parameters 30 . The data layer server 74 may then consult the database 44 of contracts.
  • the database 44 of contracts has entries that map or relate the contract identifier 28 to a remote server 262 that executes the digital contract 20 as a cloud-based service (perhaps as a software-as-a-service or SAAS).
  • the database 44 of contracts may thus associate the contract identifier 28 to the Internet protocol address 258 representing the remote server 262 that executes the digital contract 20 .
  • the database 44 of contracts may additionally or alternatively associate the contract identifier 28 to a uniform resource locator (or “URL”) 264 representing the remote server 262 that executes the digital contract 20 .
  • URL uniform resource locator
  • the data layer server 74 may retrieve and send a service request 266 to the remote server 262 (via the Internet protocol address 258 and/or the URL 264 representing the remote server 262 ).
  • the service request 266 specifies the contract identifier 28 and requests an execution of the corresponding digital contract 20 .
  • the service request 266 may also specify the contractual parameters 30 .
  • the remote server 262 receives the service request 266 , the remote server 262 applies the parameters defined or described by the contractual parameters 30 to the programming code (such as the computer file 46 ) representing the digital contract 20 .
  • the remote server 262 may then send a service response 268 back to the data layer server 74 , and the service response 268 comprises data or information describing an outcome of the digital contract 20 (such as consideration, payment, or performance terms).
  • the data layer server 74 may generate the data records 70 in the blockchain data layer 72 .
  • the data records 70 may document the date and time that the service request 266 was sent to the remote server 262 .
  • the remote server 262 may send periodic or random service updates 270 as the service is provided along with timestamps toward completion.
  • the data layer server 74 may thus generate the data records 70 describing the service updates 270 received from the remote server 262 .
  • the data layer server 74 may also generate the data records 70 describing the service response 268 sent from the remote server 262 describing an outcome of the digital contract 20 .
  • FIGS. 41-42 illustrate virtual execution, according to exemplary embodiments.
  • the data layer server 74 may outsource or subcontract the execution of the digital contract 20 to a virtual machine (or “VM”) 280 .
  • the data layer server 74 may implement different virtual machines 190 , with each virtual machine 190 processing and/or executing a particular digital contract 20 , perhaps as a software service.
  • the data layer server 74 may provide virtual computing and/or virtual hardware resources to client devices, thus lending or sharing its hardware, computing, and programming resources.
  • the data layer server 74 may thus operate or function as a virtual, remote resource for providing contractual execution as software services.
  • the data layer server 74 implements four (4) virtual machines 280 a - d .
  • the data layer server 74 may implement any number or instantiations of different virtual machines 280 and/or digital contracts 20 , depending on complexity and resources. Moreover, as a further simplification, assume that each virtual machine 280 a - d executes a different corresponding digital contract 20 a - d . So, when the data layer server 74 receives the blockchain 24 , the data layer server 74 may inspect the blockchain 24 for each contract identifier 28 a - d and/or the corresponding contractual information 28 a - d and consult the database 44 of contracts.
  • FIG. 42 further illustrates the database 44 of contracts.
  • the database 44 of contracts may include entries that map the contract identifier 28 to the corresponding virtual machine 280 .
  • the database 44 of contracts may thus be preconfigured or preloaded with entries that assign or associate each virtual machine 280 to its corresponding contract identifier 28 .
  • the data layer server 74 may then coordinate and/or manage the execution of the corresponding digital contract 20 , perhaps based on the contract information 30 .
  • the data layer application 154 has programming or code that functions or performs as a query handler.
  • the data layer application 154 inspects the blockchain 24 for the contract identifier 28 and queries the database 44 of contracts (as above explained).
  • the data layer application 154 thus identifies and/or retrieves the corresponding virtual machine 280 . Exemplary embodiments may thus determine whether contract identifier 28 matches or satisfies any of the entries specified by the database 44 of contracts.
  • FIG. 42 illustrates entries that map the contract identifier 28 to its corresponding virtual machine 280 (e.g., an address, processor core, identifier, or other indicator).
  • the digital contract 20 may then be executed. For example, once the contract identifier 28 and the virtual machine 280 are determined, the virtual machine 280 may then call, retrieve, and/or execute the computer file 46 that provides the digital contract 20 as a virtual service or process.
  • FIG. 42 illustrates the computer file 46 locally stored and executed by the data layer server 74 , but the computer file 46 may be remotely stored, retrieved, and/or executed. Regardless, the virtual machine 280 may be instructed to retrieve, execute, and/or apply the computer file 46 , perhaps based on the contractual information 30 .
  • FIG. 42 also illustrates software services.
  • the database 44 of contracts may include entries that map the contract identifier 28 to a corresponding software service provided by the virtual machine 280 .
  • Exemplary embodiments in other words, may relate the contract identifier 28 to a service identifier 282 .
  • the service identifier 282 is any alphanumeric combination, data, or hash value that uniquely identifies a software service 284 provided by the virtual machine 280 .
  • the virtual machine 280 may then provide the software service 284 .
  • the software service 284 may execute the digital contract 20 , perhaps based on the contractual information 30 .
  • FIG. 43 illustrates cryptographic affinities, according to exemplary embodiments.
  • the data layer server 74 may create or generate a cryptographic affinity 290 describing contractual execution. This disclosure above explained how the data layer server 74 may generate the data records 70 in the blockchain data layer 72 . This disclosure also above explained how the data records 70 may document execution of the digital contract 20 .
  • the cryptographic affinity 290 may uniquely identify the digital contract 20 executed by the virtual machine 280 . For example, once the contract identifier 28 and the virtual machine 280 are determined (as above explained), the hashing algorithm 148 may generate a unique hash value 150 .
  • the hashing algorithm 148 may hash the contract identifier 28 with a virtual machine (“VM”) identifier 292 to generate the cryptographic affinity 290 .
  • the virtual machine identifier 292 is any alphanumeric combination, data, or hash value that uniquely identifies the virtual machine 280 .
  • the cryptographic affinity 290 may then be documented by the data records 70 in the blockchain data layer 72 , thus evidencing the execution of the digital contract 20 .
  • the cryptographic affinity 290 may be published via the public blockchain 76 as the cryptographic proof 80 , thus further publicly evidencing the execution of the digital contract 20 .
  • FIG. 44 illustrates virtual assignments based on the blockchain data layer 72 , according to exemplary embodiments.
  • exemplary embodiments may generate the data records 70 representing the blockchain data layer 72 (such as the entries 180 , the entry blocks 182 , and/or the directory blocks 184 explained with reference to FIGS. 25-27 ).
  • Exemplary embodiments may thus assign the blockchain 24 and/or the virtual machine 280 that executes the digital contract 20 , based on the number of the entries 180 , the entry blocks 182 , and/or the directory blocks 184 generated within the blockchain data layer 72 .
  • the data layer server 74 may determine a rate 290 of generation.
  • exemplary embodiments may sum or count the entries 180 , the entry blocks 182 , and/or the directory blocks 184 that are generated over time (such as per second, per minute, or other interval).
  • Exemplary embodiments may call or initialize a counter having an initial value (such as zero).
  • the counter commences or starts counting or summing the number of the entries 180 , the entry blocks 182 , and/or the directory blocks 184 (generated within the blockchain data layer 72 ) that are commonly associated with or reference the blockchain 24 (perhaps according to the chain ID 174 ) and/or the contract identifier 28 .
  • the counter stops counting or incrementing at a final time and exemplary embodiments determine or read the final value or count.
  • Exemplary embodiments may then calculate the rate 290 of generation as the sum or count over time and consult or query the electronic database 44 of contracts for the rate 290 of generation.
  • Exemplary embodiments may thus define entries that map or associate different rates 290 of generation and/or ranges to their corresponding contract identifier 28 and/or virtual machines 280 . If the database 44 of contracts has an entry that matches or satisfies the rate 290 of generation, exemplary embodiments identify the corresponding virtual machine 280 .
  • the rate 290 of generation may thus be a feedback mechanism.
  • the rate 290 of generation of the data records 70 may determine the virtual machine 280 that is assigned adequate capacity or bandwidth.
  • One of the blockchains 24 and/or virtual machines 280 may be reserved for digital contracts 20 having a heavy, disproportionate, or abnormally large rate 290 of generation.
  • Another of the blockchains 24 and/or virtual machines 280 may be reserved for digital contracts 20 having a medium, intermediate, or historically average rate 290 of generation.
  • Still another blockchain 24 and/or virtual machine 280 may be reserved for the digital contracts 20 having a light, low, or historically below average rate 290 of generation.
  • the rate 290 of generation may thus be a gauge or measure of which blockchain 24 , digital contract 20 , and/or virtual machine 280 is assigned the resources.
  • Exemplary embodiments thus include a service environment. Exemplary embodiments may manage and/or execute many different digital contracts 20 offered by many different vendors or suppliers. Indeed, the data layer server 74 may manage or even execute the digital contracts 20 while also generating the blockchain data layer 72 as still another service. The data layer server 74 may thus acts as a subcontractor or service provider, perhaps in a subscription or other compensation scheme. Any customer or client (such as the entity server 140 explained with reference to FIGS. 22-23 ) may thus send or forward its private blockchain 24 (generated from its private data 36 ) to the data layer server 74 for management or execution of any digital contract 20 . The data layer server 74 may generate the data records 70 of the blockchain data layer 72 that document the management or execution of any digital contract 20 .
  • the data layer server 74 may publicly publish the cryptographic proof 80 within the public blockchain 76 , thus further documenting immutable evidence of the management or execution of any digital contract 20 .
  • the entity server 140 may also generate the blocks 26 of data within the private blockchain 24 that also document the date and time that the management or execution of any digital contract 20 was sent/requested. The entity server 140 may then pay or reward the data layer server 74 in exchange for the digital contract 20 and/or the data records 70 in the blockchain data layer 72 (such as granting its crytpocoinage 60 and 120 , as explained with reference to FIG. 19 ).
  • the data layer server 74 may thus serve many blockchains 24 requesting many different contractual services.
  • the financial institution 34 may send or forward its private blockchain 36 a (as illustrated with reference to FIGS. 20-21 ) to the data layer server 74 for application or execution of any digital contract 20 (by specifying the contract identifier 20 , as above explained).
  • the retailer 122 may similarly send or forward its private blockchain 36 b to the data layer server 74 for application or execution of any digital contract 20 .
  • the online website 124 may also send or forward its private blockchain 36 c to the data layer server 74 for application or execution of any digital contract 20 .
  • the data layer server 74 may generate the data records 70 of the blockchain data layer 72 that document the management and/or execution of any digital contract 20 , and the data layer server 74 may publicly publish each cryptographic proof 80 within the public blockchain 76 , thus further documenting immutable evidence of the management and/or execution of any digital contract 20 .
  • the entity 32 may then pay or reward the data layer server 74 via their respective crytpocoinage 60 and 120 .
  • the contract identifier 28 and the contractual parameters 30 need only be informational content in the private blockchain 24 .
  • the contract identifier 28 is any digital identifying information that uniquely identifies or references the digital contract 20 .
  • the contract identifier 28 may be an alphanumeric combination that uniquely identifies a vendor and/or version of the digital contract 20 and/or a processor or executioner of the digital contract 20 .
  • the contract identifier 28 may be expressed as a unique hash value that is included within, or specified by, the private blockchain 24 .
  • the contractual parameters 30 may identify the parties to the digital contract 20 , their respective performance obligations and terms, and consideration.
  • FIGS. 45-51 illustrate an architectural scheme, according to exemplary embodiments.
  • This disclosure above explained that the data layer server 74 may only manage the execution of the digital contract 20 .
  • the implementation and/or actual execution of the digital contract 20 may thus be separate from the data layer server 74 that generates the blockchain data layer 72 .
  • FIG. 45 illustrates the data layer server 74 communicating via the communications network 142 with the remote server 262 .
  • the data layer server 74 generates the blockchain data layer 72
  • the remote server 262 executes at least some portion of the digital contract 20 .
  • the remote server 262 may thus have a hardware processor 300 (e.g., “ ⁇ P”), application specific integrated circuit (ASIC), or other component that executes a contract application 302 stored in a local memory device 304 .
  • the remote server 262 has a network interface to the communications network 142 , thus allowing two-way, bidirectional communication with the data layer server 74 .
  • the contract application 302 includes instructions, code, and/or programs that cause the remote server 262 to perform operations, such as executing at least some portion of the digital contract 20 .
  • FIG. 46 illustrates a request mechanism.
  • the data layer application 154 identifies the contract identifier(s) 28 and/or the contractual parameters 30 associated with or representing the digital contract 20 .
  • the contract identifier(s) 28 and/or the contractual parameters 30 may be sent to the data layer server 74 as an input (such as from the entity server 140 , as explained with reference to FIGS. 22-24 ), or the contract identifiers 28 and/or the contractual parameters 30 may be contained as information in the private blockchain 24 .
  • the data layer server 74 may then identify the network address, IP address, URL, or other nomenclature representing the remote server 262 that executes at least some portion of the digital contract 20 (perhaps via the database 44 of contracts, as earlier explained).
  • the data layer server 74 sends the service request 266 to the remote server 262 , and the service request 266 may include or specify the contract identifier 28 and/or the contractual parameters 30 .
  • the remote server 262 receives the service request 266 , the remote server 262 applies the contractual parameters 30 to the portion of the digital contract 20 and generates a contractual result 306 .
  • the remote server 262 may then send the service response 268 back to the data layer server 74 , and the service response 268 may comprise the contractual result 306 .
  • Exemplary embodiments may thus exchange inputs and outputs.
  • the service request 266 may include or specify one or more of the contract identifiers 28 and/or the contractual parameters 30 .
  • the contract identifiers 28 and/or the contractual parameters 30 are represented as hash values.
  • the hash values may be identified from, or specified by, the private blockchain 24 .
  • the hash values may additionally or alternatively be generated by the data layer application 154 (such as by calling, invoking, or executing the hashing algorithm 148 , as above explained).
  • the service request 266 may thus include or specify the hash values representing the contract identifiers 28 and/or the contractual parameters 30 .
  • the contract application 302 may use or accept the hash values as inputs to generate the contractual result 306 as an output.
  • the contract application 302 may further encrypt the contractual result 306 (such as calling, invoking, or executing the hashing algorithm 148 ) to generate another hash value representing the contractual result 306 .
  • Exemplary embodiments provide contractual proofs.
  • the data records 70 may document the service request 266 as one of the cryptographic proofs 80 .
  • the data records 70 document that receipt and the contractual result 306 as another one of the cryptographic proofs 80 .
  • the data records 70 thus prove that at least the portion of the digital contract 20 was outsourced to a vendor or supplier as a subcontractor process or assignment.
  • the data records 70 also prove that at least the portion of the digital contract 20 was executed to provide the contractual result 306 .
  • the data layer server 74 may then compare the contractual result 306 (such as its hash value) to a predefined or expect value.
  • the data layer application 154 may be programmed or coded to infer that the contract successfully executed and/or the vendor or supplier performed as obligated. However, if the contractual result 306 fails to match or equal the predefined or expect value, then the data layer application 154 may be programmed or coded to infer that the contract is not satisfied and/or the vendor or supplier failed to perform as obligated.
  • FIG. 47 illustrates a layered contractual process.
  • the digital contract 20 may have different or individual components, portions, or sub-parts that cumulatively combine to produce the contractual result 306 .
  • the different components, portions, or sub-parts may be software modules 310 that can be separately executed to generate the overall or final contractual result 306 .
  • a simple digital contract 20 may only have a few or several software subroutines or modules 310
  • a complex or complicated digital contract 20 may have many or hundreds of different software subroutines or modules 310 .
  • FIG. 47 illustrates the digital contract 20 having four (4) software modules 310 a - d .
  • the entire contract application 302 may have four (4) different application layers 312 a - d .
  • Each componentry module 310 a - d or layer 312 a - d may have its own corresponding contract identifier 28 a - d .
  • exemplary embodiments may then feed the contractual parameters 30 as inputs 314 a - d to the software modules 310 a - d .
  • Each different software module 310 may thus generate its respective or corresponding output 316 a - d , which may be combined or processed to generate the overall or final contractual result 306 .
  • FIG. 48 illustrates hierarchical execution.
  • the different software modules 310 may be serially or sequentially executed to generate the overall or final contractual result 306 .
  • the software module 310 a may accept at least some of the contractual parameters 30 as the input 314 a , execute its respective programming code, and generate its corresponding output 316 a .
  • the output 316 a may then be routed or sent to the software module 310 b (illustrated as the application layer 312 b ) as its input 314 b .
  • Its respective programming code is then executed to generate its corresponding output 316 b , based on the output 316 a generated by or received from the software module 310 a .
  • software module 310 c accepts the output 316 b and generates output 316 c , which is received by software module 310 d as input 314 d and used to generate the output 316 d . While exemplary embodiments may continue processing the outputs 316 a - d to generate any desired outcome, for simplicity FIG. 40 illustrates the output 316 d as the final contractual result 306 . Exemplary embodiments may thus use the software modules 310 a - d as feedback mechanisms to monitor or even enforce contractual rule-based obligations defined or specified by the digital contract 20 .
  • FIG. 49 illustrates the blockchain data layer 72 .
  • the blockchain data layer 72 may document the processing and/or execution of each software module 310 a - d , its respective input(s) 314 a - d , its respective output(s) 316 a - d , and perhaps a corresponding timestamp (not shown for simplicity).
  • the data records 70 may further document or record the corresponding contract identifier 28 a - d and/or the chain identifier 174 .
  • the data layer server 74 may thus receive the service updates 270 (via the communications network 142 ) as each software module 310 a - d performs or executes its corresponding contractual service.
  • the data layer server 74 may then generate the data records 70 in the blockchain data layer 72 , thus documenting each software component's contribution toward the overall or final contractual result 306 .
  • the data records 70 may also be hashed to generate the cryptographic proofs 80 , as above explained.
  • FIG. 50 also illustrates contractual execution.
  • the different software modules 310 may be executed by different devices.
  • the remote server 262 a locally stores and executes the software module 310 a
  • the remote server 262 b locally stores and executes the software module 310 b
  • the remote server 262 c locally stores and executes the software module 310 c
  • the remote server 262 d locally stores and executes the software module 310 d .
  • Exemplary embodiments may thus source or subcontract the different portions of the digital contract 20 to different machines for execution.
  • the remote server 262 a may specialize in the software module 310 a .
  • the remote server 262 a may thus accept the service request 266 from clients, execute the software module 310 a , and return send the service response 268 (as explained with reference to FIG. 46 ).
  • the remote server 262 a may also send the service update(s) 270 to the data layer server 74 , thus allowing the blockchain data layer 72 to document the contractual service provided by the software module 310 a .
  • the remote servers 262 b -d may similarly specialize in the software modules 310 b -d to provide their respective contractual services.
  • FIG. 51 illustrates an overall architectural scheme. As the reader may envision, there may be hundreds, thousands, millions, or even billions of contractual relationships between many different parties. As smart, digital contracts grow in acceptance and usage, the blockchain data layer 72 is expected to exponentially grow, thus requiring ever-increasing hardware and software resources. In plain words, there may be many data layer servers 74 generating the data records 70 in the blockchain data layer 72 . While there may be hundreds or even thousands of data layer servers 74 , FIG. 51 simply illustrates four (4) data layer servers 74 a - d that cooperate to generate the blockchain data layer 72 . As the processing load increases or grows (such as according to the rate 290 of generation, as above explained), the number of data layer servers 74 may also grow.
  • the blockchain data layer 72 may thus be separate from an implementation and execution of the digital contract 20 .
  • the data layer servers 74 may be separately networked and/or addressed from the remote servers 262 providing the contractual services representing the software modules 310 of the digital contract 20 . Any of the data layer servers 74 may send data or information as inputs to any one of the remote servers 262 , and the corresponding software module 310 performs its contractual service and sends its output 316 back to the blockchain data layer 72 (perhaps via the service request 266 , the service response 268 , and the service update 270 as earlier explained and illustrated). Some of the remote servers 262 may provide virtual services, such as a virtual machine (as above explained) that executes any of the software modules 310 .
  • FIG. 52 illustrates compliance scheme, according to exemplary embodiments.
  • the digital contract 20 may have programming code that requires an execution or processing in a particular region or country. That is, the digital contract 20 may have contractual rules and/or provisions that must be enforced in the United States, the European Union, or the Isle of Man. Components or portions of the digital contract 20 may require execution or location in the Cayman Islands, Idaho, or Hong Kong.
  • the digital contract 20 in other words, may have a geographic parameter 320 .
  • the geographic parameter 320 may be a locational requirement, restriction, or preference for at least some portion of the digital contract 20 .
  • the geographic parameter 320 can be any data, information, field, metadata, or code for enforcing the locational requirement, restriction, or preference. Indeed, the geographic parameter 320 may even be finely expressed or defined as global positioning system (“GPS”) information or coordinates at which at least some portion of the digital contract 20 must be processed or executed.
  • GPS global positioning system
  • the geographic parameter 320 may be an input value. As FIG. 52 illustrates, the geographic parameter 320 may be read or received via the private blockchain 24 (perhaps along with the contract identifier 28 and/or the contractual parameter 30 ).
  • the data layer server 74 may identify the geographic parameter 320 as data, information, or a hash value contained within the block 26 of data.
  • the geographic parameter 320 may additionally or alternatively be received and/or identified within a header of body/payload of a packet 322 of data (packetized according to the Internet Protocol, just as the contract identifier 28 and/or the contractual parameter 30 may be identified).
  • exemplary embodiments may again consult the database 44 of contracts.
  • the database 44 of contracts may have entries that electronically associate the contract identifier(s) 28 and/or the contractual parameter(s) 30 to the geographic parameter 320 .
  • the data layer application 154 may instruct the data layer server 74 to query the database 44 of contracts for either, any, or all of the contract identifiers 28 , the contractual parameters 30 , and/or the geographic parameters 320 to identify and/or retrieve the corresponding database entries.
  • a file component of the digital contract 20 must be processed in a particular geographic region (such as the British Virgin Islands or Canada).
  • the corresponding contract identifier 28 may be electronically associated with a particular geographic region, as defined by a tabular entry in the database 44 of contracts.
  • the data layer server 74 may then route the contract identifier 28 , the contractual parameter 30 , and/or the geographic parameter 320 to the remote server 262 that is associated with, or even located within, the region.
  • Exemplary embodiments for example, may implement the service request 266 , the service response 268 , and the service update 270 (as earlier explained).
  • the remote server 262 may then process or execute the digital contract 20 using the contract identifier 28 and/or the contractual parameter 30 (as this disclosure earlier explained).
  • the contract identifier 28 and/or the contractual parameter 30 map(s) to a particular server, cluster of servers, and/or a particular virtual machine (“VM”).
  • the data layer server 74 may then route the contract identifier 28 , the contractual parameter 30 , and/or the geographic parameter 320 to the remote server 262 that is associated with the cluster of servers and/or the virtual machine.
  • the remote server 262 may then process or execute the digital contract 20 using the contract identifier 28 and/or the contractual parameter 30 (as this disclosure earlier explained). More likely, though, the contract identifier 28 and/or the contractual parameter 30 will relate to a particular IP address or uniform resource locator (“URL”).
  • the data layer server 74 may then route the contract identifier 28 , the contractual parameter 30 , and/or the geographic parameter 320 to the remote server 262 that is associated with the IP address or URL for processing (again, as this disclosure earlier explained).
  • Exemplary embodiments may thus implement contractual provisions.
  • Some digital contracts 20 may require a particular server, perhaps implementing or hosting a particular website, network, authentication scheme, programming, or other geographic parameter 320 .
  • Some parties to the digital contract 20 may also require a particular server, perhaps as specified by the geographic parameter 320 .
  • Some digital contracts 20 may have compliance obligations, perhaps defined by a particular jurisdiction and expressed as the geographic parameter 320 . Servers, webpages, networks and other resources may be dedicated to specific jurisdictions, as expressed by the geographic parameter 320 .
  • FIGS. 53-59 illustrate a decisional architecture and scheme, according to exemplary embodiments.
  • the blockchain environment 22 enables an execution of the smart, digital contract 20
  • some digital contracts may be too complex and/or too cumbersome to implement on the blockchain 24 .
  • exemplary embodiments may thus put smaller contractual components of the digital contract 20 on any blockchain (such as the private blockchain 24 or the public blockchain 76 ), validate the contractual components (perhaps via the cryptographic proof 80 ), incorporate the cryptographic proof 80 into a larger component of the digital contract 20 , and then validate the larger component.
  • Exemplary embodiments may further implement one or more decision tables 326 .
  • the decision table 326 may be used to implement at least a component of the digital contract 20 . That is, the decision table 326 may represent one or more rules or logic conditions 328 , one or more inputs 330 , and one or more decisional outputs 332 .
  • the decision table 326 may thus be visually represented as a table having rows and columns.
  • a processing or execution engine such as the entity server 140 or other device
  • Exemplary embodiments may then log or record the decisional output 332 , along with its corresponding the input 330 , rule or logic condition 328 , and a date/time stamp.
  • Exemplary embodiments may thus document any decision.
  • the smart, digital contract 20 is an agreement between parties/participants about services, products, and/or money.
  • information is provided (such as the input 330 ) and the rule or logic condition 328 is executed.
  • each party/participant might contribute data to a single decision.
  • the parties may exchange data to perform the decisional output 332 .
  • Exemplary embodiments may thus map each decisional output 332 (perhaps representing a decision model) to a decision taken by a single party.
  • Each party in other words, may communicatively exchange the result of its decision such that others can base their decisions on their decisional output 332 , thus collaboratively executing the different components of the digital contract 20 .
  • FIG. 54 illustrates an impartial, trusted intermediary.
  • any party or participant to the digital contract 20 acts or executes, exemplary embodiments may log or archive their respective action(s).
  • the data layer server 74 may be informed of any decision-making process.
  • the entity 32 acting as a party to the digital contract 20
  • the entity server 140 sends its decisional output 332 (perhaps via the communications network 142 illustrated in FIGS. 22-23 ) to the data layer server 74 for documentation.
  • the decisional output 332 may thus be read or received via the private blockchain 24 (perhaps along with the contract identifier 28 and/or the contractual parameter 30 ).
  • the data layer server 74 may identify the decisional output 332 , along with its corresponding input 330 , its rule or logic condition 328 , and the date/time stamp, as data, information, or hash values contained within the block 26 of data (as FIG. 53 illustrated).
  • the decisional output 332 (and/or the contract identifier 28 , the contractual parameter 30 , the input 330 , the rule or logic condition 328 , and the date/time stamp) may additionally or alternatively be received and/or identified within a header of body/payload of the packet 322 of data (packetized according to the Internet Protocol).
  • the data layer server 74 may then generate the data records 70 in the blockchain data layer 72 , as this disclosure above explained.
  • the data records 70 log or record the decisional output 332 (sent from the party participant), along with its corresponding input 330 , the decision table 326 , the rule or logic condition 328 , and the date/time stamp of performance.
  • the blockchain data layer 72 in other words, provides neutral, documentary evidence that the party executed its transactional portion of the smart, digital contract 20 .
  • the blockchain data layer 72 may also add another layer of cryptographic hashing to generate the public blockchain 76 and the cryptographic proof 80 .
  • the blockchain data layer 72 thus may again act as the validation service 78 that validates the party performed its portion of the digital contract 20 . Exemplary embodiments may thus be used as an audit trail to reconstruct the party's decision-making process and who provided the input 330 .
  • Exemplary embodiments may even document fine granularity.
  • the data or information may even identify or pinpoint the network resource 250 . That is, when entity 32 (acting as a party to the digital contract 20 ) wishes to document or prove its contractual performance, the decisional output 332 may even include data or information identifying the particular server 254 or cluster or virtual machine 256 that generated the decisional output 332 . Indeed, the data or information may even identify or pinpoint the particular IP address or uniform resource locator (“URL”).
  • the data records 70 may thus document the machine, manufacturer, model, and/or chassis hardware inventory that performed the portion of the digital contract 20 .
  • FIG. 55 illustrates contractual management.
  • the data layer server 74 may manage the execution of the digital contract 20 .
  • the data layer server 74 may coordinate and validate the contractual components.
  • the data layer server 74 receives the contract identifier 28 and/or the contractual parameters 30 (as earlier explained).
  • the contract identifier 28 may represent a single, large digital contract 20 .
  • the contract identifier 28 may represent only a single or a few contractual components of the digital contract 20 .
  • the contract identifier 28 in other words, may map or relate to a sequence or series of one or more table identifiers 334 .
  • Each table identifier 334 may be an alphanumeric combination or a unique hash value. Regardless, each table identifier 334 uniquely identifies the corresponding decision table 326 that decides a componentry portion of the digital contract 20 . When the data layer server 74 receives the one or more contract identifiers 28 , the data layer server 74 may then consult the database 44 of contracts.
  • FIG. 56 further illustrates the database 44 of contracts.
  • the database 44 of contracts may have additional entries that map or relate the contract identifier 28 to the table identifier 334 and/or to the network resource 250 that executes the corresponding componentry portion of the digital contract 20 (perhaps again as a cloud-based service).
  • the contract identifier 28 may map or relate to a sequence or series of one or more table identifiers 334 .
  • Each table identifier 334 may be an alphanumeric combination or a unique hash value. Regardless, each table identifier 334 uniquely identifies the corresponding decision table 326 that decides a componentry portion of the digital contract 20 .
  • the data layer server 74 may then consult the database 44 of contracts to determine any corresponding entry (as this disclosure above explains).
  • FIG. 57 illustrates outsourcing.
  • the data layer server 74 may utilize the request mechanism.
  • the database 44 of contracts identifies the remote server 262 as the network resource 50 .
  • the data layer server 74 may thus instruct the remote server 262 to execute the corresponding decision table 326 .
  • the data layer server 74 for example, sends the service request 266 (as earlier explained), and the service request 266 may specify the table identifier 334 and/or the input 330 as the contractual parameters 30 .
  • the remote server 262 When the remote server 262 receives the service request 266 , the remote server 262 applies the input 330 to the decision table 326 representing the digital contract 20 . Once the decisional output 332 is determined, the remote server 262 may then send the service response 268 back to the data layer server 74 , and the service response 268 comprises data or information describing the decisional output 332 .
  • the data layer server 74 may generate the data records 70 in the blockchain data layer 72 that document the service request 266 and the service response 268 , perhaps including any service updates 270 as the decision table 326 is executed.
  • FIG. 58 illustrates contractual participation.
  • the data layer server 74 may execute at least a componentry portion of the digital contract 20 . That is, the data layer server 74 may locally store and/or access one or more of the decision tables 326 representing the digital contract 20 .
  • the data layer server 74 may consult the database 44 of contracts.
  • the database 44 of contracts has one or more entries that map or relate the contract identifier 28 to the virtual machine 280 that executes the decision table 326 .
  • the database 44 of contracts may thus electronically associate the contract identifier 28 to the table identifier(s) 334 and the virtual machine(s) 280 that locally execute the decision table(s) 326 .
  • the decisions table 326 may thus have virtual assignments. Once the virtual machine 280 and/or the decision table 326 is determined, the virtual machine 280 is requested or instructed to apply the input 330 to the corresponding decision table 326 to generate the decisional output 332 .
  • the data layer server 74 may then generate the data records 70 in the blockchain data layer 72 that document the local contractual performance (as earlier explained).
  • Exemplary embodiments may assign the virtual machine 280 based on the data records 70 in the blockchain data layer 72 . That is, as the decision table 326 consumes more and more of the data records 70 (e.g., the number of the entries 180 , the entry blocks 182 , and/or the directory blocks 184 generated within the blockchain data layer 72 , as earlier explained), the rate 290 of generation may be used as a feedback mechanism (as this disclosure earlier explained). Highly used or called decision tables 326 , in other words, may be assigned to virtual machines 280 having greater capacity or bandwidth.
  • the database 44 of contracts may thus define entries that map or associate different rates 290 of generation and/or ranges to their corresponding table identifier 334 and/or virtual machines 280 . If the database 44 of contracts has an entry that matches or satisfies the rate 290 of generation, exemplary embodiments identify the corresponding virtual machine 280 . Some virtual machines 280 , for example, may be reserved for decision tables 326 having a heavy, disproportionate, or abnormally large rate 290 of generation. Other virtual machines 280 may be reserved for decision tables 326 having intermediate and low rates 290 of generation. The rate 290 of generation may thus be a gauge or measure of which virtual machine 280 is assigned the decision table 326 .
  • Exemplary embodiments thus include a service environment. Exemplary embodiments may manage and/or execute many different decision tables 326 offered by many different vendors or suppliers. Indeed, the data layer server 74 may manage or even execute the digital contracts 20 while also generating the blockchain data layer 72 as still another service. The data layer server 74 may thus acts as a subcontractor or service provider, perhaps in a subscription or other compensation scheme. Any customer or client may thus send or forward its input 330 and/or its decisional output 332 to the data layer server 74 for management or execution of any digital contract 20 . The data layer server 74 may generate the data records 70 of the blockchain data layer 72 that document the management or execution of any portion of component of the digital contract 20 .
  • the data layer server 74 may publicly publish the cryptographic proof 80 within the public blockchain 76 , thus further documenting immutable evidence of the management or execution of any digital contract 20 . Any party, participant, or vendor/subcontractor may then pay or reward the data layer server 74 (such as granting its crytpocoinage 60 and 120 , as explained with reference to FIG. 19 ).
  • the data layer server 74 may thus provide contractual services.
  • the financial institution 34 may send or forward its input 330 and/or its decisional output 332 to the data layer server 74 for contractual documentation.
  • the retailer 122 , the online website 124 , and the manufacturer 128 may also send its input 330 and/or its decisional output 332 to the data layer server 74 for contractual documentation.
  • the data layer server 74 may generate the data records 70 of the blockchain data layer 72 that document the management and/or execution of any decision table 326 representing any portion of the digital contract 20 .
  • the data layer server 74 may also publicly publish each cryptographic proof 80 within the public blockchain 76 , thus further documenting immutable evidence of the management and/or execution of any digital contract 20 .
  • the data layer server 74 may be paid or rewarded via their respective crytpocoinage 60 and 120 .
  • Exemplary embodiments may thus create factored decision tables driven by a table engine. Smart, digital contracts are notoriously dangerous. Decision tables are significantly easier to verify and validate. However, decision tables may be large and perhaps cannot be placed on a blockchain. Exemplary embodiments may thus put smaller contractual components of the digital contract 20 on any blockchain (such as the private blockchain 24 or the public blockchain 76 ), validate the contractual components (perhaps via the cryptographic proof 80 ), incorporate the cryptographic proof 80 into a larger component of the digital contract 20 , and then validate the larger component.
  • any blockchain such as the private blockchain 24 or the public blockchain 76
  • validate the contractual components perhaps via the cryptographic proof 80
  • incorporate the cryptographic proof 80 into a larger component of the digital contract 20 and then validate the larger component.
  • Exemplary embodiments thus may separate the blockchain data layer data 72 from contractual execution.
  • the data layer server 74 (generating the blockchain data layer data 72 ) may thus accept inputs from the servers (such as the remote server 262 ) executing any component of the digital contract 20 .
  • the servers (such as the remote server 262 ) executing any component of the digital contract 20 may also send data to the data layer server 74 .
  • the data layer server 74 may thus execute the decision table.
  • the remote server 262 may additionally or alternatively execute the decision table when processing the digital contract 20 .
  • the decision table may thus be sent and/or received as an input/output. Even a virtual machine may access and use the decision table.
  • Exemplary embodiments thus establish the digital contract 20 as an identity. Because only the contract identifier 28 is needed, the digital contract 20 may be separated into various smaller components (such as the software modules 310 and/or layers 312 , as above explained). Each software module 310 and/or layer 312 may have its own contract identifier 28 . The digital contract 20 is thus transformed to an identity, which may be easily updated after software bugs are found and consensus is documented by stake holders. Exemplary embodiments thus provide an ability to repair bugs and to claw back or backup spurious results. The separation of the blockchain data layer data 72 thus isolates and protects the data records 70 .
  • Exemplary embodiments thus describe a novel smart contract architecture to be run on blockchains.
  • the digital contract 20 and/or its contractual components, may each have its own digital identity defined within the blockchain data layer data 72 .
  • the contract identifier 28 may uniquely identity a version, thus allowing stakeholders (using their digital identities) to approve updates to respond to changes in business, to approve bug resolution, and to accommodate new participants in the digital contract 20 , without having to dissolve the original version and without redeploying or requiring the blockchain to be reversed and modified to avoid an incorrect, improper, or unacceptable result by perhaps a majority of users.
  • modifying a blockchain to resolve an issue involves many more stakeholders with an interest in the blockchain but having no interest in the smart contract. This has been a problem with conventional blockchain architectures.
  • Exemplary embodiments may separate the blockchain data layer data 72 from the rules engine architecture that executes the digital contract 20 .
  • Exemplary embodiments allow for light weight, secure, and extendible digital identity.
  • Digital identity can be applied to implementation of the virtual machine that runs the digital contract 20 .
  • Digital identity can be applied to any smart contract and/or to any stakeholder(s). Stakeholders may thus be paid (perhaps via the cryptocurrencies as explained with reference to FIGS. 13 & 15-21 ) for who they are, such as to a particular blockchain address, meaning if a stakeholder's address is compromised, then the stakeholder can update the address without having to modify the digital contract 20 .
  • This virtual address modification is similar to the real world for when a business moves from one geographic location to another, the business does not invalidate all its contracts.
  • Exemplary embodiments allow management of the digital contract 20 in a flexible fashion, similar to management of contracts in the real world, but with blockchain security and data integrity of the actual digital contract 20 , automation of provisions in the digital contract 20 , and cryptopayment support.
  • Exemplary embodiments are also scalable.
  • Layers or modules 310 and 312 can be created in the digital contract 20 and/or in the private blockchain 24 or the public blockchain 76 for improved flexibility and management via hardware computers.
  • the data records 70 in the blockchain data layer data 72 are safely separated from the servers that execute the digital contract 20 .
  • Contract servers e.g., the contractual application layer
  • Exemplary embodiments provide numerous advantages. Because the contractual execution is separate from the blockchain data layer data 72 , the results of the digital contract 20 are securely documented and may be exported to other contractual components or to other digital contracts. Exemplary embodiments may thus implement and offer multiple modules 310 , layers 312 , or instances of different contractual components that can exchange inputs and outputs to build a networking effect between different layers, modules, and smart contracts.
  • a first server running a first application layer (and perhaps executing a first smart contract) can be entirely separate a second server running a second smart contract and a third server running a third smart contract.
  • the blockchain data layer 72 though, exchanges and thus documents their respective inputs and outputs.
  • the various servers may thus manage and/or share the same cryptotokens, or different entity tokens may be exchanged within each layer. Regardless, exemplary embodiments may coordinate exchanges of value for services performed. Great flexibility in defining the value of cryptotokens and the value into and out of smart contract.
  • Exemplary embodiments may also have jurisdictional advantages. Particular servers may be specific to particular jurisdictions and/or particular smart contracts. For example, some application layers may cross jurisdictional servers with different compliances. As another example, suppose that one application layer may require qualified investors with full know your client (or “KYC”) compliance. Another application layer may be anonymous and/or allow all corners. Even if the blockchain data layer 72 has a small set of users/clients, large smart contracts may be managed, implemented, and/or documented.
  • the digital contract 20 may utilize conventional programming languages and/or decision tables. In particular, some programming languages and decision tables, like purely functional languages, may mathematically prove contractual algorithms. These mathematical proofs may yield much more secure smart contracts than conventional languages that run on today's blockchains. Previously, smart contracts were often too big in size to execute on a blockchain.
  • the separate blockchain data layer 72 allows scaling and implementing smart contracts “off chain.”
  • the proof 80 of the digital contract 20 is a hash value, perhaps in association with the contract identifier 28 and/or the chain identifier 174 , as documented by the data records 70 in the blockchain data layer 72 .
  • the hash value of the proof 80 in other words, is a very small value (in relation to the size of the smart contract).
  • the digital contract 20 may thus be provided to any or all parties and/or any or all stakeholders for validation of its terms, obligations, and performance.
  • the cryptographic proof 80 thus verifies execution without stuffing large amounts of data onto the private blockchain 24 or the public blockchain 76 .
  • Exemplary embodiments may use decision tables for smart contracts.
  • Decision tables are well understood, perform well, and are verifiable relative to brute-force code writing. Simply put, custom programming code introduces many variables and software bugs are inevitable.
  • Decision tables are also very amenable to domain-specific languages. As the reader may understand, domain-specific languages accept near-English statements as inputs and generate computer code as outputs. Subject matter experts may thus define the functionality of the digital contract 20 , perhaps without relying on the skills of computer programmers (who may not fully understand the subject matter). Decision tables are thus approachable to subject matter experts and easily implemented. Decision tables may also be combined with other decision tables, which allows performance proven and validated functions may be incorporated into smart contracts for many objectives and outcomes.
  • Decision tables may thus be mixed and matched as components to a composite digital contract 20 , and a collection of decision tables representing the digital contract 20 may still be validated to ensure correct operation.
  • Decision tables define much smaller numbers of programming paths through the software code representing the digital contract 20 , which ensures that all contractual combinations may be enumerated and proper results can be expected for a range of values.
  • decision tables may be big in size, so some decision tables may not be feasible as a smart contract on a conventional blockchain.
  • the digital identity e.g., the contract identifier 28
  • the servers each perhaps having its own identity
  • Exemplary embodiments may also define the mechanism for cryptotoken-based payments that incentivize the remote server 262 to perform the digital contract 20 and to verify and validate the digital contract 20 .
  • Component and composite performance may be tracked, recorded, and proved. For example, if a virtual machine runs the digital contract 20 (as above explained), execution in the virtual environment can be tracked. Virtual machines may often have software bugs that affect an interpretation of the decision tables.
  • the virtual machine may thus have its own digital identity, as defined by the database 44 of contracts (as above explained). Different versions of the virtual machine and/or the decision table may thus be mapped within the database 44 of contracts, thus allowing redirection after software bugs have been resolved.
  • the database 44 of contracts in other words, may be updated with entries that point to different versions for different parties and/or to corrected or improved versions.
  • Digital identities extend to engines and decision tables.
  • the database 44 of contracts may map or point to servers, domains, decision tables, and their respective versions.
  • the digital contract 20 (and/or its components, as represented by their respective contract identifiers 28 ) ensures execution, regardless of the environment. Because the blockchain data layer 72 documents all this component processing, the data records 70 may prove (via the cryptographic proof 80 ) that the correct contractual component was used, the correct decision table(s) was/were used, the correct virtual machine was used, and the correct input or output data was used. Verification may driven from the contractual components, the data components, and the hardware components at the correct time for the correct time period.
  • a software application may be a generic term for user-side software that reads from and/or writes to the Factom system. It could be software with a human interface, or could be completely automated. The Application is interested in the data organized by the Chains it needs.
  • DApps Distributed Applications
  • Factom a trading engine that processes transactions very fast, with very accurate timestamping.
  • Such an Application may nonetheless stream transactions out into Factom chains to document and secure the ledger for the engine.
  • Such a mechanism could provide real-time cryptographic proof of process, of reserves, and of communications.
  • log analysis is a complex task. Additionally, logs tend to be easily forgeable and also heterogeneous as they are produced by each system independently and stored in a variety of media (files, databases, cloud services etc.). With Factom and a few uniquely designed crypto-audit tools an entities log analysis can become safer, simpler, and much more powerful. Let's see this with an example. Suppose a Bank (B), a Payment Provider (PP), and a Bitcoin company (BC) are interacting together as follows:
  • Audits are another useful tool against spam, if the application is willing to trade off security versus convenience. Auditors could post “ignore” lists on the same chain, or create their own audit chains with those lists. An auditor could use a profile chain to develop their reputation, which would also allow review by other auditors. If any auditor made a bad call, it would be easily verifiable and the record of it would be permanent. Some validity processing is gray, in the sense that opinions may vary. Solving that problem would be implementation specific.
  • Another example is a sybil attack of the DHT.
  • Distributed Hash Tables in general are particularly susceptible to sybil attacks.
  • An attacker could create many peers which make it difficult for honest nodes to communicate.
  • attackers can isolate a required piece of data from honest nodes.
  • Sybil attacks have been observed on the BitTorrent network routing table.
  • the paper “Real-World Sybil Attacks in BitTorrent Mainline DHT” detail these attacks. Fighting this type of attack is an active topic in academic research.
  • One mitigation technique uses complex lookup techniques to find honest nodes among the sybils, studied in “Sybil-resistant DHT routing”.
  • a dictionary attack is now discussed.
  • the attacker runs through all the Chain Names deemed to be possible or desirable and creates their ChainIDs, and the hashes of those ChainIDs. Then they watch for someone trying to create those Chains. Now the attacker can front run on a match. Because on a match, they know the ChainID, so they can construct a proper, but malicious Entry of their own, create the proper Chain payment and submit it rather than the users payment. If the attacker gets ahead of the user, then they will win.
  • the defense against a dictionary attack is to avoid common name spaces and to submit your payment to multiple, long standing nodes in the network. In Factom, the flexibility of defining the Chain namespace makes efforts to hog the namespace ineffective.
  • Federated servers can delay recording of Entry payments. But because Entry payments are submitted via a distributed set of Factom Nodes, delaying of Entry payments will be noted. Users may withdraw support from servers without reasonable performance compared to the rest of the network.
  • Federated servers can delay the recording of Entries. Here the payment is accepted (generally by another server) fairly quickly. But for one reason or another, a Federated server refuses to record the Entry. In the next minute, responsibility for that Chain will shift to another server. As long as most servers are honest, the Entry will be recorded. Then the data over time will show that a server is delaying Entries. This will cause them potentially to lose support.
  • Federated servers can at any point send false messages.
  • the other Federated servers then would issue a SFR on the on the rogue server when those messages didn't make sense.
  • a majority of the servers issuing an SFR would boot the rogue server, then the network would ignore their messages and not forward them on.
  • Federated servers can refuse to accept valid Entry payment messages based on the public address, under the assumption that the public address is associated with some party. Again, assuming a majority of servers are honest, the payment will be accepted when the control shifts to an honest server. Furthermore, nodes watching will see the delay, and perhaps a pattern of delays, and support will be lost for the misbehaving servers.
  • FIG. 60 illustrates timestamping into Bitcoin, according to exemplary embodiments.
  • the Factom timestamping mechanism secures transaction in the blockchain.
  • Factom data is timestamped and made irreversible by the Bitcoin network.
  • a user's data is as secure as any other Bitcoin transaction, once published to the Bitcoin blockchain.
  • a compact proof of publication is possible for any data entered into the Factom system.
  • the user data ordering will be assigned when received at the Federated servers.
  • Factom organizes the submitted Entry references into sets of blocks. The block time for Factom is ten minutes.
  • the Federated Server network On closing, the Federated Server network generates consensus and the Entries that are part of that block structure are timestamped to a minute within the block.
  • the data could have existed long before it was timestamped.
  • An Application running on top of Factom could provide finer and more accurate timestamping services prior to Entries being recorded in Factom. The Factom timestamp only proves the data did not originate after the Factom timestamp.
  • the Merkle root of the Directory Block is entered into the Bitcoin blockchain with a spending transaction.
  • the spend includes an output with an OP_RETURN.
  • anchoring the Directory Block to the Bitcoin blockchain. This method is the least damaging to the Bitcoin network of the various ways to timestamp data.
  • the first two bytes of the available 40 in the anchor will be a designator tag (2 bytes with the value “Fa”).
  • the Factom anchor 32 bytes is concatenated onto the tag, then the block height is added (up to 6 bytes, allowing for >500,000 years).
  • the designator tag indicates the transaction could be a Factom anchor.
  • Other qualifiers are required, but the tag and Factom block height eliminates most of the OP_RETURN transactions that would otherwise need to be inspected.
  • the block height in the OP_RETURN helps to fix the order in those cases where the Bitcoin blockchain records the anchors out of order.
  • the anchored data is the Merkle root of list containing the Directory Block's Merkle root. Querying a database or DHT for the anchored data will return the Directory Block which can be used to find the rest of the data in the block.
  • the Merkle root timestamp will be entered into the Bitcoin blockchain by one of the Federated servers.
  • the server delegated to timestamp the federation's collected data creates a Bitcoin transaction.
  • the transaction will be broadcast to the Bitcoin network, and be included in a Bitcoin block. Bitcoin transactions that look like a Factom anchor, but are not spent from an address known as a Factom server would either be junk, or an attempt to fork Factom. Most users/applications would ignore such anchors.
  • Bitcoin blocks are generated with a statistical process, and as such their timing cannot be predicted. This means that the anchors are only roughly time-bound by the OP_RETURNs inserted into the Bitcoin blockchain, and its timestamping mechanism.
  • the real value of anchoring Factom to Bitcoin is to prevent anyone from generating false Factom histories. Due to bad luck of Bitcoin miners, or delayed inclusion of Factom transactions, the time between when the Factom state is frozen for a particular 10 minute period and when the anchor appears in Bitcoin can vary, perhaps significantly.
  • Proof of Work is optimized for permissionless participation and validation of the historical record of a blockchain.
  • the typical implementation of Proof of Work is to repeatedly hash blocks until one of the parties mining finds a hash with the difficulty required by the current requirements of a blockchain. This allows anyone to serve as a miner, to collect and validate transactions, pack them into blocks, and repeatedly hash that block looking for a solution that meets the difficulty requirement.
  • PoW Proof of Stake
  • Anchoring is the solution Factom uses to secure the historical record, and at the same time avoid duplicating the massive expenditure of resources required of mining.
  • a system like PoS can be used in the present, while anchoring secures the historical record.
  • the idea of supporting parties allows permissionless participation in the Factom protocol beyond that of the Authority Set.
  • the Authority Set and Anchoring means that running the Authority Servers is less expensive in resources by orders of magnitude compared to mining. Greater efficiency means that the rewards paid out by the Factom protocol can do more for the ecosystem than pay very large utility bills.
  • Factom may use various voluntary but auditable methods to incentivize using the efficiency of the authority set to set aside resources within the protocol for productive real world work.
  • a sort of Proof of Development could be used to receive these rewards using distributed support to identify work to be done, and evaluate the quality of the work that results. Such a system could provide rewards for development alongside the rewards generated for the authority set.
  • a “Proof of Development” comes with its own issues.
  • the main issue is the “Oracle Problem,” where it is very hard to know from within the programming of a blockchain protocol what might be useful development in the real-world and evaluate the quality of such development once it is done.
  • Factom may develop mechanisms to incentivize supporting parties in the protocol to create evaluation processes, audit trails, and certifications at every stage of development to address the Oracle Problem, and allow a self-correcting process to manage a viable “Proof of Development” that is more productive and ecologically friendly than simply rewarding the burning of energy resources for security.
  • Factom differs from Bitcoin and Sidechains. Factom is very different from Bitcoin, and in fact very different from any current cryptocurrency project.
  • Cryptocurrencies like Bitcoin implement a strict, distributed method for the validation of transactions, where anyone can validate each transaction, and the validity of every input into a transaction can be verified. Because each transaction is authorized via cryptographic proof, no transaction can be forged.
  • Each transaction can be checked for validity by verifying signatures of each transaction, and the miners hold each other accountable for only including valid transactions.
  • the Bitcoin protocol is transactionally complete. In other words, the creation and distribution of Bitcoins through transactions is completely defined within the Bitcoin protocol.
  • Transactions which specify movement of Bitcoin
  • block discovery which move bitcoin via mining fees and provide block rewards
  • Pegged sidechains when implemented, will provide additional movement of Bitcoin value outside the blockchain, while the pegged value is in stasis in the blockchain.
  • the sidechains proposal describes a solution to increase the scalability of Bitcoin by allowing value control to move off the blockchain and onto a sidechain.
  • many trades can occur.
  • a cryptographic proof (not all the transactions in between) can be recorded in the blockchain which moves the BTC out of stasis in Bitcoin. This proof would have to be available to the Bitcoin miners, but the bulk of the transaction data would be left behind in the sidechain.
  • Factom is in some sense attempting to increase scalability, but not by enabling more value transactions, but by moving non-BTC transactions off blockchain. This would be transactions that are not primarily intended to transfer Bitcoin value. For example transactions could manage domain name registrations, log security camera footage, track the provenance for art work, and even establish the value of show horses by documenting their history. Some of these do not move a value at all, like transactions establishing a proof of publication.
  • Factom is also different from other blockchain technologies. Many different groups are looking to find ways to leverage the Bitcoin approach for managing other sorts of transactions besides tracking bitcoin balances. For example, the trading of assets such as houses or cars can be done digitally using Bitcoin extensions. Even the trading of commodities such as precious metals, futures, or securities might be done via clever encoding and inserting of information into the Bitcoin blockchain. Efforts to expand Bitcoin to cover these kinds of trades include Colored Coins, Mastercoin, and Counterparty. Some developers choose to build their own cryptocurrency with a more flexible protocol that can handle trades beyond currency. These include Namecoin, Ripple, Ethereum, BitShares, NXT, and others.
  • Open Transactions uses Cryptographic signatures, signed receipts and proof of balance for users (i.e., a user does not need the transaction history to prove their balance, just the last receipt). In this way, OT can provide the spend of centralized servers without the risk of a centralized server that can alter client balances.
  • Factom is decentralized, and only records Entries. So Factom can record data that would not meet OT's rules. But Factom will not execute at the rate OT can initially. Factom is distributed, and we expect that some, but not all users will employ cryptographic techniques similar to OT with their records.
  • Factom An Application built upon Factom seeks to gain the ability to track assets and implement contracts, by leveraging the blockchain directly. Instead of inserting transactions into the blockchain (viewed as “blockchain bloat” by many), Factom records its Entries within its own structures. At the base level, Factom records what Chains have had Entries added to Factom within the Directory Block time. Scanning these records, Applications can pick out the Chains in which they are interested. Factom records each Chain independently, so Applications can then pull the Chain data they need.
  • Factom is organized in a way that minimizes connections between user Chains.
  • a Chain in Factom can be validated without any of the information held in other, unrelated Chains. This minimizes the information a Factom user has to maintain to validate the Chains they are interested in.
  • Factom Consensus Similarities and Differences from Proof of Stake are discussed.
  • the policy and reward mechanism in Factom is similar to Proof of Stake (PoS).
  • PoS Proof of Stake
  • Factom differs from most PoS systems in that many subsets of user stake and/or contribution may be recognized.
  • Individual categories of stake can be weighted against each other to further decentralized Factom. This is an attempt to make the servers answerable to the users actively using and contributing to the protocol.
  • the individual users would delegate their support to a server.
  • the Federated servers with the top numbers of support would be responsible for coming to consensus.
  • Stake grinding is a problem where an attacker with a sizable (say 10%), but not majority share can formulate false histories. From some point in history, they can costlessly fork the blockchain, choosing to reorder past transactions such that their stake is always selected to create the subsequent blocks. They would be able to present this alternate version of history as part of an attack to steal value by double spending. Bitcoin solves this problem by strongly linking the information domain, where computers make decisions, with the thermodynamic domain, where humans burn energy. Considerable resources are expended in the thermodynamic domain, and is provable in the information domain. Bitcoin makes forming false histories hugely expensive.
  • Factom is unable to create alternate histories after the fact, since it is unable to insert transactions into historical Bitcoin blocks. It is also unable to create parallel histories without being detected, since Factom is linked to Bitcoin with known Bitcoin private keys.
  • Bitcoin solves this problem by having unintelligent unambiguous automatable rules for selecting the correct fork.
  • the correct fork is the one with the most Proof of Work (PoW).
  • PoW Proof of Work
  • Factom will also have unintelligent unambiguous automatable rules to select a correct fork, should one arise.
  • FIG. 61 is a flowchart illustrating a method or algorithm for processing of the digital contract 20 , according to exemplary embodiments.
  • the contract identifier 28 , the contractual parameter 30 , and/or the table identifier 334 is/are received (Block 340 ).
  • the network resource 50 is identified (Block 342 ), and the contract processor may be an IP address, URL, virtual machine, or other network destination representing a vendor, contractor, server, or service that executes the decision table 326 and/or the digital contract 20 .
  • the service request 266 is sent (Block 344 ), the service update 270 is received (Block 346 ), and the service response 268 is received (Block 348 ).
  • the data records 70 in the blockchain data layer 72 are generated (Block 350 ), and the data records 70 describe the execution of the digital contract 20 .
  • the data records 70 may be hashed (Block 352 ) and incorporated into the public blockchain 24 (Block 354 ).
  • FIG. 62 is a schematic illustrating still more exemplary embodiments.
  • FIG. 62 is a more detailed diagram illustrating a processor-controlled device 360 .
  • the entity's private software application 40 , the data layer application 154 , and/or the contract application 302 may partially or entirely operate in any mobile or stationary processor-controlled device.
  • FIG. 62 illustrates the entity's private software application 40 , the data layer application 154 , and/or the contract application 302 stored in a memory subsystem of the processor-controlled device 360 .
  • One or more processors communicate with the memory subsystem and execute either, some, or all applications. Because the processor-controlled device 360 is well known to those of ordinary skill in the art, no further explanation is needed.
  • FIG. 63 depicts other possible operating environments for additional aspects of the exemplary embodiments.
  • FIG. 63 illustrates the entity's private software application 40 , the data layer application 154 , and/or the contract application 302 operating within various other processor-controlled devices 360 .
  • FIG. 63 illustrates the entity's private software application 40 , the data layer application 154 , and/or the contract application 302 operating within various other processor-controlled devices 360 .
  • FIG. 63 depicts other possible operating environments for additional aspects of the exemplary embodiments.
  • FIG. 63 illustrates the entity's private software application 40 , the data layer application 154 , and/or the contract application 302 operating within various other processor-controlled devices 360 .
  • the entity's private software application 40 , the data layer application 154 , and/or the contract application 302 may entirely or partially operate within a smartphone 362 , a personal/digital video recorder (PVR/DVR) 364 , a Global Positioning System (GPS) device 366 , an interactive television 368 , a tablet computer 370 , or any computer system, communications device, or processor-controlled device utilizing any of the processors above described and/or a digital signal processor (DP/DSP) 372 .
  • the processor-controlled device 360 may also include wearable devices (such as watches), radios, vehicle electronics, clocks, printers, gateways, mobile/implantable medical devices, and other apparatuses and systems. Because the architecture and operating principles of the various devices 360 are well known, the hardware and software componentry of the various devices 360 are not further shown and described.
  • Exemplary embodiments may be applied to any signaling standard. Most readers are thought familiar with the Global System for Mobile (GSM) communications signaling standard. Those of ordinary skill in the art, however, also recognize that exemplary embodiments are equally applicable to any communications device utilizing the Time Division Multiple Access signaling standard, the Code Division Multiple Access signaling standard, the “dual-mode” GSM-ANSI Interoperability Team (GAIT) signaling standard, or any variant of the GSM/CDMA/TDMA signaling standard. Exemplary embodiments may also be applied to other standards, such as the I.E.E.E. 802 family of standards, the Industrial, Scientific, and Medical band of the electromagnetic spectrum, BLUETOOTH®, and any other.
  • GSM Global System for Mobile
  • Exemplary embodiments may be physically embodied on or in a computer-readable storage medium.
  • This computer-readable medium may include CD-ROM, DVD, tape, cassette, floppy disk, optical disk, memory card, memory drive, and large-capacity disks.
  • This computer-readable medium, or media could be distributed to end-subscribers, licensees, and assignees.
  • a computer program product comprises processor-executable instructions for execution of digital contracts, as the above paragraphs explain.

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Textile Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Databases & Information Systems (AREA)
  • Mechanical Engineering (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Power Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Environmental & Geological Engineering (AREA)
  • Thermal Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A protocol cost effectively separates any blockchain (such as the Bitcoin blockchain) from any cryptocurrency (such as the Bitcoin cryptocurrency). The protocol provides client-defined Chains of Entries, client-side validation of Entries, a distributed consensus algorithm for recording the Entries, and a blockchain anchoring approach for security.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This patent application is a continuation filing of U.S. application Ser. No. 16/351,597 filed Mar. 13, 2019, since issued as U.S. Patent X, which claimed domestic benefit of U.S. Provisional Application No. 62/714,909 filed Aug. 6, 2018, with both patent applications incorporated herein by reference in their entireties. This patent application relates to U.S. application Ser. No. 15/983,572 filed May 18, 2018 and incorporated herein by reference in its entirety. This patent application also relates to U.S. application Ser. No. 15/983,595 filed May 18, 2018 and incorporated herein by reference in its entirety. This patent application also relates to U.S. application Ser. No. 15/983,612 filed May 18, 2018 and incorporated herein by reference in its entirety. This patent application also relates to U.S. application Ser. No. 15/983,632 filed May 18, 2018 and incorporated herein by reference in its entirety. This patent application also relates to U.S. application Ser. No. 15/983,655 filed May 18, 2018 and incorporated herein by reference in its entirety.
  • BACKGROUND
  • In today's global economy, trust is in rare supply. This lack of trust requires the devotion of a tremendous amount of resources to audit and to verify records—reducing global efficiency, return on investment, and prosperity. Moreover, incidents such as the 2010 United States foreclosure crisis demonstrate that in addition to being inefficient, the current processes are also terribly inaccurate and prone to failure.
  • BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
  • The features, aspects, and advantages of the exemplary embodiments are understood when the following Detailed Description is read with reference to the accompanying drawings, wherein:
  • FIGS. 1-8 illustrate a Factom protocol and system, according to exemplary embodiments;
  • FIGS. 9-21 are simplified illustrations of a digital contract in a blockchain environment, according to exemplary embodiments;
  • FIGS. 22-24 are more detailed illustrations of an operating environment, according to exemplary embodiments;
  • FIGS. 25-29 illustrate a blockchain data layer, according to exemplary embodiments;
  • FIGS. 30-32 further illustrate the digital contract, according to exemplary embodiments;
  • FIGS. 33-35 illustrate an access mechanism, according to exemplary embodiments;
  • FIG. 36 illustrates a public entity, according to exemplary embodiments;
  • FIGS. 37-40 illustrate contractual execution, according to exemplary embodiments;
  • FIGS. 41-42 illustrate virtual execution, according to exemplary embodiments;
  • FIG. 43 illustrates cryptographic affinities, according to exemplary embodiments;
  • FIG. 44 illustrates virtual assignments based on the blockchain data layer, according to exemplary embodiments;
  • FIGS. 45-51 illustrate an architectural scheme, according to exemplary embodiments;
  • FIG. 52 illustrates compliance scheme, according to exemplary embodiments;
  • FIGS. 53-59 illustrate a decisional architecture and scheme, according to exemplary embodiments;
  • FIG. 60 is a flowchart illustrating a method or algorithm for executing of digital contracts, according to exemplary embodiments; and
  • FIGS. 61-63 depict still more operating environments for additional aspects of the exemplary embodiments.
  • DETAILED DESCRIPTION
  • The exemplary embodiments will now be described more fully hereinafter with reference to the accompanying drawings. The exemplary embodiments may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. These embodiments are provided so that this disclosure will be thorough and complete and will fully convey the exemplary embodiments to those of ordinary skill in the art. Moreover, all statements herein reciting embodiments, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future (i.e., any elements developed that perform the same function, regardless of structure).
  • Thus, for example, it will be appreciated by those of ordinary skill in the art that the diagrams, schematics, illustrations, and the like represent conceptual views or processes illustrating the exemplary embodiments. The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing associated software. Those of ordinary skill in the art further understand that the exemplary hardware, software, processes, methods, and/or operating systems described herein are for illustrative purposes and, thus, are not intended to be limited to any particular named manufacturer.
  • As used herein, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless expressly stated otherwise. It will be further understood that the terms “includes,” “comprises,” “including,” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. It will be understood that when an element is referred to as being “connected” or “coupled” to another element, it can be directly connected or coupled to the other element or intervening elements may be present. Furthermore, “connected” or “coupled” as used herein may include wirelessly connected or coupled. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
  • It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first device could be termed a second device, and, similarly, a second device could be termed a first device without departing from the teachings of the disclosure.
  • FIG. 1 illustrates a distributed, autonomous Factom protocol, according to exemplary embodiments. The Factom protocol cost effectively separates any blockchain (such as the Bitcoin blockchain) from any cryptocurrency (such as the Bitcoin cryptocurrency). The Factom protocol provides client-defined Chains of Entries, client-side validation of Entries, a distributed consensus algorithm for recording the Entries, and a blockchain anchoring approach for security.
  • When Satoshi Nakamoto launched the Bitcoin blockchain he revolutionized the way transactions were recorded. There had never before existed a permanent, decentralized, and trustless ledger of records. Developers have rushed to create applications built on top of this ledger. Unfortunately, they have been running into a few core constraints intrinsic to the original design tradeoffs of Bitcoin.
      • 1) Speed—because of the design of the decentralized, proof-of-work consensus method used by Bitcoin, difficulty requirements are adjusted to maintain roughly 10 minute confirmation times. For applications that wish greater security, multiple confirmations may be required. A common requirement is to wait for 6 confirmations, which can lead to wait times over an hour.
      • 2) Cost—the default transaction cost is around 0.01 mBTC (roughly $0.003 USD in November 2014, and as much as $80 USD per transaction at times in 2017). The exchange price of BTC has been volatile throughout its history. If the price of BTC rises, then the cost of transactions can go up. This can prove to be a serious cost barrier to applications that need to manage very large numbers of transactions. Additionally, many factors including constraints on block size and reward halving could act to increase transaction fees.
      • 3) Bloat—with the Bitcoin blockchain size limit of 1 MB per block, transaction throughput is capped at 7 transactions per second. Any application that wants to write and store information using the blockchain will add to the traffic. This problem has become politically charged as various parties seek to increase the block size limit and are met with resistance from those concerned about decentralization.
  • Factom is a protocol designed to address these three core constraints. Factom creates a protocol for Applications that provide functions and features beyond currency transactions. Factom constructs a standard, effective, and secure foundation for these Applications to run faster, cheaper, and without bloating Bitcoin.
  • Once the system is set up, including issuance of Factoids (i.e., the cryptocurrency of Factom) and user accounts, token value is transferred among users, Factom, and Bitcoin with the following primary interactions:
  • 1. Application Owner purchases Entry Credits with Factoid
  • 2. Application records an Entry
  • 3. Factom Servers create Entry Blocks and Directory Blocks
  • 4. Factom secures an anchor (hash of the Directory Block) onto the blockchain
  • Details of these and other interactions are in the upcoming sections.
  • The Factom protocol secures entries. Factom extends Bitcoin's feature set to record events outside of monetary transfers. Factom has a minimal ruleset for adding permanent Entries. Factom pushes most data validation tasks to the client side. The only validation Factom enforces are those required by the protocol to trade Factoids, convert Factoids to Entry Credits, and to ensure Entries are properly paid for and recorded.
      • Factom has a few rules regarding token incentives for running the network and for internal consistency, but Factom may or may not check the validity of statements recorded in the chains used by its users.
  • Bitcoin limits transactions to those moving value from a set of inputs to a set of outputs. Satisfying the script required of the inputs (generally requiring certain signatures) is enough for the system to ensure validity. This is a validation process that can be automated, so the auditing process is easy. If Factom were used, for instance, to record a deed transfer of real estate, Factom would be used to simply record the process occurred. The rules for real estate transfers are very complex. For example, a local jurisdiction may have special requirements for property if the buyer is a foreigner, farmer, or part time resident. A property might also fall into a number of categories based on location, price, or architecture. Each category could have its own rules reflecting the validation process for smart contracts. In this example, a cryptographic signature alone is insufficient to fully verify the validity of a transfer of ownership. Factom then is used to record the process occurred rather than validate transfers.
  • Bitcoin miners perform two primary tasks. First, they resolve double spends. Seeing two conflicting transactions that spend the same funds twice, they resolve which one is admissible. The second job miners perform (along with the other full nodes) is auditing. Since Bitcoin miners only include valid transactions, one that is included in the blockchain can be assumed to have been audited. A thin client does not need to know the full history of Bitcoin to see if value they receive has already been spent.
  • Factom splits the two roles that Bitcoin miners do into two tasks: 1—recording Entries in a final order and 2—auditing Entries for validity.
      • 1—The Factom servers accept Entries, assemble them into blocks, and fix their order. After 10 minutes, the Entry ordering is made irreversible by inserting an anchor into the Bitcoin blockchain. Factom does this by creating a hash of the data collected over the 10 minutes, then recording the hash into the blockchain.
      • 2—The auditing of Entries is a separate process which can be done either with or without trust. Auditing is critical, since Factom is not able to validate Entries before they are included in the Factom dataset.
  • With trust-based auditing, a thin client could trust a competent auditor they choose. After an Entry was entered into the system, an auditor would verify the Entry was valid. Auditors would submit their own cryptographically signed Entry. The signature would show that the Entry passed all the checks the auditor deemed was required. The audit requirements could in fact be part of a Factom Chain as well. In the real estate example from earlier, the auditor would double check the transfer conformed to local standards. The auditor would publicly attest that the transfer was valid.
  • Trustless auditing would be similar to Bitcoin. If a system is internally consistent with a mathematical definition of validity like Bitcoin, it can be audited programmatically. If the rules for transfer were able to be audited by a computer, then an Application could download the relevant data and run the audit itself. The application would build an awareness of the system state as it downloaded, verified, and decided which Entries were valid or not.
  • Mastercoin, Counterparty, and Colored Coins have a similar trust model. These are all client-side validated protocols, meaning transactions are embedded into the Bitcoin blockchain. Bitcoin miners do not audit them for validity; therefore, invalid transactions designed to look like transactions on these protocols can be inserted into the blockchain. Clients that support one of these protocols scan through the blockchain and find potential transactions, check them for validity, and build an interpretation of where the control of these assets lie (usually a Bitcoin address). It is up to the clients to do their own auditing under these protocols.
  • Moving any of these client-side validated protocols under Factom would be a matter of defining a transaction per the protocol and establishing a Chain to hold the transactions. The transaction protocols wouldn't be much different under Factom than under Bitcoin, except where Factom allows an easy expression of the information needed instead of having to encode it in some special way into a Bitcoin transaction.
  • Bitcoin, land registries, and many other systems need to solve a fundamental problem: proving a negative. They prove some “thing” has been transferred to one person, and prove that thing hasn't been transferred to someone else. While proof of the negative is impossible in an unbounded system, it is quite possible in a bounded system. Blockchain based cryptocurrencies solve this problem by limiting the places where transactions can be found. Bitcoin transactions can only be found in the Bitcoin blockchain. If a relevant transaction is not found in the blockchain, it is defined from the Bitcoin protocol perspective not to exist and thus the BTC hasn't been sent twice (double spent).
  • Certain land ownership recording systems are similar. Assume a system where land transfer is recorded in a governmental registry and where the legal system is set up so that unrecorded transfers are assumed invalid (sans litigation). If an individual wanted to check if a title is clear (i.e., that no one else claims the land) the answer would be in the governmental registry. The individual using the government records could prove the negative; the land wasn't owned by a third party. Where registration of title is not required, the governmental registry could only attest to what has been registered. A private transfer might very well exist that invalidates the understanding of the registry.
  • In both of the above cases, the negative can be proven within a context. With Mastercoin the case is very strong. With a land registry, it is limited to the context of the Registry, which may be open to challenge. The real world is messy, and Factom is designed to accommodate not just the precision of digital assets, but the real world's sometimes messy reality.
  • In Factom, there is a hierarchy of data categorization. Factom only records Entries in Chains; the various user-defined Chains have no dependencies that Factom enforces at the protocol level. This differs from Bitcoin, where every transaction is potentially a double-spend, and so it must be validated. By organizing Entries into Chains, Factom allows Applications to have smaller search spaces than if all Factom data were combined together into one ledger.
  • If Factom were to be used to manage land transfers, an Application using a Chain to record such registries could safely ignore Entries in the other Chains, such as those used to maintain security camera logs. Were a governmental court ruling to change a land registration, the relevant Chain would be updated to reflect the ruling. The history would not be lost, and where such changes are actually invalid from a legal or other perspective, the record cannot be altered to hide the order of events in Factom.
  • Factom may or may not validate Entries; Entries are instead validated client-side by users and Applications. As long as an Application understands and knows the rules a Chain should follow, then the existence of invalid Entries doesn't cause unreasonable disruption. Entries in a Chain that do not follow the rules can be disregarded by the Application.
  • Users can use any set of rules for their Chains, and any convention to communicate their rules to the users of their Chains. The first Entry in a Chain can hold a set of rules, a hash of an audit program, etc. These rules then can be understood by Applications running against Factom to ignore invalid Entries client-side.
  • An enforced sequence can be specified. Entries that do not meet the requirements of the specified enforced sequence will be rejected. However, Entries that might be rejected by the rules or the audit program will still be recorded. Users of such chains will need to run the audit program to validate a chain sequence of this type. The Factom servers will not validate rules using the audit program.
  • Validation in the Applications (in combination with user-defined Chains) provides a number of advantages for Applications written on top of Factom:
      • 1) Applications can put into Factom whatever Entries make sense for their application. So, a list of hashes to validate a list of account statements can be recorded as easily as exchanges of an asset.
      • 2) Rule execution is very efficient. Where the distributed network must execute your validation rules, then validation requires all nodes to do all validation. Client-side validation only requires the systems that care about those rules to run them. Factom allows a Chain to define its rules in whatever language the designers choose, to run on whatever platform they choose, and to use any external data. None of these decisions on the part of one Application has any impact on another Application.
      • 3) Factom Servers have little knowledge about the Entries being recorded. We use a commitment scheme to limit knowledge, where the commitment to record an Entry is made prior to revealing what the Entry is. This makes Factom's role in recording Entries very simple, and makes individual server processes public. Factom servers accept information from the network of full nodes, and their decisions and behavior are in view. Failure to perform can be audited both from the network outside Factom, and within Factom. It is easy to independently verify that a Factom server is fulfilling its Entry-recording responsibility; Factom can't hide potentially errant behavior.
      • 4) Recording speeds can be very fast, since the number of checks made by the Factom servers are minimal.
      • 5) Proofs against any particular Chain in Factom do not require knowledge of any other Chains. Users then only need the sections of Factom they are using and can ignore the rest.
  • At its heart, Factom is a decentralized way to collect, package, and secure data into the Bitcoin blockchain. Factom accomplishes this with a network of Authority servers. Authority Servers are the set of Federated Servers and Audit Servers which share responsibility for different aspects of the system. The Federated Servers actually acknowledge and order entries and transactions in Factom, and Audit Servers duplicate and audit the work done by the Federated Servers and are always ready to replace a Federated Server that might go offline.
  • The design ensures decentralization. No single server is ever in control of the whole system, but only a part of the system. All servers verify and double check the work of all other servers. And no server is permanently in control of any part of the system; the responsibility for each part of Factom cycles among the Federated Servers each minute, and the role of being a Federated Server or an Audit Server shifts among the servers in the Authority Set (the set of all Authority Servers).
  • The Federated servers take a very active role in running the protocol. The Federated servers each take responsibility for a subsection of the user Chains at the beginning of the creation of a Directory Block. The process works like this:
      • 1. All servers reset their process lists to empty.
      • 2. The user submits an Entry Payment using a public key associated with Entry Credits
      • 3. Based on the public key used to pay for the Entry, one of the servers accepts the payment.
      • 4. That server broadcasts the acceptance of the payment.
      • 5. The user sees the acceptance and submits the Entry.
      • 6. Based on the ChainID of the Entry, one of the servers adds the Entry to its process list, and adds the Entry to the appropriate Entry Block for that ChainID (creating one if this is the first Entry for that Entry Block).
      • 7. The server broadcasts an Entry confirmation, containing the process list index of the Entry, the hash of the Entry (linked to the payment), and the serial hash so far of the server's process list.
      • 8. All the other servers update their view of the server's process list, validate the list, and update their view of the Entry Block for that ChainID.
      • 9. As long as the user can validate the relevant process list holds their Entry, then they have a fair level of assurance it will be successfully entered into Factom.
      • 10. At the end of the minute, each server confirms the end of their section of the process list. The end of the minute is marked in the process list, and the responsibility for particular chains shifts around the authority set.
      • 11. At the end of the 10th minute, a Directory Block is constructed from all the Entry Blocks defined by the process lists built by all the servers. So, each server has all Entry Blocks, all Directory Blocks, and all Entries.
      • 12. A deterministic method (that can be computed by all nodes in protocol) will shift responsibility for particular ChainIDs among the servers for the next round.
      • 13. At the completion of the Directory Block, the Merkle root of the Directory block is placed in a Bitcoin transaction and submitted to the Bitcoin network for eventual confirmation.
      • 14. Repeat. (Go back to 1)
  • The Federated servers for their minute are constructing a process list for the Chains for which they are responsible, as well as constructing the Entry Blocks that will be used to create the Directory Block at the end of the 10 minutes. The process list is important for broadcasting decisions made by a server to the rest of the network.
  • The servers in the authority set are re-ranked on a regular, scheduled basis. The ranking is a function of support by the standing parties, who must create a profile Chain in Factom. The profile contains any number of signed public address Entries. The weight of a standing party's support is determined by various public addresses and entries in their profile. The function computing the weight of a standing party uses a combination of many factors. Such weights may be organized in categories to further distribute influence. Factors that determine an identity's weight include factors that can be measured from the protocol, and audited by the protocol. Examples of factors that might be used to calculate weight include:
  • Weighted Number of Entry Credits purchased.
  • Weighted Number of Entries used.
  • Tokens “staked” to a profile Chain, and not moved or transferred.
  • Tokens used to build infrastructure, support the protocol, provide services
  • Providing guidance and facilitating the operation of the protocol.
  • Support may be specified by the Standing parties at any time. At regular intervals, the support of all the servers in the Authority set will be evaluated, and the membership of the authority set adjusted. The same mechanism can be used to measure support in the protocol for decisions about the protocol.
  • To maintain a position in the authority set, servers must continually demonstrate the ability to maintain their ability to monitor and keep up with the operation of the protocol. The Federated Servers do this by simply doing their job and syncing with the end of minute operations with all other Federated Servers. Performance in the protocol's ecosystem may also factor into decisions to support or not support an authority node. Audit servers may have to issue a heartbeat message, that can be monitored by the network. Other solutions are possible.
  • Managing timeouts and monitoring heartbeats will be done according to the needs and load on the protocol.
  • Factom System Overview
  • FIG. 3 illustrates the Factom protocol as a set of layered data structures, according to exemplary embodiments. Factom is constructed of a hierarchical set of blocks, with the highest being Directory Blocks. They constitute a micro-chain, consisting primarily of compact references. To keep the size small, each reference in the Directory Block is just a hash of the Entry Block plus its ChainID. These Entry Blocks have references which point to all the Entries with a particular ChainID which arrived during a time period. The Entry Block for a Chain ID is also part of a micro-chain. The bulk of the data in Factom is at the leaves, the Entries themselves. These hierarchical data structures are rendered unchangeable by Bitcoin's hashpower. They can be conceptualized as different layers. The layers and concepts in the Factom system are:
  • 1) Directory Layer—Organizes the Merkle Roots of Entry Blocks
  • 2) Entry Block Layer—Organizes references to Entries
  • 3) Entries—Contains an Application's raw data or a hash of its private data
  • 4) Chains—Grouping of Entries specific to an Application
  • Directory Layer: How the Directory Layer Organizes Merkle Roots
  • The Directory layer is the first level of hierarchy in the Factom system. It defines which Entry ChainIDs have been updated during the time period covered by a Directory Block. (ChainIDs identify the user's Chain of Entries; the generation of the ChainID is discussed later.) It mainly consists of a list pairing a ChainID and the Merkle root of the Entry Block containing data for that ChainID.
  • Each Entry Block referenced in the Directory Block takes up 64 bytes (two 32 byte hashes, the ChainID and the Merkle root of the Entry Block). A million such Entries would result in a set of Directory Blocks roughly 64 MB in size. If the average Entry Block had 5 Entries, 64 MB of Directory Blocks would provide the high level management of 5 million distinct Entries. Note that the exact implementation of Directory blocks my vary as we build for greater scale in the future.
  • If an Application only has the Directory Blocks, it can find Entry Blocks it is interested in without downloading every Entry Block. An individual Application would only be interested in a small subset of ChainIDs being tracked by Factom. This greatly limits the amount of bandwidth an individual client would need to use with Factom as their system of record. For example, an Application monitoring real estate transfers could safely ignore video camera security logs.
  • Factom servers collect Merkle roots of Entry Blocks and package them into a Directory Block. Directory Block the Merkle roots are recorded into the Bitcoin blockchain. This allows the most minimum expansion of the blockchain, and still allows the ledger to be secured by the Bitcoin hash power. The process of adding the Merkle root into the Bitcoin blockchain we referred to as “anchoring”. See the section “Appendix: Timestamping into Bitcoin” for further details.
  • Data entered into Directory Blocks is the most expensive, from a bandwidth and storage perspective. All users of Factom wishing to find data in their Chains need the full set of Directory Blocks starting from when their Chain began.
  • Activities that increase the Directory Block size include the creation and first update of individual Chains. These activities externalize costs of Applications attempting finer-grained organization.
  • The Applications must be required to expend more Entry Credits than a simple Entry would necessitate to discourage bloating the Directory Blocks.
  • Entry Block Layer: How the Entry Block Layer Organizes Hashes and Data
  • FIG. 4 illustrates entry blocks of the Factom protocol, according to exemplary embodiments. Entry Blocks are the second level of hierarchy in the system. Individual Applications will pay attention to various ChainIDs. Entry Blocks are the place where an Application looking for Entries can expand its search from a ChainID to discover all possibly relevant Entries.
  • There is one Entry Block for each updated ChainID per Directory Block. The Entry Blocks contain hashes of individual Entries. The hashes of Entries both prove the existence of the data and give a key to find the Entries in a Distributed Hash Table (DHT) network. (See the below explanation of the “Factom Peer-to-Peer Network” for more detail.)
  • The Entry Blocks encompass the full extent of possible Entries related to a ChainID. If an Entry is not referred to in an Entry Block, it can be assumed not to exist. This allows an Application to prove a negative, as described in the section Security and Proofs.
  • The Entry Block intentionally does not contain the Entries themselves. This allows the Entry Blocks to be much smaller than if all the data was grouped together. Separating the Entries from the Entry Blocks also allows for easier auditing of auditors. An auditor can post Entries in a separate chain that approves or rejects Entries in a common chain. The audit can add reasons for rejection in its Entry. If an Application trusts the auditor, they can cross reference that the auditor has approved or rejected every Entry, without knowing what the Entry is. The Application would then only attempt to download the Entries which passed the audit. Multiple auditors could reference the same Entries, and the Entries would only exist once on the Distributed Hash Table (DHT). Entries are expected to be significantly larger than the mere 32 bytes a hash takes up. Lists of things to ignore do not have to have the full object being ignored for an Application to know to ignore it. The exact implementation of entry blocks may vary in the future in response to identified improvements possible in the protocol.
  • An Entry detailing the specifics of a land transfer would be entered into a Chain where land transfers of that type are expected to be found. One or more auditors could then reference the hashes of land transfer in their own Chains, adding cryptographic signatures indicating a pass or fail. The land transfer document would only need to be stored once, and it would be referenced by multiple different Chains.
  • FIG. 5 illustrates how entries are created, according to exemplary embodiments. Entries are constructed by users and submitted to Factom. By hashing or encoding information, the user can ensure the privacy of Entries. The Entries can instead be plain text if encoding or obscuring the data isn't necessary. By recording a hash of a document, Factom can provide basic proof of publication. Presenting the document at a later time allows one to create its hash, and compare it to the hash recorded in the past.
  • There is lots of flexibility in the data that is accepted. It can be something short like a hyperlink. It could also be larger, but not too large, since fees limit the size of the data accepted. This is similar to Bitcoin. Large 100 kB+Bitcoin transactions are possible, but would need to pay a proportionately greater transaction fee. This size, while gigantic in Bitcoin, would be moderately sized for Factom. Since every Bitcoin full node needs the entire blockchain to fully validate, it needs to stay small. In Factom, only the highest level Directory Blocks are required to fully validate a Chain. If someone is not specifically interested in a Chain's data, they would not download it.
  • Take a simple example of an uneditable Twitter-like system. A celebrity would craft an Entry as a piece of text. They would then sign it with a private key to show it came from them. Followers of the celebrity would find which Chain they publish in and would monitor it for updates. Any new signed Entries would be recognized by follower's Application software as a tweet. Others could tweet at the celebrity by adding Entries to the celebrity's Chain.
  • FIG. 6 illustrates the complete Factom protocol and system, according to exemplary embodiments. Chains in Factom are sequences of Entries that reflect the events relevant to an Application. These sequences are at the heart of Bitcoin 2.0. Chains document these event sequences and provide an audit trail recording that an event sequence occurred. With the addition of cryptographic signatures, those events would be proof they originated from a known source.
  • Chains are logical interpretations of data placed inside Directory Blocks and Entry Blocks. The Directory Blocks indicate which Chains are updated, and the Entry Blocks indicate which Entries have been added to the Chain. This is somewhat analogous to how Bitcoin full clients maintain a local idea of the UTXO (Unspent Transaction Output) set. The UTXO set is not (currently) in the blockchain itself, but is interpreted by the full client.
  • The Factom Peer-to-Peer Network
  • Factom will have a peer-to-peer (P2P) network which accomplishes two goals: communication and data preservation.
  • Factom Peer-to-Peer Communications
  • Factom will have a P2P network very similar to Bitcoin's. It will consist of full nodes which have all the Factom data. The full nodes create a gossip network which will flood fill valid data throughout the network. The Authority servers would be full nodes, but not all full nodes are Authority servers. This is very much like Bitcoin, where miners are full nodes, but not all full nodes are miners. This will limit the ability to DDOS the Authority servers individually. They can connect anywhere inside the network to acquire the data needed to build the data structures.
  • As the servers are coming to consensus and disseminate their signed data, they would publish the data over the P2P network. The P2P flood filling also limits the ability of Authority servers to censor based on IP addresses, since valid traffic is mixed together by the nodes they connect to. It also helps to prevent censorship, since all servers can see the Entries which should be included in the Entry Blocks. Outside organizations campaigning to become Authority servers have an incentive to bring bad behavior to light, so they can gain support and move up into the set of Authority Servers.
  • Data Preservation and Dissemination
  • Factom data structures (Directory Blocks, Entry Blocks, Entries) are needed for Factom to be useful. They are public and will be preserved in two places. The Authority Servers need to maintain this data to make correct decisions about adding new Entries. Since they have this data, they can provide it as a service, as part of being a full node. As the protocol grows the protocol will be able to support partial nodes, which share only part of the Factom dataset. The partial nodes could share only the data which is relevant to their specific application. Peer discovery for the partial nodes may be handled by any sort of directory service, such as a Distributed Hash Table (DHT).
  • FIG. 7 illustrates a read operation, according to exemplary embodiments. This setup allows for efficient peer distribution of data even if the entire Factom dataset grows to unwieldy sizes. The Directory Service also allows the data to be preserved independent of any Authority servers or full nodes. Even if all the full nodes were removed from the network, the data could still be shared by a more numerous set of parties interested in specific subsets of the data.
  • FIG. 8 further illustrates the Chain ID, according to exemplary embodiments. Factom groups all Entries under a ChainID. The ChainID is computed from a Chain Name. The ChainID is a hash of the Chain Name. The Chain Name is a byte array arbitrarily long in length. See figure below. Since the conversion from Chain Name to ChainID is a hash operation, it is a simple process. Deriving a Chain Name from a ChainID is not simple, so a lookup table would be needed.
  • The user may provide a Chain Name, or the Chain Name may be auto-generated. Regardless, that the ChainID can be shown to be a hash of something. This prevents unhashed data from being a ChainID, which is stored all the way up to the Directory Blocks. This convention eliminates insertion of obscene plaintext in the block structure.
  • The Chain Name is fairly arbitrary. It could be a random number, a string of text, or a public key. An individual Application could derive meaning from different Chain Names.
  • One possible convention would be to use human readable text for the Chain Name. This would allow for the structuring of Chains in a logical hierarchy, even though Chains are not hierarchical by nature. Users can even use the same naming conventions, but by making simple modifications, ensure that there are no accidental intersections between their Chains and other Chains. Consider the following path:
  • MyFavoriteApp/bin,
  • where the slash is a convention for another level of hierarchy. The slash separating ASCII strings “MyFavoriteApp” and “bin” represents transitioning to a deeper level. These two strings must be converted to bytes, and there are many options for doing so. The strings could be encoded in UTF-16, UTF-32, ASCII, or even something like IBM's EPCDIC. Each of these encodings would result in entirely different ChainIDs for the same string, since the computation of the ChainID is done from the bytes. Furthermore, the application could utilize a Globally Unique IDentifier (GUID) number as the first byte array in their naming convention. This would eliminate overlap of one Application's ChainID “space” with another, at the expense of just a few more bytes in the Chain creation.
  • Using Factoids to Purchase Entry Credits
  • Factoids are the main internal scarcity token used to moderate and reward the system actors. The right to put Entries into Factom is represented by Entry Credits. Factom separates the two value-holding mechanisms, as they serve different purposes. Factoids can be converted into Entry Credits, but not vice versa.
  • Factoids are implemented in much the same way Bitcoin is implemented, allowing multiple inputs, multiple outputs, etc. where each input requires the proper signature for the transaction to be valid. Other sorts of validation including multisig is possible. Factoid transactions are managed on a special Factoid Chain. This Factoid Chain is handled more restrictively than other Chains. Entries in the Factoid Chain must be valid Factoid transactions, or the Factom Servers will reject the Entries.
  • Factoids are included into the protocol to completely decentralize Factom, and to reduce bloat and spam in both Factom and Bitcoin. Factoids can be converted to Entry Credits in the protocol, and paid out to Factom servers from the protocol. Factoids budgeted but not paid out can remain in a “grant pool”. These tokens can be issued to support and develop the protocol from the protocol.
  • Factoids also help to bind consensus. If consensus is lost, then the Factoids will fall in value, incentivizing the support of the protocol.
  • The conversion of a Factoid to Entry Credits will be done via a special purchase transaction on the Factoid Chain. This purchase transaction will include:
  • An Output directing a Factoid amount to be converted
  • The public key that is to receive the Entry Credits
  • The Entry Credits, once purchased, cannot be transferred to another public key. They can only be used to pay for Entries. This greatly reduces their value to thieves, since they cannot be resold. Entry Credit private keys can be held in low security areas with minimal risk.
  • Using Entry Credits to Write Entries
  • Adding Entries into Factom requires giving up a scarce resource. That resource is Entry Credits, which are derived from Factoids. Adding Entries to Factom is a two step process. First the Entry is paid for (committed). The payment accomplishes two things. It decrements the Entry Credits associated with a user's public key. In the same operation, the hash of the Entry is specified. After the Entry is paid for, the server will wait for the unhashed Entry and include it once seen (revealed).
  • 1. Pay for Entry
      • Decrement Entry Credits owned by a user
      • User specifies hash of Entry in payment
  • 2. Insert Entry
      • User publishes Entry for inclusion in Entry Block
  • There are many benefits of this two step process. One benefit is to separate the payment overhead from the recorded data. Future users will not be forced to download the data generated by payment minutia. They only need to download the minimum data to validate their system. It allows users to safely and easily ignore the payment information.
  • Another benefit is censorship resistance. By committing to accept an Entry before knowing the content makes censorship by the Factom servers obvious. Adam Back has advocated for a similar mechanism for Bitcoin in a post titled “Blind Symmetric Commitment for Stronger Byzantine Voting Resilience” (https://bitcointalk.org/index.php?topic=206303.0). If a user or Audit server can show an Entry which has been properly been paid for, but none of the Federated servers are accepting it, then the censorship is provable.
  • The transactions deducting Entry Credits will be recorded in a special Chain, similar to the Factoid Chain. The Federated servers will only fill the Chain with valid Entry Credit transactions.
  • Setting the Cost of Entries with a Central Server Oracle
  • The conversion rate of Factoids to Entry Credits will be determined by first choosing a target real world value for an Entry Credit. This target will be determined by a distributed and autonomous process. At minimum it will be agreed upon by some process driven by the Authority Set. Other parties might be involved through various auditable processes in Factom to further decentralize the decision.
  • Once a target real world target price of an Entry Credit has been chosen, an Oracle is required to record into Factom the conversion value between Factoids and that EC price. That specification and implementation will also go through a decentralized decision process. The actual implementation of the target price, oracle implementation, and exchange rate adjustment can vary widely, but will be optimized for decentralization, security, and regulatory compliance.
  • Note that fee calculations and rates are subject to change, and don't materially impact the utility of the Factom protocol.
  • Using Factom without Factoids
  • Many users of Factom may not want a wallet, and will not want to hold any cryptocurrency asset. But they will want to create their Chains (ledgers) and add their Entries. Factom's two step recording process allows for the separation of Factoids, Factom's tradable token, from the opportunity to post Entries to Factom, represented by Entry Credits. Servers and other recipients of Factom Tokens can sell Entry Credits to customers for payment via Bitcoin, conventional credit card payments, etc. The user would provide a public key to hold the Entry Credits. The seller would convert the appropriate amount of Factoids to Entry Credits and assign those rights to the user's public key. Users could thus buy Entries Credits for Factom without ever owning the Factoids that drive the Factom servers.
  • From a regulation point of view, this is powerful. The servers earn Factoids from the protocol. The only parties to that transaction are the server and the protocol. Then the server sells Entry Credits to users, who eventually return Factoids to the rest of the system. Entry Credits are non transferable, so the user cannot assign them to another user's public key, and selling private keys isn't practical or useful. In neither transaction is a tradable token (the Factoid) transferred between two parties.
  • Factom is a distributed, autonomous layer residing on top of the Bitcoin blockchain. The goal of Factom is to provide the power of Bitcoin's blockchain to a nearly unlimited range of Applications and uses. Further, Factom is architected such that its users do not need any cryptocurrency whatsoever.
  • A distributed, immutable ledger is the radical, foundational, and unprecedented technology represented by the Bitcoin blockchain. The dream of many is to extend the honesty inherent to an immutable ledger validated by math to chaotic, real-world interactions. By allowing the construction of unbounded ledgers backed by the blockchain, Factom extends the benefits of the blockchain to the real world.
  • FIGS. 9-21 are simplified illustrations of a digital contract 20 in a blockchain environment 22, according to exemplary embodiments. The digital contract 20 is sometimes referred to as a self-executing or “smart” contract between parties to a transaction. The digital contract 20 may be executable code that runs on a blockchain 24. The blockchain 24 has one or more blocks 26 of data. A conventional smart contract facilitates, executes, and/or enforces the terms of an agreement. Whatever the terms, the digital contract 20 may automatically execute the terms once predetermined logical rules, conditions, or code is satisfied. The digital contract 20 may thus be expressed in a programming language. Smart contracts are generally known, so this disclosure will not dwell on the known aspects.
  • Here, though, the blockchain 24 need only reference the digital contract 20. That is, the actual programming language defining the digital contract 20 need not be included within or attached to the blockchain 24. Instead, the blockchain 24 need only include or specify a contract identifier 28 and perhaps one or more contractual parameters 30. The contract identifier 28 is any digital identifying information that uniquely identifies or references the digital contract 20. Similarly, the contractual parameters 30 may digitally identify the parties to the digital contract 20, their respective performance obligations and terms, and even consideration. So, instead of the blockchain 24 carrying or conveying the actual code representing the digital contract 20, exemplary embodiments need only specify the contract identifier 28 and perhaps the contractual parameters 30. The blocks 26 of data within the blockchain 24 are thus not burdened with the programming code that is required to execute the digital contract 20. The blockchain 24 need only include or specify the contract identifier 28 and/or the contractual parameters 30 (or their respective hash values), thus greatly simplifying the blockchain 24 and reducing its size (in bytes) and processing requirements.
  • FIG. 10 further illustrates the blockchain 24. Here any entity 32 may generate the blockchain 24. While exemplary embodiments may be applied to any entity 32, most readers are thought familiar with financial services. That is, suppose the entity 32 is a bank, lender, or other financial institution 34 (such as PIMCO®, CITI®, or BANK OF AMERICA®). As the reader likely understands, the financial institution 34 creates a massive amount of banking records, transaction records, mortgage instruments, and other private data 36. The financial institution 34 thus has a financial server 38 executing a software application 40 that encrypts its private data 36. While the software application 40 may use any encryption scheme, FIG. 2 illustrates the private blockchain 24. That is, the software application 40 causes the financial server 38 to cryptographically hash the private data 36 and to integrate the resulting hash value(s) into the block 26 of data within the private blockchain 24. Moreover, because the private data 36 may represent contractual obligations between parties, the software application 40 may further cause the blockchain 24 to include the contract identifier 28 and the contractual parameters 30. The contract identifier 28 and the contractual parameters 30 may be encoded as data or information contained within the block 26 of data, or the contract identifier 28 and the contractual parameters 30 may be data or information that is separate from the block 26 of data (such as informational content in metadata or in a packet header/body). Regardless, the blockchain 24 need not include the programming code representing the digital contract 20. The blockchain 24 need only specify the contract identifier 28 and/or the contractual parameters 30.
  • FIG. 11 illustrates a contract server 42. The contract server 42 may be responsible for executing the digital contract 20 referenced by the contract identifier 28 and/or the contractual parameters 30. For example, after the financial server 38 (executing the software application 40) generates the block 26 of data within the blockchain 24, the financial server 38 may send the blockchain 24 to the network address (e.g., Internet protocol address) associated with the contract server 42. When the contract server 42 receives the blockchain 24, the contract server 42 inspects the blockchain 24 to identify the contract identifier 28 and/or the contractual parameters 30. Once the contract identifier 28 is determined, the contract server 42 may then consult an electronic database 44 of contracts. The database 44 of contracts has entries that map or relate the contract identifier 28 to its corresponding digital contract 20. The database 44 of contracts, in other words, may identify a computer file 46 that contains the programming language representing the digital contract 20 identified by the contract identifier 28. So, once the digital contract 20 is determined, the contract server 42 may retrieve and locally execute the computer file 46, perhaps based on parameters defined or described by the contractual parameters 30 (such as party names, parameters associated with their respective performance obligations and terms, and consideration). Again, then, the blockchain 24 need only reference the digital contract 20 (using the contract identifier 28 and/or the contractual parameters 30). The actual execution of the digital contract 20 may be offloaded or outsourced to the contract server 42.
  • FIG. 12 also illustrates the contract server 42. Here, though, the contract server 42 may only manage the execution of the digital contract 20 referenced by the contract identifier 28 and/or the contractual parameters 30. That is, the contract server 42 may outsource the execution of the digital contract 20 to a vendor, a supplier, or a subcontractor process. Again, when the contract server 42 receives the blockchain 24, the contract server 42 inspects the blockchain 24 to identify the contract identifier 28 and/or the contractual parameters 30. The contract server 42 may then consult the database 44 of contracts. Here, though, the database 44 of contracts has entries that map or relate the contract identifier 28 to a network resource 50 that processes and/or executes the digital contract 20 as a service (perhaps as a software-as-a-service or “SAAS”). The network resource 50 may thus be a remote server, a virtual machine, a web page or web server, a client device/machine, or other resource that executes the digital contract 20. Once the network resource 50 is determined, the contract server 42 may retrieve and send the contractual parameters 30 to the network resource 50 for execution. The network resource 50 (perhaps operated on behalf of a third party) applies the parameters defined or described by the contractual parameters 30 to the programming code representing the digital contract 20.
  • Exemplary embodiments thus only need to identify the digital contract 20. The contract identifier 28 and the contractual parameters 30 need only be informational content in the private blockchain 24. The contract identifier 28 is any digital identifying information that uniquely identifies or references the digital contract 20. The contract identifier 28 may be an alphanumeric combination that uniquely identifies a vendor and/or version of the digital contract 20 and/or a processor or executioner of the digital contract 20. The contract identifier 28 may be expressed as a unique hash value that is included within, or specified by, the private blockchain 24. Similarly, the contractual parameters 30 may identify the parties to the digital contract 20, their respective performance obligations and terms, and consideration.
  • FIG. 13 illustrates consideration. When the digital contract 20 is executed, the parties to the digital contract 20 may be compensated (perhaps according to the contractual parameters 30 describing consideration). Moreover, the contract server 42 and/or the network resource 50 may also be compensated. While there are many compensation schemes, this disclosure mostly explains crypto-compensation. That is, when the digital contract 20 successfully executes, perhaps the parties exchange, trade, or transfer cryptographic currencies. Suppose, for example, that the financial institution 34 creates its own cryptographic coinage 60 in the blockchain environment 22. The entity 32, in other words, may establish entity-specific electronic tokens 62 to access and/or to use the blockchain environment 22. Because the private blockchain 24 represents hashes of the financial institution's private data 36, the private blockchain 24 may be considered a private resource or property of the financial institution 34. That is, the private blockchain 24 is controlled by, or affiliated with, the financial institution 34, so the financial institution 34 may control who adds and/or writes to the private blockchain 24 and who reads, accesses, or receives the private blockchain 24.
  • The entity-specific tokens 62 may thus be control mechanisms. While the entity-specific tokens 62 may have any functional scheme, FIG. 5 illustrates a private credit token 64 and a private tradeable token 66. The entity's credit token 64, for example, may be acquired and then spent or burned when accessing the financial institution's private blockchain 24. The entity's credit token 64, in other words, represents any credit-based entry system associated with the financial institution's private blockchain 24. The tradeable token 66, on the other hand, may be generated for transfer among others. The entity 32 generates the tradeable token 66 to be traded and/or spent. The tradeable token 66, in other words, may be considered as the entity's specific, private currency to be used as the entity 32 governs.
  • Exemplary embodiments may thus trade or exchange crypto-compensation. That is, when the digital contract 20 successfully executes, perhaps the parties exchange, trade, or transfer the credit token 64 and/or the tradeable token 66. When any party, or all the parties, perform their assigned role in the transaction, value is given via the credit token 64 and/or the tradeable token 66. Similarly, the contract server 42 and/or the network resource 50 may also be compensated via the credit token 64 and/or the tradeable token 66, perhaps as a “mining” fee for executing the digital contract 20.
  • The digital contract 20 is thus a computer program or code that verifies and/or enforces negotiation and/or performance of a contract between parties. One fundamental purpose of so-called smart contracts is to integrate the practice of contract law and related business practices with electronic commerce protocols between parties or devices via the Internet. Smart contracts may leverage a user interface that provides one or more parties or administrators access, which may be restricted at varying levels for different people, to the terms and logic of the contract. Smart contracts typically include logic that emulates contractual clauses that are partially or fully self-executing and/or self-enforcing. Examples of smart contracts are digital rights management (DRM) used for protecting copyrighted works, financial cryptography schemes for financial contracts, admission control schemes, token bucket algorithms, other quality of service mechanisms for assistance in facilitating network service level agreements, person-to-person network mechanisms for ensuring fair contributions of users, and others. Smart contract infrastructure can be implemented by replicated asset registries and contract execution using cryptographic hash chains and Byzantine fault tolerant replication. For example, each node in a peer-to-peer network or blockchain distributed network may act as a title registry and escrow, thereby executing changes of ownership and implementing sets of predetermined rules that govern transactions on the network. Each node may also check the work of other nodes and in some cases, as noted above, function as miners or validators.
  • FIG. 14 further illustrates the contract server 42. When the contract server 42 receives the blockchain 24, here the contract server 42 may generate data records 70 in a blockchain data layer 72, as later paragraphs will explain. The contract server 42 may thus be termed or called a data layer server 74. Moreover, the blockchain data layer 72 may also add another layer of cryptographic hashing to generate a public blockchain 76. The blockchain data layer 72 acts as a validation service 78 that validates the digital contract 20 was executed. Moreover, the blockchain data layer 72 may generate a cryptographic proof 80. The public blockchain 76 thus publishes the cryptographic proof 80 as a public ledger 82 that establishes chains of blocks of immutable evidence.
  • FIGS. 15-16 illustrate examples of the entity-specific tokens 62. Suppose that a third-party 90 wishes to receive, read, write to, or otherwise access the financial institution's private blockchain 24 and/or the digital contract 20. As FIG. 15 illustrates, exemplary embodiments may require that the third-party 90 spend or burn one or more of the credit tokens 64. The credit token 64 may thus control access to the financial institution's private blockchain 24 and/or the digital contract 20. The inventor envisions that vendors, service providers, individual users, and other third-parties 60 may wish to access the hash values of the private data 36 contained within the financial institution's private blockchain 24. Moreover, the third party may want to access, inspect, execute, or verify the digital contract 20. The financial institution 34 may thus require that the third-party 90 redeem the entity's credit token(s) 50 before granting read, write, or access permission to the digital contract 20. The financial institution 34 may additionally or alternatively require redemption of the entity's credit token(s) 64 for using protocols, rules, and application programming interfaces (“APIs”) associated with the private blockchain 24 and/or the digital contract 20. The financial institution 34 may thus establish or issue its own credit tokens 64 and even govern their usage restrictions 92 and value 94, as later paragraphs will explain.
  • FIG. 16 illustrates the tradeable token 66. The financial institution 34 may establish the tradeable token 66 and also govern its usage restrictions 92 and value 94. The tradeable token 66, in other words, is a cryptocurrency or “coin.” Again, while exemplary embodiments may utilize any functional scheme, the tradeable token 66 may be earned. That is, anyone (such as the third party 90) may earn the tradeable token 66 according to the usage restrictions 92. For example, suppose the data layer server 74 earns the entity's tradeable token(s) 52 in exchange for processing and/or managing an execution of the digital contract 20. The data layer server 74 may additionally or alternatively earn the entity's tradeable token(s) 52 in exchange for the validation service 78. That is, a provider of the validation service 78 is paid, or earns, the entity's tradeable token(s) 52 for processing or executing the digital contract 20 and/or for cryptographically hashing the proof 80 of the digital contract 20. The provider of the validation service 78 may also be paid in the entity's tradeable token(s) 52 for publishing the proof 80. The tradeable token 66 may thus be transferred as currency according to the usage restrictions 92 and its value 94.
  • FIG. 17 illustrates transaction records 100. Whenever the entity-specific tokens 62 are created, owned, or transferred, the transaction record 100 may be generated. The transaction record 100 may then be documented in the blockchain environment 22. For example, the entity-specific tokens 62 may be addressable. That is, the credit token 64 and the tradeable token 66 may be uniquely associated with a common, single cryptographic address 102. The cryptographic address 102 may represent an owner or holder (e.g., the entity 32 or the third-party 90). When the entity-specific tokens 62 are created, generated, or assigned, the entity-specific tokens 62 may be assigned or associated with the cryptographic address 102. The cryptographic address 102 may then be received by, and propagated within, the blockchain data layer 72 to identify the corresponding data records 70. The blockchain data layer 72 may even hash the cryptographic address 102 as the cryptographic proof 80 of the transaction records 100. Exemplary embodiments thus publicly document the transaction records 100 involving the entity-specific tokens 62, based on the single cryptographic address 102. In simple words, the blockchain data layer 72 publishes ownership and transfer proofs 80 of the credit token 64 and the tradeable token 66 based on the transaction records 100 associated with the single cryptographic address 102.
  • The transaction records 100 may also document the digital contract 20. Whenever the digital contract 20 is specified, generated, processed, or even executed, the transaction record 100 may be generated. The transaction record 100 may then be documented in the blockchain environment 22. For example, the entity-specific tokens 62 may be earned as payment according to the executable terms of the digital contract 20. The entity-specific tokens 62 may additionally or alternatively be earned or awarded for processing or executing a portion of, or entirely, the digital contract 20. The entity-specific tokens 62 may thus be uniquely associated with a party to the digital contract 20 and/or with a service provider/processor of the digital contract 20. The transaction record 100 may document the parties to the digital contract 20, a transactional description describing a transaction governed by the digital contract 20, and any financial or performance terms. The transaction record 100 may thus document an offer, an acceptance, a consideration, and terms. For simplicity, then, the single cryptographic address 102 may represent a party to the digital contract 20 and/or with a service provider/processor of the digital contract 20. Regardless, when the entity-specific tokens 62 are created, generated, or assigned, the entity-specific tokens 62 may be received by, and propagated within, the blockchain data layer 72 to identify the corresponding data records 70. The blockchain data layer 72 may thus publish the proofs 80 of the digital contract 20 and any entity-specific tokens 62 paid or exchanged, according to the transaction records 100.
  • FIG. 18 illustrates a filling station 110 in the blockchain environment 22. Because the tokens 62 may be consumed by users (such as during or after any processing or execution of the digital contract 20), the filling station 110 allows the third party 90 to replenish or fill an account 112. Recall that the third-party entity 32 may be required to spend the tokens 62 to access the financial institution's private blockchain 24 and/or the digital contract 20. Moreover, the tokens 62 may also be earned or transferred according to the terms of the digital contract 20. The account 112 may thus be established, and the account 112 maintains a monetary or numerical balance 114 of the tokens 62. As the tokens 62 are spent, traded, or redeemed, the account 112 may need filling to continue using or accessing the blockchain 24 and/or the digital contract 20.
  • The filling station 110 may access both the transaction records 100 and the blockchain data layer 72. Because the blockchain data layer 72 may document the data records 70 using the single cryptographic address 102, the single cryptographic address 102 may serve as a common reference or query parameter with the entity's transaction records 100. The filling station 110, in other words, may use the single cryptographic address 102 to identify the transaction records 100 that correspond to the blockchain data layer 72. The filling station 110 may thus present a transaction summary of the account 112 and the balance 114. Because blockchain data layer 72 may track and/or prove the transaction records 100, exemplary embodiments may search the blockchain data layer 72 for the single cryptographic address 102. That is, the filling station 110 may query the blockchain data layer 72 for the single cryptographic address 102, and the blockchain data layer 72 may identify the transaction records 100 that match the single cryptographic address 102. Similarly, exemplary embodiments may query the blockchain data layer 72 for the contract identifier 28 and/or the contractual parameters 30, and the blockchain data layer 72 may identify the transaction records 100 that match the contract identifier 28 and/or the contractual parameters 30. The filling station 110 may then process the transaction records 100 to provide the transaction summary of the account 112, the balance 114, and any other transactional data. The filling station 110 may also allow the user to replenish an amount or value of the tokens 62, thus allowing the user to continue exchanging the tokens 62 for access to the private blockchain 24, the blockchain data layer 72, and/or the digital contract 20. The filling station 110 may thus be an access mechanism to the blockchain data layer 72.
  • FIG. 19 further illustrates the filling station 110. Here the blockchain data layer 72 may have its own cryptocoinage 120. That is, a provider of the blockchain data layer 72 may establish its cryptocoinage 120 for accessing and/or using the validation service 78. The cryptocoinage 120 may thus include a credit token and a tradeable token (not shown for simplicity). The credit token may be required to enter or access the blockchain data layer 72 to receive the validation service 78, and the tradeable token may be earned for participating in the validation service 78. Regardless, the filling station 110 may use the single cryptographic address 102. The third party 90 may use the single cryptographic address 102 to access the entity's cryptocoinage 60 and the blockchain data layer's cryptocoinage 120. Exemplary embodiments may thus identify and track the transaction records 100 and the blockchain data layer's cryptocoinage 120 using the same, single cryptographic address 102.
  • Exemplary embodiments thus present elegant solutions. Any entity 32 may create its own private blockchain 24 and offer or present the digital contract 20 for self-execution. The entity 32 may then establish or create the tokens 62 for using, accessing, or processing the entity's private blockchain 24 and/or the digital contract 20. The tokens 62 may have the value 94, thus fostering a market for entity-specific tradeable assets in the blockchain environment 22. The tradable value 94 of the tokens 62 may thus drive demand to use the digital contracts 20. Exemplary embodiments may thus provide a two-token system that isolates any use of the entity's private blockchain 24 from the entity's tradeable token 66. Moreover, the credit token 64 may be associated with the third party 90 (perhaps via the single cryptographic address 102), thus allowing the third party 90 to retrieve the account balance 114 from the filling station 110 and sign entries or other transactions. Moreover, the third party 90 may also use the single cryptographic address 102 to access the blockchain data layer 72 via the filling station 110. The filling station 110 is a single resource or destination (such as a secure website) for managing a user's cryptographic coinage 60 and defining payments according to the digital contract 20.
  • FIG. 20 expands the entity concept. Here multiple, different entities 32 a-d provide their respective software applications 40 a-d that encrypt their respective private data 36 a-d as their individual, private blockchains 24 a-d. While exemplary embodiments may be applied to any number of industries or services, FIG. 20 illustrates a simple example of four (4) different entities 32 a-d. First entity 32 a, for example, again represents the bank, lender, or other financial institution 34 that encrypts its private data 36 a as its private blockchain 24 a. Second entity 32 b represents any retailer 122 (such as HOME DEPOT®, KOHL'S®, or WALMART®) that encrypts its private data 36 b as its private blockchain 24 b. Third entity 32 c represents a web site 124 offering a service 126 (such as AMAZON®, NETFLIX®, or GOOGLE®) that encrypts its private data 36 c as the private blockchain 24 c. Fourth entity 32 d represents an automotive or other manufacturer or supplier 128 (such as FORD®, TOYOTA®, or DELPHI®) that encrypts its private data 36 d as the private blockchain 24 d. The entities 32 a-d thus use their respective software applications 40 a-d to provide a first layer 130 of cryptographic hashing. The entities 32 a-d may also use their respective software applications 40 a-d to issue their own private and entity-specific cryptocoinage 60 a-d. Each entity 32 a-d may then send their respective private blockchains 24 a-d to the blockchain data layer 72, and the blockchain data layer 72 may add a second layer 132 of cryptographic hashing. The blockchain data layer 72 thus generates the public blockchain 76 as a public resource or utility for record keeping. Any entity 32 that subscribes to the blockchain data layer 72 (such as by acquiring and/or spending the cryptocoinage 120) may thus access, read, and/or store the proofs 80 of its private data 36 to the public blockchain 76. The blockchain data layer 72, in other words, acts as the public ledger 82 that establishes chain of blocks of immutable evidence.
  • As FIG. 20 also illustrates, each entity 32 a-d may establish its own private cryptocoinage 60 a-d. Each entity's private software application 40 a-d may create and/or issue its cryptocoinage 60 a-d (such as respective entity-specific tokens 62 above explained). Each entity 32 a-d may also establish its own usage restrictions and value (illustrated as reference numerals 92 and 94 in FIGS. 15-16) according to rules governing ownership, trade, and other policies. Each entity 32 a-d may generate and sends its respective transaction records 100 a-d which reference each entity's single cryptographic address 102 a-d to the blockchain data layer 72 for documentation.
  • As FIG. 20 further illustrates, each entity 32 a-d may also specify their respective digital contract 20 a-d. When any of the private blockchains 24 a-d is received, the blockchain data layer 72 may coordinate execution of any digital contract 20 a-d. The blockchain data layer 72, for example, may inspect any private blockchain 24 a-d and identify any information associated with the digital contract 20 a-d. The blockchain data layer 72 may then execute the digital contract 20 a-d, and/or the blockchain data layer 72 may identify a service provider that executes the digital contract 20 a-d. The blockchain data layer 72, in other words, may manage the execution of the digital contracts 20 a-d according to a subcontractor relationship. A provider of the blockchain data layer 72 may then be compensated via any entity's cryptocoinage 60 a-d and/or the blockchain data layer's cryptocoinage 120.
  • As FIG. 21 illustrates, the filling station 110 may be agnostic. Any user (such as the entity 32 a-d or the third party 90) may authenticate to the filling station 110. Once authenticated, the user need only enter or provide the correct single cryptographic address 102 a-d to access the entity's private cryptocoinage 60 a-d, the blockchain data layer's cryptocoinage 120, and/or the entity's digital contract 20 a-d. The single cryptographic address 102 a-d, in other words, allows the user to access her account 112 and balance 114 for the entity's private cryptocoinage 60 a-d, the blockchain data layer's cryptocoinage 120, and/or the entity's digital contract 20 a-d. The user may thus easily conduct transactions between the entity's private cryptocoinage 60 a-d and the blockchain data layer's cryptocoinage 120. The entity 32 a-d, for example, may fuel or replenish its supply of the blockchain data layer's cryptocoinage 120, perhaps by redeeming or exchanging the entity's private cryptocoinage 60 a-d (perhaps according to an exchange rate or other value). Similarly, the provider of the blockchain data layer 72 may fuel or replenish its supply of the entity's private cryptocoinage 60 a-d by purchasing or exchanging the blockchain data layer's cryptocoinage 120. The provider of the blockchain data layer 72 may also earn the entity's private cryptocoinage 60 a-d by processing any portion of, or by executing, the entity's digital contract 20 a-d. Moreover, the respective private blockchains 24 a-d and the blockchain data layer 72 would contain the data records 70 confirming the processing and/or execution of the digital contract 20 a-d, so the transaction records 100 a-d thus propagate into the blockchain data layer 72 for public disclosure via the public blockchain 76. Any user that successfully authenticates to the filling station 110 may access a full accounting of his or her digital cryptocoinages 60 a-d and/or 120 and any digital contracts 20, perhaps according to the respective single cryptographic address 102 a-d. The user may thus buy, sell, trade, and/or redeem any entity-specific cryptocoinages 20 a-d and/or 90, all by accessing the filling station 110. The user may buy or sell any entity's coins or replenish credits, all by accessing the filling station 110. The user may also track performance or obligations defined by the digital contracts 20 a-d and any payments or consideration received or paid.
  • Exemplary embodiments thus present another elegant solution. The filling station 110 is another service offered by the blockchain data layer 72. Because all the transaction records 100 in the blockchain data layer 72 are identifiable (perhaps via the single cryptographic address 102), the filling station 110 can present the summary of the user's credit tokens and tradeable tokens. The filling station 110 may thus provide a single or universal electronic wallet for all of a user's digital coinage and credits, regardless of the issuing entity 32 a-d. The user may thus only perform a single authentication to the blockchain data layer 72 and access all her cryptofunds.
  • FIGS. 22-24 are more detailed illustrations of an operating environment, according to exemplary embodiments. FIG. 22 illustrates an entity server 140 communicating with the data layer server 74 via a communications network 142. The entity server 140 operates on behalf of the entity 32 and generates the entity's private blockchain 24 (such as the financial server 38 explained with reference to FIGS. 10-19). The entity server 140, in other words, has a processor 144 (e.g., “μP”), application specific integrated circuit (ASIC), or other component that executes the entity's software application 40 stored in a local memory device 146. The entity server 140 has a network interface to the communications network 142, thus allowing two-way, bidirectional communication with the data layer server 74. The entity's software application 40 includes instructions, code, and/or programs that cause the entity server 140 to perform operations, such as calling, invoking, and/or applying an electronic representation of a hashing algorithm 148 to the entity's private data 36. The hashing algorithm 148 thus generates one or more hash values 150, which are incorporated into the entity's private blockchain 24. The entity's software application 40 then instructs the entity server 140 to send the private blockchain 24 via the communications network 142 to a network address (e.g., Internet protocol address) associated with the data layer server 74.
  • The digital contract 20 may also be identified. The entity's software application 40 may also instruct the entity server 140 to specify the digital contract 20 as informational content in the private blockchain 24. For example, the digital contract 20 may be identified by the contract identifier 28 and contractual parameters 30. The contract identifier 28 is any digital identifying information that uniquely identifies or references the digital contract 20. The contract identifier 28 may be an alphanumeric combination that uniquely identifies a vendor and/or version of the digital contract 20 and/or a processor or executioner of the digital contract 20. The contract identifier 28 may also be one of the unique hash values 150 (perhaps generated by the hashing algorithm 148) that is included within, or specified by, the private blockchain 24. Similarly, the contractual parameters 30 may identify the parties to the digital contract 20, their respective performance obligations and terms, and consideration.
  • FIG. 23 illustrates the blockchain data layer 72. The data layer server 74 has a processor 152 (e.g., “μP”), application specific integrated circuit (ASIC), or other component that executes a data layer application 154 stored in a local memory device 156. The data layer server 74 has a network interface to the communications network 142. The data layer application 154 includes instructions, code, and/or programs that cause the data layer server 74 to perform operations, such as receiving the entity's private blockchain 24, the digital contract 20, the contract identifier 28, and/or the contractual parameters 30. The data layer application 154 then causes the data layer server 74 to generate the blockchain data layer 72. The data layer application 154 may optionally call, invoke, and/or apply the hashing algorithm 148 to the data records 70 contained within the blockchain data layer 72. The data layer application 154 may also generate the public blockchain 76. The data layer application 154 may thus generate the public ledger 82 that publishes, records, or documents the digital contract 20, the contract identifier 28, and/or the contractual parameters 30. Indeed, if the data layer application 154 processes and/or manages the digital contract 20, the data records 70 may document any processing or execution, and the data layer application 154 may optionally apply the hashing algorithm 148 to the data records 70 to generate the cryptographic proof 80 of the digital contract 20.
  • FIG. 24 illustrates additional publication mechanisms. Once the blockchain data layer 72 is generated, the blockchain data layer 72 may be published in a decentralized manner to any destination. The data layer server 74, for example, may generate and distribute the public blockchain 76 (via the communications network 142 illustrated in FIGS. 22-23) to one or more federated servers 160. While there may be many federated servers 160, for simplicity FIG. 24 only illustrates two (2) federated servers 160 a and 160 b. The federated servers 160 a and 160 b provide a service and, in return, they are compensated according to a compensation or services agreement or scheme.
  • Exemplary embodiments include still more publication mechanisms. For example, the cryptographic proof 80 and/or the public blockchain 76 may be sent (via the communications network 142 illustrated in FIGS. 22-23) to a server 162. The server 162 may then add another, third layer of cryptographic hashing (perhaps using the hashing algorithm 148) and generate another or second public blockchain 164. While the server 162 and/or the public blockchain 164 may be operated by, or generated for, any entity, exemplary embodiments may integrate another cryptographic coin mechanism. That is, the server 162 and/or the public blockchain 164 may be associated with BITCOIN®, ETHEREUM®, RIPPLE®, or other cryptographic coin mechanism. The cryptographic proof 80 and/or the public blockchain 76 may be publicly distributed and/or documented as evidentiary validation. The cryptographic proof 80 and/or the public blockchain 76 may thus be historically and publicly anchored for public inspection and review.
  • Exemplary embodiments may be applied regardless of networking environment. Exemplary embodiments may be easily adapted to stationary or mobile devices having cellular, wireless local area network (WI-FI®), near field, and/or BLUETOOTH® capability. Exemplary embodiments may be applied to mobile devices utilizing any portion of the electromagnetic spectrum and any signaling standard (such as the IEEE 802 family of standards, GSM/CDMA/TDMA or any cellular standard, and/or the ISM band). Exemplary embodiments, however, may be applied to any processor-controlled device operating in the radio-frequency domain and/or the Internet Protocol (IP) domain. Exemplary embodiments may be applied to any processor-controlled device utilizing a distributed computing network, such as the Internet (sometimes alternatively known as the “World Wide Web”), an intranet, a local-area network (LAN), and/or a wide-area network (WAN). Exemplary embodiments may be applied to any processor-controlled device utilizing power line technologies, in which signals are communicated via electrical wiring. Indeed, exemplary embodiments may be applied regardless of physical componentry, physical configuration, or communications standard(s).
  • Exemplary embodiments may utilize any processing component, configuration, or system. Any processor could be multiple processors, which could include distributed processors or parallel processors in a single machine or multiple machines. The processor can be used in supporting a virtual processing environment. The processor could include a state machine, application specific integrated circuit (ASIC), programmable gate array (PGA) including a Field PGA, or state machine. When any of the processors execute instructions to perform “operations,” this could include the processor performing the operations directly and/or facilitating, directing, or cooperating with another device or component to perform the operations.
  • Exemplary embodiments may packetize. When the entity server 140 and the data layer server 74 communicate via the communications network 142, the entity server 140 and the data layer server 74 may collect, send, and retrieve information. The information may be formatted or generated as packets of data according to a packet protocol (such as the Internet Protocol). The packets of data contain bits or bytes of data describing the contents, or payload, of a message. A header of each packet of data may contain routing information identifying an origination address and/or a destination address.
  • FIGS. 25-29 further illustrate the blockchain data layer 72, according to exemplary embodiments. The blockchain data layer 72 chains hashed directory blocks 170 of data into the public blockchain 76. For example, the blockchain data layer 72 accepts input data (such as the entity's private blockchain 24 illustrated in FIGS. 9-21) within a window of time. While the window of time may be configurable from fractions of seconds to hours, exemplary embodiments use ten (10) minute intervals. FIG. 25 illustrates a simple example of only three (3) directory blocks 170 a-c of data, but in practice there may be millions or billions of different blocks. Each directory block 184 of data is linked to the preceding blocks in front and the following or trailing blocks behind. The links are created by hashing all the data within a single directory block 184 and then publishing that hash value within the next directory block.
  • As FIG. 26 illustrates, published data may be organized within chains 172. Each chain 172 is created with an entry that associates a corresponding chain identifier 174. Each entity 32 a-f, in other words, may have its corresponding chain identifier 174 a-d. The blockchain data layer 72 may thus track any data associated with the entity 32 a-f with its corresponding chain identifier 174 a-d. New and old data in time may be associated with, linked to, identified by, and/or retrieved using the chain identifier 174 a-d. Each chain identifier 174 a-d thus functionally resembles a directory 176 a-d (e.g., files and folders) for organized data entries according to the entity 32 a-f.
  • FIG. 27 illustrates the data records 70 in the blockchain data layer 72. As data is received as an input (such as the private blockchain 24 and/or the digital contract 20 illustrated in FIGS. 9-21), data is recorded within the blockchain data layer 72 as an entry 180. While the data may have any size, small chunks (such as 10KB) may be pieced together to create larger file sizes. One or more of the entries 180 may be arranged into entry blocks 182 representing each chain 172 according to the corresponding chain identifier 174. New entries for each chain 172 are added to their respective entry block 182 (again perhaps according to the corresponding chain identifier 174). After the entries 180 have been made within the proper entry blocks 182, all the entry blocks 182 are then placed within in the directory block 184 generated within or occurring within a window 186 of time. While the window 186 of time may be chosen within any range from seconds to hours, exemplary embodiments may use ten (10) minute intervals. That is, all the entry blocks 182 generated every ten minutes are placed within in the directory block 184.
  • FIG. 28 illustrates cryptographic hashing. The data layer server 74 executes the data layer application 154 to generate the data records 70 in the blockchain data layer 72. The data layer application 154 may then instruct the data layer server 74 to execute the hashing algorithm 148 on the data records 70 (such as the directory block 184 illustrated in FIGS. 25-27). The hashing algorithm 148 thus generates one or more hash values 150 as a result, and the hash values 150 represent the hashed data records 70. As one example, the blockchain data layer 72 may apply a Merkle tree analysis to generate a Merkle root (representing a Merkle proof 80) representing each directory block 184. The blockchain data layer 72 may then publish the Merkle proof 80 (as this disclosure explains).
  • FIG. 29 illustrates hierarchical hashing. The entity's private software application 40 provides the first layer 130 of cryptographic hashing and generates the private blockchain 24. The entity 32 then sends its private blockchain 24 (perhaps referencing or specifying the digital contract 20) to the data layer server 74. The data layer server 74, executing the data layer application 154, generates the blockchain data layer 72. The data layer application 154 may optionally provide the second or intermediate layer 132 of cryptographic hashing to generate the cryptographic proof 80. The data layer application 154 may also publish any of the data records 70 as the public blockchain 76, and the cryptographic proof 80 may or may not also be published via the public blockchain 76. The public blockchain 76 and/or the cryptographic proof 80 may be optionally sent to the server 162 as an input to yet another public blockchain 164 (again, such as BITCOIN®, ETHEREUM®, or RIPPLE®) for a third layer 188 of cryptographic hashing and public publication. The first layer 130 and the second layer 132 thus ride or sit atop a conventional public blockchain 164 (again, such as BITCOIN®, ETHEREUM®, or RIPPLE®) and provide additional public and/or private cryptographic proofs 80.
  • Exemplary embodiments may use any hashing function. Many readers may be familiar with the SHA-256 hashing algorithm. The SHA-256 hashing algorithm acts on any electronic data or information to generate a 256-bit hash value as a cryptographic key. The key is thus a unique digital signature. There are many hashing algorithms, though, and exemplary embodiments may be adapted to any hashing algorithm.
  • FIGS. 30-32 are more detailed illustrations of the digital contract 20, according to exemplary embodiments. The private entity 32 sends its private blockchain 24 to the network address associated with the data layer server 74 that generates the blockchain data layer 72. The private blockchain 24 may contain information representing the transaction records 100 associated with the entity's private cryptocoinage 60 (perhaps as one or more privately hashed blocks of data). The private blockchain 24 may also specify, or incorporate, information or data representing the single cryptographic address 102 and/or the digital contract 20 (e.g., the contract identifier 28 and the contractual parameters 30). The single cryptographic address 102 and/or the digital contract 20 (e.g., the contract identifier 28 and the contractual parameters 30) may additionally or alternatively be separately sent from the entity server 140 to the data layer server 74 (perhaps via the communications network 142 illustrated by FIGS. 22-23). Regardless, the entity's private cryptocoinage 60 may be associated with the digital contract 20 (e.g., the contract identifier 28 and the contractual parameters 30) and/or the single cryptographic address 102. The transaction records 100 and/or their privately hashed blocks of data may thus specify, include, reference, and/or be associated with, and/or identified by, the single cryptographic address 102, the digital contract 20, the contract identifier 28, and/or the contractual parameters 30. Because the contract identifier 28 (and/or its corresponding hash value) is an identifiable input to the data layer server 74 generating the blockchain data layer 72, the data records 70 may also carry or reference the contract identifier 28 and/or the contractual parameters 30. So, should the blockchain data layer 72 create or issue its own cryptocoinage 120, the cryptocoinage 120 may also reference, be identified by, or be associated with the single cryptographic address 102 and/or the contract identifier 28 and/or the contractual parameters 30. The single cryptographic address 102, the contract identifier 28, and/or the contractual parameters 30 may thus common indicators or reference data for tracking both the entity's private cryptocoinage 60 and the cryptocoinage 120 issued by the blockchain data layer 72, according to the terms of the digital contract 20. The transaction records 100 (representing entity's private cryptocoinage 60) may thus be commonly mapped or identified to the cryptocoinage 120 issued by the blockchain data layer 72 and to the digital contract 20.
  • FIG. 31 illustrates a simple illustration. Once the contract identifier 28 (and/or its corresponding hash value) is received, the contract identifier 28 may propagate and be recorded within the blockchain data layer 72. The contract identifier 28, for example, may be recorded in any of the entries 180. The entry 180, and thus the contract identifier 28, may then be recorded and/or arranged as the entry block 182 and placed within the directory block 184. The entry 180, the entry block 182, and the directory block 184 may thus reference, specify, or be associated with, the contract identifier 28. The contract identifier 28 has thus propagated as informational content from the private blockchain 24 and into and through the blockchain data layer 72. The contract identifier 28 thus hierarchically moves through the multiple layers of cryptographic hashing for public publication. The blockchain data layer 72 thus tracks the transaction records 100 involving the contract identifier 28. In simple words, the blockchain data layer 72 may track contractual performance of the digital contract 20 via the transaction records 100 that reference or contain the contract identifier 28. Moreover, the blockchain data layer 72 may also track ownership and transfer of the entity's private cryptocoinage 60 and the cryptocoinage 120 issued by the blockchain data layer 72, all via the common single cryptographic address 102 and/or the contract identifier 28.
  • FIG. 32 illustrates more details. While the single cryptographic address 102 and/or the contract identifier 28 may be any alphanumeric entry or biometric input, FIG. 24 illustrates a common authentication mechanism 190. Here the same or similar authentication mechanism 190 is used to access both the entity's private cryptocoinage 60 and the cryptocoinage 120 issued by the blockchain data layer 72. If a user of the blockchain data layer 72 satisfies the authentication mechanism 190, then exemplary embodiments may access both the private cryptocoinage 60, the cryptocoinage 120, and/or the data records 70 associated with the contract identifier 28. As a simple example, suppose the user of the authentication mechanism 190 supplies information or data representing the single cryptographic address 102 and/or the contract identifier 28. The single cryptographic address 102 and/or the contract identifier 28 may be any unique alphanumeric entry, biometric input, user identifier, or other authentication credential. For example, most readers are likely familiar with an alphanumeric username and password, which is a common authentication mechanism 190. FIG. 32, though, illustrates a passphrase 192 (such as a multi-word mnemonic). When the entity's private cryptocoinage 60 is/are created, generated, or assigned, the entity's private cryptocoinage 60 may be assigned or associated with the passphrase 192. The passphrase 192 is unique to the registered owner, possessor, or user of the entity's private cryptocoinage 60. The passphrase 192 may even be hashed as a hash value and supplied to the blockchain data layer 72 (as above explained). The passphrase 192, in other words, may be hashed as the single cryptographic address 102 and propagated within the blockchain environment 22 to document the transaction records 100 involving the entity's private cryptocoinage 60.
  • The passphrase 192 may also authenticate to the cryptocoinage 120. If the user correctly supplies the passphrase 192, then the same user may conduct transactions involving the cryptocoinage 120 issued by the blockchain data layer 72 and/or involving the contract identifier 28 associated with the digital contract 20. Exemplary embodiments thus allow the user to order transactions and exchanges involving the entity's private cryptocoinage 60, the cryptocoinage 120 issued by the blockchain data layer 72, and/or the digital contract 20.
  • FIGS. 33-35 further illustrate the access mechanism, according to exemplary embodiments. The filling station 110 may be a public and/or private service for financial transactions involving the entity's private cryptocoinage 60, the cryptocoinage 120 issued by the blockchain data layer 72, and/or the digital contract 20. FIG. 33 illustrates the filling station 110 as a software-as-a-service offered by the secure data layer server 74 for accessing the blockchain data layer 72. The filling station 110, for example, may be a module within, or called by, the data layer application 154. A user accesses the filling station 110 to conduct transactions involving her private cryptocoinage 60, the cryptocoinage 120 (issued by the blockchain data layer 72), and/or the digital contract 20. While the filling station 110 may have any user interface, FIG. 33 illustrates a web interface 194. That is, the filling station 110 may be accessed via a webpage 196. The webpage 196 prompts the user to input her authentication credentials according to the authentication mechanism 190 (such as typing the passphrase 192 into a data field or audibly speaking the passphrase 192).
  • FIG. 34 further illustrates the web interface 194. The user accesses the filling station 110 using a user device 200. While the user device 200 may be any processor-controlled device, most readers are familiar with a smartphone 202. If the smartphone 202 correctly sends authentication credentials (such as the single cryptographic address 102 and/or passphrase 192, as above explained), then the smartphone 202 may utilize the web interface 194 to the data layer server 74 and/or the blockchain data layer 72. The smartphone 202 executes a web browser and/or a mobile application to send a request 204 specifying an address or domain name associated with or representing the filling station 110. The web interface 194 to the data layer server 74 thus sends the webpage 196 as a response, and the user's smartphone 202 downloads the webpage 196. The smartphone 202 has a processor and memory device (not shown for simplicity) that causes a display of the webpage 196 as a graphical user interface (or “GUI”) 206 on its display device 208. The GUI 206 may generate one or more prompts or fields for specifying the authentication mechanism 190 and transactional options. For example, the user preferably enters, speaks, or otherwise provides the passphrase 192. Exemplary embodiments may or may not hash the authentication passphrase (using the hashing algorithm 148 above explained) to produce or generate a hashed passphrase. Exemplary embodiments may then search the blockchain data layer 72 for the data records 70. That is, exemplary embodiments may query the blockchain data layer 72 for a query parameter (such as the contract identifier 28 and/or its hashed value) and the blockchain data layer 72 identifies the data records 70 that match or reference the query parameter. The filling station 110 may then process the data records 70 to provide a transactional summary 210 of the digital contract 20. The filling station 110 may also allow the user to replenish an amount or value of the private cryptocoinage 60 and/or the cryptocoinage 120, even allowing the user to continue exchanging the cryptocoinage 60 for access to the blockchain data layer 72.
  • Exemplary embodiments may thus share the common authentication mechanism 190. If the entity's private software application 40 requires the same passphrase 192 to establish any terms of the digital contract 20, then the passphrase 192 may have been hashed and recorded within the blockchain data layer 72. The single cryptographic address 102, the contract identifier 28, and/or the passphrase 192 may be associated with the data records 70 representing the digital contract 20, the private cryptocoinage 60 (issued by the entity 32), and the cryptocoinage 120 (issued by the blockchain data layer 72). The filling station 110 may thus identify any of the data records 70 that are commonly associated with the contract identifier 28, the private cryptocoinage 60 (issued by the entity 32), and/or the cryptocoinage 120. The filling station 110 thus allows the user to exchange cryptocoinage 60 and 90 for access to the private blockchain 24 and/or the blockchain data layer 72.
  • FIG. 35 illustrates a query mechanism. Here the data layer server 74 may access a database 220 of data layer records. The database 220 of data layer records provides a referential record of the informational content contained within the blockchain data layer 72. FIG. 35 illustrates the data layer server 74 locally storing the database 220 of data layer records in its local memory device 156, but the database 220 of data layer records may be remotely stored and accessed via the communications network 142. Regardless, the data layer server 74 may query the database 220 of data layer records for the single cryptographic address 102 and/or the contract identifier 28 and identify and/or retrieve any corresponding data records 70. While the database 220 of data layer records may have any logical structure, FIG. 35 illustrates the database 220 of data layer records as a table 222 that maps, converts, or translates the single cryptographic address 102 and/or the contract identifier 28 to its corresponding entry 180, entry block 182, and/or directory block 184 within the blockchain data layer 72. Whenever the data layer server 74 generates the entry 180, entry block 182, and/or directory block 184, the data layer server 74 may add an entry to the database 220 of data layer records. Over time, then, the database 220 of data layer tracks a comprehensive historical repository of information that is electronically associated with its corresponding contract identifier 28. The data layer server 74 may then read or retrieve the entry 180, entry block 182, and/or directory block 184 containing or corresponding to the contract identifier 28.
  • Exemplary embodiments thus present the entity-specific cryptocoinage 60. Any entity 32 may create its own private blockchain 24, establish its entity-specific tokens 62, and define or offer digital contracts 20. The entity-specific tokens 62 may or may not have the value 94. The tradeable token 66, for example, may have a market value based on supply and/or demand, thus allowing or causing the value 94 of the tradeable token 66 to rise/fall or to increase/decrease, based on market forces. The credit token 64, however, may have a constant price or value, perhaps set by the entity 32. The entity-specific tokens 62 may be associated with the contract identifier 28, thus allowing a faster and simpler accounting scheme for machine executable contractual terms.
  • Exemplary embodiments may thus create coinage on top of coinage. The hierarchical scheme (explained with reference to FIG. 29) allows the private entity 32 to establish its private cryptocoinage 60 hierarchically above the traditional BITCOIN®, ETHEREUM®, or RIPPLE® coinage. The entity's private data 36 remains private, but the transaction records 100 may be publicly documented or proved via the traditional BITCOIN®, ETHEREUM®, or RIPPLE® environment. The private entity 32, in other words, need to worry about or concern itself with public publication. The private entity 32 need only subscribe (e.g., pay for write access) to the blockchain data layer 72. The digital contract 20 may also be offered, executed, and documented by the transaction records 100.
  • FIG. 36 illustrates a public entity 230, according to exemplary embodiments. Here exemplary embodiments may be applied to public data 232 generated by the public entity 230. The public entity 230 may be a city, state, or federal governmental agency, but the public entity 230 may also be a contractor, non-governmental organization, or other actor that acts on behalf of the governmental agency. The public entity 230 operates a public server 234 and applies its software application 236 to its public data 232 to generate its governmental blockchain 238. The public entity 230 may further generate/issue its cryptocoinage 240 and offer digital contracts 20 for governmental, public services. The data layer server 74 receives the governmental blockchain 238 and generates the blockchain data layer 72. The data layer server 74 may then generate the public blockchain 76 representing any data records 70 representing the public data 232 and/or the cryptocoinage 240.
  • FIGS. 37-40 further illustrate contractual execution, according to exemplary embodiments. When the contract server 42 (such as the data layer server 74) receives the blockchain 24, exemplary embodiments inspect the blockchain 24 to identify the contract identifier 28 and/or the contractual parameters 30. The contract identifier 28 and/or the contractual parameters 30 may be contained within the block 26 of data within the blockchain 24. The contract identifier 28 and/or the contractual parameters 30 may be additionally or alternatively be metadata contained within the block 26 of data, and/or the contract identifier 28 and/or the contractual parameters 30 may be a data, data field, and/or a file attachment. The contract identifier 28 and/or the contractual parameters 30 may be information or data specified by the blockchain 24 and/or by a packet header or body. Regardless, once the contract identifier 28 and/or the contractual parameters 30 are determined, exemplary embodiments may consult the electronic database 44 of contracts.
  • FIG. 38 illustrates the database 44 of contracts. While the database 44 of contracts may have any logical structure, a relational database is perhaps easiest to understand. FIG. 38 thus illustrates the database 44 of contracts as an electronic table 250 that maps, converts, or translates the contract identifier 28 and/or the contractual parameters 30 to their corresponding network resource(s) 50. The database 44 of contracts may thus be preconfigured or preloaded with entries that assign or associate different contract identifiers 28 and/or contractual parameters 30 to their corresponding network resource 50 that provides, processes, and/or executes the corresponding digital contract 20. As the data layer server 74 receives any blockchain 24, the data layer server 74 may inspect the blockchain 24 for the contract identifier 28 and/or the contractual parameters 30. The data layer server 74 may then query the database 44 of contracts for the contract identifier 28 and/or the contractual parameters 30 to identify the computer file 46, server 254, virtual machine 256, Internet protocol address 258, or other network resource 50 that is responsible for executing the digital contract 20. The database 44 of contracts may optionally contain entries that relate hashed values of the contract identifier 28 and/or the contractual parameters 30. Regardless, once the network resource 50 is identified, the data layer server 74 may direct, assign, or outsource the contractual information 30 to the network resource 50 for processing.
  • FIG. 39 illustrates a simple example. Here the contract identifier 28 maps to a filename 260 that is associated with, or that represents, the computer file 46 that contains the programming language representing the digital contract 20. So, once the filename 260 is determined, the data layer server 74 may locally retrieve and execute the computer file 46 that corresponds to, or is associated with, the filename 260. The data layer server 74 may then execute the computer file 46, perhaps based on parameters defined or described by the contractual parameters 30 (such as party names, parameters associated with their respective performance obligations and terms, and consideration). Optionally, the data layer server 74 may retrieve the computer file 46 (perhaps via the communications network 146 illustrated by FIGS. 22-23) from a remote server, database, or other device. Regardless, as the computer file 46 is executed, the data layer server 74 may generate the data records 70 in the blockchain data layer 72 describing the execution of the computer file 46. For example, the data records 70 may sequentially and/or serially track the execution of the computer file 46, perhaps logging or documenting periodic or random updates as the computer file 46 executes, perhaps along with timestamps toward completion. The data records 70 may also log or document a final step or outcome of the programming language representing the digital contract 20. Again, then, the blockchain 24 only referenced the digital contract 20 (using the contract identifier 28 and/or the contractual parameters 30). The actual execution of the digital contract 20 may be offloaded or outsourced to the data layer server 74.
  • FIG. 40 illustrates another example. Here the data layer server 74 may only manage the execution of the digital contract 20 referenced by the contract identifier 28 and/or the contractual parameters 30. That is, the data layer server 74 may outsource the execution of the digital contract 20 to a vendor or supplier as a subcontractor process. Again, when the data layer server 74 receives the blockchain 24, the data layer server 74 inspects the blockchain 24 to identify the contract identifier 28 and/or the contractual parameters 30. The data layer server 74 may then consult the database 44 of contracts. Here, though, the database 44 of contracts has entries that map or relate the contract identifier 28 to a remote server 262 that executes the digital contract 20 as a cloud-based service (perhaps as a software-as-a-service or SAAS). The database 44 of contracts may thus associate the contract identifier 28 to the Internet protocol address 258 representing the remote server 262 that executes the digital contract 20. The database 44 of contracts may additionally or alternatively associate the contract identifier 28 to a uniform resource locator (or “URL”) 264 representing the remote server 262 that executes the digital contract 20. Regardless, once the remote server 262 is determined, the data layer server 74 may retrieve and send a service request 266 to the remote server 262 (via the Internet protocol address 258 and/or the URL 264 representing the remote server 262). The service request 266 specifies the contract identifier 28 and requests an execution of the corresponding digital contract 20. The service request 266 may also specify the contractual parameters 30. When the remote server 262 (perhaps operated on behalf of a third party) receives the service request 266, the remote server 262 applies the parameters defined or described by the contractual parameters 30 to the programming code (such as the computer file 46) representing the digital contract 20. Once the digital contract 20 is executed, the remote server 262 may then send a service response 268 back to the data layer server 74, and the service response 268 comprises data or information describing an outcome of the digital contract 20 (such as consideration, payment, or performance terms).
  • The data layer server 74 may generate the data records 70 in the blockchain data layer 72. For example, the data records 70 may document the date and time that the service request 266 was sent to the remote server 262. Moreover, as the remote server 262 provides the digital contract 20 as a service, the remote server 262 may send periodic or random service updates 270 as the service is provided along with timestamps toward completion. The data layer server 74 may thus generate the data records 70 describing the service updates 270 received from the remote server 262. The data layer server 74 may also generate the data records 70 describing the service response 268 sent from the remote server 262 describing an outcome of the digital contract 20.
  • FIGS. 41-42 illustrate virtual execution, according to exemplary embodiments. Here the data layer server 74 may outsource or subcontract the execution of the digital contract 20 to a virtual machine (or “VM”) 280. For example, the data layer server 74 may implement different virtual machines 190, with each virtual machine 190 processing and/or executing a particular digital contract 20, perhaps as a software service. The data layer server 74 may provide virtual computing and/or virtual hardware resources to client devices, thus lending or sharing its hardware, computing, and programming resources. The data layer server 74 may thus operate or function as a virtual, remote resource for providing contractual execution as software services. Suppose, for example, that the data layer server 74 implements four (4) virtual machines 280 a-d. In practice, though, the data layer server 74 may implement any number or instantiations of different virtual machines 280 and/or digital contracts 20, depending on complexity and resources. Moreover, as a further simplification, assume that each virtual machine 280 a-d executes a different corresponding digital contract 20 a-d. So, when the data layer server 74 receives the blockchain 24, the data layer server 74 may inspect the blockchain 24 for each contract identifier 28 a-d and/or the corresponding contractual information 28 a-d and consult the database 44 of contracts.
  • FIG. 42 further illustrates the database 44 of contracts. Here the database 44 of contracts may include entries that map the contract identifier 28 to the corresponding virtual machine 280. The database 44 of contracts may thus be preconfigured or preloaded with entries that assign or associate each virtual machine 280 to its corresponding contract identifier 28. Once the virtual machine 280 is identified, the data layer server 74 may then coordinate and/or manage the execution of the corresponding digital contract 20, perhaps based on the contract information 30. Suppose, for example, that the data layer application 154 has programming or code that functions or performs as a query handler. The data layer application 154 inspects the blockchain 24 for the contract identifier 28 and queries the database 44 of contracts (as above explained). The data layer application 154 thus identifies and/or retrieves the corresponding virtual machine 280. Exemplary embodiments may thus determine whether contract identifier 28 matches or satisfies any of the entries specified by the database 44 of contracts. FIG. 42 illustrates entries that map the contract identifier 28 to its corresponding virtual machine 280 (e.g., an address, processor core, identifier, or other indicator).
  • The digital contract 20 may then be executed. For example, once the contract identifier 28 and the virtual machine 280 are determined, the virtual machine 280 may then call, retrieve, and/or execute the computer file 46 that provides the digital contract 20 as a virtual service or process. FIG. 42 illustrates the computer file 46 locally stored and executed by the data layer server 74, but the computer file 46 may be remotely stored, retrieved, and/or executed. Regardless, the virtual machine 280 may be instructed to retrieve, execute, and/or apply the computer file 46, perhaps based on the contractual information 30.
  • FIG. 42 also illustrates software services. Here the database 44 of contracts may include entries that map the contract identifier 28 to a corresponding software service provided by the virtual machine 280. Exemplary embodiments, in other words, may relate the contract identifier 28 to a service identifier 282. The service identifier 282 is any alphanumeric combination, data, or hash value that uniquely identifies a software service 284 provided by the virtual machine 280. Once the contract identifier 28, the software service 284, and/or the virtual machine 280 are determined, the virtual machine 280 may then provide the software service 284. The software service 284 may execute the digital contract 20, perhaps based on the contractual information 30.
  • FIG. 43 illustrates cryptographic affinities, according to exemplary embodiments. Here the data layer server 74 may create or generate a cryptographic affinity 290 describing contractual execution. This disclosure above explained how the data layer server 74 may generate the data records 70 in the blockchain data layer 72. This disclosure also above explained how the data records 70 may document execution of the digital contract 20. Here, then, the cryptographic affinity 290 may uniquely identify the digital contract 20 executed by the virtual machine 280. For example, once the contract identifier 28 and the virtual machine 280 are determined (as above explained), the hashing algorithm 148 may generate a unique hash value 150. That is, the hashing algorithm 148 may hash the contract identifier 28 with a virtual machine (“VM”) identifier 292 to generate the cryptographic affinity 290. The virtual machine identifier 292 is any alphanumeric combination, data, or hash value that uniquely identifies the virtual machine 280. The cryptographic affinity 290 may then be documented by the data records 70 in the blockchain data layer 72, thus evidencing the execution of the digital contract 20. Indeed, the cryptographic affinity 290 may be published via the public blockchain 76 as the cryptographic proof 80, thus further publicly evidencing the execution of the digital contract 20.
  • FIG. 44 illustrates virtual assignments based on the blockchain data layer 72, according to exemplary embodiments. As this disclosure previously explained, exemplary embodiments may generate the data records 70 representing the blockchain data layer 72 (such as the entries 180, the entry blocks 182, and/or the directory blocks 184 explained with reference to FIGS. 25-27). Exemplary embodiments may thus assign the blockchain 24 and/or the virtual machine 280 that executes the digital contract 20, based on the number of the entries 180, the entry blocks 182, and/or the directory blocks 184 generated within the blockchain data layer 72. For example, as the data records 70 are generated, the data layer server 74 may determine a rate 290 of generation. That is, as the data records 70 are generated when or while executing the digital contract 20, exemplary embodiments may sum or count the entries 180, the entry blocks 182, and/or the directory blocks 184 that are generated over time (such as per second, per minute, or other interval). Exemplary embodiments, for example, may call or initialize a counter having an initial value (such as zero). At an initial time (such as when the blockchain 24 is received or when the contract identifier 28 is determined), the counter commences or starts counting or summing the number of the entries 180, the entry blocks 182, and/or the directory blocks 184 (generated within the blockchain data layer 72) that are commonly associated with or reference the blockchain 24 (perhaps according to the chain ID 174) and/or the contract identifier 28. The counter stops counting or incrementing at a final time and exemplary embodiments determine or read the final value or count. Exemplary embodiments may then calculate the rate 290 of generation as the sum or count over time and consult or query the electronic database 44 of contracts for the rate 290 of generation. Exemplary embodiments may thus define entries that map or associate different rates 290 of generation and/or ranges to their corresponding contract identifier 28 and/or virtual machines 280. If the database 44 of contracts has an entry that matches or satisfies the rate 290 of generation, exemplary embodiments identify the corresponding virtual machine 280.
  • The rate 290 of generation may thus be a feedback mechanism. As the blockchain 24 is received. the data records 70 are requested, and/or the digital contract 20 is executed, the rate 290 of generation of the data records 70 may determine the virtual machine 280 that is assigned adequate capacity or bandwidth. One of the blockchains 24 and/or virtual machines 280, for example, may be reserved for digital contracts 20 having a heavy, disproportionate, or abnormally large rate 290 of generation. Another of the blockchains 24 and/or virtual machines 280 may be reserved for digital contracts 20 having a medium, intermediate, or historically average rate 290 of generation. Still another blockchain 24 and/or virtual machine 280 may be reserved for the digital contracts 20 having a light, low, or historically below average rate 290 of generation. The rate 290 of generation may thus be a gauge or measure of which blockchain 24, digital contract 20, and/or virtual machine 280 is assigned the resources.
  • Exemplary embodiments thus include a service environment. Exemplary embodiments may manage and/or execute many different digital contracts 20 offered by many different vendors or suppliers. Indeed, the data layer server 74 may manage or even execute the digital contracts 20 while also generating the blockchain data layer 72 as still another service. The data layer server 74 may thus acts as a subcontractor or service provider, perhaps in a subscription or other compensation scheme. Any customer or client (such as the entity server 140 explained with reference to FIGS. 22-23) may thus send or forward its private blockchain 24 (generated from its private data 36) to the data layer server 74 for management or execution of any digital contract 20. The data layer server 74 may generate the data records 70 of the blockchain data layer 72 that document the management or execution of any digital contract 20. Moreover, the data layer server 74 may publicly publish the cryptographic proof 80 within the public blockchain 76, thus further documenting immutable evidence of the management or execution of any digital contract 20. Indeed, the entity server 140 may also generate the blocks 26 of data within the private blockchain 24 that also document the date and time that the management or execution of any digital contract 20 was sent/requested. The entity server 140 may then pay or reward the data layer server 74 in exchange for the digital contract 20 and/or the data records 70 in the blockchain data layer 72 (such as granting its crytpocoinage 60 and 120, as explained with reference to FIG. 19).
  • The data layer server 74 may thus serve many blockchains 24 requesting many different contractual services. The financial institution 34, for example, may send or forward its private blockchain 36 a (as illustrated with reference to FIGS. 20-21) to the data layer server 74 for application or execution of any digital contract 20 (by specifying the contract identifier 20, as above explained). The retailer 122 may similarly send or forward its private blockchain 36 b to the data layer server 74 for application or execution of any digital contract 20. The online website 124 may also send or forward its private blockchain 36 c to the data layer server 74 for application or execution of any digital contract 20. The data layer server 74 may generate the data records 70 of the blockchain data layer 72 that document the management and/or execution of any digital contract 20, and the data layer server 74 may publicly publish each cryptographic proof 80 within the public blockchain 76, thus further documenting immutable evidence of the management and/or execution of any digital contract 20. The entity 32 may then pay or reward the data layer server 74 via their respective crytpocoinage 60 and 120.
  • Exemplary embodiments thus only need to identify the digital contract 20. The contract identifier 28 and the contractual parameters 30 need only be informational content in the private blockchain 24. The contract identifier 28 is any digital identifying information that uniquely identifies or references the digital contract 20. The contract identifier 28 may be an alphanumeric combination that uniquely identifies a vendor and/or version of the digital contract 20 and/or a processor or executioner of the digital contract 20. The contract identifier 28 may be expressed as a unique hash value that is included within, or specified by, the private blockchain 24. Similarly, the contractual parameters 30 may identify the parties to the digital contract 20, their respective performance obligations and terms, and consideration.
  • FIGS. 45-51 illustrate an architectural scheme, according to exemplary embodiments. This disclosure above explained that the data layer server 74 may only manage the execution of the digital contract 20. The implementation and/or actual execution of the digital contract 20 may thus be separate from the data layer server 74 that generates the blockchain data layer 72. FIG. 45, for example, illustrates the data layer server 74 communicating via the communications network 142 with the remote server 262. The data layer server 74 generates the blockchain data layer 72, and the remote server 262 executes at least some portion of the digital contract 20. The remote server 262 may thus have a hardware processor 300 (e.g., “μP”), application specific integrated circuit (ASIC), or other component that executes a contract application 302 stored in a local memory device 304. The remote server 262 has a network interface to the communications network 142, thus allowing two-way, bidirectional communication with the data layer server 74. The contract application 302 includes instructions, code, and/or programs that cause the remote server 262 to perform operations, such as executing at least some portion of the digital contract 20.
  • FIG. 46 illustrates a request mechanism. The data layer application 154, for example, identifies the contract identifier(s) 28 and/or the contractual parameters 30 associated with or representing the digital contract 20. The contract identifier(s) 28 and/or the contractual parameters 30 may be sent to the data layer server 74 as an input (such as from the entity server 140, as explained with reference to FIGS. 22-24), or the contract identifiers 28 and/or the contractual parameters 30 may be contained as information in the private blockchain 24. Regardless, the data layer server 74 may then identify the network address, IP address, URL, or other nomenclature representing the remote server 262 that executes at least some portion of the digital contract 20 (perhaps via the database 44 of contracts, as earlier explained). The data layer server 74 sends the service request 266 to the remote server 262, and the service request 266 may include or specify the contract identifier 28 and/or the contractual parameters 30. When the remote server 262 receives the service request 266, the remote server 262 applies the contractual parameters 30 to the portion of the digital contract 20 and generates a contractual result 306. The remote server 262 may then send the service response 268 back to the data layer server 74, and the service response 268 may comprise the contractual result 306.
  • Exemplary embodiments may thus exchange inputs and outputs. When the data layer server 74 sends the service request 266 to the remote server 262, the service request 266 may include or specify one or more of the contract identifiers 28 and/or the contractual parameters 30. Suppose, for example, that the contract identifiers 28 and/or the contractual parameters 30 are represented as hash values. The hash values may be identified from, or specified by, the private blockchain 24. The hash values may additionally or alternatively be generated by the data layer application 154 (such as by calling, invoking, or executing the hashing algorithm 148, as above explained). Regardless, the service request 266 may thus include or specify the hash values representing the contract identifiers 28 and/or the contractual parameters 30. When the remote server 262 receives the service request 266, the contract application 302 may use or accept the hash values as inputs to generate the contractual result 306 as an output. The contract application 302 may further encrypt the contractual result 306 (such as calling, invoking, or executing the hashing algorithm 148) to generate another hash value representing the contractual result 306.
  • Exemplary embodiments provide contractual proofs. When the data layer server 74 sends the service request 266 to the remote server 262, the data records 70 may document the service request 266 as one of the cryptographic proofs 80. When the data layer server 74 receives the service response 268, the data records 70 document that receipt and the contractual result 306 as another one of the cryptographic proofs 80. The data records 70 thus prove that at least the portion of the digital contract 20 was outsourced to a vendor or supplier as a subcontractor process or assignment. The data records 70 also prove that at least the portion of the digital contract 20 was executed to provide the contractual result 306. The data layer server 74 may then compare the contractual result 306 (such as its hash value) to a predefined or expect value. If the contractual result 306 matches or equals the predefined or expect value, then the data layer application 154 may be programmed or coded to infer that the contract successfully executed and/or the vendor or supplier performed as obligated. However, if the contractual result 306 fails to match or equal the predefined or expect value, then the data layer application 154 may be programmed or coded to infer that the contract is not satisfied and/or the vendor or supplier failed to perform as obligated.
  • FIG. 47 illustrates a layered contractual process. Here the digital contract 20 may have different or individual components, portions, or sub-parts that cumulatively combine to produce the contractual result 306. The different components, portions, or sub-parts may be software modules 310 that can be separately executed to generate the overall or final contractual result 306. A simple digital contract 20, for example, may only have a few or several software subroutines or modules 310, while a complex or complicated digital contract 20 may have many or hundreds of different software subroutines or modules 310. As the reader likely understands, such a complicated software structure is too difficult to illustrate. For simplicity, then, FIG. 47 illustrates the digital contract 20 having four (4) software modules 310 a-d. The entire contract application 302, in other words, may have four (4) different application layers 312 a-d. Each componentry module 310 a-d or layer 312 a-d may have its own corresponding contract identifier 28 a-d. When the remote server 262 receives the service request 266, exemplary embodiments may then feed the contractual parameters 30 as inputs 314 a-d to the software modules 310 a-d. Each different software module 310 may thus generate its respective or corresponding output 316 a-d, which may be combined or processed to generate the overall or final contractual result 306.
  • FIG. 48 illustrates hierarchical execution. Here the different software modules 310 may be serially or sequentially executed to generate the overall or final contractual result 306. For example, the software module 310 a may accept at least some of the contractual parameters 30 as the input 314 a, execute its respective programming code, and generate its corresponding output 316 a. Here, though, the output 316 a may then be routed or sent to the software module 310 b (illustrated as the application layer 312 b) as its input 314 b. Its respective programming code is then executed to generate its corresponding output 316 b, based on the output 316 a generated by or received from the software module 310 a. Similarly, software module 310 c accepts the output 316 b and generates output 316 c, which is received by software module 310 d as input 314 d and used to generate the output 316 d. While exemplary embodiments may continue processing the outputs 316 a-d to generate any desired outcome, for simplicity FIG. 40 illustrates the output 316 d as the final contractual result 306. Exemplary embodiments may thus use the software modules 310 a-d as feedback mechanisms to monitor or even enforce contractual rule-based obligations defined or specified by the digital contract 20.
  • FIG. 49 illustrates the blockchain data layer 72. Here the blockchain data layer 72 may document the processing and/or execution of each software module 310 a-d, its respective input(s) 314 a-d, its respective output(s) 316 a-d, and perhaps a corresponding timestamp (not shown for simplicity). The data records 70 may further document or record the corresponding contract identifier 28 a-d and/or the chain identifier 174. The data layer server 74 may thus receive the service updates 270 (via the communications network 142) as each software module 310 a-d performs or executes its corresponding contractual service. The data layer server 74 may then generate the data records 70 in the blockchain data layer 72, thus documenting each software component's contribution toward the overall or final contractual result 306. The data records 70 may also be hashed to generate the cryptographic proofs 80, as above explained.
  • FIG. 50 also illustrates contractual execution. Here, though, the different software modules 310 may be executed by different devices. Suppose, for example, that the remote server 262 a locally stores and executes the software module 310 a, while the remote server 262 b locally stores and executes the software module 310 b. Suppose also that the remote server 262 c locally stores and executes the software module 310 c and the remote server 262 d locally stores and executes the software module 310 d. Exemplary embodiments may thus source or subcontract the different portions of the digital contract 20 to different machines for execution. The remote server 262 a, for example, may specialize in the software module 310 a. The remote server 262 a may thus accept the service request 266 from clients, execute the software module 310 a, and return send the service response 268 (as explained with reference to FIG. 46). The remote server 262 a may also send the service update(s) 270 to the data layer server 74, thus allowing the blockchain data layer 72 to document the contractual service provided by the software module 310 a. The remote servers 262 b-d may similarly specialize in the software modules 310 b-d to provide their respective contractual services.
  • FIG. 51 illustrates an overall architectural scheme. As the reader may envision, there may be hundreds, thousands, millions, or even billions of contractual relationships between many different parties. As smart, digital contracts grow in acceptance and usage, the blockchain data layer 72 is expected to exponentially grow, thus requiring ever-increasing hardware and software resources. In plain words, there may be many data layer servers 74 generating the data records 70 in the blockchain data layer 72. While there may be hundreds or even thousands of data layer servers 74, FIG. 51 simply illustrates four (4) data layer servers 74 a-d that cooperate to generate the blockchain data layer 72. As the processing load increases or grows (such as according to the rate 290 of generation, as above explained), the number of data layer servers 74 may also grow.
  • The blockchain data layer 72 may thus be separate from an implementation and execution of the digital contract 20. The data layer servers 74, in other words, may be separately networked and/or addressed from the remote servers 262 providing the contractual services representing the software modules 310 of the digital contract 20. Any of the data layer servers 74 may send data or information as inputs to any one of the remote servers 262, and the corresponding software module 310 performs its contractual service and sends its output 316 back to the blockchain data layer 72 (perhaps via the service request 266, the service response 268, and the service update 270 as earlier explained and illustrated). Some of the remote servers 262 may provide virtual services, such as a virtual machine (as above explained) that executes any of the software modules 310.
  • FIG. 52 illustrates compliance scheme, according to exemplary embodiments. As the reader may understand, some smart, digital contracts have jurisdictional requirements. For example, the digital contract 20 may have programming code that requires an execution or processing in a particular region or country. That is, the digital contract 20 may have contractual rules and/or provisions that must be enforced in the United States, the European Union, or the Isle of Man. Components or portions of the digital contract 20 may require execution or location in the Cayman Islands, Idaho, or Hong Kong. The digital contract 20, in other words, may have a geographic parameter 320. The geographic parameter 320 may be a locational requirement, restriction, or preference for at least some portion of the digital contract 20. The geographic parameter 320 can be any data, information, field, metadata, or code for enforcing the locational requirement, restriction, or preference. Indeed, the geographic parameter 320 may even be finely expressed or defined as global positioning system (“GPS”) information or coordinates at which at least some portion of the digital contract 20 must be processed or executed.
  • The geographic parameter 320 may be an input value. As FIG. 52 illustrates, the geographic parameter 320 may be read or received via the private blockchain 24 (perhaps along with the contract identifier 28 and/or the contractual parameter 30). The data layer server 74, in other words, may identify the geographic parameter 320 as data, information, or a hash value contained within the block 26 of data. However, the geographic parameter 320 may additionally or alternatively be received and/or identified within a header of body/payload of a packet 322 of data (packetized according to the Internet Protocol, just as the contract identifier 28 and/or the contractual parameter 30 may be identified).
  • Regardless, once the geographic parameter 320 is determined, exemplary embodiments may again consult the database 44 of contracts. The database 44 of contracts may have entries that electronically associate the contract identifier(s) 28 and/or the contractual parameter(s) 30 to the geographic parameter 320. The data layer application 154 may instruct the data layer server 74 to query the database 44 of contracts for either, any, or all of the contract identifiers 28, the contractual parameters 30, and/or the geographic parameters 320 to identify and/or retrieve the corresponding database entries. As a simple example, suppose a file component of the digital contract 20 must be processed in a particular geographic region (such as the British Virgin Islands or Canada). The corresponding contract identifier 28, in other words, may be electronically associated with a particular geographic region, as defined by a tabular entry in the database 44 of contracts. Once the region is determined, the data layer server 74 may then route the contract identifier 28, the contractual parameter 30, and/or the geographic parameter 320 to the remote server 262 that is associated with, or even located within, the region. Exemplary embodiments, for example, may implement the service request 266, the service response 268, and the service update 270 (as earlier explained). The remote server 262 may then process or execute the digital contract 20 using the contract identifier 28 and/or the contractual parameter 30 (as this disclosure earlier explained).
  • Other examples explain the geographic parameter 320. Suppose that the contract identifier 28 and/or the contractual parameter 30 map(s) to a particular server, cluster of servers, and/or a particular virtual machine (“VM”). The data layer server 74 may then route the contract identifier 28, the contractual parameter 30, and/or the geographic parameter 320 to the remote server 262 that is associated with the cluster of servers and/or the virtual machine. The remote server 262 may then process or execute the digital contract 20 using the contract identifier 28 and/or the contractual parameter 30 (as this disclosure earlier explained). More likely, though, the contract identifier 28 and/or the contractual parameter 30 will relate to a particular IP address or uniform resource locator (“URL”). The data layer server 74 may then route the contract identifier 28, the contractual parameter 30, and/or the geographic parameter 320 to the remote server 262 that is associated with the IP address or URL for processing (again, as this disclosure earlier explained).
  • Exemplary embodiments may thus implement contractual provisions. Some digital contracts 20 may require a particular server, perhaps implementing or hosting a particular website, network, authentication scheme, programming, or other geographic parameter 320. Some parties to the digital contract 20 may also require a particular server, perhaps as specified by the geographic parameter 320. Some digital contracts 20 may have compliance obligations, perhaps defined by a particular jurisdiction and expressed as the geographic parameter 320. Servers, webpages, networks and other resources may be dedicated to specific jurisdictions, as expressed by the geographic parameter 320.
  • FIGS. 53-59 illustrate a decisional architecture and scheme, according to exemplary embodiments. Even though the blockchain environment 22 enables an execution of the smart, digital contract 20, some digital contracts may be too complex and/or too cumbersome to implement on the blockchain 24. As this disclosure above explains, exemplary embodiments may thus put smaller contractual components of the digital contract 20 on any blockchain (such as the private blockchain 24 or the public blockchain 76), validate the contractual components (perhaps via the cryptographic proof 80), incorporate the cryptographic proof 80 into a larger component of the digital contract 20, and then validate the larger component.
  • Exemplary embodiments may further implement one or more decision tables 326. As the reader may understand, the decision table 326 may be used to implement at least a component of the digital contract 20. That is, the decision table 326 may represent one or more rules or logic conditions 328, one or more inputs 330, and one or more decisional outputs 332. The decision table 326 may thus be visually represented as a table having rows and columns. In simple words, once the input 330 is known, a processing or execution engine (such as the entity server 140 or other device) electronically maps or associates the input 330 to the appropriate rule or logic condition 328 and generates the decisional output 332. Exemplary embodiments may then log or record the decisional output 332, along with its corresponding the input 330, rule or logic condition 328, and a date/time stamp.
  • Exemplary embodiments may thus document any decision. In general, the smart, digital contract 20 is an agreement between parties/participants about services, products, and/or money. In order to make the decisional output 332, information is provided (such as the input 330) and the rule or logic condition 328 is executed. In an interactive process, each party/participant might contribute data to a single decision. In other words, the parties may exchange data to perform the decisional output 332. Exemplary embodiments may thus map each decisional output 332 (perhaps representing a decision model) to a decision taken by a single party. Each party, in other words, may communicatively exchange the result of its decision such that others can base their decisions on their decisional output 332, thus collaboratively executing the different components of the digital contract 20.
  • FIG. 54 illustrates an impartial, trusted intermediary. When any party or participant to the digital contract 20 acts or executes, exemplary embodiments may log or archive their respective action(s). For example, the data layer server 74 may be informed of any decision-making process. Suppose, for example, that the entity 32 (acting as a party to the digital contract 20) wishes to document or prove its contractual performance. That is, the entity server 140 sends its decisional output 332 (perhaps via the communications network 142 illustrated in FIGS. 22-23) to the data layer server 74 for documentation. The decisional output 332 may thus be read or received via the private blockchain 24 (perhaps along with the contract identifier 28 and/or the contractual parameter 30). The data layer server 74, in other words, may identify the decisional output 332, along with its corresponding input 330, its rule or logic condition 328, and the date/time stamp, as data, information, or hash values contained within the block 26 of data (as FIG. 53 illustrated). However, the decisional output 332 (and/or the contract identifier 28, the contractual parameter 30, the input 330, the rule or logic condition 328, and the date/time stamp) may additionally or alternatively be received and/or identified within a header of body/payload of the packet 322 of data (packetized according to the Internet Protocol).
  • Regardless, the data layer server 74 may then generate the data records 70 in the blockchain data layer 72, as this disclosure above explained. The data records 70 log or record the decisional output 332 (sent from the party participant), along with its corresponding input 330, the decision table 326, the rule or logic condition 328, and the date/time stamp of performance. The blockchain data layer 72, in other words, provides neutral, documentary evidence that the party executed its transactional portion of the smart, digital contract 20. Moreover, the blockchain data layer 72 may also add another layer of cryptographic hashing to generate the public blockchain 76 and the cryptographic proof 80. The blockchain data layer 72 thus may again act as the validation service 78 that validates the party performed its portion of the digital contract 20. Exemplary embodiments may thus be used as an audit trail to reconstruct the party's decision-making process and who provided the input 330.
  • Exemplary embodiments may even document fine granularity. When the data layer server 74 receives the decisional output 332, the data or information may even identify or pinpoint the network resource 250. That is, when entity 32 (acting as a party to the digital contract 20) wishes to document or prove its contractual performance, the decisional output 332 may even include data or information identifying the particular server 254 or cluster or virtual machine 256 that generated the decisional output 332. Indeed, the data or information may even identify or pinpoint the particular IP address or uniform resource locator (“URL”). The data records 70 may thus document the machine, manufacturer, model, and/or chassis hardware inventory that performed the portion of the digital contract 20.
  • FIG. 55 illustrates contractual management. Here again the data layer server 74 may manage the execution of the digital contract 20. When any party, participant, or subcontractor performs a portion or component of the digital contract 20, the data layer server 74 may coordinate and validate the contractual components. Suppose again that the data layer server 74 receives the contract identifier 28 and/or the contractual parameters 30 (as earlier explained). The contract identifier 28 may represent a single, large digital contract 20. The contract identifier 28, however, may represent only a single or a few contractual components of the digital contract 20. The contract identifier 28, in other words, may map or relate to a sequence or series of one or more table identifiers 334. Each table identifier 334 may be an alphanumeric combination or a unique hash value. Regardless, each table identifier 334 uniquely identifies the corresponding decision table 326 that decides a componentry portion of the digital contract 20. When the data layer server 74 receives the one or more contract identifiers 28, the data layer server 74 may then consult the database 44 of contracts.
  • FIG. 56 further illustrates the database 44 of contracts. Here the database 44 of contracts may have additional entries that map or relate the contract identifier 28 to the table identifier 334 and/or to the network resource 250 that executes the corresponding componentry portion of the digital contract 20 (perhaps again as a cloud-based service). The contract identifier 28, in other words, may map or relate to a sequence or series of one or more table identifiers 334. Each table identifier 334 may be an alphanumeric combination or a unique hash value. Regardless, each table identifier 334 uniquely identifies the corresponding decision table 326 that decides a componentry portion of the digital contract 20. When the data layer server 74 receives the one or more contract identifiers 28, the data layer server 74 may then consult the database 44 of contracts to determine any corresponding entry (as this disclosure above explains).
  • FIG. 57 illustrates outsourcing. Once the network resource 50 is determined (recall that the network resource 50 may execute the corresponding componentry portion of the digital contract 20), the data layer server 74 may utilize the request mechanism. Suppose, for example, that the database 44 of contracts identifies the remote server 262 as the network resource 50. The data layer server 74 may thus instruct the remote server 262 to execute the corresponding decision table 326. The data layer server 74, for example, sends the service request 266 (as earlier explained), and the service request 266 may specify the table identifier 334 and/or the input 330 as the contractual parameters 30. When the remote server 262 receives the service request 266, the remote server 262 applies the input 330 to the decision table 326 representing the digital contract 20. Once the decisional output 332 is determined, the remote server 262 may then send the service response 268 back to the data layer server 74, and the service response 268 comprises data or information describing the decisional output 332. The data layer server 74 may generate the data records 70 in the blockchain data layer 72 that document the service request 266 and the service response 268, perhaps including any service updates 270 as the decision table 326 is executed.
  • FIG. 58 illustrates contractual participation. Here the data layer server 74 may execute at least a componentry portion of the digital contract 20. That is, the data layer server 74 may locally store and/or access one or more of the decision tables 326 representing the digital contract 20. When the data layer server 74 receives the contract identifier 28 and/or the contractual parameters 30 (as earlier explained), the data layer server 74 may consult the database 44 of contracts. Here, though, the database 44 of contracts has one or more entries that map or relate the contract identifier 28 to the virtual machine 280 that executes the decision table 326. The database 44 of contracts may thus electronically associate the contract identifier 28 to the table identifier(s) 334 and the virtual machine(s) 280 that locally execute the decision table(s) 326. The decisions table 326 may thus have virtual assignments. Once the virtual machine 280 and/or the decision table 326 is determined, the virtual machine 280 is requested or instructed to apply the input 330 to the corresponding decision table 326 to generate the decisional output 332. The data layer server 74 may then generate the data records 70 in the blockchain data layer 72 that document the local contractual performance (as earlier explained).
  • As FIG. 58 illustrates, feedback may be used. Exemplary embodiments may assign the virtual machine 280 based on the data records 70 in the blockchain data layer 72. That is, as the decision table 326 consumes more and more of the data records 70 (e.g., the number of the entries 180, the entry blocks 182, and/or the directory blocks 184 generated within the blockchain data layer 72, as earlier explained), the rate 290 of generation may be used as a feedback mechanism (as this disclosure earlier explained). Highly used or called decision tables 326, in other words, may be assigned to virtual machines 280 having greater capacity or bandwidth. The database 44 of contracts may thus define entries that map or associate different rates 290 of generation and/or ranges to their corresponding table identifier 334 and/or virtual machines 280. If the database 44 of contracts has an entry that matches or satisfies the rate 290 of generation, exemplary embodiments identify the corresponding virtual machine 280. Some virtual machines 280, for example, may be reserved for decision tables 326 having a heavy, disproportionate, or abnormally large rate 290 of generation. Other virtual machines 280 may be reserved for decision tables 326 having intermediate and low rates 290 of generation. The rate 290 of generation may thus be a gauge or measure of which virtual machine 280 is assigned the decision table 326.
  • Exemplary embodiments thus include a service environment. Exemplary embodiments may manage and/or execute many different decision tables 326 offered by many different vendors or suppliers. Indeed, the data layer server 74 may manage or even execute the digital contracts 20 while also generating the blockchain data layer 72 as still another service. The data layer server 74 may thus acts as a subcontractor or service provider, perhaps in a subscription or other compensation scheme. Any customer or client may thus send or forward its input 330 and/or its decisional output 332 to the data layer server 74 for management or execution of any digital contract 20. The data layer server 74 may generate the data records 70 of the blockchain data layer 72 that document the management or execution of any portion of component of the digital contract 20. Moreover, the data layer server 74 may publicly publish the cryptographic proof 80 within the public blockchain 76, thus further documenting immutable evidence of the management or execution of any digital contract 20. Any party, participant, or vendor/subcontractor may then pay or reward the data layer server 74 (such as granting its crytpocoinage 60 and 120, as explained with reference to FIG. 19).
  • The data layer server 74 may thus provide contractual services. The financial institution 34, for example, may send or forward its input 330 and/or its decisional output 332 to the data layer server 74 for contractual documentation. Similarly, the retailer 122, the online website 124, and the manufacturer 128 may also send its input 330 and/or its decisional output 332 to the data layer server 74 for contractual documentation. The data layer server 74 may generate the data records 70 of the blockchain data layer 72 that document the management and/or execution of any decision table 326 representing any portion of the digital contract 20. The data layer server 74 may also publicly publish each cryptographic proof 80 within the public blockchain 76, thus further documenting immutable evidence of the management and/or execution of any digital contract 20. The data layer server 74 may be paid or rewarded via their respective crytpocoinage 60 and 120.
  • Exemplary embodiments may thus create factored decision tables driven by a table engine. Smart, digital contracts are notoriously dangerous. Decision tables are significantly easier to verify and validate. However, decision tables may be large and perhaps cannot be placed on a blockchain. Exemplary embodiments may thus put smaller contractual components of the digital contract 20 on any blockchain (such as the private blockchain 24 or the public blockchain 76), validate the contractual components (perhaps via the cryptographic proof 80), incorporate the cryptographic proof 80 into a larger component of the digital contract 20, and then validate the larger component.
  • Exemplary embodiments thus may separate the blockchain data layer data 72 from contractual execution. The data layer server 74 (generating the blockchain data layer data 72) may thus accept inputs from the servers (such as the remote server 262) executing any component of the digital contract 20. The servers (such as the remote server 262) executing any component of the digital contract 20 may also send data to the data layer server 74. The data layer server 74 may thus execute the decision table. The remote server 262 may additionally or alternatively execute the decision table when processing the digital contract 20. The decision table may thus be sent and/or received as an input/output. Even a virtual machine may access and use the decision table.
  • Exemplary embodiments thus establish the digital contract 20 as an identity. Because only the contract identifier 28 is needed, the digital contract 20 may be separated into various smaller components (such as the software modules 310 and/or layers 312, as above explained). Each software module 310 and/or layer 312 may have its own contract identifier 28. The digital contract 20 is thus transformed to an identity, which may be easily updated after software bugs are found and consensus is documented by stake holders. Exemplary embodiments thus provide an ability to repair bugs and to claw back or backup spurious results. The separation of the blockchain data layer data 72 thus isolates and protects the data records 70.
  • Exemplary embodiments thus describe a novel smart contract architecture to be run on blockchains. The digital contract 20, and/or its contractual components, may each have its own digital identity defined within the blockchain data layer data 72. The contract identifier 28, in other words, may uniquely identity a version, thus allowing stakeholders (using their digital identities) to approve updates to respond to changes in business, to approve bug resolution, and to accommodate new participants in the digital contract 20, without having to dissolve the original version and without redeploying or requiring the blockchain to be reversed and modified to avoid an incorrect, improper, or unacceptable result by perhaps a majority of users. As the reader may understand, modifying a blockchain to resolve an issue involves many more stakeholders with an interest in the blockchain but having no interest in the smart contract. This has been a problem with conventional blockchain architectures.
  • Exemplary embodiments may separate the blockchain data layer data 72 from the rules engine architecture that executes the digital contract 20. Exemplary embodiments allow for light weight, secure, and extendible digital identity. Digital identity can be applied to implementation of the virtual machine that runs the digital contract 20. Digital identity can be applied to any smart contract and/or to any stakeholder(s). Stakeholders may thus be paid (perhaps via the cryptocurrencies as explained with reference to FIGS. 13 & 15-21) for who they are, such as to a particular blockchain address, meaning if a stakeholder's address is compromised, then the stakeholder can update the address without having to modify the digital contract 20. This virtual address modification is similar to the real world for when a business moves from one geographic location to another, the business does not invalidate all its contracts. In the real world, the business merely informs parties of its new physical address and contact information. Exemplary embodiments allow management of the digital contract 20 in a flexible fashion, similar to management of contracts in the real world, but with blockchain security and data integrity of the actual digital contract 20, automation of provisions in the digital contract 20, and cryptopayment support.
  • Exemplary embodiments are also scalable. Layers or modules 310 and 312 can be created in the digital contract 20 and/or in the private blockchain 24 or the public blockchain 76 for improved flexibility and management via hardware computers. The data records 70 in the blockchain data layer data 72 are safely separated from the servers that execute the digital contract 20. Contract servers (e.g., the contractual application layer) may perform a decentralized evaluation of digital contract 20, using the proper virtual machine and proper rules, and manage interests of majority or all stakeholders. Values of cryptotokens may be defined and/or distributed, but allowing greater scalability.
  • Exemplary embodiments provide numerous advantages. Because the contractual execution is separate from the blockchain data layer data 72, the results of the digital contract 20 are securely documented and may be exported to other contractual components or to other digital contracts. Exemplary embodiments may thus implement and offer multiple modules 310, layers 312, or instances of different contractual components that can exchange inputs and outputs to build a networking effect between different layers, modules, and smart contracts. A first server running a first application layer (and perhaps executing a first smart contract) can be entirely separate a second server running a second smart contract and a third server running a third smart contract. The blockchain data layer 72, though, exchanges and thus documents their respective inputs and outputs. The various servers may thus manage and/or share the same cryptotokens, or different entity tokens may be exchanged within each layer. Regardless, exemplary embodiments may coordinate exchanges of value for services performed. Great flexibility in defining the value of cryptotokens and the value into and out of smart contract.
  • Exemplary embodiments may also have jurisdictional advantages. Particular servers may be specific to particular jurisdictions and/or particular smart contracts. For example, some application layers may cross jurisdictional servers with different compliances. As another example, suppose that one application layer may require qualified investors with full know your client (or “KYC”) compliance. Another application layer may be anonymous and/or allow all corners. Even if the blockchain data layer 72 has a small set of users/clients, large smart contracts may be managed, implemented, and/or documented.
  • The digital contract 20 may utilize conventional programming languages and/or decision tables. In particular, some programming languages and decision tables, like purely functional languages, may mathematically prove contractual algorithms. These mathematical proofs may yield much more secure smart contracts than conventional languages that run on today's blockchains. Previously, smart contracts were often too big in size to execute on a blockchain. The separate blockchain data layer 72, though, allows scaling and implementing smart contracts “off chain.” The proof 80 of the digital contract 20, for example, is a hash value, perhaps in association with the contract identifier 28 and/or the chain identifier 174, as documented by the data records 70 in the blockchain data layer 72. The hash value of the proof 80, in other words, is a very small value (in relation to the size of the smart contract). The digital contract 20 may thus be provided to any or all parties and/or any or all stakeholders for validation of its terms, obligations, and performance. The cryptographic proof 80 thus verifies execution without stuffing large amounts of data onto the private blockchain 24 or the public blockchain 76.
  • Exemplary embodiments may use decision tables for smart contracts. Decision tables are well understood, perform well, and are verifiable relative to brute-force code writing. Simply put, custom programming code introduces many variables and software bugs are inevitable. Decision tables are also very amenable to domain-specific languages. As the reader may understand, domain-specific languages accept near-English statements as inputs and generate computer code as outputs. Subject matter experts may thus define the functionality of the digital contract 20, perhaps without relying on the skills of computer programmers (who may not fully understand the subject matter). Decision tables are thus approachable to subject matter experts and easily implemented. Decision tables may also be combined with other decision tables, which allows performance proven and validated functions may be incorporated into smart contracts for many objectives and outcomes. Decision tables may thus be mixed and matched as components to a composite digital contract 20, and a collection of decision tables representing the digital contract 20 may still be validated to ensure correct operation. Decision tables define much smaller numbers of programming paths through the software code representing the digital contract 20, which ensures that all contractual combinations may be enumerated and proper results can be expected for a range of values. On blockchains, though, decision tables may be big in size, so some decision tables may not be feasible as a smart contract on a conventional blockchain. But, because the blockchain data layer 74 is separate from the remote servers 262 executing the digital contract 20, the digital identity (e.g., the contract identifier 28) for the digital contract 20 (that allows the smart contract to exist off chain) provides the servers (each perhaps having its own identity) to certify execution of the digital contract 20. Exemplary embodiments may also define the mechanism for cryptotoken-based payments that incentivize the remote server 262 to perform the digital contract 20 and to verify and validate the digital contract 20. Component and composite performance may be tracked, recorded, and proved. For example, if a virtual machine runs the digital contract 20 (as above explained), execution in the virtual environment can be tracked. Virtual machines may often have software bugs that affect an interpretation of the decision tables. The virtual machine may thus have its own digital identity, as defined by the database 44 of contracts (as above explained). Different versions of the virtual machine and/or the decision table may thus be mapped within the database 44 of contracts, thus allowing redirection after software bugs have been resolved. The database 44 of contracts, in other words, may be updated with entries that point to different versions for different parties and/or to corrected or improved versions.
  • Digital identities extend to engines and decision tables. The database 44 of contracts may map or point to servers, domains, decision tables, and their respective versions. The digital contract 20 (and/or its components, as represented by their respective contract identifiers 28) ensures execution, regardless of the environment. Because the blockchain data layer 72 documents all this component processing, the data records 70 may prove (via the cryptographic proof 80) that the correct contractual component was used, the correct decision table(s) was/were used, the correct virtual machine was used, and the correct input or output data was used. Verification may driven from the contractual components, the data components, and the hardware components at the correct time for the correct time period.
  • Another audit application example is provided. A software application may be a generic term for user-side software that reads from and/or writes to the Factom system. It could be software with a human interface, or could be completely automated. The Application is interested in the data organized by the Chains it needs.
  • Applications are possibly Distributed Applications (DApps) interacting with Factom to provide additional services. For example, one might imagine a trading engine that processes transactions very fast, with very accurate timestamping. Such an Application may nonetheless stream transactions out into Factom chains to document and secure the ledger for the engine. Such a mechanism could provide real-time cryptographic proof of process, of reserves, and of communications.
  • Let us explore two separate applications that could have immediate demand in the current Bitcoin ecosystem.
  • Let us see how to implement a secure and distributed log platform. Log analysis is a complex task. Additionally, logs tend to be easily forgeable and also heterogeneous as they are produced by each system independently and stored in a variety of media (files, databases, cloud services etc.). With Factom and a few uniquely designed crypto-audit tools an entities log analysis can become safer, simpler, and much more powerful. Let's see this with an example. Suppose a Bank (B), a Payment Provider (PP), and a Bitcoin company (BC) are interacting together as follows:
      • 1—The User goes to the BC website and wants to buy some bitcoins
      • 2—He asks for a quote, which is valid for 5 minutes
      • 3—Then he is redirected to the PP website
      • 4—Then the PP connects with the B platform so that the money of the user account is debited
      • 5—B notifies PP that the user account has been debited
      • 6—PP notifies BC
      • 7—BC sends the bitcoins to the user
  • This is the normal scenario for many fixed-rate Bitcoin exchanges globally. But assume now that for some reason the BC receives the payment notification 4 hours after the user transfers via the PP. Who is faulty? The User? The Bank? The Payment Provider? What if a similar payment problem happened for hundreds or thousands of payments over a period of days or weeks before the issue was identified and resolved? Who is “provably” liable for those loses/damages?
  • With current techniques a manual auditing of logs would be necessary and would probably require legal authorizations. With Factom and the right audit applications, it would be trivial to detect where the problem came from, and also make the changing of records impossible post-issue. Basically, every system (BB, PP, BC) will publish their relevant traces in the secure broadcast channel (Factom) in real time.
  • Here's another example of how Factom will be useful for Bitcoin exchanges audits. The so-called “Proof of Solvency” method for conducting Bitcoin exchange audits is a growing and important trend. However, there are significant weaknesses to this approach only solved by having the Factom secure broadcast channel functioning properly.
  • In the Merkle tree approach for Solvency Proofs suggested by the Maxwell-Todd proposal, users must manually report that their balances (user's leaf) have been correctly incorporated in the liability declaration of the Financial Institution (FI) (the Merkle hash of the FI' s database of user balances). The proposed solution works if enough users verify that their account was included in the tree, and in a case where their account is not included, it's assumed that this instance would be reported. One potential risk with this process is that an exchange database owner could produce a hash that is not the true representation of the database at all; the exchange hashes an incomplete database which would reduce its apparent liabilities to customers, thereby making them appear solvent to a verifying party. Here are some scenarios where a fraudulent exchange could easily exclude accounts:
      • “Colluding Whales” Attack: There is evidence that large Bitcoin traders are operating on various exchanges and moving markets significantly. Such traders need to have capital reserves at the largest exchanges to quickly execute orders. Often, traders choose exchanges that they “trust”. In this way they can be assured that should a hack or liquidity issue arise, they have priority to get their money out first. In this case, the exchange and trader could collude to remove the whales account balance from the database before it's hashed. An exchange's top 10 whales could easily represent 5 to 20% of an exchanges liabilities, so colluding with just a few of them could have a significant impact.
      • “Site Manipulation” Attack: To date, each Proof of Solvency audit has reported (the hash tree) on the institution's website. This gives no guarantee at all to users, since a malicious exchange could publish different states/balances to different groups of users, or retroactively change the state. Thus it is fundamental to publish this data through Factom's secure broadcast channel, and publish it frequently.
  • The second attack is obviously solved by using Factom, while the first is not so obvious. As this paper doesn't focus on the mechanics of exchanges audits, we won't delve in the nitty-gritty details. However, the basic concept is that by having frequent time-stamped copies of the exchanges database Merkle hash, one could detect the inclusion or exclusive of large balances before or after audits. Then, the auditor could simply look into those large inclusions or exclusions, manually. Remember, the trader will ultimately need to get his money on or off the exchange at some point, and that'll show up in either the bank history or the Bitcoin transfer history.
  • There are established process for detecting such fraudulent tactics in the traditional audit industry; however, it all starts with having accurate, verifiable, immutable time-series of the information in question.
  • Other examples are provided of attacks on Factom. The reader, for example, may be familiar with a denial of service from spam. Since Factom is an open system, any user can put Entries into almost any Chain. Bitcoin has a similar phenomenon. In order for an Application to reject those transactions, the Application would first need to download and process them. A large number of bogus Entries could slow down the initial processing of the Application's transactions. This threat is mitigated by an attacker needing to spend money (resources) to carry it out. This is similar to Adam Back's Hashcash solution to email spam.
  • Audits are another useful tool against spam, if the application is willing to trade off security versus convenience. Auditors could post “ignore” lists on the same chain, or create their own audit chains with those lists. An auditor could use a profile chain to develop their reputation, which would also allow review by other auditors. If any auditor made a bad call, it would be easily verifiable and the record of it would be permanent. Some validity processing is gray, in the sense that opinions may vary. Solving that problem would be implementation specific.
  • Another example is a sybil attack of the DHT. Distributed Hash Tables in general are particularly susceptible to sybil attacks. An attacker could create many peers which make it difficult for honest nodes to communicate. In a simplistic DHT architecture, attackers can isolate a required piece of data from honest nodes. Sybil attacks have been observed on the BitTorrent network routing table. The paper “Real-World Sybil Attacks in BitTorrent Mainline DHT” detail these attacks. Fighting this type of attack is an active topic in academic research. One mitigation technique uses complex lookup techniques to find honest nodes among the sybils, studied in “Sybil-resistant DHT routing”. Some sybil mitigation techniques rely on a web-of-trust by adding a social network to the routing table, as explored in “A Sybil-proof one-hop DHT”. Factom will rely on the latest academic and open-source research in this topic to secure its DHT.
  • A dictionary attack is now discussed. In this case, the attacker runs through all the Chain Names deemed to be possible or desirable and creates their ChainIDs, and the hashes of those ChainIDs. Then they watch for someone trying to create those Chains. Now the attacker can front run on a match. Because on a match, they know the ChainID, so they can construct a proper, but malicious Entry of their own, create the proper Chain payment and submit it rather than the users payment. If the attacker gets ahead of the user, then they will win. The defense against a dictionary attack is to avoid common name spaces and to submit your payment to multiple, long standing nodes in the network. In Factom, the flexibility of defining the Chain namespace makes efforts to hog the namespace ineffective.
  • Fraudulent servers are now discussed. All Entries in Factom require signatures from the users, or must match a hash that has been signed by the users. This means that fraudulent Federated servers in the Federation pool have very limited attacks they can make on the protocol. Invalid Entries do not validate, and upon broadcasting an invalid Entry, the honest Federated Servers will immediately broadcast a Server Fault Message (SFM) on the fraudulent server. If a majority detect a fault, the faulty server is removed. As long as the majority do not collude, then the protocol will remain honest. Any Federated server that failed detect the fault likewise risks losing its support from Factom users, and dropping from the Federated server pool.
  • Federated servers can delay recording of Entry payments. But because Entry payments are submitted via a distributed set of Factom Nodes, delaying of Entry payments will be noted. Users may withdraw support from servers without reasonable performance compared to the rest of the network.
  • Federated servers can delay the recording of Entries. Here the payment is accepted (generally by another server) fairly quickly. But for one reason or another, a Federated server refuses to record the Entry. In the next minute, responsibility for that Chain will shift to another server. As long as most servers are honest, the Entry will be recorded. Then the data over time will show that a server is delaying Entries. This will cause them potentially to lose support.
  • Federated servers can at any point send false messages. The other Federated servers then would issue a SFR on the on the rogue server when those messages didn't make sense. A majority of the servers issuing an SFR would boot the rogue server, then the network would ignore their messages and not forward them on.
  • Federated servers can refuse to accept valid Entry payment messages based on the public address, under the assumption that the public address is associated with some party. Again, assuming a majority of servers are honest, the payment will be accepted when the control shifts to an honest server. Furthermore, nodes watching will see the delay, and perhaps a pattern of delays, and support will be lost for the misbehaving servers.
  • FIG. 60 illustrates timestamping into Bitcoin, according to exemplary embodiments. The Factom timestamping mechanism secures transaction in the blockchain. Factom data is timestamped and made irreversible by the Bitcoin network. A user's data is as secure as any other Bitcoin transaction, once published to the Bitcoin blockchain. A compact proof of publication is possible for any data entered into the Factom system.
  • As this disclosure above explained, data is organized into block structures, the highest level being Directory Blocks, which are created using Merkle trees. Every 10 minutes, the data set is frozen and submitted to the Bitcoin network. Since Bitcoin has an unpredictable block time, there may be more or fewer than one Factom timestamp per Bitcoin block. Bitcoin internal header block times themselves have a fluid idea of time. They have a 2 hour possible drift from reality. Factom will provide its own internal timestamps, adhering with standard time systems.
  • The user data ordering will be assigned when received at the Federated servers. Factom organizes the submitted Entry references into sets of blocks. The block time for Factom is ten minutes. On closing, the Federated Server network generates consensus and the Entries that are part of that block structure are timestamped to a minute within the block. As a general note, the data could have existed long before it was timestamped. An Application running on top of Factom could provide finer and more accurate timestamping services prior to Entries being recorded in Factom. The Factom timestamp only proves the data did not originate after the Factom timestamp.
  • The Merkle root of the Directory Block is entered into the Bitcoin blockchain with a spending transaction. The spend includes an output with an OP_RETURN. We refer to this as “anchoring” the Directory Block to the Bitcoin blockchain. This method is the least damaging to the Bitcoin network of the various ways to timestamp data.
  • Two possible alternatives to the OP_RETURN data in the blockchain is anchored to the P2Pool headers (as in chronobit) or in the Bitcoin block header coinbase. The P2Pool headers would require several hours of mining to find a block which satisfies the P2Pool rules, and the added complexity to the Factom protocol would not be worth the benefits. Including the Merkle root into the coinbase of a block would require cooperation with miners, above and beyond the transaction processing they are already doing. The coinbase entry would still need to have a crypto signature from the Factom system, so would not save on much space relative to a signed transaction.
  • The first two bytes of the available 40 in the anchor will be a designator tag (2 bytes with the value “Fa”). The Factom anchor (32 bytes) is concatenated onto the tag, then the block height is added (up to 6 bytes, allowing for >500,000 years). The designator tag indicates the transaction could be a Factom anchor. Other qualifiers are required, but the tag and Factom block height eliminates most of the OP_RETURN transactions that would otherwise need to be inspected. The block height in the OP_RETURN helps to fix the order in those cases where the Bitcoin blockchain records the anchors out of order.
  • The anchored data is the Merkle root of list containing the Directory Block's Merkle root. Querying a database or DHT for the anchored data will return the Directory Block which can be used to find the rest of the data in the block. The Merkle root timestamp will be entered into the Bitcoin blockchain by one of the Federated servers. The server delegated to timestamp the federation's collected data creates a Bitcoin transaction. The transaction will be broadcast to the Bitcoin network, and be included in a Bitcoin block. Bitcoin transactions that look like a Factom anchor, but are not spent from an address known as a Factom server would either be junk, or an attempt to fork Factom. Most users/applications would ignore such anchors.
  • Bitcoin blocks are generated with a statistical process, and as such their timing cannot be predicted. This means that the anchors are only roughly time-bound by the OP_RETURNs inserted into the Bitcoin blockchain, and its timestamping mechanism. The real value of anchoring Factom to Bitcoin is to prevent anyone from generating false Factom histories. Due to bad luck of Bitcoin miners, or delayed inclusion of Factom transactions, the time between when the Factom state is frozen for a particular 10 minute period and when the anchor appears in Bitcoin can vary, perhaps significantly.
  • Now the ramifications of federated servers and anchoring verses proof of work is discussed. Proof of Work (PoW) is optimized for permissionless participation and validation of the historical record of a blockchain. The typical implementation of Proof of Work is to repeatedly hash blocks until one of the parties mining finds a hash with the difficulty required by the current requirements of a blockchain. This allows anyone to serve as a miner, to collect and validate transactions, pack them into blocks, and repeatedly hash that block looking for a solution that meets the difficulty requirement.
  • The shortcomings of PoW have been widely discussed in the media as requiring unnecessary amounts of power, when other sorts of problem solving and work could result in benefits to blockchain users, the ecosystem, and society. Such is the goal of various Proof of Stake (PoS) systems used by various blockchains. But Proof of Stake alone makes the historical record hard to validate, and does not work well for a data recording system like Factom. This is because validating the historical Stake of parties involved the entire blockchain, and an understanding of the Stake that existed at each point in time historically. Factom needs small cryptographic proofs that validate sets of data, which PoW provides. Because PoW is validated solely by evaluating the difficulty of a hash.
  • Anchoring is the solution Factom uses to secure the historical record, and at the same time avoid duplicating the massive expenditure of resources required of mining. A system like PoS can be used in the present, while anchoring secures the historical record. The idea of supporting parties allows permissionless participation in the Factom protocol beyond that of the Authority Set.
  • The Authority Set and Anchoring means that running the Authority Servers is less expensive in resources by orders of magnitude compared to mining. Greater efficiency means that the rewards paid out by the Factom protocol can do more for the ecosystem than pay very large utility bills. Factom may use various voluntary but auditable methods to incentivize using the efficiency of the authority set to set aside resources within the protocol for productive real world work. A sort of Proof of Development could be used to receive these rewards using distributed support to identify work to be done, and evaluate the quality of the work that results. Such a system could provide rewards for development alongside the rewards generated for the authority set.
  • A “Proof of Development” comes with its own issues. The main issue is the “Oracle Problem,” where it is very hard to know from within the programming of a blockchain protocol what might be useful development in the real-world and evaluate the quality of such development once it is done. Factom may develop mechanisms to incentivize supporting parties in the protocol to create evaluation processes, audit trails, and certifications at every stage of development to address the Oracle Problem, and allow a self-correcting process to manage a viable “Proof of Development” that is more productive and ecologically friendly than simply rewarding the burning of energy resources for security.
  • The Factom protocol and system are now compared with other blockchain technologies. For example, Factom differs from Bitcoin and Sidechains. Factom is very different from Bitcoin, and in fact very different from any current cryptocurrency project. Cryptocurrencies like Bitcoin implement a strict, distributed method for the validation of transactions, where anyone can validate each transaction, and the validity of every input into a transaction can be verified. Because each transaction is authorized via cryptographic proof, no transaction can be forged. Each transaction can be checked for validity by verifying signatures of each transaction, and the miners hold each other accountable for only including valid transactions.
  • The Bitcoin protocol is transactionally complete. In other words, the creation and distribution of Bitcoins through transactions is completely defined within the Bitcoin protocol. Transactions (which specify movement of bitcoin) and block discovery (which move bitcoin via mining fees and provide block rewards) are the only inputs into the Bitcoin Protocol, and nothing leaves the Bitcoin Protocol. In other words, the 21 million bitcoins that will ultimately exist will always and forever exist within the protocol. Pegged sidechains, when implemented, will provide additional movement of bitcoin value outside the blockchain, while the pegged value is in stasis in the blockchain.
  • The sidechains proposal describes a solution to increase the scalability of Bitcoin by allowing value control to move off the blockchain and onto a sidechain. In the sidechain, many trades can occur. Later, a cryptographic proof (not all the transactions in between) can be recorded in the blockchain which moves the BTC out of stasis in Bitcoin. This proof would have to be available to the Bitcoin miners, but the bulk of the transaction data would be left behind in the sidechain.
  • Factom is in some sense attempting to increase scalability, but not by enabling more value transactions, but by moving non-BTC transactions off blockchain. This would be transactions that are not primarily intended to transfer Bitcoin value. For example transactions could manage domain name registrations, log security camera footage, track the provenance for art work, and even establish the value of show horses by documenting their history. Some of these do not move a value at all, like transactions establishing a proof of publication.
  • Sidechains and Factom are both trying to move transactions off the blockchain, but to achieve similar ends via completely different mechanisms. At some point, Factom may integrate with a Bitcoin sidechain in order to take advantage of the atomic swaps from BTC to Factoids.
  • Factom is also different from other blockchain technologies. Many different groups are looking to find ways to leverage the Bitcoin approach for managing other sorts of transactions besides tracking bitcoin balances. For example, the trading of assets such as houses or cars can be done digitally using Bitcoin extensions. Even the trading of commodities such as precious metals, futures, or securities might be done via clever encoding and inserting of information into the Bitcoin blockchain. Efforts to expand Bitcoin to cover these kinds of trades include Colored Coins, Mastercoin, and Counterparty. Some developers choose to build their own cryptocurrency with a more flexible protocol that can handle trades beyond currency. These include Namecoin, Ripple, Ethereum, BitShares, NXT, and others. Open Transactions (OT) uses Cryptographic signatures, signed receipts and proof of balance for users (i.e., a user does not need the transaction history to prove their balance, just the last receipt). In this way, OT can provide the spend of centralized servers without the risk of a centralized server that can alter client balances. Factom is decentralized, and only records Entries. So Factom can record data that would not meet OT's rules. But Factom will not execute at the rate OT can initially. Factom is distributed, and we expect that some, but not all users will employ cryptographic techniques similar to OT with their records.
  • The great advantage to an independent platform over trying to build upon Bitcoin is found in flexibility. The Bitcoin protocol isn't optimized to allow for recording of arbitrary pieces of data, so the “bookkeeping” necessary for non-Bitcoin type transactions isn't necessarily supported by Bitcoin. Furthermore, Bitcoin' s Proof of Work (PoW) based consensus method is not a “one size fits all” solution, given that some transactions must resolve much faster than 10 minutes. Ripple and Open Transactions vastly speed up confirmation times by changing the consensus method.
  • An Application built upon Factom seeks to gain the ability to track assets and implement contracts, by leveraging the blockchain directly. Instead of inserting transactions into the blockchain (viewed as “blockchain bloat” by many), Factom records its Entries within its own structures. At the base level, Factom records what Chains have had Entries added to Factom within the Directory Block time. Scanning these records, Applications can pick out the Chains in which they are interested. Factom records each Chain independently, so Applications can then pull the Chain data they need.
  • Factom is organized in a way that minimizes connections between user Chains. A Chain in Factom can be validated without any of the information held in other, unrelated Chains. This minimizes the information a Factom user has to maintain to validate the Chains they are interested in.
  • Now Factom Consensus Similarities and Differences from Proof of Stake are discussed. The policy and reward mechanism in Factom is similar to Proof of Stake (PoS). Factom differs from most PoS systems in that many subsets of user stake and/or contribution may be recognized. Individual categories of stake can be weighted against each other to further decentralized Factom. This is an attempt to make the servers answerable to the users actively using and contributing to the protocol. The individual users would delegate their support to a server. The Federated servers with the top numbers of support would be responsible for coming to consensus.
  • Some with a deep understand of Bitcoin have recognized that pure PoS consensus mechanisms are fundamentally flawed. There are two attacks that make pure PoS unworkable. The problems are referred to as “Stake Grinding” and “Nothing at Stake”. Although Factom has PoS elements, it does not suffer from these problems.
  • Stake grinding is a problem where an attacker with a sizable (say 10%), but not majority share can formulate false histories. From some point in history, they can costlessly fork the blockchain, choosing to reorder past transactions such that their stake is always selected to create the subsequent blocks. They would be able to present this alternate version of history as part of an attack to steal value by double spending. Bitcoin solves this problem by strongly linking the information domain, where computers make decisions, with the thermodynamic domain, where humans burn energy. Considerable resources are expended in the thermodynamic domain, and is provable in the information domain. Bitcoin makes forming false histories hugely expensive.
  • Factom is unable to create alternate histories after the fact, since it is unable to insert transactions into historical Bitcoin blocks. It is also unable to create parallel histories without being detected, since Factom is linked to Bitcoin with known Bitcoin private keys.
  • The Nothing at Stake problem is more subtle. With a policy disagreement in Bitcoin, miners must choose either one policy or the other. If they choose against the majority, they will be burning lots of electricity without a chance of recouping costs. PoS miners do not face this dilemma. They can hedge their bets and costlessly create forks complying with each side of the policy. They would simultaneously agree with both sides of the disagreement. This would open up the economy to double spend attacks. One of two merchants following different forks will ultimately have that money becomes worthless.
  • Bitcoin solves this problem by having unintelligent unambiguous automatable rules for selecting the correct fork. In Bitcoin, the correct fork is the one with the most Proof of Work (PoW). Factom will also have unintelligent unambiguous automatable rules to select a correct fork, should one arise.
  • FIG. 61 is a flowchart illustrating a method or algorithm for processing of the digital contract 20, according to exemplary embodiments. The contract identifier 28, the contractual parameter 30, and/or the table identifier 334 is/are received (Block 340). The network resource 50 is identified (Block 342), and the contract processor may be an IP address, URL, virtual machine, or other network destination representing a vendor, contractor, server, or service that executes the decision table 326 and/or the digital contract 20. The service request 266 is sent (Block 344), the service update 270 is received (Block 346), and the service response 268 is received (Block 348). The data records 70 in the blockchain data layer 72 are generated (Block 350), and the data records 70 describe the execution of the digital contract 20. The data records 70 may be hashed (Block 352) and incorporated into the public blockchain 24 (Block 354).
  • FIG. 62 is a schematic illustrating still more exemplary embodiments. FIG. 62 is a more detailed diagram illustrating a processor-controlled device 360. As earlier paragraphs explained, the entity's private software application 40, the data layer application 154, and/or the contract application 302 may partially or entirely operate in any mobile or stationary processor-controlled device. FIG. 62, then, illustrates the entity's private software application 40, the data layer application 154, and/or the contract application 302 stored in a memory subsystem of the processor-controlled device 360. One or more processors communicate with the memory subsystem and execute either, some, or all applications. Because the processor-controlled device 360 is well known to those of ordinary skill in the art, no further explanation is needed.
  • FIG. 63 depicts other possible operating environments for additional aspects of the exemplary embodiments. FIG. 63 illustrates the entity's private software application 40, the data layer application 154, and/or the contract application 302 operating within various other processor-controlled devices 360. FIG. 63, for example, illustrates that the entity's private software application 40, the data layer application 154, and/or the contract application 302 may entirely or partially operate within a smartphone 362, a personal/digital video recorder (PVR/DVR) 364, a Global Positioning System (GPS) device 366, an interactive television 368, a tablet computer 370, or any computer system, communications device, or processor-controlled device utilizing any of the processors above described and/or a digital signal processor (DP/DSP) 372. Moreover, the processor-controlled device 360 may also include wearable devices (such as watches), radios, vehicle electronics, clocks, printers, gateways, mobile/implantable medical devices, and other apparatuses and systems. Because the architecture and operating principles of the various devices 360 are well known, the hardware and software componentry of the various devices 360 are not further shown and described.
  • Exemplary embodiments may be applied to any signaling standard. Most readers are thought familiar with the Global System for Mobile (GSM) communications signaling standard. Those of ordinary skill in the art, however, also recognize that exemplary embodiments are equally applicable to any communications device utilizing the Time Division Multiple Access signaling standard, the Code Division Multiple Access signaling standard, the “dual-mode” GSM-ANSI Interoperability Team (GAIT) signaling standard, or any variant of the GSM/CDMA/TDMA signaling standard. Exemplary embodiments may also be applied to other standards, such as the I.E.E.E. 802 family of standards, the Industrial, Scientific, and Medical band of the electromagnetic spectrum, BLUETOOTH®, and any other.
  • Exemplary embodiments may be physically embodied on or in a computer-readable storage medium. This computer-readable medium, for example, may include CD-ROM, DVD, tape, cassette, floppy disk, optical disk, memory card, memory drive, and large-capacity disks. This computer-readable medium, or media, could be distributed to end-subscribers, licensees, and assignees. A computer program product comprises processor-executable instructions for execution of digital contracts, as the above paragraphs explain.
  • While the exemplary embodiments have been described with respect to various features, aspects, and embodiments, those skilled and unskilled in the art will recognize the exemplary embodiments are not so limited. Other variations, modifications, and alternative embodiments may be made without departing from the spirit and scope of the exemplary embodiments.

Claims (19)

1. A method performed by a server that records cryptographic transactions conducted by computers, the method comprising:
receiving, by the server, a cryptographic transaction of the cryptographic transactions;
determining, by the server, a chain identifier that is associated with the cryptographic transaction;
determining, by the server, an entry block in a blockchain data layer that is associated with the chain identifier;
adding, by the server, the cryptographic transaction to the entry block in the blockchain data layer that is associated with the chain identifier;
generating, by the server, a directory block in the blockchain data layer based on the entry block and the chain identifier; and
recording, by the server, the directory block to a blockchain;
wherein the directory block records the cryptographic transaction.
2. The method of claim 1, further comprising generating a hash value representing the directory block.
3. The method of claim 2, further comprising recording the hash value representing the directory block to the blockchain.
4. The method of claim 1, further comprising recording the chain identifier to the blockchain.
5. The method of claim 1, further comprising timestamping the cryptographic transaction.
6. The method of claim 1, further comprising timestamping the entry block. The method of claim 1, further comprising timestamping the directory block.
8. A system, comprising:
a hardware processor; and
a memory device storing instructions that when executed by the hardware processor perform operations, the operations comprising:
receiving a cryptographic transaction conducted by computers via a network;
determining a chain identifier that is associated with the cryptographic transaction;
determining an entry block in a blockchain data layer that is associated with the chain identifier;
adding the cryptographic transaction to the entry block in the blockchain data layer that is associated with the chain identifier;
generating a directory block in the blockchain data layer based on the entry block and the chain identifier; and
recording the directory block to a blockchain;
wherein the directory block records the cryptographic transaction.
9. The system of claim 8, wherein the operations further comprise generating a hash value representing the directory block.
10. The system of claim 9, wherein the operations further comprise recording the hash value representing the directory block to the blockchain.
11. The system of claim 8, wherein the operations further comprise recording the chain identifier to the blockchain.
12. The system of claim 8, wherein the operations further comprise timestamping the cryptographic transaction.
13. The system of claim 8, wherein the operations further comprise timestamping the entry block.
14. The system of claim 8, wherein the operations further comprise timestamping the directory block.
15. A memory device storing instructions that when executed by a hardware processor perform operations, the operations comprising:
receiving cryptographic transactions conducted by computers via a network;
determining a chain identifier that is associated with the cryptographic transactions;
determining a directory block that is associated with the chain identifier;
recording the cryptographic transactions to the directory block;
determining a rate of generation associated with the directory block;
identifying a virtual machine that is associated with the rate of generation; and
assigning the virtual machine to the cryptographic transactions.
16. The memory device of claim 15, wherein the operations further comprise hashing the directory block.
17. The memory device of claim 15, wherein the operations further comprise executing the virtual machine.
18. The memory device of claim 15, wherein the operations further comprise recording the virtual machine to a blockchain.
19. The memory device of claim 15, wherein the operations further comprise recording the cryptographic transactions to the blockchain.
20. The memory device of claim 15, wherein the operations further comprise recording the rate of generation to the blockchain.
US17/451,655 2018-08-06 2021-10-21 Protocols in Blockchain Environments Abandoned US20220058622A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/451,655 US20220058622A1 (en) 2018-08-06 2021-10-21 Protocols in Blockchain Environments

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862714909P 2018-08-06 2018-08-06
US16/351,597 US11205172B2 (en) 2018-08-06 2019-03-13 Factom protocol in blockchain environments
US17/451,655 US20220058622A1 (en) 2018-08-06 2021-10-21 Protocols in Blockchain Environments

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US16/351,597 Continuation US11205172B2 (en) 2018-08-06 2019-03-13 Factom protocol in blockchain environments

Publications (1)

Publication Number Publication Date
US20220058622A1 true US20220058622A1 (en) 2022-02-24

Family

ID=69228043

Family Applications (15)

Application Number Title Priority Date Filing Date
US16/116,972 Active 2039-10-26 US11334874B2 (en) 2018-08-06 2018-08-30 Digital contracts in blockchain environments
US16/116,967 Active 2039-03-14 US11276056B2 (en) 2018-08-06 2018-08-30 Digital contracts in blockchain environments
US16/116,969 Active 2039-01-14 US11295296B2 (en) 2018-08-06 2018-08-30 Digital contracts in blockchain environments
US16/116,970 Active US11620642B2 (en) 2018-08-06 2018-08-30 Digital contracts in blockchain environments
US16/116,976 Active 2039-11-29 US11348098B2 (en) 2018-08-06 2018-08-30 Decisional architectures in blockchain environments
US16/116,975 Active 2039-07-22 US11348097B2 (en) 2018-08-06 2018-08-30 Digital contracts in blockchain environments
US16/116,966 Abandoned US20200042982A1 (en) 2018-08-06 2018-08-30 Digital Contracts in Blockchain Environments
US16/191,595 Active 2039-03-26 US11042871B2 (en) 2018-08-06 2018-11-15 Smart contracts in blockchain environments
US16/351,597 Active 2040-07-30 US11205172B2 (en) 2018-08-06 2019-03-13 Factom protocol in blockchain environments
US16/905,961 Active 2039-08-23 US11531981B2 (en) 2018-08-06 2020-06-19 Digital contracts in blockchain environments
US17/323,036 Active US11676132B2 (en) 2018-08-06 2021-05-18 Smart contracts in blockchain environments
US17/448,954 Active 2038-09-16 US11587069B2 (en) 2018-08-06 2021-09-27 Digital contracts in blockchain environments
US17/449,292 Active 2038-10-11 US11687916B2 (en) 2018-08-06 2021-09-29 Decisional architectures in blockchain environments
US17/449,291 Active 2038-10-02 US11615398B2 (en) 2018-08-06 2021-09-29 Digital contracts in blockchain environments
US17/451,655 Abandoned US20220058622A1 (en) 2018-08-06 2021-10-21 Protocols in Blockchain Environments

Family Applications Before (14)

Application Number Title Priority Date Filing Date
US16/116,972 Active 2039-10-26 US11334874B2 (en) 2018-08-06 2018-08-30 Digital contracts in blockchain environments
US16/116,967 Active 2039-03-14 US11276056B2 (en) 2018-08-06 2018-08-30 Digital contracts in blockchain environments
US16/116,969 Active 2039-01-14 US11295296B2 (en) 2018-08-06 2018-08-30 Digital contracts in blockchain environments
US16/116,970 Active US11620642B2 (en) 2018-08-06 2018-08-30 Digital contracts in blockchain environments
US16/116,976 Active 2039-11-29 US11348098B2 (en) 2018-08-06 2018-08-30 Decisional architectures in blockchain environments
US16/116,975 Active 2039-07-22 US11348097B2 (en) 2018-08-06 2018-08-30 Digital contracts in blockchain environments
US16/116,966 Abandoned US20200042982A1 (en) 2018-08-06 2018-08-30 Digital Contracts in Blockchain Environments
US16/191,595 Active 2039-03-26 US11042871B2 (en) 2018-08-06 2018-11-15 Smart contracts in blockchain environments
US16/351,597 Active 2040-07-30 US11205172B2 (en) 2018-08-06 2019-03-13 Factom protocol in blockchain environments
US16/905,961 Active 2039-08-23 US11531981B2 (en) 2018-08-06 2020-06-19 Digital contracts in blockchain environments
US17/323,036 Active US11676132B2 (en) 2018-08-06 2021-05-18 Smart contracts in blockchain environments
US17/448,954 Active 2038-09-16 US11587069B2 (en) 2018-08-06 2021-09-27 Digital contracts in blockchain environments
US17/449,292 Active 2038-10-11 US11687916B2 (en) 2018-08-06 2021-09-29 Decisional architectures in blockchain environments
US17/449,291 Active 2038-10-02 US11615398B2 (en) 2018-08-06 2021-09-29 Digital contracts in blockchain environments

Country Status (1)

Country Link
US (15) US11334874B2 (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11531981B2 (en) 2018-08-06 2022-12-20 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US20230043223A1 (en) * 2021-08-05 2023-02-09 Artema Labs, Inc Methods for Securely Adding Data to a Blockchain Using Dynamic Time Quanta and Version Authentication
US11580534B2 (en) 2017-03-22 2023-02-14 Inveniam Capital Partners, Inc. Auditing of electronic documents
US11580535B2 (en) 2018-05-18 2023-02-14 Inveniam Capital Partners, Inc. Recordation of device usage to public/private blockchains
US20230117344A1 (en) * 2021-10-20 2023-04-20 Goldman Sachs & Co. LLC Pseudonymous transactions on blockchains compliant with know your customer regulations and reporting requirements
US11863305B2 (en) 2020-01-17 2024-01-02 Inveniam Capital Partners, Inc. RAM hashing in blockchain environments
US11863686B2 (en) 2017-01-30 2024-01-02 Inveniam Capital Partners, Inc. Validating authenticity of electronic documents shared via computer networks
US11930072B2 (en) 2018-05-18 2024-03-12 Inveniam Capital Partners, Inc. Load balancing in blockchain environments
US11989208B2 (en) 2018-08-06 2024-05-21 Inveniam Capital Partners, Inc. Transactional sharding of blockchain transactions
US12008015B2 (en) 2018-05-18 2024-06-11 Inveniam Capital Partners, Inc. Import and export in blockchain environments
US12007972B2 (en) 2021-06-19 2024-06-11 Inveniam Capital Partners, Inc. Systems and methods for processing blockchain transactions
US12008526B2 (en) 2021-03-26 2024-06-11 Inveniam Capital Partners, Inc. Computer system and method for programmatic collateralization services
US12137179B2 (en) 2021-06-19 2024-11-05 Inveniam Capital Partners, Inc. Systems and methods for processing blockchain transactions
US12192371B2 (en) 2017-04-27 2025-01-07 Inveniam Capital Partners, Inc. Artificial intelligence modifying federated learning models
US12231566B2 (en) 2022-11-06 2025-02-18 Inveniam Capital Partners, Inc. Apparatus and methods for producing data structures having internal self-references suitable for immutably representing and verifying data

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11005710B2 (en) * 2015-08-18 2021-05-11 Microsoft Technology Licensing, Llc Data center resource tracking
US10411897B2 (en) 2017-02-17 2019-09-10 Factom, Inc. Secret sharing via blockchains
US10685399B2 (en) 2017-03-31 2020-06-16 Factom, Inc. Due diligence in electronic documents
US11044095B2 (en) * 2018-08-06 2021-06-22 Factom, Inc. Debt recordation to blockchains
US11328290B2 (en) 2018-08-06 2022-05-10 Inveniam Capital Partners, Inc. Stable cryptocurrency coinage
US12118556B2 (en) * 2018-09-05 2024-10-15 International Business Machines Corporation Database configuration for asset transfers
US11403558B1 (en) * 2018-09-18 2022-08-02 Iqvia Inc. GxP artificial intelligence / machine learning (AI/ML) platform
US10922097B2 (en) * 2018-09-18 2021-02-16 International Business Machines Corporation Collaborative model execution
WO2020081727A1 (en) 2018-10-16 2020-04-23 Eluvio, Inc. Decentralized content fabric
CN109614823B (en) 2018-10-26 2022-05-13 蚂蚁双链科技(上海)有限公司 Data processing method, device and equipment
US11223474B2 (en) * 2018-11-20 2022-01-11 Champ Titles, Inc. Digital asset management
US12039529B1 (en) * 2018-11-21 2024-07-16 Platinum Digital Inc. Closed loop blockchain gateway system
US20200394183A1 (en) * 2019-06-12 2020-12-17 Subramanya R. Jois System and method of executing, confirming and storing a transaction in a serverless decentralized node network
CN110020901A (en) * 2018-12-25 2019-07-16 阿里巴巴集团控股有限公司 Resource allocation methods and device and electronic equipment based on block chain
US11706617B2 (en) * 2019-01-03 2023-07-18 Cisco Technology, Inc. Authenticating radio access network components using distributed ledger technology
US11481375B2 (en) * 2019-01-31 2022-10-25 Apifiny Group Inc. Point-to-point distributed decentralized system
EP3613203B1 (en) * 2019-03-04 2023-06-07 Advanced New Technologies Co., Ltd. Methods and devices for performing off-chain testing on smart contract
CN110011978B (en) * 2019-03-08 2021-02-12 创新先进技术有限公司 Method, system, device and computer equipment for modifying block chain network configuration
US20200327556A1 (en) * 2019-04-12 2020-10-15 Salesforce.Com, Inc. Method to accept certifications with blockchain transactions
US11210743B2 (en) * 2019-04-23 2021-12-28 Advanced New Technologies Co., Ltd. Blockchain-based data processing system, method, computing device and storage medium
US11176273B2 (en) * 2019-05-03 2021-11-16 International Business Machines Corporation Privacy-preserving anomalous behavior detection
US11443326B2 (en) * 2019-06-05 2022-09-13 International Business Machines Corporation Geo-location compliance
US11606442B2 (en) 2019-06-07 2023-03-14 Microsoft Technology Licensing, Llc Subscription to edits of blockchain transaction
WO2021063030A1 (en) * 2019-09-30 2021-04-08 东南大学 Blockchain-enhanced open internet of things access architecture
JP6993587B2 (en) * 2019-09-30 2022-01-13 ダイキン工業株式会社 Freon management system, administrator node and Freon management method
US11115804B2 (en) * 2019-10-04 2021-09-07 Microsoft Technology Licensing, Llc Subscription to dependencies in smart contracts
US11308228B1 (en) 2019-10-24 2022-04-19 Whatsapp Inc. Providing access for online content via secured URL
US11159330B1 (en) 2019-10-24 2021-10-26 Whatsapp Llc. Rendering online content via secured URL
US11119734B2 (en) * 2019-11-06 2021-09-14 International Business Machines Corporation Software detection and modification
JP7070535B2 (en) * 2019-11-28 2022-05-18 横河電機株式会社 Systems, methods, and programs
US20210241372A1 (en) * 2020-02-04 2021-08-05 MOAC Blockchain Technology Inc. System, apparatus, and method for data trading based on blockchain
FR3107417A1 (en) * 2020-02-19 2021-08-20 Orange Method and device for controlling access to a function of an application registered in a blockchain.
US11514439B2 (en) * 2020-02-26 2022-11-29 Nice Ltd. System and method using zero knowledge proofs for alert sharing
US11995194B1 (en) 2020-03-06 2024-05-28 Wells Fargo Bank, N.A. Self-contained encrypted data and decryption application for third party data storage and data dissemination
US11223470B1 (en) * 2020-03-06 2022-01-11 Wells Fargo Bank, N.A. Post-quantum cryptography side chain
US11993285B2 (en) * 2020-03-16 2024-05-28 Uatc, Llc Systems and methods for servicing vehicle messages
JP7463543B2 (en) * 2020-03-20 2024-04-08 マスターカード インターナシヨナル インコーポレイテツド Method and system for transferring digital tokens to and from physical cards - Patents.com
US11546425B2 (en) * 2020-04-23 2023-01-03 Oracle International Corporation Systems and methods of providing ledger as a service
KR20210142983A (en) * 2020-05-19 2021-11-26 삼성에스디에스 주식회사 Off-chain data sharing system and method thereof
WO2021246632A1 (en) * 2020-06-03 2021-12-09 주식회사 소버린월렛 Electronic wallet, server for executing same, and atomic exchange method of blockchain tokens by using same server
US20210398091A1 (en) * 2020-06-22 2021-12-23 TraDove, Inc. Systems and methods for streamlining credit and/or debit card transactions utilizing blockchain supported credit tokens and/or debit tokens
CN111695903B (en) * 2020-06-24 2021-09-14 杨刘琴 Information flow analysis method based on block chain and mobile internet and cloud computing platform
CN112488712A (en) * 2020-06-24 2021-03-12 杨刘琴 Safety identification method and safety identification system based on block chain big data
US10946283B1 (en) * 2020-07-16 2021-03-16 Big Time Studios Ltd. Computer system and method for more efficiently storing, issuing, and transacting tokenized blockchain game assets managed by a smart contract
RU2768561C2 (en) * 2020-09-08 2022-03-24 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) Method of settling transactions between legal entities using distributed ledger technology
CN111930754A (en) * 2020-09-15 2020-11-13 支付宝(杭州)信息技术有限公司 Method, device and equipment for generating and updating block chain warehouse list
US11985252B1 (en) * 2020-09-28 2024-05-14 Unstoppable Domains Inc. Resolving and managing blockchain domains
US12026265B2 (en) * 2020-10-10 2024-07-02 Paul Atkinson Agents and systems for right's management
KR102418734B1 (en) 2020-12-02 2022-07-07 이화여자대학교 산학협력단 Method for trading digital content using blockchain, recording medium and system for performing the method
US11886425B2 (en) 2021-01-13 2024-01-30 Unstoppable Domains Inc. Blockchain registry scaling
US20220253866A1 (en) * 2021-02-08 2022-08-11 Dish Wireless L.L.C. Systems and methods for monitoring services using smart contracts
US11811944B2 (en) 2021-07-15 2023-11-07 Bank Of America Corporation Electronic system for resource origination tracking
US11985256B2 (en) 2021-07-22 2024-05-14 Bank Of America Corporation Electronic system for automatic provisioning of limited-transferability electronic digital certificates associated with events
US20230046907A1 (en) * 2021-08-11 2023-02-16 Toshiba Global Commerce Solutions Holdings Corporation Methods of determining redemption of content provided through social media marketing using a pos system and related systems
US11695772B1 (en) * 2022-05-03 2023-07-04 Capital One Services, Llc System and method for enabling multiple auxiliary use of an access token of a user by another entity to facilitate an action of the user
CN115357548B (en) * 2022-10-20 2023-03-03 中国信息通信研究院 Block chain-based electronic contract query method, device, equipment and medium
US11954215B1 (en) * 2022-11-21 2024-04-09 Real Title Block, Llc System and method for security suite concatenating validation elements for blockchain binding operations
WO2024111700A1 (en) * 2022-11-21 2024-05-30 주식회사 필더필 Copyright management system and method therefor
KR102694371B1 (en) * 2022-12-23 2024-08-14 주식회사 이큐비알 홀딩스 Blockchain provision system and method using a non-competitive consensus algorithm and micro-chain architecture to ensure transaction processing speed and scalability suitable for commercial services
CN116012164B (en) * 2023-03-17 2023-06-30 安徽中科晶格技术有限公司 Block chain cross-fragment transaction method based on virtual account
US20240362631A1 (en) * 2023-04-28 2024-10-31 Paypal, Inc. Artificial intelligence (ai) engine for dynamic content distribution and management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180300382A1 (en) * 2017-04-12 2018-10-18 Vijay K. Madisetti Method and System for Tuning Blockchain Scalability for Fast and Low-Cost Payment and Transaction Processing
US20190188711A1 (en) * 2017-12-19 2019-06-20 Tbcasoft, Inc. Cross-ledger transfers between distributed ledgers
US20190327081A1 (en) * 2018-04-24 2019-10-24 Duvon Corporation Autonomous exchange via entrusted ledger
US20210044426A1 (en) * 2016-06-28 2021-02-11 Amazon Technologies, Inc. Aws identity - blockchain for cloud based audit services

Family Cites Families (374)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4309569A (en) 1979-09-05 1982-01-05 The Board Of Trustees Of The Leland Stanford Junior University Method of providing digital signatures
US5499294A (en) 1993-11-24 1996-03-12 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Digital camera with apparatus for authentication of images produced from an image file
US5799087A (en) 1994-04-28 1998-08-25 Citibank, N.A. Electronic-monetary system
US5606609A (en) 1994-09-19 1997-02-25 Scientific-Atlanta Electronic document verification system and method
US5966446A (en) 1995-09-29 1999-10-12 Intel Corporation Time-bracketing infrastructure implementation
US5862218A (en) 1996-04-04 1999-01-19 Fotonation, Inc. Method and apparatus for in-camera image marking and authentication
US6363481B1 (en) 1998-08-03 2002-03-26 Nortel Networks Limited Method and apparatus for secure data storage using distributed databases
EP1072149A1 (en) 1999-02-16 2001-01-31 Koninklijke Philips Electronics N.V. Authentication and verification within a digital camera architecture
US20070027787A1 (en) 1999-10-06 2007-02-01 Tripp Thomas W Software system for real monetary instruments
US7730113B1 (en) 2000-03-07 2010-06-01 Applied Discovery, Inc. Network-based system and method for accessing and processing emails and other electronic legal documents that may include duplicate information
US8145556B2 (en) 2000-04-10 2012-03-27 Tealdi Daniel A Online mortgage approval and settlement system and method therefor
US7028263B2 (en) 2000-07-19 2006-04-11 Research In Motion Limited User interface and method for viewing short messages on a wireless device
US7206768B1 (en) 2000-08-14 2007-04-17 Jpmorgan Chase Bank, N.A. Electronic multiparty accounts receivable and accounts payable system
US7249089B2 (en) 2000-12-29 2007-07-24 Hartford Fire Insurance Company Method and system for auctioning bankruptcy assets and valuing same
US20020143687A1 (en) 2001-03-30 2002-10-03 Reuben Bahar Method and system for auctioning bad debts utilizing an assorting arangement based on the geographic locaiton where jurisdiction is present over the debtor
DE10128728C2 (en) 2001-06-13 2003-10-23 Siemens Ag Arrangement for personal protection of information, in particular about violations of the law
US20030018563A1 (en) 2001-07-13 2003-01-23 Efficient Capital Corporation Trading and processing of commercial accounts receivable
EP1442597A2 (en) 2001-11-01 2004-08-04 A4S Technologies Inc. Remote surveillance system
US7212808B2 (en) 2002-10-15 2007-05-01 Wildseed Ltd. Unified message box for wireless mobile communication devices
US20040085445A1 (en) 2002-10-30 2004-05-06 Park Ho-Sang Apparatus for secured video signal transmission for video surveillance system
GB2400463B (en) 2003-04-11 2005-05-25 Nextenders Data processing apparatus and method for distributing and authenticating electronic documents
US8719576B2 (en) 2003-12-22 2014-05-06 Guardtime IP Holdings, Ltd Document verification with distributed calendar infrastructure
US20050206741A1 (en) 2004-03-19 2005-09-22 Raber Gregory W Law enforcement vehicle surveillance system
US20060075228A1 (en) 2004-06-22 2006-04-06 Black Alistair D Method and apparatus for recognition and real time protection from view of sensitive terms in documents
WO2006006081A2 (en) 2004-07-09 2006-01-19 Emitall Surveillance S.A. Smart video surveillance system ensuring privacy
US20060184443A1 (en) 2005-02-16 2006-08-17 Amir Erez Method for conducting an on-line forum for auctioning intangible assets
US20070174630A1 (en) 2005-02-21 2007-07-26 Marvin Shannon System and Method of Mobile Anti-Pharming and Improving Two Factor Usage
KR101197365B1 (en) 2005-04-06 2012-11-05 삼성전자주식회사 Multimedia message service method and apparatus
JP3943118B2 (en) 2005-04-28 2007-07-11 Sbシステム株式会社 Electronic information storage method and apparatus, electronic information division storage method and apparatus, electronic information division restoration processing method and apparatus, and programs thereof
US7822820B2 (en) 2005-07-01 2010-10-26 0733660 B.C. Ltd. Secure electronic mail system with configurable cryptographic engine
WO2007022222A2 (en) 2005-08-18 2007-02-22 Creditmax Llc Debt sales system and method
WO2007022381A2 (en) 2005-08-18 2007-02-22 Creditmax Llc Systems and methods for acquiring, managing, placing, collecting and reselling debt
KR100653512B1 (en) 2005-09-03 2006-12-05 삼성에스디에스 주식회사 Electronic document management and storage system, how to register and use electronic documents performed in this system
TWI298128B (en) 2005-10-20 2008-06-21 Ind Tech Res Inst Method and system for managing distributed storage of digital contents
KR100838870B1 (en) 2005-11-14 2008-06-16 엘지전자 주식회사 Ventilation
WO2007069176A2 (en) 2005-12-16 2007-06-21 Koninklijke Philips Electronics N.V. Method for the detection of a use of a camera unit in a mobile device
US9378343B1 (en) 2006-06-16 2016-06-28 Nokia Corporation Automatic detection of required network key type
US20080010466A1 (en) 2006-07-10 2008-01-10 William Hopper Digital identifier chaining
US20080059726A1 (en) 2006-08-31 2008-03-06 Carlos Rozas Dynamic measurement of an operating system in a virtualized system
US8943332B2 (en) 2006-10-31 2015-01-27 Hewlett-Packard Development Company, L.P. Audit-log integrity using redactable signatures
ES2568661T3 (en) 2006-11-07 2016-05-03 Security First Corp. Systems and methods to distribute and guarantee data
US9411976B2 (en) 2006-12-01 2016-08-09 Maidsafe Foundation Communication system and method
US7949597B2 (en) 2007-02-02 2011-05-24 Zadoorian James A Method of collecting delinquent specialized debt
JP4895378B2 (en) 2007-02-05 2012-03-14 株式会社オリコム Secret information delivery system and secret information delivery method
US10231077B2 (en) 2007-07-03 2019-03-12 Eingot Llc Records access and management
US20090025063A1 (en) 2007-07-18 2009-01-22 Novell, Inc. Role-based access control for redacted content
US8266439B2 (en) 2007-09-12 2012-09-11 Hewlett-Packard Development Company, L.P. Integrity verification of pseudonymized documents
FR2927753A1 (en) * 2008-02-20 2009-08-21 France Telecom METHOD AND DEVICE FOR CONTROLLING THE QUALITY OF SERVICE IN A NETWORK.
US8245038B2 (en) 2008-03-26 2012-08-14 Palo Alto Research Center Incorporated Method and apparatus for verifying integrity of redacted documents
KR20110052543A (en) 2008-07-11 2011-05-18 마벨 월드 트레이드 리미티드 Power Saving Modes for Access Points
US8301654B2 (en) 2009-02-24 2012-10-30 Hitachi, Ltd. Geographical distributed storage system based on hierarchical peer to peer architecture
US8558888B2 (en) 2009-02-27 2013-10-15 Third Iris Corp. Bandwidth shaping client to capture, transform, cache, and upload images from a remote point of recordation to a network service
US20130222587A1 (en) 2009-02-27 2013-08-29 Barracuda Networks, Inc Self-Connecting Internet Camera With Enhanced Security and Bandwidth Shaping
JP5383297B2 (en) 2009-04-13 2014-01-08 株式会社日立国際電気 Signature device
US8572695B2 (en) 2009-09-08 2013-10-29 Ricoh Co., Ltd Method for applying a physical seal authorization to documents in electronic workflows
US20110161674A1 (en) 2009-12-29 2011-06-30 Konica Minolta Systems Laboratory, Inc. Document authentication using document digest verification by remote server
US8359361B2 (en) 2010-05-06 2013-01-22 Microsoft Corporation Techniques to share media files through messaging
US9124423B2 (en) 2010-05-14 2015-09-01 International Business Machines Corporation Iterative data secret-sharing transformation
WO2011150346A2 (en) 2010-05-28 2011-12-01 Laurich Lawrence A Accelerator system for use with secure data storage
US8612477B2 (en) 2010-09-24 2013-12-17 Aol Inc. Systems and methods for customized electronic communications
US8504480B2 (en) 2011-02-03 2013-08-06 Ricoh Co., Ltd Creation of signatures for authenticating applications
US8560722B2 (en) 2011-03-18 2013-10-15 International Business Machines Corporation System and method to govern sensitive data exchange with mobile devices based on threshold sensitivity values
US8423892B1 (en) 2011-04-13 2013-04-16 Zynga Inc. System and method for monitoring player interactions with branded virtual objects in a virtual environment
US8706616B1 (en) 2011-06-20 2014-04-22 Kevin Flynn System and method to profit by purchasing unsecured debt and negotiating reduction in amount due
US9769250B2 (en) * 2013-08-08 2017-09-19 Architecture Technology Corporation Fight-through nodes with disposable virtual machines and rollback of persistent state
US8990322B2 (en) 2011-09-22 2015-03-24 Alcatel Lucent Archive control for text messages
WO2013065133A1 (en) 2011-11-01 2013-05-10 株式会社野村総合研究所 Time verification system and time verification program
US8767954B2 (en) 2011-12-01 2014-07-01 Colloid, Llc Methods and systems for deriving a cryptographic framework
US9792451B2 (en) 2011-12-09 2017-10-17 Echarge2 Corporation System and methods for using cipher objects to protect data
US20170213287A1 (en) 2012-03-06 2017-07-27 Daniel B. Bruno System and method for providing a cryptographic platform for exchanging debt securities denominated in virtual currencies
US9489827B2 (en) 2012-03-12 2016-11-08 Cisco Technology, Inc. System and method for distributing content in a video surveillance network
US9870384B2 (en) * 2012-03-30 2018-01-16 International Business Machines Corporation Database system transaction management
US20130275765A1 (en) 2012-04-12 2013-10-17 James Frazier Lay Secure digital document distribution with real-time sender control of recipient document content access rights
US8867741B2 (en) 2012-04-13 2014-10-21 Xerox Corporation Mobile field level encryption of private documents
US10984913B2 (en) 2012-04-27 2021-04-20 Netspective Communications Llc Blockchain system for natural language processing
US9679149B2 (en) 2012-07-05 2017-06-13 Nippon Telegraph And Telephone Corporation Secret sharing system, data distribution apparatus, distributed data transform apparatus, secret sharing method and program
US9818109B2 (en) 2012-08-16 2017-11-14 Danny Loh User generated autonomous digital token system
US9009705B2 (en) 2012-10-01 2015-04-14 International Business Machines Corporation Authenticated distribution of virtual machine images
KR101747221B1 (en) 2012-12-20 2017-06-15 한화테크윈 주식회사 Image data transmitting and receiving method and camara terminal and server for image forgery detection in security camera system
US9483657B2 (en) 2013-01-14 2016-11-01 Accenture Global Services Limited Secure online distributed data storage services
US9405930B2 (en) 2013-03-12 2016-08-02 Jacqueline K. Vestevich User-controlled centralized privacy marketplace system
US10438285B1 (en) 2013-03-15 2019-10-08 Charles Schwab & Co., Inc. System and method for displaying order status and receiving and changing orders
US9904954B2 (en) 2013-03-15 2018-02-27 Ten-X, Llc Flexible commercial loan pool
US20140344015A1 (en) 2013-05-20 2014-11-20 José Antonio Puértolas-Montañés Systems and methods enabling consumers to control and monetize their personal data
US9411982B1 (en) 2013-08-07 2016-08-09 Amazon Technologies, Inc. Enabling transfer of digital assets
KR102137956B1 (en) 2013-11-19 2020-07-28 탑 갤로어 리미티드 Block mining methods and apparatus
DE102013227136B4 (en) 2013-12-23 2020-12-31 Mathys Ag Bettlach Coated hemiprosthetic implant
WO2015100475A1 (en) 2014-01-06 2015-07-09 Mashinery Pty Ltd. Secure storage of data among multiple devices
WO2015104588A2 (en) 2014-01-13 2015-07-16 Kacst Ash insulation panels
WO2015106285A1 (en) 2014-01-13 2015-07-16 Yago Yaron Edan Verification method
EP3082124B8 (en) 2014-02-18 2019-05-08 Nippon Telegraph And Telephone Corporation Security apparatus, method thereof, and program
US20150242835A1 (en) 2014-02-21 2015-08-27 HomeAway.com, Inc. Correlating transactions for an aggregated electronic transaction in association with split payment operations
US9197662B2 (en) 2014-02-26 2015-11-24 Symantec Corporation Systems and methods for optimizing scans of pre-installed applications
WO2015135018A1 (en) 2014-03-11 2015-09-17 Faithhill Ventures Ltd Computer implemented frameworks and methods configured to create and manage a virtual currency
WO2015142765A1 (en) 2014-03-17 2015-09-24 Coinbase, Inc Bitcoin host computer system
US9398018B2 (en) 2014-03-18 2016-07-19 nTrust Technology Solutions Corp. Virtual currency system
US9830580B2 (en) 2014-03-18 2017-11-28 nChain Holdings Limited Virtual currency system
US11195154B2 (en) 2014-03-27 2021-12-07 Nokia Technologies Oy Method and apparatus for automatic inter-device authorisation
US11080777B2 (en) * 2014-03-31 2021-08-03 Monticello Enterprises LLC System and method for providing a social media shopping experience
WO2015156786A1 (en) 2014-04-08 2015-10-15 Hewlett-Packard Development Company, L.P. Redactable document signatures
US11164164B2 (en) 2014-05-15 2021-11-02 Uphold Global Foundation System and method for converting cryptocurrency to virtual assets whose value is substantiated by a reserve of assets
US10489757B2 (en) 2014-05-19 2019-11-26 OX Labs Inc. System and method for rendering virtual currency related services
US20150363769A1 (en) 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency Real-Time Conversion System
US20150379484A1 (en) 2014-06-25 2015-12-31 Fexco International payment systems and methods
US9946894B2 (en) 2014-06-27 2018-04-17 Panasonic Intellectual Property Management Co., Ltd. Data processing method and data processing device
US10356094B2 (en) 2014-06-30 2019-07-16 Vescel, Llc Uniqueness and auditing of a data resource through an immutable record of transactions in a hash history
TWI533771B (en) 2014-07-17 2016-05-11 矽品精密工業股份有限公司 Coreless package substrate and fabrication method thereof
US10320781B2 (en) 2016-12-08 2019-06-11 Sensoriant, Inc. System and methods for sharing and trading user data and preferences between computer programs and other entities while preserving user privacy
US20160071096A1 (en) 2014-09-08 2016-03-10 Andrew Rosca Method and System for Securing Cryptocurrency Wallet
US9424576B2 (en) 2014-09-15 2016-08-23 Xerox Corporation Methods and systems of creating a payment record with a cryptographically secure audit trail
US9349022B2 (en) * 2014-10-01 2016-05-24 Sap Se Providing integrated role-based access control
US20160098578A1 (en) 2014-10-06 2016-04-07 Nuoffer, Inc. System and method for persistent data integrity in document communication
JP2016085381A (en) 2014-10-27 2016-05-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America ENCRYPTION METHOD, ENCRYPTION DEVICE, AND ENCRYPTION SYSTEM
US10819959B2 (en) 2014-11-05 2020-10-27 Jason Christopher Palazzolo Firearm environmental recording apparatus and system
US20170330279A1 (en) 2014-11-14 2017-11-16 Hector Jose Maximiliano Ponzone Unified Option Trading System
US11238443B2 (en) 2014-11-26 2022-02-01 Ncr Corporation Secure crypto currency point-of-sale (POS) management
US20160162897A1 (en) 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
US11100477B1 (en) 2015-01-20 2021-08-24 Pollen, Inc. Electronic capital marketplace systems and methods
US20160217436A1 (en) 2015-01-25 2016-07-28 Dror Samuel Brama Method, System and Program Product for Tracking and Securing Transactions of Authenticated Items over Block Chain Systems.
US9875510B1 (en) 2015-02-03 2018-01-23 Lance Kasper Consensus system for tracking peer-to-peer digital records
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US10853592B2 (en) 2015-02-13 2020-12-01 Yoti Holding Limited Digital identity system
US10594484B2 (en) 2015-02-13 2020-03-17 Yoti Holding Limited Digital identity system
US9785764B2 (en) 2015-02-13 2017-10-10 Yoti Ltd Digital identity
US9436923B1 (en) 2015-02-26 2016-09-06 Skuchain, Inc. Tracking unitization occurring in a supply chain
EP3262817A4 (en) 2015-02-27 2018-10-31 Visa International Service Association Transaction signing utilizing asymmetric cryptography
US20160260091A1 (en) 2015-03-04 2016-09-08 THC Farmaceuticals, Inc. Universal wallet for digital currency
US11533177B2 (en) 2015-03-13 2022-12-20 United States Postal Service Methods and systems for data authentication services
US20160267472A1 (en) 2015-03-13 2016-09-15 Gyft, Inc. Securing digital gift cards with a public ledger
US20160275294A1 (en) 2015-03-16 2016-09-22 The MaidSafe Foundation Data system and method
US20160283920A1 (en) 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
US20160292396A1 (en) 2015-03-30 2016-10-06 Iperial, Inc. System and method for authenticating digital content
AU2016242888A1 (en) 2015-03-31 2017-11-16 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
CA2981586C (en) 2015-04-05 2024-06-18 Donald R. Wilson, Jr. Digital asset intermediary electronic settlement platform
SG10201909244RA (en) 2015-04-06 2019-11-28 Bitmark Inc System and method for decentralized title recordation and authentication
US9667600B2 (en) 2015-04-06 2017-05-30 At&T Intellectual Property I, L.P. Decentralized and distributed secure home subscriber server device
US20160300200A1 (en) 2015-04-09 2016-10-13 Conjectural Technologies, Llc Personal electronic currency
US20160321751A1 (en) 2015-04-28 2016-11-03 Domus Tower, Inc. Real-time settlement of securities trades over append-only ledgers
US20160321434A1 (en) 2015-05-01 2016-11-03 Monegraph, Inc. Digital content rights transactions using block chain systems
US20160321676A1 (en) 2015-05-01 2016-11-03 Monegraph, Inc. Sharing content within social network services
US9876646B2 (en) 2015-05-05 2018-01-23 ShoCard, Inc. User identification management system and method
CA2984888A1 (en) 2015-05-05 2016-11-10 ShoCard, Inc. Identity management service using a block chain
US9942046B2 (en) 2015-05-06 2018-04-10 21, Inc. Digital currency mining circuitry with adaptable difficulty compare capabilities
US20160328791A1 (en) 2015-05-08 2016-11-10 Gdr Acquisition Company Llc System and method for electronic consumer debt validation and dispute process
US20160342977A1 (en) 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US20160342989A1 (en) 2015-05-21 2016-11-24 Mastercard International Incorporated Method and system for processing blockchain-based transactions on existing payment networks
US20160371771A1 (en) 2015-06-16 2016-12-22 BitPagos, Inc. Loan processing service utilizing a distributed ledger digital asset
US11694168B2 (en) 2015-07-01 2023-07-04 The Clearing House Payments Company L.L.C. Real-time payment system, method, apparatus, and computer program
EP3317998B1 (en) 2015-07-02 2021-04-28 Leading Software Limited Resilient secret sharing cloud based architecture for data vault
US10097356B2 (en) 2015-07-02 2018-10-09 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
US11636471B2 (en) 2017-12-15 2023-04-25 Fmr Llc Social data tracking datastructures, apparatuses, methods and systems
US20170228731A1 (en) 2016-02-09 2017-08-10 Fmr Llc Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems
US11488147B2 (en) 2015-07-14 2022-11-01 Fmr Llc Computationally efficient transfer processing and auditing apparatuses, methods and systems
US20210266167A1 (en) 2015-07-14 2021-08-26 Fmr Llc Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20170053249A1 (en) 2015-07-30 2017-02-23 NXT-ID, Inc. Electronic Crypto-Currency Management Method and System
US10366204B2 (en) * 2015-08-03 2019-07-30 Change Healthcare Holdings, Llc System and method for decentralized autonomous healthcare economy platform
US10402792B2 (en) 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US10303887B2 (en) 2015-09-14 2019-05-28 T0.Com, Inc. Data verification methods and systems using a hash tree, such as a time-centric merkle hash tree
US10970274B2 (en) 2015-09-17 2021-04-06 Eoriginal, Inc. System and method for electronic data capture and management for audit, monitoring, reporting and compliance
US10387881B2 (en) 2015-10-02 2019-08-20 Chicago Mercantile Exchange Inc. Virtual payment processing system
US20180285879A1 (en) 2015-10-17 2018-10-04 Banqu, Inc. Blockchain-based identity and transaction platform
US10846663B2 (en) 2015-10-29 2020-11-24 Cornell University Systems and methods for securing cryptocurrency purchases
US20170134162A1 (en) 2015-11-10 2017-05-11 Shannon Code System and process for verifying digital media content authenticity
US11562353B2 (en) 2015-11-24 2023-01-24 Mastercard International Incorporated Method and system for gross settlement by use of an opaque blockchain
US10013573B2 (en) 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
US9590956B1 (en) 2015-12-18 2017-03-07 Wickr Inc. Decentralized authoritative messaging
US11130042B2 (en) 2016-02-02 2021-09-28 Bao Tran Smart device
CA3012870C (en) 2016-02-08 2024-02-06 Lindsay MOLONEY A system and method for document information authenticity verification
EP4254220A3 (en) 2016-02-12 2023-11-29 Royal Bank Of Canada Methods and systems for digital reward processing
US20170236123A1 (en) 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
US20170243289A1 (en) 2016-02-18 2017-08-24 Christopher Michael RUFO Hybrid trading platform integrating fiat and crypto investments
US10679215B2 (en) 2016-02-22 2020-06-09 Bank Of America Corporation System for control of device identity and usage in a process data network
US10496989B2 (en) * 2016-02-22 2019-12-03 Bank Of America Corporation System to enable contactless access to a transaction terminal using a process data network
US10135870B2 (en) 2016-02-22 2018-11-20 Bank Of America Corporation System for external validation of secure process transactions
AU2017222470B2 (en) 2016-02-23 2023-01-12 nChain Holdings Limited Tokenisation method and system for implementing exchanges on a blockchain
JP6799061B2 (en) 2016-02-23 2020-12-09 エヌチェーン ホールディングス リミテッドNchain Holdings Limited Secure multi-party loss resistant storage and transfer of cryptographic keys for blockchain-based systems combined with wallet management systems
JP7249148B2 (en) * 2016-02-23 2023-03-30 エヌチェーン ライセンシング アーゲー Blockchain-based universal tokenization system
CN109417465B (en) 2016-02-23 2021-01-15 区块链控股有限公司 Registration and automatic management method of intelligent contracts executed by block chains
US11170371B2 (en) * 2016-03-03 2021-11-09 Nec Corporation Method for managing data in a network of nodes
US10915895B1 (en) 2016-03-04 2021-02-09 Perkins Coie LLP Managing electronic cryptocurrencies
NZ746878A (en) 2016-04-01 2022-11-25 Jpmorgan Chase Bank Na Systems and methods for providing data privacy in a private distributed ledger
US10586270B2 (en) 2016-04-14 2020-03-10 Ebay Inc. Network site cart user interface having multiple user-specified currency formats
US10046228B2 (en) 2016-05-02 2018-08-14 Bao Tran Smart device
US10532268B2 (en) 2016-05-02 2020-01-14 Bao Tran Smart device
WO2017190795A1 (en) * 2016-05-06 2017-11-09 Rwe International Se System for evaluating telemetry data
US10305694B2 (en) 2016-05-27 2019-05-28 Mastercard International Incorporated Method and system for efficient distribution of configuration data utilizing permissioned blockchain technology
US20170344983A1 (en) 2016-05-30 2017-11-30 Business Information Exchange System Corp. BIXCoin: A Secure Peer-to-Peer Payment System Based on the Public Payments Ledger
US20180108024A1 (en) * 2016-06-03 2018-04-19 Chronicled, Inc Open registry for provenance and tracking of goods in the supply chain
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
EP3465592A1 (en) 2016-06-06 2019-04-10 Financial & Risk Organisation Limited Systems and methods for providing a personal distributed ledger
US10796000B2 (en) 2016-06-11 2020-10-06 Intel Corporation Blockchain system with nucleobase sequencing as proof of work
US20170364642A1 (en) 2016-06-15 2017-12-21 Texas Health Biomedical Advancement Center, Inc. Systems, apparatus, articles, and methods for identifying levels of service in a hospital department
US20170373859A1 (en) 2016-06-23 2017-12-28 Praxik, Llc Cryptographic Signature System and Related Systems and Methods
US10108954B2 (en) 2016-06-24 2018-10-23 PokitDok, Inc. System and method for cryptographically verified data driven contracts
WO2018006072A1 (en) * 2016-06-30 2018-01-04 Clause, Inc. Systems and method for forming, storing, managing,and executing contracts
US10956973B1 (en) 2016-07-06 2021-03-23 LedgerFunding, Inc. System and method for verifiable invoice and credit financing
WO2018013898A1 (en) 2016-07-14 2018-01-18 Diebold Nixdorf Incorporated Using a distributed ledger for tracking debt data
KR101795695B1 (en) 2016-07-14 2017-12-01 주식회사 코인플러그 Method for providing archiving service and verification service of data transceived via messenger service and server using the same
US10277540B2 (en) 2016-08-11 2019-04-30 Jurni Inc. Systems and methods for digital video journaling
US10878522B2 (en) 2016-08-18 2020-12-29 First American Financial Corporation Systems and methods for using blockchains to record, manage, and transfer ownership rights to land titles
US10025941B1 (en) 2016-08-23 2018-07-17 Wells Fargo Bank, N.A. Data element tokenization management
US20180075527A1 (en) 2016-09-14 2018-03-15 Royal Bank Of Canada Credit score platform
US10832247B2 (en) 2016-09-15 2020-11-10 American Express Travel Related Services Company, Inc. Systems and methods for blockchain based payment networks
US10262138B2 (en) 2016-09-15 2019-04-16 Paypal, Inc. Techniques for ransomware detection and mitigation
CN110249350A (en) 2016-09-20 2019-09-17 河谷控股Ip有限责任公司 Sample tracking, system and method are carried out via sample tracking chain
US10185550B2 (en) 2016-09-28 2019-01-22 Mcafee, Inc. Device-driven auto-recovery using multiple recovery sources
US10587628B2 (en) 2016-09-29 2020-03-10 Microsoft Technology Licensing, Llc Verifiable outsourced ledgers
US11128603B2 (en) 2016-09-30 2021-09-21 Nec Corporation Method and system for providing a transaction forwarding service in blockchain implementations
US10157295B2 (en) 2016-10-07 2018-12-18 Acronis International Gmbh System and method for file authenticity certification using blockchain network
US10789239B2 (en) 2016-10-10 2020-09-29 AlphaPoint Finite state machine distributed ledger
US20180123779A1 (en) * 2016-11-01 2018-05-03 Jiangang Zhang Flexible Blockchain Smart-Contract Deployment
CN109906443B (en) 2016-11-03 2023-10-13 维萨国际服务协会 System and method for forming universal records
US11080380B2 (en) 2016-11-08 2021-08-03 Aware, Inc. Decentralized biometric identity authentication
US10491378B2 (en) 2016-11-16 2019-11-26 StreamSpace, LLC Decentralized nodal network for providing security of files in distributed filesystems
US20180144292A1 (en) 2016-11-22 2018-05-24 Wal-Mart Stores, Inc. Apparatus and method for tracking consumer premises inventory
US11823089B2 (en) 2016-12-02 2023-11-21 Christian Günther System and method for managing transactions in dynamic digital documents
US20180157700A1 (en) 2016-12-06 2018-06-07 International Business Machines Corporation Storing and verifying event logs in a blockchain
US20180158034A1 (en) 2016-12-07 2018-06-07 International Business Machines Corporation Dynamic reordering of blockchain transactions to optimize performance and scalability
US10628268B1 (en) 2016-12-15 2020-04-21 EMC IP Holding Company LLC Proof of data replication consistency using blockchain
LU93377B1 (en) 2016-12-15 2018-07-03 Luxembourg Inst Science & Tech List P2p network data distribution and retrieval using blockchain log
US20180182042A1 (en) 2016-12-22 2018-06-28 American Express Travel Related Services Company, Inc. Systems and methods for estimating transaction rates
EP3560136B1 (en) 2016-12-22 2020-12-02 Itext Group NV Distributed blockchain-based method for saving the location of a file
FR3061330B1 (en) * 2016-12-28 2019-05-24 Bull Sas SYSTEM AND METHOD FOR CREATING AND MANAGING DECENTRALIZED AUTHORIZATIONS FOR CONNECTED OBJECTS
EP3563545B1 (en) 2016-12-30 2024-07-17 INTEL Corporation Blockchains for securing iot devices
US10445302B2 (en) 2017-01-03 2019-10-15 International Business Machines Corporation Limiting blockchain size to optimize performance
US20180189781A1 (en) 2017-01-05 2018-07-05 The Toronto-Dominion Bank Real-time approval and execution of data exchanges between computing systems
US11574291B2 (en) 2017-01-08 2023-02-07 Bprotocol Foundation Methods for exchanging and evaluating virtual currency
US10355869B2 (en) 2017-01-12 2019-07-16 International Business Machines Corporation Private blockchain transaction management and termination
US11631077B2 (en) 2017-01-17 2023-04-18 HashLynx Inc. System for facilitating secure electronic communications between entities and processing resource transfers
US10419225B2 (en) 2017-01-30 2019-09-17 Factom, Inc. Validating documents via blockchain
US20180219683A1 (en) 2017-01-30 2018-08-02 Factom Possession and Alteration of Documents
CN116993331A (en) 2017-01-31 2023-11-03 区块链控股有限公司 Computer-implemented system and method for generating and extracting user-related data stored on a blockchain
US20180247191A1 (en) 2017-02-03 2018-08-30 Milestone Entertainment Llc Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions
US20180225649A1 (en) 2017-02-06 2018-08-09 American Express Travel Related Services Company, Inc. Charge splitting across multiple payment systems
US11321681B2 (en) 2017-02-06 2022-05-03 Northern Trust Corporation Systems and methods for issuing and tracking digital tokens within distributed network nodes
US10411897B2 (en) 2017-02-17 2019-09-10 Factom, Inc. Secret sharing via blockchains
WO2018163044A1 (en) 2017-03-05 2018-09-13 Tatchell Shona System and method for provision of supply chain financing of ethically verified product where there has been verification of production processes and products inspection using blockchain smart contracts
US20180260888A1 (en) 2017-03-08 2018-09-13 Factom Validating Mortgage Documents
US20180260889A1 (en) 2017-03-10 2018-09-13 Factom Sourcing Mortgage Documents via Blockchains
US20180268504A1 (en) 2017-03-15 2018-09-20 Factom Indexing Mortgage Documents via Blockchains
US10521604B2 (en) 2017-03-17 2019-12-31 Labyrinth Research Llc Unified control of privacy-impacting devices
US11003146B2 (en) 2017-03-17 2021-05-11 General Electric Company Distributed optimal control of an aircraft propulsion system
US11816642B2 (en) 2017-03-20 2023-11-14 Steven Victor Wasserman Blockchain digital currency: systems and methods for use in enterprise blockchain banking
US10817873B2 (en) 2017-03-22 2020-10-27 Factom, Inc. Auditing of electronic documents
CN111614655A (en) 2017-03-24 2020-09-01 创新先进技术有限公司 Consensus checking method and device
CN107368507B (en) 2017-03-28 2020-03-27 创新先进技术有限公司 Block chain-based consensus method and device
CN107395659B (en) 2017-03-28 2021-08-24 创新先进技术有限公司 Method and device for business acceptance and consensus
US10685399B2 (en) 2017-03-31 2020-06-16 Factom, Inc. Due diligence in electronic documents
US11538031B2 (en) * 2017-03-31 2022-12-27 Vijay Madisetti Method and system for identity and access management for blockchain interoperability
US20180285971A1 (en) 2017-03-31 2018-10-04 International Business Machines Corporation Management of consumer debt collection using a blockchain and machine learning
US10102526B1 (en) * 2017-03-31 2018-10-16 Vijay K. Madisetti Method and system for blockchain-based combined identity, ownership, integrity and custody management
US10270599B2 (en) 2017-04-27 2019-04-23 Factom, Inc. Data reproducibility using blockchains
US10496995B2 (en) 2017-05-01 2019-12-03 Facebook, Inc. Facilitating payment transactions between users of a plurality of payment providers
CN111279336A (en) * 2017-05-04 2020-06-12 蒙蒂塞洛企业有限公司 Providing cryptocurrency payment through a browser application programming interface
WO2018209333A1 (en) 2017-05-12 2018-11-15 Insurdata Corporation Method and system configured for risk asset data collection
US9882918B1 (en) 2017-05-15 2018-01-30 Forcepoint, LLC User behavior profile in a blockchain
US10949926B1 (en) * 2017-05-24 2021-03-16 State Farm Mutual Automobile Insurance Company Fault determination of blockchain subrogation claims
US10663303B2 (en) 2017-06-12 2020-05-26 Panasonic Intellectual Property Management Co., Ltd. System and method for dynamically authenticating map data using blockchains
US20180365201A1 (en) 2017-06-14 2018-12-20 Clause, Inc. System and method for compound data-driven contracts and documentation
US20180365764A1 (en) 2017-06-15 2018-12-20 Sweetbridge Solo-party collateralized liquidity
US11055703B2 (en) 2017-06-19 2021-07-06 Hitachi, Ltd. Smart contract lifecycle management
WO2019010288A1 (en) 2017-07-05 2019-01-10 United Parcel Service Of America, Inc. Verifiable parcel distributed ledger shipping and tracking system
US10944546B2 (en) * 2017-07-07 2021-03-09 Microsoft Technology Licensing, Llc Blockchain object interface
CN111885024B (en) 2017-07-14 2022-11-18 创新先进技术有限公司 Login information processing method and equipment
US10839379B2 (en) 2017-07-20 2020-11-17 Chicago Mercantile Exchange Inc. Blockchain including linked digital assets
US20190050855A1 (en) * 2017-07-24 2019-02-14 William Martino Blockchain-based systems, methods, and apparatus for securing access to information stores
CN107566337B (en) 2017-07-26 2019-08-09 阿里巴巴集团控股有限公司 A method and device for communication between blockchain nodes
CN107392618B (en) * 2017-07-28 2021-02-12 苏州朗润创新知识产权运营有限公司 Method and equipment for implanting intelligent contract
US10594488B2 (en) * 2017-08-05 2020-03-17 Proclus Technologies Limited Method and system for implementing automatic transaction rebroadcasting for transient blockchains
WO2019033074A1 (en) 2017-08-11 2019-02-14 Dragonchain, Inc. Distributed ledger interaction systems and methods
US10795977B2 (en) 2017-08-24 2020-10-06 Oracle International Corporation Digital asset traceability and assurance using a distributed ledger
US11037095B2 (en) 2017-09-11 2021-06-15 Accenture Global Solutions Limited Distributed ledger technology for freight system
WO2019055585A1 (en) * 2017-09-12 2019-03-21 Kadena Llc Parallel-chain architecture for blockchain systems
US10873457B1 (en) 2017-09-13 2020-12-22 Inveniam.io, LLC Data structure having internal self-references suitable for immutably representing and verifying data generated over time
US10361870B2 (en) 2017-09-14 2019-07-23 The Toronto-Dominion Bank Management of cryptographically secure exchanges of data using permissioned distributed ledgers
EP3669282B1 (en) 2017-09-20 2022-11-02 Samsung Electronics Co., Ltd. Method and apparatus for managing a service request in a blockchain network
US10346815B2 (en) 2017-09-22 2019-07-09 Kowala Cayman SEZC System and method of distributed, self-regulating, asset-tracking cryptocurrencies
US20200286081A1 (en) * 2017-09-29 2020-09-10 Leverage Rock Llc Transaction Privacy in Public Distributed Ledger Systems
US10958418B2 (en) 2017-10-10 2021-03-23 Chromata Corporation System and method for a blockchain network with heterogeneous privacy
US11063744B2 (en) 2017-10-20 2021-07-13 Sap Se Document flow tracking using blockchain
WO2019078877A1 (en) * 2017-10-20 2019-04-25 Hewlett Packard Enterprise Development Lp Transmitting or receiving blockchain information
ES2869256T3 (en) 2017-10-23 2021-10-25 Siemens Ag Procedure and control system for the control and / or supervision of devices
US11979490B2 (en) 2017-10-24 2024-05-07 0Chain Corp. Non-fungible token blockchain processing
US20190132350A1 (en) 2017-10-30 2019-05-02 Pricewaterhousecoopers Llp System and method for validation of distributed data storage systems
US11075744B2 (en) 2017-11-20 2021-07-27 Acronis International Gmbh Blockchain-based media content authentication methods and systems
US20190164157A1 (en) 2017-11-28 2019-05-30 American Express Travel Related Services Company, Inc. Transaction authorization process using blockchain
US10735450B2 (en) 2017-11-30 2020-08-04 Intel Corporation Trust topology selection for distributed transaction processing in computing environments
US11836717B2 (en) * 2017-12-04 2023-12-05 Vijay Madisetti System and method for processing payments in fiat currency using blockchain and tethered tokens
US20190311357A1 (en) 2018-04-04 2019-10-10 Vijay Madisetti Method and System for Exchange of Value or Tokens Between Blockchain Networks
US10476847B1 (en) * 2017-12-08 2019-11-12 Symbiont.Io, Inc. Systems, methods, and devices for implementing a smart contract on a distributed ledger technology platform
US11315110B2 (en) 2017-12-27 2022-04-26 International Business Machines Corporation Private resource discovery and subgroup formation on a blockchain
US11544708B2 (en) * 2017-12-29 2023-01-03 Ebay Inc. User controlled storage and sharing of personal user information on a blockchain
WO2019142049A1 (en) 2018-01-17 2019-07-25 Geeq Corporation Blockchain methods, nodes, systems and products
KR102451524B1 (en) 2018-01-31 2022-10-06 케이블텔레비젼래버러토리즈,인코포레이티드 Systems and Methods for Privacy Management Using Digital Ledger
US10373129B1 (en) 2018-03-05 2019-08-06 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
US10929842B1 (en) 2018-03-05 2021-02-23 Winklevoss Ip, Llc System, method and program product for depositing and withdrawing stable value digital assets in exchange for fiat
US11387981B2 (en) 2018-02-13 2022-07-12 Accenture Global Solutions Limited Platform for multi-party digital records using distributed ledger system
US11164254B1 (en) 2018-02-14 2021-11-02 Equity Shift, Inc. Blockchain instrument for transferable equity
US10880071B2 (en) 2018-02-23 2020-12-29 Samsung Electronics Co., Ltd. Programmable blockchain solid state drive and switch
US10951626B2 (en) 2018-03-06 2021-03-16 Americorp Investments Llc Blockchain-based commercial inventory systems and methods
US11700265B2 (en) 2018-03-06 2023-07-11 Americorp Investments Llc Customized view of restricted information recorded into a blockchain
US20190288832A1 (en) 2018-03-14 2019-09-19 Wei Kang Tsai Separation of transaction and account data in blockchains
US10796393B2 (en) 2018-03-14 2020-10-06 Motorola Solutions, Inc. System for validating and appending incident-related data records in an inter-agency distributed electronic ledger
US10803540B2 (en) 2018-03-14 2020-10-13 Motorola Solutions, Inc. System for validating and appending incident-related data records in a distributed electronic ledger
US20190287107A1 (en) 2018-03-15 2019-09-19 International Business Machines Corporation Resource equity for blockchain
WO2019180702A1 (en) * 2018-03-18 2019-09-26 Valid Network Ltd Method and system for assessing future execution of a smart contract based on previous executions on a blockchain-based platform
US11146545B2 (en) 2018-03-27 2021-10-12 Exosite LLC Apparatus and method for establishing secured connection
US20190303623A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Promotion smart contracts for software development processes
US20210119785A1 (en) 2018-04-18 2021-04-22 2Key New Economics Ltd. Decentralized protocol for maintaining cryptographically proven multi-step referral networks
US11797988B2 (en) 2018-04-19 2023-10-24 Vechain Foundation Limited Transaction processing
WO2019204794A1 (en) 2018-04-20 2019-10-24 Infonetworks Llc System for verification of pseudonymous credentials for digital identities with managed access to personal data on trust networks
US10904000B2 (en) 2018-04-26 2021-01-26 Microsoft Technology Licensing, Llc Cryptlet proofing services
CN112041870B (en) 2018-04-27 2024-07-05 区块链控股有限公司 Block chain network partitioning
US10986097B2 (en) 2018-04-30 2021-04-20 Bank Of America Corporation System for using a distributed ledger to manage user entitlements to computing resources
US11475419B2 (en) * 2018-04-30 2022-10-18 Robert Dale Beadles Universal subscription and cryptocurrency payment management platforms and methods of use
US20190332691A1 (en) * 2018-04-30 2019-10-31 Robert Dale Beadles Universal subscription and cryptocurrency payment management platforms and methods of use
US20190340607A1 (en) 2018-05-01 2019-11-07 Masterworks.io, LLC System for central authority-permissioned transfer of blockchain tokens
US20190340586A1 (en) 2018-05-04 2019-11-07 Smart Worldwide Financial Technology Conducting optimized cross-blockchain currency transactions using machine learning
US20210342836A1 (en) 2018-05-06 2021-11-04 Strong Force TX Portfolio 2018, LLC Systems and methods for controlling rights related to digital knowledge
US20210248514A1 (en) 2018-05-06 2021-08-12 Strong Force TX Portfolio 2018, LLC Artificial intelligence selection and configuration
US20190347628A1 (en) 2018-05-08 2019-11-14 Intangible Labs, Inc Cryptocurrency protocol with built-in intervention responsive to a cryptocurrency exchange rate
WO2019213779A1 (en) * 2018-05-10 2019-11-14 Miovision Technologies Incorporated Blockchain data exchange network and methods and systems for submitting data to and transacting data on such a network
US20220198554A1 (en) 2018-05-17 2022-06-23 Flexa Network Inc. System digital asset-backed data interaction system
US20190354607A1 (en) 2018-05-18 2019-11-21 Factom Personal Blockchain Services
US11134120B2 (en) 2018-05-18 2021-09-28 Inveniam Capital Partners, Inc. Load balancing in blockchain environments
US11170366B2 (en) 2018-05-18 2021-11-09 Inveniam Capital Partners, Inc. Private blockchain services
US10783164B2 (en) 2018-05-18 2020-09-22 Factom, Inc. Import and export in blockchain environments
US20190354606A1 (en) 2018-05-18 2019-11-21 Factom Private Cryptocoinage in Blockchain Environments
US20190361917A1 (en) * 2018-05-25 2019-11-28 Bao Tran Smart device
US11423398B1 (en) 2018-05-29 2022-08-23 Block, Inc. Recommending conditions for blockchain-enforced contracts
US10505737B1 (en) * 2018-06-04 2019-12-10 Syniverse Technologies, Llc System and method for blockchain-based consent and campaign management
WO2019237128A1 (en) * 2018-06-08 2019-12-12 Rocket Lawyer Incorporated Cryptographic contract payment and dispute resolution system
US10698743B2 (en) 2018-06-21 2020-06-30 Paypal, Inc. Shared application interface data through a device-to-device communication session
JP7262076B2 (en) 2018-06-28 2023-04-21 パナソニックIpマネジメント株式会社 Mobile robot and control method
US20200004946A1 (en) 2018-07-02 2020-01-02 Cyberark Software Ltd. Secretless and secure authentication of network resources
WO2020010159A1 (en) * 2018-07-02 2020-01-09 A7 Core, Inc. Enterprise consumer safety system
US10970685B2 (en) 2018-07-12 2021-04-06 Capital One Services, Llc Electronic funds transfers based on automatic cryptocurrency transactions
US11204939B2 (en) * 2018-07-18 2021-12-21 Bank Of America Corporation Data manifest as a blockchain service
US11216448B2 (en) * 2018-07-24 2022-01-04 Ernst & Young U.S. Llp Information storage and retrieval using an off-chain isomorphic database and a distributed ledger
US20200034571A1 (en) 2018-07-25 2020-01-30 Nicholas Andrew Fett Method for Smart Contract Data Input through a Proof-of-Work Consensus Mechanism
US20200034813A1 (en) 2018-07-30 2020-01-30 Wells Fargo Bank, N.A. Systems and methods for scheduling business-to-individual payments
US11410136B2 (en) 2018-08-01 2022-08-09 American Express Travel Related Services Company, Inc. Procurement system using blockchain
US11989208B2 (en) 2018-08-06 2024-05-21 Inveniam Capital Partners, Inc. Transactional sharding of blockchain transactions
US11044095B2 (en) 2018-08-06 2021-06-22 Factom, Inc. Debt recordation to blockchains
US11334874B2 (en) 2018-08-06 2022-05-17 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US11328290B2 (en) 2018-08-06 2022-05-10 Inveniam Capital Partners, Inc. Stable cryptocurrency coinage
US11164250B2 (en) 2018-08-06 2021-11-02 Inveniam Capital Partners, Inc. Stable cryptocurrency coinage
US10939295B1 (en) * 2018-08-21 2021-03-02 HYPR Corp. Secure mobile initiated authentications to web-services
US10764752B1 (en) 2018-08-21 2020-09-01 HYPR Corp. Secure mobile initiated authentication
US11057366B2 (en) 2018-08-21 2021-07-06 HYPR Corp. Federated identity management with decentralized computing platforms
US10762927B2 (en) 2018-08-28 2020-09-01 Motorola Solutions, Inc. Method to log audio in a distributed, immutable transaction log for end-to-end verification and auditing
US10298395B1 (en) 2018-09-26 2019-05-21 Accenture Global Solutions Limited Interoperability of zero-knowledge proof enabled blockchains
US10997159B2 (en) 2018-10-09 2021-05-04 International Business Machines Corporation Blockchain notification board storing blockchain resources
US11341451B2 (en) * 2018-10-10 2022-05-24 Questaweb Holdings Inc. Hierarchical blockchain architecture for global trade management
US10958419B2 (en) 2018-10-22 2021-03-23 Motorola Solutions, Inc. Method to establish distributed ledger networks with multiple access levels for an incident
US20200134760A1 (en) 2018-10-31 2020-04-30 Motorola Solutions, Inc Method for Weighted Voting in a Public Safety Distributed Ledger
US20200302433A1 (en) 2018-11-27 2020-09-24 Its, Inc. Distributed ledger settlement transactions
EP3559891B1 (en) 2018-11-27 2021-11-17 Advanced New Technologies Co., Ltd. Executing multi-party transactions using smart contracts
US20200175506A1 (en) 2018-12-03 2020-06-04 Factom, Inc. Conversion of Cryptocurrencies
US10826705B2 (en) 2018-12-13 2020-11-03 International Business Machines Corporation Compact state database system
DE102018010197A1 (en) 2018-12-18 2020-06-18 GRID INVENT gGmbH Electronic element and electrically controlled display element
CN110392052B (en) * 2019-07-22 2021-05-25 中国工商银行股份有限公司 Intelligent contract processing system and method for block chain
CN110599147B (en) 2019-09-17 2022-11-22 福州大学 A blockchain-based ciphertext retrieval fair payment method and system
US11444749B2 (en) 2020-01-17 2022-09-13 Inveniam Capital Partners, Inc. Separating hashing from proof-of-work in blockchain environments
CN111448565B (en) 2020-02-14 2024-04-05 支付宝(杭州)信息技术有限公司 Data authorization based on decentralised identification
WO2020098845A2 (en) 2020-03-13 2020-05-22 Alipay (Hangzhou) Information Technology Co., Ltd. Data authorization based on decentralized identifiers
CN112329041B (en) 2020-03-18 2024-01-23 支付宝(杭州)信息技术有限公司 Method and device for deploying contracts
US12008555B2 (en) 2020-04-22 2024-06-11 Atrium Separate Ip Holdings Number 4, Llc Blockchain architecture, system, method and device including a hybrid public-private iteration for facilitating secure data collection and controlled distribution using a decentralized transaction information platform and token ecosystem
CN111401903B (en) * 2020-06-03 2020-09-11 腾讯科技(深圳)有限公司 Block chain message processing method, device, computer and readable storage medium
US20220006641A1 (en) 2020-07-03 2022-01-06 Inveniam Capital Partners, Inc. Distribution of Blockchain Validation
CN112116348B (en) * 2020-08-12 2024-05-03 北京智融云河科技有限公司 Access control method for node resources
CN111857892B (en) * 2020-09-22 2020-12-18 支付宝(杭州)信息技术有限公司 Method and device for processing service through block chain
US12007972B2 (en) 2021-06-19 2024-06-11 Inveniam Capital Partners, Inc. Systems and methods for processing blockchain transactions
US12137179B2 (en) 2021-06-19 2024-11-05 Inveniam Capital Partners, Inc. Systems and methods for processing blockchain transactions

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210044426A1 (en) * 2016-06-28 2021-02-11 Amazon Technologies, Inc. Aws identity - blockchain for cloud based audit services
US20180300382A1 (en) * 2017-04-12 2018-10-18 Vijay K. Madisetti Method and System for Tuning Blockchain Scalability for Fast and Low-Cost Payment and Transaction Processing
US20190188711A1 (en) * 2017-12-19 2019-06-20 Tbcasoft, Inc. Cross-ledger transfers between distributed ledgers
US20190327081A1 (en) * 2018-04-24 2019-10-24 Duvon Corporation Autonomous exchange via entrusted ledger

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11863686B2 (en) 2017-01-30 2024-01-02 Inveniam Capital Partners, Inc. Validating authenticity of electronic documents shared via computer networks
US11580534B2 (en) 2017-03-22 2023-02-14 Inveniam Capital Partners, Inc. Auditing of electronic documents
US12192371B2 (en) 2017-04-27 2025-01-07 Inveniam Capital Partners, Inc. Artificial intelligence modifying federated learning models
US11580535B2 (en) 2018-05-18 2023-02-14 Inveniam Capital Partners, Inc. Recordation of device usage to public/private blockchains
US11587074B2 (en) 2018-05-18 2023-02-21 Inveniam Capital Partners, Inc. Recordation of device usage to blockchains
US12118541B2 (en) 2018-05-18 2024-10-15 Inveniam Capital Partners, Inc. Recordation of device usage to blockchains
US12008015B2 (en) 2018-05-18 2024-06-11 Inveniam Capital Partners, Inc. Import and export in blockchain environments
US11930072B2 (en) 2018-05-18 2024-03-12 Inveniam Capital Partners, Inc. Load balancing in blockchain environments
US11615398B2 (en) 2018-08-06 2023-03-28 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US11587069B2 (en) 2018-08-06 2023-02-21 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US11687916B2 (en) 2018-08-06 2023-06-27 Inveniam Capital Partners, Inc. Decisional architectures in blockchain environments
US11620642B2 (en) 2018-08-06 2023-04-04 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US11989208B2 (en) 2018-08-06 2024-05-21 Inveniam Capital Partners, Inc. Transactional sharding of blockchain transactions
US11531981B2 (en) 2018-08-06 2022-12-20 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US11676132B2 (en) 2018-08-06 2023-06-13 Inveniam Capital Partners, Inc. Smart contracts in blockchain environments
US11863305B2 (en) 2020-01-17 2024-01-02 Inveniam Capital Partners, Inc. RAM hashing in blockchain environments
US12225107B2 (en) 2020-01-17 2025-02-11 Inveniam Capital Partners, Inc. Separating hashing from proof-of-work in blockchain environments
US11943334B2 (en) 2020-01-17 2024-03-26 Inveniam Capital Partners, Inc. Separating hashing from proof-of-work in blockchain environments
US12008526B2 (en) 2021-03-26 2024-06-11 Inveniam Capital Partners, Inc. Computer system and method for programmatic collateralization services
US12007972B2 (en) 2021-06-19 2024-06-11 Inveniam Capital Partners, Inc. Systems and methods for processing blockchain transactions
US12137179B2 (en) 2021-06-19 2024-11-05 Inveniam Capital Partners, Inc. Systems and methods for processing blockchain transactions
US12120252B2 (en) * 2021-08-05 2024-10-15 Artema Labs, Inc Methods for securely adding data to a blockchain using dynamic time quanta and version authentication
US20230043223A1 (en) * 2021-08-05 2023-02-09 Artema Labs, Inc Methods for Securely Adding Data to a Blockchain Using Dynamic Time Quanta and Version Authentication
US20230117344A1 (en) * 2021-10-20 2023-04-20 Goldman Sachs & Co. LLC Pseudonymous transactions on blockchains compliant with know your customer regulations and reporting requirements
US12229775B2 (en) * 2022-10-20 2025-02-18 Goldman Sachs &Co. LLC Pseudonymous transactions on blockchains compliant with know your customer regulations and reporting requirements
US12231566B2 (en) 2022-11-06 2025-02-18 Inveniam Capital Partners, Inc. Apparatus and methods for producing data structures having internal self-references suitable for immutably representing and verifying data
US12231535B2 (en) 2023-12-14 2025-02-18 Inveniam Capital Partners, Inc. RAM hashing in blockchain environments

Also Published As

Publication number Publication date
US20200042985A1 (en) 2020-02-06
US20200042986A1 (en) 2020-02-06
US11615398B2 (en) 2023-03-28
US20220034004A1 (en) 2022-02-03
US11687916B2 (en) 2023-06-27
US20200044857A1 (en) 2020-02-06
US11620642B2 (en) 2023-04-04
US11531981B2 (en) 2022-12-20
US11205172B2 (en) 2021-12-21
US20220027893A1 (en) 2022-01-27
US20200042987A1 (en) 2020-02-06
US20220020001A1 (en) 2022-01-20
US20200042984A1 (en) 2020-02-06
US11334874B2 (en) 2022-05-17
US20200042990A1 (en) 2020-02-06
US11587069B2 (en) 2023-02-21
US11042871B2 (en) 2021-06-22
US20200042983A1 (en) 2020-02-06
US20200044827A1 (en) 2020-02-06
US11348097B2 (en) 2022-05-31
US11676132B2 (en) 2023-06-13
US20200320514A1 (en) 2020-10-08
US11295296B2 (en) 2022-04-05
US20210272103A1 (en) 2021-09-02
US20220372673A9 (en) 2022-11-24
US20200042982A1 (en) 2020-02-06
US11276056B2 (en) 2022-03-15
US11348098B2 (en) 2022-05-31

Similar Documents

Publication Publication Date Title
US20220058622A1 (en) Protocols in Blockchain Environments
Niranjanamurthy et al. Analysis of Blockchain technology: pros, cons and SWOT
Jani Smart contracts: Building blocks for digital transformation
US20220036323A1 (en) Electronic wallet allowing virtual currency expiration date
Snow et al. Business processes secured by immutable audit trails on the blockchain
Pouwelse et al. Laws for creating trust in the blockchain age
Cai et al. Introduction to blockchain basics
Bruschi et al. Tunneling trust into the blockchain: a merkle based proof system for structured documents
Fikri et al. A blockchain architecture for trusted sub-ledger operations and financial audit using decentralized microservices
Hefny et al. Open banking api framework to improve the online transaction between local banks in egypt using blockchain technology
Lokshina et al. Revisiting state-of-the-art applications of the blockchain technology: analysis of unresolved issues and potential development
Li et al. A fair, verifiable and privacy-protecting data outsourcing transaction scheme based on smart contracts
US20210233104A1 (en) Product exploration-based promotion
Ojha et al. Distributed Ledger Technology: Use Cases, Design, and Implementation Issues
Rani et al. Blockchain and Its Integration with the Internet of Things: Applications and Challenges
Rayes et al. The Blockchain in IoT
CA3161370A1 (en) Fiat payment based on a cryptocurrency blockchain transaction
CA3160854A1 (en) Cryptocurrency payment based on a canceled fiat transaction
Soldner Examining and Evaluating Potential Blockchain Applications in Manufacturing and R&D
CA3166169A1 (en) Crypto-bridge for automating recipient decision on crypto transactions
Colette et al. Use of the blockchain to ensure cloud data integrity in the frame of renewable energy communities

Legal Events

Date Code Title Description
AS Assignment

Owner name: INVENIAM CAPITAL PARTNERS, INC., NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FACTOM, INC.;REEL/FRAME:058121/0106

Effective date: 20210604

Owner name: FACTOM, INC., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SNOW, PAUL;REEL/FRAME:058121/0090

Effective date: 20191029

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: 1221 INVENIAM LLC, FLORIDA

Free format text: SECURITY INTEREST;ASSIGNOR:INVENIAM CAPITAL PARTNERS, INC.;REEL/FRAME:067932/0074

Effective date: 20231020