Inside Conflux: How a Computer Science Legend is Planning to Solve the Biggest Challenge in the Blockchain World
Yesterday, a group of notable investors to the likes of Sequoia China, Baidu Ventures, crypto exchange Huobi, Metastable and IMO Ventures announced a $35 million funding round for the Conflux Foundation, an organization that will incubate an ambitious new protocol that tackles the scalability limitations of blockchain technologies. Conflux is led by a group of computer science scholars from the University of Toronto and China’s Tsinghua University which includes Turing Award Winner Dr. Andrew Chi-Chih Yao. Considered a computer science legend, Dr. Yao has been recently dabbling into several aspects of cryptocurrencies such as incentives or consensus. Some of that work resulted in a research paper that outlines the basics of the Conflux chain.
Conflux represents the latest addition to an active field of distributed ledger technologies that are trying to address some of the scalability limitation of blockchains like Ethereum or Bitcoin. Dfinity, Hasgraph, Zilliqa, Algorand are some of the most prominent projects focused on this area. The ideas behind Conflux have some similarities with some of these projects but it remains loyal to the Nakamoto-consensus model. Conceptually, the Conflux protocol improves upon the Nakamoto-consensus sequential model of producing one block at the time allowing the network to create an arbitrary number of concurrent blocks without sacrificing the immutability of the blockchain. Technically, this optimization can enable the concurrent processing of thousands of transactions per second. Obviously, the devil is in the details, but Conflux seems to have combined several well-known computer science techniques to arrive to this major breakthrough.
Differently from some the other blockchain scalability attempts, Conflux does not propose a brand new consensus model as much as a mechanism for extending the well-established Nakamoto consensus. Powering networks like Bitcoin, Nakamoto consensus has developed a reputation for being incredibly robust and secure as well as annoyingly slow. A Nakamoto-consensus protocol usually organizes transactions into an ordered list of blocks, each of which contains multiple transactions and a link to its predecessor. Each newly generated block will be appended at the end of the longest chain to make the chain even longer and therefore harder to revert. While incredibly secure, the Nakamoto-consensus model has the limitation that only one participant can win the competition and contribute to the blockchain.
To address the limitations of Nakamoto-consensus, several blockchains have relied on alternatives such as Byzantine fault tolerance(BFT) which relies on a hierarchical model to determine the order of transactions. However, there is a school of thought, which obviously includes the researchers behind Conflux, that believes that BFT blockchains can’t be sufficiently decentralized at scale( that’s an argument for another day 😉). The Conflux protocols follows a different approach powered by a simple idea: “What if we could optimistically process concurrent blocks and transactions deferring its final order to after commit time?”. While this idea might seem ludicrous at first, it starts making sense if we consider that most transactions rarely conflict in time in a blockchain which leads to the assumption that concurrent blocks would not conflict with each other by default enabling optimistic concurrency.
Released from the constraints of sequential Nakamoto-consensus, Conflux introduces concurrent block processing by following a few simple steps:
1) Optimistically process concurrent blocks
2) Organize blocks into a direct acyclic graphs (DAG)
3) First agree on a total order of all blocks (Assume transactions would not conflict each other )
4) Then derives the transaction order from the agreed block order (Resolve transaction conflicts lazily)
In order to implement these steps, the Conflux consensus protocol maintains consensus protocol maintains two kinds of relationships between blocks. When a participant node generates a new block in Conflux, the node identifies a parent (predecessor) block for the new block and creates a parent edge between these two blocks like Bitcoin. These parent edges enable Conflux to achieve consistent irreversible consensus on its ledger. The end result is that edges between blocks form a direct acyclic graph(DAG) that is both easy to navigate and introduces certain level of resistant to forks. From that perspective, Conflux can be seen as a DAG-based Nakamoto consensus protocol.
We all know that a blockchain is more than a consensus protocol. Conflux provides a fairly simple architecture that extends some of the core principles of Bitcoin with innovative scalability constructs. The base architecture of Conflux includes the following components:
· Gossip Network: All participant nodes in Conflux are connected via a gossip network which is responsible from broadcasting a transaction to all nodes in the network.
· Pending Transaction Pool: Each node in the Conflux network maintains a pending transaction pool that includes transactions that have been heard by the node but are not yet packed into any block. Whenever a node receives a new transaction from the gossip network, the node adds the transaction into its pool.
· Block Generator: Conflux’s nodes use a block generator based on Proof-Of-Work(PoW) to create blocks for pending transactions.
· DAG State: Each node in Conflux maintains a local copy of the DAG graph that contains all the blocks the node is aware of.
The principles of this architecture allow Conflux to combine the security and robustness of Bitcoin with the scalability of modern blockchains in a single network. The Conflux model ensures three very desirable properties of blockchain networks: security, concurrent transaction processing and correctness. However, the Conflux team went beyond the theoretical exercise and decided to see if some of their ideas work in practice.
Conflux in Action
The Conflux team run a prototype implementation of the protocol on a cluster of 800 AWS EC2 instances running dozens of nodes each. In total the experiments used an architecture of about 10000 Conflux nodes processing blocks of 1MB-8MB in size. Not surprisingly, Conflux shown a clear advantage in throughput compared to other Nakamoto-consensus blockchains.
A bit more impressive is that Conflux’s block utilization ration vastly outperforms other comparable blockchains.
Other experiments showed that Conflux can scale consistently to about 20000 concurrent users without major impact in the confirmation time.
Conflux takes a novel approach to blockchain scalability by not completely departing from the principles of Bitcoin. At the moment, Conflux is not much more than a sophisticated research exercise but some of its ideas might evolve as a new blockchain or even be incorporated into Bitcoin.