DAGs are hard. I want my chain back!

Yes we can!

Introducing the Selected-Parent-Chain

Since every block in the DAG has a SelectedParent, we can start from any block B and follow the SelectedParent path all the way down to the Genesis block.
We shall call this path B.SelectedParentChain.

In this example, The SelectedParentChain is Virtual -> F -> E -> B -> Genesis

Accepted Blocks and Accepted Transactions

Let me side-step for a moment, and discuss how are UTXO-Sets calculated in Kaspa.

In this example, A is accepting C, D and E. It’s not accepting G, because it’s in B’s past. Acceptance of B is ambiguous, since it’s red.

Getting to know the Selected-Parent-Chain

Finally! We can start exploiting the selected parent chain for gain and profit!

  1. The nodes in our chain are the same blocks that build up The DAG’s SelectedParentChain (The one starting with the Virtual block)
  2. The transactions in every block in our chain, however, are not the ones included in said block.
    Rather, they are the transactions Accepted by said block.

Coinbase, Block Rewards and Fees

In BlockChain-based cryptocurrencies, every block contains a Coinbase transaction, which pays the miner his block reward, as well as any fees applicable.

Back to this example, only the coinbases of F, E, B and Genesis will be accepted, the coinbases for A, C, D and G are ignored. F’s coinbase will be paying fees and block rewards to A’s, D’s and E’s miners.

Further discussion and reading

If you want to discuss this blog post, or ask more about blockDAG, you are more than welcome to post a reply here or join Kaspa’s Discord Server or take a look at the GitHub repository for kaspad- Kasa’s first full node implementation . The Kaspa project is working on implementing fast and scalable money based on BlockDAGs.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store