After a long wait, the time has finally come. The IOTA Foundation today released the alpha version of the IOTA Smart Contracts Protocol (ISCP) to the public, with the “extent and nature of improvements over the previous pre-alpha version being significant”. The biggest change to the prior version is the integration of a permissionless multi-chain environment:
Subnetworks, comprised of Wasp nodes we call “committees”, can run many blockchains in parallel on top of it without losing perspective of the environments that secures IOTA digital assets, the Tangle. Each such chain, being a functional equivalent of one Ethereum blockchain, is capable of hosting many smart contracts.
Here’s what the alpha version brings
Developers can now create IOTA-based smart contracts, decentralized applications (dApps), and smart contract chains executed by Wasp nodes. The focus of IOTA Smart Contracts is interoperability with other blockchains and the elimination of inefficiencies. For example, the ISCP aims to solve the inability to execute in parallel and at scale, the inability to run “foreign” smart contracts on different virtual machines, and eliminate horrendous fees.
To realize these paradigms, developers and enterprises can run their own “permissioned” smart contract chain, determining for themselves the size of the validating committee that matches the level of required decentralization and security. Enterprises can thus choose whether only a committee of their own nodes validates transactions or a committee of nodes among consortium partners.
In doing so, the ISCP is built to run “completely permissionless” so that “all smart contract chains – whether open or private – benefit from the inherent security and interoperability of anchoring any smart contract state and their results on IOTA’s feeless base layer”. On the current state of the alpha version, the IOTA Foundation states:
While much will probably change as the protocol further matures, this is a significant opportunity to display creative applications on the IOTA network such as native digital assets, decentralized exchanges (AMMs), NFT marketplaces, liquidity platforms, and smart contracts that leverage IOTA Oracles.
Tools for IOTA’s smart contract protocol and next steps
The release holds a significant amount of tools. The ISCP alpha comes with a Rust development environment to write smart contracts and compile them into the WebAssembly (wasm) binaries for later deployment on the chain; a “cluster tool” to deploy chains; a “solo tool” to write unit tests for smart contracts and dApps; a Wasp Command Line Interface (CLI); the Front-End wallet for interacting with Wasp nodes; and the “Wasp Explorer”. Last but not least, the IOTA Foundation also provides APIs and an API library for front-end applications.
As for next steps, the “near-term goal for the next few months” is to move forward with the development of Goshimmer, Coordicide, and the Chrysalis mainnet upgrade. For the ISCP, more showcases and a demonstration network with smart contracts and colored coins are to be pushed. In addition, a lot is currently riding on the implementation of Mana:
After finalization of the current integration of the “Mana” module into the Coordicide testnet in its current “Pollen” stage, IOTA Smart Contracts will be able to be deployed using Wasp nodes.
The current integration of the Mana module into Pollen represents a major building block of the leaderless consensus algorithm of the future IOTA protocol. The ISCP team therefore decided to focus on the ability to deploy Smart Contracts on Wasp nodes until after the Mana module integration has been finalized in the coming weeks.
In the longer term, the IOTA Foundation’s focus is on further developing the Rust development environment and tools, exploring the VM-agnostic nature of ISCP and integrating the Ethereum Virtual Machine (EVM), building bridges for inter-chain atomic swaps with native and external blockchains, an improved consensus algorithm, and a “permission-free market for chain validators”.
For more details, check out the official blog post.