Blockchain Papers

Follow blockchain research across journals, conferences, and preprint repositories.

1,010 papersLast indexed Aug 31, 2026
Search papers

Paper index

1,010 results · page 35 of 43

Clear filters
Nov 28, 2019·Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation
62 cites
Securing smart contract with runtime validation

Ao Li, Jemin Andrew Choi, Fan Long

We present Solythesis, a source to source Solidity compiler which takes a smart contract code and a user specified invariant as the input and produces an instrumented contract that rejects all transactions that violate the invariant. The design of Solythesis is driven by our observation that the consensus protocol and the storage layer are the primary and the secondary performance bottlenecks of Ethereum, respectively. Solythesis operates with our novel delta update and delta check techniques to minimize the overhead caused by the instrumented storage access statements. Our experimental results validate our hypothesis that the overhead of runtime validation, which is often too expensive for other domains, is in fact negligible for smart contracts. The CPU overhead of Solythesis is only 0.12% on average for our 23 benchmark contracts.

Open access
3 source records
Security and Verification in Computing
Blockchain Technology Applications and Security
Advanced Malware Detection Techniques
Original source
Nov 24, 2019·arXiv (Cornell University)
2 cites
Implementing a Protocol Native Managed Cryptocurrency

Peter Mell, Aurélien Delaitre, Frederic de Vaulx, Philippe Dessauw

Previous work presented a theoretical model based on the implicit Bitcoin specification for how an entity might issue a protocol native cryptocurrency that mimics features of fiat currencies. Protocol native means that it is built into the blockchain platform itself and is not simply a token running on another platform. Novel to this work were mechanisms by which the issuing entity could manage the cryptocurrency but where their power was limited and transparency was enforced by the cryptocurrency being implemented using a publicly mined blockchain. In this work we demonstrate the feasibility of this theoretical model by implementing such a managed cryptocurrency architecture through forking the Bitcoin code base. We discovered that the theoretical model contains several vulnerabilities and security issues that needed to be mitigated. It also contains architectural features that presented significant implementation challenges; some aspects of the proposed changes to the Bitcoin specification were not practical or even workable. In this work we describe how we mitigated the security vulnerabilities and overcame the architectural hurdles to build a working prototype.

Open access
3 source records
cs.CR
Blockchain Technology Applications and Security
Advanced Steganography and Watermarking Techniques
Original source
Nov 6, 2019·Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security
174 cites
Tesseract

Iddo Bentov, Yan Ji, Fan Zhang, Lorenz Breidenbach · 6 authors

We propose Tesseract, a secure real-time cryptocurrency exchange service. Existing centralized exchange designs are vulnerable to theft of funds, while decentralized exchanges cannot offer real-time cross-chain trades. All currently deployed exchanges are also vulnerable to frontrunning attacks. Tesseract overcomes these flaws and achieves a best-of-both-worlds design by using a trusted execution environment. The task of committing the recent trade data to independent cryptocurrency systems presents an all-or-nothing fairness problem, to which we present ideal theoretical solutions, as well as practical solutions. Tesseract supports not only real-time cross-chain cryptocurrency trades, but also secure tokenization of assets pegged to cryptocurrencies. For instance, Tesseract-tokenized bitcoins can circulate on the Ethereum blockchain for use in smart contracts. We provide a demo implementation of Tesseract that supports Bitcoin, Ethereum, and similar cryptocurrencies.

Open access
Blockchain Technology Applications and Security
Cryptography and Data Security
Security and Verification in Computing
Original source
Oct 22, 2019·IEEE Communications Surveys & Tutorials
92 cites
The Security Reference Architecture for Blockchains: Toward a Standardized Model for Studying Vulnerabilities, Threats, and Defenses

Ivan Homoliak, Sarad Venugopalan, Daniel Reijsbergen, Qingze Hum · 6 authors

