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 program's execution.
Applications You Can Trust
As you can be certain that the executed code is always the same (and will not change), this results in applications you can trust. This allows you to use smart contracts for applications with a trust issue. The smart contract rules define what the contract can and can not do, making it a decentralized and predictable decision-maker.
You can use smart contracts for all kinds of purposes. A recurring reason to use a smart contract is to automate specific actions without needing a centralized entity to enforce this specific action. A good example is a smart contract that can exchange a certain amount of IOTA tokens for 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
Anyone willing to pay the fees for deploying a smart contract on a public blockchain 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 sure 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 validators 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 costly 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 solves this scalability problem.
At the same time, ISC provides advanced means of communication between its chains and preserves the ability to create complex, composed smart contracts.