Smart Contracts
A
smart contract application is any decentralized service that acts as a
mechanism to execute an agreement on a blockchain. They function as a basic “if
x happens then y executes” type of program. They cannot be changed once they
are implemented on the blockchain. This extends the functionality of
blockchains from only being able to execute transactions to becoming a transaction
system for smart contracts. Smart contracts are verifiable pieces of code that
compose an agreement between parties involved. When an outcome is given to a
smart contract the codified set of agreements is released while holding
everyone accountable for the end result. This means that financial applications
don’t carry counterparty risks. Blockchains and smart contracts are transparent
and solve the back-end problems of the traditional financial sector by being
verifiable. For obvious reasons, data is key to executing smart contracts. If
the data is incorrect then smart contracts do not execute correctly no matter
the amount of cryptographic or economic hardness. Users thus have full control
when creating this immutable censorship resistant contract that guarantees an
outcome without the need for middlemen.
Smart contracts can be made on most
blockchains. Depending on how the blockchain is created different smart
contracts can be implemented. Bitcoin is not Turing-complete and because it
does not understand its previous states it cannot host many different types of
smart contracts. Ethereum and other L1s on the other hand, are, which provides
more flexibility as you can look in the past or have a contract executed at
later dates.
In the past when smart contracts first started, they were first viewed as tamper-proof digital agreements that could know things about the world, release payments about the data, and conclude outcomes. This has three distinct parts: the smart contract itself, proof of something happening, and finally a release of value mechanism. Due to the complexity of the original definition, smart contracts are now viewed as on-chain code. That is, the codification of contractual agreements on a blockchain. It does not know things about the world, does not release value. The last two parts of the original definition have not fully been implemented yet. Chainlink 2.0 is currently increasing the implementation of hybrid smart contracts. This will move the Chainlink off-chain smart contract infrastructure back to the initial definition and codify the three distinct parts. The contract will know what happened and resolve a conclusion. This will mean greater security and scalability.
Types of Data and Decentralized Oracles Networks
A blockchain is a decentralized computer network that seeks to disintermediate transactions. Data that exists on a blockchain is called on-chain data. Blockchains are highly trustworthy due to the ability to verify what happened, their cryptographic hardness, their external disconnection from other processes, but offer limited functionality. Blockchains are isolated networks that cannot connect to the outside world on their own. They need a mechanism that feeds real-world data (off-chain) to them that is as trustworthy as the blockchain data (on-chain) itself, thus the need for oracles and smart contracts that can perform this task.
Off-chain
data is information that is not run on a blockchain and comprises real-world
events. Chainlink’s decentralized oracle network (DON) is a single interface to
connect to any blockchain network. Their role is to aggregate external data
resources and notify what happened to the blockchain. They function as doors to
provide on-chain data real world outcomes to execute smart contract and smart
contract applications. They provide what blockchains cannot to reduce costs in
smart contract execution; increase scalability for smart contract applications;
improve privacy and immutability for the smart contract; improve data storage
to interact with smart contracts when information is needed to be retrieved;
and many others. In sum, DONs are a network that feed information or help
execute smart contracts which function as a backend to update blockchain states
to distribute off-chain information to on-chain blocks. The information can
execute a smart contract or be used as a data point for a smart contract
execution among other tasks.
Oracles
function as an in-between from the world of blockchains, centralized web
servers, and the real world to contribute to off-chain data computation and
provide information to blockchains to execute smart contracts. The goal is to
minimize the amount of trust required, connect the external world with the
internal blockchain world, and provide highly scalable solutions. The main
importance of smart contracts is that they allow for autonomous control without
ownership being locked in/held up and controlled by centralized businesses,
thus enabling transactions and computation in a decentralized and
permissionless manner. This means that the features are active and usable to
others without centralized ownership of data and value controlled by third
parties and/or intermediaries.
Chainlink’s DONs expand services for off-chain hybrid smart contracts. The more services that are created on-chain, the more types of smart contracts are needed, and the more use cases are developed. In the recent years we have seen oracle networks function as the back-end for defi and smart contract networks by providing real world off-chain data to on-chain blockchains. By using Chainlink oracles, negative outcomes are softened to better manage risks when using smart contracts that handle off-chain data from the real world in a decentralized way. It does this while providing initiatives and incentives that the data is real and correct and adjudicating disputes about said data by finding multiple sources.
A Few Examples of Smart Contract
Applications and on-chain/off-chain roles:
➢ Proof of reserve. These are smart contracts and data feeds that
verify whether or not an asset is being held or not (ex: fiat reserves in a
bank account that collateralize the stablecoins, or our own Stellar-Polygon bridge). DONs (or a
committee/network of DONs) prove that collateral exists and hold the asset
locked in a contract, blockchains transition their state when smart contracts
are executed and the value is transferred as needed. Multiple inputs and
variables could prove a large collection of different information from multiple
data sets.
➢ A decentralized identity could verify and prove credit scores
managed by DON.
➢ In case of drought farms sell their crops in advance and then
payouts will be made to keep farms running next year. This is known as crop
insurance. Blockchains would be used as the method of transaction and smart
contracts would handle the data (percentage chance of crops failing, price
feeds, weather reports, climate based on long-term historical data etc.).
➢ Paying mortgages using smart contracts and having the deed to your
house in the form of an NFT.
➢ Adjudication of disputes.
➢ Proof of policy (if a politician promises X in their campaign, they can
make a smart contract that guarantees that the promise will be made and keeps
track of it).
➢ Verification that the economic system is not over-leveraged and what
is going on in the derivatives market in real time (most of that type of
economic structure remains hidden).
➢ Much much more that has been conceptualized and a lot of
possibilities that haven’t been implemented.
As smart contract networks hold more data and become more complex, more things could be conceptualized and implemented. More data, more smart contract layers, more complex contracts could be created.
Conclusion:
One of the problems of such a structure lies
in the ability to read smart contracts and understand what they do when
entering them. Too much data or not having the knowledge to fully comprehend
what the smart contract does are both problems and have a high learning curve.
Blockchain, cryptocurrencies, and smart contracts are transparent,
permissionless, and decentralized but only if a person has the knowledge, time,
and energy to be able to understand what is happening on-chain. This takes
time. As people understand more about the tools, how to use them, and
applications are made that make smart contracts easier to make by the general
public, this learning curve should diminish over time.
Many people stand to gain from smart contracts and DONs. As the backbone of DeFi, they hold many qualities that would improve on the current financial structure we have today. The emerging markets arguably have the most to gain from integrating with decentralized finance, and smart contracts in general. This is because the level of financialization that we see in OCED, G20, or “first world” nations is not found everywhere. The emerging markets can thus leapfrog over insurance companies, governments, IMF sanctions, and other issues by making the transition to tamper proof smart contracts with guaranteed outcomes while removing much of the bureaucracy and infrastructure requirements.
Appendix: Economic and Cryptographic
Hardness
Economic
hardness refers to a system that cannot be manipulated maliciously or bribed
because it would be too expensive to carry out for the reward given from the
attack. Many attacks on the blockchain exist whereby a DON or a smart contract
is bribed to execute or not which could lead to an economic gain for the
attacker. Making smart contracts using DONs and smart contract services using
multiple data feeds, such an attack is far less feasible to carry out.
Cryptographically
hard means that the system is encrypted to the extent that it is near
unhackable. Generally, a system is assumed to be cryptographically hard if any
possible attack is impractical to the point of impossibility. A popular type of
hacking, brute-force attacks, essentially targets a system by spamming out
random numbers/information to "break" the encryption and figure out
the logic behind it to access the desired information. SHA256 (used by Bitcoin,
password managers, etc.) is an encryption algorithm that hashes information to
scramble the data in such a way that it would be nearly impossible to break
except by guessing the input through nothing but chance (which would take a
computer millions of years to accomplish). The more complicated the system, the
longer the time needed to crack it as more data is scrambled into the hash
function. Likewise, the more the system is broken up into chunks the harder it
is to crack because there are more hash functions that need to be decrypted to
know the full value of the system.