Blockchains are distributed systems, in which security is a critical factor for their success. However, despite their increasing popularity and adoption, there is a lack of standardized models that study blockchain-related security threats. To fill this gap, the main focus of our work is to systematize and extend the knowledge about the security and privacy aspects of blockchains and contribute to the standardization of this domain. We propose the security reference architecture (SRA) for blockchains, which adopts a stacked model (similar to the ISO/OSI) describing the nature and hierarchy of various security and privacy aspects. The SRA contains four layers: (1) the network layer, (2) the consensus layer, (3) the replicated state machine layer, and (4) the application layer. At each of these layers, we identify known security threats, their origin, and countermeasures, while we also analyze several cross-layer dependencies. Next, to enable better reasoning about security aspects of blockchains by the practitioners, we propose a blockchain-specific version of the threat-risk assessment standard ISO/IEC 15408 by embedding the stacked model into this standard. Finally, we provide designers of blockchain platforms and applications with a design methodology following the model of SRA and its hierarchy.

Open access
2 source records
Blockchain Technology Applications and Security
Security and Verification in Computing
Software System Performance and Reliability
Original source
Oct 14, 2019·IEEE/WIC/ACM International Conference on Web Intelligence - Companion Volume
7 cites
BARRETT BlockchAin Regulated REmote aTTestation

Michail Bampatsikos, Christoforos Ntantogian, Christos Xenakis, Stelios C. A. Thomopoulos

Today, an increasing number of Internet of Things (IoT) healthcare devices, crucial to a person's wellbeing and life, connects to the internet and consequently is exposed to a variety of threats. These devices possess low computational resources, and as a result they cannot use security tools such as antivirus or firewalls. Consequently, they become easy targets for cyber-attacks and malware infection, thus putting a person's life at risk. One way to protect these devices from malware infection is Remote Attestation (RA), a process by which a device with low computational power (prover) verifies its internal state to a party with higher computational resources (verifier) upon the latter's request. However, in case the verifier is malicious, it may constantly send numerous requests for RA to a prover to prevent it from performing the functions it was designed for. Thus, keeping it busy and rendering it unusable to its legit users as well as services. In short, the verifier performs a Computational Denial of Service (CDoS) attack against the prover. This paper proposes the BARRETT architecture which uses a Public Ethereum Network (PEN) in conjunction with an RA protocol to protect the prover from CDoS attacks. In particular, the PEN in BARRETT deters CDoS by forcing the verifier to pay a fee in Ether cryptocurrency every time they wish to send an Attestation Request (AR) to a prover. The verifier pays the fee since in BARRETT it can send the AR only via Ethereum transactions. Consequently, any attempt to perform a CDoS becomes prohibitively expensive.

Open access
Security and Verification in Computing
Advanced Malware Detection Techniques
IoT and Edge/Fog Computing
Original source
Oct 10, 2019·arXiv (Cornell University)
19 cites
Security analysis of a blockchain-based protocol for the certification of academic credentials

Marco Baldi, Franco Chiaraluce, Migelan Kodra, Luca Spalazzi

We consider a blockchain-based protocol for the certification of academic credentials named Blockcerts, which is currently used worldwide for validating digital certificates of competence compliant with the Open Badges standard. We study the certification steps that are performed by the Blockcerts protocol to validate a certificate, and find that they are vulnerable to a certain type of impersonation attacks. More in detail, authentication of the issuing institution is performed by retrieving an unauthenticated issuer profile online, and comparing some data reported there with those included in the issued certificate. We show that, by fabricating a fake issuer profile and generating a suitably altered certificate, an attacker is able to impersonate a legitimate issuer and can produce certificates that cannot be distinguished from originals by the Blockcerts validation procedure. We also propose some possible countermeasures against an attack of this type, which require the use of a classic public key infrastructure or a decentralized identity system integrated with the Blockcerts protocol.

Open access
2 source records
cs.CR
Cryptography and Data Security
Blockchain Technology Applications and Security
Original source
Oct 10, 2019·Proceedings of the ACM on Programming Languages
100 cites
Safer smart contract programming with Scilla

Ilya Sergey, Vaivaswatha Nagaraj, Jacob Johannsen, Amrit Kumar · 6 authors

