An in-depth overview of the IOTA ICT client for swarm nodes and swarm intelligence in the context of Economic Clustering.

Complex system theory deals with dynamical systems containing a very large number of variables, showing a plethora of emergent features, arising in a broad range of contexts. A central focus of these notes is the notion of complexity arising within evolving and dynamical network structures, such as the gene expression networks at the basis of all living, adaptive ecological networks or neural networks for cognitive information processing. Complex systems theory ultimately forms the basis of our long-standing quest for exploring and understanding cognitive systems in general and our brain in particular – the mammalian brain is probably the most complex of all adaptive networks known to humanity.

-- Claudius Gros, "Complex and Adaptive Dynamical Systems"

One of the more interesting recent developments on the IOTA front has been the release of the IOTA Control AgeNT (ICT for short) initial working implementation. ICT is an alternative IOTA implementation for swarm nodes running on low-end devices, which Sergey Ivancheglo (a.k.a. Come-From-Beyond) describes as follows:

...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 earn iotas. ICT is being developed for the Internet, not for the Internet-of-Things.

The swarm node version of the IOTA client has always been on the roadmap:

Another approach planned to enable the IOTA client running in these very resource restrained environments is to shard the core logic and database amongst different devices that then collectively run it. Similarly to swarm intelligence, this enables a cluster of devices to efficiently make transactions without being a full node, but having reduced trust requirements from SPV and light clients.

At present, Swarm intelligence and control capabilities are in a preliminary testing phase and there is limited available information regarding the exact nature of ICT and its role in the broader IOTA ecosystem. What is known is that, as indicated above, ICT allows for a full node to be sharded across many edge nodes (e.g., single-board computers, sensors or micro-controllers) in a highly scalable manner. The capacity of nodes to self-organize in loosely coupled subsystems and clusters, optimized around a particular role or function also obviously relates to the notion of Economic Clustering (EC) that was brought up earlier this year in a blog post by Sergey Ivancheglo.

Economic Clustering and Local Modifiers

Ivancheglo (CfB) describes the concept of Economic Clustering:

Economic clustering (EC) is the name of a hypothesis created by me in 2013 during the development of Nxt, the hypothesis creation was triggered by Economic majority post of Meni Rosenfeld. EC hypothesis states that the ledger state of a cryptocurrency is determined by the participants of the economic cluster who try to maximize their wealth even if breaking “Longest chain wins” rule is required. IOTA relies on EC to enable infinite scalability, the Tangle allows doing that in a seamless manner, a blockchain-based solution would require a band-aid. So how IOTA may look in a few years when EC is deployed to the mainnet? I envision the following picture. There is Cluster 0. It consists of nodes interacting via the Internet, main economic cluster actors - big companies - run special software playing the role of a distributed Coordinator. This software does only one thing — it signals that a particular actor has seen certain transactions and will accept them as legitimate ones with some probability. There are thousands of other clusters formed by nodes interacting via the Internet-of-Things. Some of them are connected to Cluster 0 directly. A single cluster can be a group of devices in a building, in a park, in a town, or even on a stretch of road. The structure depends on economic activity in an area. A single cluster is connected to several other clusters, mainly adjacent ones (in spatial meaning). Each cluster processes its own transactions and transactions of the neighbor clusters, all the other transactions are ignored because they simply don’t reach the cluster. This picture leads to the following consequences (not applicable to Cluster 0). It’s impossible to send iotas to someone in a distant cluster unless someone else offers a special exchange service between the clusters (and charges fees), the payment must do several hops from cluster to cluster. It’s the price to pay for the scalability. Your iotas must repeat your itinerary during a long trip. While your car goes from one cluster to another you need to spend the iotas back to yourself periodically. As was said, this is for IoT-based IOTA, keep your iotas in Cluster 0 if the mentioned consequences make you feel uncomfortable. The picture drawn by me may actually be different when EC comes to the mainnet. Keep this in mind.

An important distinction must be noted here. There is a difference between the standard domain of the Internet as we know it, with its user-centric human-sided interface and logic, and the realm and inner logic of entangled IoT meshnets, their machine economies and convoluted workings. Either way, to give a loose analogy of an example of economic clustering from Ethereum, one can take the Plasma side-chains design space.

