2,648 research outputs found
Efficient Concurrent Execution of Smart Contracts in Blockchains using Object-based Transactional Memory
This paper proposes an efficient framework to execute Smart Contract
Transactions (SCTs) concurrently based on object semantics, using optimistic
Single-Version Object-based Software Transactional Memory Systems (SVOSTMs) and
Multi-Version OSTMs (MVOSTMs). In our framework, a multi-threaded miner
constructs a Block Graph (BG), capturing the object-conflicts relations between
SCTs, and stores it in the block. Later, validators re-execute the same SCTs
concurrently and deterministically relying on this BG.
A malicious miner can modify the BG to harm the blockchain, e.g., to cause
double-spending. To identify malicious miners, we propose Smart Multi-threaded
Validator (SMV). Experimental analysis shows that the proposed multi-threaded
miner and validator achieve significant performance gains over state-of-the-art
SCT execution framework.Comment: 49 pages, 26 figures, 11 table
A Concurrent Perspective on Smart Contracts
In this paper, we explore remarkable similarities between multi-transactional
behaviors of smart contracts in cryptocurrencies such as Ethereum and classical
problems of shared-memory concurrency. We examine two real-world examples from
the Ethereum blockchain and analyzing how they are vulnerable to bugs that are
closely reminiscent to those that often occur in traditional concurrent
programs. We then elaborate on the relation between observable contract
behaviors and well-studied concurrency topics, such as atomicity, interference,
synchronization, and resource ownership. The described
contracts-as-concurrent-objects analogy provides deeper understanding of
potential threats for smart contracts, indicate better engineering practices,
and enable applications of existing state-of-the-art formal verification
techniques.Comment: 15 page
- …