The basic architecture of a ChainZy Smart Ledger consists of three components:

  1. Transmitters that accept application data from permitted users and compute and transmit the chain.
  2. Receivers that accept transmitted chains, validate the received chain and store them.
  3. Filters that consume stored receiver chains to produce output meeting certain conditions (e.g., messages only from a particular user).

Users are granted IDs which can be anonymous or identifiable, depending on customer requirements. Transmitters accept application data from permitted users, combine it with a timestamp and apply one-way encryption to the resulting data-stream using a cryptographic hash. By being a function of both the datum and the timestamp, every hashed record is unique. Each hashed record is then hashed for a second time with the record immediately preceding it, creating the chain. The transmitter then agnostically broadcasts the new ledger entry to the network of receivers.

A receiver accepts information from a specific transmitter and adds each new link to their own copy of the ledger (or chain). Receivers re-verify each record independently of the transmitter and then check that their verification agrees with that of the transmitter. If it does not agree, an error is flagged and the receiver attempts to re-synchronise with the transmitter. Similarly, if a receiver loses connection to its transmitter, it is able to identify the break in the chain and re-synchronises. Any gap in the record is left because this is the true record from the receiver’s perspective. Receivers holding an incomplete ledger can reconstitute the ledger by requesting missing entries (either from other receivers within the specific application or the central QueryChainZ service) and ‘stitching’ them back into their copy of the ledger. This mechanism is a feature of ChainZy’s ‘woven broadcasting’ method, which utilises multiple transmitters and receivers to maintain complete versions of the ledger in applications that require this.

The final stage in the process is the application of a filter. Filters accept information from the receivers and produce output based on defined criteria, such as information generated only by a particular user or particular information items. Filters are normally the starting point for “smart contracts” and ‘Smart Ledgers’ and can be implemented in almost any programming language. Filters can easily write their outputs back onto ChainZy to give indelible evidence of their operation.

ChainZy ledgers are designed to be highly flexible and customisable for almost all use cases. In addition to woven broadcasting, ChainZy smart filters support a variety of validation and consensus mechanisms including master nodes, master-supervisor nodes, free-for-all, unanimity, and weighted voting mechanisms. ChainZy can be accessed through any web browser, including mobile phones and will handle any file type from extant operating systems. The system employs widely-used, open source software, networking and commodity hardware and can be easily integrated with existing user software.