What is a smart contract?
Technically, smart contracts aren’t actually contracts: rather, they’re technology for facilitating contracts. (Remember, a contract is just an agreement!)
At the core, a “smart contract” is a program. It takes inputs – like your account number and the person you want to transact with – and then performs the tasks it’s assigned. Believe it or not, you actually have a lot of experience with smart contracts already! When you buy something from Amazon or Overstock.com, you enter your billing information and identify what you want to buy, and the merchant’s internal systems bill your credit card, send orders to warehouses for fulfillment, update databases, and so on. Your interactions with the merchant are mediated by programs and computers that do a lot of the merchant’s back-end work automatically. That frees up the merchant to focus on what’s important: getting the product you wanted and shipping it to your door.
What makes blockchain-based smart contracts special?
In a proprietary, enterprise-level smart contract systems, like Amazon’s internal processes, everything is controlled by the provider. As a consumer, you can’t see what’s going on under the hood – and you can’t prove or verify what program ran, or if it executed correctly. And the provider can change the terms of the deal at any time. In other words, the problem is trust.
While blockchain technology has a lot of limitations, there are two things it does better than anything else: transparency and trust. When a smart contract is implemented on a blockchain, everyone can see the code, and network rules ensure that the code executes correctly.
Why should anyone use a smart contract?
Smart contracts, when paired with blockchain technology, have a few critical benefits in comparison to traditional, proprietary systems.
- Credible Commitments: Because smart contracts are programs, they can’t renege on deals. That certainty increases transactional confidence and mitigates the need for recourse options (like courts) that are expensive, time-consuming, and arcane.
- Transparency: Information is public and verifiable, helping people verify that they’ll operate as designed.
- Standardization: Interoperability across platforms is often a nightmare. Blockchains can allow all the data to have one standard format,
- Efficiency: Advanced scripting capabilities can implement the backend logic of business processes, reducing transaction costs through automation.
How do smart contracts make deals more secure/safe?
Because smart contracts are programs, they can’t renege on deals. That’s especially important in pseudonymous transactions when you don’t necessarily know who you’re dealing with.
How do smart contracts save people money, versus a traditional contract or lawyer?
With smart contracts, some kinds of disputes are literally impossible to have. For example, a smart contract that says “pay the vendor when the merchandise arrives” precludes the possibility that the buyer would make a late payment. As a result, smart contracts can improve transactional confidence, mitigating the need for recourse. That means less reliance on lawyers and courts, which can be expensive and confusing. It can also save a lot of time!
Of course, smart contracts are just tools, and many contractual provisions are fairly subjective. Smart contracts won’t eliminate the need for lawyers or courts – but they can help ensure that these people stay focused on the issues they can add the most value to.
What are some of the negative aspects of using a smart contract?
Because data in mature public blockchains is difficult to change, smart contracts are set in stone the moment they’re created. Like all code, smart contracts can have bugs or mistakes, and the inability to fix those bugs when they’re discovered means that a lot of work needs to be put in to make sure they’re well-designed and properly implemented. Additionally, there are also some times a smart contract needs to be upgraded or adjusted; doing so can be very challenging if that capability isn’t planned for at the outset.
What can be done if there is a mistake found in a smart contract? How difficult is it to fix?
Unfortunately, most smart contracts are very difficult to change. The Sagewise SDK provides a mechanism for freezing and upgrading defective or outdated smart contracts.