US20230245110A1 - Multi-Tenant Node on a Private Network of Distributed, Auditable, and Immutable Databases - Google Patents
Multi-Tenant Node on a Private Network of Distributed, Auditable, and Immutable Databases Download PDFInfo
- Publication number
- US20230245110A1 US20230245110A1 US18/167,443 US202318167443A US2023245110A1 US 20230245110 A1 US20230245110 A1 US 20230245110A1 US 202318167443 A US202318167443 A US 202318167443A US 2023245110 A1 US2023245110 A1 US 2023245110A1
- Authority
- US
- United States
- Prior art keywords
- record
- resource
- temporary
- approve
- authorized
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000004891 communication Methods 0.000 claims description 53
- 238000000034 method Methods 0.000 claims description 50
- 230000015654 memory Effects 0.000 claims description 22
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000005259 measurement Methods 0.000 claims description 3
- 230000008520 organization Effects 0.000 abstract description 28
- 238000005516 engineering process Methods 0.000 abstract description 26
- 238000012795 verification Methods 0.000 abstract description 26
- 238000013475 authorization Methods 0.000 abstract 2
- 239000000126 substance Substances 0.000 description 35
- 238000004458 analytical method Methods 0.000 description 33
- 230000006870 function Effects 0.000 description 27
- 238000010801 machine learning Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 25
- 230000007613 environmental effect Effects 0.000 description 24
- 239000003208 petroleum Substances 0.000 description 20
- 150000001875 compounds Chemical class 0.000 description 19
- 230000008859 change Effects 0.000 description 16
- 238000012552 review Methods 0.000 description 14
- 230000004044 response Effects 0.000 description 13
- 238000013473 artificial intelligence Methods 0.000 description 11
- 239000000203 mixture Substances 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 239000000463 material Substances 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 238000002144 chemical decomposition reaction Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 7
- 238000003786 synthesis reaction Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- ZQVMTYNYYKCYRF-UHFFFAOYSA-N diazanium hydron trisulfate Chemical compound [H+].[H+].[H+].[H+].[NH4+].[NH4+].[O-]S([O-])(=O)=O.[O-]S([O-])(=O)=O.[O-]S([O-])(=O)=O ZQVMTYNYYKCYRF-UHFFFAOYSA-N 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 5
- WQZGKKKJIJFFOK-GASJEMHNSA-N Glucose Natural products OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O WQZGKKKJIJFFOK-GASJEMHNSA-N 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 239000000446 fuel Substances 0.000 description 4
- 239000008103 glucose Substances 0.000 description 4
- 238000003058 natural language processing Methods 0.000 description 4
- 239000003305 oil spill Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000003442 weekly effect Effects 0.000 description 4
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 3
- 229910052799 carbon Inorganic materials 0.000 description 3
- 239000003921 oil Substances 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 239000000654 additive Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000003245 coal Substances 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000004374 forensic analysis Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003647 oxidation Effects 0.000 description 2
- 238000007254 oxidation reaction Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000003755 preservative agent Substances 0.000 description 2
- 239000002994 raw material Substances 0.000 description 2
- 230000009257 reactivity Effects 0.000 description 2
- 238000004062 sedimentation Methods 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- LKDRXBCSQODPBY-VRPWFDPXSA-N D-fructopyranose Chemical compound OCC1(O)OC[C@@H](O)[C@@H](O)[C@@H]1O LKDRXBCSQODPBY-VRPWFDPXSA-N 0.000 description 1
- WSFSSNUMVMOOMR-UHFFFAOYSA-N Formaldehyde Chemical compound O=C WSFSSNUMVMOOMR-UHFFFAOYSA-N 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000009835 boiling Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004587 chromatography analysis Methods 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- -1 for example Substances 0.000 description 1
- 235000019256 formaldehyde Nutrition 0.000 description 1
- 239000007789 gas Substances 0.000 description 1
- 238000002290 gas chromatography-mass spectrometry Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 229910052500 inorganic mineral Inorganic materials 0.000 description 1
- 238000004895 liquid chromatography mass spectrometry Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000004949 mass spectrometry Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 150000002739 metals Chemical class 0.000 description 1
- 239000011707 mineral Substances 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000005293 physical law Methods 0.000 description 1
- 239000004033 plastic Substances 0.000 description 1
- 229920003023 plastic Polymers 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 230000036561 sun exposure Effects 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01N—INVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
- G01N31/00—Investigating or analysing non-biological materials by the use of the chemical methods specified in the subgroup; Apparatus specially adapted for such methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/08—Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, 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/401—Transaction verification
- G06Q20/4014—Identity check for transactions
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16C—COMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
- G16C20/00—Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
- G16C20/20—Identification of molecular entities, parts thereof or of chemical compositions
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16C—COMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
- G16C20/00—Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
- G16C20/30—Prediction of properties of chemical compounds, compositions or mixtures
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16C—COMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
- G16C20/00—Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
- G16C20/70—Machine learning, data mining or chemometrics
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16C—COMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
- G16C20/00—Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
- G16C20/90—Programming languages; Computing architectures; Database systems; Data warehousing
Definitions
- aspects of the disclosure generally relate to ledgers and, more specifically to writing and updating data and/or information contained in the ledger.
- resources e.g., oil, coal, petroleum, chemicals, etc.
- resources may evolve, degrade, or otherwise change over their lifecycle.
- the present disclosure describes a technology platform that authenticates relationships across a resource's lifecycle, digitally verifies data from shared sources, validates compliance, and identifies potential fraud.
- the technology platform described herein tracks a resource's lifecycle from when the resource is harvested, extracted, mined, or otherwise sourced, to the point where the resource is destroyed and/or sequestered.
- the technology platform makes use of a ledger (e.g., blockchain, database, immutable database, etc.) to record, update, verify, and validate the resource and any changes that occur to the resource throughout its lifecycle. This provides an immutable record of the resource that allows third parties to comply with regional, national, and/or global regulations related to the resource.
- a ledger e.g., blockchain, database, immutable database, etc.
- the technology platform described herein may also comprise an artificial intelligence component.
- the artificial intelligence component may comprise one or more machine learning models configured to review and/or analyze (e.g., identify and/or extract) the records stored in the ledger.
- the artificial intelligence component may identify the parties and/or processes through analysis of the known or accessible data of the ledger.
- the artificial intelligence component may identify the parties and/or processes via the understood behaviors and physical laws of the resources and/or business process flows.
- the artificial intelligence component may also authenticate relationships across a resource's lifecycle, digitally verify data from shared sources, validate compliance with laws and regulations, derive and produce valuable results (e.g., information), and/or identify potential fraud.
- the technology platform may generate one or more electronic communications, notifications, alerts, etc.
- the artificial intelligence component may be able to provide full transparency into every touchpoint associated with the resource. By having full transparency into every touchpoint, risk associated with the resource may be reduced, which may reduce costs and/or the environmental impact of the resource.
- FIGS. 1 A- 1 B show an example of a system for writing and updating data and/or information to a ledger in accordance with one or more aspects of the disclosure
- FIG. 2 shows an example of a computing device in accordance with one or more aspects of the disclosure
- FIG. 3 shows an example of creating a digital representation of a resource in accordance with one or more aspects of the disclosure
- FIG. 4 shows an example of updating a digital representation of a resource in response to a custodial or environmental event according to one or more aspects of the disclosure
- FIG. 5 shows an example of the recursive analysis in accordance with one or more aspects of the disclosure
- FIG. 6 shows an example of a process of creating a record in accordance with one or more aspects of the disclosure
- FIG. 7 shows an example of a process for verifying a record in accordance with one or more aspects of the disclosure.
- FIG. 8 shows an example of a process of writing a record to a ledger in accordance with one or more aspects of the disclosure.
- aspects discussed herein may describe a technology platform that authenticates relationships across a resource's lifecycle, digitally verifies data from shared sources, validates compliance, and/or identifies potential fraud.
- a record of an asset may be created on a ledger (e.g., blockchain, database, immutable database, etc.), for example, when the resource is harvested, mined, extracted, first recovered, or sourced.
- the ledger may be associated with one or more special nodes that host the other ledger(s) information and/or interoperation, for example, as a private ledger, a public ledger, or a hybrid ledger.
- the one or more special nodes may then act as a proxy (e.g., proxy node) on behalf of one or more tenant organizations to commit (e.g., write) the record to the ledger or ledgers.
- a tenant organization may comprise one or more users that create the record.
- the tenant organization may create the record and append an extra signed metadata field to the record to be written.
- the combination of the record and the metadata field may be referred to as temporary record or a cloned record.
- the temporary record may be provided to the proxy node, which may send a communication (e.g., digital message, application programmable interface (API) call, file input, asynchronous data communication, synchronous communication, email communication, push notification, etc.) to the other users of the tenant organization.
- the other users (including computing systems) of the tenant organization may verify (or deny) the temporary record. If a consensus of the other users verifies the temporary record, the proxy node may sign the record and write the record to the ledger (e.g., private ledger, public ledger, or hybrid ledger).
- the technology platform described herein creates a local permission system within a global permission system of the entirety of the ledger.
- the resource may comprise a raw material or primary agricultural product.
- the raw material may be petroleum, coal, oil, chemicals (e.g., such as those used in pharmaceuticals), minerals, metals, or any other fungible resource. It will be appreciated that the lifecycle of any resource may be tracked. The lifecycle of the resource, as shown in FIG.
- FIG. 1 A shows a quantity of containers and/or locations (e.g., offshore derricks, boats, containers, storage tanks, factories, trucks, gas stations, cars) that store the resource at different stages of transportation and/or distribution of the resource and a weight and/or quantity of the resource for each of the containers.
- containers and/or locations e.g., offshore derricks, boats, containers, storage tanks, factories, trucks, gas stations, cars
- 900,000,000 kilograms (kg) of petroleum may be extracted at the outset.
- a first record of the 900,000,000 kg of petroleum may be created and stored in a ledger.
- the first record may comprise data and/or information about the 900,000,000 kg of petroleum, including, for example, chemical properties, elemental properties, elemental components, parametric properties, and/or molecular properties of the petroleum, where the petroleum was extracted (e.g., location information), when the petroleum was extracted (e.g., date/time information), etc.
- the 900,000,000 kg of petroleum may be shipped, for example, from an offshore derrick to a port via a ship.
- a second record may be created.
- the second record may comprise data and/or information, such as an origin of the petroleum, a destination of the petroleum, a shipping route of the petroleum, a length of transit from the origin to the destination, weather conditions at the origin, weather conditions at the destination, weather conditions via the shipping route during the length of transit, etc., in addition to the information discussed above.
- one or more applications associated with the technology platform described herein may analyze the data and/or information contained in the second record to determine if any changes occurred to the petroleum (e.g., resource) in transit. If the properties of the petroleum changed while en route, the application may cause a new record to be generated to update the properties of the petroleum. This process may be repeated as the petroleum is shipped by rail and/or truck to a refinery and then distributed to one or more retailers, until the petroleum is consumed (e.g., burned as fuel) or sequestered (e.g., used to manufacture plastics).
- FIG. 1 B shows an example of a system 100 comprising a first server 110 , a first entity 120 , a second entity 130 , and a ledger 140 interconnected via a network 150 .
- Server 110 may be any server capable of executing application 112 .
- server 110 may be a stand-alone server, a corporate server, or a server located in a server farm or cloud-computer environment.
- server 110 may be a virtual server hosted on hardware capable of supporting a plurality of virtual servers.
- server 110 may execute application 112 .
- Application 112 may be server-based software configured to provide or execute a technology platform that authenticates relationships across a resource's lifecycle, digitally verifies data from shared sources, validates compliance, and/or identifies potential fraud.
- Application 112 may allow one or more tenant organizations to register with the technology platform.
- a tenant organization may comprise one or more users that create the record to be stored on a ledger, as described in greater detail below with respect to FIG. 6 .
- a tenant organization may be a legal or juristic entity that touches, or otherwise comes into contact, with a resource during the resource's lifecycle.
- the application 112 may receive a record to be written to a ledger, such as the ledger 140 , from a computing device associated with a first device associated with the tenant organization.
- the record may comprise a unique code and a transaction identification.
- the transaction identifier may indicate a transaction associated with the record.
- the record may also comprise one or more identifiers associated with one or more second users who are authorized to approve the record.
- the identifiers may comprise a phone number (e.g., cell phone number), email address, a username, etc. Additionally or alternatively, the record may comprise a different unique code for each of a plurality of approving devices (e.g., devices associated with users authorized to review the record).
- the application 112 may notify the one or more second users of the tenant organization that the one or more second users have a record for their review. The notification may be sent via an electronic communication, such as digital message, API call, file input, asynchronous data communication, synchronous communication, email communication, push notification, etc.
- the notification may comprise the unique code and the transaction identifier.
- the application 112 may receive one or more verifications of the unique code and the transaction identifier from the one or more second users.
- the application 112 may write (e.g., commit) the record to the ledger (e.g., ledger 140 ).
- the application 112 may sign the record prior to writing the record to the ledger.
- the application 112 may act as a proxy node to create a local permission system within a global permission system of the ledger.
- the application 112 may execute a private ledger that allows the record to be validated by the one or more second users. After the record is validated, the application 112 may write (e.g., commit) the record to a public ledger.
- the private ledger and public ledger may form a hybrid ledger accessible by third parties.
- the application 112 may comprise logic that reads and/or writes to the network and/or the ledger 140 .
- the logic may comprise a chemical analysis component that analyzes the chemical composition of the resource, for example, using the process shown in FIGS. 3 - 5 and described below.
- the logic may consider a variety of factors to determine whether the chemical composition of the resource has changed.
- Such logic may be comprised of designed algorithms, machine learning algorithms, or machine learning/artificial intelligence algorithms which are derived from human composed algorithms.
- the variety of factors may comprise one or more of time, temperature, changes in temperature, sedimentation, humidity, light exposure, oxidation, etc. If the chemical composition of the resource has changed, the application 112 may create a new record for the resource that indicates the change to the resource.
- the chemical composition logic may run periodically (e.g., hourly, daily, weekly, monthly, etc.). Additionally or alternatively, the chemical composition logic may generate an alert, for example, if the change in the chemical composition of the resource presents a danger (e.g., health risk, fire risk, etc.).
- the application 112 may invoke one or more smart contracts on the ledger 140 .
- the one or more smart contracts may record a new record on the ledger 140 or change an existing record on the ledger 140 .
- the application 112 may also comprise artificial intelligence.
- the artificial intelligence may comprise one or more machine learning models.
- the one or more machine learning models may comprise a neural network, such as a convolutional neural network (CNN), a recurrent neural network, a recursive neural network, a long short-term memory (LSTM), a gated recurrent unit (GRU), an unsupervised pre-trained network, a space invariant artificial neural network, a generative adversarial network (GAN), or a consistent adversarial network (CAN), such as a cyclic generative adversarial network (C-GAN), a deep convolutional GAN (DC-GAN), GAN interpolation (GAN-INT), GAN-CLS, a cyclic-CAN (e.g., C-CAN), or any equivalent thereof.
- the machine learning model may comprise one or more decisions trees.
- the artificial intelligence may be trained to review and/or analyze (e.g., extract) the records stored in the ledger to identify the parties and/or processes, identify relationships between various resources and/or data stored in the ledger, authenticate relationships across a resource's lifecycle, digitally verify data from shared sources, validate compliance with laws and regulations, and/or identify potential fraud.
- the one or more machine learning models may be trained using supervised learning, unsupervised learning, back propagation, transfer learning, stochastic gradient descent, learning rate decay, dropout, max pooling, batch normalization, long short-term memory, skip-gram, or any equivalent deep learning technique. Once the one or more machine learning models are trained, the one or more machine learning models may be exported and/or deployed in application 112 . The application 112 may then analyze and/or review the records in the ledger (such as a blockchain) to reduce the risk associated with one or more resources.
- First device 120 may be any device associated with a tenant organization.
- First device 120 may be a mobile device, such as a cellular phone, a mobile phone, a smart phone, a tablet, a laptop, or an equivalent thereof. Additionally or alternatively, first device 120 may comprise a desktop computer or, alternatively, a virtual computer.
- First device 120 may provide a first user, associated with a tenant organization, with access to various applications and/or services. For example, first device 120 may provide the first user with access to the Internet. Additionally, first device 120 may provide the first user with one or more applications (“apps”) located thereon. The one or more applications may provide the first user with a plurality of tools and access to a variety of services. In some examples, the one or more applications may include an application 122 .
- Application 122 may be a client-based application corresponding to the application 112 .
- the application 122 may create a record to write to the ledger, for example, as discussed in greater detail below with respect to FIG. 6 .
- the application 122 may flag the record as temporary.
- the application 122 may add metadata to the record.
- the metadata may comprise the unique code, the transaction identifier, and/or the one or more second users designated to approve the record.
- the application 122 may obfuscate and/or encrypt the metadata.
- the application 122 may send the record, flagged as temporary, to the server 110 .
- the server may then send the record to the one or more second users identified in the metadata so that the one or more second users can verify (or deny) the record.
- the application 122 may receive an indication of one or more records that require review.
- the first device 120 and/or the application 122 may receive a unique code and a transaction identifier of a record that requires review.
- the application 122 may retrieve the record, for example, using the transaction identifier.
- the record may be retrieved from the server 110 , the application 112 , a private ledger (e.g., database) (not shown), the ledger 140 , or any combination thereof.
- the first device 120 e.g., application 122 executing on first device 120
- the application 122 may provide a notification to the server 110 (e.g., the application 112 executing on the server 110 ) that the record is verified. Similarly, if the codes do not match, the application 122 may provide a notification to the server 110 (e.g., the application 112 executing on the server 110 ) that the record is not verified. As noted above, the application 112 may track the verifications and, if a consensus (e.g., a predetermined number of approving devices) is reached, write the record to the ledger 140 . Additionally or alternatively, the application 122 may invoke one or more smart contracts to record a new record on the ledger 140 or change an existing record on the ledger 140 .
- a consensus e.g., a predetermined number of approving devices
- the second device 130 may be another device associated with the tenant organization.
- the second device 130 may be any of the devices discussed above with respect to the first device 120 .
- the second device 130 may execute application 132 , which may provide similar functionality to the functionality described above with respect to the application 122 .
- the ledger 140 may be any suitable ledger.
- the ledger 140 may comprise a public blockchain, a private blockchain, a hybrid blockchain, a distributed database, an immutable database, a distributed ledger, etc.
- the ledger 140 may store the records associated with the one or more resources. Additionally or alternatively, the ledger 140 may store the one or more smart contracts referred to herein.
- the ledger 140 may be a declarable blockchain. Additionally or alternatively, the ledger 140 may be a discoverable blockchain, wherein interrelationships between blocks of data stored in the ledger 140 may be identified, for example, using recursive analysis of the blocks stored in ledger 140 .
- the recursive analysis may allow computing devices to perform a forensic analysis of the data contained in the blocks. The forensic analysis may help to identify the source of a resource and/or how the resource has changed or been modified since the resource was originally extracted.
- Network 150 may include any type of network.
- the network 150 may include the Internet, a local area network (LAN), a wide area network (WAN), a wireless telecommunications network, and/or any other communication network or combination thereof.
- LAN local area network
- WAN wide area network
- wireless telecommunications network and/or any other communication network or combination thereof.
- the network connections shown are illustrative and any means of establishing a communications link between the computers may be used.
- the existence of any of various network protocols such as TCP/IP, Ethernet, FTP, HTTP and the like, and of various wireless communication technologies such as GSM, CDMA, WiFi, and LTE, is presumed, and the various computing devices described herein may be configured to communicate using any of these network protocols or technologies.
- the data transferred to and from various computing devices in system 100 may include secure and sensitive data, such as confidential documents, customer personally identifiable information, and account data. Therefore, it may be desirable to protect transmissions of such data using secure network protocols and encryption, and/or to protect the integrity of the data when stored on the various computing devices.
- a file-based integration scheme or a service-based integration scheme may be utilized for transmitting data between the various computing devices.
- Data may be transmitted using various network communication protocols.
- Secure data transmission protocols and/or encryption may be used in file transfers to protect the integrity of the data, for example, File Transfer Protocol (FTP), Secure File Transfer Protocol (SFTP), and/or Pretty Good Privacy (PGP) encryption.
- FTP File Transfer Protocol
- SFTP Secure File Transfer Protocol
- PGP Pretty Good Privacy
- one or more web services may be implemented within the various computing devices.
- Web services may be accessed by authorized external devices and users to support input, extraction, and manipulation of data between the various computing devices in the system 100 .
- Web services built to support a personalized display system may be cross-domain and/or cross-platform, and may be built for enterprise use. Data may be transmitted using the Secure Sockets Layer (SSL) or Transport Layer Security (TLS) protocol to provide secure connections between the computing devices.
- Web services may be implemented using the WS-Security standard, providing for secure SOAP messages using XML encryption.
- Specialized hardware may be used to provide secure web services.
- secure network appliances may include built-in features such as hardware-accelerated SSL and HTTPS, WS-Security, and/or firewalls.
- Such specialized hardware may be installed and configured in system 100 in front of one or more computing devices such that any external devices may communicate directly with the specialized hardware.
- the computing device 200 may comprise a processor 203 for controlling overall operation of the computing device 200 and its associated components, including RAM 205 , ROM 207 , input/output device 209 , accelerometer 211 , global-position system antenna 213 , memory 215 , and/or communication interface 223 .
- a bus 202 may interconnect processor(s) 203 , RAM 205 , ROM 207 , memory 215 , I/O device 209 , accelerometer 211 , global-position system receiver/antenna 213 , memory 215 , and/or communication interface 223 .
- Computing device 200 may represent, be incorporated in, and/or comprise various devices such as a desktop computer, a computer server, a gateway, a mobile device, such as a laptop computer, a tablet computer, a smart phone, any other types of mobile computing devices, and the like, and/or any other type of data processing device.
- I/O device 209 may comprise a microphone, keypad, touch screen, and/or stylus through which a user of the computing device 200 may provide input, and may also comprise one or more of a speaker for providing audio output and a video display device for providing textual, audiovisual, and/or graphical output.
- Software may be stored within memory 215 to provide instructions to processor 203 allowing computing device 200 to perform various actions.
- memory 215 may store software used by the computing device 200 , such as an operating system 217 , application programs 219 , and/or an associated internal database 221 .
- the various hardware memory units in memory 215 may comprise volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data.
- Memory 215 may comprise one or more physical persistent memory devices and/or one or more non-persistent memory devices.
- Memory 215 may comprise random access memory (RAM) 205 , read only memory (ROM) 207 , electronically erasable programmable read only memory (EEPROM), flash memory or other memory technology, optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store the desired information and that may be accessed by processor 203 .
- Accelerometer 211 may be a sensor configured to measure accelerating forces of computing device 200 .
- Accelerometer 211 may be an electromechanical device. Accelerometer may be used to measure the tilting motion and/or orientation computing device 200 , movement of computing device 200 , and/or vibrations of computing device 200 . The acceleration forces may be transmitted to the processor to process the acceleration forces and determine the state of computing device 200 .
- GPS receiver/antenna 213 may be configured to receive one or more signals from one or more global positioning satellites to determine a geographic location of computing device 200 .
- the geographic location provided by GPS receiver/antenna 213 may be used for navigation, tracking, and positioning applications. In this regard, the geographic may also include places and routes frequented by the first user.
- Communication interface 223 may comprise one or more transceivers, digital signal processors, and/or additional circuitry and software, protocol stack, and/or network stack for communicating via any network, wired or wireless, using any protocol as described herein.
- Processor 203 may comprise a single central processing unit (CPU), which may be a single-core or multi-core processor, or may comprise multiple CPUs. Processor(s) 203 and associated components may allow the computing device 200 to execute a series of computer-readable instructions (e.g., instructions stored in RAM 205 , ROM 207 , memory 215 , and/or other memory of computing device 215 , and/or in other memory) to perform some or all of the processes described herein. Although not shown in FIG.
- CPU central processing unit
- Processor(s) 203 and associated components may allow the computing device 200 to execute a series of computer-readable instructions (e.g., instructions stored in RAM 205 , ROM 207 , memory 215 , and/or other memory of computing device 215 , and/or in other memory) to perform some or all of the processes described herein.
- various elements within memory 215 or other components in computing device 200 may comprise one or more caches, for example, CPU caches used by the processor 203 , page caches used by the operating system 217 , disk caches of a hard drive, and/or database caches used to cache content from database 221 .
- a CPU cache may be used by one or more processors 203 to reduce memory latency and access time.
- a processor 203 may retrieve data from or write data to the CPU cache rather than reading/writing to memory 215 , which may improve the speed of these operations.
- a database cache may be created in which certain data from a database 221 is cached in a separate smaller database in a memory separate from the database, such as in RAM 205 or on a separate computing device.
- a database cache on an application server may reduce data retrieval and data manipulation time by not needing to communicate over a network with a back-end database server.
- These types of caches and others may provide potential advantages in certain implementations of devices, systems, and methods described herein, such as faster response times and less dependence on network conditions when transmitting and receiving data.
- computing device 200 Although various components of computing device 200 are described separately, functionality of the various components may be combined and/or performed by a single component and/or multiple computing devices in communication without departing from the disclosure.
- FIG. 3 shows an example of creating a digital representation of a resource in accordance with one or more aspects of the disclosure. Some or all of the steps of process 300 may be performed using one or more computing devices as described herein, including, for example, the server 110 , the first device 120 , the second device, the computing device 200 , or any combination thereof.
- a sample of a resource may be obtained.
- the sample may be a physical sample of the resource.
- the sample may be petroleum.
- the sample may be obtained at any of the points illustrated in FIG. 1 A .
- a first sample may be obtained when the petroleum is extracted at the derrick and a second sample may be obtained when the petroleum is loaded onto a ship.
- the sample may be a core sample obtained, for example, during mining operations.
- the sample may be sent to a laboratory or processing site for further analysis as shown in step 310 .
- the analysis may be used to determine one or more chemical properties, elemental properties, elemental components, parametric components, and/or molecular components associated with the sample.
- the analysis techniques may include chromatography and/or mass spectrometry analysis.
- the analysis techniques include gas chromatography-mass spectrometry (GC-MS), liquid chromatography-mass spectrometry (LC-MS), or any equivalent analysis methodology thereof.
- the analysis may warrant a secondary analysis of the sample, for example, if errors are detected or the results are not clear.
- a report may be prepared indicating one or more chemical properties, elemental properties, elemental components, parametric components, and/or molecular components associated with the sample.
- a computing device may receive the report.
- the report may include an indication of one or more chemical properties, elemental properties, elemental components, parametric components, and/or molecular components associated with the resource.
- the report may include a molecular descriptor for each molecule and/or compound found in the resource, a percentage of each molecular descriptor, a density of each molecular descriptor, and/or any other pertinent information obtained as a result of the analysis performed in step 310 .
- the molecular descriptor may be in the form of a molecular formula, an empirical formula, a Simplified Molecular Input Line Entry System (SMILES), or a structural formula.
- SILES Simplified Molecular Input Line Entry System
- the molecular formula may represent the elemental components, and their respective number of atoms, that form a single molecule.
- the molecular formula for glucose is: C 6 H 12 O 6 .
- the empirical formula may represent the elemental components and their ratio of atoms that form a single molecule.
- the empirical formula for glucose is: CH2O.
- the SMILES representation may represent the elemental components in the order they pair, with the strength of the atomic bond (e.g., ionic, protonic) represented, and/or their bonding structure (such as rings, arrays, etc.).
- the SMILES representation for glucose is: OC[C@@H](O1)[C@@H](O)[C@H](O)[C@@H](O)[C@H](O)1.
- the structural formula may describe the elemental components and/or their bonds. Additionally, the structural formula may describe the atomic distance and/or angle of atoms to one another. Variations of the structural formula may allow for more data to be visually derived, such as ionic and/or protonic attraction or strength, including chemical state.
- the structural formula for glucose may be represented as:
- the computing device may analyze the report.
- the report may be analyzed using one or more natural language processing algorithms.
- the one or more natural language processing algorithms may identify a chemical descriptor associated with the molecular descriptor.
- a chemical descriptor which may be used interchangeably with compound descriptor, may be a composite of one or more molecular descriptors contained in the report.
- individual molecules may be segregated from one another by a separator, such as a comma, plus sign, bar, etc., and the entire compound may be identified as a unit via a compound separator, such as a bracket, quotation marks, double bars, etc.
- the one or more natural language processing algorithms may identify the chemical descriptor, for example, based on the molecular descriptors contained therein, the separators, and/or the compound separators. Additionally, the one or more natural language processing algorithms may determine additional information contained in the report, such as a percentage of each molecular descriptor, a density of each molecular descriptor, and/or any other relevant information. Based on the analysis, the computing device may identify data and/or information associated with the resource. Additionally, the computing device may identify gaps (e.g., missing data and/or information) in the report.
- the computing device may query a database to determine additional information associated with the chemical descriptor, in step 325 .
- the database may be a chemistry knowledgebase.
- the chemistry knowledgebase may include an atomic weight, atomic details, magnetic bonding, electrical bonding, compound information, reactivity information, statefulness, and/or environmental behavior. Accordingly, the computing device may query the database (e.g., chemistry knowledgebase) to fill in the identified gaps.
- the chemistry knowledgebase may also include behavioral components, such as the boiling point of certain compounds. The behavior components may be known and/or discoverable properties of elements and compounds and complex compounds.
- the computing device may determine a molecular density and/or atomic bonding for the chemical descriptor.
- the molecular density and/or atomic bonding may be determined using one or more machine learning models.
- the one or more machine learning models may comprise a neural network, such as a CNN, a recurrent neural network, a recursive neural network, a LSTM, a GRU, an unsupervised pre-trained network, a space invariant artificial neural network, a GAN, or a CAN, such as C-GAN, DC-GAN, GAN-INT, GAN-CLS, C-CAN, or any equivalent thereof.
- the one or more machine learning model may comprise one or more decisions trees.
- the one or more machine learning models may be trained to determine the molecular density and/or atomic bonding, for example, based on the data and/or information contained in the report, as well as the additional information obtained from the database (e.g., chemistry knowledgebase).
- the computing device may generate a plurality of probabilistic outcomes for the resource.
- the plurality of probabilistic outcomes may be generated using one or more machine learning models, which may be the same machine learning models used to determine the molecular density and/or atomic bonding, Alternatively, one or more second machine learning models, different from those used to determine the molecular density and/or atomic bonding, may be used to determine the plurality of probabilistic outcomes.
- the plurality of probabilistic outcomes may be based on the information contained in the report, the additional information obtained from the database (e.g., chemistry knowledgebase), the molecular density, and/or the atomic bonding.
- the one or more machine learning models may determine a likelihood percentage for each of the plurality of probabilistic outcomes.
- the one or more machine learning models may identify a probability that the resource is the chemical compound associated with the probabilistic outcome.
- the computing device may select a first probabilistic outcome as being representative of the resource. The selection may be based on the likelihood percentage associated with each of the plurality of probabilistic outcome. For example, the selection may be based on the highest likelihood percentage. Additionally or alternatively, the selection may be based on the likelihood percentage satisfying a predetermined threshold.
- the computing device may transmit the plurality of probabilistic outcomes to a second computing device and receive a selection of the probabilistic outcome from the second computing device.
- the computing device may send the selection of the first probabilistic outcome to a second computing device (e.g., a client device) with a request to verify the selection.
- the computing device may receive verification that the selection of the first probabilistic outcome was accurate (e.g., correct). It will be appreciated that step 345 may be skipped in some examples.
- the computing device may generate a data object to represent a molecular composition of the resource, for example, based on a selection of the first probabilistic outcome.
- the data object may be a chemical digital twin of the resource.
- a “chemical digital twin” is a data object that represents the resource's molecular composition at the state and/or time the sample was taken.
- the chemical digital twin may be an artificially-intelligent generated compound descriptor, as well as the data extracted and/or derived from the source information and/or the sample analysis.
- the computing device may take what is known about the resource, the additional information obtained from a knowledgebase, and the possible outcomes of the resource to create a digital twin of the resource.
- this digital twin may allow computing devices to track the evolution of a resource throughout its lifecycle.
- This evolution may include changes that occur as a result of environmental conditions, such as time, temperature, humidity, sun exposure, etc. Additionally or alternatively, this evolution may occur as a result of custodial actions taken by the owner of the resource.
- the changes in the resource may occur due to preservatives and/or additives being introduced to the resource.
- changes in the resource may occur during transfer of ownership when the resource is mixed with residual compounds, such as those found in a storage tank or a fuel barge.
- residual compounds such as those found in a storage tank or a fuel barge.
- the computing device may store the data object in a data store.
- the data store may be a database, a data warehouse, a data lake, or a ledger, such as the ledger 140 discussed above with respect to FIG. 1 B .
- a computing device may compare the data object to a plurality of data objects stored in the distributed ledger to determine whether the data object is related to any of the plurality of data objects. That is, the computing device may analyze the data object to determine whether the data object is related to any of the plurality of other data objects. This analysis may help determine the resource's origin, source, and/or history (e.g., whether the data object is derivative of another data object).
- the computing device may identify any potential relationships between the data objects in the data store and the probabilities associated with each potential relationship. The potential relationships and their associated probabilities may then be recorded. Furthermore, this analysis may determine the evolution of a resource as it progresses through its lifecycle.
- FIG. 4 shows an example of updating a digital representation of a resource in response to a custodial or environmental event according to one or more aspects of the disclosure.
- Some or all of the steps of process 400 may be performed using one or more computing devices as described herein, including, for example, the server 110 , the first device 120 , the second device, the computing device 200 , or any combination thereof.
- a computing device may detect an occurrence associated with the resource.
- the occurrence may be a custodial event or environmental event.
- a custodial event may include a change of ownership and/or transferring the resource from one container to another, such as offloading from a ship onto railcars.
- the occurrence may be a probabilistic recursion of environmental and/or reactive changes as described in greater detail below with respect to FIG. 5 . That is, the computing device may be executing a recursive loop to determine whether environmental and/or reactive changes have caused any changes to the resource as represented by a data object. As part of the recursive analysis, the computing device may evaluate a variety of factors, for example, using the one or more machine learning models described herein.
- the factors may include one or more of time, temperature, sedimentation, humidity, light exposure, oxidation, etc. of the resource, how it was stored, where it was stored, etc.
- the chemical composition analysis may be performed periodically (e.g., hourly, daily, weekly, monthly, etc.). Periodic analysis of the chemical properties, elemental properties, elemental components, parametric properties, and/or molecular properties of the resource may be performed more frequently, for example, if the resource is being transported.
- the computing device may determine whether the resulting material is derivative of an existing data object. If the material is not a derivative of an existing data object, then the computing device performs the process 300 , described in FIG. 3 . However, if the material is a derivative of an existing data object, then the process 400 may proceed to step 430 , with the computing device receiving an indication of chemical parameters. Step 430 may be similar to step 315 described above with the computing device receiving a report from a laboratory or testing site. Alternatively, the chemical parameters may be generated as part of the recursive analysis being performed by the computing device. That is, the computing device may generate updated chemical parameters based on the analysis described above and bypass the need for a laboratory and/or testing site to analyze the material.
- the computing device may query the database to determine additional information associated with the material and the chemical descriptors associated therewith, similar to step 325 described above.
- the computing device may determine a molecular density and/or atomic bonding for the chemical descriptor using the techniques described above with respect to step 330 .
- the computing device may generate a second plurality of probabilistic outcomes for the resource, using the one or more machine learning models.
- the computing device may select a second probabilistic outcome as being representative of changes to the resource.
- the computing device may receive verification of the selection of the second data object. The computing device may then generate a second data object to represent an updated molecular composition of the resource in step 480 .
- the computing device may store the second data object in a data store, such as a distributed ledger.
- a data store such as a distributed ledger.
- the computing device may update the identifiers associated with both data objects to show the interrelationship. Additionally or alternatively, storing the second data object in a data store may include updating the first data object to reflect the changes to the resource.
- FIG. 5 shows an example of the recursive analysis described above to detect the environmental and/or reactive changes of a resource in accordance with one or more aspects of the disclosure.
- the recursive analysis shown in FIG. 5 may be performed using one or more computing devices as described herein, including, for example, the server 110 , the first device 120 , the second device, the computing device 200 , or any combination thereof.
- the computing device may analyze the first data object 502 , stateful/environmental data 504 , known co-resident compounds 506 , history and movement data 508 , sensor data 510 , other data 512 , and/or added materials 514 .
- the first data object 502 may be a digital twin of the resource that is a chemical and/or molecular representation of the resource.
- the stateful/environmental data 504 may comprise information about the container and/or environment in which the resource is being stored. In this regard, the stateful/environmental data 504 may identify whether the resource is being stored or in-transit.
- the stateful/environmental data 504 may indicate how the resource is being transported (e.g., land, sea, air).
- the known co-resident compounds 506 may indicate residual materials in the container when the resource was introduced to the container.
- the history and movement data 508 may indicate origin of the resource, a destination of the resource, a shipping route of the resource, a length of transit for each segment of the journey, weather conditions at the origin, weather conditions at the destination, weather conditions via the shipping route during the length of transit, etc.
- the sensor data 510 may include data obtained from one or more sensors associated with the container storing the resource. The one or more sensors may measure temperature, humidity, light, etc.
- the other data 512 may include any miscellaneous information derived by the computing device, the containers, the sensors, etc.
- the added materials 514 may indicate any additional compounds (e.g., additives, preservatives, etc.) that have been introduced to the resource.
- the first data object 502 , stateful/environmental data 504 , known co-resident compounds 506 , history and movement data 508 , sensor data 510 , other data 512 , and/or added materials 514 may be used as inputs to a Chemical Synthesis, Decomposition, and Reaction Processing Engine 516 .
- Chemical Synthesis, Decomposition, and Reaction Processing Engine 516 may be the one or more machine learning algorithms described above. In this regard, the Chemical Synthesis, Decomposition, and Reaction Processing Engine 516 may determine what is known and unknown about the resource. Based on the known data, the Chemical Synthesis, Decomposition, and Reaction Processing Engine 516 may derive the unknowns.
- the Chemical Synthesis, Decomposition, and Reaction Processing Engine 516 may query the chemistry knowledgebase 518 to determine an atomic weight, atomic details, magnetic bonding, electrical bonding, compound information, reactivity information, statefulness, and/or environmental behavior with the resource.
- the computing device may employee a molecular density and/or atomic bonding data engine 520 to derive the molecular density and/or atomic bonding of the molecules and/or compounds contained in the resource.
- an environmental knowledgebase 522 may be used to determine how the molecules and/or compounds contained in the resource react to different environmental conditions. Further, the environmental knowledgebase may base the determinations on real-time, or near real-time, environmental data 524 .
- the Chemical Synthesis, Decomposition, and Reaction Processing Engine 516 may receive these additional inputs to generate a plurality of probabilistic outcomes 526 .
- the Chemical Synthesis, Decomposition, and Reaction Processing Engine 516 may comprise a loop function (e.g., Min-Max Loop) to limit the number of probabilistic outcomes.
- the plurality of probabilistic outcomes may be written to data store 528 .
- one of the plurality of probabilistic outcomes may be written to data store 528 .
- the chemical properties, elemental properties, elemental components, parametric components, and/or molecular components of commodities may be represented in a digital form that accurately tracks the resource throughout its lifecycle and how it may change due to environmental conditions, storage conditions, and/or custodial changes.
- the digital twin of the of the resource may be used to generate a non-fungible token.
- the non-fungible token may be used as part of a carbon offsetting and/or abatement program to represent a carbon credit program that allows entities to buy, sell, or trade carbon credits.
- FIG. 6 shows an example of a process 600 of creating a record in accordance with one or more aspects of the disclosure. Some or all of the steps of process 600 may be performed using one or more computing devices as described herein, including, for example, the server 110 , the first device 120 , the second device, the computing device 200 , or any combination thereof.
- a client device may receive a request to create an account.
- the request to create the account may be associated with a tenant organization. That is, a user, on behalf of a tenant organization, may create an account for the tenant organization.
- the request to create the account for the tenant organization may comprise the organization's name, contact information, and/or a certificate associated with the tenant organization.
- a user may request an account associated with the tenant organization.
- the request to create the account may comprise the user's name, a username, a password, contact information (e.g., phone number, email address, etc.), etc.
- the client device may receive a certificate in step 620 .
- the certificate which may be stored on a server and accessible to other users, may comprise an affiliation, contact information (e.g., phone number, email address, etc.), a username registered by the user, a public key associated with the user, etc.
- the client device may generate the certificate in step 620 .
- the certificate may be a self-signing certificate.
- the client device may generate an asymmetric key pair (i.e., a public key and a private key).
- the public key may be incorporated in the certificate, while the private key may be stored securely on the client device.
- the client device may record data and/or information regarding a resource on a ledger. This data and/or information may include the digital twin of the resource described above with respect to FIGS. 3 - 5 .
- the client device may obtain a list of approving devices from a server, in step 630 .
- the client device may send a query to a server.
- the query may comprise the affiliation or an identifier associated with the tenant organization.
- the client device may query the server via one or more application programming interfaces (APIs).
- APIs application programming interfaces
- the server may use the affiliation, or the identifier, to retrieve one or more approving devices associated with the tenant organization.
- the client device may receive the one or more approving devices from the server, for example, via the one or more APIs.
- the client device may create the record, in step 640 .
- the record may comprise at least one of a transaction identifier, a record identifier, and/or an asset identifier. Additionally, the record may comprise parametric and/or molecular data about a resource (e.g., commodity). In this regard, the record may comprise the digital twin described above, a digital DNA-representation of the resource, or a fingerprint of the resource (e.g., commodity) at each change and/or transaction.
- One or more records associated with the resource may create an ancestry of the movement and/or lifecycle of the resource (e.g., commodity), including, for example, the changes in the chemical, parametric, and/or molecular properties of the resource as it moves, changes, and/or ages.
- the record may comprise a plurality of data and/or information about the resource.
- the data and/or information may comprise a digital twin of the resource (e.g., exact parameter measurements), a last known holder of the resource, movement and/or location of the resource, historic and back-tested knowledge of the efficiency potential of each parametric element, formula, or content, etc.
- the record may be flagged as temporary.
- the record may be flagged as temporary by cloning the record.
- the temporary record may be flagged as temporary when being stored on a private ledger.
- the record may be flagged as temporary by encapsulating the record to be written in a temporary record container.
- Metadata may be appended to the record and/or the temporary record container.
- the metadata may comprise identifying information (e.g., phone number, email address, username, etc.) associated with each of the one or more approving devices.
- the metadata may comprise a unique code for each of the one or more approving devices. The unique code may be a pseudorandom number.
- the client device may send the record, and the associated metadata to the server.
- the server may send the unique code to each of the one or more approving devices via an electronic communication (e.g., digital message, application programmable interface (API) call, file input, asynchronous data communication, synchronous communication, email communication, push notification, etc.).
- the client device may provide the unique code and the transaction identifier to each of the one or more approving devices.
- the client device may provide the unique code and the transaction identifier via an electronic communication, such as a digital message, an API call, file input, asynchronous data communication, synchronous communication, email communication, push notification, an intra-application communication, etc.
- the one or more approving devices may use their unique code to verify the record, as discussed in greater detail in FIG. 7 .
- the server may commit (e.g., write) the record to the ledger (e.g., blockchain).
- committing the record to the ledger includes writing the record to a public ledger or a group of ledgers.
- the server may delete, or otherwise remove, any temporary records or clones of the record, including those stored in a private ledger.
- the method 600 may omit some steps, for example, when updating, changing, modifying, and/or altering an existing record. That is, step 610 and step 620 may be omitted when a client device is updating, changing, modifying, and/or altering an existing record. Similarly, steps 610 and step 620 may be omitted, for example, when a client device is creating a new record after creating an account with the technology platform described herein. In the examples described above, steps 610 and 620 may be replaced with an authentication (e.g., login) procedure.
- an authentication e.g., login
- FIG. 7 shows an example of a process 700 for verifying a record in accordance with one or more aspects of the disclosure. Some or all of the steps of process 700 may be performed using one or more computing devices as described herein, including, for example, the server 110 , the first device 120 , the second device, the computing device 200 , or any combination thereof.
- the record may comprise a second unique code.
- the client device may compare the first unique code to the second unique code. If first unique code and the second unique code do not match, the client device may send an indication to the server that the record is denied in step 740 . However, if the first unique code and the second code match, the client device may send a verification of the record to the server in step 750 .
- the verification may comprise invoking a smart contract to approve the record.
- the verification may comprise two parameters.
- the first parameter may be a digital signature of a first one-way function (e.g., hash function) of the first unique code, the approving user's username, the record identifier, and/or the asset identifier.
- the digital signature may be generated with a private key of the approving user.
- the first one-way function may be SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256, etc.
- the second parameter may be a result of applying a second one-way function to the transaction identifier and the approving user's username.
- the second one-way function may be any of the one-way functions described above with respect to the first one-way function.
- FIG. 8 shows an example of a process 800 of writing a record to a ledger (e.g., blockchain, database, immutable database, etc.) in accordance with one or more aspects of the disclosure.
- a ledger e.g., blockchain, database, immutable database, etc.
- Some or all of the steps of process 500 may be performed using one or more computing devices as described herein, including, for example, the server 110 , the first device 120 , the second device, the computing device 200 , or any combination thereof.
- a server may receive a request for one or more approving devices.
- the server may receive the request from a client device (e.g., a client application executing on the client device).
- the request may comprise an affiliation or identifier associated with a tenant organization that is creating and/or modifying a record.
- the request may be received via one or more APIs.
- the server may use the affiliation, or the identifier, to query a database to retrieve one or more records associated with the tenant organization.
- the one or more records may identify one or more approving devices for the tenant organization.
- the server may obtain an access control list (ACL) from the tenant organization, and receive identification information of each of the one or more approving devices from the ACL by, for example, querying an API (e.g., a host application API).
- the identification information may comprise at least one of a phone number, an email address, a username, a user ID, and/or other user identification information for each of the one or more approving devices.
- the one or more records may identify a quantity of verifications required to write a record to the ledger.
- the server may send a response to the request for the one or more approving devices.
- the response may comprise the identification information for each of the one or more approving devices.
- the server may send the response to the client device via the one or more APIs.
- the server acting as a proxy node, may receive a record of an asset from a client device.
- the record may comprise a transaction identifier, a record identifier, an asset identifier, a unique code for each of the one or more approving devices, and/or identification information for each of the one or more approving devices.
- the server may determine (e.g., set, change) a state attribute of the record based on receiving the record.
- the server may set a state attribute of the record to be “invoked,” and/or set a state attribute of the record to “pending.” Additionally or alternatively, the server may change a state attribute of the record from “possibleApprovals” (or similar designation) to a list of the one or more approving devices.
- the server may generate a temporary record based on the record.
- the temporary record may be stored in a private ledger, for example, maintained by the transaction platform described herein.
- the server may, for each of the one or more approving devices on the list, generate a unique code.
- the unique code may be a pseudorandom number associated with each of the one or more approving devices.
- the unique code may be a one-time code. Additionally or alternatively, the server may generate two verification parameters for each of the one or more approving devices, for example, in response to receiving the record.
- the first verification parameter may be a first result of a one-way function (e.g., hash function) applied to a first unique code associated with a first user, first identification information of the first user, and the record identifier.
- the second verification parameter e.g., a record key
- the server may store the first verification parameter and the second verification parameter on the ledger as the temporary record.
- the server may clone the record to create a temporary record.
- the server may clone the record using a key.
- the key may be a result of a one-way function (e.g., hash function) applied to the transaction identifier and the first identification information of the first user.
- the server may add an object to the temporary record's state attribute—“possibleApprovals” (or similar designation).
- the object may comprise identification information of a user associated with, or otherwise linked to, a first result of a one-way function (e.g., hash function) applied to a unique code associated with the user, the identification information of the user, and the record identifier and a second result of a one-way function (e.g., hash function) applied to the transaction identifier and the identification information of the user.
- a one-way function e.g., hash function
- the server may send a record to the one or more approving devices (e.g., a device associated with each of the one or more users authorized to review and/or approve the record).
- the server may send the record, for example, in response to or based on receiving a request for the record from each of the one or more approving devices. Additionally or alternatively, the server may push the record to the one or more approving devices, for example, in response to the one or more approving devices logging into a client-side application.
- the server may send the unique code and information associated with the record (e.g., the entire transaction identifier, or the last several characters of the transaction identifier) to each of the one or more approving devices (e.g., a client device associated with each user authorized to review/approve the record).
- the server may send the unique code and the information associated with the record to each of the one or more approving devices via an external message (e.g., text message, SMS, email communication, push notification, etc.).
- a client device may receive an indication of one or more records that require review.
- a user e.g., a user authorized to review/approve
- the list of pending approvals may comprise one or more transaction identifiers.
- the user may select a record with the transaction identifier matching the information associated with the record received by the user.
- the user may select a record with a transaction identifier matching the last several (e.g., 6) characters of the received transaction identifier.
- the client device may receive a unique code and a transaction identifier of a record for review.
- the application 122 may retrieve the record, for example, using the transaction identifier.
- the record may be retrieved from the server 110 , the application 112 , a private ledger (e.g., database) (not shown), the ledger 140 , or any combination thereof.
- the client device may compare the unique code with a unique code stored with the record. Additionally or alternatively, the client device may invoke a smart contract by inputting (e.g., sending to the server) two parameters, as described above.
- the first parameters may be a digital signature of applying a first one-way function (e.g., hash function) to the received unique code, the user's username, and the record identifier.
- the digital signature may be generated with a private key of the approving user.
- the second parameter may be a result of applying a second one-way function (e.g., hash function) to the transaction identifier and the user's username.
- the client device may send a message (e.g., a data packet) comprising the first parameter and the second parameter to the server.
- the server may receive a communication from each of the one or more approving devices.
- the communication may comprise the first parameter and the second parameter.
- the server may load the record using a key (e.g., the second parameter received from the client device).
- the server may verify (e.g., validate) the user's digital signature of the first parameter, for example, using the user's public key. If the digital signature of the first parameter is verified, the server may compare the first verification parameter generated by the server to the result of the user's first one-way function applied to the unique code, the user's username, and the record identifier (e.g., indicating the digital twin of the resource).
- the server may compare the second verification parameter generated by the user to the result of the user's second one-way function applied to the transaction identifier and the user's username. If both of the results of the functions provided by the client device match the first verification parameter and the second verification parameter generated by the server respectively, the record may be deemed verified by the approving user. After being verified, the record may be written to a public ledger (e.g., ledger 140 ) and deleted from the private ledger. Additionally or alternatively, the record may be committed to a public ledger (e.g., ledger 140 ) and any clone and/or temporary records stored on the public ledger may be removed (e.g., deleted) after the record has been verified.
- a public ledger e.g., ledger 140
- any clone and/or temporary records stored on the public ledger may be removed (e.g., deleted) after the record has been verified.
- the server may load a cloned record using a key (e.g., the second parameter received from the client device).
- the server may retrieve an object from the cloned record. For example, the server may retrieve the object based on the “possibleApprovals” (or similar designation) attribute of the record. In this regard, the server may retrieve the “possibleApprovals” (or similar designation) attribute of the record based on a determination that the “possibleApprovals” (or similar designation) attribute of the record matches the identification information of the user.
- the server may then verify the user's digital signature of the first parameter, for example, using the user's public key.
- the server may compare the first verification parameter generated by the server to the result of the user's first one-way function applied to the unique code, the user's username, and the record identifier. If the first verification parameter generated by the server matches the result of the user's first one-way function applied to the unique code, the user's username, and the record identifier, the server may load the cloned record using a key (e.g., the second parameter received from the client device), and authenticate the cloned record. Based on the authentication of the cloned record, the server may copy the cloned record's properties (e.g., information associated with the authentication of the cloned record) to the record.
- a key e.g., the second parameter received from the client device
- step 850 may be applied to any number of responses received from a plurality of the one or more approving devices.
- the server may determine whether a number of verifications satisfies a threshold.
- a tenant organization may indicate that a predetermined number of approving devices need to verify the record before the record can be written to the ledger.
- the threshold may be verified by a predetermined percentage of the approving devices (e.g., more than 50% of the approving devices), or other such approval protocol (e.g., consensus protocol).
- every signed metadata field may be verified by the one or more approving devices of the tenant organization.
- the server may delete the record in step 870 .
- the server may keep the record pending until a predetermined number of responses have been received or a predetermined amount of time has been passed before deleting the record.
- the server may store the record in the ledger. For example, if the threshold is satisfied, the server may write the record to the ledger (e.g., ledger 140 ). As noted above, writing the record to the ledger may include writing the record to another ledger (e.g., public ledger) from a private ledger. The server may determine (e.g., set, change, reset) one or more state attributes of the record, based on a determination that the threshold is satisfied.
- the ledger e.g., ledger 140
- writing the record to the ledger may include writing the record to another ledger (e.g., public ledger) from a private ledger.
- the server may determine (e.g., set, change, reset) one or more state attributes of the record, based on a determination that the threshold is satisfied.
- any temporary records and/or cloned records may be deleted, for example, based on or in response to the record being written to the ledger.
- the technology platform described herein may identify an origin of an oil spill, for example, when a record of the oil spill is recorded in the ledger. In this regard, there may be no report of the spill.
- the technology platform may identify the origin (e.g., ship, derrick, etc.) of the oil spill and/or the time oil spent in the environment. Similar to the analysis above, the technology platform may notify the owner of the nitrogen sulfate, the appropriate authorities and/or environmental agencies, etc. to remediate the oil spill.
- the technology platform described herein may create a unique digital DNA or fingerprint of a state in time of the components of the transaction in a process.
- the technology platform may be able to determine the counterparties of a transaction using the digital DNA, or fingerprint, of the transaction and probabilistic regression analysis of available data (including external sources).
- the technology platform may be able to validate the counterparties and the transaction through utilization of recording to an immutable record systems (such as blockchain) and the counterparty validation mechanisms therein (e.g., parties accepting the update write to the ledger/database).
- the technology platform described herein may maintain non-validated transactions, or partially validated transactions, in a transaction record system.
- the non-validated transactions, or partially validated transactions may be re-analyzed and/or await validation (e.g., wait until completely validated).
- One or more aspects discussed herein may be embodied in computer-usable or readable data and/or computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices as described herein.
- program modules include routines, programs, objects, components, data structures, and the like. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other device.
- the modules may be written in a source code programming language that is subsequently compiled for execution, or may be written in a scripting language, such as (but not limited to) Perl, Python, HTML, XSLT, or any suitable scripting language.
- the computer executable instructions may be stored on a computer readable medium such as a hard disk, optical disk, removable storage media, solid-state memory, RAM, and the like.
- a computer readable medium such as a hard disk, optical disk, removable storage media, solid-state memory, RAM, and the like.
- the functionality of the program modules may be combined or distributed as desired in various embodiments.
- the functionality may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA), and the like.
- Particular data structures may be used to more effectively implement one or more aspects discussed herein, and such data structures are contemplated within the scope of computer executable instructions and computer-usable data described herein.
- Various aspects discussed herein may be embodied as a method, a computing device, a system, and/or a computer program product.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Chemical & Material Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Crystallography & Structural Chemistry (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Finance (AREA)
- Mathematical Physics (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Molecular Biology (AREA)
- Medical Informatics (AREA)
- Development Economics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Quality & Reliability (AREA)
- Marketing (AREA)
- Tourism & Hospitality (AREA)
- Human Resources & Organizations (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Operations Research (AREA)
- Entrepreneurship & Innovation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
Abstract
The present disclosure describes a technology platform for creating and updating records of resources in a ledger. To create a record, a tenant organization may prepare a record to write to the ledger that may be flagged as temporary. Metadata may be added to the record, which flags the record as temporary. The metadata may comprise a unique code and an identification of a user that can approve the temporary record. The unique code and the identification may be sent, by the technology platform, to a device associated with one or more approving devices. Upon receiving the code and the identification of the transaction, the device may sign the unique code and invoke a routine based on the identification. The routine may fetch the temporary record. The device may compare the unique code to a code stored in the metadata of the temporary record. Upon valid verification of the unique code, the device may indicate authorization of the write. Based on the authorization, a proxy node associated with the technology platform may write a definitive record to the ledger based on the temporary record.
Description
- This application is a continuation of co-pending U.S. application Ser. No. 17/722,759, entitled “Multi-Tenant Node on a Private Network of Distributed, Auditable, and Immutable Databases” and filed on Apr. 18, 2022, which claims priority to U.S. Provisional Patent Application No. 63/178,294, entitled “Multi-Tenant Node on a Private Network of Distributed, Auditable, and Immutable Databases” and filed on Apr. 22, 2021, which are incorporated by reference herein in their entireties.
- This application is also related to U.S. application Ser. No. 17/722,906, entitled “Machine-Learning-Based Chemical Analysis” and filed on Apr. 18, 2022, the entirety of which is herein incorporated by reference in its entirety.
- Aspects of the disclosure generally relate to ledgers and, more specifically to writing and updating data and/or information contained in the ledger.
- The tracking of resources (e.g., oil, coal, petroleum, chemicals, etc.) from mining to consumption has proven difficult. Moreover, resources may evolve, degrade, or otherwise change over their lifecycle. Thus, there is a need to track resources throughout their lifecycle as they evolve, degrade, and/or change.
- The following presents a simplified summary of various aspects described herein. This summary is not an extensive overview, and is not intended to identify key or critical elements or to delineate the scope of the claims. The following summary merely presents some concepts in a simplified form as an introductory prelude to the more detailed description provided below. Corresponding apparatus, systems, methods, and computer-readable media are also within the scope of the disclosure.
- The present disclosure describes a technology platform that authenticates relationships across a resource's lifecycle, digitally verifies data from shared sources, validates compliance, and identifies potential fraud. The technology platform described herein tracks a resource's lifecycle from when the resource is harvested, extracted, mined, or otherwise sourced, to the point where the resource is destroyed and/or sequestered. In this regard, the technology platform makes use of a ledger (e.g., blockchain, database, immutable database, etc.) to record, update, verify, and validate the resource and any changes that occur to the resource throughout its lifecycle. This provides an immutable record of the resource that allows third parties to comply with regional, national, and/or global regulations related to the resource.
- The technology platform described herein may also comprise an artificial intelligence component. The artificial intelligence component may comprise one or more machine learning models configured to review and/or analyze (e.g., identify and/or extract) the records stored in the ledger. The artificial intelligence component may identify the parties and/or processes through analysis of the known or accessible data of the ledger. Moreover, the artificial intelligence component may identify the parties and/or processes via the understood behaviors and physical laws of the resources and/or business process flows. The artificial intelligence component may also authenticate relationships across a resource's lifecycle, digitally verify data from shared sources, validate compliance with laws and regulations, derive and produce valuable results (e.g., information), and/or identify potential fraud. Based on the analysis performed by the artificial intelligence component, the technology platform may generate one or more electronic communications, notifications, alerts, etc. In this regard, the artificial intelligence component may be able to provide full transparency into every touchpoint associated with the resource. By having full transparency into every touchpoint, risk associated with the resource may be reduced, which may reduce costs and/or the environmental impact of the resource.
- The features, along with many others, and benefits are discussed in greater detail below.
- The present disclosure is described by way of example and not limited in the accompanying figures in which:
-
FIGS. 1A-1B show an example of a system for writing and updating data and/or information to a ledger in accordance with one or more aspects of the disclosure; -
FIG. 2 shows an example of a computing device in accordance with one or more aspects of the disclosure; -
FIG. 3 shows an example of creating a digital representation of a resource in accordance with one or more aspects of the disclosure; -
FIG. 4 shows an example of updating a digital representation of a resource in response to a custodial or environmental event according to one or more aspects of the disclosure; -
FIG. 5 shows an example of the recursive analysis in accordance with one or more aspects of the disclosure; -
FIG. 6 shows an example of a process of creating a record in accordance with one or more aspects of the disclosure; -
FIG. 7 shows an example of a process for verifying a record in accordance with one or more aspects of the disclosure; and -
FIG. 8 shows an example of a process of writing a record to a ledger in accordance with one or more aspects of the disclosure. - In the following description of the various example embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration various example embodiments in which aspects of the disclosure may be practiced. It is to be understood that other embodiments may be utilized and structural and functional modifications may be made without departing from the scope of the present disclosure. Aspects of the disclosure are capable of other embodiments and of being practiced or being carried out in various ways. In addition, it is to be understood that the phraseology and terminology used herein are for the purpose of description and should not be regarded as limiting. Rather, the phrases and terms used herein are to be given their broadest interpretation and meaning.
- By way of introduction, aspects discussed herein may describe a technology platform that authenticates relationships across a resource's lifecycle, digitally verifies data from shared sources, validates compliance, and/or identifies potential fraud. In this regard, a record of an asset may be created on a ledger (e.g., blockchain, database, immutable database, etc.), for example, when the resource is harvested, mined, extracted, first recovered, or sourced. In this regard, the ledger may be associated with one or more special nodes that host the other ledger(s) information and/or interoperation, for example, as a private ledger, a public ledger, or a hybrid ledger. The one or more special nodes may then act as a proxy (e.g., proxy node) on behalf of one or more tenant organizations to commit (e.g., write) the record to the ledger or ledgers. As used herein, a tenant organization may comprise one or more users that create the record. In particular, the tenant organization may create the record and append an extra signed metadata field to the record to be written. The combination of the record and the metadata field may be referred to as temporary record or a cloned record. The temporary record may be provided to the proxy node, which may send a communication (e.g., digital message, application programmable interface (API) call, file input, asynchronous data communication, synchronous communication, email communication, push notification, etc.) to the other users of the tenant organization. The other users (including computing systems) of the tenant organization may verify (or deny) the temporary record. If a consensus of the other users verifies the temporary record, the proxy node may sign the record and write the record to the ledger (e.g., private ledger, public ledger, or hybrid ledger). By providing a proxy node and consensus from the tenant organization, the technology platform described herein creates a local permission system within a global permission system of the entirety of the ledger.
- Turning to
FIG. 1A , an example of a lifecycle of a commodity and/or resource is shown. It will be appreciated that commodity and resource may be used interchangeably throughout this disclosure. The resource may comprise a raw material or primary agricultural product. The raw material may be petroleum, coal, oil, chemicals (e.g., such as those used in pharmaceuticals), minerals, metals, or any other fungible resource. It will be appreciated that the lifecycle of any resource may be tracked. The lifecycle of the resource, as shown inFIG. 1A , shows a quantity of containers and/or locations (e.g., offshore derricks, boats, containers, storage tanks, factories, trucks, gas stations, cars) that store the resource at different stages of transportation and/or distribution of the resource and a weight and/or quantity of the resource for each of the containers. - As an example, 900,000,000 kilograms (kg) of petroleum may be extracted at the outset. As will be discussed in greater detail below, a first record of the 900,000,000 kg of petroleum may be created and stored in a ledger. The first record may comprise data and/or information about the 900,000,000 kg of petroleum, including, for example, chemical properties, elemental properties, elemental components, parametric properties, and/or molecular properties of the petroleum, where the petroleum was extracted (e.g., location information), when the petroleum was extracted (e.g., date/time information), etc. The 900,000,000 kg of petroleum may be shipped, for example, from an offshore derrick to a port via a ship. Like the extraction noted above, a second record may be created. The second record may comprise data and/or information, such as an origin of the petroleum, a destination of the petroleum, a shipping route of the petroleum, a length of transit from the origin to the destination, weather conditions at the origin, weather conditions at the destination, weather conditions via the shipping route during the length of transit, etc., in addition to the information discussed above. As will be discussed in greater detail below, one or more applications associated with the technology platform described herein may analyze the data and/or information contained in the second record to determine if any changes occurred to the petroleum (e.g., resource) in transit. If the properties of the petroleum changed while en route, the application may cause a new record to be generated to update the properties of the petroleum. This process may be repeated as the petroleum is shipped by rail and/or truck to a refinery and then distributed to one or more retailers, until the petroleum is consumed (e.g., burned as fuel) or sequestered (e.g., used to manufacture plastics).
-
FIG. 1B shows an example of asystem 100 comprising afirst server 110, afirst entity 120, asecond entity 130, and aledger 140 interconnected via anetwork 150. -
Server 110 may be any server capable of executingapplication 112. In this regard,server 110 may be a stand-alone server, a corporate server, or a server located in a server farm or cloud-computer environment. According to some examples,server 110 may be a virtual server hosted on hardware capable of supporting a plurality of virtual servers. As noted above,server 110 may executeapplication 112.Application 112 may be server-based software configured to provide or execute a technology platform that authenticates relationships across a resource's lifecycle, digitally verifies data from shared sources, validates compliance, and/or identifies potential fraud.Application 112 may allow one or more tenant organizations to register with the technology platform. A tenant organization may comprise one or more users that create the record to be stored on a ledger, as described in greater detail below with respect toFIG. 6 . In this regard, a tenant organization may be a legal or juristic entity that touches, or otherwise comes into contact, with a resource during the resource's lifecycle. Theapplication 112 may receive a record to be written to a ledger, such as theledger 140, from a computing device associated with a first device associated with the tenant organization. The record may comprise a unique code and a transaction identification. The transaction identifier may indicate a transaction associated with the record. The record may also comprise one or more identifiers associated with one or more second users who are authorized to approve the record. The identifiers may comprise a phone number (e.g., cell phone number), email address, a username, etc. Additionally or alternatively, the record may comprise a different unique code for each of a plurality of approving devices (e.g., devices associated with users authorized to review the record). Upon receiving the record, theapplication 112 may notify the one or more second users of the tenant organization that the one or more second users have a record for their review. The notification may be sent via an electronic communication, such as digital message, API call, file input, asynchronous data communication, synchronous communication, email communication, push notification, etc. The notification may comprise the unique code and the transaction identifier. Theapplication 112 may receive one or more verifications of the unique code and the transaction identifier from the one or more second users. If a consensus of the one or more second users verify the transaction, theapplication 112 may write (e.g., commit) the record to the ledger (e.g., ledger 140). Theapplication 112 may sign the record prior to writing the record to the ledger. In this regard, theapplication 112 may act as a proxy node to create a local permission system within a global permission system of the ledger. Additionally or alternatively, theapplication 112 may execute a private ledger that allows the record to be validated by the one or more second users. After the record is validated, theapplication 112 may write (e.g., commit) the record to a public ledger. In some examples, the private ledger and public ledger may form a hybrid ledger accessible by third parties. - Additionally or alternatively, the
application 112 may comprise logic that reads and/or writes to the network and/or theledger 140. The logic may comprise a chemical analysis component that analyzes the chemical composition of the resource, for example, using the process shown inFIGS. 3-5 and described below. As discussed in greater detail below, the logic may consider a variety of factors to determine whether the chemical composition of the resource has changed. Such logic may be comprised of designed algorithms, machine learning algorithms, or machine learning/artificial intelligence algorithms which are derived from human composed algorithms. The variety of factors may comprise one or more of time, temperature, changes in temperature, sedimentation, humidity, light exposure, oxidation, etc. If the chemical composition of the resource has changed, theapplication 112 may create a new record for the resource that indicates the change to the resource. The chemical composition logic may run periodically (e.g., hourly, daily, weekly, monthly, etc.). Additionally or alternatively, the chemical composition logic may generate an alert, for example, if the change in the chemical composition of the resource presents a danger (e.g., health risk, fire risk, etc.). In some examples, theapplication 112 may invoke one or more smart contracts on theledger 140. The one or more smart contracts may record a new record on theledger 140 or change an existing record on theledger 140. - The
application 112 may also comprise artificial intelligence. The artificial intelligence may comprise one or more machine learning models. The one or more machine learning models may comprise a neural network, such as a convolutional neural network (CNN), a recurrent neural network, a recursive neural network, a long short-term memory (LSTM), a gated recurrent unit (GRU), an unsupervised pre-trained network, a space invariant artificial neural network, a generative adversarial network (GAN), or a consistent adversarial network (CAN), such as a cyclic generative adversarial network (C-GAN), a deep convolutional GAN (DC-GAN), GAN interpolation (GAN-INT), GAN-CLS, a cyclic-CAN (e.g., C-CAN), or any equivalent thereof. Additionally or alternatively, the machine learning model may comprise one or more decisions trees. - The artificial intelligence may be trained to review and/or analyze (e.g., extract) the records stored in the ledger to identify the parties and/or processes, identify relationships between various resources and/or data stored in the ledger, authenticate relationships across a resource's lifecycle, digitally verify data from shared sources, validate compliance with laws and regulations, and/or identify potential fraud. The one or more machine learning models may be trained using supervised learning, unsupervised learning, back propagation, transfer learning, stochastic gradient descent, learning rate decay, dropout, max pooling, batch normalization, long short-term memory, skip-gram, or any equivalent deep learning technique. Once the one or more machine learning models are trained, the one or more machine learning models may be exported and/or deployed in
application 112. Theapplication 112 may then analyze and/or review the records in the ledger (such as a blockchain) to reduce the risk associated with one or more resources. -
First device 120 may be any device associated with a tenant organization.First device 120 may be a mobile device, such as a cellular phone, a mobile phone, a smart phone, a tablet, a laptop, or an equivalent thereof. Additionally or alternatively,first device 120 may comprise a desktop computer or, alternatively, a virtual computer.First device 120 may provide a first user, associated with a tenant organization, with access to various applications and/or services. For example,first device 120 may provide the first user with access to the Internet. Additionally,first device 120 may provide the first user with one or more applications (“apps”) located thereon. The one or more applications may provide the first user with a plurality of tools and access to a variety of services. In some examples, the one or more applications may include anapplication 122.Application 122 may be a client-based application corresponding to theapplication 112. In this example, theapplication 122 may create a record to write to the ledger, for example, as discussed in greater detail below with respect toFIG. 6 . Theapplication 122 may flag the record as temporary. Additionally, theapplication 122 may add metadata to the record. The metadata may comprise the unique code, the transaction identifier, and/or the one or more second users designated to approve the record. In some examples, theapplication 122 may obfuscate and/or encrypt the metadata. Theapplication 122 may send the record, flagged as temporary, to theserver 110. The server may then send the record to the one or more second users identified in the metadata so that the one or more second users can verify (or deny) the record. Additionally or alternatively, theapplication 122 may receive an indication of one or more records that require review. In this regard, thefirst device 120 and/or theapplication 122 may receive a unique code and a transaction identifier of a record that requires review. Theapplication 122 may retrieve the record, for example, using the transaction identifier. The record may be retrieved from theserver 110, theapplication 112, a private ledger (e.g., database) (not shown), theledger 140, or any combination thereof. Upon receiving the record, the first device 120 (e.g.,application 122 executing on first device 120) may compare the unique code with a unique code stored with the record. If the codes match, theapplication 122 may provide a notification to the server 110 (e.g., theapplication 112 executing on the server 110) that the record is verified. Similarly, if the codes do not match, theapplication 122 may provide a notification to the server 110 (e.g., theapplication 112 executing on the server 110) that the record is not verified. As noted above, theapplication 112 may track the verifications and, if a consensus (e.g., a predetermined number of approving devices) is reached, write the record to theledger 140. Additionally or alternatively, theapplication 122 may invoke one or more smart contracts to record a new record on theledger 140 or change an existing record on theledger 140. - The
second device 130 may be another device associated with the tenant organization. In this regard, thesecond device 130 may be any of the devices discussed above with respect to thefirst device 120. Similarly, thesecond device 130 may executeapplication 132, which may provide similar functionality to the functionality described above with respect to theapplication 122. - The
ledger 140 may be any suitable ledger. For example, theledger 140 may comprise a public blockchain, a private blockchain, a hybrid blockchain, a distributed database, an immutable database, a distributed ledger, etc. Theledger 140 may store the records associated with the one or more resources. Additionally or alternatively, theledger 140 may store the one or more smart contracts referred to herein. Theledger 140 may be a declarable blockchain. Additionally or alternatively, theledger 140 may be a discoverable blockchain, wherein interrelationships between blocks of data stored in theledger 140 may be identified, for example, using recursive analysis of the blocks stored inledger 140. The recursive analysis may allow computing devices to perform a forensic analysis of the data contained in the blocks. The forensic analysis may help to identify the source of a resource and/or how the resource has changed or been modified since the resource was originally extracted. -
Network 150 may include any type of network. In this regard, thenetwork 150 may include the Internet, a local area network (LAN), a wide area network (WAN), a wireless telecommunications network, and/or any other communication network or combination thereof. It will be appreciated that the network connections shown are illustrative and any means of establishing a communications link between the computers may be used. The existence of any of various network protocols such as TCP/IP, Ethernet, FTP, HTTP and the like, and of various wireless communication technologies such as GSM, CDMA, WiFi, and LTE, is presumed, and the various computing devices described herein may be configured to communicate using any of these network protocols or technologies. The data transferred to and from various computing devices insystem 100 may include secure and sensitive data, such as confidential documents, customer personally identifiable information, and account data. Therefore, it may be desirable to protect transmissions of such data using secure network protocols and encryption, and/or to protect the integrity of the data when stored on the various computing devices. For example, a file-based integration scheme or a service-based integration scheme may be utilized for transmitting data between the various computing devices. Data may be transmitted using various network communication protocols. Secure data transmission protocols and/or encryption may be used in file transfers to protect the integrity of the data, for example, File Transfer Protocol (FTP), Secure File Transfer Protocol (SFTP), and/or Pretty Good Privacy (PGP) encryption. In many embodiments, one or more web services may be implemented within the various computing devices. Web services may be accessed by authorized external devices and users to support input, extraction, and manipulation of data between the various computing devices in thesystem 100. Web services built to support a personalized display system may be cross-domain and/or cross-platform, and may be built for enterprise use. Data may be transmitted using the Secure Sockets Layer (SSL) or Transport Layer Security (TLS) protocol to provide secure connections between the computing devices. Web services may be implemented using the WS-Security standard, providing for secure SOAP messages using XML encryption. Specialized hardware may be used to provide secure web services. For example, secure network appliances may include built-in features such as hardware-accelerated SSL and HTTPS, WS-Security, and/or firewalls. Such specialized hardware may be installed and configured insystem 100 in front of one or more computing devices such that any external devices may communicate directly with the specialized hardware. - Any of the devices and systems described herein may be implemented, in whole or in part, using one or more computing devices described with respect to
FIG. 2 . Turning now toFIG. 2 , acomputing device 200 that may be used with one or more of the computational systems is described. Thecomputing device 200 may comprise aprocessor 203 for controlling overall operation of thecomputing device 200 and its associated components, includingRAM 205,ROM 207, input/output device 209,accelerometer 211, global-position system antenna 213,memory 215, and/orcommunication interface 223. A bus 202 may interconnect processor(s) 203,RAM 205,ROM 207,memory 215, I/O device 209,accelerometer 211, global-position system receiver/antenna 213,memory 215, and/orcommunication interface 223.Computing device 200 may represent, be incorporated in, and/or comprise various devices such as a desktop computer, a computer server, a gateway, a mobile device, such as a laptop computer, a tablet computer, a smart phone, any other types of mobile computing devices, and the like, and/or any other type of data processing device. - Input/output (I/O)
device 209 may comprise a microphone, keypad, touch screen, and/or stylus through which a user of thecomputing device 200 may provide input, and may also comprise one or more of a speaker for providing audio output and a video display device for providing textual, audiovisual, and/or graphical output. Software may be stored withinmemory 215 to provide instructions toprocessor 203 allowingcomputing device 200 to perform various actions. For example,memory 215 may store software used by thecomputing device 200, such as anoperating system 217,application programs 219, and/or an associatedinternal database 221. The various hardware memory units inmemory 215 may comprise volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data.Memory 215 may comprise one or more physical persistent memory devices and/or one or more non-persistent memory devices.Memory 215 may comprise random access memory (RAM) 205, read only memory (ROM) 207, electronically erasable programmable read only memory (EEPROM), flash memory or other memory technology, optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store the desired information and that may be accessed byprocessor 203. -
Accelerometer 211 may be a sensor configured to measure accelerating forces ofcomputing device 200.Accelerometer 211 may be an electromechanical device. Accelerometer may be used to measure the tilting motion and/ororientation computing device 200, movement ofcomputing device 200, and/or vibrations ofcomputing device 200. The acceleration forces may be transmitted to the processor to process the acceleration forces and determine the state ofcomputing device 200. - GPS receiver/
antenna 213 may be configured to receive one or more signals from one or more global positioning satellites to determine a geographic location of computingdevice 200. The geographic location provided by GPS receiver/antenna 213 may be used for navigation, tracking, and positioning applications. In this regard, the geographic may also include places and routes frequented by the first user. -
Communication interface 223 may comprise one or more transceivers, digital signal processors, and/or additional circuitry and software, protocol stack, and/or network stack for communicating via any network, wired or wireless, using any protocol as described herein. -
Processor 203 may comprise a single central processing unit (CPU), which may be a single-core or multi-core processor, or may comprise multiple CPUs. Processor(s) 203 and associated components may allow thecomputing device 200 to execute a series of computer-readable instructions (e.g., instructions stored inRAM 205,ROM 207,memory 215, and/or other memory ofcomputing device 215, and/or in other memory) to perform some or all of the processes described herein. Although not shown inFIG. 2 , various elements withinmemory 215 or other components incomputing device 200, may comprise one or more caches, for example, CPU caches used by theprocessor 203, page caches used by theoperating system 217, disk caches of a hard drive, and/or database caches used to cache content fromdatabase 221. A CPU cache may be used by one ormore processors 203 to reduce memory latency and access time. Aprocessor 203 may retrieve data from or write data to the CPU cache rather than reading/writing tomemory 215, which may improve the speed of these operations. In some examples, a database cache may be created in which certain data from adatabase 221 is cached in a separate smaller database in a memory separate from the database, such as inRAM 205 or on a separate computing device. For example, in a multi-tiered application, a database cache on an application server may reduce data retrieval and data manipulation time by not needing to communicate over a network with a back-end database server. These types of caches and others may provide potential advantages in certain implementations of devices, systems, and methods described herein, such as faster response times and less dependence on network conditions when transmitting and receiving data. - Although various components of
computing device 200 are described separately, functionality of the various components may be combined and/or performed by a single component and/or multiple computing devices in communication without departing from the disclosure. - Generating a Digital Twin Corresponding to a Resource
- In order to be able to track the evolution of a resource throughout its lifecycle, a digital representation of the resource may be generated.
FIG. 3 shows an example of creating a digital representation of a resource in accordance with one or more aspects of the disclosure. Some or all of the steps ofprocess 300 may be performed using one or more computing devices as described herein, including, for example, theserver 110, thefirst device 120, the second device, thecomputing device 200, or any combination thereof. - In
step 305, a sample of a resource may be obtained. The sample may be a physical sample of the resource. With reference toFIG. 1A , the sample may be petroleum. The sample may be obtained at any of the points illustrated inFIG. 1A . For instance, a first sample may be obtained when the petroleum is extracted at the derrick and a second sample may be obtained when the petroleum is loaded onto a ship. In another example, the sample may be a core sample obtained, for example, during mining operations. Once the sample is obtained, the sample may be sent to a laboratory or processing site for further analysis as shown instep 310. The analysis may be used to determine one or more chemical properties, elemental properties, elemental components, parametric components, and/or molecular components associated with the sample. Any methodology or chemical analysis may be performed on the sample. In particular, the analysis techniques may include chromatography and/or mass spectrometry analysis. Preferably, the analysis techniques include gas chromatography-mass spectrometry (GC-MS), liquid chromatography-mass spectrometry (LC-MS), or any equivalent analysis methodology thereof. In some instances, the analysis may warrant a secondary analysis of the sample, for example, if errors are detected or the results are not clear. Based on the analysis, a report may be prepared indicating one or more chemical properties, elemental properties, elemental components, parametric components, and/or molecular components associated with the sample. - In step 315, a computing device may receive the report. The report may include an indication of one or more chemical properties, elemental properties, elemental components, parametric components, and/or molecular components associated with the resource. In particular, the report may include a molecular descriptor for each molecule and/or compound found in the resource, a percentage of each molecular descriptor, a density of each molecular descriptor, and/or any other pertinent information obtained as a result of the analysis performed in step 310. The molecular descriptor may be in the form of a molecular formula, an empirical formula, a Simplified Molecular Input Line Entry System (SMILES), or a structural formula. The molecular formula may represent the elemental components, and their respective number of atoms, that form a single molecule. As an example, the molecular formula for glucose is: C6H12O6. The empirical formula may represent the elemental components and their ratio of atoms that form a single molecule. The empirical formula for glucose is: CH2O. The SMILES representation may represent the elemental components in the order they pair, with the strength of the atomic bond (e.g., ionic, protonic) represented, and/or their bonding structure (such as rings, arrays, etc.). The SMILES representation for glucose is: OC[C@@H](O1)[C@@H](O)[C@H](O)[C@@H](O)[C@H](O)1. The structural formula may describe the elemental components and/or their bonds. Additionally, the structural formula may describe the atomic distance and/or angle of atoms to one another. Variations of the structural formula may allow for more data to be visually derived, such as ionic and/or protonic attraction or strength, including chemical state. The structural formula for glucose may be represented as:
- In
step 320, the computing device may analyze the report. The report may be analyzed using one or more natural language processing algorithms. The one or more natural language processing algorithms may identify a chemical descriptor associated with the molecular descriptor. As used herein, a chemical descriptor, which may be used interchangeably with compound descriptor, may be a composite of one or more molecular descriptors contained in the report. In this regard, individual molecules may be segregated from one another by a separator, such as a comma, plus sign, bar, etc., and the entire compound may be identified as a unit via a compound separator, such as a bracket, quotation marks, double bars, etc. The one or more natural language processing algorithms may identify the chemical descriptor, for example, based on the molecular descriptors contained therein, the separators, and/or the compound separators. Additionally, the one or more natural language processing algorithms may determine additional information contained in the report, such as a percentage of each molecular descriptor, a density of each molecular descriptor, and/or any other relevant information. Based on the analysis, the computing device may identify data and/or information associated with the resource. Additionally, the computing device may identify gaps (e.g., missing data and/or information) in the report. - Based on any identified gaps, the computing device may query a database to determine additional information associated with the chemical descriptor, in
step 325. The database may be a chemistry knowledgebase. The chemistry knowledgebase may include an atomic weight, atomic details, magnetic bonding, electrical bonding, compound information, reactivity information, statefulness, and/or environmental behavior. Accordingly, the computing device may query the database (e.g., chemistry knowledgebase) to fill in the identified gaps. In some examples, the chemistry knowledgebase may also include behavioral components, such as the boiling point of certain compounds. The behavior components may be known and/or discoverable properties of elements and compounds and complex compounds. - In
step 330, the computing device may determine a molecular density and/or atomic bonding for the chemical descriptor. The molecular density and/or atomic bonding may be determined using one or more machine learning models. As noted above, the one or more machine learning models may comprise a neural network, such as a CNN, a recurrent neural network, a recursive neural network, a LSTM, a GRU, an unsupervised pre-trained network, a space invariant artificial neural network, a GAN, or a CAN, such as C-GAN, DC-GAN, GAN-INT, GAN-CLS, C-CAN, or any equivalent thereof. Additionally or alternatively, the one or more machine learning model may comprise one or more decisions trees. The one or more machine learning models may be trained to determine the molecular density and/or atomic bonding, for example, based on the data and/or information contained in the report, as well as the additional information obtained from the database (e.g., chemistry knowledgebase). - In
step 335, the computing device may generate a plurality of probabilistic outcomes for the resource. The plurality of probabilistic outcomes may be generated using one or more machine learning models, which may be the same machine learning models used to determine the molecular density and/or atomic bonding, Alternatively, one or more second machine learning models, different from those used to determine the molecular density and/or atomic bonding, may be used to determine the plurality of probabilistic outcomes. The plurality of probabilistic outcomes may be based on the information contained in the report, the additional information obtained from the database (e.g., chemistry knowledgebase), the molecular density, and/or the atomic bonding. In some examples, the one or more machine learning models may determine a likelihood percentage for each of the plurality of probabilistic outcomes. That is, the one or more machine learning models may identify a probability that the resource is the chemical compound associated with the probabilistic outcome. Instep 340, the computing device may select a first probabilistic outcome as being representative of the resource. The selection may be based on the likelihood percentage associated with each of the plurality of probabilistic outcome. For example, the selection may be based on the highest likelihood percentage. Additionally or alternatively, the selection may be based on the likelihood percentage satisfying a predetermined threshold. In some examples, the computing device may transmit the plurality of probabilistic outcomes to a second computing device and receive a selection of the probabilistic outcome from the second computing device. In some examples, the computing device may send the selection of the first probabilistic outcome to a second computing device (e.g., a client device) with a request to verify the selection. Instep 345, the computing device may receive verification that the selection of the first probabilistic outcome was accurate (e.g., correct). It will be appreciated thatstep 345 may be skipped in some examples. - In
step 350, the computing device may generate a data object to represent a molecular composition of the resource, for example, based on a selection of the first probabilistic outcome. The data object may be a chemical digital twin of the resource. As used herein, a “chemical digital twin” is a data object that represents the resource's molecular composition at the state and/or time the sample was taken. In this regard, the chemical digital twin may be an artificially-intelligent generated compound descriptor, as well as the data extracted and/or derived from the source information and/or the sample analysis. In other words, the computing device may take what is known about the resource, the additional information obtained from a knowledgebase, and the possible outcomes of the resource to create a digital twin of the resource. As will be discussed in greater detail below, this digital twin may allow computing devices to track the evolution of a resource throughout its lifecycle. This evolution may include changes that occur as a result of environmental conditions, such as time, temperature, humidity, sun exposure, etc. Additionally or alternatively, this evolution may occur as a result of custodial actions taken by the owner of the resource. For example, the changes in the resource may occur due to preservatives and/or additives being introduced to the resource. In another example, changes in the resource may occur during transfer of ownership when the resource is mixed with residual compounds, such as those found in a storage tank or a fuel barge. Each of these changes may be determined using the techniques described above inFIG. 3 , as well as discovered using the machine learning techniques described herein. - In
step 355, the computing device may store the data object in a data store. The data store may be a database, a data warehouse, a data lake, or a ledger, such as theledger 140 discussed above with respect toFIG. 1B . After the digital object is stored, a computing device may compare the data object to a plurality of data objects stored in the distributed ledger to determine whether the data object is related to any of the plurality of data objects. That is, the computing device may analyze the data object to determine whether the data object is related to any of the plurality of other data objects. This analysis may help determine the resource's origin, source, and/or history (e.g., whether the data object is derivative of another data object). The computing device may identify any potential relationships between the data objects in the data store and the probabilities associated with each potential relationship. The potential relationships and their associated probabilities may then be recorded. Furthermore, this analysis may determine the evolution of a resource as it progresses through its lifecycle. - As noted above, the chemical and/or molecular composition of a resource may change over the course of its lifecycle due to custodial or environmental events.
FIG. 4 shows an example of updating a digital representation of a resource in response to a custodial or environmental event according to one or more aspects of the disclosure. Some or all of the steps ofprocess 400 may be performed using one or more computing devices as described herein, including, for example, theserver 110, thefirst device 120, the second device, thecomputing device 200, or any combination thereof. - In
step 410, a computing device may detect an occurrence associated with the resource. The occurrence may be a custodial event or environmental event. A custodial event may include a change of ownership and/or transferring the resource from one container to another, such as offloading from a ship onto railcars. In some instances, the occurrence may be a probabilistic recursion of environmental and/or reactive changes as described in greater detail below with respect toFIG. 5 . That is, the computing device may be executing a recursive loop to determine whether environmental and/or reactive changes have caused any changes to the resource as represented by a data object. As part of the recursive analysis, the computing device may evaluate a variety of factors, for example, using the one or more machine learning models described herein. The factors may include one or more of time, temperature, sedimentation, humidity, light exposure, oxidation, etc. of the resource, how it was stored, where it was stored, etc. The chemical composition analysis may be performed periodically (e.g., hourly, daily, weekly, monthly, etc.). Periodic analysis of the chemical properties, elemental properties, elemental components, parametric properties, and/or molecular properties of the resource may be performed more frequently, for example, if the resource is being transported. - In
step 420, the computing device may determine whether the resulting material is derivative of an existing data object. If the material is not a derivative of an existing data object, then the computing device performs theprocess 300, described inFIG. 3 . However, if the material is a derivative of an existing data object, then theprocess 400 may proceed to step 430, with the computing device receiving an indication of chemical parameters. Step 430 may be similar to step 315 described above with the computing device receiving a report from a laboratory or testing site. Alternatively, the chemical parameters may be generated as part of the recursive analysis being performed by the computing device. That is, the computing device may generate updated chemical parameters based on the analysis described above and bypass the need for a laboratory and/or testing site to analyze the material. - In
step 430, the computing device may query the database to determine additional information associated with the material and the chemical descriptors associated therewith, similar to step 325 described above. Instep 440, the computing device may determine a molecular density and/or atomic bonding for the chemical descriptor using the techniques described above with respect to step 330. Instep 450, the computing device may generate a second plurality of probabilistic outcomes for the resource, using the one or more machine learning models. Instep 460, the computing device may select a second probabilistic outcome as being representative of changes to the resource. Instep 470, the computing device may receive verification of the selection of the second data object. The computing device may then generate a second data object to represent an updated molecular composition of the resource instep 480. Finally, instep 490, the computing device may store the second data object in a data store, such as a distributed ledger. When there is a relationship between the first data object and the second data object, the computing device may update the identifiers associated with both data objects to show the interrelationship. Additionally or alternatively, storing the second data object in a data store may include updating the first data object to reflect the changes to the resource. -
FIG. 5 shows an example of the recursive analysis described above to detect the environmental and/or reactive changes of a resource in accordance with one or more aspects of the disclosure. The recursive analysis shown inFIG. 5 may be performed using one or more computing devices as described herein, including, for example, theserver 110, thefirst device 120, the second device, thecomputing device 200, or any combination thereof. - As part of the recursive analysis, the computing device may analyze the
first data object 502, stateful/environmental data 504, knownco-resident compounds 506, history andmovement data 508,sensor data 510,other data 512, and/or addedmaterials 514. As noted above, thefirst data object 502 may be a digital twin of the resource that is a chemical and/or molecular representation of the resource. The stateful/environmental data 504 may comprise information about the container and/or environment in which the resource is being stored. In this regard, the stateful/environmental data 504 may identify whether the resource is being stored or in-transit. Additionally, if the resource is in-transit, the stateful/environmental data 504 may indicate how the resource is being transported (e.g., land, sea, air). The knownco-resident compounds 506 may indicate residual materials in the container when the resource was introduced to the container. - For example, leftover fuel may not be cleaned out from a fuel bunker. The history and
movement data 508 may indicate origin of the resource, a destination of the resource, a shipping route of the resource, a length of transit for each segment of the journey, weather conditions at the origin, weather conditions at the destination, weather conditions via the shipping route during the length of transit, etc. Thesensor data 510 may include data obtained from one or more sensors associated with the container storing the resource. The one or more sensors may measure temperature, humidity, light, etc. Theother data 512 may include any miscellaneous information derived by the computing device, the containers, the sensors, etc. Finally, the addedmaterials 514 may indicate any additional compounds (e.g., additives, preservatives, etc.) that have been introduced to the resource. - The
first data object 502, stateful/environmental data 504, knownco-resident compounds 506, history andmovement data 508,sensor data 510,other data 512, and/or addedmaterials 514 may be used as inputs to a Chemical Synthesis, Decomposition, andReaction Processing Engine 516. Chemical Synthesis, Decomposition, andReaction Processing Engine 516 may be the one or more machine learning algorithms described above. In this regard, the Chemical Synthesis, Decomposition, andReaction Processing Engine 516 may determine what is known and unknown about the resource. Based on the known data, the Chemical Synthesis, Decomposition, andReaction Processing Engine 516 may derive the unknowns. In order to derive the unknowns, the Chemical Synthesis, Decomposition, andReaction Processing Engine 516 may query the chemistry knowledgebase 518 to determine an atomic weight, atomic details, magnetic bonding, electrical bonding, compound information, reactivity information, statefulness, and/or environmental behavior with the resource. The computing device may employee a molecular density and/or atomic bonding data engine 520 to derive the molecular density and/or atomic bonding of the molecules and/or compounds contained in the resource. Finally, anenvironmental knowledgebase 522 may be used to determine how the molecules and/or compounds contained in the resource react to different environmental conditions. Further, the environmental knowledgebase may base the determinations on real-time, or near real-time,environmental data 524. The Chemical Synthesis, Decomposition, andReaction Processing Engine 516 may receive these additional inputs to generate a plurality ofprobabilistic outcomes 526. In some examples, the Chemical Synthesis, Decomposition, andReaction Processing Engine 516 may comprise a loop function (e.g., Min-Max Loop) to limit the number of probabilistic outcomes. The plurality of probabilistic outcomes may be written todata store 528. Alternatively, one of the plurality of probabilistic outcomes may be written todata store 528. - By generating a digital twin of the resource using the techniques described herein, the chemical properties, elemental properties, elemental components, parametric components, and/or molecular components of commodities may be represented in a digital form that accurately tracks the resource throughout its lifecycle and how it may change due to environmental conditions, storage conditions, and/or custodial changes. Moreover the digital twin of the of the resource may be used to generate a non-fungible token. The non-fungible token may be used as part of a carbon offsetting and/or abatement program to represent a carbon credit program that allows entities to buy, sell, or trade carbon credits.
- Creating Immutable Records Based on the Digital Twin of the Resource
- In order to be able to track the lifecycle of a resource and use the digital representation, records may be created and stored, for example, in a ledger, that would allow third parties to verify the resource and information associated therewith.
FIG. 6 shows an example of aprocess 600 of creating a record in accordance with one or more aspects of the disclosure. Some or all of the steps ofprocess 600 may be performed using one or more computing devices as described herein, including, for example, theserver 110, thefirst device 120, the second device, thecomputing device 200, or any combination thereof. - In
step 610, a client device (e.g., a client application executing on the client device) may receive a request to create an account. The request to create the account may be associated with a tenant organization. That is, a user, on behalf of a tenant organization, may create an account for the tenant organization. In this regard, the request to create the account for the tenant organization may comprise the organization's name, contact information, and/or a certificate associated with the tenant organization. Additionally or alternatively, a user may request an account associated with the tenant organization. In this regard, the request to create the account may comprise the user's name, a username, a password, contact information (e.g., phone number, email address, etc.), etc. As part of the account creation process, the client device may receive a certificate instep 620. The certificate, which may be stored on a server and accessible to other users, may comprise an affiliation, contact information (e.g., phone number, email address, etc.), a username registered by the user, a public key associated with the user, etc. Alternatively, the client device may generate the certificate instep 620. The certificate may be a self-signing certificate. In this regard, the client device may generate an asymmetric key pair (i.e., a public key and a private key). The public key may be incorporated in the certificate, while the private key may be stored securely on the client device. - Once a client device has created an account, the client device may record data and/or information regarding a resource on a ledger. This data and/or information may include the digital twin of the resource described above with respect to
FIGS. 3-5 . To record data and/or information to the ledger, the client device may obtain a list of approving devices from a server, in step 630. The client device may send a query to a server. The query may comprise the affiliation or an identifier associated with the tenant organization. The client device may query the server via one or more application programming interfaces (APIs). The server may use the affiliation, or the identifier, to retrieve one or more approving devices associated with the tenant organization. The client device may receive the one or more approving devices from the server, for example, via the one or more APIs. - After obtaining information associated with the one or more approving devices from the server, the client device may create the record, in
step 640. The record may comprise at least one of a transaction identifier, a record identifier, and/or an asset identifier. Additionally, the record may comprise parametric and/or molecular data about a resource (e.g., commodity). In this regard, the record may comprise the digital twin described above, a digital DNA-representation of the resource, or a fingerprint of the resource (e.g., commodity) at each change and/or transaction. One or more records associated with the resource (e.g., commodity) may create an ancestry of the movement and/or lifecycle of the resource (e.g., commodity), including, for example, the changes in the chemical, parametric, and/or molecular properties of the resource as it moves, changes, and/or ages. As noted above, the record may comprise a plurality of data and/or information about the resource. For example, the data and/or information may comprise a digital twin of the resource (e.g., exact parameter measurements), a last known holder of the resource, movement and/or location of the resource, historic and back-tested knowledge of the efficiency potential of each parametric element, formula, or content, etc. Upon creation, the record may be flagged as temporary. The record may be flagged as temporary by cloning the record. In some instances, the temporary record may be flagged as temporary when being stored on a private ledger. Additionally or alternatively, the record may be flagged as temporary by encapsulating the record to be written in a temporary record container. Metadata may be appended to the record and/or the temporary record container. The metadata may comprise identifying information (e.g., phone number, email address, username, etc.) associated with each of the one or more approving devices. Additionally or alternatively, the metadata may comprise a unique code for each of the one or more approving devices. The unique code may be a pseudorandom number. - In
step 650, the client device may send the record, and the associated metadata to the server. As will be discussed in greater detail below with respect toFIG. 7 , the server may send the unique code to each of the one or more approving devices via an electronic communication (e.g., digital message, application programmable interface (API) call, file input, asynchronous data communication, synchronous communication, email communication, push notification, etc.). Alternatively, the client device may provide the unique code and the transaction identifier to each of the one or more approving devices. The client device may provide the unique code and the transaction identifier via an electronic communication, such as a digital message, an API call, file input, asynchronous data communication, synchronous communication, email communication, push notification, an intra-application communication, etc. As will be discussed in greater detail below, the one or more approving devices may use their unique code to verify the record, as discussed in greater detail inFIG. 7 . When a threshold number of verifications is satisfied, the server may commit (e.g., write) the record to the ledger (e.g., blockchain). In some examples, committing the record to the ledger includes writing the record to a public ledger or a group of ledgers. The server may delete, or otherwise remove, any temporary records or clones of the record, including those stored in a private ledger. - It will be appreciated that the
method 600 may omit some steps, for example, when updating, changing, modifying, and/or altering an existing record. That is,step 610 and step 620 may be omitted when a client device is updating, changing, modifying, and/or altering an existing record. Similarly, steps 610 and step 620 may be omitted, for example, when a client device is creating a new record after creating an account with the technology platform described herein. In the examples described above, steps 610 and 620 may be replaced with an authentication (e.g., login) procedure. - In order for a record to be written to the ledger, the record may need to be verified by one or more users that are authorized to review records before they are written to the ledger.
FIG. 7 shows an example of aprocess 700 for verifying a record in accordance with one or more aspects of the disclosure. Some or all of the steps ofprocess 700 may be performed using one or more computing devices as described herein, including, for example, theserver 110, thefirst device 120, the second device, thecomputing device 200, or any combination thereof. - In
step 710, a client device (e.g., an application executing on the client device) may receive a first unique code and/or a transaction identifier. As noted above, the first unique code and/or the transaction may be received via an electronic communication an electronic communication (e.g., digital message (e.g., text message, SMS, MMS, etc.), application programmable interface (API) call, file input, asynchronous data communication, synchronous communication, email communication, push notification, etc.). Additionally or alternatively, the client device may cause a list of transactions awaiting user approval to be displayed on the client device. In this example, a user may select one or more transactions from the list of transactions. In response to the user's selection, the client device may retrieve the record instep 720. The record may comprise a second unique code. In step 730, the client device may compare the first unique code to the second unique code. If first unique code and the second unique code do not match, the client device may send an indication to the server that the record is denied in step 740. However, if the first unique code and the second code match, the client device may send a verification of the record to the server in step 750. - The verification may comprise invoking a smart contract to approve the record. The verification may comprise two parameters. The first parameter may be a digital signature of a first one-way function (e.g., hash function) of the first unique code, the approving user's username, the record identifier, and/or the asset identifier. The digital signature may be generated with a private key of the approving user. The first one-way function may be SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256, SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256, etc. The second parameter may be a result of applying a second one-way function to the transaction identifier and the approving user's username. The second one-way function may be any of the one-way functions described above with respect to the first one-way function.
- Once the record is generated and consensus is reached for the record, the record may be written (e.g., committed) to the ledger.
FIG. 8 shows an example of aprocess 800 of writing a record to a ledger (e.g., blockchain, database, immutable database, etc.) in accordance with one or more aspects of the disclosure. Some or all of the steps of process 500 may be performed using one or more computing devices as described herein, including, for example, theserver 110, thefirst device 120, the second device, thecomputing device 200, or any combination thereof. - In
step 810, a server (e.g., an application executing on the server) may receive a request for one or more approving devices. The server may receive the request from a client device (e.g., a client application executing on the client device). The request may comprise an affiliation or identifier associated with a tenant organization that is creating and/or modifying a record. The request may be received via one or more APIs. The server may use the affiliation, or the identifier, to query a database to retrieve one or more records associated with the tenant organization. The one or more records may identify one or more approving devices for the tenant organization. For example, the server may obtain an access control list (ACL) from the tenant organization, and receive identification information of each of the one or more approving devices from the ACL by, for example, querying an API (e.g., a host application API). The identification information may comprise at least one of a phone number, an email address, a username, a user ID, and/or other user identification information for each of the one or more approving devices. Additionally or alternatively, the one or more records may identify a quantity of verifications required to write a record to the ledger. - In step 820, the server may send a response to the request for the one or more approving devices. The response may comprise the identification information for each of the one or more approving devices. The server may send the response to the client device via the one or more APIs.
- In
step 830, the server, acting as a proxy node, may receive a record of an asset from a client device. As noted above, the record may comprise a transaction identifier, a record identifier, an asset identifier, a unique code for each of the one or more approving devices, and/or identification information for each of the one or more approving devices. The server may determine (e.g., set, change) a state attribute of the record based on receiving the record. For example, based on receiving the record, the server may set a state attribute of the record to be “invoked,” and/or set a state attribute of the record to “pending.” Additionally or alternatively, the server may change a state attribute of the record from “possibleApprovals” (or similar designation) to a list of the one or more approving devices. - In
step 835, the server may generate a temporary record based on the record. The temporary record may be stored in a private ledger, for example, maintained by the transaction platform described herein. The server may, for each of the one or more approving devices on the list, generate a unique code. The unique code may be a pseudorandom number associated with each of the one or more approving devices. The unique code may be a one-time code. Additionally or alternatively, the server may generate two verification parameters for each of the one or more approving devices, for example, in response to receiving the record. The first verification parameter may be a first result of a one-way function (e.g., hash function) applied to a first unique code associated with a first user, first identification information of the first user, and the record identifier. The second verification parameter (e.g., a record key) may be a second result of a one-way function (e.g., hash function) applied to the transaction identifier and the first identification information of the first user. The server may store the first verification parameter and the second verification parameter on the ledger as the temporary record. - Additionally or alternatively, the server may clone the record to create a temporary record. For example, the server may clone the record using a key. The key may be a result of a one-way function (e.g., hash function) applied to the transaction identifier and the first identification information of the first user. The server may add an object to the temporary record's state attribute—“possibleApprovals” (or similar designation). The object may comprise identification information of a user associated with, or otherwise linked to, a first result of a one-way function (e.g., hash function) applied to a unique code associated with the user, the identification information of the user, and the record identifier and a second result of a one-way function (e.g., hash function) applied to the transaction identifier and the identification information of the user.
- In step 840, the server may send a record to the one or more approving devices (e.g., a device associated with each of the one or more users authorized to review and/or approve the record). The server may send the record, for example, in response to or based on receiving a request for the record from each of the one or more approving devices. Additionally or alternatively, the server may push the record to the one or more approving devices, for example, in response to the one or more approving devices logging into a client-side application. Additionally or alternatively, the server may send the unique code and information associated with the record (e.g., the entire transaction identifier, or the last several characters of the transaction identifier) to each of the one or more approving devices (e.g., a client device associated with each user authorized to review/approve the record). In this regard, the server may send the unique code and the information associated with the record to each of the one or more approving devices via an external message (e.g., text message, SMS, email communication, push notification, etc.).
- A client device (e.g., the
client device 120, the application 122) may receive an indication of one or more records that require review. For example, a user (e.g., a user authorized to review/approve) may log in to theapplication 122 and view a list of pending approvals for one or more records. The list of pending approvals may comprise one or more transaction identifiers. The user may select a record with the transaction identifier matching the information associated with the record received by the user. For example, the user may select a record with a transaction identifier matching the last several (e.g., 6) characters of the received transaction identifier. In this regard, the client device may receive a unique code and a transaction identifier of a record for review. Theapplication 122 may retrieve the record, for example, using the transaction identifier. The record may be retrieved from theserver 110, theapplication 112, a private ledger (e.g., database) (not shown), theledger 140, or any combination thereof. Upon receiving the record, the client device may compare the unique code with a unique code stored with the record. Additionally or alternatively, the client device may invoke a smart contract by inputting (e.g., sending to the server) two parameters, as described above. For example, the first parameters may be a digital signature of applying a first one-way function (e.g., hash function) to the received unique code, the user's username, and the record identifier. The digital signature may be generated with a private key of the approving user. The second parameter may be a result of applying a second one-way function (e.g., hash function) to the transaction identifier and the user's username. The client device may send a message (e.g., a data packet) comprising the first parameter and the second parameter to the server. - In
step 850, the server may receive a communication from each of the one or more approving devices. The communication may comprise the first parameter and the second parameter. Based on the invocation of the smart contract by the user and/or the receiving the message, the server may load the record using a key (e.g., the second parameter received from the client device). The server may verify (e.g., validate) the user's digital signature of the first parameter, for example, using the user's public key. If the digital signature of the first parameter is verified, the server may compare the first verification parameter generated by the server to the result of the user's first one-way function applied to the unique code, the user's username, and the record identifier (e.g., indicating the digital twin of the resource). Similarly, the server may compare the second verification parameter generated by the user to the result of the user's second one-way function applied to the transaction identifier and the user's username. If both of the results of the functions provided by the client device match the first verification parameter and the second verification parameter generated by the server respectively, the record may be deemed verified by the approving user. After being verified, the record may be written to a public ledger (e.g., ledger 140) and deleted from the private ledger. Additionally or alternatively, the record may be committed to a public ledger (e.g., ledger 140) and any clone and/or temporary records stored on the public ledger may be removed (e.g., deleted) after the record has been verified. - Additionally or alternatively, the server may load a cloned record using a key (e.g., the second parameter received from the client device). The server may retrieve an object from the cloned record. For example, the server may retrieve the object based on the “possibleApprovals” (or similar designation) attribute of the record. In this regard, the server may retrieve the “possibleApprovals” (or similar designation) attribute of the record based on a determination that the “possibleApprovals” (or similar designation) attribute of the record matches the identification information of the user. The server may then verify the user's digital signature of the first parameter, for example, using the user's public key. If the digital signature of the first parameter is verified, the server may compare the first verification parameter generated by the server to the result of the user's first one-way function applied to the unique code, the user's username, and the record identifier. If the first verification parameter generated by the server matches the result of the user's first one-way function applied to the unique code, the user's username, and the record identifier, the server may load the cloned record using a key (e.g., the second parameter received from the client device), and authenticate the cloned record. Based on the authentication of the cloned record, the server may copy the cloned record's properties (e.g., information associated with the authentication of the cloned record) to the record.
- If one, or both, of the results do not match, the record may not be considered verified by the server, and the record will not be written as confirmed and/or accepted to the ledger (e.g., ledger 140). The verification of both the first verification parameter and the second verification parameter provides two-factor verification for writing records to a ledger. It will be appreciated that
step 850 may be applied to any number of responses received from a plurality of the one or more approving devices. - In
step 860, the server may determine whether a number of verifications satisfies a threshold. In this regard, a tenant organization may indicate that a predetermined number of approving devices need to verify the record before the record can be written to the ledger. Additionally or alternatively, the threshold may be verified by a predetermined percentage of the approving devices (e.g., more than 50% of the approving devices), or other such approval protocol (e.g., consensus protocol). In some examples, every signed metadata field may be verified by the one or more approving devices of the tenant organization. If the threshold is not satisfied, the server may delete the record instep 870. Alternatively, the server may keep the record pending until a predetermined number of responses have been received or a predetermined amount of time has been passed before deleting the record. - In step 875, if the threshold is satisfied, then the server may sign the record. For example, the server may generate a signature associated with the record, using a private key (e.g., a server private key). The signature may indicate that the record has been approved by a number of approving devices.
- In
step 880, the server may store the record in the ledger. For example, if the threshold is satisfied, the server may write the record to the ledger (e.g., ledger 140). As noted above, writing the record to the ledger may include writing the record to another ledger (e.g., public ledger) from a private ledger. The server may determine (e.g., set, change, reset) one or more state attributes of the record, based on a determination that the threshold is satisfied. For example, the server may change a state attribute of the record from “pending” to “valid,” or “validated” and/or change a state attribute of the record from “possibleApprovals” to “null,” and list each one of the one or more approving devices for the record (e.g., “ApprovedBy”=userFTid). Instep 890, any temporary records and/or cloned records may be deleted, for example, based on or in response to the record being written to the ledger. - After one or more records are written to the ledger, the server may periodically (e.g., hourly, daily, weekly, monthly, etc.) analyze the records to identify the parties and/or processes, authenticate relationships across a resource's lifecycle, digitally verify data from shared sources, validate compliance with laws and regulations, and/or identify potential fraud. The server (e.g., an application executing on the server) may review the records stored in the ledger on a regular basis (e.g., hourly, daily, weekly, monthly, etc.). The server may then analyze the records to identify records that may present a potential risk. The potential risk may be potential theft, potential fraud, an environmental risk, etc. The analysis performed by the server may comprise one or more of the machine learning models above. When the server identifies one or more risks, the server may generate one or more electronic communications, notifications, alerts, etc.
- In one example, a record of 20,000 barrels of nitrogen sulfate may appear in a record in the ledger. The server and/or the one or more machine learning models executing on the server may identify the probable source of the 20,000 barrels of nitrogen sulfate. Additionally or alternatively, the server and/or the one or more machine learning models executing on the server may determine where the 20,000 barrels of nitrogen sulfate where introduced into the supply chain and/or by whom. The server and/or the one or more machine learning models executing on the server may also determine whether the 20,000 barrels of nitrogen sulfate are stolen and/or fraudulent. Based on the analysis, the technology platform may notify the owner of the nitrogen sulfate, the appropriate authorities and/or environmental agencies, etc.
- In another example, the technology platform described herein may identify an origin of an oil spill, for example, when a record of the oil spill is recorded in the ledger. In this regard, there may be no report of the spill. However, based on the analysis performed by the server and/or the one or more machine learning models executing on the server, the technology platform may identify the origin (e.g., ship, derrick, etc.) of the oil spill and/or the time oil spent in the environment. Similar to the analysis above, the technology platform may notify the owner of the nitrogen sulfate, the appropriate authorities and/or environmental agencies, etc. to remediate the oil spill.
- By capturing and/or collecting the detailed transactional information and parametric information of each discreet transaction/change associated with a resource, the technology platform described herein may create a unique digital DNA or fingerprint of a state in time of the components of the transaction in a process. The technology platform may be able to determine the counterparties of a transaction using the digital DNA, or fingerprint, of the transaction and probabilistic regression analysis of available data (including external sources). The technology platform may be able to validate the counterparties and the transaction through utilization of recording to an immutable record systems (such as blockchain) and the counterparty validation mechanisms therein (e.g., parties accepting the update write to the ledger/database). Moreover, the technology platform described herein may maintain non-validated transactions, or partially validated transactions, in a transaction record system. The non-validated transactions, or partially validated transactions, may be re-analyzed and/or await validation (e.g., wait until completely validated).
- One or more aspects discussed herein may be embodied in computer-usable or readable data and/or computer-executable instructions, such as in one or more program modules, executed by one or more computers or other devices as described herein. Generally, program modules include routines, programs, objects, components, data structures, and the like. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other device. The modules may be written in a source code programming language that is subsequently compiled for execution, or may be written in a scripting language, such as (but not limited to) Perl, Python, HTML, XSLT, or any suitable scripting language. The computer executable instructions may be stored on a computer readable medium such as a hard disk, optical disk, removable storage media, solid-state memory, RAM, and the like. As will be appreciated by one of skill in the art, the functionality of the program modules may be combined or distributed as desired in various embodiments. In addition, the functionality may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, field programmable gate arrays (FPGA), and the like. Particular data structures may be used to more effectively implement one or more aspects discussed herein, and such data structures are contemplated within the scope of computer executable instructions and computer-usable data described herein. Various aspects discussed herein may be embodied as a method, a computing device, a system, and/or a computer program product.
- Although certain specific aspects of various example embodiments have been described, many additional modifications and variations would be apparent to those skilled in the art. In particular, any of the various processes described above may be performed in alternative sequences and/or in parallel (on different computing devices) in order to achieve similar results in a manner that is more appropriate to the requirements of a specific application. Thus, embodiments disclosed should be considered in all respects as examples and not restrictive. Accordingly, the scope of the inventions herein should be determined not by the embodiments illustrated, but by the appended claims and their equivalents.
Claims (20)
1. A method comprising:
receiving, by a computing device, a record, wherein the record comprises a transaction identifier and identification information for each of one or more approving devices;
generating, based on the record, a temporary record;
sending, to a device associated with a third-party that is authorized to approve the record, the temporary record;
receiving, from the device associated with a third-party that is authorized to approve the record, a communication indicating approval of the temporary record;
generating, based on a determination that a predetermined number of approving devices have approved the temporary record, a signature for the record; and
storing, based on the determination that the predetermined number of approving devices have approved the temporary record, the record in a plurality of ledgers.
2. The method of claim 1 , further comprising:
deleting, after storing the record in the plurality of ledgers, the temporary record.
3. The method of claim 1 , further comprising:
receiving, from a user device that created the record, a request for identifying information associated with each of the one or more approving devices;
determining, based on the request, the identifying information for each of the one or more approving devices; and
sending, to the user device that created the record, the identifying information for each of the one or more approving devices.
4. The method of claim 3 , wherein the identifying information comprises at least one of: a phone number; an email address, a username, or a user ID.
5. The method of claim 1 , further comprising:
sending, via an electronic communication, the temporary record to the device associated with the third-party that is authorized to approve the record.
6. The method of claim 5 , wherein the electronic communication comprises at least one of a digital message, an application programmable interface (API) call, a file input, an asynchronous data communication, a synchronous communication, an email communication, a push notification, or an intra-application communication.
7. The method of claim 1 , wherein the record comprises information indicating at least one of: an asset identifier; parametric or molecular data of a resource; a last known holder of the resource; a location of the resource; parameter measurements of the resource; or historic and back-tested knowledge of efficiency potential of each parametric element, formula, or content of the resource.
8. The method of claim 1 , further comprising:
sending, to the device associated with the third-party that is authorized to approve the record, a unique code; and
receiving, from the device associated with the third-party that is authorized to approve the record device associated with a third-party that is authorized to approve the record, a signature of the unique code with the communication indicating approval of the temporary record.
9. The method of claim 1 , wherein the plurality of ledgers comprises:
a private ledger accessible by a subset of the one or more approving devices; and
a public ledger accessible by the device associated with a third-party that is authorized to approve the record.
10. The method of claim 1 , wherein the plurality of ledgers comprises one or more of:
a public blockchain;
a private blockchain;
a hybrid blockchain;
a distributed database;
an immutable database;
a distributed ledger;
a declarable blockchain; or
a discoverable blockchain.
11. A computing device comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors, cause the computing device to:
receive a record, wherein the record comprises a transaction identifier and identification information for each of one or more approving devices;
generate, based on the record, a temporary record;
send, to a device associated with a third-party that is authorized to approve the record, the temporary record;
receive, from the device associated with a third-party that is authorized to approve the record, a communication indicating approval of the temporary record;
generate, based on a determination that a predetermined number of approving devices have approved the temporary record, a signature for the record;
store, based on the determination that the predetermined number of approving devices have approved the temporary record, the record in a plurality of ledgers; and
delete, after storing the record in the plurality of ledgers, the temporary record.
12. The computing device of claim 11 , wherein the instructions, when executed by the one or more processors, cause the computing device to:
receive, from a user device that created the record, a request for identifying information associated with each of the one or more approving devices;
determine, based on the request, the identifying information for each of the one or more approving devices wherein the identifying information comprises at least one of: a phone number; an email address, a username, or a user ID; and
send, to the user device that created the record, the identifying information for each of the one or more approving devices.
13. The computing device of claim 11 , wherein the instructions, when executed by the one or more processors, cause the computing device to send, via an electronic communication, the temporary record to the device associated with the third-party that is authorized to approve the record, wherein the electronic communication comprises at least one of a digital message, an application programmable interface (API) call, a file input, an asynchronous data communication, a synchronous communication, an email communication, a push notification, or an intra-application communication.
14. The computing device of claim 11 , wherein the record comprises information indicating at least one of: an asset identifier; parametric or molecular data of a resource; a last known holder of the resource; a location of the resource; parameter measurements of the resource; or historic and back-tested knowledge of efficiency potential of each parametric element, formula, or content of the resource.
15. The computing device of claim 11 , wherein the instructions, when executed by the one or more processors, cause the computing device to:
send, to the device associated with the third-party that is authorized to approve the record, a unique code; and
receive, from the device associated with the third-party that is authorized to approve the record device associated with a third-party that is authorized to approve the record, a signature of the unique code with the communication indicating approval of the temporary record.
16. The computing device of claim 11 , wherein the plurality of ledgers comprises:
a private ledger accessible by a subset of the one or more approving devices; and
a public ledger accessible by the device associated with a third-party that is authorized to approve the record.
17. A non-transitory computer-readable medium storing instructions that, when executed, configure a computing device to:
receive a record, wherein the record comprises a transaction identifier and identification information for each of one or more approving devices;
generate, based on the record, a temporary record;
send, to a device associated with a third-party that is authorized to approve the record, the temporary record;
receive, from the device associated with a third-party that is authorized to approve the record, a communication indicating approval of the temporary record;
generate, based on a determination that a predetermined number of approving devices have approved the temporary record, a signature for the record;
store, based on the determination that the predetermined number of approving devices have approved the temporary record, the record in a plurality of ledgers; and
delete, after storing the record in the plurality of ledgers, the temporary record.
18. The non-transitory computer-readable medium of claim 17 , wherein the instructions, when executed, configure the computing device to:
receive, from a user device that created the record, a request for identifying information associated with each of the one or more approving devices;
determine, based on the request, the identifying information for each of the one or more approving devices wherein the identifying information comprises at least one of: a phone number; an email address, a username, or a user ID; and
send, to the user device that created the record, the identifying information for each of the one or more approving devices.
19. The non-transitory computer-readable medium of claim 17 , wherein the instructions, when executed, configure the computing device to:
send, to the device associated with the third-party that is authorized to approve the record, a unique code; and
receive, from the device associated with the third-party that is authorized to approve the record device associated with a third-party that is authorized to approve the record, a signature of the unique code with the communication indicating approval of the temporary record.
20. The non-transitory computer-readable medium of claim 17 , wherein the plurality of ledgers comprises:
a private ledger accessible by a subset of the one or more approving devices; and
a public ledger accessible by the device associated with a third-party that is authorized to approve the record.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18/167,443 US20230245110A1 (en) | 2021-04-22 | 2023-02-10 | Multi-Tenant Node on a Private Network of Distributed, Auditable, and Immutable Databases |
US18/581,961 US20240232872A1 (en) | 2021-04-22 | 2024-02-20 | Multi-Tenant Node on a Private Network of Distributed, Auditable and Immutable Databases |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163178294P | 2021-04-22 | 2021-04-22 | |
US17/722,759 US11610199B2 (en) | 2021-04-22 | 2022-04-18 | Multi-tenant node on a private network of distributed, auditable, and immutable databases |
US18/167,443 US20230245110A1 (en) | 2021-04-22 | 2023-02-10 | Multi-Tenant Node on a Private Network of Distributed, Auditable, and Immutable Databases |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/722,759 Continuation US11610199B2 (en) | 2021-04-22 | 2022-04-18 | Multi-tenant node on a private network of distributed, auditable, and immutable databases |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/581,961 Continuation US20240232872A1 (en) | 2021-04-22 | 2024-02-20 | Multi-Tenant Node on a Private Network of Distributed, Auditable and Immutable Databases |
Publications (1)
Publication Number | Publication Date |
---|---|
US20230245110A1 true US20230245110A1 (en) | 2023-08-03 |
Family
ID=83722612
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/722,906 Abandoned US20220359046A1 (en) | 2021-04-22 | 2022-04-18 | Machine-learning-based chemical analysis |
US17/722,759 Active US11610199B2 (en) | 2021-04-22 | 2022-04-18 | Multi-tenant node on a private network of distributed, auditable, and immutable databases |
US18/167,443 Abandoned US20230245110A1 (en) | 2021-04-22 | 2023-02-10 | Multi-Tenant Node on a Private Network of Distributed, Auditable, and Immutable Databases |
US18/581,961 Pending US20240232872A1 (en) | 2021-04-22 | 2024-02-20 | Multi-Tenant Node on a Private Network of Distributed, Auditable and Immutable Databases |
US18/589,911 Pending US20240265380A1 (en) | 2021-04-22 | 2024-02-28 | Machine-Learning-Based Chemical Analysis |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/722,906 Abandoned US20220359046A1 (en) | 2021-04-22 | 2022-04-18 | Machine-learning-based chemical analysis |
US17/722,759 Active US11610199B2 (en) | 2021-04-22 | 2022-04-18 | Multi-tenant node on a private network of distributed, auditable, and immutable databases |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US18/581,961 Pending US20240232872A1 (en) | 2021-04-22 | 2024-02-20 | Multi-Tenant Node on a Private Network of Distributed, Auditable and Immutable Databases |
US18/589,911 Pending US20240265380A1 (en) | 2021-04-22 | 2024-02-28 | Machine-Learning-Based Chemical Analysis |
Country Status (2)
Country | Link |
---|---|
US (5) | US20220359046A1 (en) |
WO (1) | WO2022225840A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102646519B1 (en) * | 2023-09-14 | 2024-03-13 | 주식회사 호원소프트 | Device and method for providing electronic research note service |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230328048A1 (en) * | 2022-04-07 | 2023-10-12 | Benji Kip Rogers | Mutable Cryptographic Digital Multimedia Assets |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6662116B2 (en) | 2001-11-30 | 2003-12-09 | Exxonmobile Research And Engineering Company | Method for analyzing an unknown material as a blend of known materials calculated so as to match certain analytical data and predicting properties of the unknown based on the calculated blend |
WO2003093815A1 (en) | 2002-05-01 | 2003-11-13 | Exxonmobil Upstream Research Company | Chemical structural and compositional yields model for predicting hydrocarbon thermolysis products |
WO2004081680A1 (en) * | 2003-03-10 | 2004-09-23 | Dynochem Ip Limited | A physiocochemical process modelling system |
US7349926B2 (en) * | 2004-03-30 | 2008-03-25 | International Business Machines Corporation | Atomic renaming and moving of data files while permitting lock-free look-ups |
US7933763B2 (en) | 2004-04-30 | 2011-04-26 | Mdl Information Systems, Gmbh | Method and software for extracting chemical data |
US7874489B2 (en) * | 2005-06-20 | 2011-01-25 | Authentiform Technologies, Llc | Product authentication |
US8735820B2 (en) * | 2010-04-09 | 2014-05-27 | Tesoro Refining And Marketing Company | Direct match spectrographic determination of fuel properties |
US20120153139A1 (en) * | 2010-12-16 | 2012-06-21 | Exxonmobil Research And Engineering Company | Generation of model-of-composition of petroleum by high resolution mass spectrometry and associated analytics |
EP2788754B1 (en) * | 2012-01-13 | 2019-07-03 | Aspen Technology Inc. | Method of characterizing chemical composition of crude oil for petroleum refinery processing |
US10521775B2 (en) | 2016-04-18 | 2019-12-31 | R3 Ltd. | Secure processing of electronic transactions by a decentralized, distributed ledger system |
WO2018200521A2 (en) | 2017-04-24 | 2018-11-01 | Aspen Technology, Inc. | Molecular characterization method and system |
EP3631736B1 (en) | 2017-05-23 | 2023-08-30 | Materialytics, LLC | Distributed ledger for physical material |
WO2019213530A1 (en) * | 2018-05-03 | 2019-11-07 | SigmaLedger, Inc. | Verifying authenticity of products based on proof and transfer of ownership |
WO2020000011A1 (en) * | 2018-06-25 | 2020-01-02 | Commonwealth Scientific And Industrial Research Organisation | Blockchain system and method |
EP3827393A4 (en) | 2018-07-24 | 2022-03-23 | Truckl LLC | Systems for supply chain event management |
US11011254B2 (en) * | 2018-07-31 | 2021-05-18 | International Business Machines Corporation | Chemical formulation-aware cognitive search and analytics |
US20200104465A1 (en) * | 2018-10-01 | 2020-04-02 | International Business Machines Corporation | Real-Time Prediction of Chemical Properties Through Combining Calculated, Structured and Unstructured Data at Large Scale |
US20200134760A1 (en) * | 2018-10-31 | 2020-04-30 | Motorola Solutions, Inc | Method for Weighted Voting in a Public Safety Distributed Ledger |
WO2020145881A1 (en) | 2019-01-07 | 2020-07-16 | Little Bit Pte Ltd | Method and system for valuable metal storage and management |
US11811769B2 (en) | 2019-01-31 | 2023-11-07 | Salesforce, Inc. | Systems, methods, and apparatuses for implementing a declarative, metadata driven, cryptographically verifiable multi-network (multi-tenant) shared ledger |
US11430066B2 (en) | 2019-04-29 | 2022-08-30 | Securrency, Inc. | Systems, methods, and storage media for managing digital liquidity tokens in a distributed ledger platform |
US11206138B2 (en) | 2019-05-02 | 2021-12-21 | Ernst & Young U.S. Llp | Biosignature-based tokenization of assets in a blockchain |
JP2022535119A (en) | 2019-06-04 | 2022-08-04 | エボニック オペレーションズ ゲーエムベーハー | Unique identification and authentication of products |
WO2021250022A1 (en) | 2020-06-10 | 2021-12-16 | Elas Holdings PTY LTD | Computer implemented systems and methods |
US20210390549A1 (en) * | 2020-06-15 | 2021-12-16 | Capital One Services, Llc | Systems and methods for building blockchains for verifying assets for smart contracts |
US11848937B2 (en) * | 2020-09-18 | 2023-12-19 | Booz Allen Hamilton Inc. | Secure communication using blockchain technology |
US20220222610A1 (en) | 2021-01-11 | 2022-07-14 | Hall Labs Llc | Unified Tracking System |
-
2022
- 2022-04-18 US US17/722,906 patent/US20220359046A1/en not_active Abandoned
- 2022-04-18 US US17/722,759 patent/US11610199B2/en active Active
- 2022-04-18 WO PCT/US2022/025192 patent/WO2022225840A1/en active Application Filing
-
2023
- 2023-02-10 US US18/167,443 patent/US20230245110A1/en not_active Abandoned
-
2024
- 2024-02-20 US US18/581,961 patent/US20240232872A1/en active Pending
- 2024-02-28 US US18/589,911 patent/US20240265380A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102646519B1 (en) * | 2023-09-14 | 2024-03-13 | 주식회사 호원소프트 | Device and method for providing electronic research note service |
Also Published As
Publication number | Publication date |
---|---|
US11610199B2 (en) | 2023-03-21 |
US20220359046A1 (en) | 2022-11-10 |
US20240232872A1 (en) | 2024-07-11 |
WO2022225840A1 (en) | 2022-10-27 |
US20220351197A1 (en) | 2022-11-03 |
US20240265380A1 (en) | 2024-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240232872A1 (en) | Multi-Tenant Node on a Private Network of Distributed, Auditable and Immutable Databases | |
US10572685B1 (en) | Protecting sensitive data | |
US11669827B1 (en) | GPS validation for transactions | |
US20240242180A1 (en) | Non-Fungible Tokens for Tracking Fungible Assets | |
CN110073353A (en) | Operating system and method based on container | |
US20130041866A1 (en) | Information Tracking System and Method | |
US20200236168A1 (en) | Decentralized data flow valuation and deployment | |
US20200143242A1 (en) | System and method for creating and providing crime intelligence based on crowdsourced information stored on a blockchain | |
AU2024213170A1 (en) | Automated account maintenance and fraud mitigation tool | |
US20220027803A1 (en) | Sustainable tokens for supply chain with privacy preserving protocol | |
EA037189B1 (en) | Creating secure data in an oil and gas supply chain | |
EP3931723A1 (en) | Zero trust communication system for freight shipping organizations, and methods of use | |
US20220036323A1 (en) | Electronic wallet allowing virtual currency expiration date | |
US20210365570A1 (en) | Zero trust communication system for freight shipping organizations, and methods of use | |
US20210150477A1 (en) | Automated conflict resolution | |
BR112021002227A2 (en) | distributed ledger platform for access control | |
US12033196B2 (en) | Accelerated invoicing using predictive freight events | |
CN110033367A (en) | Based on the contract record method and device of block chain, electronic equipment | |
US11842287B1 (en) | Systems and methods for conducting blockchain actions based on network mappings of self-executing program characteristics | |
US11763011B2 (en) | Zero trust communication system for freight shipping organizations, and methods of use | |
US20240235859A9 (en) | Systems and methods for conditional distribution of aggregated cryptographic data based on a trigger | |
US12088726B2 (en) | Systems and methods for predicting communication account identities across decentralized applications | |
Balfaqih et al. | A Blockchain-Enabled IoT Logistics System for Efficient Tracking and Management of High-Price Shipments: A Resilient, Scalable and Sustainable Approach to Smart Cities. Sustainability, 2023, 15 (18) | |
Jlil et al. | Blockchain-Based Mobile Application for Traffic Accident Report's Management | |
Felix Johannes | Hardened Model Aggregation for Federated Learning backed by Distributed Trust Towards decentralizing Federated Learning using a Blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: FUELTRUST, INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ARNEAULT, JONATHAN;COVA, MARCO;REEL/FRAME:062659/0070 Effective date: 20220412 |
|
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 |