The rise of programmable open distributed consensus platforms based on the blockchain technology has aroused a lot of interest in replicated stateful computations, aka smart contracts. As blockchains are used predominantly in financial applications, smart contracts frequently manage millions of dollars worth of virtual coins. Since smart contracts cannot be updated once deployed, the ability to reason about their correctness becomes a critical task. Yet, the de facto implementation standard, pioneered by the Ethereum platform, dictates smart contracts to be deployed in a low-level language, which renders independent audit and formal verification of deployed code infeasible in practice. We report an ongoing experiment held with an industrial blockchain vendor on designing, evaluating, and deploying Scilla, a new programming language for safe smart contracts. Scilla is positioned as an intermediate-level language, suitable to serve as a compilation target and also as an independent programming framework. Taking System F as a foundational calculus, Scilla offers strong safety guarantees by means of type soundness. It provides a clean separation between pure computational, state-manipulating, and communication aspects of smart contracts, avoiding many known pitfalls due to execution in a byzantine environment. We describe the motivation, design principles, and semantics of Scilla, and we report on Scilla use cases provided by the developer community. Finally, we present a framework for lightweight verification of Scilla programs, and showcase it with two domain-specific analyses on a suite of real-world use cases.

Open access
Security and Verification in Computing
Distributed systems and fault tolerance
Logic, programming, and type systems
Original source
Oct 6, 2019·arXiv (Cornell University)
11 cites
GasFuzz: Generating High Gas Consumption Inputs to Avoid Out-of-Gas Vulnerability.

Fuchen Ma, Ying Fu, Meng Ren, Wanting Sun · 8 authors

The out-of-gas error occurs when smart contract programs are provided with inputs that cause excessive gas consumption, and would be easily exploited to make the DoS attack. Multiple approaches have been proposed to estimate the gas limit of a function in smart contracts to avoid such error. However, under estimation often happens when the contract is complicated. In this work, we propose V-Gas, which could automatically generate inputs that maximizes the gas cost and reduce the under estimation cases. V-Gas is designed based on feedback-directed mutational fuzz testing. First, V-Gas builds the gas weighted control flow graph (CFG) of functions in smart contracts. Then, V-Gas develops gas consumption guided selection and mutation strategies to generate the input that maximize the gas consumption. For evaluation, we implement V-Gas based on js-evm, a widely used ethereum virtual machine written in javascript, and conduct experiments on 736 real-world transactions recorded on Ethereum. 44.02\% of the transactions would have out-of-gas errors under the estimation results given by solc, means that the recorded real gas consumption for those recorded transactions is larger than the gas limit value estimated by solc. While V-Gas could reduce the under estimation ratio to 13.86\%. Furthermore, V-Gas has exposed 25 previously unknown out-of-gas vulnerabilities in those widely-used smart contracts, 5 of which have been assigned unique CVE identifiers in the US National Vulnerability Database.

Open access
Blockchain Technology Applications and Security
Security and Verification in Computing
Smart Grid Security and Resilience
Original source
Oct 6, 2019·ACM Transactions on Internet Technology
16 cites
V-Gas: Generating High Gas Consumption Inputs to Avoid Out-of-Gas Vulnerability

Fuchen Ma, Ying Fu, Meng Ren, Wanting Sun · 8 authors

Out-of-gas errors occur when smart contract programs are provided with inputs that cause excessive gas consumption and which will be easily exploited to perform Denial-of-Service attacks. Various approaches have been proposed to estimate the gas limit of a function in smart contracts to avoid such error. However, underestimation often occurs when the contract is complex In this work, we propose V-Gas, which automatically generates inputs that maximize the gas cost and reduce underestimation. V-Gas is designed based on static analysis and feedback-directed mutational fuzz testing. First, V-Gas builds the gas weighted control flow graph of functions in smart contracts. Then, V-Gas develops gas consumption guided selection and mutation strategies to generate the input that maximize the gas consumption. For evaluation, we implement V-Gas based on js-evm, a widely used Ethereum virtual machine written in Javascript, and conduct experiments on 736 real-world transactions recorded on Ethereum. A total of 44.02% of the transactions would have out-of-gas errors based on the estimation results given by solc, meaning that the recorded real gas consumption for those transactions is larger than the gas limit estimated by solc. In comparison, V-Gas could reduce the underestimation ratio to 13.86%. To evaluate the performance of feedback-directed engine in V-Gas, we implemented other directed fuzzing engines and compared their performance with that of V-Gas. The results showed that V-Gas generates the same or higher gas estimation value on 97.8% of the transactions with less time, usually within 5 minutes. Furthermore, V-Gas has exposed 25 previously unknown out-of-gas vulnerabilities in widely used smart contracts, 6 of which have been assigned unique CVE identifiers in the U.S. National Vulnerability Database.

