The Blockchain was originally designed to be a peer-to-peer cash transfer system. The only asset a Cryptocurrency Blockchain needs to trace is a coin.
The Traceability Blockchain tracks assets and products through the supply chain so the data structures behind the Blockchain had to be adapted to handle the problem that all assets are not the same.
The original whitepaper defining the Blockchain defines a coin as a chain of digital signatures. Each time a coin was transfered to another party, the transaction where the coin holder received the coin becomes an input to the transaction where the new coin holder receives the coin.
If you are familiar with relational or document databases the data structures behind the blockchain seem strange. But, when you look at the problems the blockchain was designed to solve the data structures make perfect sense.
Storing Data on an Immutable Ledger - In a traditional database structure data can be updated or delete once it has been written. This is not the case with the Blockchain.
Solving the Double Spend Problem - In order to be an effective cash transfer system it must be impossible for a person to spend the same money more than once.
Operating without a Central Authority - In traditional cash transfer systems like banks, there is an entity that can validate, correct, and reverse transactions. This not the case on the blockchain.
The data structures defined in the blockchain can be described in a a single statement.
The current state of an asset is contained in the most recent transaction that affected it.
A cryptocurrency wallet is generated by the combination of a Public Key and a Private Key. The keys used in public key cryptography have an important mathematical relationship used in cryptography. The Public Key is shared with the public and called the Wallet Address
In tracing a product or other non-monetary asset the physical location of the where the product can be located is used to generate the Blockchain Address. The Traceability Blockchain provides a public function that can be used to generate a Blockchain Address for any location on earth.
This is important because it allows the shipper or receiver of products to determine the Blockchain Address of the other party without the other party's involvement.
In the supply chain an asset involves, where it is (Address), what it is (GTIN), and when/how it was made (LOT#). Additional numbers such as serial number are also used in some industries such as healthcare.
The Traceability Blockchain supports the GS1 Standards for Product Identification across multiple industries.
Assets stored are on the blockchain are identified by a single identifier, the Asset ID along with it's inputs and outputs. This inputs and outputs are other asset identifiers that also define the location, GTIN, and Lot Number of the input product.
The Traceability Blockchain supports additional text data added to the Asset. Any additional data that is stored directly on the Blockchain is NOT PRIVATE. Any additional data added to the Blockchain is data provided to assist traceability. Private data or documentation related to the asset should be stored using an anchored object.
An anchored object is an object that is stored off the main chain where its signature is hashed into the asset data to ensure the authenticity of the external object.