Frequently Asked Questions

New questions will be added weekly

What is IOTA?

IOTA is a revolutionary new transactional settlement and data transfer layer for the Internet of Things. It’s based on a new distributed ledger, the Tangle, which overcomes the inefficiencies of current Blockchain designs and introduces a new way of reaching consensus in a decentralized peer-to-peer system.

For the first time ever, through IOTA people can transfer money without any fees. This means that even infinitesimally small nanopayments can be made through IOTA. IOTA is the missing puzzle piece for the Machine Economy to fully emerge and reach its desired potential. We envision IOTA to be the public, permissionless backbone for the Internet of Things that enables true interoperability between all devices.

> Written by Dom on the learn.iota FAQ

How is IOTA different than a blockchain?

When it comes to comparing IOTA (or more specifically, the Tangle) with Blockchain, there are many differences as they are two completely distinct architectures built on the same principles. For those interested in a comprehensive comparison of Tangle vs. Blockchain, you can expect a detailed blog post from us soon. For this FAQ, I want to emphasize on two of the main differences of Tangle and Blockchain.

1. Data Structure

Instead of being structured as a sequential chain where blocks are added in regular intervals, the Tangle is based on a DAG (Directed Acyclic Graph). Through this, IOTA is able to achieve high transaction throughput (by parallelizing validation) and no transaction fees on transactions. As the Tangle grows and more participants make transactions, the overall system becomes more secure and faster, with confirmation times / transaction finality going down.

2. Consensus

The way consensus is achieved in a Blockchain is through a very rigorous mechanism, that requires multiple parties to "race" against each other in an attempt to add the next Block to the Blockchain and get the block reward / transaction fees. Because of this, consensus is decoupled from transaction generation and is largely performed by a smaller subset of the network, oftentimes with a high entry barrier (as is the case in Bitcoin) which leads to further centralization.

In IOTA, every participant in the network making a transaction also actively participates in the consensus. More concretely, you are referencing two transactions directly (branch and trunk transactions) and other transactions in the sub-tangle indirectly. Through this, validation is parallelized and the network stay completely decentralized, with no miners to delegate trust to or having to pay a transaction fee.

> Written by Dom on the learn.iota FAQ

What makes IOTA quantum-secure?

IOTA uses hash based signatures instead of elliptic curve cryptography (ECC).

Not only are hash-based signatures a lot faster than ECC, but it also greatly simplifies the overall protocol (signing and verification). What actually makes IOTA quantum-secure is the fact that we use Winternitz signatures. IOTA's ternary hash function is called Curl.

> Written by Dom on the learn.iota FAQ

How can there be no transaction fees?

This is achieved through IOTA's unique approach to consensus. In IOTA there are no miners / validators to pay a transaction fee to, in order to have ones transaction validated and included in the next blog.

Instead, consensus is completely decentralized with each network participant that makes a transaction, directly and indirectly confirming past transactions. Because of the effort required in this consensus (which is the tip selection and the computational requirements for a transaction), you have to pay no transaction fees.

> Written by Dom on the learn.iota FAQ

What can I do with IOTA?

IOTA currently does two things really well: transactional settlement (especially micropayments) and data integrity. Through these two features you can derive most use cases that make sense and are most of the time, only possible with IOTA. More features (such as Oracles, Smart Contracts, etc.) are on our roadmap and will be added in the near future.

The main focus of IOTA is the Internet of Things, with machines paying each other for resources, services or access. This includes smart cities, smart grids, infrastructure, supply chain etc. where IOTA makes certain use cases possible.

> Written by Dom on the learn.iota FAQ

What are the main use cases of IOTA?

IOTA's main features (in its current form) are feeless micropayments and secure data transfer and data anchoring. With these two features, combined with IOTA's scalability and partition tolerance we can derive a plethora of use cases which are mostly only possible with IOTA.