Open access
3 source records
cs.CR
Security and Verification in Computing
Network Security and Intrusion Detection
Original source
Oct 1, 2019·arXiv
37 cites
MPro: Combining Static and Symbolic Analysis for Scalable Testing of Smart Contract

William Zhang, Sebastian Banescu, Leonardo Pasos, Steven Stewart · 5 authors

Smart contracts are executable programs that enable the building of a programmable trust mechanism between multiple entities without the need of a trusted third-party. At the time of this writing, there were over 10 million smart contracts deployed on the Ethereum networks and this number continues to grow at a rapid pace. Smart contracts are often written in a Turing-complete programming language called Solidity, which is not easy to audit for subtle errors. Further, since smart contracts are immutable, errors have led to attacks resulting in losses of cryptocurrency worth 100s of millions of USD and reputational damage. Unfortunately, manual security analyses do not scale with size and number of smart contracts. Automated and scalable mechanisms are essential if smart contracts are to gain mainstream acceptance. Researchers have developed several security scanners in the past couple of years. However, many of these analyzer either do not scale well, or if they do, produce many false positives. This issue is exacerbated when bugs are triggered only after a series of interactions with the functions of the contract-under-test. A depth-n vulnerability, refers to a vulnerability that requires invoking a specific sequence of n functions to trigger. Depth-n vulnerabilities are time-consuming to detect by existing automated analyzers, because of the combinatorial explosion of sequences of functions that could be executed on smart contracts. In this paper, we present a technique to analyze depth-n vulnerabilities in an efficient and scalable way by combining symbolic execution and data dependency analysis. A significant advantage of combining symbolic with static analysis is that it scales much better than symbolic alone and does not have the problem of false positive that static analysis tools typically have. We have implemented our technique in a tool called MPro, a scalable and automated smart contract analyzer based on the existing symbolic analysis tool Mythril-Classic and the static analysis tool Slither. We analyzed 100 randomly chosen smart contracts on MPro and our evaluation shows that MPro is about n-times faster than Mythril-Classic for detecting depth-n vulnerabilities, while preserving all the detection capabilities of Mythril-Classic.

Open access
2 source records
Security and Verification in Computing
Advanced Malware Detection Techniques
Adversarial Robustness in Machine Learning
Original source
Oct 1, 2019·Proceedings of the ACM on Programming Languages
85 cites
Detecting nondeterministic payment bugs in Ethereum smart contracts

Shuai Wang, Chengyu Zhang, Zhendong Su

The term “smart contracts” has become ubiquitous to describe an enormous number of programs uploaded to the popular Ethereum blockchain system. Despite rapid growth of the smart contract ecosystem, errors and exploitations have been constantly reported from online contract systems, which has put financial stability at risk with losses totaling millions of US dollars. Most existing research focuses on pinpointing specific types of vulnerabilities using known patterns. However, due to the lack of awareness of the inherent nondeterminism in the Ethereum blockchain system and how it affects the funds transfer of smart contracts, there can be unknown vulnerabilities that may be exploited by attackers to access numerous online smart contracts.
\n
\nIn this paper, we introduce a methodical approach to understanding the inherent nondeterminism in the Ethereum blockchain system and its (unwanted) influence on contract payments. We show that our new focus on nondeterminism-related smart contract payment bugs captures the root causes of many common vulnerabilities without relying on any known patterns and also encompasses recently disclosed issues that are not handled by existing research. To do so, we introduce techniques to systematically model components in the contract execution context and to expose various nondeterministic factors that are not yet fully understood. We further study how these nondeterministic factors impact contract funds transfer using information flow tracking. The technical challenge of detecting nondeterministic payments lies in discovering the contract global variables subtly affected by read-write hazards because of unpredictable transaction scheduling and external callee behavior. We show how to augment and instrument a contract program into a representation that simulates the execution of a large subset of the contract behavior. The instrumented code is then analyzed to flag nondeterministic global variables using off-the-shelf model checkers.
\n
\nWe implement the proposed techniques as a practical tool named NPChecker (Nondeterministic Payment Checker) and evaluate it on 30K online contracts (3,075 distinct) collected from the Ethereum mainnet. NPChecker has successfully detected nondeterministic payments in 1,111 online contracts with reasonable cost. Further investigation reports high precision of NPChecker (only four false positives in a manual study of 50 contracts). We also show that NPChecker unveils contracts vulnerable to recently-disclosed attack vectors. NPChecker can identify all six new vulnerabilities or variants of common smart contract vulnerabilities that are missed by existing research relying on a “contract vulnerability checklist.”

