Smart contracts’ potential and limitations have been the object of countless debates in recent years. There are many factors about this topic that will change as the industry keeps growing and developing, but there are some smart contracts’ pros and cons that are essentially conditioned by design.
Let’s take a peek into both these possible aspects.
Understanding smart contracts’ pros and cons
The way we see it, there’s a fundamental confusion that keeps misshaping the expectations around smart contracts: The idea that smart contracts are digital legal contracts. This is just beyond inaccurate; it’s false.
Even though their name is in fact confusing, there’s a definition we should always have in mind when discussing this topic: Smart contracts are immutable computer programs that run deterministically in a specific blockchain. Deterministically is the main keyword here, as it’s the feature that allows them to reach the same results in every computer running them simultaneously.
This definition doesn’t mean that smart contracts will or won’t have a legal status hereafter, but it isn’t an essential characteristic; they are a technological device. It’s true: The name might be confusing. But the most accurate analogy for blockchains’ smart contracts is the vending machine. When someone buys a snack through a vending machine, the transaction is carried out by a program, not a person evaluating if the amount of money is right, or the snack is the correct one.
Smart contracts work the same way: They are digital, non-personal devices that make an action when certain pre-established conditions are fulfilled.
The idea of them being the digital equivalent of a legal contract generates a confusing illusion: That of the possibility of absolutely erasing human trust from transactions through digital means. If the accomplishment of each party could be guaranteed by smart contracts, they would be an idyllic solution to many of our problems, not only in business but in society.
For several reasons we’ll analyze below, it isn’t the case at the moment, even though it is the expected horizon for several leaders of the Web3 movement.
Pros of being in the blockchain
As we’ve said above, deterministic is the keyword for smart contracts; that’s what makes them work. Let’s see how.
The deterministic aspect is what allows smart contracts to be public and decentralized. As they are run in every node of a blockchain, every participant is a witness to the legitimacy of a transaction (We go deeper into the mechanisms through which this legitimacy es evaluated in this article.)
For this reason, smart contracts become an excellent way of granting transactions without forcing parties to trust a third entity such as a bank or app: A whole community is approving its validity. This is why smart contracts have a series of excellent features like:
Smart contracts can’t be modified, so they are easily contrasted and transactions are reliable.
They are programs running automatically, so they work much faster than a person or intermediary checking them.
Everyone can access smart contracts on a public blockchain, making them safer and more trustable.
For any transaction, the only way it is deployed by a smart contract is if each party is fulfilling its corresponding conditions. That is to say, it’s not possible to deceive the other party, as the program is verified by every node and approved by consensus.
Having no intermediaries between parties implies several cut costs. Even though there are operating costs for using a blockchain, such as gas in Ethereum, they’re usually lower than those of a centralized entity.
These are some of the best-known positive features, furtherly discussed in many articles. The abundance of content on blockchain and smart contracts’ benefits reflects a justified excitement about these new technologies and their possibilities; however, it also overshadows some of their limitations or still-existing problems.
Some of these commonly called “drawbacks” are more exactly these: Challenges that the community is confronting, which are formed by technological obstacles that can be overcome as development advances.
Smart contracts and their relation to reality
So we have a technology that successfully automatizes transactions. That can be great for several industries simplifying and improving payments and confirmation methods. However, it meets an important difficulty that is directly connected to what makes smart contracts so remarkable.
The problem is that the blockchain is decentralized as long as it avoids having centralized actors as unique sources of information; as every node observes the same internally provided data in the ledger, information can be contrasted. As information that’s external to the blockchain is needed, centralization shows up again: Events in the real world can only be confirmed by limited, individual inputs.
Let’s see an example. Imagine two people making a transaction through a blockchain. Person A and person B agree to exchange 100 DAI for its equivalent in ETH. As both coins are held in the blockchain, everyone has the information at their disposal. Nothing strange can happen.
Now, let’s use a similar example. Someone buys an object that costs 100 USD. Imagine she uses DAI. Now the payment can be verified as before, but the confirmation for receiving the object has one only possible input: The receiver. Or two, if we include the deliveryman. Or three, if we include the seller. However, adding new input points doesn’t make a difference. There will always be a last, centralized input that decides whether a transaction is correctly made.
This point severely reduces the area of application. At least for now.
The possible solutions
Of course, being able to use external information in the blockchain would be a great benefit for its users: This is why many of the developers and referents of the movement are looking for solutions. The fact is that whatever solution they find, it’ll necessarily imply some kind of tradeoff with another blockchain’s feature.
At the time, one of the most common solutions is using oracles. Oracles take several outer pieces of information from an API and enter them into the blockchain through an external transaction. This method solves the technological barrier of entering external information (without the problems of using directly an API). Still, they don’t affect the question of centralization: What use does it make to have a blockchain if contracts depend on a centralized information source such as an individual or a company?
An interesting solution nowadays is Chainlink. This on-blockchain system gathers oracles through decentralized nodes and makes a 3 criteria selection: Reputation, variety, and comparison. This way, the quality of information is also checked through decentralized methods. Of course, it is recent and it must be furtherly tested.
Another common drawback that comes up when speaking of smart contracts has to do with their openness based on programming skills. As they are frequently coded in low-level languages, smart contracts often require a lot of computer science knowledge in order to be correctly implemented. This way, full participation in a blockchain project is conditioned by skills that take a lot of time to acquire, reducing the potentially active population.
Most probably, several applications will grow easier to use with time and user interface development in the area. However, technologically advanced smart contracts will keep needing a high degree of coding skills to remain flexible and cover specific fields and uses.
Smart contracts, and blockchain in general, are a technological leap that’s big enough to call it Web3, a new generation for the WWW. Their possibilities are revolutionary for almost every industry, and they supply a new way of building interactions between entities. However, they are not ready -yet, maybe- to solve every problem derived from centralized decisions and human trust.
Whether that’s possible or not, it’s a question that only the passing of time will answer; what we now know is that there are many thought leaders and top professionals working on it. A lot of new features and solutions are developed month after month focusing on core values such as transparency, and an immense community of developers and engineers is enthusiastic about near-future possibilities.