There has been a lot of exciting talk and controversy over IOTA in the last few months, and the features that it brings for micro-payments and IoT applications. In this blog, I will analyze the features of IOTA, and show how 0chain can do it in a better way with a novel blockchain technology.

Zero Fees

IOTA’s main feature is that it has zero fees, but this comes with a small caveat that you need to make your device available as a miner, whether you like it or not! While this may work for merchants and peer-to-peer users conducting transactions, it won’t likely work for IoT applications that demand enterprise-grade quality, and would not want their device used for any mining activity.

For example, the Proof-of-Work required for IOTA will drain the battery of a sensor. In fact, in my previous IoT project, we tried to take every ounce of energy out of our chips and electronics, so that very little energy is spent on wireless transmission and measurement of data. Now if IOTA forces you to add a PoW feature that blows your power budget, then it won’t probably make sense for any sensor application.

On the other hand, 0chain treats the sensor as a light client, and there is minimal effort to send data and at zero-cost. There is zero-cost for smart contracts to execute the data after a deterministic time in sub-seconds, and zero-cost to store that data on a blob or on an IoT chain. So, as an IoT app developer the choice is simple. With 0chain, developers get an enterprise-grade quality app for their users with deterministic performance at zero-cost, or they can use IOTA that has variable finality and is not free.

I’ve been hearing a lot of partnership activities with IOTA recently. And such partnership with cloud providers, such as the Microsoft partnership with IOTA would then make “zero fees” into a fee to use Azure cloud services for IOTA, which is counter to IOTA’s value proposition, since users will then need to pay.

On the other hand, with 0chain, for any cloud partnerships, the services will be free to the end users or IoT endpoints. This is because the cloud providers will offer a 0chain ready cloud for miners, and they need to invest in the infrastructure to get compensated by the network with tokens.

Infinite Scalability and Fast Transactions in Future

IOTA’s claim of scalability and transaction finality in future is plausible only in a theoretical context. For a peer-to-peer transaction, they need merchants and users to adopt the technology in droves, so that their network grows and keep the finality smaller. However, finality also depends on the node performance and bandwidth, which they won’t be able to control as the network grows. So, IOTA would then need to get enough quality network effect to get a faster transaction finality, otherwise they will have variability in transactions and you could be waiting for days and hours, not seconds. And if you’re in a geo that does not have many IOTA nodes, then a few nodes will bottleneck all transactions in that locality, and there is no sure way for a business to provide a quality service. The finality is not deterministic, and such variance will not be tolerated in any enterprise grade application, especially that has complex smart contracts that depend on the data to be finalized.

On the other hand, 0chain does not need a big network, and can provide sub-second finality and infinite scalability from the start. It just needs enough honest miners to participate on the network.

Smart contracts

I heard that IOTA is working on smart contracts. While a smart contract is possible, a deterministic execution will be difficult and even more so because it would depend on the type and complexity of the smart contract and its need on CPU, RAM, and SSD resources. Let’s revisit the application that I was working on in my previous project. In this scenario, there would be thousands of sensors that send data every minute to the cloud. For every data that is sent, a smart contract needs to perform calibration and time-averaging on the data to convert it to an hour, day, week, and month average, and other smart contracts then need to work on it for AI and business decision logic. For all these smart contracts to work on the tangle, each execution of the contract needs to be have fast finality, so that dependent smart contracts do not have to wait for the execution to be completed. If completion times are long, then smart contract execution on the tangle is not possible. If the nodes on the network do not have the same processing capability, the finality times will be variable, something that applications cannot afford.

So, while the intent of IOTA and the market need has been identified, IOTA is perhaps not the right solution for IOT applications, and may even be less so for web and enterprise applications.