Open access
2 source records
Blockchain Technology Applications and Security
Spam and Phishing Detection
Security and Verification in Computing
Original source
Sep 23, 2019·arXiv (Cornell University)
20 cites
IBFT 2.0: A Safe and Live Variation of the IBFT Blockchain Consensus Protocol for Eventually Synchronous Networks

Roberto Saltini, David Hyland-Wood

In this work, we present IBFT 2.0 (Istanbul BFT 2.0), which is a Proof-of-Authority (PoA) Byzantine-fault-tolerant (BFT) blockchain consensus protocols that (i) ensures immediate finality, (ii) is robust in an eventually synchronous network model and (iii) features a dynamic validator set. IBFT 2.0, as the name suggests, builds upon the IBFT blockchain consensus protocol retaining all of the original features while addressing the safety and liveness limitations described in one of our previous works. In this paper, we present a high-level description of the IBFT 2.0 protocol and related robustness proof. Formal specification of the protocol and related formal proofs will be subject of a separate body of work. We also envision a separate work that will provide detailed implementation specifications for IBFT 2.0.

Open access
2 source records
cs.DC
Distributed systems and fault tolerance
Blockchain Technology Applications and Security
Original source
Sep 16, 2019·arXiv
9 cites
Broken Metre: Attacking Resource Metering in EVM

Daniel Pérez, Benjamin Livshits

Blockchain systems, such as Ethereum, use an approach called "metering" to assign a cost to smart contract execution, an approach which is designed to incentivise miners to operate the network and protect it against DoS attacks. In the past, the imperfections of Ethereum metering allowed several DoS attacks which were countered through modification of the metering mechanism. This paper presents a new DoS attack on Ethereum which systematically exploits its metering mechanism. We first replay and analyse several months of transactions, during which we discover a number of discrepancies in the metering model, such as significant inconsistencies in the pricing of the instructions. We further demonstrate that there is very little correlation between the execution cost and the utilised resources, such as CPU and memory. Based on these observations, we present a new type of DoS attack we call Resource Exhaustion Attack, which uses these imperfections to generate low-throughput contracts. To do this, we design a genetic algorithm that generates contracts with a throughput on average 200 times slower than typical contracts. We then show that all major Ethereum client implementations are vulnerable and, if running on commodity hardware, would be unable to stay in sync with the network when under attack. We argue that such an attack could be financially attractive not only for Ethereum competitors and speculators, but also for Ethereum miners. Finally, we discuss short-term and potential long-term fixes against such attacks. Our attack has been responsibly disclosed to the Ethereum Foundation and awarded a bug bounty reward of 5,000 USD.

Open access
2 source records
cs.CR
Blockchain Technology Applications and Security
Security and Verification in Computing
Original source
Sep 14, 2019·IEEE Transactions on Dependable and Secure Computing
71 cites
Oracle-Supported Dynamic Exploit Generation for Smart Contracts

Haijun Wang, Ye Liu, Yi Li, Shang‐Wei Lin · 7 authors

Despite the high stakes involved in smart contracts, they are often developed in an undisciplined manner, leaving the security and reliability of blockchain transactions at risk. In this article, we introduce ContraMaster—an oracle-supported dynamic exploit generation framework for smart contracts. Existing approaches mutate only single transactions; ContraMaster exceeds these by mutating the transaction sequences. ContraMaster uses data-flow, control-flow, and the dynamic contract state to guide its mutations. It then monitors the executions of target contract programs, and validates the results against a general-purpose semantic test oracle to discover vulnerabilities. Being a dynamic technique, it guarantees that each discovered vulnerability is a violation of the test oracle and is able to generate the attack script to exploit this vulnerability. In contrast to rule-based approaches, ContraMaster has not shown any false positives, and it easily generalizes to unknown types of vulnerabilities (e.g., logic errors). We evaluate ContraMaster on 218 vulnerable smart contracts. The experimental results confirm its practical applicability and advantages over the state-of-the-art techniques, and also reveal three new types of attacks.

