Researchers from the University of California, Santa Barbara, presented a "scalable technique" to check smart contracts and minimize state-inconsistency bugs, finding forty-seven zero-day vulnerabilities on the Ethereum blockchain during the process. Smart contracts are programs stored on the blockchain that are executed automatically when default conditions are met, depending on the encoded terms of the agreement.
These programs let authorized transactions agreements be
used by unknown parties without having the need of a central authority. In
simple terms, the code is in itself a final party of the trade it is presenting,
the program controls all the execution aspects, also provides an immutable
evidentiary audit chain of transactions, both irreversible and trackable. As per
the paper and researchers, "since smart contracts are not easily upgradable,
auditing the contract's source pre-deployment, and deploying a bug-free contract
is even more important than in the case of traditional software."
About
Sailfish
It aims to find inconsistencies in smart contracts, that allows an
attacker to meddle with execution order or transactions, affecting control flow
in a single transaction, for instance, reentrancy. Sailfish is a tool that
converts a contract into a dependency graph, capturing control and data flow
relations between state-changing instructions and storage variables of a smart
contract. The tool helps to find potential inconsistencies. The researchers
analyzed Sailfish on 89,853 contracts retrieved from Etherscan.
Finding forty-seven zero-day vulnerabilities that can be exploited to extract Ether and might
also comprise application-specific metadata. This will include vulnerable
contracts implementing a house tracker that may be exploited so that house owners
can do multiple active listings. "This is not the first time problematic smart
contracts have attracted attention from academia. In September 2020, Chinese
researchers designed a framework for categorizing known weaknesses in smart
contracts with the goal of providing a detection criterion for each of the
bugs," reports the hacker news.