The SC program

An SC program is an algorithm that contains instructions for a Virtual machine IOTA uses WebAssembly as VM for SC(smart contracts), the program takes two transactions, the request transaction and the current state transaction. The hash of the program is stored on the tangle and therefore immutable The acount adress of the smart contract is owned by the committee, this adress contians the deposited IOTA tokens, only a quorum of committee nodes can transfer tokes away form the address, in the case IOTa uses the Boneh-Lynn-Shacham (BLS) signature scheme to give nodes on the committee equal ownership rights over the address. Each node of the committee owns a secret share of the key and only collectively through the quorum consensus process (usually 2/3 +1) a valid signature is generated, the state of the SC updated and funds moved. The owner of an SC creates the program, and its binary code is sotred in committee nodes. The hash of the program is always accessible through the state of the transaction, so the SC is immutable The owner appoints a committee of nodes responsible for executing the program, listening to the tangle for request transactions and collectively updating the state of the SC.

This is the overall description of the smart contracts at IOtA, personally i think that the possibility to execute SC’s off tangle, and not needing fee per default, gives a tremendous potential for implementation of SC using IOTA’s specific protocol.

What’s next and disclaimer

  • In next posts we will describe how to set up an experimental WASP mode (committee node) that executes an SC.
  • The tmp project is developing and spreading the word for decentralized technologies, for specific questions about IOTA please contact the IOTA foundation (https://www.iota.org/)

References