Open access
3 source records
Blockchain Technology Applications and Security
Advanced Malware Detection Techniques
Security and Verification in Computing
Original source
Sep 3, 2019·arXiv
123 cites
DECO: Liberating Web Data Using Decentralized Oracles for TLS

Fan Zhang, Deepak Maram, Harjasleen Malvai, Steven Goldfeder · 5 authors

Thanks to the widespread deployment of TLS, users can access private data over channels with end-to-end confidentiality and integrity. What they cannot do, however, is prove to third parties the {\em provenance} of such data, i.e., that it genuinely came from a particular website. Existing approaches either introduce undesirable trust assumptions or require server-side modifications. As a result, the value of users' private data is locked up in its point of origin. Users cannot export their data with preserved integrity to other applications without help and permission from the current data holder. We propose DECO (short for \underline{dec}entralized \underline{o}racle) to address the above problems. DECO allows users to prove that a piece of data accessed via TLS came from a particular website and optionally prove statements about such data in zero-knowledge, keeping the data itself secret. DECO is the first such system that works without trusted hardware or server-side modifications. DECO can liberate data from centralized web-service silos, making it accessible to a rich spectrum of applications. To demonstrate the power of DECO, we implement three applications that are hard to achieve without it: a private financial instrument using smart contracts, converting legacy credentials to anonymous credentials, and verifiable claims against price discrimination.

Open access
2 source records
cs.CR
Cryptography and Data Security
Security and Verification in Computing
Original source
Aug 29, 2019·arXiv (Cornell University)
3 cites
StairDag: Cross-DAG Validation For Scalable BFT Consensus

Quan Nguyen, André Cronje, Michael Kong, Alex Kampa · 5 authors

This paper introduces a new consensus protocol, so-called \emph{\stair}, for fast consensus in DAG-based trustless system. In \stair, we propose a new approach to creating local block DAG, namely \emph{x-DAG} (cross-DAG), on each node. \emph{\stair} protocol is based on our Proof-of-Stake StakeDag framework \cite{stakedag} that distinguishes participants into users and validators by their stake. Both users and validators can create and validate event blocks. Unlike StakeDag's DAG, x-DAG ensures that each new block has to have parent blocks from both Users and Validators to achieve more safety and liveness. Our protocol leverages a pool of validators to expose more validating power to new blocks for faster consensus in a leaderless asynchronous system. Further, our framework allows participants to join as observers / monitors, who can retrieve DAG for post-validation, but do not participate in onchain validation.

Open access
2 source records
cs.CR
cs.DC
Distributed systems and fault tolerance
Original source
Aug 29, 2019·arXiv (Cornell University)
140 cites
VERISMART: A Highly Precise Safety Verifier for Ethereum Smart Contracts

Sunbeom So, Myungho Lee, Jisu Park, Heejo Lee · 5 authors

We present VERISMART, a highly precise verifier for ensuring arithmetic safety of Ethereum smart contracts. Writing safe smart contracts without unintended behavior is critically important because smart contracts are immutable and even a single flaw can cause huge financial damage. In particular, ensuring that arithmetic operations are safe is one of the most important and common security concerns of Ethereum smart contracts nowadays. In response, several safety analyzers have been proposed over the past few years, but state-of-the-art is still unsatisfactory; no existing tools achieve high precision and recall at the same time, inherently limited to producing annoying false alarms or missing critical bugs. By contrast, VERISMART aims for an uncompromising analyzer that performs exhaustive verification without compromising precision or scalability, thereby greatly reducing the burden of manually checking undiscovered or incorrectly-reported issues. To achieve this goal, we present a new domain-specific algorithm for verifying smart contracts, which is able to automatically discover and leverage transaction invariants that are essential for precisely analyzing smart contracts. Evaluation with real-world smart contracts shows that VERISMART can detect all arithmetic bugs with a negligible number of false alarms, far outperforming existing analyzers.

Open access
3 source records
Security and Verification in Computing
Blockchain Technology Applications and Security
Advanced Malware Detection Techniques
Original source
Aug 22, 2019·arXiv (Cornell University)
91 cites
Security Analysis Methods on Ethereum Smart Contract Vulnerabilities: A Survey

