21 Nov 2018 Martin Banov
IOTA: Experiments, Forming Ecosystem and Projects, Development and Tooling
A previously published article provided a brief summary of the IOTA project, its specific purpose and place among experiments at engineering distributed crypto-economies.
IOTA lays the groundwork for a fluid system of dynamic relations in which sub-systems themselves differentiate and integrate in the process of probing and mapping out the various correlations.
Dynamic complex systems as such tend to contain a very large number of variables, showing a plethora of emergent features that arise in a broad range of contexts. The neural networks for cognitive information processing are one archetypal example of a complex adaptive system. Complex and complex adaptive systems are defined more by connectivity rather than structure and in many respects, IOTA resembles an effort at building a globally extended nervous system.
In studying the dynamics of complex systems, a key issue is discovering the organizational principles necessary for a dynamical system to show the emergent phenomenon of "self-organized criticality”. This, however, is more of a process of gradual learning, discovery and mapping out uncharted territories rather than a ready recipe, a sterile model or a set of repeatable prescriptions (thus, the necessity for the Coordinator in the early stages of the network's infancy).
IOTA lacks the rigid boundaries and definitions of monolithic blockchain-based consensus engines (as the tangle is designed to deal with probabilities), setting instead a more flexible ground level allowing much room for creative experimentation and integration of a very wide range of possible solutions to a given problem.
Complex systems organizational map (broken into seven subgroups).
A philosophy of engineering pragmatism underpins the ethos of IOTA, one as distanced as possible from the ideological tendencies surrounding other familiar projects that have ambitiously undertaken on re-designing our financial and economic systems.
Shifting the Consensus Center of Gravity
Roman Semko wrote in a blog post in the end of 2017:
By paying someone to run the network, you are giving away your power. By giving away your power, the system becomes unbalanced: there are few powerful players and the large, powerless base. The base cannot exist without the powerful miners, who get more and more powerful as time progresses.
Proof-of-Stake is just shifting the problem. In PoS whoever has the biggest pile of coins runs the show, so to speak. So you exchanged hashrate for wealth, which is just the same. It might be better for the environment but doesn’t solve the problem of centralization.
A seemingly decentralized coin becomes just another flavor of the current financial order where the wealthy few can manipulate the system as they see fit. Again, the coin or its tech does not matter a dime. PoW, PoS or whatever. As long as it rewards the miners, it puts them above and beyond the system. The only motive for miners to keep everything running is money.
Hence, when it comes to upgrades of the blockchain, they will always put their own selfish interests first.
If you have a very few individuals that control the destiny of a coin, what makes it different from the current monetary system? You replace the central banks with central miners.
In IOTA, there is no direct financial incentive, but rather users have to do their share in maintaining the network to be able to make use of it (presently, by verifying two previous transactions when making one). That is, the value and incentive in IOTA lies in its usefulness and services provided.
A segment of a tangle visualization with colored point indicators denoting some specifically tagged transactions or their status.
Anybody can spawn his own tangle or sub-tangle and following the recommended tip selection algorithm or consensus on what constitutes valid transactions is optional. However, to be able to merge and split off with the IOTA tangle and thereby take advantage of the benefits (partition tolerance, reputational legitimacy, data integrity and availability, etc.) of the distributed ledger, one must conform to some variation of the same rules.
MAM: Masked Authentication Messaging Protocol for Data Streams
Masked Authenticated Messaging (MAM) is a second layer data communication protocol in IOTA, provided by a library module that adds the functionality to broadcast and access encrypted data streams (similar to RSS) over the tangle. The integrity checks performed when issuing new transactions (data, not value transactions, in this case) that make up the IOTA consensus mechanism gives MAM streams important properties needed in industries where integrity and privacy meet. MAM specifies a method of symmetric-key encrypted and signed data that takes advantage of Merkle tree Winternitz signatures for extended public key usability.
MAM is integral to many IOTA-based applications built to gather, store and process diverse kinds of data and structured datasets within the networks of their operational arrangements. More detailed description of the MAM protocol can be found here.
Trinity is the official easy-to-use IOTA wallet that interfaces with the tangle and IOTA nodes and takes care of all the complexities (e.g., seed generation, address reuse, etc.) under the hood.
The IOTA unit system. IOTA tokens are usually measured as MIOTAs (a million iotas).
Ledger Nano Integration
The IOTA Foundation announced in November that Ledger Nano S hardware wallet now has support for storage of IOTA tokens. The Ledger Nano integrates with the Trinity and Romeo wallets, isolating the user's seeds from their computer or smartphone device, providing an additional layer of security. Users will be able to validate transactions on their Ledger wallet as part of the security protocol.
Ledger Nano S. A cold storage hardware wallet.
IRI: IOTA Reference Implementation
The IOTA Reference Implementation (IRI) is the official Java build embodying the IOTA network specification. It is a full-featured node with a convenient JSON-REST HTTP interface. It allows users to become part of the network as both a transaction relay and network information provider through the API. An automated script for spinning up a node easily and quickly is available here with the Ansible playbook.
IOTA Controlled Agent (ICT): Swarm Intelligence and Economic Clustering
...using the final design of the transaction structure, swarm logic and relying on (static) Economic Clustering instead of the Coordinator for double-spending protection.
Extra service plugins can be attached to ICTs to allow their operators to earn iotas.
ICT is being developed for the Internet, not for the Internet-of-Things.
The IOTA swarm client is intended for running in resource restrained environments and works by sharing the core logic and database among several devices that collectively run it as a single full-node or a cluster of nodes. Its main purpose is to do with Economic Clustering.
An installation tutorial for setting up an ICT is available here.
Other Libraries and Tools
There is a long list of both officially released and community built tools and applications. Some of those include:
- PyOTA, the official Python library for the IOTA core, implementing both the official API, as well as more recently proposed functionalities (such as signing, bundles, utilities and conversion).
- An IOTA gossip protocol dissector available as a Wireshark plugin (one just needs to copy the lua file into the plugin directory).
- A command-line interface app that acts as an IOTA wallet and node management tool.
DevIOTA: A Full-Node Implementation, Peer Auto-Discovery, Load Balancer and a Portable Lightweight Ledger
DevIOTA began as a hobbyist project to create a financial management system on top of IOTA by Roman Semko and went on to develop into a full-fledged set of tools and libraries to make the Tangle easier to run and use. These include:
- Nelson: A large part of the IOTA full nodes are using Nelson for easy neighbors management.
- Bolero: Intended as a one-click desktop full node.
- Field: A proof-of-concept load balancer for IOTA nodes.
- Romeo: A lightweight ledger built on top of the IOTA Tangle and a portable, cross-platform "wallet" runnable from virtually anywhere, which goes beyond a simple wallet. It will be our test ground for innovative concepts of Tangle usage.
- Hercules: A lightweight "full node" with significant improvements on speed and efficiency, capable of running on low-end devices (e.g., Raspberry Pi). Hercules uses a combination of Redis and CouchDB databases to securely store and instantly access the tangle.
- It supports user defined auto-snapshotting of historical records (reducing what is no longer needed to a flat key-value store of non-zero balances), with optionality for marking certain addresses as "permanent" (so that their records of associated transactions are never wiped) or selective post-snapshot storage of transactions based on certain conditions (tags, etc.)
- A marketplace API should allow nodes to offer different services to other nodes, optionally collecting fees for the provided services (e.g., remote proof-of-work, permanent storage, retrieval of certain archival transactions).
Delion: Integrating the Tangle's Data Transport Layer with Applications
Delion provides a REST-based API that connects to the IOTA Tangle and makes use of its distributed ledger in minutes with just a few lines of code. It's a service intended for reducing the efforts and complexity of distributed ledger applications. It allows for integrating any number of IOTA-driven applications with a single account, customizing the number of parallel PoW-Qeues to meet throughput requirements of tx/sec, etc.
The API is well documented here.
Fog Computing and Computational Resources Marketplace
Fog networking is considered particularly suited for the emerging landscape of the IoT and meshnets of connected devices.
Fog networking is an architecture using edge devices (i.e., network entry point) to carry out much of the computation, storage and communication routed over the strategic Internet backbone. It is particularly appropriate in the context of the Internet-of-Things, providing a supporting infrastructure for organizing connected devices and sensor networks in localized subsystems and economic clusters. Fog computing commonly refers to extending cloud computing to the edge of an enterprise's network.
Fognet is an IOTA-powered peer-to-peer routing system based on Bluetooth that instead of relying on Internet Service Providers (ISPs), distributes the costs of running a network among all participants — motivating people to participate and increasing overall availability. The Fognet router works together with phones and laptops in their local area vicinity to distribute data with limited or no Internet access (making it a useful solution for deployment in resource-constrained environments). When a node has access to the Internet, it can share its connection with others. With no Internet connection directly available, devices can share cached and locally stored data.
IOTA tokens will be used on the FogNet to stabilize network traffic, monetize content and sell valuable data or services without an intermediary and the data streaming MAM protocol will be employed for broadcasting and publishing encrypted streams with user-controlled permissions.
Fognet routers are meant to automatically self-organize into resilient ad-hoc meshnets that don't rely on any central routing tables, thus having no single points of failure. FogNet routers consist of an Arduino microcontroller and a Bluetooth Low-Energy device, that can connect to a neighborhood mesh of other routers. Web content can be requested from neighbors and served across the mesh to any other connected device.
The Fognet Github repository is available here.
The Data Marketplace
Data is the base ingredient driving a machine economy in a connected world and a decentralized data marketplace opening up the centralized data silos currently keeping data limited under the control of a few powerful entities is an integrative component for fulfilling IOTA's vision.
Data marketplace front page.
As such, the data marketplace is one of IOTA's earliest and most comprehensive pilot studies, including a long list of participants (such as Arduino, Bosch, T-Mobile, Fujitsu, a number of universities and academic institutions, etc.) and to provide a public API that would allow anyone to contribute sensors in building new data-driven applications.
Environmental Data Network: Production and consumption of global sensor data
An IOTA ecosystem supported project aims to facilitate the creation, query, acquisition and consumption of data generated by IoT-connected, sensor agnostic, environmental monitoring devices.
The vision is to create a public, global, open and cryptographically secure source of truth, aggregating from the rapidly expanding web of environmental sensors around the globe.
Data can be shared around the network (and cross-network) for a price set by the producer, creating a self-regulating economy of supply and demand revolving around authenticated data streams around the globe.
Higher resolution sensor devices are more expensive, but produce more accurate results and can consequently set a higher price per data-point. Lower resolution sensors are cheaper, but can be networked together to produce averaged results, allowing for many single sensor nodes to collaborate in a networked data pool.
High-granular data can be purchased and consumed right through large datasets registering thousands of sensors spanning millions of data points. Payment will be automatically calculated and divided among participants, at a per-data-point/resolution cost.
The system aims to provide those who need access to environmental data (governing bodies, aviation services, marine services, mining corporations etc.) with access to real-time, on-demand and historical data at an instant.
The system also aims to empower organizations and regulatory bodies with the ability to quickly detect and act accordingly and in a timely manner on issues that might otherwise be uncovered too long after the fact.
E-Mobility and Energy Sector
As a next evolutionary step in the history of computing itself, and the first major initiative seriously dedicated to distributed systems design and developing open protocols for the IoT and emerging machine economies, IOTA naturally aims to work towards resolving the inefficiencies of our fragmented legacy systems.
The purpose of engineering feats like IOTA in the 21st century is to efficiently organize complexity so that it would coordinate and channel the flow of resources and data, allocating and distributing them along clearly defined vectors and desired outcomes. Below are to proof-of-concept examples of solutions implementing IOTA.
Electric Charging Station
In April earlier this year, ElaadNL released an electrical charging station based on the IOTA protocol where charging and paying can be done with IOTA, in a machine-to-machine fashion. Transactions are exchanged directly without the use of a charge card or subscription and the station can make direct payments from car to charger by using just a cable. The meter values are stored in the tangle registry every fifteen minutes, ensuring reliable and irrefutable administration.
The charger is equipped with hardware to set up a TCP/IP connection with a car, compliant with the developed communication standards for e-Mobility and vehicle-to-grid communication interface.
The IOTA charger will be available to the public for charging. In case a car wanting to charge is not equipped with the required hardware and/or software, they can still charge their car by simply sending IOTA tokens to the charger using the interface provided with the normal IOTA wallet.
IOTA Operated Powerhouse
The range of applications of IOTA also includes larger systems infrastructure. The Trondheim project of ENTRA in Norway is deploying a "large-scale demo project for how to utilize and control energy distribution between different actors in the neighborhood", using IOTA for energy delivery and automatic charging.
It is to set the circulatory groundwork for efficient energy allocation, allowing surplus power to be sold and exchanged with nearby constructions and buildings without any middlemen administering bureaucracies or settling transactions.
This is one of the projects emerging from IOTA’s partnership with the “+ CityxChange“, an EU-financed project for developing smart cities.
Supply Chain Audit Trails
The Industrial IOTA Lab at Aachen University is working on a proof-of-concept implementation using the IOTA MAM protocol that would create a digital replica for every piece manufactured within a large-scale cyber-physical system, such that users could interact with the data and verify the integrity and "certificate of origin."
Partitioning in the IOTA Tangle. Regions of the Tangle graph can detach and re-attach back and forth, given the validity of records after mutually auditing the ledgers. Source: White paper.
IOTA's Partition Tolerance also has important implications for that particular application as it allows portions of the tangle to detach and re-attach at later point in a way that guarantees consistency (e.g., in the case of cargo ships that are disconnected from the Internet).
Medical Records and Healthcare
As the basis of healthcare, data and the digitization of healthcare records have produced big rewards in terms of information sharing, coordination and research.
Clinical research is however reliant on the integrity of data collection and the continuous recording of granular real-world data - one of the applications that IOTA is specifically geared towards.
Immutable records of trustworthy, quality data combined with the shared resource economy and computation in a distributed environment can be applied to the computation of many intensive scientific, mathematical, and academic problems, clinical research, drug discovery, forecast, etc.
Coordinator Dissolution: Open Source Coo and Coo-Free IRI
The foundation published a series of blog posts recently, outlining the various pathways towards obsoleting the IOTA network coordinator (Coo). In short, the coordinator will be removed when the IOTA foundation research team are satisfied with sufficiently understanding the coordinator-free Tangle.
Presently, the role of the Coo is to issue signed non-value transactions (called milestones) at regular intervals. Other incoming transactions in the current implementation of IOTA are confirmed only if referencing (directly or indirectly) milestone transactions on the graph of the Tangle. This is a safety mechanism for securing the network in its early stages.
A number of possible arrangements and scenarios are described, including a reputation system for node accountability, coordinator nodes run by trustworthy entities (e.g., government institutions, corporations, academia, etc.) in their respective neighborhoods, improved tip selection algorithms and local modifiers to how nodes interact with the ledger, etc.
A release of a coordinator-free IOTA reference implementation (IRI) in the near future is also announced (for enabling local instances and global testnets of a coordinator-free Tangle) - a major development in realizing IOTA's vision. In the meantime, an open source implementation of the coordinator has been released (called Compass), with instructions for setting up a private tangle available here.
Links and Resources
Set of IOTA tools.
Official community forum.
Official blog of the IOTA Foundation.
A list of published academic research papers.
A popular series of explanatory IOTA tutorials.
A list of possible/potential IOTA use cases with examples.IOTA IOTA explained IOTA analysis Masked Authenticated Messaging (MAM) Roman Semko complex systems what is IOTA what is IOTA coin IOTA wiki IOTA value Trinity Wallet Ledger Nano DevIOTA Delion Fognet ElaadNL IOTA tools IOTA applications