• Publications
  • Influence
A Survey of Attacks on Ethereum Smart Contracts (SoK)
This work analyses the security vulnerabilities of Ethereum smart contracts, providing a taxonomy of common programming pitfalls which may lead to vulnerabilities, and shows a series of attacks which exploit these vulnerabilities, allowing an adversary to steal money or cause other damage.
SoK: unraveling Bitcoin smart contracts
This paper presents a comprehensive survey of smart contracts on Bitcoin, in a uniform framework based on a new formal specification language for smart contracts, which also helps to highlight some subtleties in existing informal descriptions, making a step towards automatic verification.
A formal model of Bitcoin transactions
We propose a formal model of Bitcoin transactions, which is sufficiently abstract to enable formal reasoning, and at the same time is concrete enough to serve as an alternative documentation to
Developing secure bitcoin contracts with BitML
The toolchain is based on BitML, a recent domain-specific language for smart contracts with a computationally sound embedding into Bitcoin, and automatically verifies relevant properties of contracts, ensuring that funds do not remain frozen within a contract forever.
Developing Honest Java Programs with Diogenes
Diogenes is presented, a suite of tools which supports programmers in writing honest Java programs which write a specification of the service, verify its honesty, and translate it into a skeletal Java program, and use the tool to verify that its honesty has not been compromised by the refinement.
Contract-Oriented Programming with Timed Session Types
Contract-oriented programming is a software engineering paradigm which proposes the use of behavioural contracts to discipline the interaction among software components. In a distributed setting, the