Purathani Praitheeshan, Lei Pan, Jiangshan Yu, Joseph K. Liu · 5 authors

Smart contracts are software programs featuring both traditional applications\nand distributed data storage on blockchains. Ethereum is a prominent blockchain\nplatform with the support of smart contracts. The smart contracts act as\nautonomous agents in critical decentralized applications and hold a significant\namount of cryptocurrency to perform trusted transactions and agreements.\nMillions of dollars as part of the assets held by the smart contracts were\nstolen or frozen through the notorious attacks just between 2016 and 2018, such\nas the DAO attack, Parity Multi-Sig Wallet attack, and the integer\nunderflow/overflow attacks. These attacks were caused by a combination of\ntechnical flaws in designing and implementing software codes. However, many\nmore vulnerabilities of less severity are to be discovered because of the\nscripting natures of the Solidity language and the non-updateable feature of\nblockchains. Hence, we surveyed 16 security vulnerabilities in smart contract\nprograms, and some vulnerabilities do not have a proper solution. This survey\naims to identify the key vulnerabilities in smart contracts on Ethereum in the\nperspectives of their internal mechanisms and software security\nvulnerabilities. By correlating 16 Ethereum vulnerabilities and 19 software\nsecurity issues, we predict that many attacks are yet to be exploited. And we\nhave explored many software tools to detect the security vulnerabilities of\nsmart contracts in terms of static analysis, dynamic analysis, and formal\nverification. This survey presents the security problems in smart contracts\ntogether with the available analysis tools and the detection methods. We also\ninvestigated the limitations of the tools or analysis methods with respect to\nthe identified security vulnerabilities of the smart contracts.\n

Open access
2 source records
Blockchain Technology Applications and Security
Security and Verification in Computing
Advanced Malware Detection Techniques
Original source
Aug 1, 2019·CLEI electronic journal
1 cites
Set-Based Models for Cryptocurrency Software

Gustavo Betarte, Maximiliano Cristiá, Carlos Luna, Adrián Silveira · 5 authors

Emin Gün Sirer once said: It's clear that writing a robust, secure smart contract requires extreme amounts of diligence. It's more similar to writing code for a nuclear power reactor, than to writing loose web code [...] Yet the current Solidity language and underlying EVM seems designed more for the latter. Formal methods (FM) are mathematics-based software development methods aimed at producing "code for a nuclear power reactor". That is, due application of FM can produce bug-free, zero-defect, correct-by-construction, guaranteed, certified software. However, the software industry seldom use FM. One of the main reasons for such a situation is that there exists the perception (which might well be a fact) that FM increase software costs. On the other hand, FM can be partially applied thus producing high-quality software, although not necessarily bug-free. In this paper we outline some FM related techniques whose application the cryptocurrency community should take into consideration because they could bridge the gap between "loose web code" and "code for a nuclear power reactor".

Open access
2 source records
cs.SE
Advanced Malware Detection Techniques
Formal Methods in Verification
Original source
Jul 31, 2019·HAL (Le Centre pour la Communication Scientifique Directe)
0 cites
Distributed Ledger Register: From Safe to Atomic

Emmanuelle Anceaume, Marina Papatriantafilou, Maria Potop-Butucaru, Philippas Tsigas

This paper continues the recent line of academic effort dedicated to formalizing distributed ledgers. This work is the first one to propose a specification of distributed ledger register that matches the Lamport hierarchy from safe to atomic. Moreover, we propose implementations of distributed ledger registers with safe, regular and atomic guaranties in a model of communication specific to distributed ledgers technology that we also formalize. Then, we propose an implementation of a distributed ledger register that satisfies the atomic specification and the k-consistency property that characterises the permissionless distributed blockchains such as Bitcoin and Ethereum.

Open access
Blockchain Technology Applications and Security
Cryptography and Data Security
Security and Verification in Computing
Original source
Jul 24, 2019·Istanbul Şehir University Institutional Repository (Istanbul Şehir University)
4 cites
Secure hardware cryptocurrency wallet within common criteria framework

Yasir BULUT

