First, I want to say, I’m a big supporter of the entire IOTA protocol and in my opinion, this is one of the few projects that try to innovate in this space.
ISCP is IOTA’s take to bring Smart Contracts to their DLT.
Smart Contracts can be thought of as state machines, where the code defines how and when the state is changed. In essence, they make code law. Given a set of inputs (ordered) and following the rules (code) written in the Smart Contract you can deterministically change (update) the state.
There are numerous things to love about ISCP from being able to run multiple chains in parallel which all operate independently from one another while still allowing trustless interoperability across different chains. Each chain can run different Virtual Machines (VMs) from Rust and Go to Solidity VMs (currently, in the future potentially even more). Each Smart Contract chain is governed by a committee of (WASP) nodes. When the committee reaches consensus, they update the state and publish a hash to the Tangle as proof that they’ve reached consensus. The committee uses a leaderless BFT consensus, a variation of the HoneyBadger consensus to come to a randomly sorted list of inputs. Once they agree on the list of inputs and the order, they all independently apply the list to the current state to derive the next state. All honest committee members will generate the same state. Each committee member signs of on the new state and when a supermajority of signatures are collected the hash of the new state gets added to the Tangle. MEV (Miner Extractable Value) is solved at the cost of additional message overhead while reaching consensus on the randomly ordered list of inputs.
ISCP can also be thought of as one of IOTA’s sharding solutions not only for Smart Contracts but also for regular value transactions. Everything is configurable in ISCP. You can have a permissioned set of validators (committee members) or you can have a permissionless and se...