Today we are excited to release Lumina. Go to https://lumina.rs/ and you’ll be running a Celestia light node in the browser. By running Lumina you synchronize with the network, sample the network for data availability, directly verify correctness and contribute to the network health.
Celestia is the first blockchain to expand on the idea of lifting light clients' security. We even call them light nodes, instead of light clients, because in addition to having better security guarantees, they also contribute to the network safety and allow it to scale.
Usually, light clients verify only the block headers. They rely on the majority of consensus nodes being honest and the blocks in the chain favored by a consensus being valid. Thanks to the unique approach of Celestia’s Data Availability layer, light nodes can, with high confidence, verify that the block's data is available and that the protocol wasn't violated with only a single honest full node assumption.
The Data Availability layer is a network of nodes which do not actively participate in a consensus but they hold, verify and redistribute the blocks data. The data in the block is divided into shares and laid out in two dimensions as a square. Then it is extended with recovery data, forming a square of double the width (so quadruple the area). Merkle hashes for each row and column of the resulting square are stored in a block's header. This two dimensional data structure allows for verifying Merkle proof for just a row or a column which results in much smaller and faster to verify proofs. The attacker would still need to hide more than a half of the data in each row and column, which for the smallest possible Data Square is over 50% of the shares, going down to above 25% as the size grows. Thanks to the recovery (parity) data, if less data than that is hidden, rest can still be recomputed.
Light nodes actively sample parts of each block until they reach high confidence that the entire block is available in a process called Data Availability Sampling. They query the network for the randomly chosen set of cells of the block's data square (called shares) and check if they find any unavailable. Thanks to the amount of data that needs to be hidden to make the block unavailable, they can reach over 99% confidence that the data can be fully retrieved with just a few samples - for larger blocks they only need to query less than 1% of the data. It is important to note that the sampled data remains in the light nodes memory, so having a lot of light clients sampling blocks gives the network shared security. Parts of blocks' data are distributed on light nodes and even if the attacker was able to hide the data later on, full nodes can still retrieve it from light nodes. As a consequence of this, the more light nodes in the network, the more data can be stored securely within the block, increasing the Celestia scaling and throughput.
But what about the single honest full node assumption? It is possible that the attacker who was selected to build a block hasn’t computed the parity data correctly. Then, the block header would have matching Merkle roots and all the created proofs would still be correct, but we would not be able to recover the missing data with malformed parity data. This cannot be detected by sampling, since proofs are correct, but now the attacker needs to invalidate much less than the assumed 25% of the data to make it unrecoverable. To protect from this kind of attack, when an honest full node receives a full row or a column of the data square, it tries to compute the parity data itself and checks it with the parity data received. If incorrect encoding is detected, fraud proof is announced to all the other nodes. If there is at least a single honest full node which sends such proof, light clients can verify the proof themselves and discard the invalid block.
Light nodes are an essential part of the Celestia network and form a backbone of its data availability guarantees. Increasing the number of light nodes contributes to the network's overall throughput, security and healthiness as they, in aggregate, can process, verify and secure more data. To help Celestia grow, at Eiger we are working on a light node that’s running in a wasm environment. Wasm is not only performant, but also extremely portable - allowing anyone to run their light node with no more effort than opening an URL. You can run the Lumina node on your device at https://lumina.rs/.
Synchronize at least 1% and claim a limited NFT.
Check out the code at https://github.com/eigerco/lumina
Say hello@eiger.co