Bitcoin paper, published under a pseudonym Satoshi Nakamoto, opened a new era; cryptocurrencies, blockchain and distributed ledger technologies that are aiming distributed trust model. Even if there has been an ongoing extensive discussion both on the origin and the future about these developing technologies, number of products, studies and projects are increasing day by day. Among these the most crucial one is crypto wallets since the distributed trust and privacy preserving solutions are all relies on the underlying cryptographic primitives and the corresponding cryptographic keys. Almost all the cryptocurrencies require their users individually manage their own cryptographic keys or recommend use of cryptocurrency wallets. A cryptocurrency wallet or shortly, crypto wallet, has to generate and store one or more public-private keys and corresponding addresses. These keys authenticate corresponding transactions, hence any adversary who gains access to a wallet may seize all the assets secured with them. Therefore, cryptocurrency wallet solutions and products should be carefully analyzed and better to be certified if possible from the very beginning.
\nIn this thesis, we mainly focus on to what extend and how a cryptocurrency wallet’s security analysis should be pursued. In order to formally portray the analysis framework, we propose to follow the Common Criteria (CC) Evaluation framework. CC evaluation framework is a formal evaluation methodology. For this purpose, assumptions, risks, threatsandsecurityvulnerabilitiesofthewalletswillbedefined. Also,objectivesshowing howthesethreatswillbecounteredinsidethewalletandwhatkindofmeasuresshouldbe taken by the environment and users will be detailed. In order to understand the security requirements, blockchain technology and Bitcoin which is the leading cryptocurrency will be explained and cryptocurrency wallets will be classified. In addition, we are going to propose a secure hardware wallet design in terms of physical and logical requirements. Then, we will compare the proposed wallet with other hardware wallets on the market. WebelievethatthisthesismaybebasicresourceforcreatingstandardizedCCdocuments such as Protection Profile(PP), Security Target(ST) etc. Furthermore, this study would be a brief source for cryptocurrency wallets’ design, test and analysis phases.

Open access
Advanced Authentication Protocols Security
Security and Verification in Computing
Blockchain Technology Applications and Security
Original source
Jul 11, 2019·Formal Methods. FM 2019 International Workshops. Lecture Notes in Computer Science, vol 12232, pp. 362-367
24 cites
Towards a Verified Model of the Algorand Consensus Protocol in Coq

Musab A. Alturki, Jing Chen, Victor Luchangco, Brandon Moore · 7 authors

The Algorand blockchain is a secure and decentralized public ledger based on pure proof of stake rather than proof of work. At its core it is a novel consensus protocol with exactly one block certified in each round: that is, the protocol guarantees that the blockchain does not fork. In this paper, we report on our effort to model and formally verify the Algorand consensus protocol in the Coq proof assistant. Similar to previous consensus protocol verification efforts, we model the protocol as a state transition system and reason over reachable global states. However, in contrast to previous work, our model explicitly incorporates timing issues (e.g., timeouts and network delays) and adversarial actions, reflecting a more realistic environment faced by a public blockchain. Thus far, we have proved asynchronous safety of the protocol: two different blocks cannot be certified in the same round, even when the adversary has complete control of message delivery in the network. We believe that our model is sufficiently general and other relevant properties of the protocol such as liveness can be proved for the same model.

Open access
2 source records
cs.CR
cs.DC
Blockchain Technology Applications and Security
Original source
Jul 9, 2019·Lecture notes in computer science
79 cites
solc-verify: A Modular Verifier for Solidity Smart Contracts

Ákos Hajdu, Dejan Jovanović

We present solc-verify, a source-level verification tool for Ethereum smart contracts. Solc-verify takes smart contracts written in Solidity and discharges verification conditions using modular program analysis and SMT solvers. Built on top of the Solidity compiler, solc-verify reasons at the level of the contract source code, as opposed to the more common approaches that operate at the level of Ethereum bytecode. This enables solc-verify to effectively reason about high-level contract properties while modeling low-level language semantics precisely. The contract properties, such as contract invariants, loop invariants, and function pre- and post-conditions, can be provided as annotations in the code by the developer. This enables automated, yet user-friendly formal verification for smart contracts. We demonstrate solc-verify by examining real-world examples where our tool can effectively find bugs and prove correctness of non-trivial properties with minimal user effort.

Open access
2 source records
Logic, programming, and type systems
Security and Verification in Computing
Blockchain Technology Applications and Security
Original source