The IOTA Protocol allows for a host of applications to run on the block tangle. Anybody can design an application, and users can decide which applications to run on their nodes. These applications will all use the communication layer to broadcast and store data.
Applications that are necessary for the protocol to operate. These include for example:
- The value transfer application
- The distributed random number generator (DRNG for short)
- The consensus mechanism, more specifically the Approval Weight manager
A test application issuing funds on request.
Value Transfer Application
The application which maintains the ledger state.
This layer stores and communicates information. This layer contains the “distributed ledger” or the tangle. The rate control and timestamps are in this layer too.
The reputation of a node is based on a virtual token called mana. This reputation, working as a Sybil protection mechanism, is important for issuing more transactions (see Module 3) and having a higher influence during the voting process (see Module 5).
A time interval that is used for a certain type of consensus mana. At the end of each slot a snapshot of the state of mana distribution in the network is taken. Since this tool employs the timestamp of blocks every node can reach consensus on an slots's mana distribution eventually.
The object that is gossiped between neighbors. All gossiped information is included in a block. The most basic unit of information of the IOTA Protocol. Each block has a type and size and contains data.
The additional information (metadata) that needs to be sent along with the actual information (data). This can contain signatures, voting, heartbeat signals, and anything that is transmitted over the network but is not the transaction itself.
A block approved by another block is called a parent to the latter. A parent can be selected as strong or weak parent. If the past cone of the parent is liked the parent is set as strong parent. If the block is liked but its past cone is disliked it is set as a weak parent. This mechanism is called approval switch.
A field in a block which determines the type. Examples are:
- Value payload (type TransactionType)
- dRNG payload
- Salt declaration payload
- Generic data payload
A block with payload of type TransactionType. It contains the information of a transfer of funds.
The property that once a transaction is completed there is no way to revert or alter it. This is the moment when the parties involved in a transfer can consider the deal done. Finality can be deterministic or probabilistic.
The list of transactions directly or indirectly approved by a given transaction.
A transaction (or block) that is not referenced by any succeeding transaction (or block). An orphan is not considered confirmed and will not be part of the consensus.
Resending a transaction by redoing tip selection and referencing newer tips by redoing PoW.
The solidification time is the point at which the entire history of a transaction has been received by a node.
Unspent transaction output.
The process of selecting previous blocks to be referenced by a new block. These references are where a block attaches to the existing data structure. IOTA only enforces that a block approves (at least) two other blocks, but the tip selection strategy is left up to the user (with a good default provided by IOTA).
When selecting a block as a parent, we can select from the strong or weak tip pool. This mechanism is called approval switch.
A block gains mana weight, by blocks approving it directly or indirectly. However, only strong parents can propagate the mana weight to the past, while weak parents obtain the weight from its weak children but don't propagate it.
Custom conditions that nodes can take into account during tip selection. In IOTA, nodes do not necessarily have the same view of the Tangle; various kinds of information only locally available to them can be used to strengthen security.
A block that has not yet been approved.
Agreement on a specific datum or value in distributed multi-agent systems, in the presence of faulty processes.
As more transactions are issued, the block rate and size become a bottleneck in the system. It can no longer include all incoming transactions promptly. Attempts to speed up block rates will introduce more orphan blocks (blocks being left behind) and reduce the security of the blockchain.
In PoW-based DLTs, competition between nodes to obtain mining rewards and transaction fees are known as mining races. These are undesirable as they favor more powerful nodes, especially those with highly optimized hardware like ASICs. As such, they block participation by regular or IoT hardware and are harmful for the environment.
Named after the originator of Bitcoin, Satoshi Nakamoto, Nakamoto consensus describes the replacement of voting/communication between known agents with a cryptographic puzzle (Proof-of-Work). Completing the puzzle determines which agent is the next to act.
Proof of Work
Data which is difficult (costly, time-consuming) to produce but easy for others to verify.
A trusted entity that issues milestones to guarantee finality and protect the Tangle against attacks.
Milestones are transactions signed and issued by the Coordinator. Their main goal is to help the Tangle to grow healthily and to guarantee finality. When milestones directly or indirectly approve a transaction in the Tangle, nodes mark the state of that transaction and its entire history as confirmed.
A tool that exists only locally and allows performing certain calculations more efficiently. Such as approval weight calculation or the existence of certain blocks in the past or future cone of another block.
This layer manages the lower layers of internet communication like TCP. It is the most technical, and in some ways the least interesting. In this layer, the connections between nodes are managed by the autopeering and peer discovery modules and the gossip protocol.
A cyber-attack that aims to isolate and attack a specific user, rather than the whole network.
Network nodes that are directly connected and can exchange blocks without intermediate nodes.
A machine which is part of the IOTA network. Its role is to issue new transactions and to validate existing ones.
The procedure of discovering and connecting to other network nodes.
Small World Network
A network in which most nodes can be reached from every other node by a few intermediate steps.
An attack in which a malicious node attempts to split the Tangle into two conflicts. As one of the conflicts grows, the attacker publishes transactions on the other conflict to keep both alive. Splitting attacks attempt to slow down the consensus process or conduct a double spend.
An attempt to gain control over a peer-to-peer network by forging multiple fake identities.
An append only block data structure where each block references (at least) two other blocks.
A consistent section of the Tangle (i.e. a subset of blocks), such that each included block also includes its referenced blocks.