A Plasma side-chain disengages the main chain for most of the time, except for periodically submitting a Merkle root of its current state and only using the main chain as a sort of supreme court jurisdiction for dispute resolution. Different Plasma designs are adapted to specific applications and kinds of activity (social networking and games, decentralized non-custodial exchange, etc.), clustering that particular kind of activity on the extended Plasma side-chain (or tree of side-chains) that best accommodates it.

Visual representation of a part (a subset of transactions) of the tangle graph.

IOTA's Economic Clustering, of course, follows an altogether different logic and organizes around different principles and criteria. The related notion of Local Modifiers that was earlier introduced by Serguei Popov provides additional context:

As of today, there are many cryptocurrency systems around. They mostly share one common feature: all participants of the network interpret the same ledger in the same way. In this paper, we introduce the idea of local modifiers: the nodes of the network can interact with the ledger in different ways, depending on various kinds of information locally available to them. We then argue that such an approach permits to increase the security and the scalability of the Tangle. Source: "Local modifiers in the Tangle"

Nodes in IOTA determine the validity of the ledger, the confidence levels of newly arrived, unconfirmed transactions, as well as organize the flows of incoming transactions by choosing their attachment sites on the directed graph, based on the current state of the ledger (and the properties of the account). Within the range of those parameters, nodes can apply local modifications, choosing to adhere to some set of specific rules or another in how they filter, pick up and record the input onto the shared ledger (the example given in the paper is to do with "penalizing" specific transactions by reducing their weight in the ledger as a measure against possible parasite subtangle/double-spend attacks).

One striking property of self-organization is the missing determinism of the involved algorithms. Each solution can be only evaluated by means of particular environmental conditions that influence the systems’ behavior. Often, probabilistic methods are employed for building the solutions that make up the local decisions together with direct or indirect communications.

- Falko Dressler - "Self-Organization in Sensor and Actor Networks"

Already, in addition, full nodes can optionally mark certain addresses as "permanent" (keeping the records of their associated transactions after snapshotting) or apply selective post-snapshot storage of transactions based on specific markers and conditions (tags, transaction types, the source of origin, etc.) Also, some clusters may "forget" balances that stop moving for too long. As Ivancheglo's post clarifies:

Iotas can be created out of thin air. A cluster may emerge and offer some services, the nodes of this cluster can “print” iotas and implicitly/explicitly promise to accept them later in exchange for their services. The “counterfeit” iotas will likely not be accepted by the other clusters unless the new cluster is very significant from economic point of view. Anyway, in this case it could just create its own cryptocurrency. Iotas can disappear. If you haven’t been touching your wallet for a long time then there may be very few nodes remembering your balance left. This is not a serious problem if inflow rate of new nodes is low or if you refresh the balance often (by spending the iotas back to yourself).

Ivancheglo explains static EC in relation to ICT.

Complex and complex adaptive systems are defined more by connectivity rather than structure and in many respects, IOTA resembles an effort at building an extended machinic nervous system. Flows of incoming data (sensory, application-specific, etc.) and value transactions as recorded on a graph of cataloged event entries and their chained trajectories of what happens next. With running an MCMC (Markov Chain Monte Carlo) probability heuristic on chains of events to check a transaction's confirmation confidence as just one example of something that can be programmed.

IOTA tokens themselves are only worth the utility they could provide as far as what they can measure, the pathways of their circulation, and how they are passed through the network, increasingly punctuating and stabilizing visible, coherent structures. The IOTA token is a unit of value within the parallel machine economy of the forming IoT landscape. The token unit system and total supply are further suggestive of the kind of economic signals they're designed to be a carrier of - 1 MIOTA (the common reference unit) is equal to 1 million iota - the smallest indivisible unit of currency. The ability to handle micro- and nano-transactions without fees is essential to a machine economy and the machine-to-machine interactions defining it.

The IOTA Control AgenT: Swarm Node Client

The initial prototype implementation is written in Java and is an experimental work in progress. An easy to follow step-by-step tutorial for installing and setting up an ICT client/node is available here. In its current setup, ICT requires at least one more peer to operate, with a maximum of three neighbors per node. The #ict channel on the IOTA Discord server is where one can find neighbors to peer with and add his (static) IP to the list of nodes.

ICT meshnet topology/connectivity graph, visualized via Fusion Tables.

Alongside Qubic and the data marketplace, ICT is an important functional component that ties together IOTA's envisioned autonomous data-driven machine economy. It provides the basis for forming Economic Clusters which are necessary to many of the real-world applications and services to be incorporated on top of the IOTA protocol. And the circular self-propelling dynamic of the IOTA network is such that its success depends on just how useful such applications and services would really turn out to become (since the network is maintained by the flow of incoming transactions that verify two previous ones in a pay-it-forward fashion, adding new information in the process and making efficient capacity and security direct functions of the size of the network).

