OriginTrail Development Update: v0.7a Zond Released on May 7th

Branimir Rakic
OriginTrail
Published in
9 min readMay 7, 2018

The OriginTrail dev team is excited to bring you the latest code release, dubbed Zond, version 0.7a of the alpha stage of the OriginTrail Decentralized network (ODN). We are 3 releases away from the launch of the test net and are quickly approaching a fully functional test network.

The Zond release introduces:

  1. A standardized and documented OriginTrail graph ontology structure and compatibility with the Neo4j graph database. This compatibility enhances the flexibility in the data layer as it allows for selecting more than one underlying database system. Neo4j is a graph database platform that powers many of today’s mission-critical enterprise applications, including artificial intelligence, fraud detection and recommendations. It is used by companies such as Microsoft, Walmart, eBay, Airbnb, Volvo, Cisco, LinkedIn, UBS, novo nordisk, and many others.
  2. The first version of the zero-knowledge privacy protocol for sharing sensitive data in an encrypted, but publicly verifiable form. This makes the OriginTrail protocol more attractive to companies who would like the competitive advantage of increased transparency and efficiency in their supply chains.

Data Layer Improvements: Neo4j Support & Graph Data Ontology Standardization Supplied

On our mission to create an open-source, tailor-made solution for supply chain transparency and easy data exchange with integrity, it has been important to ensure an ability to be as flexible as possible with implementation in each solution layer. We want to enable full control over the working of each node to allow for the utilization of different solutions for different problems, as well as to be able to easily optimize for performance in the future.

Graph databases are at the core of OriginTrail’s data layer

ODN’s data layer takes care of all the necessary data management and connectivity functionalities. Because of the need to connect many different data sets across the supply chain while providing the flexibility to support many different connection options, data relationships are the key factor to focus on in the data layer​. The underlying database technology with the most performant data structures for efficiently leveraging data relationships are graph databases. Graph databases provide high performant traversing, high flexibility in terms of data models and, in turn, high agility when it comes to development. They are already utilized in enterprises like Walmart, eBay, the Adidas Group and many other companies for various use-cases involving online retail. Check out more information about why we chose graph databases for storing data in our whitepaper: Chapter 4.2.1 The ODN Data Layer.

Within the data layer, we have focused on abstractions that allow for utilizing different implementations of graph databases, whereas we started development with ArangoDB. ArangoDB is an open source multimodal, high performance, open source NoSQL database with graph functionalities and has shown to be very robust for implementation in the OriginTrail protocol.

We want to provide users with the ability to choose a preferred graph database. In Zond, we enabled users to utilize the Neo4j database in the system instead of ArangoDB by providing a database abstraction layer and therefore the ability to easily add support for even more graph databases in the future. Neo4j is one of the leading database solutions on the market with a very large community and proven track record deployed in companies. Having the ability to test out both underlying systems will give us insights into which component performs better under a higher workload, which will come about with the launch of the test network.

We also implemented the latest ontology which we published previously and added improvements to system importer. This allows us to continue the development of the consensus check mechanisms of which graph matching is the essential feature, both in terms of public, as well as private data.

Zero Knowledge Validation for Supply Chain Quantities

One of the major problems we have identified in more than seven years of working in the industry is the ability to validate that a supply chain has a consistent balance when it comes to the quantity or mass of the raw materials and semi-products moving through the chain.

There are several reasons for this:

  • The rising complexity of supply chains, which are, realistically speaking, supply chain networks;
  • The data fragmentation within “data silos” of participating stakeholders, and, finally;
  • The reluctance to share sensitive information which might be used in a negative context in the market against the one sharing such information.

A typical example of such information would be the quantities of sold goods in certain markets, which could be used by competitors in ways counterproductive to the party sharing this information in the first place.

That is why establishing an open-source collaborative protocol such as OriginTrail must not only tackle the problems of data integrity and interoperability by providing a platform neutral, non-proprietary decentralized network tailored for supply chain data sharing, but also provide a way to unlock value from data that is essentially not meant to be shared. So, how does this work? Let’s provide a simplified example.

Let’s assume we have a dairy company buying raw milk from two dairy farms. The first dairy farm provides an A quantity of milk while the second provides a B quantity. The result of the production process, if there is no foul play, would, in simplified terms, be a batch of milk with quantity C, derived through the addition of the A and B quantities. Because we are talking about a food supply chain, this batch of milk with quantity C would continue moving along the chain and parts of it would likely end up at many retail stores. Ideally, if we added up all these different parts that ended up at different retail stores, they would equal the same amount of C = A + B. Again, this is a simplification, as processing, spillage and other factors have to be considered, though this does not hinder the ability of the system to cope with such situations.

