Posted 9 months ago | by Catoshi Nakamoto
A sidechain solution to temporary data availability
With the release of Descartes Rollups, Cartesi has introduced scalable smart contract computations with mainstream software stacks. Although it’s an exciting breakthrough, there’s one more thing we need to improve upon in order to unleash the full potential of Descartes Rollups — the data availability problem. Computations are always performed on data inputs, and there’s a big scalability limit in smart contract data storage. Noether is Cartesi’s side chain designed for temporary data availability. Different from other solutions, data provided on Noether is temporary and its consensus is local. These characteristics make Noether highly scalable in throughput and storage size.
Noether consists of on-chain and off-chain logic. This article will focus on the on-chain infrastructure and briefly on off-chain upgrades. Details on off-chain design will be covered in future release articles.
On-Chain Infrastructure & The Cartesi Tree
Noether uses the Cartesi PoS system that has been launched on Ethereum Mainnet since Q1 this year. The block producer selection algorithm has been tested thoroughly with PoS 1.0. This upgrade will enable the current PoS contract to access the side chain’s core data structure — Cartesi Tree. Just like any other blockchains, Noether could occasionally run into the situation that a fork in the chain creates completely different realities. Thus we need a tree-like structure to handle this.
Cartesi Tree is implemented based on a skip list data structure that offers a quick lookup for ancestors from any known vertices. This is extremely useful when a block producer claims a reward for his block production. The block reward rule is like this: A block producer can only claim rewards of his own blocks, while the blocks have to be on the longest valid path of the side chain, and at least a certain number of new blocks appended to his blocks. This concept is very similar to block confirmation of other blockchains, reducing the effect caused by block reorganization.
Aside from the Cartesi Tree, PoS also holds metadata of the sidechain blocks, it could be anything interesting to the DApp parties, but the base case will be the hash of the current block. This serves the purpose of validating the data availability of sidechain blocks. The off-chain nodes should get the actual block data from a P2P network, and the calculated hash of block data should match the one that’s stored in the PoS contract.
How It Works
For now, there’s no off-chain logic implemented to select from forks, and thus the side chain should remain a singular list. Every block producer will simply submit a new block with dummy data to the end of the side chain once selected, and wait for `rewardDelay` confirmation blocks to claim their reward. In future releases, there will be no changes to the on-chain infrastructure, but the upgrading of off-chain software is necessary, allowing nodes to check the validity of each side chain block. We are expecting a seamless user experience once a validator node is set up properly.
More details about fork selection algorithms, integrated P2P networks and other features should be released soon!
Cartesi is a multi-chain layer-2 infrastructure that allows any software developer to create smart contracts with mainstream software tools and languages they are used to while achieving massive scalability and low costs. Cartesi combines a groundbreaking virtual machine, optimistic rollups, and side-chains to revolutionize the way developers create blockchain applications.
Cartesi’s Ecosystem Links:
Discord (Development Community): https://discordapp.com/invite/Pt2NrnS
Telegram Announcements: https://t.me/cartesiannouncements
Original article published on Cartesi’s Medium.