Taraxa makes use of the block DAG topology first proposed by Zohar and Sompolinsky. Recently we've noticed that whenever we explain our project, the audience always seems to have large numbers of misconceptions about what DAG is or its relation to blockchain technology.
Here we address a few of the most common questions and hope it will be helpful in clearing up some persistent misconceptions.
Misconception 1: DAG is different from blockchain
Simply put, DAG and blockchain cannot be compared at all, since they're completely different concepts. Let's look at what each actually is.
DAG (Directed Acyclic Graph) is a mathematical model applied to data structures. It consists of vertices that are connected with single-directional edges, with no way of starting from one vertex, following the edges and ends up back at the same vertex - hence it is acyclical.
Essentially, DAG is a low-level data structure that is useful in modeling many types of data (especially with a network of dependencies), such as a dependency for spreadsheet cells, combinatorial logic for digital circuits, or causal systems like Baysian networks. The DAG data structure has many interesting mathematical properties that help to simplify problems associated with these types of data.
For more details on what a blockchain is, please read What is blockchain?, but essentially a blockchain is a networked system that enables entities to commit statements, agree on reality, and replicate records. While these features are not unique in themselves individually, combined they create a set of interesting properties that are unique to blockchain technologies, such as immutability and guaranteed ordering.
Right away, we see the mismatch in the comparison. DAG is a data structure, while blockchain is a system. In other words, DAG is an abstract model, while blockchain is an application. Comparing the two would be like comparing triangles to a skyscraper. The concept of triangles are probably used in the geometric calculations during the design of a skyscraper, but the two are so fundamentally different that they cannot be compared.
Where does this misconception come from? It comes from the fact that a DAG-based topology is quite different from a single-chain based topology in blockchain design. DAG is simply an alternate way of organizing a blockchain's data structure.
In the case of Taraxa, we use a block DAG topology - here's a visual from our whitepaper.
Single chain blocks vs. block DAG topologies for blockchain systems
But are all blockchains with DAG topologies the same? This leads us to our second common misconception.
Misconception 2: all DAG-based blockchain systems are the same
We often meet community members who have some knowledge of another blockchain system that makes use of the DAG topology who tend to superimpose all the characteristics of the other system onto Taraxa - including the other projects' technical flaws or challenges.
Here we briefly describe several other early blockchain projects with a DAG topology and how they're different from Taraxa's design.
IOTA was probably the first who educated the market on how IoT devices could benefit from blockchain technology and made use of DAG by proposing a very different consensus algorithm. IOTA's approach to validating a transaction through a random walk into the DAG eventually made the network dependent on a centralized coordinator to maintain ordering and correctness - without which it cannot properly deal with problems such as double-spend. Taraxa's ordering mechanism on the other hand is well-defined and does not rely on centralized coordination.
Byteball is also a DAG topology with no blocks. What makes it different is the functionality of the consensus that is based on finding a main chain inside the DAG to discover ordering, and periodic snapshots (balls) to limit the computational complexity of calculating the ordering. However it relies on a set of "trusted" 12 witnesses and is considered highly centralized. Once again, Taraxa's ordering mechanism is well decentralized.
Nano is not quite like IOTA or Byteball. Each account has its own chain (a block lattice) and the ordering on every chain is determined by the chain's owner with a dual send-receive mechanism involved for every transaction. Nano is a ‘DAG' in the sense that you can draw directed edges between transactions on different chains, but it is structurally very different from IOTA or Byteball. However Nano's block lattice design is highly optimized for coin transactions, not smart contracts. Taraxa has a general purpose , heavily-optimized EVM to maximize execution speed.
So why use a DAG, or in the case of Taraxa, a block DAG at all?
Misconception 3: DAG blockchains are perfect for IoT
Taraxa's primary target application is to enable IoT ecosystems to become more trusted, autonomous, and valuable. However, this has little to do with its block DAG topology.
Taraxa chose the block DAG topology for its ability to increase throughput without sacrificing security (see Single chain's tough trade-offs and Block DAG and PoS for more details). The block DAG structure is inclusive, in that it is able to accept all branches, hence increasing the overall throughput. The security challenge is resolved by looking at the pointers each block uses to point at multiple parents as votes that translate into a weight rating, called the GHOST rule. With this rule, we can calculate an anchor chain in the block DAG, and establish a deterministic order based on epochs drawn from each anchor block on the anchor chain.
Hence, block DAG was chosen as the topology due to its high throughput properties, which by no means makes it "ideal" for IoT or any other use case - as it is appropriate for any use case, since there are no use cases that demand a low throughput. At the same time, IoT data anchoring (a critical use case in our IoT applications) does demand a large throughput, which makes using the block DAG topology fitting for building a high throughput blockchain system.
Hopefully we have helped to dispel some of the most common misconceptions about DAG and blockchain.