For some years back till date, there has been a blowing up of interest about ‘Blockchain and Smart Contracts’ technology.
This is happening as a result of the increasing rate of financial institutions, regulators, software developers, etc, rushing in to explore the Blockchain and Smart Contracts developments.
The hype over Smart Contracts has resulted in many headlines. Smart Contracts and Blockchain have the potential to disrupt almost every aspect of our society.
Will these cutting-edge technologies be able to manage and overcome the barriers associated with financial transactions to large scale adoption?
This particular question and many others would be answered in the course of going through this article.
The goal of this article is to educate the community about why Smart Contract is a necessity in the cryptocurrency world. It will provide some basic understanding, a technical introduction to Smart Contracts, and get exposed to possible solutions that Algorand offers with its Smart Contracts. It also presents an opportunity for the community to begin contributing to the Algorand project with questions and feedback.
Dive in with me and let’s get down to it.
What is a Smart Contract?
Before we explain what a smart contract is, it is important to first understand what a legal contract is.
A legal contract is a legally enforceable agreement between private parties that generates mutual obligations. In order for the agreement to be a legally enforceable contract, it must include mutual assent i.e a valid offer and acceptance, sufficient consideration, capacity, and legality… Read Also
Smart Contract is simply a blockchain version of the legal contract. Smart Contracts were first described by an American Cryptographer called Nick Szabo in the year 1994, of course many years before the creation of Bitcoin. Back then, he defined a smart contract as a tool that formalizes and secures computer networks by combining protocols with user interfaces. Szabo discussed the potential use of smart contracts in various fields that involve contractual agreements such as the ones that exist in content rights management, credit systems, and payment processing.
Smart Contracts became popular in the context of blockchain and cryptocurrencies by the creator and co-founder of Ethereum, in person of Vitalik Buterin. In other words, the Ethereum blockchain was the first to demonstrate the power of smart contracts.
In the blockchain world, smart contracts can be defined as an application or program that runs on a distributed ledger (the blockchain). Normally, it works as a digital agreement that is enforced by a specific set of rules, meaning that it triggers some certain actions after which predefined conditions are encountered. These rules are predefined by computer code, which is replicated and executed by all network nodes (miners). It should be noted that each blockchain may present a different method of implementing its smart contracts.
But How Does a Smart Contract Works?
A smart contract works as a deterministic program that executes a particular task when some certain statements/conditions are met.
To simply put, smart contracts are basically lines of code that execute a specific function once certain conditions are met. Notably, the code usually follows an “if… then…” statement that triggers predetermined and predictable actions. Once the terms of the agreement have been set, the smart contract verifies their fulfillment and the assets are distributed in accordance.
Take for instance, online shops may implement smart contracts which ensure that only “after payments are received, products delivery can then follow”, making all the processes be less vulnerable to human errors, hence, more efficient in results.
Many blockchain companies and startups do well to deploy smart contracts in order to issue their own native digital tokens on Ethereum network. Tokens issued on top of the Ethereum blockchain follow a standard called ERC-20. This standard describes the core functions of all Ethereum-based tokens.
In essence, these assets are often referred to as ERC-20 tokens, and they represent a great portion of the cryptocurrencies that exist today. In most cases, smart contracts usage enables funds exchange, and distribution of tokens, in a trustless and efficient way!
Smart contract use cases range from simple-to-complex and are usable for simple commercial transactions such as wiring money from one person to another e.g from Alice-to-Bob.
Smart contracts are as well usable for registering whatever kind of property and ownership rights. Other use cases can be found in mobility, banking, energy, telecommunications, e-government, education, entertainment, insurance, ect.
It’s impossible to add new functions to an Ethereum smart contract after it has been deployed. But the interesting part of this is that, if its creator includes a function called SELFDESTRUCT in the code, then it can be possible to “delete” the entire smart contract in the future and replace it with a new one as demand for such arises…Read more
Some Other Key Benefits of Smart Contracts
Transparency: The blockchain technology which is the backbone of smart contracts creates a shared ledger accessible by all parties to an agreement making blockchain-based contracts to have baked-in compliance; no surprises, no room for misinterpretation. Similarly, non-technical persons can better understand the transactions they enter into and what the smart contract represents.
Automation: Smart contracts being programmable codes are highly customizable and can be designed in many different ways, offering many kinds of solutions.
Data Integrity: The technology behind smart contracts is capable of streamline, secure, re-engineer, and disintermediate many processes in the financial industry. Optimizing various features will make the financial sectors and many others to be more efficient and productive while lowering friction and costs.
Accessibility: There are several existing and possible Ethereum blockchain real life applications across various industries, meaning that smart contracts have the potential to disrupt many industries, among which are; Tokenization, Decentralized Finance (DeFi), Electronic Signatures, Crypto Wallets, Games, Voting Systems, Machine to Machine Payments (IoT), Decentralized Exchanges and so on.
It’s interesting to know that different blockchain platforms come with their in-built privacy issues. Basically, all blockchain data is publicly available for all network participants with no encryption. This is a serious issue where blockchain applications demand for data privacy.
A Solution is needed that allows for blockchain-based applications to reliably process private data. Such a solution should incorporate approaches, which keep private data completely off-chain while registering the private data on-chain by storing a hash of it for a later verification of its integrity.
I hereby present to you the Algorand’s Smart Contract architecture and its significant ways of solutions offered from prior approaches.
So what’s next?
It will be nice to note that the upgraded forms of smart contracts allow developers and users to have more flexibility over contracts’ immutability. There are diverse ways by which the upgradeable smart contracts do perform their works with varying degrees of complexity without clogging up the blockchain for everyone else.
Algorand’s smart contract architecture includes several kinds of tools because Algorand’s users need to solve several kinds of problems.These tools are extensively described below:
- On-Chain Contracts:
Algorand provides Layer-1 (on-chain) smart contracts, a secure fast-path, that execute many common and everyday simple transactions directly in the blockchain itself. This Layer-1 smart contract of Algorand provides atomic transfer which is a built-in mechanism that ensures multiple transactions authorized by mutually suspicious parties are executed as a single atomic unit (either all succeed, or none is successful).
A blockchain that requires on-chain contracts is like a bank that requires all financial transactions be carried out by the cashier’s check. Before spending money, a customer must wait in a queue, along with all other customers, at a bank office with only one teller, to escrow the amount of the check. The Algorand smart contract architecture does provide built-in support for user-defined Algorand Standard Assets (ASAs), which is at the same level as Algorand’s native Algo currency.
The on-chain capability of Algorand’s smart contract also provides a built-in protection against inadvertently creating or discarding tokens, along with direct support for optionally clawing back, freezing, burning, and minting tokens.
Correspondingly, Algorand Layer-1 contracts do provide direct support for common kinds of “post-and-sale” transactions, multisig wallets, securitized loans, accredited-only transactions, crowdfunding, and other simple, recurring transaction types. The on-chain smart contracts of Algorand are written in TEAL, an assembly-like language. TEAL provides programmers the expressive power to implement the kinds of common transactions.
The Algorand team is currently developing a “stateful” mechanism, an extension of TEAL, which should be ready by summer 2020; it’ll allow programs to store states in Layer-1, inspect account balances and other blockchain states for even more expressive power. This development will enable TEAL programs to add application state both at the global and local user level. More importantly, TEAL will also provide enhanced security guarantees for off-chain contracts.
Apart from using TEAL, Algorand smart contracts can also be written with SDK functions and Python…Read Also
- Off-Chain Contracts:
Algorand provides Layer-2 contracts for the long-tail of smart contracts requiring more customization.
The diagram beneath explains the benefit of executing contract calls off-chain: the contract call can be executed in parallel with regular transactions, without jeopardizing the blockchain’s throughput because the contract execution committee is chosen by Algorand’s secure, randomized, self-selection algorithm, just like the main consensus committee.
Contract execution, unlike block consensus, is deterministic, the contract execution committee can achieve the same level of security with substantially fewer validators of about 150 instead of thousands as we have on other blockchains.
The needs for off-chain contracts are highlighted below;
•A contract may be too big. For an example, a contract managing a private stock placement may need to consult a database of certified investors who are allowed to participate, perhaps along with a database of blacklisted investors who are not. These databases may be too big to keep on the chain, or too sensitive to make public.
•A contract may be too computationally demanding. Take for instance, a contract managing a token that provides a high degree of privacy may require computationally intensive libraries such as ZK-STARKs, ZK-SNARKs, and BulletProofs.
Likewise, a contract that handles treasury assets may make liberal use of assertions checking the integrity of its data structures. Such long computations may obstruct progress by other clients, thereby slowing everyone’s block rate.
•Another reason is that; a contract may be too complex. TEAL is a powerful and secure tool for programming simple Layer-1 transactions, but more complex applications require a higher-level language. Good software engineering practice often preferred to split an application into multiple contracts, sometimes provided by different parties. Any application complex enough to require a modular structure is best managed by a higher-level language.
Off-chain contract code is written in a high-level language, and is executed by a Virtual Machine (VM). An off-chain contract has its own long-lived state, called contract storage. For privacy, the contract storage itself does not appear on the blockchain. For security, however, each contract call publishes a commitment to the latest contract storage. A blockchain that uses off-chain contracts is like one using a regular checking account whereby customers write their own checks without queuing at the bank, and funds are transferred later when the check clears.
Off-chain contract calls are “speculative” in nature, the on-chain state, say, an account balance, might change in the interval between when a contract call is validated and when that call’s effects reach the blockchain. Even so, correctness is guaranteed! The off-chain contract implementation keeps track of contract call dependencies, ensuring that the effects of a call whose dependencies have been violated will never be included on the blockchain.
These two types of smart contracts described above were both brought together for the betterment of the ecosystem as a result of the Algorand 2.0 upgrade.
With the help of smart contracts, every process, task, and payment can have a digital record and signature that could be validated, identified, shared, and stored. In fact, the popularly known oracle injects data in relevance to smart contracts from the on-chain space through to smart contract data stores. If well implemented, smart contracts are capable of providing transaction security that is much more superior to the traditional financial contracts. Coordination costs are drastically reduced when auditing are carried out on smart contract transactions. It also makes possible the comfort-ability of performance tracking on previous transactions even in real time, as controlling and compliance are happening on the fly.
Algorand’s smart contracts (ASCs) are very flexible, and in the future may enable multiple contract execution committees, each with a different service level guarantee, and with its own contract language and VM. ASCs require much fewer resources than other blockchain alternatives. Whatever your specialized smart contract needs, the Algorand Smart Contract architecture can support a matching language and VM.
I hope you find this article useful and I’ll be excited to see what other use cases you can solve using smart contracts, kindly point it out in the comment section below to let me know. Also, feel free to leave the question(s) you may have concerning this topic.
Article Written by Helen IMAH – Algorand Ambassador