Blockchain 5.0 — Fusing DAG ledgers with Smart Contracts

Lukas Hetzenecker
2 min readJul 2, 2019

--

Part 3: Platforms

In Part 2 we have discussed how smart contracts in a DAG could look like. Now we want to see how this could work in practice.

For that we need two ingredients: a Smart Contract Virtual Machine, and a DAG platform that we can use for piggybacking the smart contract VM.

Smart Contract VM

We can choose any of the already existing smart contract platforms for this — as long as it (i) has already been launched, (ii) is running and supported from a community of developers, and (iii) is open source and publicly accessible.

Surprisingly limitation (i) is already rather difficult to come by — many cryptocurrencies like IOTA, XRP, and even Bitcoin Cash (Spedn) have a smart contract platform under development, but none of them have published their source code yet. Also Cardano only recently released their platform in a Testnet.

We seem to have only two real choices here: Ethereum with their EVM, and NEO with their NeoVM. When looking at the NeoVM, it basically is the same state-machine as EVM, just with different opcodes.

And EVM clearly also has the first-mover advantage, is currently the most popular platform, and is not only the smart contract VM for Ethereum and its fork Ethereum Classic, but also used in Qtum and EOS.

Therefore our choice here will be the EVM.

DAG platform

Our goal is to build a second-layer solution for an already established DAG cryptocurrency. Fortunately the choice here will be easy, as only two (popular) platforms exist: IOTA and NANO.

While the block lattice structure of NANO would look like the ideal choice, the platforms needs to support zero-value data transactions. This rules out NANO, and therefore our data storage will be on IOTAs Tangle.

Example of contract invocations in the Tangle — e.g. there is no direct path between mint(…) and approveSiring(…), so we don’t know which TX happened first — but we don’t need to.

This abstract model will get clearer in Part 4.

Part 1: Introduction
Part 2: Relaxations
Part 3: Platforms
Part 4: Implementation
Part 5: Summary

--

--