What is blocklattice?

Blocklattice (term created by the NANO project) is a variant of DAG (directed acyclic graph) data structure, which is composed of linear chains. Blocklattice is a more general data structure compared to blockchain. In other words, blocklattice could be also reduced to a blockchain.

How Blocklattice is used in Nano

As stated from the Nano whitepaper:

Here, we will introduce Nano, a cryptocurrency with a novel block-lattice architecture where each account has its own blockchain, delivering near instantaneous transaction speed and unlimited scalability. Unlike blockchains used in many other cryptocurrencies, Nano uses a block-lattice structure. Each account has its own blockchain (account-chain) equivalent to the account’s transaction/balance history (Figure 2). Each account-chain can only be updated by the account’s owner; this allows each account-chain to be updated immediately and asynchronously to the rest of the blocklattice, resulting in quick transactions. Nano’s protocol is extremely light-weight; each transaction ﬁts within the required minimum UDP packet size for being transmitted over the internet. Hardware requirements for nodes are also minimal, since nodes only have to record and rebroadcast blocks for most transactions (Figure 1).

Nano’s blocklattice data structure

How Blocklattice is used in DEXON

The blocklattice structure used by DEXON is an evolution of the fundamental architecture of existing blockchain technology that uses multiple blockchain systems working together in parallel.

Each node operates its own blockchain as a set of vertices in the blocklattice, and ack actions function as the edges in the blocklattice.

An arbitrary number of nodes maintain their own blockchains, and each block in a node’s blockchain, proposed by that node individually, must follow other blocks as a means of acknowledging that those blocks are correct.

DEXON blocklattice data structure

Side-by-side comparison

————————————————————————————————————————————————————————————————————

| | NANO | DEXON |

————————————————————————————————————————————————————————————————————

| Chain in Blocklattice | Accountchain | Blockchain |

————————————————————————————————————————————————————————————————————

| Edge in Blocklattice | One transaction | Acking |

————————————————————————————————————————————————————————————————————

| Vertex in Chain | Sending/Receiving Tx | Block |

————————————————————————————————————————————————————————————————————

| No. of Chains | No. of accounts | No. of validators |

————————————————————————————————————————————————————————————————————

Blocklattice is one kind of data structure

Blockchain, DAG, multi-chain, and side chain data structures are now widely adopted by many projects. Just like these data structures, blocklattice is an abstract data type and isn’t limited to any single project. Every project might have its own blocklattice implementation, and we believe that blocklattice would be the evolutionary data structure to be the infrastructure of the next generation blockchain technology.

While both are blocklattice-based, the protocols are totally different

Each blockchain in Nano’s blocklattice is one account, that means the number of blockchain is proportional to the number of account. The edge between blocks is the transaction between accounts.

These are some criticisms about Nano:

Unrealistic for validators to host many account chains

It will be a heavy burden for the network for each account to have its own blockchain. Now there are 40M+ accounts on Ethereum. Imagine a distributed system with 40M+ blockchains. The number would go even bigger when DLT becomes mass adopted. In fact, by inspecting Nano’s block explorer, we found that Nano operates multiple accounts’ transactions by a single account chain, which is far from its original design.

2. A spam (penny) attack can easily be deployed

In Nano, both senders and receivers have to initiate a TX to transact between each other, regardless of the transaction’s amount size (big or small). Hackers could then see this as an easy target to attack the network by sending a lot of spam transactions.

3. Smart contracts cannot be executed because of the lack of global ordering of all transactions

Nano’s data structure is more liken to “TX-lattice” rather than “block-lattice.” Because there are no blocks in Nano, this could result in the lack of consensus on the order and timestamp of each transactions. This limits Nano in executing order-sensitive smart contracts as it doesn’t have global ordering for virtual machines to execute smart contracts and update the states on all nodes.

Meanwhile, in DEXON, it’s consensus algorithm deploys total ordering in the whole blocklattice. DEXON compacts all the blocks on the blocklattice in a canonical blockchain with absolute timestamps. This makes it easier for DEXON to be backward-compatible with the Ethereum ecosystem.

Moreover, because Nano is not a BFT (Byzantine fault-tolerant) algorithm, it needs DPoS to prevent from double-spend attacks and PoW to prevent from penny attacks.

4. Lack of incentives and not fairness constraints

There are also no mining rewards on Nano, so there is no incentive to host a full node in the Nano network. In the result that, the Top 10 representatives control almost 70% voting power, this is a to blow decentralization, which could prohibit its mass adoption.

On the other hand, DEXON validator nodes will get DEX coin as reward by participating in validating transactions. Furthermore, each validator node has the same voting power regardless of their stake, and this will make the whole system fully decentralized and fair.

Conclusion

DEXON sees the blocklattice data structure as an integral part of building an infinitely scalable, permissionless, low-latency, and Byzantine fault tolerant decentralized platform for DApps development, which is the DEXON network.

As stated in the previous paragraphs, blocklattice, while novel on it’s own, can be implemented in various ways as we have learned how both DEXON and NANO uses it, differently. We are excited to see how other technologies implement blocklattice in their own ways as we move towards a decentralized future.