Updated 7/9/19
What defines a good IoT project? Defining this will help us understand what some of the problems they might struggle with and which projects excel in those areas. IoT will be a huge industry in the coming years. The true Internet 3.0 will be one of seamless data and value transfer. There will be a tremendous amount of devices connected to this network, from your light bulbs to your refrigerator to your car, all autonomously transacting together in an ever growing network in concert, creating an intelligent, seamless world of satisfying wants and needs.
Let’s use the vastness of what the future state of this network is to be as our basis of what makes a good project.
Scalability
In that future, we will need very high scalability to accommodate the exponential growth in transaction volume that will occur. The network doesn’t need to have the ability to do high transactions per second in the beginning, just a robust plan to grow that ability as the network develops. We’ve seen this issue already with Bitcoin on an admittedly small market penetration. If scaling isn’t one of the more prominent parts of your framework, that is a glaring hole.
Applicability
Second to scalability is applicability. One size does not fit all in this space. Some uses will need real-time streaming of data where fast and cheap transactions are key and others will need heavier transactions full of data to be analyzed by the network for predictive uses. Some uses will need smart contracts so that devices can execute actions autonomously and others will need the ability to encrypt data and to transact anonymously to protect the privacy of the users in this future of hyper-connectivity. We cannot possibly predict all of the future needs of this network so the ease of adaptability in a network of high applicability is a must.
Interoperability
In order for this network to have the high level of applicability mentioned, it would need to have access to real-world data outside of its network to work off of or even to transact with. This interoperability can come in several forms. I am not a maximalist, thinking that there will be one clear winner in any space. So it is easy, therefore, to imagine that we would want to be able to interact with some other networks for payment/settlement or data gathering. Maybe autonomously paying for bills with Bitcoin or Monero, maybe smart contracts that will need to be fed additional data from the Internet or maybe even sending an auto invite for a wine tasting for the wine shipment that’s been RFID’d and tracked through WTC. In either case, in order to afford the highest applicability, the network will need the ability to interact with outside networks.
Consensus
How the network gains consensus is often something that is overlooked in the discussion of network suitability. If the network is to support a myriad of application and transaction types, the consensus mechanism must be able to handle it without choking the network or restricting transaction type. PoW can become a bottleneck as the competition for block reward requires an increase in difficulty for block generation, you, therefore, have to allow time for this computation in between blocks, often leading to less than optimal block times for fast transactions. This can create a transaction backlog as we have seen before. PoS can solve some of these issues but is not immune to this either. A novel approach to gaining consensus will have to be made if it is going to handle the variety and volume to be seen.
Developability
All of this can be combined to create a network that is best equipped to take on the IoT ecosystem. But the penetration into the market will be solely held back by the difficulty in connecting and interacting with the network from the perspective of manufacturers and their devices. Having to learn a new code language in order to write a smart contract or create a node or if there are strict requirements on the hardware capability of the devices, these are all barriers that make it harder and more expensive for companies to work with the network. Ultimately, despite how perfect or feature-packed your network is, a manufacturer will more likely develop devices for those that are easy to work with.
In short, what the network needs to focus on is:
-Scalability — How does it globally scale?
-Applicability — Does it have data transfer ability, fast, cheap transactions, smart contracts, privacy?
-Interoperability — Can it communicate with the outside world, other blockchains?
-Consensus — Will it gain consensus in a way that supports scalability and applicability?
-Developability — Will it be easy for manufacturers to develop devices and interact with the network?
The idea of using blockchain technology to be the basis of the IoT ecosystem is not a new idea. There are several projects out there now that are aiming at tackling the problem. Below you will see a high-level breakdown of those projects with some pros and cons from how I interpret the best solution to be. You will also see some supply chain projects listed below. Supply chain solutions are just small niches in the larger IoT ecosystem. Item birth record, manufacturing history, package tracking can all be “Things” which the Internet of Things track. In fact, INT already has leaked some information hinting that they are cooperating with pharmaceutical companies to track the manufacture and packaging of the drugs they produce. INT may someday include WTC or VEN as one of its subchains feeding in information into the ecosystem.
IOTA
IOTA is a feeless and blockchain-less network called a directed acyclic graph. In my opinion, this creates more issues than it fixes.
The key to keeping IOTA feeless is that there are no miners to pay because the work associated with verifying a transaction is distributed to among all users, with each user verifying two separate transactions for their one. This creates some problems both in the enabling of smart contracts and the ability to create user privacy. Most privacy methods (zk-SNARKs in specific) require the one doing the verifying to use computationally intensive cryptography which is outside the capability of most devices on the IoT network (a weather sensor isn’t going to be able to build the ZK proof of a transaction every second or two). In a network where the device does the verifying of a transaction, cryptographic privacy becomes impractical. And even if there were a few systems capable of processing those transactions, there is no reward for doing the extra work. Fees keep the network safe by incentivizing honesty in the nodes, by paying those who have to work harder to verify a certain transaction, and by making it expensive to attack the network or disrupt privacy (Sybil Attacks).
IOTA also doesn’t have and may never have the ability to enable smart contracts. By the very nature of the Tangle (a chain of transactions with only partial structure unlike a linear and organized blockchain), establishing the correct time order of transactions is difficult, and in some situations, impossible. Even if the transactions have been time stamped, there is no way to verify them and are therefore open to spoofing. Knowing transaction order is absolutely vital to executing step based smart contracts.
There does exist a subset of smart contracts that do not require a strong time order of transactions in order to operate properly. But accepting this just limits the use cases of the network. In any case, smart contracts will not be able to operate directly on chain in IOTA. There will need to be a trusted off chain Oracle that watches transactions, establishes timelines, and runs the smart contract network
-Scalability — High
-Applicability — Low, no smart contracts, no privacy, not able to run on lightweight devices
-Interoperability — Maybe, Oracle possibility
-Consensus — Low, DAG won’t support simple IoT devices and I don’t see all devices confirming other transactions as a reality
-Developability — To be seen, currently working with many manufacturers
Ethereum
Ethereum is the granddaddy of smart contract blockchain. It is, arguably, in the best position to be the center point of the IoT ecosystem. Adoption is wide ranging, it is fast, cheap to transact with and well known; it is a Turing complete decentralized virtual computer that can do anything if you have enough gas and memory. But some of the things that make it the most advanced, will hold it back from being the best choice.
Turing completeness means that the programming language is complete (can describe any problem) and can solve any problem given that there is enough gas to pay for it and enough memory to run the code. You could, therefore, create an infinite variety of different smart contracts. This infinite variability makes it impossible to create zk-SNARK verifiers efficiently enough to not cost more gas than is currently available in the block. Implementing zk-SNARKs in Ethereum would, therefore, require significant changes to the smart contract structure to only allow a small subset of contracts to permit zk-SNARK transactions. That would mean a wholesale change to the Ethereum Virtual Machine. Even in Zcash, where zk-SNARK is successfully implemented for a single, simple transaction type, they had to encode some of the network’s consensus rules into zk-SNARKs to limit the possible outcomes of the proof (Like changing the question of where are you in the US to where are you in the US along these given highways) to limit the computation time required to construct the proof.
Previously I wrote about how INT is using the Double Chain Consensus algorithm to allow easy scaling, segregation of network traffic and blockchain size by breaking the network down into separate cells, each with their own nodes and blockchains. This is building on lessons learned from single chain blockchains like Bitcoin. Ethereum, which is also a single chain blockchain, also suffers from these congestion issues as we have seen from the latest Cryptokitties craze. Although far less of an impact than that which has been seen with Bitcoin, transaction times grew as did the fees associated. Ethereum has proposed a new, second layer solution to solve the scaling issue: Sharding. Sharding draws from the traditional scaling technique called database sharding, which splits up pieces of a database and stores them on separate servers where each server points to the other. The goal of this is to have distinct nodes that store and verify a small set of transactions then tie them up to a larger chain, where all the other nodes communicate. If a node needs to know about a transaction on another chain, it finds another node with that information. What does this sound like? This is as close to an explanation of the Double Chain architecture as to what INT themselves provided in their whitepaper.
-Scalability — Neutral, has current struggles but there are some proposals to fix this
-Applicability — Medium, has endless smart contract possibilities, no privacy currently with some proposals to fix this
-Interoperability — Maybe, Oracle possibility
-Consensus — Medium, PoW currently with proposals to change to better scaling and future proofing.
-Developability — To be seen
IoTeX
A young project made up of several accredited academics in cryptography, machine learning, and data security. This is one of the most technically supported whitepapers I have read. They set out to solve scalability in the relay/subchain architecture proposed by Polkadot and used by INT. This architecture lends well to scaling and adaptability, as there is no end to the number of subchains you can add to the network, given node and consensus bandwidth.
The way they look to address privacy is interesting. On the main parent (or relay) chain, they plan on implementing some of the technology from Monero, namely, ring signatures, bulletproofs and stealth addresses. While these are proven and respected technologies, this presents some worries as these techniques are known to not be lightweight and it takes away from the inherent generality of the core of the network. I believe the core should be as general and lightweight as possible to allow for scaling, ease of update, and adaptability. With adding this functionality, all data and transactions are made private and untraceable and therefore put through heavier computation. There are some applications where this is not optimal. A data stream may need to be read from many devices where encrypting it requires decryption for every use. A plain, public and traceable network would allow this simple use. This specificity should be made at the subchain level.
Subchains will have the ability to define their needs in terms of block times, smart contracting needs, etc. This lends to high applicability.
They address interoperability directly by laying out the framework for pegging (transaction on one chain causing a transaction on another), and cross-chain communication.
They do not address anywhere in the whitepaper the storage of data in the network. IoT devices will not be transaction only devices, they will need to maintain data, transmit data and query data. Without the ability to do so, the network will be crippled in its application.
IoTeX will use a variation of DPoS as the consensus mechanism. They are not specific on how this mechanism will work with no talk of data flow and node communication diagram. This will be their biggest hurdle and why I believe it was left out of the white paper. Cryptography and theory is easy to elaborate on within each specific subject but tying it all together, subchains with smart contracts, transacting with other side chains, with ring signatures, bulletproofs and stealth addresses on the main chain, will be a challenge that I am not sure can be done efficiently.
They may be well positioned to make this work but you are talking about having some of the core concepts of your network being based on problems that haven’t been solved and computationally heavy technologies, namely private transactions within smart contracts. So while all the theory and technical explanations make my pants tight, the realist in me will believe it when he sees it.
-Scalability — Neutral to medium, has the framework to address it with some issues that will hold it back.
-Applicability — Medium, has smart contract possibilities, privacy baked into the network, no data framework
-Interoperability — Medium, inherent in the network design
-Consensus — Low, inherent private transactions may choke network. Consensus mechanism not at all laid out.
-Developability — To be seen, not mentioned.
IoT Chain
IoT Chain focuses primarily on creating an operating system for IoT devices. They identify two core issues in IoT, fast micropayments and centralized data. IoT Chain proposes to solve these by a combination of technologies with a PBFT based transactional layer, DAG for data transmission, and Cyber-Physical System (CPS) for relating data and devices.
Their white paper does not go into detail beyond the basic description and uses of these technologies so it is hard to determine their implementation plan. PBFT is an efficient consensus mechanism that minimizes the amount of work nodes in the network have to do in order to gain consensus. The main pitfall of this mechanism is throughput (TPS) decreases significantly with increased nodes and decentralization. At 32 validation nodes, a PBFT network is maximally capable of about 7,000 transactions per second.
This sounds great on the surface but IoT Chain mentions no other plan to scale beyond the main chain for transactions. That means either they are going to run a very centralized network of 8 nodes to get ~17k TPS or they think a number far less than that is sufficient for IoT use. My issue with this is that it is very easy to imagine a scenario where you have 20,000 IoT devices sending 1 transaction per second. Even if it wasn’t every second, 100,000 IoT devices sending 1 transaction every 5 seconds would potentially max out a centralized version of this network. I don’t see a very well thought out scaling plan here.
They mention a DAG for the relaying and transmission of data within the network. DAGs are perceived to be “fast” and “instant” because what IOTA is doing with them but in this context, a DAG is being used to just relate snippets of data together. Not a revolutionary tactic but is one that the well regarded IPFS uses for efficient data retrieval over a distributed network. If this is not paired with an efficient and well-incentivized node network for storage and maintaining, the data retrieval will be slow and possibly incomplete.
The Cyber-Physical System is the idea of using a network of like devices to communicate together, compiling input to create a decision based on the input of many devices. This is a very basic neural network-esque proposal for utilizing distributed sensors and computing ability. This has also been proposed by INT utilizing MANETs to accomplish very similar results. These could be used in vehicles for managing traffic, or to better predict weather patterns by groups of weather sensors.
In all, their lack of discussion of technical details and no mention of scaling solutions or smart contracts makes me doubt their ability to transact on the scales needed for IoT and make use of data without smart contracts doing very basic things like distributing bounties for data provided or paying for the retrieval of datasets.
-Scalability — Neutral to low, the PBFT has promise of high throughput with their mention of HoneyBadgerBFT but the lack of scaling plan isn’t promising
-Applicability — Medium to low, the DAG based data transmission framework is a proven idea but that is all that was presented. No smart contracts or proposals on how data could be used
-Interoperability — None. With a single chain, it will have to be highly generalized to fit all applications (therefore just transactions) or specific for one use (therefore useless for IoT).
-Consensus — Medium to low. PBFT provides high efficiency if with strong tradeoffs in decentralization. They mention HoneyBadgerBFT as future work which would move this to solid medium.
-Developability —Not Mentioned.
CPChain
CPC puts a lot of its focus on data storage. They recognize that one of the core needs of an IoT network will be the ability to quickly store and reference large amounts of data and that this has to be separate from the transactional basis of the network as to not slow it down. They propose solving this using distributed hash tables (DHT) in the same fashion as INT, which stores data in a decentralized fashion so no one source owns the complete record. This system is much the same as the one used by BitTorrent, which allows data to be available regardless of which nodes will be online at a given time. The data privacy issue is solved by using client-side encryption with one-to-many public key cryptography allowing many devices to decrypt a singly encrypted file while no two devices share the same key.
This data layer will be run on a separate, parallel chain as to not clog the network and to enable scalability. In spite of this, they don’t discuss how they will scale on the main chain. In order to partially solve this, it will use a two-layer consensus structure centered on PoS to increase consensus efficiency. This two-layer system will still require the main layer to do the entirety of the verification and block generation. This will be a scaling issue where the network will have no division of labor to segregate congestion to not affect the whole network.
They do recognize that the main chain would not be robust or reliable enough to handle high frequency or real-time devices and therefore propose side chains for those device types. Despite this, they are adding a significant amount of functionality (smart contracts, data interpretation) to the main chain instead of a more general and lightweight main chain, which constrains the possible applications for the network and also makes it more difficult to upgrade the network.
So while this project, on the surface level (not very technical whitepaper), seems to be a robust and well thought out framework, it doesn’t lend itself to an all-encompassing IoT network but more for a narrower, data-centric, IoT application.
-Scalability — Neutral to medium, has the framework to address it somewhat, too much responsibility and functionality on the main chain may slow it down.
-Applicability — Medium, has smart contract possibilities, elaborate data storage solution with privacy in mind as well as high-frequency applications thought out
-Interoperability — Low, not discussed
-Consensus — Low to medium, discussed solution has a high reliance on a single chain
-Developability — To be seen, not mentioned.
WaltonChain
Waltonchain focuses on tracking and validating the manufacture and shipping of items using RFID technology. The structure will have a main chain/subchain framework, which will allow the network to segregate traffic and infinitely scale by the addition of subchains given available nodes and main chain bandwidth.
DPoST (Stake & Trust) will be the core of their consensus mechanism, which adds trust to the traditional staking structure. This trust is based on the age of the coins in the staker’s node. The longer that node has held the coins, combined with the number of coins held, the more likely that node will be elected to create the block. I am not sure how I feel about this but generally dislike trust.
Waltonchain’s framework will also allow smart contracts on the main chain. Again, this level of main chain specificity worries me at scale and difficulty in upgrading. This smart contract core also does not lend itself to private transactions. In this small subset of IoT ecosystem, that does not matter as the whole basis of tracking is open and public records.
The whitepaper is not very technical so I cannot comment to their technical completeness or exact implementation strategy.
This implementation of the relay/subchain framework is a very narrow and under-utilized application. As I said before, WTC may someday just be one part of a larger IoT ecosystem while interacting with another IoT network. This will not be an all-encompassing network.
-Scalability — High, main/subchain framework infinitely scales
-Applicability — Low to medium, their application is narrow
-Interoperability — Medium, the framework will allow it seamlessly
-Consensus — Neutral, should not choke the network but adds trust to the equation
-Developability — N/A, this is a more centralized project and development will likely be with the WTC
VeChain
*Let me preface this by saying I realize there is a place for centralized, corporatized, non-open source projects in this space. Although I know this project is focused mainly on wider, more general business uses for blockchain, I was requested to include it in this analysis. *
This project doesn’t have much data to go off as the white paper does not contain much technical detail. It is focused on how they are positioning themselves to enable wider adoption of blockchain technology in the corporate ecosystem.
They also spend a fair amount of time covering their node structure and planned governance. What this reveals is a PoS and PoA combined system with levels of nodes and related reward. Several of the node types require KYC (Know Your Customer) to establish trust in order to be part of the block creating pool.
Again there is not much technically that we can glean from this whitepaper. What is known is that this is not directed at an IoT market and will be a PoS and PoA Ethereum-like network with trusted node setup.
I will leave out the grading points as there is not enough information to properly determine where they are at.
INT
So under this same lens, how does INT stack up? INT borrows their framework from Polkadot, which is a relay/subchain architecture. This framework allows for infinite scaling by the addition of subchains given available nodes and relay chain bandwidth. Custom functionality in subchains allows the one setting up the subchain to define the requirements, be it private transactions, state transaction free data chain, smart contracts, etc. This also lends to endless applicability. The main chain is inherently simple in its functionality as to not restrict any uses or future updates in technology or advances.
The consensus structure also takes a novel two-tiered approach in separating validating from block generation in an effort to further enable scaling by removing the block generation choke point from the side chains to the central relay chain. This leaves the subchain nodes to only validate transactions with a light DPoS allowing a free-flowing transaction highway.
INT also recognizes the strong need for an IoT network to have robust and efficient data handling and storage. They are planning on implementing a decentralize storage system like IPFS much like the BitTorrent system. This combined with the network implementation of all of the communication protocols (TCP/IP, UDP/IP, MANET) build the framework of a network that will effortlessly integrate any device type for any application.
The multi-chain framework easily accommodates interoperability between established networks like the Internet and enables pegging with other blockchains with a few simple transaction type inclusions. With this cross chain communication, manufacturers wouldn’t have to negotiate their needs to fit an established blockchain, they could create their own subchain to fit their needs and interact with the greater network through the relay.
The team also understands the development hurdles facing the environment. They plan to solve this by standardizing requirements for communication and data exchange. They have heavy ties with several manufacturers and have developed and produced an IoT router to be the gateway to the network.
-Scalability — High, relay/subchain framework enables infinite scalability
-Applicability — High, highest I could find for IoT. Subchains can be created for every possible application.
-Interoperability — High, able to add established networks for data support and cross chain transactions
-Consensus — High, the only structure that separates the two responsibilities of verifying and block generation to further enable scaling and not choke applicability.
-Developability — Medium, network is set up for ease of development with well-known language and subchain capability. Already working with device manufacturers. To be seen.
So with all that said, INT may be in the best place to tackle this space with their chosen framework and philosophy. They set out to accomplish more than WTC or VEN in a network that is better equipped than IOTA or Ethereum. If they can execute on what they have laid out, there is no reason that they won’t become the market leader, easily overtaking the market cap of VeChain ($2.5Bn, $10 INT) in the short term and IOTA ($7Bn, $28 INT) in the medium term.