Roman Semko, using an implementation of the swarm controller, visualizing the ability to dynamically split the tangle and run an independent consensus on each of the sub-tangles.

Roman Semko is a software engineer and an IOTA community member researching the tangle and playing/theorizing how IOTA might look with Economic Clustering.

Right now ICT is separate from the IOTA mainnet and a long way from being ready to integrate. Its initial planned application is to replace game servers and be used for a VR game universe called "paracosm". It is to develop into a service provider network and ecosystem (of hosting and other such services) similar in concept to Tim Berners-Lee's recently announced Solid project and the holochain-based Holo Host.

Swarm Intelligence: Algorithms and Applications

Swarm intelligence (SI) is the collective behavior of decentralized, self-organized systems, natural or artificial. The concept is employed in work on artificial intelligence. SI systems consist typically of a population of simple agents or boids interacting locally with one another and with their environment. The inspiration often comes from nature, especially biological systems. The agents follow very simple rules, and although there is no centralized control structure dictating how individual agents should behave, local, and to a certain degree random, interactions between such agents lead to the emergence of "intelligent" global behavior, unknown to the individual agents. Examples of swarm intelligence in natural systems include ant colonies, bird flocking, animal herding, bacterial growth, fish schooling and microbial intelligence.

From: Wikipedia.

A paper reviewing Swarm intelligence-based algorithms within IoT-based systems defines their application in that domain:

SI constitutes a source of inspiration for IoT-based systems that can be modeled as a swarm of simpler devices or can integrate SI-based algorithms to achieve some global goals. In this way, starting from simple rules for individual behaviors and interactions among individuals, a global optimum can be achieved at system-level. This self-organization ability is needed to adapt systems to varying environmental conditions, to scale efficiently, and to provide resilient operation for the sustainability of the system.

Examples of SI-based algorithms include Ant Colony Optimization, Roach Infestation Optimization, Mosquito Host-Seeking Algorithm, Slime Mould Optimization Algorithm, Dolphin Echolocation Algorithm, etc. The common attribute of these algorithms is that they are all inspired by animals and specific animal behavior patterns, population-based and iterative.

By collectively following one or two simple rules or instructions, swarms of organisms demonstrate complex patterns of organized behavior and emergent intelligence that cannot be reduced to any one of its individual members. See Tangle visualization above.

Industry relevant applications include:

optimization of a building's energy performance

photo-voltaic systems

optimization of water distribution networks

fault detection and isolation in GPS receivers

power flow problems

controller design for electro-hydraulic systems

home energy management, groundwater management

modeling of a solar collector

load frequency control of interconnected power systems

reducing electrical power consumption of air conditioning systems, etc.

Swarm intelligence algorithms are optimized on the basis of available data (structured as a graph on the tangle in the case of IOTA) and isolate from it the contextually relevant streams required for triggering certain patterns of organization in response to metrics of changing conditions in the surrounding environment.

Swarm-based approaches are especially well suited for applications to do with the management of ad hoc networks (e.g., meshnets) in situations involving highly dynamic and stochastic data traffic (i.e., Internet-like). One such example is the AntNet algorithm - an ant colony optimization (ACO) algorithm for routing in packet-switched networks.

Other Developments: Phasing Out the Coordinator. Open Source Coo and Coo-Free IRI.

The IOTA foundation made a few important recent announcements in a series of four official blog posts, published earlier on the 20th this month. The reports provide an outline of the course of action towards gradually disengaging and eventually removing the IOTA network coordinator (the Coo). The role of the Coo that is currently run by the foundation is to issue signed non-value transactions (called milestones) at regular intervals. Other incoming transactions in the present implementation of IOTA are confirmed only if referencing (directly or indirectly) milestone transactions on the graph of the tangle. The need for implementing such temporary ad hoc measure is explained with an appropriate and perhaps less commonly known example:

...we have had to employ a safety mechanism to protect users’ funds during this early period. Similar mechanisms have been used in more or less every public DLT, to protect networks in their initial stages. This was certainly the case for Bitcoin, which had hard-coded built-in checkpoints to protect selected blocks from being reversed, as well as an alerts system which was basically a way for Satoshi to shut down the network.

