Inside the Universa DAG

Let’s take a deeper dive into the Universa Blockchain. In the previous explanations you could read why the protocol is fast, cheap and secure. But what is the Universa Blockchain Protocol in essence and what does the architecture look like?

Because a blockchain is in most cases rather a buzzword and a collective name for several digital systems than a just chain of blocks. Let’s start with the first blockchain: Bitcoin.

Bitcoin’s linear blockchain

More than a decade ago, Satoshi Nakamoto created the idea behind the first digital blockchain. Actually it’s very simple: it’s a chain of blocks with all transactions within it.

At the moment the Bitcoin blockchain consists of more than 620.000 blocks. Each block is followed by a new one every ~10 minutes. A miner which has the right to generate a specific block, chooses transactions from the mempool and adds it into the block.

By this process, the blockchain consists of a linear structure with each block followed by another in one single chain. New transactions are constantly being processed by miners into new blocks which are added to the end of the chain. It also has a reference to the block that came immediately before it, which makes the transaction history immutable.

Each block does not just have “a reference” to the previous block in the chain, but actually stores the hash and hence refers to its hashed contents. Additionally, a very interesting part is that you cannot edit some block, because if you edit it, its hash would change; so it will mismatch the hash stored in the next block. And if you try to edit the next block (and fix hash in it) – the hash of the next block will change too. And so on and so on. So you just cannot change anything anymore, because the hashes of the data are stored in the subsequent blocks. This chain of hashes makes the history immutable.

Blockchain 2.0

Bitcoin is invented and designed to be the new digital cash. Its purpose is being digital money. After some time, a lot of innovative initiatives arose which tried to use blockchain for different purposes. 

Not specifically for money, but as a part of a distributed network for efficient and secure data processing. Most of them were about ‘sharing and storing’ digital information at a trustless level.

This resulted in a new kind of blockchains with different parameters and assumptions. After the Bitcoin blockchain, it became the era of Ethereum. The architecture of this blockchain can be compared to the bitcoin blockchain: it still has a linear structure.

Over time it became clear that with this infrastructure for any kind of digital processes (which go further than just and only transmitting money), the linear structure caused problems in terms of scalability and efficiency.

To solve this problem different solutions arise for the architecture of the blockchain:

  • Sharding: dividing the single linear structure into several (independent) chains (shards);
  • Sidechains: using sidechains which are pegged to the main chain (like the Sun network in Tron e.g.) as an extension of the main chain;
  • Directed Acyclic Graphs (DAG’s): registering transactions in independent non-linear connected blocks.

But the solution that Universa uses is rather unique and not any of these. The Universa Blockchain Protocol uses an even better solution: a multitude of DAG’s. In the world of Universa, each contract history is a fully independent DAG.

Directed Acyclic Graph 

With Bitcoin/Ethereum, there is a single, linear, graph structure which stores all the transactions. With DAG-based blockchains, the DAG combines all the transactions in a single non-linear graph. In Bitcoin and Ethereum, each block can have only 1 parent and only 1 child. In a DAG, each block may have multiple parents and even multiple children.

As you could read in the previous articles, each transaction in the Universa Blockchain is a revision of the root smart contract. So with Universa, each smart contract has its own DAG of the history of this document/contract. 

Most of the time it could be considered as a linear graph within this particular DAG. When you do a transaction, the state of the contract gets revoked and the new version gets approved. This all happens within one DAG in a linear structure which does not affect other smart contracts.

In Universa it’s possible to get thousands of DAG’s all working independently without interfering with the chain of other smart contracts. 

When you put all of these DAGs together in one network which is maintained by nodes you get the Universa Blockchain. 

But despite being a single DAG, it’s still just a history of just the same contract. Changing multiple contracts altogether, may even get registered in a single transaction, despite being referred to and from different DAGs. This makes it possible to use the Universa Blockchain as a technical glue between current existing IT systems in for example Smart Cities.

This way, each DAG (and thus each contract), is truly independent from another.

Lots of DAG’s

With linked blockchains this aspect is already less important. But in Universa with this “forest of DAGs”, two histories of two contracts are 100% independent. These contracts cannot interfere with each other.

As you might remember from the article about ‘speed’, the Universa Blockchain: 

  1. doesn’t store the information of every block (publicly)
  2. it doesn’t store non-final blocks at all. This increases anonymity and it saves a lot of space and improves performance.

So each ‘block’ does not connect to a pack of transactions in the previous blocks, but to a single revision of the smart contract. You can read more about this at our Knowledge Base.

Having this in mind, we come to an interesting conclusion: by registering one single smart contract in Universa, you actually build a fully qualified new blockchain. This will be one new DAG in the swarm of other Directed Acyclic Graphs.

Universa Today is maintained and translated by the community. Contact @starnold if you want to participate and help to spread the word.

Original

Help translating this post to German French Dutch Italian Spanish Croatian Russian. Contact @starnold to participate!

Related posts

Inside a Universa Smart Contract

Arnold

What makes the Universa Blockchain so secure? HashID

Arnold

The Digital Migration: Why Universa is the Rail Blazer

kobina

Leave a Comment