Representation of a singled out supply chain event of producing a quantity of C milk out of raw materials A and B

Today, it is not easy to account for all parts of a particular raw material quantity in supply chains, and there are many cases of foul play, especially when it comes to organic food. It is really hard to make sure irregular, non-organic products, are not getting added to organic ones and being sold off as organic, higher value products. Again, this is the result of informational asymmetry as the stakeholders in the market are not able to validate the whole chain, of which one major part is the ability to validate mass balance and quantities.

How do we then enable this data sharing to happen when there’s no incentive to share this information? The privacy layer in ODN is designed to provide a “zero-knowledge” way for validating these data elements in successive events in the supply chain. Zero knowledge protocols in general terms provide a way for an interested party — the “verifier” — to successfully verify that the observed party — the “prover” — has knowledge about a specific piece of information — “truth” — without revealing the “truth” itself. When it comes to the OriginTrail zero-knowledge implementation, this means that the companies would be able to share quantities A,B and C in specially encrypted forms E(A), E(B) and E(C), and any observer, aka “verifier,” would be able to confirm whether these values correctly fit the validation equation E(A) * E(B) = E(C). The verifier cannot obtain the values of A, B and C, but is able to confirm that the quantity input and output of a certain event or process in a supply chain is valid. Consequently, if there was some mismatch and E(A) * E(B) would not equal E(C), that would mean that there exists some integer quantity D for which A + B = C + D and thus E(A) * E(B) = E(C) * E(D).

Validation is performed on encrypted values, keeping original quantities hidden

This would provide for a valuable insight to everyone involved in the supply chain as it would provide a starting point for investigation into what has happened. In several cases so far we have observed quantity mismatches due to plain data inconsistencies regarding bookkeeping with companies we have worked with. These inconsistencies were revealed by the OriginTrail protocol and have helped them fix their internal data handling. Having said that, the quantity D can be manifested as an error in accounting, as well as a potential supply chain misbehavior. By repeating the process along the whole supply chain network, the system allows for full validation of quantity matching in the chain, without exposing sensitive information and thus unlocking major value from the previously siloed and unshareable data.

It is important to state that this implementation of the zero knowledge protocol is specially tailor-made for the use case of supply chains, so it is quite different from other zero-knowledge implementations seen in other systems like Z-Cash.

The mathematical basis of the implementation can be found here. The first iteration of the implementation allows for establishing checks on transformational events in the supply chain. Currently the validation is performed at import runtime and can be observed in the logs for each event. The proofs are generated for every event and validated by the importer but equality of proofs of ownership transfer events between providers can be validated manually.

General Improvements

The Zond release brings us the first user interface implementation for the OriginTrail node, dubbed “Houston”. Currently, the prototype in testing is able to connect to a node, initiate a manual file import and allow for some basic configuration changes. We will soon be adding the ability to visualize logs and data from the underlying database, as well as several other features. It is the first step of improving the user experience of the node holders and we will be focusing much more on it in the coming releases.

V01 of OriginTrail Node Dashboard: UI prototype

Apart from the new features, we have been working on improving the readability of the code as well as increasing the overall test coverage. We have slightly improved the smart contracts used in the system, as well as the bidding process flow, which now runs more smoothly. Finally, we have observed some UX problems caused by configuration issues while testing the node. Therefore, we have added several checks to easily identify if the node configuration has been set up correctly (i.e. whether or not the config parameters are set properly, if the node has necessary funds on the associated wallet etc).

You are welcome to join the discussion on Rocket chat with our devs and submit improvement proposals to GitHub. Your feedback and use of the system provide vital inputs to our development process.

Next up Is Surveyor

In the next release scheduled for May 21st, we are looking to further improve the bidding mechanism and provide the initial consensus check functionality based on the zero-knowledge implementation provided in Zond. Until then, we invite everyone interested to test out our alpha network and spin up a node. We are eager to get constructive feedback from the community and strongly believe this collaborative effort will bring more value for everyone in the ecosystem. Do let us know if you have any ideas through our channels.

If you have any tech questions about this release, you are welcome to participate on our Reddit AMA on Wednesday, May 9th, 2018. Submit your questions here.

Trace on,

OriginTrail dev team & the roadmap

👇 More about OriginTrail 👇

Web | Twitter | Facebook | Telegram | LinkedIn | GitHub | Chat

--

--

Branimir Rakic
OriginTrail

Builder, explorer and a glass-half-full type of a person. Into social empowering technologies & art. Co-founder and CTO at @origin_trail