The Coo will be made obsolete and shut down, the IF claims, when the IOTA research teams and council are satisfied and feel confident that they sufficiently understand the coordinator-free tangle. A number of theoretical approaches and possible configurations are proposed and taken into consideration, including a reputation system for node accountability (conceptually similar to page-ranking algorithms), special coordinator nodes operated by institutional and corporate entities within their respective domain jurisdictions, tip selection algorithm improvements and local nodes adjustments, etc.

Bitcoin checkpoints as protection against forks (serving similar function as the IOTA coordinator).

Finally, an announced near future release of a coordinator-free IOTA reference implementation with its global testnets would allow to easily spin up local instances of inter-operable tangles. Until then, an open source version of the coordinator (Compass) has been made available, with instructions for setting up a private tangle.

Concluding Commentary

With all the accusations, criticism and smear campaigns towards IOTA (from all kinds of cryptocurrency expertise providers) having gone silent, it has gradually become evident that IOTA is much broader in scope, ambition, and purpose than just a "crypto-currency" or a competitive "altcoin" building itself on entirely different terms, assumptions, and standards of measure.

Renown security expert Bruce Schneier wrote an essay entitled "The Internet of Things Will Be the World's Biggest Robot" back in 2016, in which he goes on to draw a picture of that hyperconnected IoT landscape in the not too distant future:

The World-Sized Web -- can I call it WSW? -- is more than just the Internet of Things. Much of the WSW's brains will be in the cloud, on servers connected via cellular, Wi-Fi, or short-range data networks. It's mobile, of course, because many of these things will move around with us, like our smartphones. And it's persistent. You might be able to turn off small pieces of it here and there, but in the main the WSW will always be on, and always be there. None of these technologies are new, but they're all becoming more prevalent. I believe that we're at the brink of a phase change around information and networks. The difference in degree will become a difference in kind. That's the robot that is the WSW. [...] By and large, the WSW will be a benign robot. It will collect data and do things in our interests; that's why we're building it. But it will change our society in ways we can't predict, some of them good and some of them bad. It will maximize profits for the people who control the components. It will enable totalitarian governments. It will empower criminals and hackers in new and different ways. It will cause power balances to shift and societies to change. These changes are inherently unpredictable, because they're based on the emergent properties of these new technologies interacting with each other, us, and the world. In general, it's easy to predict technological changes due to scientific advances, but much harder to predict social changes due to those technological changes. For example, it was easy to predict that better engines would mean that cars could go faster. It was much harder to predict that the result would be a demographic shift into suburbs. Driverless cars and smart roads will again transform our cities in new ways, as will autonomous drones, cheap and ubiquitous environmental sensors, and a network that can anticipate our needs. Maybe the WSW is more like an organism. It won't have a single mind. Parts of it will be controlled by large corporations and governments. Small parts of it will be controlled by us. But writ large its behavior will be unpredictable, the result of millions of tiny goals and billions of interactions between parts of itself. We need to start thinking seriously about our new world-spanning robot. The market will not sort this out all by itself. By nature, it is short-term and profit-motivated­ -- and these issues require broader thinking. University of Washington law professor Ryan Calo has proposed a Federal Robotics Commission as a place where robotics expertise and advice can be centralized within the government. Japan and Korea are already moving in this direction.

The IOTA Foundation (IF) is positioning itself as one of those entities concerned with the above-explained issues. The IF also recently announced the formation of a Research Council, whose role will be in overseeing the work of and closely working with research teams and departments in setting strategic directions, providing academic oversight and overseeing collaboration with academic institutions and research organizations.

The Research Council, the announcement states, "will consist of distinguished academics that are at the forefront of their area of expertise. It will not only provide invaluable input to the research strategy and initiatives but will also oversee the quality of our research to ensure high academic standards."

The first members of the council initially are Prof. Gur Huberman, Dr. Moody Alam, and Prof. Serguei Popov.

Links and Further Resources

A previously published three-part series of articles describing IOTA in more detail.

Ivancheglo's Medium post on Economic Clustering.

Another take on IOTA's notion of Economic Clustering, providing a more detailed, thorough explanation with focus on the particulars.

The ICT client Github repository (written in Java).

An ICT network visualizer.

An IXI (IOTA eXtension Interface) plugin for ICT reporting of current node information (used for visualization).

Official IOTA community forum and Stack Exchange (for questions and answers).

Community Discord server.