The primary focus area is obviously the Internet of Things, especially in areas such as Smart Cities, Infrastructure and Smart Grid, Supply Chain, Transportation and Mobility. Apart from that, IOTA can also function as the backbone for any peer to peer transactional settlement needs, such as web payments or even remittances.

> Written by Dom on the learn.iota FAQ

How does a transaction work?

Making a transaction is basically a 3-step process:

1. Constructing the bundle and signing of Inputs

In IOTA there are two types of transactions: one where you transfer value (and thus, have to sign inputs), and ones where you simply send a transaction to an address with no value transfer (e.g. a message). Constructing a bundle is fairly simple and is taken care of by all the libraries that we have released so far. When it comes to signing the transaction inputs, that is also taken care of by the libraries and it's all done client side. This means that you never have to worry that your private key or your seed gets sent to somewhere else.

2. Tip selection

The tip selection is a process whereby your local tangle is traversed to figure out two randomly chosen transactions which will be validated by your transaction. These two transactions will be added to your bundle construct and are called branchTransaction and trunkTransaction.

3. Proof of Work

Once the bundle is constructed, signed and the tips are added to the bundle, you have to do a little amount of Proof of Work for each transaction in the bundle. As such, every transaction in a bundle requires a nonce in order to be accepted by the network. Main purpose of this Proof of Work is sybil-resistance and spam-resistance.

After all these 3 steps are completed, you can broadcast the transactions to your neighbors and wait for it to be accepted by the network.

> Written by Dom on the learn.iota FAQ

You mentioned proof of work. Can I mine IOTA?

You should not compare IOTA Proof of Work, with the Proof of Work mechanism that is commonly used by Blockchains (e.g. Bitcoin). IOTA's Proof of Work is directly comparable to Hashcash, as it serves a similar purpose to prevent spam, and in our case, also to prevent sybil-attacks.

Because of the way consensus is achieved, there is no way to earn IOTA's through the computational effort required for making a transaction. As such, there is no "mining". One can argue that you're being directly rewarded by having no fees on your transaction.

> Written by Dom on the learn.iota FAQ

What is the total supply? Is it inflationary?

The total supply of IOTA is (3 ** 33 - 1) / 2. Which equals to exactly 2779530283277761 tokens. All IOTA's which will ever exist were created with the genesis transaction. This means that the total supply of IOTA's will always stay the same and you cannot "mine" IOTA's.

> Written by Dom on the learn.iota FAQ

How is IOTA denominated? What are the units?

IOTA uses SI (International System of Units) to represent units and values.


Rebroadcast vs Reattach. What's the difference?

Rebroadcasting is basically sending the exact same transaction to all of your neighbors again. Most of the time, apart from a situation where you're sure that your neighbors didn't get your transactions, reattach is more useful to get your transaction accepted by the network.

Reattach is the process by which you "re-attach" your transactions to a different part of the Tangle, in the hopes of getting your transaction accepted. As such, you are completely redoing the transaction process (tip selection and Proof of Work).

> Written by Dom on the learn.iota FAQ

Is my seed sent to the server with the libraries or wallet?

When interacting with any of the libraries which are supported by the IOTA Foundation, you can be made sure that your seed will never leave your side.

All the essentials, such as signature generation, validation and so forth is done client-side, meaning that it's done locally on your environment. As such, your seed is never sent to your remote node and you don't have to worry about any security issues

Light wallet vs. full nodes

The IOTA GUI makes it possible to choose between Full Wallet, and Light Wallet. The Full Wallet automatically runs an IRI (IOTA Reference Implementation) instance in the background, which in turn means that you need neighbors in order to participate in the network and be synchronized. If you run the full wallet, you have no "trust requirements", as you are completely and independently participating in the network.

The Light Wallet makes it possible to connect to a remote node (whether it is your own node, or someone else's), and it's uses to get the latest state of the network, most importantly branch/trunk transactions which are required for making a transaction. When running a Light Wallet, it should be noted that your seed never leaves your wallet, and all the sensitive work (such as signing) is done client-side