Blockchain data standardization – tokens
By Erik de Graaf - Scientist Innovator TNO
By definition, blockchains require working with different organizations; organizations that use different software to handle the data that needs to be exchanged. Interoperability needs to be one of the first things to be considered when starting a project.
To achieve interoperability between solutions it is essential that there is a mapping between data formats used by every party. A data mapping is of course not necessary if the parties are using the exact same data format. Tokens are a way to share a data format, track value and objects, and to put this format onto a blockchain. On public blockchain networks, there is one well-known token standard, called ERC-20. ERC-20 stands for Ethereum Request for Comments, and is thus specific to the Ethereum (public) blockchain. It is a standard for fungible tokens. Fungible means each token is equivalent to each other token. The tokens are interchangeable. My 10 euro bill is the same as your 10 euro bill. ERC-20 smart contracts keep track of the following:
- The token’s name (Tether USD)
- The token’s symbol (USDT)
- Total number of tokens (12,442,213,561)
- Number of tokens belonging to an account (0x12345 has 10 tokens, 0xabc123 has 5 tokens)
- Optional: decimals (6)
Other blockchains also have fungible token standards, often built into the protocol. The EOS blockchain called theirs eosio.token. EOSIO’s token holds the same information as ERC-20, but excludes the optional decimals field. The data mapping between these token standards is therefore minimal. An application (bridge) transferring tokens between these chains must make sure only to allow transferal of whole tokens. Other smart contract blockchains, like Cardano and Polkadot, are working on their own support for fungible tokens, and the first drafts appear to be compatible. The tokens can have different functions, like a function that allows someone to delegate control over their assets. These need not necessarily be mapped, as the token functions also without these extensions.
There is also a popular token standard for non-fungible tokens (NFT): ERC-721. A non-fungible token is one where tokens are not interchangeable, such as a digital twin of an object in the real world. A token that holds information of a container cannot simply be exchanged for a token with information of a different containers. The containers have different contents and value. These tokens are much harder to transfer between blockchains, as often these tokens are an extension of the standard, in order to include information fields specific to the token. For example, a token smart contract for containers may want to include a data field with a list of its content.
A way to avoid incompatibility in NFT due to extra fields that are not standardized is to have a single text field, in addition to a few basic fields like the token’s name, symbol, and list of which token belongs to whom. This text field can then be mapped independently of underlying NFT implementation, by use of an ontology.
If you want to learn more about blockchain interoperability, tokens, standardization, or ontologies for your use case, feel welcomed to get in touch with the Spark! Living Lab.