X-CUBE-IOTA1 is a software expansion package that helps developers working on STM32 microcontrollers take advantage of IOTA, the first open-source distributed ledger technology. It includes drivers for STM32F4 and STM32F7, as well as a custom IOTA layer necessary to interact with the network. Since the package contains the fundamental building blocks to create IOTA nodes, engineers can also select other STM32 devices, such as low-power versions, to tailor their system to their needs. However, the quickest way to start experimenting with IOTA is to grab a NUCLEO-F429ZI or a NUCLEO-F746ZG board and follow our quick start guide to flash the precompiled binary present in X-CUBE-IOTA1. Users can then create a light node account, generate a 0-value transaction, make a transfer, or check their balance.
The tech community often refers to IOTA as a “crypto,” meaning a cryptocurrency, and people tend to compare it to Bitcoin, but the nature and the scope of this technology are much larger. Instead of a blockchain, IOTA relies on a directed acyclic graph, which means that the protocol is useful for far more things than cryptocurrencies and can serve, among other things, for the transfer of sensor data or machine-to-machine communication. Whereas cryptocurrencies tend to focus on the Internet of Value, IOTA also targets the Internet of Things with applications that are far more reaching. For instance, the video below shows how using IOTA to transfer information about resources can optimize a smart factory. Hence, even if the technology remains popular within cryptocurrency circles, it is also attractive in many other fields because of its underlying structure.
IoT and IOTA: All About Scalability
Bitcoin and IOTA use a distributed ledger, meaning that computing nodes track, verify, and edit an electronic document that records the history of various interactions, such as currency transfers from one node to another. However, instead of a blockchain, IOTA uses a directed acyclic graph (DAG), a data structure that helped popularize projects such as Git. IOTA named its graph “Tangle,” and before attaching a new transaction to it, a node must first confirm two other transactions. Hence, the more people use the network, the more confirmations take place, making the infrastructure highly scalable. Currently, IOTA hovers at about 300 transactions per second and is on track to reach substantially more over the course of this year. Comparatively, Bitcoin Cash, one of the fastest blockchain cryptocurrencies, runs at 60 tps while Bitcoin is at seven transactions per second.
IOTA can also add to the Tangle without requiring that each node download the entire dataset. It’s not the case for the Bitcoin blockchain that sits at nearly 250 GB and is simply unsuitable for embedded systems. The Tangle has full nodes that store the entire ledger, but it’s possible to create light nodes that can store a private key, create addresses and signatures, and send them to the full node, meaning that small embedded system can also take advantage of the network.
Finally, because the confirmation process is an integral part of each transaction, there are no miners and thus no fees. The network is entirely decentralized and it disincentives anyone from slowing it down in the hope of increasing transaction fees, since there aren’t any. It also ensures the system’s inherent reliability, which explains the increasing popularity of the IOTA network among car makers or smart cities that already pledged to use the technology to facilitate data transfer.
STM32 and IOTA: All About Security
X-CUBE-IOTA1 helps design IoT devices that can take advantage of the IOTA network. Creating a light node in the ST demo application starts with entering a seed: a string of 81 characters (A-Z, 9). The X-CUBE-IOTA1 also enables developers to experiment with and understand IOTA security levels. When using a seed to create a new private key and address to store information or currency, users can choose its length. A level 1 string is 2,187 characters long, while level 2 is 4,374, and a level 3 is 6,561. Level 1 is good enough for very basic prototyping, but as soon as developers start to require secure environments, best practices recommend that they move to level 3. However, if they need fast transactions or want to run on low-power systems, a level 2 will enable smaller bundles and less proof of work.
We also drafted an application note explaining the STM32 security features that would be useful in products interacting with the IOTA network. For instance, some of our microcontrollers offer a true number generator that is crucial to create addresses, while our memory protection unit guards against inappropriate requests to specific resources. Developers can also benefit from STM32’s readout protection to stop hackers from getting keys by either dumping the memory, injecting code into the SRAM, or using debug tools. Designers can thus evaluate the features and performance of various components to define what type of light and full node they wish to create. Finally, after experimenting with 0-value transactions, developers can change the source code available in X-CUBE-IOTA1 to start sending currencies or sensor data.