EP3921741A1 - Distributed ledger computing platforms and associated methods, systems and devices - Google Patents
Distributed ledger computing platforms and associated methods, systems and devicesInfo
- Publication number
- EP3921741A1 EP3921741A1 EP20753206.0A EP20753206A EP3921741A1 EP 3921741 A1 EP3921741 A1 EP 3921741A1 EP 20753206 A EP20753206 A EP 20753206A EP 3921741 A1 EP3921741 A1 EP 3921741A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- blockchain
- node
- user
- transactions
- database
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3231—Biological data, e.g. fingerprint, voice or retina
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0861—Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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/21—Design, administration or maintenance of databases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Definitions
- the invention relates to an improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions.
- the invention may broadly be said to consist of a distributed ledger system configured to create, update and maintain at least one blockchain indicative of transactions performed by a network of users of the system, the system comprising:
- a network of computing devices including a network of user nodes in communication with one another to participate in transactions and subsequently write the transactions to an associated blockchain, each node being associated with at least one processor and at least one computer-readable medium having recorded thereon instructions to be executed by the processor(s) to carry out one or more blockchain-related tasks for creating, updating and/or maintaining at least one associated blockchain of the system based on the transactions;
- the network of computing devices is operable to enable at least one ephemeral user node to join the network of computing devices to carry out the blockchain-related tasks in association with at least one blockchain during an active session of the ephemeral user node.
- the invention may broadly be said to consist of a method for maintaining at least one blockchain stored in a distributed ledger system, the method comprising:
- the invention may broadly be said to consist of a distributed computing system configured to enable a network of users of the system to participate in one more transactions:
- each node being associated with at least one processor and at least one computer readable medium for participating in the one or more transactions with other user nodes in the network;
- a distributed ledger system capable of creating, maintaining and updating at least one blockchain indicative of the one or more transactions via the network of user nodes
- one or more databases accessible by the network of nodes for recording and reading data relating to the one or more transactions between the user nodes.
- the invention may broadly be said to consist of a method for enabling a network of users to participate in one more transactions, comprising the steps of:
- a network of user nodes to communicate with one another and participate in one or more transactions amongst two or more nodes, each node being associated with at least one processor and at least one computer readable medium for executing the transaction(s);
- the invention may broadly be said to consist of a computing platform for enabling the development of a distributed computing system application running on a user's computing device including at least one processor and at least one computer readable medium, the platform comprising: one or more application interfaces for enabling the generation of a user node application executable on a user's computing device, the user node application having the functionality of: communicating with other user node application(s) in a network of user nodes to perform one or more transactions with the other user node application(s),
- the data relating to the at least one blockchain comprises data indicative of the one or more transactions of the associated blockchain.
- At least one of the databases is a NoSQL database.
- each user node is configured to access data relating to transactions associated with the user node.
- At least one blockchain storing one or more transactions using the distributed ledger system is substantially synchronised with associated copies of the one or more transactions in the at least one database.
- the non-SQL database stores data indicative of a status of one or more transactions between user nodes.
- the non-SQL database is utilised to record blockchain-related transactions between the user nodes.
- each user node is configured to execute data access layer software for translating blockchain-related transaction data acquired from the at least one database to data suitable for use as a transaction in the distributed ledger system. In some embodiments each user node is configured to execute data access layer software for translating blockchain-related transaction data acquired from the distributed ledger system to data suitable for use to store as a transaction in the at least one database.
- each user node is configured to execute database management software for enabling the node to create, read, update and/or delete one or more blockchain related transactions on the at least one database.
- each user node is configured to execute database management software for enabling the node to transmit one or more blockchain related transactions stored in the at least one database to the user node for use in distributed ledger system.
- each user node is configured to execute node software for performing the one or more blockchain related tasks.
- each computing device is configured to execute address filtering software for identifying blockchain-related transactions originating from the node software or from the database management software for a particular user node, for one or more user nodes or databases.
- At least one user node is an ephemeral node configured to temporarily join the network of user nodes to carry out the blockchain-related tasks in association with at least one blockchain during an active session of the ephemeral user node.
- the network of user nodes is operable to enable at least one ephemeral user node to repeatedly join the network of computing devices to carry out the blockchain-related tasks in association with at least one blockchain during multiple active sessions.
- the node is configured to access and execute the blockchain-related tasks via a web browser instance operable using the processor(s) associated with the node.
- the node is configured to access and execute the blockchain-related tasks using a webAssembly container. In some embodiments all nodes are ephemeral nodes.
- At least one node is an ephemeral node and the ephemeral node is configured to maintain a full-copy of the blockchain or an ephoch of the blockchain.
- the network of nodes comprises at least one ephemeral node operating as a full- node, wherein the full-node is operable to execute a mining task of the blockchain-related tasks for selecting a node within the network to write a next validated block to the blockchain.
- the mining task is operative using a proof-of-stake method.
- the network of nodes are capable of communicating with one another via a peer- to-peer communications protocol.
- the peer-to-peer communication is facilitated by webRTC.
- one or more transactions executed and stored via the distributed ledger system and/or via the database have associated therewith any one or more of the following identifiers: user identifier, blockchain identifier, hierarchy level identifiers associated with a hierarchy system for a group of the user nodes, and/or an entity identifier associated with a user node.
- the invention may broadly be said to consist of a distributed computing platform, providing general purpose computing coupled with a ledger comprising:
- the indexed Database is capable of communicating database transactions to other software applications which translates or manipulates each database transaction into a form suitable to be received and processed as a blockchain or distributed ledger transaction by said blockchain node.
- each application created on the platform software to has a unique ledger identifier GUID and is part of the Platform's ecosystem, enabling communication between ledgers.
- applications created on or by the platform may also run on large scale devices or Servers or cloud-provided scalable computing or traditionally in existing datacentres.
- some applications created on or by the platform may run using headless chrome instead of a web browser.
- the platform enables the development of a software application running in a web-browser in a user device to distribute database transactions to a corresponding node in said application in a form suitable for creation of a blockchain transaction and transmit said transactions securely across a peer-to-peer network as corresponding blockchain or distributed ledger transactions.
- each application instance runs a node and the local database only holds transaction data that are relevant to the system, application or user.
- a blockchain as a way of synchronising data between a blockchain instance running a fully operational or participating ephemeral or otherwise blockchain node and one or more SQL or Non SQL Databases. That is the transactions can be written to one or more of both a blockchain and a database and including a local database in a User / Client device which could, for example, be set up to contain only transactions with addresses of the user associated with the User / Client device. Said addresses are user addresses i.e.
- DAL data access layer API
- Said Databases in said User device could, for example, be set up to contain only transactions with addresses and private keys of the user and or associated with the User device and/or addresses and the private keys of said addresses granted to or provided by others on a commercial basis or otherwise to the User.
- Said addresses are user addresses or addresses necessary or useful for the User to be able to perform actions including gain access to, or run certain applications i.e. addresses for which the User has the private key (Addresses). Said addresses may contain an
- Said local database would provide instant access for a User to create, read, update or delete transactions whilst also creating and adding the transaction to a queue of proposed transactions for the next block to be written into a blockchain and write into the next block in a blockchain.
- Transactions in the blockchain and database may for example contain the executable code of any Application capable of running in a web browser and which can be launched and run within the User device without or at least with minimal dependency on a central server or database.
- the sequentially written blockchain records could as necessary be read and or searched and records recovered and compared with a corresponding database to verify that the said database reflects exactly the transactions in the blockchain.
- Said blockchain transactions could be written out again to refresh an existing database or create another or copy database.
- the management system could launch an update of ausers database by "replaying" the blockchain to filter into the Users database all blockchain transactions having addresses and private keys, including said new address, to which the Users Node management software has access.
- addresses may include a two part or
- the Database can provide fast access for all Users purposes including creating a new transaction or updating an existing transaction or deleting a transaction.
- the system will reflect these Database transactions by creating corresponding blockchain transactions .
- the Database is of course updated immediately so the user has instant access to all transactions information. There is some delay between the writing of a database.
- Said transaction data sent to said node may include compiled computer code
- the system can be arranged so that at least a copy of the transaction data is in a proper form and said data passes straight to the User database from the APP
- Some transactions in said new blocks may confirm earlier transactions written to the database with a flag have now been written to the blockchain . Upon receipt of said confirming transaction having been written to the blockchain, said flag is removed.
- Blockchain nodes receive a copy of new blocks after they are written to the said blockchain and upon receipt of a new block a Node commences:- a) commences validation of new block & upon validation of said new blocks then applies an address filter to identify any of the transactions in the new block with addresses matching any of the addresses associated with said node or its user client account or User device and for which addresses the Node has access to private keys of the said addresses, so that these "identified" transactions can then be de crypted and passed to the Data Access Layer API .
- Some transactions in said new blocks may confirm earlier transactions written to the database with a flag that have now been written to the blockchain .
- said flag is removed or replaced by an indicator that the transaction is recorded in the blockchain
- candidate blocks said candidate block transactions can be written to the database immediately with a special indexed flag so they can be removed and changed.
- the blockchain node associated with the User / Client account or User / Client device receives new blockchain or new blocks and
- Said node software applies an address filter to identify any of the new transactions contain addresses matching any of the addresses associated with said node or its user client account or User / Client device so that these "identified" transactions can then be passed to the Database API Layer for translation and said translation can then be passed to the Database Software which writes the "identified" transaction to a database.
- a blockchain is a theoretical construct of blocks of data connected together using hash pointers. Common use of blockchain includes the theory coupled with various tools and software, and solutions implemented thereon.
- a node is a software application which participates in the management of the blockchain itself.
- a wallet is a piece of software which communicates with and proposes blocks for, the blockchain.
- WASM webAssembly
- Blazor is an experimental framework allowing .Net code to run under WebAssembly.
- webRTC is a proposed standard for peer to peer data, voice and video conversations between computers running browsers.
- a non limiting example of a blockchain system in in the present invention is as follows Nodes are ephemeral, that is they do not and are not expected to run permanently. A node may launch, and exit before obtaining a full cache of the current blockchain epoch.
- a blockchain may be expressed as follows.
- Each block is given a unique index which is incremented each time a new block is written to the chain.
- the Nonce is a randomised number, written by the last node to write the blockchain to help choose the next node to write a block.
- the Previous Hash is a Sha256 of the previous block.
- the Current Hash is a Sha266 of the current block.
- the Data[] is an array of one or more byte arrays containing unique .Net Standard partial objects (see objects below)
- the Epoch is the current iteration of the chain. Participating nodes need only request the current epoch and do not have to download the entire chain.
- WebRTC Peer to peer communication between nodes.
- WebRTC allows for peer nodes to communicate and run the network.
- the network is managed as follows:
- Each node collects new transactions into a block.
- Nodes express their acceptance of the block by working on creating the next block in the chain, using the hash of the accepted block as the previous hash. Nodes always consider the longest chain to be the correct one and will keep working on extending it. If two nodes broadcast different versions of the next block simultaneously, some nodes may receive one or the other first. In that case, they work on the first one they received, but save the other branch in case it becomes longer. The tie will be broken when the
- Transactions are actually dot net standard compliant software constructed as a partial class of the GoTransaction class. This code is sent to the server as plain text and is compiled into a byte array which is written to the blockchain and then can be executed by any node.
- Go is a reference or descriptor of an element of the present invention.
- a Node is considered to be any program which communicates on, collaborates on or works with the Go:) Blockchain
- Blockchain is a blockchain instantiated in Microsoft.Net which includes in its transactions payload compiled MSIL which contains the go.Transaction class. MSIL stands for Microsoft Intermediate Language.
- MSIL Microsoft Intermediate Language
- CLR Common Language Runtime
- JIT Just In Time
- Transactions are any action that can be encapsulated as part of the go.Transaction class which includes:
- a Transaction is initiated by our software and sent to the node running in our software.
- a Transaction is sent to a node as compiled C# .
- a server compiles it but the client could compile it or a serverless function could be used.
- the candidate transaction is sent to each peer, parent and child to validate and adding to their queue (as in step 2)
- the Founder Node writes all valid transactions to a block which is transmitted to each peer, parent and child to validate and if validated adding to their version of the blockchain.
- a Node is a specific software component, and nodes take one of several roles which may not necessarily persist for any period:
- Founder Nodes write blocks to the blockchain based on votes provided by members with coins
- Epoch Node Manage the entire epoch of a blockchain and checks validity of each block
- Wallet - is a piece of software which communicates with and proposes blocks for, the blockchain.
- node software is one library and nodes may change roles/ take different roles.
- Nodes have a single parent and 1 or more children. Nodes send information to their children and receive information from the parent.
- a Node When a Node has too many children (>MAX_CFIILDREN), it instructs the first active node that connected to become a parent and send any new registered nodes to the child.
- Current proposal is to specify Max Children greater than 1 and less than 1000 and currently preferred as 20. If a child reports back that it cannot find the allocated parent, the node allocates the 2nd (and so on) active node to become a parent.
- the hierarchy can be as deep as we wish.
- the top MAX_CFIILDREN nodes are created as Full Nodes and operate as follows:
- the First Node comes up, attempts to contact every active Node in a loop.
- MAX_CFIILDREN Active Nodes our new node attempts to become a child of a random node. That node may reply as follows: a. DENIED - Cannot become a child for some reason, find another node b. NEXT_STEP - I already have MAX_CFIILDREN Nodes, here is a list of them, attempt to become a child of one of them c. APPROVED - You then become a child of that node. Founder Nodes are special.
- the Founder Node transmits the new block to all PARENTS and CFIILDREN and PEERS
- the top NODES are PEERS All Children of a Node are PEERS and can talk to each other.
- Any Node receiving this, with a list of pending transactions adds it to their votes until they calculate they have >50% of the votes and then they Become founder node for the next block and may write a new block and transmit it.
- REG_RESP_NEXT_STEP Register request Next Step. Expect next request to be a REQ_CHILDREN If this node has > MAX_CHILDREN active, it responds with this
- REG_RESP_APPROVED Registration Approved - If a node gets a REGISTER CHILD from a valid, trusted or new node, and has ⁇ MAX_CHILDREN, it will respond with approved and add to the list of childre
- Such a transaction can be approximated by the creation of an object , which can be stored in a structure approximating Satoshi's.
- Solidity a high level Object Oriented language designed to deliver smart contracts.
- the present invention may differ in the following manner.
- the initial scenario the Switch, requires users to transmit secure data between parties who initially do not trust each other. This is performed over a blockchain by necessity of the scenario.
- each blockchain has a different API and language.
- a Solution in the present invention following is provided as a non-limiting example.
- Clients construct partial objects based on our defined GoObjects. These are constructed as C# source code by the clients.
- All text, other than computer source codes such as C# may be encrypted before transmission to a chosen compile element which compiles it using the Roslyn Compiler from Microsoft and the compiled object is returned as for example a base64 encoded string.
- Said chosen compile element includes but is not limited to one or more of
- the present invention uses a proof of stake 1 model to determine which Node shall write the next block ( Founder Node) and the Blockchain system and method employed in arriving at said determination may include any combination of the methods and systems discussed or proposed elsewhere in this document under other headings and as follows.
- One example of the way to determine which Nodes will determine the Founder Node is to for the Nodes (and/or their Peers) having a transaction and/or block to be written to the blockchain be the group that selects a candidate Node from among their peers or children to become the Founder Node which creates/writes the next Block.
- Nodes select as their candidate Founder, the Node with the highest score CandidateScore calculated by an algorithm applied to each candidate and comprising one or more of the following elements representing the status or conditions of each of the candidate Nodes at that moment:-
- Founder or blockwriter Node candidates such that the algorithm producing the numeric scores tends to produce high numeric scores for those Founder Node candidates most likely to have or produce the highest trust and/or efficiency and/or security in conducting the operations of a blockchain i) Is derived by the following
- NodeMetricsMax Describes, in this instance, measurable criteria or elements of a candidate Node whereby the higher the numerical value of the criteria the higher the desirable tendency to trust and security and more likely that the candidate node possessing high levels of such criteria will achieve selection.
- These NodeMetricsMax include but are not limited to those expressed below at 2) a., b. c. & e. but only including e. if it is a positive number.
- NodeMetricsMin Describes , in this instance, the measurable criteria or elements of a candidate Node whereby the lower the numerical value the higher the tendency to enhancement of trust and/or security and/or efficient operations of the blockchain which is desirable and more likely that the candidate node possessing such low numerical criteria will achieve selection.
- Such NodeMetricsMin include but is not limited to that expressed below at 2) d. & e. but only including e. if e. is a negative number AND value e. is to be used without reference to its negative value as an absolute value.
- proposed voting methods include 1) factoring in the number of coins/ tokens owned by the addresses associated with the Node by manipulation of the score, obtained by methods system(s) described at 1) through 1) a) ii) above, with any operator producing a positive or incremental result e.g. multiply or add. ii) a special case ensuring number of Tokens owned by a User/Client associated with a particular Node cannot elevate a candidate node to founder node status unless said candidate node has a trust score of Zero or more OR eliminating from candidate status any node which has less than Zero trust score.
- Founder Nodes candidates will become a founder if they assess that they have more than 50% of the vote. They do this by assuming that other branches of Parent, Peers and Child Nodes are similar and would vote in a similar way.
- Nodes select as their candidate founder in the present non limiting example from amongst the group comprising Parent, Peers and Child Nodes, the Node with the highest score calculated by an algorithm applied to each candidate and comprising one or more of the following elements representing the status or conditions of each of the candidate Nodes, or in the case of CandidatePingTime each of the candidate nodes in relation to the voting node establishing CandidatePingTime, at that moment:- a.
- CandidatePeers Number of active Peers of a Founder candidate Node. A Node with a large number of peers is preferable being therefore more exposed to being rated on Trust by its peers.
- CandidateBlocks The Length of the current blockchain held by a Founder candidate Node. It is always preferable to be working with or on the longest blockchain
- CandidateUpTime once a node sees another node, it starts a timer, communicates with it as things occur and thus internally persist its uptime, therefore the measured time is from when we see and accept it as a node in our hierarchy (parent, child or peer). The larger the CandidateUpTime the more exposure time the Node has to being rated for trust by its peers. Longer up time is good for trust and blockchain security
- CandidatePingTime Ping time of a Founder Node candidate as seen by each voting node: Ping time is the elapsed time from the sending of a Ping or message to one or more nodes until the receipt of a response to the Ping. Ping Time being an approximation of the separation gap or distance and/ or communication conditions presently experienced in communication between the sender of a Ping to one or more Nodes and the corresponding response to the sender of the Ping from each of the Nodes receiving a Ping. Short Ping times are preferable for many reasons not the least of which is to minimise possible impact of network problems or conditions on the timely writing or execution of transactions. The Ping time is altered by network conditions and technical performance of both sending and receiving nodes, which can introduce non-pseudo randomness into the values available to calculate scores for Founder Candidate selection.
- Contrary actions by a node earning it exclusion Points including but not limited to "bad actor” conduct or incongruent actions by said Node could include but is not limited to
- Example 2 where NodeTrust is positive 2 include NodeTrust in NodeMetricsMax
- NodeMetricsMax CandidateUptime seconds 50 + NodeTrust (number) : 2
- a positive NodeTrust value makes a substantial increase in CandidateScore assisting in selecting trusted Nodes to write the next block in a blockchain and tending to exclude Nodes with low or negative NodeTrust values.
- a de-centralized application provides for a configurable format of message to be sent with high security as an encrypted blockchain transaction directly by a customer from a secure blockchain storage record containing a customers new financial or other details, initiated via a mobile or other device having a fully participating blockchain node operating in a Web Assembly 2 instance in a modern web browser within said mobile or other user device and said message is sent through a blockchain transaction to one or more of Merchants or financial providers ( Merchant or Merchants ) in differing encrypted form to each of said Merchants such that the message may be de- crypted only by the recipient Merchants and the message having been formatted to easily be passed into or mesh (mesh) with any legacy software systems for each Merchant,
- DApp de-centralized application
- the de-crypted message details may be processed automatically without the usual human intervention normally required by Merchants, to validate the customer identity and then update Card or financial Ac or any details of the customer held by the Merchant.
- the present embodiment of the invention software application D'App provides a combination of the following:-
- Private and Public keys held by one or more Customers and Merchants /financial service providers such that a message, between a particular customer and one or more particular merchants/ providers, may be:- a) encrypted using Recipients Public Key and
- the de-crypted message details may be processed automatically without the usual human intervention normally required to validate the customer identity and then updating said Card or financial Ac or other details of the customer held by the Merchant/ provider f)
- the practice of sending by un-secure email systems sensitive information such as invoices and statements revealing Client and Merchant details may be abolished by Merchants relying on the present invention highly secure blockchain and/or DApp to be the most secure path for transmission to Clients.
- the abolition of emails from Merchants to clients with sensitive data will much reduce scope for fraudulent activity and provide opportunity for reduced costs incurred through fraudulent activity.
- One or more embodiments of the invention provides for a method and system for conveniently and securely storing such critical data as the Private keys necessary to conduct transactions on a Blockchain or distributed ledger system.
- the present invention system and method provides;
- Additional software or application software ( Appl) which controls access to said Other Apps and said Appl provides for a prudent User Owner to appoint one or more and preferably several persons or entities ( Trust or Trusted Group) so that in circumstances whereby said User Owner is incapable of acting to access said Appl and Other Apps, said Trust Group members or any one or more of them may, on terms specified by said Owner User, gain access to said Appl and the Other Apps controlled by said Appl.
- the present invention thereby having the advantageous aspect of providing that valuable assets and information shall not be lost or timely access means can be provided to said valuable assets and information in the event of incapacity of an Owner User the present invention software and said Appl software employing the following method; record or employ a method of encrypting and recording, sensitive information such as the private keys necessary to access crypto-currencies or other assets held in various electronic storage means and accessible only by entry of said private keys;
- biometric data including but not limited to video and or static images of the individuals or entities comprising said trusted group of relatives friends of the User or in the case of corporate Users other officers of the corporation (Trust Group). Said biometric data being obtained from known means and/or created with a mobile phone or other device having electronic camera capability or other device (Biometric Data Capture),
- Biometric Data Storage and store electronically, image or images or other recording means of one or more of biometric characteristics of the User and the Trust Group and where appropriate recording of motion and said Biometric Data Capture stored so that said store of data relating to each individual may be accessed separately
- c) and said recording including but not limited to a persons characteristics including but not limited to fingerprints, facial, retinal, DNA (Biometric Data).
- Said Trust Group preferably comprising more than 1 person and less than 20 and in the present non-limiting example 4 persons.
- Said Biometric Data or some of it is stored in more than one location and in the present invention example in 2 locations as follows;
- said blockchain or other blockchain may also contain or record access means to valuable Financial property of the User or containing keys or other means to access said valuable Financial property or access other software programs (Other Apps) that a User may desire to access and said Other Apps being protected by passwords or other security means including verification of User Owners incapacity by official documentation such as death certificates or verification of powers of attorney (Other App Access Protocols) and
- Addresses used in the Blockchain may include more than simply a users address. For example a two part or second address identifier with one part or address identifying a particular blockchain or distributed ledger system and a second part or address is the user address and said addresses or either of their parts identify the processing or actions needed by the system.
- Said additional blockchain addresses or address parts may be incorporated into an app module computer software or function whereby a hierarchy of addresses and or additional addresses or address parts forms a relational hierarchy with approval needs and authorities attributed to certain addresses or address parts. In one view, this is similar to a corporate management hierarchy tree having blockchain addresses which included identifying not only the person or position but the department and the individuals and the authorities to approve certain transaction types.
- said app module could display to a manager to view the transaction prepared by said managers assistant who is authorised for transaction type 1, and require said Manager to add or signify approval whereupon said transaction is updated to include the / address parts and authorities applied by the entities involved in the transaction and then all recorded in one or more transactions in one or more blockchains.
- the concept expressed in point g) above is not limited the concept of Trust Groups and secure storage and access to resources but refers generally to blockchain or distributed ledgers and systems and methods relating to combinations of blockchains and databases .
- Said App 1 also manages a list of Other Apps and a) stores in a blockchain the related User information or Other App Data and any Access Protocols necessary to access and use said Other Apps including one or more of but not limited to; b) information relating to Commercial Id Auth providers such as but not limited to Google, Microsoft and Facebook;
- Appl requires the intending User (Current User) to submit their name or Name Id, and password established at step 1. above for checking against a list of Users ( Namecheck) and
- Biometric Data Current with Biometric Data Storage 1 Alternatively the password step may be omitted and instead rely on Biometric Data Current comparison with Biometric Data Storage 1 in the interests of simplifying the procedure; 6) If said comparison at the preceding step above is accepted by Appl as a match then said Appl recovers from Biometric Data Storage in a blockchain the Biometric Data Storage 2 and compares said Biometric Data Storage 2 to Biometric Data Current
- Choices may include selection of an Id or Identity associated with the User when using the said Other App and upon User selection of 7) a) or b) Appl will further do one or more of the following:-
- Other Apps Information such as addresses passwords Public and Private keys to the selected Other App as necessary for the User to seamlessly gain access to and participate in the said Other App or provide said Other App Information conveniently accessible for the User to select and use with a minimum of keystrokes and time expended to gain access.
- the purpose and conduct of the Trust Group provided by Appl and referred to at 1) above is to provide back up access to the assets and information in accounts (User Accounts) set-up by a User Owner , User 50 in this non-limiting example and said User 50 who for whatever reason has become unable to personally access said User Accounts.
- the personal User may specify that a majority of the Trust Group may appoint one of their number to be authorized as User.
- Appl may optionally keep a log of access events but need not have access to any other information.
- the foregoing invention may advantageously employ the use of a special type of blockchain or distributed ledger system whereby the software to run or operate a fully participating ephemeral node in the distributed Ledger or blockchain is able to operate in a modern web-browser running Web Assembly-, said browsers including but not limited to web browsers such as Internet Explorer, Google Chrome, Mozilla firefox and Safari, running on physical and virtual devices which for example may include a Mobile Phone, a Tablet, a PC or personal computer, a Server, lOT ⁇ device or a virtual machine running in, and/ or connected to, the Cloud AND/OR said distributed ledger system software enables transaction message payload stored in the blockchain to be executable code comprising dot Net Standard compliant code including C# ( C sharp) programming language said executable code contained in said blockchain or some of said code may also consist of code to run said Appl. within said web browser instance.
- a special type of blockchain or distributed ledger system whereby the software to run or operate a fully participating ephemeral node in the
- One or more other embodiments may comprise computer software or operating code such as a de centralized application (App ) provides for a configurable format of message to be sent with high security as an encrypted blockchain transaction directly by a customer from a secure blockchain storage record containing a customers new financial or other details, initiated via a mobile or other device having a fully participating blockchain node operating in a Web Assembly instance in a modern web browser within said mobile or other user device and said message is sent through a blockchain transaction addressed to one or more of Merchants or financial providers ( Merchant or Merchants ) in differing encrypted form to each of said Merchants such that the message may be de-crypted only by each of the recipient Merchant using their iundiviual Private keys and the message having been formatted to easily be passed into or mesh (mesh) with any legacy software systems for each Merchant, the de- crypted message details may be processed automatically without the usual human intervention normally required by Merchants, to validate the customer identity and then update Card or financial Ac or any details of the customer held by the Merchant.
- App provides for a configurable format
- the present embodiment of the invention software application and App provides a system and method comprising the following: -
- IdCode a secure blockchain storage record of one or more customers financial and/or other details including credit card details and/or Bank periodic payment details and/or a code that is agreed between the customer and Merchant as being the identifier verifying the source of any communication between said customer and said Merchant (IdCode), Establishment of said IdCode may also be performed separately from the present invention by other means including use of 2 factor authorization including the use of biometric identification including facial recognition and fingerprint recognition means available through many modern mobile telephones.
- the App then does one or more of loading the Client Card details and the Clients Id No or Account number, or other agreed secret codeword that Client and Merchant have established as a Means of positively identifying the sender and/or receiver of messages between Client and Merchant
- Private and Public keys held by one or more Customers and Merchants /financial service providers such that a message, sent by a particular customer to one or more particular merchants/ providers, may be:- a) encrypted using the Public Key of each recipient in this example/ case one or more Merchants
- Said message may first be made in a format particular to the Legacy computer software systems of each of said one or more Merchants or a separate data transposing function is provided to Merchants to transpose the data into said legacy software system of said Merchant upon receipt of said message/ data by said Merchant and
- said message Upon receipt by the Node associated with the Merchant said message is validated as being from the particular Customer and de-crypted using the Private Key of the recipient Merchant and ii) If the message is formatted to mesh with any legacy software systems for each recipient merchant/ provider or a data transposing module is provided to said Merchant to transpose the data into said legacy system, then said legacy systems may be updated immediately without human intervention.
- the de-crypted message details may be processed automatically without the usual human intervention normally required to validate the customer identity and then updating said Card or financial Ac or other details of the customerheld by the Merchant/ provider.
- UnSubMerchant to alert said UnSubMerchant that their Customer wants the UnSubMerchant to subscribe so as to receive or be ready to receive securely new card or other details such as home address or change of subscriber plan of services provided to customer by UnSubMerchant.
- the Application includes one or more methods of verifying a Merchant who purports to be a particular UnSubMerchant presenting to the Application to take ownership of the Merchant Identity on the system and thereby becoming in the first instance a candidate Merchant or CM.
- Said verifying method utilizing pieces of verifiable shared information (VSI) which only the true CM would be expected to possess - e.g. the Customers email address that the Customer used to open their account with CM or the account number established with the CM or a recent transaction ID or a secret question/ answer that may be established between the Customer and the CM and the app employs this VSI verification of CM's bona-fides e.g.
- the application may then upon reaching a prescribed number of
- One or more other embodiments may comprise Financial account providers, such as credit card companies, merchants, lenders, banks etc., offer methods for customers to switch their financial instrument/ activity from an existing provider to a new provider. Typically such methods are time consuming and/or lack the high levels of security which should attach to transmission of such sensitive information from customer to Merchant/ financial service provider and there is no written evidence of such switch easily accessible to both customer and merchant/ financial provider. Attempts have been made to improve various aspects of this process including the use of Blockchains.
- Financial account providers such as credit card companies, merchants, lenders, banks etc.
- Perennial problems exist in prior art in software systems deploying blockchain technology including; extended time to execute and complexity of systems necessary to conduct, handle and validate blockchain transactions; the failure to maximise security conditions in many implementations of blockchain systems because increasing security tends to create overly complex implementations.
- WebRTC is a free, open project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs.
- the WebRTC components have been optimized to best serve this purpose.
- the present invention leverages a combination of WebRTC for Communication (https://webrtc.org/) and PeerJS (https://peerjs.com/) and deliver our own PEERSERVER which delivers the equivalent of websocket comms over WebRTC.
- a system of computer software and devices configured so as to enable a simple and more secure blockchain transaction whereby a customer of a Merchant/ financial provider may use a computer software application (App2), to send an encrypted message containing, for example, new credit or debit card details or a new bank Ac to debit periodic regular subscriptions or other regular payment obligations (Card Details), said system configuration comprising at least; persistent or ephemeral fully operational blockchain nodes.
- Each of said nodes are able to communicate using WebRTC via an application or server ( PeerServer) which provides Id's for the nodes, with others of nodes and/or via App2 database storage.
- Said nodes may also create and write transactions to a blockchain or distributed ledger and/or a Database and said nodes hereinafter referred to a Node or Nodes ;
- a blockchain may be constructed so that the data is written in a code which is then compiled and then encrypted before being written to a blockchain and/ or database;
- At least one client and one Merchant mobile or other device including lap tops, tablets, PC's or any device capable of running a web instance of an App2 running in a Web Assembly or WASM construct/instance and containing or connected to a synchronously operating fully operational Node, a communication link and or means including Web RTC protocol for transmitting secure data, messaging, voice and video both ways between web instances of an Application (APP) containing or connected to a synchronously operating fully operational blockchain node whereby for example; a MerchantA may recover from storage in the blockchain the public keys PU1 of their CustomerB and PR1 MerchantA's private key and use the said public key PU1 of CustomerB to encrypt a message to the said CustomerB and sign the said message with MerchantA's private key PR1 ; said message may include any document or digital representation e.g. invoices, notices, promotional data or images/ videos and any text message may include an invitation to initiate a voice or video call between any blockchain address of the sender or author ( Sender Address) whereby said sender address is
- any User Customer or Merchant will upon opening the App be alerted to and/ or presented with any messages; the App will 1) only receive a message from another valid node address- addressed to the recipient node unique node address and decrypt/ display a message if it matches with the unique Customer/User address being the valid recipient having the correct private key corresponding to public key PK1; 2) PKlvalidate the message as coming from MerchantA by recovering from the blockchain the public key of MerchantA and checking it is a pair i.e. corresponds with the private key the Merchant used to sign the message; 3) handle/perform all / encryption/ de- cryption and validations, without Customer /Merchant intervention using public keys stored in the blockchain for the relevant parties Merchant A and CustomerB;
- An invitation from MerchantA to CustomerB to call said MerchantA or vice versa can include an activation means for CustomerB to immediately initiate Peer to Peer voice or video call to said MerchantA.
- Said voice or video call may also be encrypted in a similar manner to a message and all communications may be recorded in the blockchain as a permanent record of the message/call/ transaction;
- Nodes on a particular blockchain may communicate in one or more of the following modes- broadcast peer to peer using node communication language (NCL) to one or more of a Node's peers or all active nodes/addresses for said particular blockchain on the Peer Server ; send messages between a particular user and one or more of known addresses on said blockchain and in this example a Merchant with whom the user has a commercial/social relationship.
- NCL node communication language
- a procedure may exist such that if a node, registered as active on the Peer Server or service, does not respond to broadcasts its status is downgraded and it can be removed from an active node list maintained by the Peer Server and or maintained by each active node; said Peer Server may also serve as a master Peer Server or register nodes for more than one App and or more than one blockchain so that one or more Users in one App or blockchain may have User node addresses in other blockchains thereby enabling for example UserA to complete a financial transaction in one blockchain, say Fin_App on FINblockchain and then skip to another blockchain by selecting the desired target blockchain, e.g. Social blockchain or Games blockchain and broadcasting the Users corresponding node address in the desired target App or blockchain or sending to the Peer Server the Users corresponding node address in the desired target blockchain and be validated as a User on, and begin participating in, the target App or blockchain;
- the desired target blockchain e.g. Social blockchain or Games blockchain
- said node signaling server or service may also manage nodes and or addresses and/or User Id's for more than one blockchain and can display/provide to Users of all blockchains it manages a menu or list of available Apps and blockchains and if a User selects an App or blockchain but does not possess an existing node address for that particular App or Blockchain then the Peer Server may provide an address or link so that the user may go to the "join up " site for the selected App or blockchain ; said node signaling server or service is typically located in a cloud computing service.
- the Merchant Customer could create an additional verification step using one or more of biometric fingerprint/ facial/ retinal/ DNA verifications ( Biometric Verification) compared with records (including as may be necessary or desirable official documents such as passports) held in the user device and/or in the blockchain; higher level security means may also be employed as part of a Passwords and key storage service whereby passwords and important information may be stored in a blockchain and be accessible only to the user by satisfying the Biometric Verification key to access stored passwords or other keys e.g. for cryptocurrency addresses; a protocol for such recovery of information from a storage service could include the recovery after death of a User by the use of DNA and/ or a registered will and/or probate thereof or other acceptable legal means of establishing possession of a Users estate;
- One or more other embodiments may comprise a third-generation distributed compute platform ( The Unblocked Platform), providing general purpose computing coupled with a ledger.
- the Unblocked Platform provides general purpose computing coupled with a ledger.
- Mass adoption of distributed ledger technology is being limited by scale issues with the core technology. Limited by the complexity of the implementation of the technology. Lastly, limited by the difficulty for developers to adopt and use the technology.
- Some embodiments comprise a distributed computer platform, providing general purpose computing coupled with a ledger comprising;
- an indexed Database and a blockchain node located on any device capable of running a modern web browser, said indexed Database capable of communicating Database transactions to other software which translates or manipulates each database transaction into a form suitable to be received and processed as a blockchain or distributed ledger transaction by said blockchain node ;
- applications created on or by the platform may also run on large scale devices or Servers or cloud-provided scalable compute or traditionally in existing datacentres.
- Some embodiments comprises a system or application running in a web-browser in a user device to distribute database transactions to a corresponding node in said application in a form suitable for creation of a blockchain transaction and transmit said transactions securely across a peer-to-peer network as corresponding blockchain or distributed ledger transactions.
- the local database only holds transaction data that are relevant to the system, application or user.
- Unblocked Platform offers a solution to these drawbacks, allowing developers to focus on delivering world-class users experiences, with unbridled user performance, all with the simplicity and accessibility of a web page.
- Unblocked Platform delivers a general-purpose computing environment, coupled with the benefits of a distributed ledger.
- the Unblocked Platform leverages several technology trends:
- WebAssembly - is a stack machine, embedded in every major internet browser allowing developers to compile software to a binary format which executes at near-native speed, by taking advantage of the hardware available on a wide range of platforms. More information on WebAssembly can be found here: https://webassembly.org.
- PoS Proof of stake
- the creator of the next block becomes allocated via various combinations of random selection and wealth or age (i.e., the stake).
- the creator of the next block is chosen using an agreed algorithm based on network proximity, reliability and uptime.
- IndexedDB - IndexedDB is a large scale, NoSQL storage system which allows the storage of significant amounts of data coupled with transaction management and high speed read and write.
- the platform uses IndexedDB to store information relevant to the platform, nodes, and running local networks.
- WebRTC Web Real-Time Communication
- Unblocked Platform has been designed to allow rapid creation of database-style applications, without need for a central database or API layer.
- Unblocked offers a user interface and computing environment with a database backend coupled with a distributed ledger. It is providing tremendous benefits by leveraging both database and ledger technology, allowing rapid local performance, while securely distributing data and information between clients.
- Blazor a technology from Microsoft which allows for rapid development of Single Page Applications (SPA's) without resorting to common JavaScript frameworks https://dotnet.microsoft.com/apps/aspnet/web-apps/client.
- the client-side application is served from a flat file web server, which can be anything up to and including GitHub, Amazon Web Services, Google Cloud or Microsoft Azure.
- Applications can run directly from a device when packaged and published into existing ecosystems, such as Apple's App Store, Google's Play or Microsoft's Store using new application frameworks such as Electron https://electronis.org.
- Unblocked Platform provides an efficient method for distributing database transactions securely across a peer-to-peer network. While each application instance runs a node, the local database only holds transaction data that are relevant to the system, application or user.
- the Platform as currently designed offers enormous global scale, and further the Platform ensures the immutability and security of the data while delivering performance at native application and data speed.
- Each Unblocked application running on the Unblocked Platform has its own distributed ledger, which is identified by a unique identifier (GUID).
- GUID unique identifier
- Each distributed ledger is constructed using a chain of blocks which, as well as being self- referential, also contain the transactions which each application instance creates when attempting to send a message or make a change.
- an epoch is as a contiguous series of blocks relevant to the temporal requirements of the operating application. For example, in a fast-moving application, an epoch may be an hour, in a slower application, it may be a month.
- the Platform and it's supporting architecture allow for different unique ledgers mitigating most issues on consensus and forking or changes to public ledgers. Further, as each unique ledger is part of the Platform's ecosystem, we expect to have capability to enable or disable communication between all ledgers.
- Timestamp DateTime now() the date and time the entry was
- PreviousHash string N/A The calculated SHA256 hash of the
- Hash string N/A The calculated SHA256 hash of this block
- the Unblocked Platform uses a Merkle Tree to rapidly and efficiently validate a list of Transactions within a Block.
- Our implementation is based on Marc Clifton's design but uses Transaction hashes as the tree leaves at the bottom of the tree hierarchy. For more details on Marc's design see Merkle Tree
- the Distributed ledger consists of Blocks.
- a Block has a list of Transactions which have been validated by the localhost node.
- Each transaction is represented as a hash in a structure that allows the rapid validation of the entire list (at any point in the transactions list) without having to compute validity against the entire transactions list.
- Each Block has a property of type UPMerkle.
- the UPMerkle property is a hash tree of all the transactions in the Block with binary branches until a single root node hash represents the hash of the entire tree.
- [UPMerkleNode] can be the Full Tree, a binary branch (as branch only ever has two direct children) or a leaf at the bottom of the hierarchy
- Block class has a single [MerkleNode] class which constructed on Block creation via a BuildTreeQ method which takes the entire transaction list and creates a Merkle structure which is stored in indexedDB.
- the Tree is a hierarchy of hashes with the lowest level leaves being a hash of an actual transaction and branches above that being hashes of the left and right binary structure below the node. There are only ever two structures below a node. A parent node can only have two children according to Merkle theory.
- the Block class has a main method that gets the Root Flash of the Merkle tree which is used for all validations
- MerkleNode as a tree RootNode with all its child branches down to the leaves Represented as a hash of everything below it
- a Node is the software which communicates on, collaborates on or works with the Unblocked Platform's distributed ledger.
- the node software is encapsulated within the NyGet Package BC. Node
- the Unblocked Platform Distributed ledger is a blockchain instantiated in Microsoft.Net Core which includes as its payload compiled Common Intermediate Language (CIL) (https://en.wikipedia.org/wiki/Common Intermediate Language) which contains the BC.Transaction class.
- CIL Common Intermediate Language
- Each transaction within the distributed ledger is a fully contained dotnet core component, compiled to produce specific outcomes when executed or tested.
- the genesis block is the first block in a chain and in Unblocked, it includes software to test or validate each transaction to prove they are valid.
- Transactions are any action that can be encapsulated as part of the BC.Transaction class which includes:
- a Transaction is initiated by the application software and sent to the node running in our software.
- a Transaction is sent to a node as a valid C# string.
- the Node compiles the C#.
- the Node runs unit tests against it which have been previously loaded from the genesis blockto prove it works as expected and if it does, it adds it to a local queue of candidatetransactions. 3.
- the candidate transaction is sent to each peer, parent and child to validation and adding to the queue (as in step 2)
- the Founder Node writes all valid transactions to a block which is transmitted
- a Node is a specific software component, and nodes take one of several roles:
- Founder Nodes write blocks to the blockchain based on votes provided by members with coins
- Epoch Node Manage the entire epoch of a blockchain and checks the validity of each blockchain
- Wallet - holds a user's private and public keys and allows them to send a transaction to a node.
- node software is one library which takes different roles
- Nodes communicate using WebRTC and this communication is additionally enabled by a central STUN and TURN Server. This allows for peer to peer traffic to cross NAT boundaries
- Nodes have a single parent and 1 or more children. Nodes send information to their children and receive information from the parent.
- the node allocates the 2nd (and so on) active node to become a parent.
- the hierarchy can be as deep as we wish.
- MAX_CHILDREN is defined in the genesis block of each chain.
- the top MAX_CHILDREN nodes are created as Full Nodes and operate as follows:
- the First Node comes up, attempts to contact every active Node in a loop.
- Founder Nodes are special and are features of a full or epoch node.
- the Founder Node transmits the new block to all PARENTS and CFIILDREN and PEERS
- the top MAX_CHILDREN NODES are PEERS
- a node If a node receives a CHILDREN unsolicited, it must reduce the amount it trusts the node that sent it.
- a node If a node receives this from a registered child, it must respond with a list of its (the receivers) children which will equate to the peers of that node.
- Any Node receiving this, with a list of pending transactions adds it to their votes until they have >50% of the votes when they may write a new block and transmit it.
- t is the trust factor of the node which increases from 1 by 1 every time a node sends a bad block, a bad transaction or an unsolicited message (as above)
- p is the ping time of the node, i.e. how long it takes to reach a node in ticks
- a node If a node receives votes, it needs to calculate whether it has more than 50% of the votes available in the hierarchy. This is complicated as a node can only see its peers, children and parents.
- Node If the Node is a Full Node, it can speak to its peers. If it has >50% of the votes of its peers, it can become a founder.
- node If the node is an epoch node, it needs to have >(50+MAX_CHILDREN*2) of the votes of its peers and children
- the Platform relies on a few central functions to enable the communication and discovery of nodes, chains and blocks. These functions are analogous to Internet DNS services and primarily provide lookup and persistence functions. They are detailed below:
- addresses Stores a directory of addresses and public keys nodes provides a directory of full nodes for various chains
- a central function stores addresses and public keys.
- Each application can have its user system, which usually leverages a 3rd party identity provider to provide authentication into the system. Once users have authenticated, they can continue to use the system once they have provided the relevant private keys.
- the end user developed defines data models, navigation and permissions.
- the configurator generates the C#, user interface and application.
- the configurator then publishes the source code to GitHub and publishes the application to GitHub Pages and presents the end user developer with a login.
- the configurator has the following steps:
- the application developer inputs basic details about the application including their details, the company and the name of the application.
- the end-user developer can work from a number of bootstrap designs and can also choose from commercially available bootstrap templates.
- the end-user developer then chooses from data model templates or adds their own, for example it is easy to create a customer database here.
- the end user developer can choose authentication options from the following:
- Unblocked Platform is delivered with several pre-configured User Interface (Ul) Components. Over 60 components are available for end-user developers to use these to develop their own systems.
- Ul User Interface
- the App functions library contains common functions applications may need to employ. This is currently under development.
- the Data API provides agnostic access to the tables, views, queries and more of the data stored in the application. It is responsible for serving LINQ (Language Integrated Native Query) objects and functions to allow end-user developers and applications to communicate with what they think is a local database, while also managing what gets communicated to the DTL API.
- LINQ Lianguage Integrated Native Query
- the Application API provides access to the following application functions:
- Service functions are serverless functions which provide a level of central storage similar to address book lookup systems or DNS Servers
- the DTL API is a closed API which provides access to the Distributed Transaction Ledger.
- the node has the following methods, properties and events
- StaticActiveFullNodes Contains a list of the current active full nodes member
- Static member messages are received from
- StaticAllFullNodes contains the current list of full nodes member
- PingResponseTimes a list of ping response times
- AddFullNodeToDb Create a brand new node and advertise centrally
- DistrustNodeByld Distrust a node by its id
- IndexedDB is a large-scale, NoSQL storage system, included in the specification for modern browsers. It lets you store just about anything in the user's browser. In addition to the usual search, get, and put actions, IndexedDB also supports transactions.
- IndexedDB is a large-scale, NoSQL storage system, included in the specification for modern browsers. It lets you store just about anything in the user's browser. In addition to the usual search, get, and put actions, IndexedDB also supports transactions.
- MDN MDN
- IndexedDB is a low-level API for client-side storage of significant amounts of structured data, including files/blobs. This API uses indexes to enable high-performance searches of this data. While DOM Storage is useful for storing smaller amounts of data, it is less useful for storing larger amounts of structured data. IndexedDB provides a solution. "
- Each IndexedDB database is unique to an origin (typically, this is the site domain or subdomain), meaning it cannot access or be accessed by any other origin.
- Data storage limits are usually quite large if they exist at all, but different browsers handle limits and data eviction differently.
- Database - This is the highest level of IndexedDB. It contains the object stores, which in turn contain the data you would like to persist. You can create multiple databases with whatever names you choose, but generally, there is one database per app.
- Object store An object store is an individual bucket to store data. You can think of object stores as being similar to tables in traditional relational databases. Typically, there is one object store for each 'type' (not JavaScript data type) of data you are storing. For example, given an app that persists blog posts and user profiles, you could imagine two object stores. Unlike tables in traditional databases, the actual JavaScript data types of data within the store do not need to be consistent (for example, if there are three people in the 'people' object store, their age properties could be 53, 'twenty-five', and unknown ).
- Index - An Index is a kind of object store for organising data in another object store (called the reference object store) by an individual property of the data.
- the index is used to retrieve records in the object store by this property. For example, if you're storing people, you may want to fetch them later by their name, age, or favourite animal.
- Transaction - A transaction is a wrapper around an operation, or group of operations, that ensures database integrity. If one of the actions within a transaction fails, none of them is applied, and the database returns to the state it was in before the transaction began. All read or write operations in IndexedDB must be part of a transaction. Storing operations within transactions allows for atomic read-modify-write operations without worrying about other threads acting on the database at the same time.
- Cursor - A mechanism for iterating over multiple records in the database.
- IndexedDB therefore, provides the persistence model for our applications, delivering a full document database allowing developers to write code that does not need to consider how this data will work with other instances of the application.
- the IndexedDB Service class provides the core functionality to access the browser IndexedDB from a Blazor application running in WebAssembly. It consists of the following Methods:
- the database class is used to define, create and work with IndexedDB Database.
- the index is a special type of store that allows the incredibly quick retrieval of items based on an index
- the store represents an indexedDB store, the key area of data storage.
- the foregoing method and system has a number of benefits vs traditional systems and methods of working, not the least that it can provide a distributed platform whereby minimal infrastructure is required to run applications and complex multiuser applications can operate securely without the requirement for extensive hosting services.
- One or more embodiments of the invention may comprise one or more of distributed ledgers or blockchains ( blockchains) as a way of synchronising data between a blockchain instance running fully operational or participating, ephemeral or otherwise, blockchain nodes possessing a full copy of the blockchain or Epoch and one or more SQL or Non SQL Databases or Indexed Databases such as or similar to IndexedDB 3 .
- Said Database may advantageously be located in persistent storage on the User device. If a User device was lost or damaged a fresh copy of the database could be recovered at least by replaying the blockchain whereby the blockchain node running on the User device would unpack all blockchain transactions with a User related Address and send it to Database management system to be written in a new database.
- DAL data access layer API
- Said addresses are User addresses or addresses necessary or useful for the User to be able to perform actions including gain access to, or run certain applications i.e. addresses for which the User has the private key (Addresses).
- Said addresses may contain an indicator or code to identify the ID of a blockchain to assist in determining the actions to be taken by software managing the system.
- Said addresses may also additionally identify business entities, divisions, departments, operations, groups, personnel, assets, projects, expenses, income, processes, procedures, actions, authorisations or anything required to be or which can usefully be identified within a business or government or not-for profit enterprise such that for example authorizarions by particular personnel could be promptly identified.
- Said local database could provide instant access for a User to Create , read, update or delete transactions whilst also creating and adding a transaction to a queue of proposed transactions for the next block to be written into a blockchain and write into the next block in a blockchain.
- Transactions in the blockchain and database may for example contain the executable code of any Application capable of running in a web browser and which can be launched and run within the User device without, or at least with minimal, dependency on a central server or database.
- the sequentially written blockchain records could as necessary be read and or searched and records recovered and compared with a corresponding database to verify that the said database reflects exactly the transactions in the blockchain.
- Said blockchain transactions could be written out again to refresh an existing database or create another or copy database. For example if a User obtained a new Address then upon demand or automatically on detection of a new address the management system could launch an update of a users database by "replaying" the blockchain to filter into the Users database all blockchain transactions having addresses and private keys, including said new address, to which the Users Node management software has access.
- further identification of Blockchains may be accomplished by providing an identity code as part of each block unique to each blockchain.
- the Database can provide fast access for all User purposes including creating a new transaction or updating an existing transaction or deleting a transaction.
- the system will reflect these Database transactions by creating corresponding blockchain transactions .
- the Database is generally updated immediately so the user has instant access to all database transactions information.
- Blockchain nodes receive a copy of new blocks after they are written to the said blockchain and upon receipt of a new block a Node:- a) commences validation of new block & upon validation of said new blocks then applies an address filter to identify any of the transactions in the new block with addresses matching any of the addresses associated with said node or its user client account or User device and for which addresses the Node has access to private keys of the said addresses, so that these "identified" transactions can then be de-crypted and passed to the Data Access Layer API .
- Some transactions in said new blocks may confirm earlier transactions written to the database with a flag that have now been written to the blockchain .
- said flag is removed or replaced by an indicator that the transaction is recorded in the blockchain .
- a database (be it SQL or NoSQL/Non-SQL) , is intended to mean a series of transactions written in an order and able to be updated or deleted.
- blockchain is intended to mean: a construct of blocks of data connected together using hash pointers and representing a series of transactions performed between users of a peer-to-peer network, and/or a sequential series of records or transactions immutably written to and stored in a sequential chain of blocks.
- node or “user node” is intended to mean a software application which participates in the management of a blockchain.
- wallet is intended to mean a piece of software which communicates with and proposes blocks for the blockchain.
- WebAssembly or the acronym “WASM” refers to a technology whereby common browsers operate a stack based virtual machine that allows common development languages to be compiled for it, such as described in https://en.wikipedia.org/wiki/WebAssemblv.
- Bozor is intended to refer to an experimental framework allowing .Net code to run under WebAssembly, such as described in https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor.
- WebRTC is intended to refer to a proposed standard for peer to peer data, voice and video conversations between computers running browsers, such as described in https://en.wikipedia.org/wiki/WebRTC.
- the invention consists in the foregoing and also envisages constructions of which the following gives examples only.
- Fig. 1 is a block diagram demonstrating a preferred form distributed ledger system and method of the invention.
- Fig. 1A is a block diagram demonstrating a preferred implementation of the distributed ledger system of Fig. 1 in which a group of users can connect to the system.
- Fig 2 is a block diagram of a system enabling Users to update financial details with multiple Providers in one operation
- Fig 3 is a Block diagram of a system of providing secure access to an application Which itself controls secure access to a Users bank accounts and other financial assets
- Fig 4 is a block diagram of a system providing Users with at least one a personal Indexed Database linked to at least one Blockchain .
- Fig 4a is a block diagram of an alternate version of the system of Fig 4.
- Fig 4b is a block diagram of an alternate version of the system of Fig 4.
- Fig 5 is a block diagram of an example of a document record system to be used association with a blockchain and indexed database system.
- the embodiments may be described as a process that is depicted as a flowchart, a flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be rearranged.
- a process is terminated when its operations are completed.
- a process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc., in a computer program. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or a main function.
- mobile device includes, but is not limited to, a wireless device, a mobile phone, a mobile communication device, a user communication device, personal digital assistant, mobile hand-held computer, a laptop computer, an electronic book reader and reading devices capable of reading electronic contents and/or other types of mobile devices typically carried by individuals and/or having some form of communication capabilities (e.g., wireless, infrared, short-range radio, etc.).
- FIG. 1 Is a schematic view of a preferred embodiment of an improved computer architecture software system enabling and supporting simpler more secure and efficient systems deploying one or more blockchains as part of the system.
- System 100 is an improved computer architecture software system enabling and supporting simpler more secure and efficient systems deploying one or more blockchains as part of the system ( System) comprising; an application server or server system API Server 250 having communication connections 20 with Client Applications 150a, 150b and 150c which reside on Client Devices.
- Said Client Devices may also be referred to as Client Devices 150a, 150b & 150c and may consist of one or more of mobile or smartphones, personal computers, tablets or any device capable of supporting the running of a modern web browser.
- the Client Applications 150a, b & c each contain a synchronously operating fully operational blockchain node respectively 200a, 200b, 200c each of which are able to communicate freely using WebRTC with each other and others of said synchronously operating fully operational blockchain nodes on others of Client Devices and any others of synchronously operating fully operational blockchain nodes such as 200G and 200N connected to the API Server System 250.
- Node 200N has communication connection 10 with API server system 250.
- a PEERSERVER 280 may as necessary be included with connections similar to those shown or as shown for Node200N and /or API server 250 and said PEERSERVER provides to Nodes, for one or more blockchains, one or more of Blockchain Node Id address, WebRTC address, IP address , so that Nodes may communicate with other of Nodes in one or more of text/video/image/ voice means and by one or more of methods broadcast to all or 1 to 1, or 1 to many, or many to many.
- Communication connections 10a to lOg provide peer to peer communication capabilities between nodes 200a, 200b, 200c, 200G and 200N.
- Node 200N also shows yet another preferred embodiment whereby Nodes may be provided with direct communication connection to each API server here shown is communication connection 12 between node 200N and API server system 250.
- One or more Node Communication Servers 280 may be connected to provide and maintain node addresses for all nodes registered and /or participating in one or more blockchain systems so that new node addresses may be issued to new participants on a blockchain and active participating nodes on a blockchain may be recorded and monitored as active or otherwise.
- Node Communication Servers 280 are shown connected via link lOg but may be positioned where appropriate in the system to be in direct communication with one or more of nodes, API Server , persistent nodes, SQL database.
- At least said API Server System 250 and SQL Database system 300 and nodes 200G and 200N and Nodes Communication Server or PEERSERVER 280 are scalable and all reside within a public cloud computing environment 400.
- FIG 2 Is a schematic view of a another preferred embodiment of an improved computer architecture software system such as a decentralized Application or DApp enabling and supporting simpler more secure and efficient business systems deploying one or more blockchains as part of the system.
- an improved computer architecture software system such as a decentralized Application or DApp enabling and supporting simpler more secure and efficient business systems deploying one or more blockchains as part of the system.
- System 105 consists the entire system comprising; an application server or server system API Server 250 ; one or more of a SQL Database 300 ; one or more of a persistent fully participating blockchain Node 255; one or more Clients 50; one or more client mobile or other devices 100 running a web browser containing a fully participating Blockchain Node 110 ; one or more Merchants and in the present instance Merchant 80- having computer/device 207 running a web browser with blockchain Node 245 running therein and also having a connection H to Merchant 80 Legacy software/ software system ( Legacy System) 265 and Merchant 82- having computer/device 202 running a web browser with blockchain Node 250 running therein and said computer/device 202 also having a connection F to Merchant 82 Legacy System 270.
- VPN virtual private network
- Peer Server 500 which provides addresses, for valid users of the Blockchain and or the DApp (User or Users), to the blockchain Nodes associated with each User as their devices come online and commence to run the DApp.
- the connections depicting said VPN in the present example are marked Al, A2, B, C , D & E .
- Connections B & C not depicted as directly in connection with any Nodes on the blockchain are or may be necessary for communications between devices and may be considered as part of the VPN.
- the method of operating the system comprises;
- Client 50 desiring to convey new credit card details to multiple merchants /subscription providers uses personal mobile device or computer 100 and by visiting a website is able to run the present invention
- DApp commences to produce messages to convey said new Credit card details via an encrypted blockchain message such as message 400A and 400B to respective blockchain nodes 245 and 250 running in the respective devices 207 and 202 of respective Merchant providers 80 and 82 said devices 207 and 202 are also able to run the Merchant part of the DApp.
- the method to create the message comprises; the DApp having been provided with a list of merchants selected by the Client 50 and the Card details to be provided to said list of Merchants/ providers and the Client Private encryption Key, the DApp automatically obtains from secure storage in one or more of the Blockchain Nodes or via connection E and C from Database 300 via API server 250; the particular message layout required to mesh with the legacy computer / software systems maintained by each Merchant /provider in the said list as well as the Merchants Public key, the Merchants address on the blockchain to which the said message will be sent.
- the DApp then does one or more of loading the Client Card details and the Clients Id No or Account number with each Merchant/ provider in the correct format into each message form for each Merchant providers in said list, encrypting, validating and signing with the Clients Private Key and addressing the message and upon completion of composing each message and, optionally, receiving confirmation from the Client 50 to proceed, to send the messages, the Node 110 associated with the Client 50 sends the multiple messages as shown in the example messages 400A and 400B as transactions to the blockchain addressed respectively to Merchants 80 and 82.
- the messages are in effect delivered and for all Nodes that are live on the Blockchain, said live Nodes commence to validate the blocks and if Nodes associated with Merchant addressees /recipients of the switch messages, in this example Merchants 80 and 82, are live then those Nodes 245 and 250 respectively in the present example will, upon reviewing the new block(s), as addressees/recipients then do one or more of note/validate/decrypt the message as originating sent by a particular customer to update customers records and pass the new Client Card details to the DApp to pass to or otherwise pass directly to the Legacy System to record the new Client details.
- a message is created or instigated by the DApp, to notify the client /User that the new Card Details have been recorded. Said message is then encrypted with the Recipients Public Key and validated and signed with Merchants Private Key.
- Said messages are then written as transactions for the blockchain by Nodes 245 and 250 respectively associated with Merchants 80 and 82 and when a block containing the transaction is written to the Blockchain it is transmitted to all live Nodes and the dotted line paths for connections A1 and A2 depict the return Message path and if Client 50 Node 110 is live then the said node 110 will then do one or more of note/validate/decrypt the return Message as originating from the particular Merchant and said Node and/or Said DApp will add a notification to an unread or waiting messages or similar display on the clients screen and display the message for the Client to read as required or if in the present example Node 110 is not live then as soon as the Client next logs in then the Node 110 will request the current Blockchain and will search for transactions messages addressed to itself and /or its Client or will discover same as part of its review & validation of blocks. Said Node and/or said DApp will then proceed as may be required by the client to display said return message.
- the recording of sensitive Client details in relatively unsecure Legacy computer systems may be replaced by Merchants relying on the present invention highly secure blockchain and/or DApp to be the source of Client Card details when Merchants require such information for billing purposes.
- FIG 3 Is a schematic view of another preferred embodiment of an improved computer architecture software system such as a decentralized Application or App enabling a structured system and method of securely storing and accessing data of a user temporarily or permanently unable to access said data.
- a decentralized Application or App enabling a structured system and method of securely storing and accessing data of a user temporarily or permanently unable to access said data.
- System 132 consists of and is populated or given effect by method such that any User 50 having a device 100 operating a modern web browser with a Web- Assembly instance 112 containing/running one or more Apps required by a User and in this example:- a) User 50 has created or arranged creation of certain User accounts in an Application
- Appl 65 refer Table 1 which table is a part representation of some of the data capturable by Appl of User Id entities at Lines 1 to 8 and columns A to at least Fleast F of said Table 1 and specifically:- i) Entities P1,P2,P3,P4 - or any one or more of them collectively Trust Group 60 in effect may have access to the device(s) and Apps of User 50 and in this example said Trust group60 entities have Id and
- Example User ID " User” would have to provide at least Password X5 ( refer Column B row 8 of Table 1) to gain initial access to Appl.
- Biometric Data Storage 1 represented at column C Rows 4 to 8 of Table 1 and Entities PI, P2, P3 & P4 and User 50 Biometric Data Storage 1 and Appl Access Data represented at Table 1 rows 4 to 8 and columns A.
- B, C, E & Fi are shown in Fig 3 as 37 which is stored in Database 310.
- Said Entities PI to P4 and User 50 may be further directed to repeat the acquisition of biometric data represented at Table 1 Column C rows 4 to 8 or copy the corresponding data stored in database 310 in a form suitable for a blockchain transaction to blockchain Node 110 and shown in Fig 3 as 35 which is stored in a blockchain by blockchain Node 110 .
- Said Entities P1,P2, P3, P4 and User 50 may also be invited or directed by Appl to enter further challenges and secret questions and answers and other static biometric data to enable recovery of access in certain circumstances.
- Biometric Data or some of it is stored in more than one location and in the present invention example in 2 locations as shown in Fig 3 as follows; a) firstly in Fig 3 reference 37 in other storage on a mobile phone or other User device including storage such as personal or corporate cloud storage and/or in a database 310 (Biometric Data Storage 1). b) Secondly in Fig 3 reference 35 is sent in a transaction in a secure blockchain (Biometric Data Storage 2)
- Connection F from Appl and or App2 to Database 310.
- Said database 310 is shown as being located in Cloud Computing 800 but said Database 310 may instead be located (not shown) to operate in a web browser within User Device 100.
- Connection ⁇ ' which may be cloud communication means, enables Blockchain Nodes 110,17,15 and Peerserver500 and API server 250 and Database 300 via 'C' to communicate as necessary bi-directionally across Network Address Translators via means of WebRTC.and PeerServer 500 leveraging PeerJS and WebRTC.
- FIG 4 Is a schematic diagram of a User 2 having User device 5 deploying a fully operational node ( as distinct from a construct which is not communicating, or not able to communicate, with a group of its peers but in communication with one node of a blockchain may perform one but not all of the actions which are performed by a full or fully participating node of a blockchain sometimes described as a "lite node" ) of a blockchain 40 said node 40 having a full copy of the blockchain or Epoch/ interval of a blockchain 70 and able to function as a fully participating node which may fulfil any of the actions and roles of nodes in the system.
- Said user device 5 runs a web browser 6 containing or running an instance of a Web Assembly environment or WASM .
- Said WASM containing and facilitates running of one or more Applications 20 and 21 employed by the User, Software Stack 75 containing elements comprising or combining one or more of and/or employing the functionality of- Database Access Layer API software 30. ; Blockchain Node & Blockchain management software API 40. And 42; Database Software or database management system 50.; Address Filter 60.; and elements of said Software Stack 75 running and maintaining Blockchains 70. , 72 & Databases 80. , 82.
- Positions of elements in stack are examples only and may vary and in another example of the present invention a single database contains all the blockchain transactions for which the User has private keys.
- User 2 has accepted or been granted use of or purchased or licensed Application 20 and said User acquires the address and private key of the Application 20 or other means of obtaining valid access to said Application 20 .
- User 2 uses Application 20 which creates a Database transaction 12 including a blockchain ID 33 and said transaction is passed to the Data Access Layer API 30.
- Said Data Access API Layer determines the transaction requires interaction with Blockchain Node and/or Database and in this instance both so the Transaction data is passed to Database Software 50 for immediate writing to the database 80.
- Data Access Layer API 30 translates or manipulates the database transaction instruction into code which it then compiles and passes the compiled code to Node API 40 and said Node software 40 is able to run unit tests as may be required against the compiled code of the transaction to test that it works or is valid or contains no malicious code and if it is valid, said Node API 40 then places the transaction in a queue of proposed transactions to be written into the blockchain as a transaction and sends a copy of the proposed transaction to all the blockchain Nodes it communicates with and these Nodes will also validate the Transaction. Said transaction will then be included in the next block to be written to the blockchain. Said transaction 12 is thereby written to a blockchain 70.
- Said blockchain transaction 12 is a proposed blockchain transaction in a proposed transaction queue, said blockchain transaction eventually becoming all or part of proposed new block.
- Block 2 and said proposed Block 2 sent ( refer 13) to all Other User Devices 16. active on the blockchain system and said proposed new block, Block 2 is written by a selected Founder or blockwriter Node as Block 2.
- Node software 40 identifies the blockchain ID 33, verifies the new block, removes from its pending transactions queue any pending transactions which have been included in the new block and applies an address filter 60. process by identifying and or decrypting any encrypted message or transaction in the received block 14 for which the Node has the private key for the target or recipient address or addresses and sends all decrypted transactions data from said new block to the Data Access Layer API software 30. and/or to the Database management software 50.
- said blockchain transaction data can be manipulated as necessary by Data Access Layer API software 30 and passed to Database management software 50 to be written to the database or if already in a form suitable for Database management software 50 to write the transaction data into the database or if already in a form suitable to write the transaction data into the database, to immediately write the transaction into the relevant database.
- User 2 also uses another blockchain Application 21 to read a document by creating a transaction 15 which in this example Application 21 communicates directly to the Database Software 50 which recovers the document from the Database 82 and passes it to Application 21 which enables User 2 to read said retrieved document.
- Application 21 may send the read request 15 to Data Access Layer API software 30 which determines requires a read request and passed to Database Software 50 which provides said document to Application 21
- application 21 also receives (referl7) a new Block 2 shown with dotted line outline to represent that said Block 2 has not yet been verified by the blockchain node of its blockchain 72 said new Block 2 is actually received by node software 42 managing said blockchain 72 and after receipt of any new block the blockchain node validates the block and in the process it determines if there are any transactions which have User related addresses.
- the Node determines that there is one transaction in the said new Block 2 for which said Node 42 having read the Blockchain ID 34 as pertaining to its blockchain and said Node 42 having the Users private key and thereby decrypts and passes decrypted transaction data to the Data Access Layer API software 30 (DAL) and said DAL interprets the data and having determined that the data needs to be sent to database storage said DAL as necessary transcribes or manipulates data into appropriate form and sends said transaction data 17 to Database software 50 to be written into the database 82.
- Nodes 40 and 42 software may also communicate directly with Database software 50 performing as depicted via connection 49 at least part of the function of what is also referred to as the DAL i.e. the node software performs this with and in communication with the database software.
- block chain nodes 40 and 42 and their respective Node management software may be replaced by a single node with node management software capable of managing multiple blockchains based on the Blockchain ID of each block refer Blockchain ID 33 in blocks contained in Blockchain 70 and Blockchain ID 34 in blocks contained in Blockchain 72 (Super Nodes).
- Database management software 50 to identify or associate a database and /or write transaction with a particular blockchain ID and or particular transaction addresses or address portions and thus a Database and or a Blockchain may be at least addressable or searchable based on said Blockchain ID and / or said transaction address and/or said address portions.
- Said Implementation of Super Nodes software could also enable, for example where an enterprise, having multiple blockchains and corresponding Databases, the exploration of the efficacy of the concept of creation of one or more of a Super Blockchain containing the transactions of all enterprise blockchains transactions and a Super Database containing the database transactions of each of the blockchain transactions in said enterprise blockchains.
- User 2 also uses another blockchain Application 21 to read a document by creating a transaction 15 which in this example Application 21 communicates directly to the Database Software 50 which recovers the document from the Database 82 and passes it to Application 21 which enables User 2 to read said retrieved document.
- Application 21 may send the read request 15 to Data Access Layer API software 30 which determines requires a read request and passed to Database Software 50 which provides said document to Application 21
- FIG 4A is a schematic diagram of another embodiment.
- User 2 having User device 5 deploying a fully operational node ( as distinct from a node sometimes described as a "lite node") of a blockchain 40 said node 40 having a full copy of the blockchain or Epoch/ interval of a blockchain 70 and able to function as a fully participating node which may fulfil any of the roles of nodes in the system.
- a fully operational node as distinct from a node sometimes described as a "lite node”
- said node 40 having a full copy of the blockchain or Epoch/ interval of a blockchain 70 and able to function as a fully participating node which may fulfil any of the roles of nodes in the system.
- Said user device 5. runs a web browser 6. containing or running an instance of a Web Assembly environment or WASM .
- Said WASM containing and facilitates running of one or more Applications 20 and 21 employed by the User, Software Stack 75 containing elements comprising or combining one or more of and/or employing the functionality of- Database Access Layer API software 30. ; Blockchain Node & Blockchain management software API 40. And 42; Database Software or database management system 50.; Address Filter 60.; and elements of said Software Stack 75 running and maintaining Blockchains 70. , 72 & Databases 80. , 82.
- Positions of elements in stack are examples only and may vary and in another example of the present invention a single database contains all the blockchain transactions for which the User has private keys.
- User 2 has accepted or been granted use of or purchased or licensed Application 20 and said User acquires the address and private key of the Application 20 or other means of obtaining valid access to said Application 20 .
- User 2 uses Application 20 which creates a Database transaction 12 which is passed to the Data Access Layer API 30.
- Said Data Access API Layer determines the transaction requires interaction with Blockchain Node and/or Database and in this instance both so the Transaction data is passed to Database Software 50 for immediate writing to the database 80.
- Data Access Layer API 30 translates or manipulates the database transaction instruction into code which it then compiles and passes the compiled code to Node API 40 and said Node API 40 is able to run unit tests against the compiled code of the transaction to test that it works or is valid and if it is valid, said Node API 40 then places the transaction in a queue of proposed transactions to be written into the blockchain as a transaction and sends a copy of the proposed transaction to all the blockchain Nodes it communicates with and these Nodes will also validate the Transaction. Said transaction will then be included in the next block to be written to the blockchain.
- Said transaction 12 is thereby written to a blockchain 70. and a Database 80 preferably with a flag or similar indicator ( flag not shown but said flag is meant to indicate in the database that the transaction origin is the Application and has not yet been written into a block of the blockchain).
- Said blockchain transaction 12 is a proposed blockchain transaction in a proposed transaction queue, said blockchain transaction eventually becoming all or part of proposed new block, Block 2 and said proposed Block 2 sent ( refer 13) to all Other User Devices 16. active on the blockchain system and said proposed new block, Block 2 is written by a selected Founder or blockwriter Node as Block 2.
- Block 2 After new Block 2 is written a copy of all new blocks including Block 2 is sent to all active nodes by the blockchain system and when received from the blockchain system (refer 14) Node software 40 verifies the new block, removes from its pending transactions queue any transactions which have been included in the new block and applies an address filter 60. process by decrypting any message for which the Node has the private key for the target or recipient address and sends all decrypted transactions data from said new block to the Data Access Layer API software 30. and/or to the Database management software 50.
- said blockchain transaction data can be manipulated as necessary by Data Access Layer API software 30 and passed to Database management software 50 to be written to the database or if already in a form suitable for Database management software 50 to write the transaction data into the database or if already in a form suitable to write the transaction data into the database.
- User 2 also uses another blockchain Application 21 to read a document by creating a transaction 15 which in this example Application 21 communicates directly to the Database Software 50 which recovers the document from the Database 82 and passes it to Application 21 which enables User 2 to read said retrieved document.
- Application 21 may send the read request 15 to Data Access Layer API software 30 which determines requires a read request and passed to Database Software 50 which provides said document to Application 21
- application 21 also receives (referl7) a new Block 2 shown with dotted line outline to represent that said Block 2 has not yet been verified by the blockchain node of its blockchain 72 said new Block 2 is actually received by node software 42 managing said blockchain 72 and after receipt of any new block the blockchain node validates the block and in the process it determines if there are any transactions which have User related addresses.
- the Node determines that there is one transaction in the said new Block 2 for which said Node 42 has the Users private key and thereby decrypts and passes decrypted transaction data to the Data Access Layer API software 30 (DAL) and said DAL interprets the data and having determined that the data needs to be sent to database storage said DAL as necessary transcribes or manipulates data into appropriate form and sends said transaction data 17 to Database software 50 to be written into the database 82.
- DAL Data Access Layer API software 30
- a fully operational node as distinct from a node sometimes described as a "lite node”
- said node 40 having a full copy of the blockchain or Epoch/ interval of a blockchain 70 and able to function as a fully participating node which may fulfil any of the roles of nodes in the system.
- Said user device 5. runs a web browser 6. containing or running an instance of a Web Assembly environment or WASM.
- WASM containing and facilitates running of one or more Applications 20 and 21 employed by the User, Software Stack 75 containing elements comprising or combining one or more of and/or employing the functionality of- Database Access Layer API software 30. ; Blockchain Node & Blockchain management software API 40.; Database Software or database management system 50.; Address Filter 60.; and elements of said Software Stack 75 running and maintaining Blockchains 70. , 72 & Databases 80. , 82.
- Positions of elements in stack are examples only and may vary and in another example of the present invention a single database contains all the blockchain transactions for which the User has private keys.
- User 2 has accepted or been granted use of or purchased or licensed Application 20 and said User acquires the address and private key of the Application 20 or other means of obtaining valid access to said Application 20 .
- User 2 uses Application 20 which creates a Database transaction 12 which is passed to the Data Access Layer API.
- Said Data Access API Layer determines the transaction requires interaction with Node and/or Database and in this instance both so the Transaction data is passed to Database Software 50 for immediate writing to the database 80.
- Data Access Layer API 30 translates the database instruction code into text which it then compiles and passes the compiled code to Node API 40 and said Node API 40 runs unit tests against the compiled code of the transaction to test that it works or is valid and if it is valid, said Node API 40 then places the transaction in a queue of proposed transactions to be written into the blockchain as a transaction and sends a copy of the proposed transaction to all the blockchain Nodes it communicates with and these Nodes will also validate the Transaction. Said transaction will then be included in the next block to be written to the blockchain.
- Said transaction 12 is thereby written to a blockchain 70. and a Database 80 preferably with a flag or similar indicator ( flag not shown but said flag is meant to indicate in the database that the transaction has not yet written into a block of the blockchain) but is a transaction in a proposed transaction queue, said blockchain transaction eventually becoming all or part of proposed new block, Block 3. , and said proposed Block 3 sent ( refer 13) to all Other User Devices 16. active on the blockchain system and said proposed new block, Block 3 is written by a selected Founder or blockwriter Node as Block 3.
- Block 3 After new Block 3 is written a copy of all new blocks including Block 3 is sent to all active nodes by the blockchain system and when received from the blockchain system (refer 14) Node software 50 verifies the new block, removes from its pending transactions queue any transactions which have been included in the new block and applies an address filter 60. process by decrypting any message for which the Node has the private key and sends all decrypted transactions data from said new blocks to the Data Access Layer API software 30. and/or to the Database management software 50. So that said blockchain transaction data can be manipulated as necessary by Data Access Layer API software 30 and passed to Database management software 50 to be written to the database or if already in a form suitable for Database management software 50 to write the transaction data into the database.
- Application 21 may also deal directly with the said Database Management Software 50 for exam. Node does this Said Database Software 50 updates the relevant Database 80 existing unverified transactions entries to remove any corresponding "not verified " flags, and or creates new Database entries for each of said new "identified" blockchain transactions.
- Block 3 After new Block 3 is written a copy of all new blocks including Block 3 is sent to all active nodes by the blockchain system and when received from the blockchain system (refer 14) Node software 50 verifies the new block, removes from its pending transactions queue any transactions which have been included in the new block and applies an address filter 60. process by decrypting any message for which the Node has the private key and sends all decrypted transactions data from said new blocks to the Data Access Layer API software 30. and/or to the Database management software 50. So that said blockchain transaction data can be manipulated as necessary by Data Access Layer API software 30 and passed to Database management software 50 to be written to the database or if already in a form suitable for Database management software 50 to write the transaction data into the database.
- Application 21 may also deal directly with the said Database Management Software 50 for exam. Node does this Said Database Software 50 updates the relevant Database 80 existing unverified transactions entries to remove any corresponding "not verified " flags, and or creates new Database entries for each of said new "identified" blockchain transactions.
- User 2 also uses another blockchain Application 21 to read a document by creating a transaction 15 which in this example Application 21 communicates directly to the Database Software 50 which recovers the document from the Database 82 and passes it to Application 21 which enables User 2 to read said retrieved document.
- Application 21 may send the read request 15 to Data Access Layer API software 30 which determines requires a read request and passed to Database Software 50 which provides said document to Application 21
- application 21 also receives (referl7) a new Block 3 shown with dotted line outline to represent that said block 3 has not yet been verified by the blockchain node of its blockchain 72 said new block 3 is actually received by node software 42 managing said blockchain 72 and after receipt of any new block the blockchain node validates the block and in the process it determines if there are any transactions which have User related addresses.
- the Node determines that there is one transaction in the said new Block 3 for which said Node 42 has the Users private key and thereby decrypts and passes decrypted transaction data to the Data Access Layer API software 30 (DAL) and said DAL interprets the data and having determined that the data needs to be sent to database storage said DAL sends said transaction data 17 to Database software 50 to be written into the database 82.
- DAL Data Access Layer API software 30
- Fig.5 is a schematic showing another embodiment of a present invention whereby blockchain addresses and or address parts forming a blockchain address or a structured address string as a blockchain address may be applied to identify personnel , personnel roles and actions, documents and artifacts , work items, personnel actions /activity , authorisations or indeed any item or thing relevant to the work flow and efficient operation of of a business and which may be documented can be given a blockchain address or can form part of a structured blockchain address system and method as depicted in System 205 whereby personnel generally are provided with blockchain addresses or address strings containing address parts identifying aspects of personnel involvement and contribution to the work flow and advancement of an enterprise.
- Personnel 630 are provided at least with Position address 200, Signature authority address 205 and personal address 210.
- Personnel 625 are also provided with blockchain addresses or address strings containing address parts identifying aspects of personnel involvement and contribution to the work flow and advancement of an enterprise such as a Division address 10, a Department Address 20, a Position address 30, Signature authority address 40 and personal address 50.
- Personnel 620 are also provided with blockchain addresses or address strings containing address parts identifying aspects of personnel involvement and contribution to the work flow and advancement of an enterprise such as a Division address 110, a Department Address 115, a Position address 120, Signature authority address 125 and personal address 130.
- Said addresses and or address parts may collectively be in the form of a QR code such that the address could be easily read/recorded by a user device such as a mobile phone.
- Fig 5 provides a present example of addresses and tracking of various elements relating to efficient operations of businesses including the concepts of;
- Work item activity persona or identity references for each document, task or event number/ transactional event and showing in the example in Fig 5 at 610 Work item activity records identifying the various persona and actions within or comprising one or more of:- a) A particular Manager entities function/position within the enterprise ID 305;
- a particular Authors Assistant entity re a document or task ID 315;
- a particular Reviewer entity re a document or task ID 320;
- Signature authority applied or given, or personal address for use within an enterprise so as to differentiate between official and personal communications within an enterprise and or any other address which may be applicable to an entity, employee or contractor to an enterprise or actions by said entity, employee or contractor in relation to an enterprise and in the present example respectively ID 10,20,30,40 and
- embodiments may be implemented by hardware, software, firmware, middleware, microcode, or any combination thereof.
- the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium such as a storage medium or other storage(s).
- a processor may perform the necessary tasks.
- a code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements.
- a code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
- a storage medium may represent one or more devices for storing data, including read-only memory (ROM), random access memory (RAM), magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information.
- ROM read-only memory
- RAM random access memory
- magnetic disk storage mediums magnetic disk storage mediums
- optical storage mediums flash memory devices and/or other machine readable mediums for storing information.
- machine readable medium and “computer readable medium” include, but are not limited to portable or fixed storage devices, optical storage devices, and/or various other mediums capable of storing, containing or carrying instruction(s) and/or data.
- DSP digital signal processor
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- a general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, circuit, and/or state machine.
- a processor may also be implemented as a combination of computing components, e.g., a combination of a DSP and a microprocessor, a number of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
- a software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD- ROM, or any other form of storage medium known in the art.
- a storage medium may be coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor.
- the invention can be embodied in a computer-implemented process, a machine (such as an electronic device, or a general purpose computer or other device that provides a platform on which computer programs can be executed), processes performed by these machines, or an article of manufacture.
- a machine such as an electronic device, or a general purpose computer or other device that provides a platform on which computer programs can be executed
- Such articles can include a computer program product or digital information product in which a computer readable storage medium containing computer program instructions or computer readable data stored thereon, and processes and machines that create and use these articles of manufacture.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biodiversity & Conservation Biology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims
Applications Claiming Priority (17)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2019900403A AU2019900403A0 (en) | 2019-02-08 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain based business solutions. | |
AU2019900875A AU2019900875A0 (en) | 2019-03-17 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain based business solutions | |
AU2019900898A AU2019900898A0 (en) | 2019-03-19 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain based business solutions. | |
AU2019901022A AU2019901022A0 (en) | 2019-03-27 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions. | |
AU2019901127A AU2019901127A0 (en) | 2019-04-03 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions | |
AU2019901192A AU2019901192A0 (en) | 2019-04-07 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions | |
AU2019901191A AU2019901191A0 (en) | 2019-04-07 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions. | |
AU2019901202A AU2019901202A0 (en) | 2019-04-09 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions | |
AU2019901288A AU2019901288A0 (en) | 2019-04-14 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions | |
AU2019901289A AU2019901289A0 (en) | 2019-04-14 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions | |
AU2019901632A AU2019901632A0 (en) | 2019-05-13 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions. | |
AU2019901617A AU2019901617A0 (en) | 2019-05-13 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions. | |
AU2019901625A AU2019901625A0 (en) | 2019-05-13 | : Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions. | |
AU2019901673A AU2019901673A0 (en) | 2019-05-17 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions. | |
AU2019901672A AU2019901672A0 (en) | 2019-05-17 | Improved computer architecture and software supporting simpler and more secure blockchains together with methods and systems for developing efficient blockchain business solutions. | |
AU2019902368A AU2019902368A0 (en) | 2019-07-04 | Improved computer architecture and software supporting simpler and more secure distributed ledgers together with methods and systems for developing efficient distributed ledger business solutions. | |
PCT/IB2020/051039 WO2020161688A1 (en) | 2019-02-08 | 2020-02-10 | Distributed ledger computing platforms and associated methods, systems and devices |
Publications (2)
Publication Number | Publication Date |
---|---|
EP3921741A1 true EP3921741A1 (en) | 2021-12-15 |
EP3921741A4 EP3921741A4 (en) | 2022-10-12 |
Family
ID=71947852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP20753206.0A Pending EP3921741A4 (en) | 2019-02-08 | 2020-02-10 | Distributed ledger computing platforms and associated methods, systems and devices |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3921741A4 (en) |
AU (3) | AU2020219946B2 (en) |
SG (1) | SG11202108684SA (en) |
WO (1) | WO2020161688A1 (en) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114372051A (en) * | 2020-10-16 | 2022-04-19 | 华为技术有限公司 | Data processing system, and data processing method and device based on block chain |
CN112395566A (en) * | 2020-12-08 | 2021-02-23 | 江西赣鄱云新型智慧城市技术研究有限公司 | Data traceability system based on block chain |
CN112929405B (en) * | 2021-01-05 | 2023-08-08 | 上海零数众合信息科技有限公司 | Block chain single-chain message bipartite construction method |
CN112685487B (en) * | 2021-01-15 | 2022-09-16 | 金现代信息产业股份有限公司 | Method and apparatus for simulating relational database through IndexDB in browser environment |
US20220284008A1 (en) * | 2021-03-02 | 2022-09-08 | Mastercard International Incorporated | Method and system of implementing partitioned blockchain |
CN113094179B (en) * | 2021-04-23 | 2024-04-19 | 曙光信息产业(北京)有限公司 | Job allocation method, job allocation device, electronic equipment and readable storage medium |
CN113379208B (en) * | 2021-05-28 | 2023-05-23 | 同盾科技有限公司 | Index calculation method, apparatus and readable storage medium |
CN113326007B (en) * | 2021-06-30 | 2022-07-29 | 广东电网有限责任公司 | Unstructured data federation storage method, device, terminal and storage medium |
CN113590638A (en) * | 2021-07-20 | 2021-11-02 | 南京国准数据有限责任公司 | Distributed data storage system based on block chain |
CN113806801B (en) * | 2021-09-15 | 2023-08-29 | 网易(杭州)网络有限公司 | Transaction information uplink method, device, computer equipment and storage medium |
CN114157550B (en) * | 2021-12-06 | 2023-01-31 | 东北大学 | Alliance block chain system based on conflict-free transaction merging |
CN114257593A (en) * | 2021-12-21 | 2022-03-29 | 瀚云科技有限公司 | Communication method, device, equipment and storage medium of block chain system |
CN114338702B (en) * | 2021-12-30 | 2023-11-14 | 北京天融信网络安全技术有限公司 | Communication data forwarding method and unmanned system cluster |
CN115314374B (en) * | 2022-07-06 | 2024-02-06 | 京东科技信息技术有限公司 | Block chain node deployment method, device, storage medium and program product |
CN115460222A (en) * | 2022-09-05 | 2022-12-09 | 蚂蚁区块链科技(上海)有限公司 | Block chain data flow calculating device |
CN117057799B (en) * | 2023-10-11 | 2024-02-09 | 腾讯科技(深圳)有限公司 | Asset data processing method, device, equipment and storage medium |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10572684B2 (en) * | 2013-11-01 | 2020-02-25 | Anonos Inc. | Systems and methods for enforcing centralized privacy controls in de-centralized systems |
US10075298B2 (en) * | 2015-06-02 | 2018-09-11 | ALTR Solutions, Inc. | Generation of hash values within a blockchain |
WO2017109140A1 (en) * | 2015-12-22 | 2017-06-29 | Bigchaindb Gmbh | Decentralized, tamper-resistant, asset-oriented database system and method of recording a transaction |
KR101905622B1 (en) | 2016-02-16 | 2018-10-08 | 한국과학기술연구원 | Carbon nanotube structure and manufacturing method thereof |
US10614239B2 (en) * | 2016-09-30 | 2020-04-07 | Amazon Technologies, Inc. | Immutable cryptographically secured ledger-backed databases |
US10355869B2 (en) * | 2017-01-12 | 2019-07-16 | International Business Machines Corporation | Private blockchain transaction management and termination |
US11631077B2 (en) * | 2017-01-17 | 2023-04-18 | HashLynx Inc. | System for facilitating secure electronic communications between entities and processing resource transfers |
US20180218003A1 (en) * | 2017-01-30 | 2018-08-02 | General Electric Company | Ephemeral blockchain data structure |
SG11202106442VA (en) * | 2018-11-16 | 2021-07-29 | Christopher Lyndon Higgins | Distributed ledger systems, methods and devices |
-
2020
- 2020-02-10 SG SG11202108684SA patent/SG11202108684SA/en unknown
- 2020-02-10 AU AU2020219946A patent/AU2020219946B2/en active Active
- 2020-02-10 EP EP20753206.0A patent/EP3921741A4/en active Pending
- 2020-02-10 WO PCT/IB2020/051039 patent/WO2020161688A1/en unknown
-
2022
- 2022-02-03 AU AU2022200726A patent/AU2022200726A1/en not_active Abandoned
-
2024
- 2024-03-20 AU AU2024201824A patent/AU2024201824A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
AU2024201824A1 (en) | 2024-04-11 |
WO2020161688A1 (en) | 2020-08-13 |
AU2020219946A1 (en) | 2020-10-22 |
SG11202108684SA (en) | 2021-09-29 |
AU2020219946B2 (en) | 2021-11-04 |
EP3921741A4 (en) | 2022-10-12 |
AU2022200726A1 (en) | 2022-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020219946B2 (en) | Distributed ledger computing platforms and associated methods, systems and devices | |
US11783024B2 (en) | Systems, methods, and apparatuses for protecting consumer data privacy using solid, blockchain and IPFS integration | |
US11886421B2 (en) | Systems, methods, and apparatuses for distributing a metadata driven application to customers and non-customers of a host organization using distributed ledger technology (DLT) | |
US11803537B2 (en) | Systems, methods, and apparatuses for implementing an SQL query and filter mechanism for blockchain stored data using distributed ledger technology (DLT) | |
US11288280B2 (en) | Systems, methods, and apparatuses for implementing consumer data validation, matching, and merging across tenants with optional verification prompts utilizing blockchain | |
US10558820B2 (en) | System and method for maintaining a segregated database in a multiple distributed ledger system | |
US20230245117A1 (en) | Distributed Ledger Computing Platforms and Associated Methods, Systems and Devices | |
US11880349B2 (en) | System or method to query or search a metadata driven distributed ledger or blockchain | |
Dhillon et al. | Blockchain enabled applications | |
US11652605B2 (en) | Advanced non-fungible token blockchain architecture | |
US20190012662A1 (en) | Systems, methods, and devices for reducing and/or eliminating data leakage in electronic ledger technologies for trustless order matching | |
US20200374113A1 (en) | Decentralized application platform for private key management | |
US20200242595A1 (en) | Systems, methods, and apparatuses utilizing a blended blockchain ledger in a cloud service to address local storage | |
Champagne | The book of Satoshi: The collected writings of Bitcoin creator Satoshi Nakamoto | |
AU2019378253B2 (en) | Distributed ledger systems, methods and devices | |
US11074648B1 (en) | Blockchain based loan securitization | |
Bhuiyan et al. | BONIK: A blockchain empowered chatbot for financial transactions | |
Hill et al. | Blockchain Quick Reference: A guide to exploring decentralized blockchain application development | |
Stampernas | Blockchain technologies and smart contracts in the context of the Internet of Things | |
Demir | A fully decentralized framework for securely sharing digital content | |
Van Hijfte et al. | Blockchain in Business | |
Bibodi | PodWeb: a decentralized application powered by Ethereum network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20210908 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
A4 | Supplementary search report drawn up and despatched |
Effective date: 20220913 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: G06F 21/62 20130101ALI20220907BHEP Ipc: G06Q 20/00 20120101ALI20220907BHEP Ipc: G06F 16/182 20190101ALI20220907BHEP Ipc: H04L 9/32 20060101ALI20220907BHEP Ipc: G06F 16/13 20190101AFI20220907BHEP |