Blockchain technology is a solution to many issues but it also is ridden by its own inherent problems. The more complex issues the technology tackles the more visible its own shortcomings become. Smart contracts were a huge breakthrough for various Blockchain solutions but were they perfectly designed? Problems of the existing Blockchain-based smart contracts have been widely discussed within the cryptocommunity.
Why not to store smart contracts on-chain?
One of those issues is that using a Blockchain's distributed ledger is not a very efficient way to perform large computations sometimes needed in order to meet contract conditions as stressed Bitcoin Core developer Gregory Maxwell in his comment on the topic:
“Smart contracts in a public ledger system are a predicate – Bitcoin's creator understood this. They take input – about the transaction, and perhaps the chain – and they accept or reject the update to the system. The network of thousands of nodes all around the world doesn't give a darn about the particulars of the computation, they care only that it was accepted. The transaction is free to provide arbitrary side information to help it make its decision.
Deciding if an arbitrarily complex condition was met doesn't require a turing complete language or what not,” he said.
So the Bitcoin Core’s approach is to host all the conditions for transactions outside the main-chain and to use scripting, foregoing Turing-completeness and thus flexibility of the Ethereum Virtual Machine for the sake of security.
“Doing heavy computation on the Blockchain is indeed insane; that's what services like the ethereum computation market are for,” commented Vitalik Buterin himself on Reddit.
However, the introduction of third-party computations may lead to excessive trust issues, when dealing with either owners of computational facilities themselves or some authority vetting each provider on the market. Obviously, this signifies that the system has to be further centralized as a result.
It can also be argued that while the overall consensus on the Blockchain is important, it is still ridiculously inefficient and even not needed in many cases to agree on everything each time. Moreover, “reaching multi-party decentralized global consensus quickly is trading off security for speed”, according to Thaddeus Dryja of LN.
With state channels to Aeternity
A more elegant solution for Blockchain scalability has been proposed by another initiative called Aeternity. The project's team led by one of the early Blockchain technology enthusiasts Yanislav Malahov aims to alleviate the existing smart contract inefficiency by introducing a novel extension over Blockchain called “state channels”.
Similarly to payment channels of Lightning Network, state channels can operate the information off the main chain privately between counterparties in a trustless way. As evident from the name, the distinction from payment channels is that Aeternity's state channels can host not only transactions, but also a contract's current state. These state channels also enable instant, parallelized conditional transactions instead of rowing them up, which also adds to the overall system's performance.
Thus the Blockchain itself serves mostly as a collective authority, in a sense acting as a decentralized cryptocourt, resolving disagreements between counterparties.
“Malahov's approach to decentralized processing elegantly addresses issues of scale, by taking the state channel approach to the nth degree,” Trent McConaghy, co-founder and chief technology officer at BigchainDB.
The ability of state channels to interconnect within trustless networks and to perform high-frequency conditional transactions privately paves way for various decentralized yet highly efficient applications. The obvious examples are high-frequency trustless exchanges, instant conditional micropayments, and IoT. State channels can also be employed by services that rely on channeling frequent micro-payments, like streaming platforms.
Another issue solved by Aeternity is that Blockchains virtually exist as insular ecosystems being unable to consistently access the real world data, which cannot be predefined by system developers.
However, what happens when a smart contract execution needs to be triggered by a real world event such as presidential election outcome, natural disaster or weather conditions? This is publicly available information, however, how can we decide on which source of data (a.k.a oracle) is valid? This issue has long been vexing many Ethereum-based projects. For instance, projects dealing with insurance or IOT. It can be said that the problem of communication between real and virtual worlds is among the key challenges of the entire Blockchain industry.
The use of centralized oracles is a bottleneck leading to less fault tolerance and possibly even tyranny of a single authority. There were some attempts to use prediction markets as the aggregated source of the information being the additional layer over the existing Blockchains. Still, this was not very economically efficient before, because in that case we had to pay for two layers of consensus: the first one is the state of the Blockchain itself and the other one is consensus over the state of the world outside the Blockchain.
In Aeternity, the decentralized oracles become a part of on-chain consensus. Every network participant is able to request public data and prediction markets are incentivised to provide this data on the Blockchain. In a way Blockchain itself assumes the role of public arbitrator thus preserving trustlessness of the system. This makes Aeternity's oracles much more stable and cost efficient than in two-tier Blockchain systems.
“We have developed a separate Blockchain solution, more so it's not about bandwidth but rather the ability to code smart contracts without taking up network resources to execute them,” explained project's founder Yanislav Malahov.
As stated by the developers, while Aeternity Core is written in Erlang to ensure superior operational stability and performance, smart contracts will be programmed via an original, easy to master programming language.
Blockchain is a young industry that keeps evolving incessantly. Perhaps Aeternity’s new take on smart contracts and oracles will lead to a new turn in development of Blockchain platforms.