Abstract
Blockchain-based platforms, such as Ethereum, allow transactions in blocks to call user-defined scripts named smart contracts. In the blockchain network, after being generated by a miner, a block will be validated many times by the peers who accept it. Hence by enabling concurrency on smart contracts, especially validation, we can improve the efficiency and the throughput of those platforms.
By introducing multiversion transaction ordering, this paper presents a concurrent scheme called MVTO to run smart contracts concurrently. First, the miners are able to use any concurrency control technique to discover a conflict-serializable schedule. Then, validators use MVTO to verify the block by replaying this schedule concurrently and deterministically. The evaluation shows that this mechanism achieves approximately 2.5x speedup in the block validation using a thread pool with 3 threads.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
A serial schedule is a schedule where transaction are executed serially and do not interleave each other.
- 2.
The update action can be divided into a read and a write action.
- 3.
This transaction order is also the serial order in the mining phase.
References
Wood, G.: Ethereum: a secure decentralised generalised transaction ledger. Ethereum Project Yellow Paper, vol. 151 (2014)
Ethereum: Solidity documentation. http://solidity.readthedocs.io/en/develop
Garcia-Molina, H., Ullman, J.D., Widom, J.: Database System Implementation, pp. 883–940. Prentice-Hall, Upper Saddle River (2000)
Dickerson, T.D., Gazzillo, P., Herlihy, M., Koskinen, E.: Adding concurrency to smart contracts. In: Proceedings of the ACM Symposium on Principles of Distributed Computing, PODC 2017, Washington, DC, USA, 25–27 July 2017, pp. 303–312 (2017)
Sergey, I., Hobor, A.: A concurrent perspective on smart contracts. In: FC 2017 International Workshops on Financial Cryptography and Data Security, WAHC, BITCOIN, VOTING, WTSC, and TA, Sliema, Malta, 7 April 2017, pp. 478–493 (2017). Revised Selected Papers
Bocchino, R., Adve, V., Adve, S., Snir, M.: Parallel programming must be deterministic by default. In: Proceedings of the First USENIX Conference on Hot Topics in Parallelism, p. 4 (2009)
Poon, J., Buterin, V.: Plasma: scalable autonomous smart contracts. White Paper (2017)
Wood, G.: Polkadot: vision for a heterogeneous multi-chain framework. White Paper (2016)
EOS: EOS.IO technical white paper. https://eos.io/
AELF: a multi-chain parallel computing blockchain framework. https://aelf.io/
Herlihy, M., Luchangco, V., Moir, M., Scherer III., W.N.: Software transactional memory for dynamic-sized data structures. In: Proceedings of the Twenty-Second ACM Symposium on Principles of Distributed Computing, PODC 2003, Boston, Massachusetts, USA, 13–16 July 2003, pp. 92–101 (2003)
Zhang, D., Dechev, D.: Lock-free transactions without rollbacks for linked data structures. In: Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2016, Asilomar State Beach/Pacific Grove, CA, USA, 11–13 July 2016, pp. 325–336 (2016)
Ghosh, A., Chaki, R., Chaki, N.: A new concurrency control mechanism for multi-threaded environment using transactional memory. J. Supercomput. 71(11), 4095–4115 (2015)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Zhang, A., Zhang, K. (2018). Enabling Concurrency on Smart Contracts Using Multiversion Ordering. In: Cai, Y., Ishikawa, Y., Xu, J. (eds) Web and Big Data. APWeb-WAIM 2018. Lecture Notes in Computer Science(), vol 10988. Springer, Cham. https://doi.org/10.1007/978-3-319-96893-3_32
Download citation
DOI: https://doi.org/10.1007/978-3-319-96893-3_32
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-96892-6
Online ISBN: 978-3-319-96893-3
eBook Packages: Computer ScienceComputer Science (R0)