Skip to main content

Smart Contracts

What Are Smart Contracts?

Smart contracts are software applications that run on a distributed network with multiple validators executing and validating the same code. This ensures the application behaves as expected, and that there is no tampering in the execution of the program.

Applications You Can Trust

As you can be certain that the code being executed is always the same (and will not change), this results in applications you can trust. This allows you to use smart contracts for applications where there was a trust issue. The rules of the smart contract define what the contract can and can not do, making it a decentralized and a predictable decision-maker.

Smart contracts are used for all kinds of purposes. A recurring reason to use a smart contract is to automate certain actions without needing a centralized entity to enforce this specific action. A good example of this is a smart contract that can exchange a certain amount of IOTA tokens for a certain amount of land ownership. The smart contract will accept both the IOTA tokens and the land ownership, and will predictably exchange them between both parties without the risk of one of the parties not delivering on their promise. With a smart contract, code is law.

Scalable Smart Contracts

On a public blockchain, anyone willing to pay the fees for deploying a smart contract can deploy one. Once your smart contract has been deployed to the chain you no longer have the option to change it, and you can be assured that your smart contract application will be there as long as that blockchain exists. Smart contracts can communicate with one another, and you can invoke programmed public functions on a smart contract to trigger actions on a smart contract, or address the state of a smart contract.

Because smart contracts do not run on a single computer, but on many validators, a network of smart contracts can only process so many smart contracts at once, even if the software has been written optimally. This means smart contracts are expensive to execute, and do not scale well on a single blockchain, often resulting in congested networks and expensive fees for executing functions on smart contracts. By allowing many blockchains executing smart contracts to run in parallel, and communicate with one another, IOTA Smart Contracts will solve this scalability problem.