2017
DOI: 10.1007/978-3-319-70278-0_30
|View full text |Cite
|
Sign up to set email alerts
|

A Concurrent Perspective on Smart Contracts

Abstract: 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 … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
70
0

Year Published

2018
2018
2020
2020

Publication Types

Select...
5
2
1

Relationship

1
7

Authors

Journals

citations
Cited by 92 publications
(71 citation statements)
references
References 32 publications
0
70
0
Order By: Relevance
“…Liu et al [40] proposed to perform the fuzz testing on smart contracts by iteratively generating random but diverse transactions to detect reentrancy bugs. 1) Readability • Human readable code [34], [35] • Human readable execution [36], [37] • Re-entrancy [38], [39], [40] 2) Functional issues • Block randness [41], [42], [43] • Overcharging [44], [45] Deployment • Bytecode analysis [46], [47], [48], [49], [50], [51], [52], [53] 1) Contract correctness • Source code analysis [54], [55], [56], [57] • Machine learning based analysis [58], [59], [60] • Graph based analysis [61], [62] 2) Dynamic control flow • Path-searching [63] • Execution environment [64] Execution 1) Trustworthy oracle • Third-party involved [65] • Decentralized [66], [67] 2) Transaction-ordering dependence • Sequential execution [68] • Predefining contract [69] 3) Execution efficiency • Execution serialization [70], [71], [72] • Inspection of contract [73] Completion 1) Privacy and Security • Privacy [74],…”
Section: Recent Advances For Functional Issuesmentioning
confidence: 99%
See 1 more Smart Citation
“…Liu et al [40] proposed to perform the fuzz testing on smart contracts by iteratively generating random but diverse transactions to detect reentrancy bugs. 1) Readability • Human readable code [34], [35] • Human readable execution [36], [37] • Re-entrancy [38], [39], [40] 2) Functional issues • Block randness [41], [42], [43] • Overcharging [44], [45] Deployment • Bytecode analysis [46], [47], [48], [49], [50], [51], [52], [53] 1) Contract correctness • Source code analysis [54], [55], [56], [57] • Machine learning based analysis [58], [59], [60] • Graph based analysis [61], [62] 2) Dynamic control flow • Path-searching [63] • Execution environment [64] Execution 1) Trustworthy oracle • Third-party involved [65] • Decentralized [66], [67] 2) Transaction-ordering dependence • Sequential execution [68] • Predefining contract [69] 3) Execution efficiency • Execution serialization [70], [71], [72] • Inspection of contract [73] Completion 1) Privacy and Security • Privacy [74],…”
Section: Recent Advances For Functional Issuesmentioning
confidence: 99%
“…In this way, conflicts happened during the parallel executions can be rolled back easily. Furthermore, the work in [71] investigated smart contracts in a concurrent perspective. In particular, concurrency issues such as atomicity, interference, synchronization, and resource ownership have been well studied in this paper.…”
Section: Execution Challengesmentioning
confidence: 99%
“…For instance, prior work has highlighted how a pair of transactions, when reordered, can cause contracts to exhibit differing Ether transfers as output [22]. Similarly, susceptibility of contracts to asynchronous callbacks has been identified previously [4], [34]. However, the full generality of bugs arising from unexpected ordering of eventsi.e.…”
Section: Introductionmentioning
confidence: 95%
“…Their programming languages are Turing complete [5] and their programs are called smart contracts [6]. Concurrency is framed in the words of Sergey and Hobor, "Accounts using smart contracts in a blockchain are like threads using concurrent objects in shared memory" [7]. Herlihy endorsed this line of reasoning in a keynote address [8], exhorting concurrency researchers to "civilize" the blockchain.…”
Section: B Concurrent Smart Contractsmentioning
confidence: 99%
“…The FPV arguments in each buy include the previous mark, a hash that relates it to an interval between two sets. If a sequence occurs such as: set (5), buy (5), set (7), set (5), buy(5), a particular buy (5) can prove that it was sent during the first or the second interval the price was set to 5. Linking each buy transactions to a particular set price prevents the frontrunning attack mentioned in Section II-F.…”
Section: B Hash-mark-set Without Miner Assistancementioning
confidence: 99%