Ethereum's bread and butter
Smart contracts (also called distributed apps) are very popular nowadays. But what are they and what problems do they solve?
The term ?smart contract? was first used by Nick Szabo in 1997, long before Bitcoin was created. He is a computer scientist, law scholar and cryptographer so I?ll spare you his exact words. But in simple terms: he wanted to use a distributed ledger to store contracts.
Now, smart contracts are just like contracts in the real world. The only difference is that they are completely digital. In fact a smart contract is actually a tiny computer program that is stored inside a blockchain. Let?s take a look at an example to understand how smart contracts work. You probably are familiar with Kickstarter, the large fundraising platform. Product teams can go to Kickstarter, create a project, set a funding goal and start collecting money from others who believe in the idea. Kickstarter is essentially a third party that sits between product teams and supporters.
This means that both of them need to trust Kickstarter to handle their money correctly. If the project gets successfully funded, the project team expects Kickstarter to give them the money. On the other hand, supporters want their money to go to the project if it was funded or to get a refund when it hasn?t reached its goals. Both the product team and its supports have to trust Kickstarter. But with smart contracts we can build a similar system that doesn?t require a third-party like Kickstarter.
So let?s create a smart contract for this! We can program the smart contract so that it holds all the received funds until a certain goal is reached. The supporters of a project can now transfer their money to the smart contract. If the project gets fully funded, the contract automatically passes the money to the creator of the project. And if the project fails to meet the goal, the money automatically goes back to the supporters. Pretty awesome right? And because smart contracts are stored on a blockchain, everything is completely distributed.
With this technique, no one is in control of the money. But wait a minute! Why should we trust a smart contract? Well because smart contracts are stored on a blockchain, they inherit some interesting properties. They are immutable and they are distributed. Being immutable means that once a smart contract is created, it can never be changed again. So no one can go behind your back and tamper with the code of your contract.
And being distributed means that the output of your contract is validated by everyone on the network. So a single person cannot force the contract to release the funds because other people on the network will spot this attempt and mark it as invalid. Tampering with smart contracts becomes almost impossible. Smart contracts can be applied to many different things, not just on crowdfunding. Banks could use it to issue loans or to offer automatic payments. Insurance companies could use it to process certain claims. Postal companies could use it for payment on delivery, and so on and so on?