On November 2nd, the Bison update of Catapult (version 0.2) was released and committed onto the Catapult server Github repository. The Bison update follows the Alpaca update and preludes the Cow update. This update was an important step towards the release of the public blockchain Catapult update and demonstrates the hard work that the NEM core developers, gimre, BloodyRookie, and Jaguar0625 have put in. In particular, Bison introduces three key features that will keep NEM up to date on DLT (distributed ledger technology) innovations and set NEM apart from other public blockchains: account properties, Merkle state proofs, and cache state backing to NEM.
Now, what do these technical terms actually mean? Here’s a breakdown of each update, explaining how they work and what they accomplish for NEM and its users.
1) Account properties
Account properties may sound like a generic phrase, but it has a specific technical definition in the blockchain field. Like smart contracts, account properties are the set of `smart rules’ that dictate what an account on a blockchain can or cannot do. Users will be able to use account properties to allow or block transactions based on addresses, transaction type, or mosaic ID.
For example, suppose that your friend Susan wants to keep her crypto-asset trading organized across individual addresses for ease of record keeping. Among other assets, Susan is trading a hypothetical EGG mosaic on a Crazy Chicken Exchange. Through account properties, she can define an account on the NEM Catapult blockchain that solely permits a transaction if and only if the incoming transaction is a movement of EGG mosaic to her Crazy Chicken Exchange deposit address.
Account properties greatly expand the possibilities for on-chain logic and operations compared to the current public version of NEM. The presence of account properties thus gives NEM increased flexibility in addressing the evolving functionality that industries and users are seeking from blockchain tools.
2) Merkle state transition proofs
Introduced with Bitcoin, Merkle proofs have been at the core of proof-of-work consensus and blockchain block assembly. For a quick recap of Merkle proofs, let’s step back and review the concept of a Merkle tree:
A Merkle tree is a structure of nodes labeled by hashes. Pictured above is the simplest form of a Merkle tree, the binary Merkle tree, in which every leaf node (not to be confused with a node, as in a device that stores the entire transaction history of a blockchain) only branches into two child nodes. At the bottom of the tree, hashes map one-to-one with transactions. A Merkle tree is built by hashing together two hashes, repeating the process until a singular hash is created. The hash at the peak of the tree is called the Merkle root (also referred to as the transaction root in blockchain), and each transaction can be traced from it. It is included in block headers to summarize a block of transactions.
Merkle proofs traditionally have several advantages for blockchain utility:
- It can be used to check the existence of a transaction in a dataset.
- It allows for proof of validity without demanding the entire ledger.
- It ensures validity of a transaction without revealing the rest of the dataset.
Notably, Merkle proofs allow ‘light clients’ to authenticate and submit transactions rapidly without having to download the entire transaction history like a full node by downloading just the block headers. This process is facilitated by requesting Merkle proofs from full nodes, and it allows those who are not network maintainers or miners to interact more freely with the network.
However, as more demands have been placed on blockchain functionality by users and industries, blocks increasingly need to answer for more than just transaction existence. The dawn of smart contracts and state-dependent, conditional transactions means that blocks also need to record the network state to validate that a specific condition was appropriately met to trigger a transaction.
As such, the Bison update utilizes Merkle state transition proofs to also record changes in account balance, lock status (for hash and secret locks), account properties, namespaces, mosaics, and multisig state. Light clients will be able to rapidly verify the state in a certain block in addition to the transaction information, allowing for more efficient smart contracts and conditional transactions.
3) Cache state backing
Last but not least, we have the introduction of cache state backing, which denotes the efficient storage of blockchain state hashes for easy reference and retrieval by full nodes. This update is intimately intertwined with the above in scaling up NEM’s performance and operational complexity.
With the number of parameters and variables that constitute a blockchain network’s state between all of its accounts at any given time (especially with the introduction of account properties), state Merkle tree nodes need access to a variable number of branches not limited to two to keep track of all the possible kinds of state changes from one time point to another. It follows that state trees can be far more complicated than transaction trees; they can be much larger in total node count and have more intermediate nodes in their Merkle proofs.
Thus, in Catapult’s case, nodes will store data in a RocksDB database for fast, high performance confirmation of network state. Although retrieving state information from RAM would be faster, the RAM memory requirements can put a heavy burden on nodes. As the NEM network will only continue to expand, it makes sense to use RocksDB to demand less RAM from nodes. Furthermore, lowering the requirements of a node will more likely lead to a greater number of nodes, increasing the decentralization of the network.
As the infant blockchain industry quickly matures, NEM must be prepared for the expanding range of industry needs and growth in NEM network activity leading up to Catapult. The aforementioned updates work in conjunction with one another to improve the upcoming NEM Catapult. As explained, the introduction of these features will contribute to the future flexibility and convenience of the blockchain, making the Bison update a crucial milestone for NEM.
About the NEM Blockchain Platform
NEM is an out-of-the-box enterprise-grade blockchain platform which launched in March 2015. NEM has industry leading blockchain features that include: multisignature account contracts, customizable assets, a naming system, encrypted messaging, and an Eigentrust++ reputation system. Companies with legacy systems can “plug ‘n play” with NEM.
About the NEM.io Foundation Ltd
NEM.io Foundation is registered in Singapore and is operating globally. It was launched to promote NEM’s blockchain technology worldwide. It is one of the most well-funded and successful blockchain technology projects in the cryptocurrency industry.