Enforcing Determinism of Java']Java Smart Contracts

被引:8
作者
Spoto, Fausto [1 ]
机构
[1] Univ Verona, Dipartimento Informat, Verona, Italy
来源
FINANCIAL CRYPTOGRAPHY AND DATA SECURITY, FC 2020 | 2020年 / 12063卷
关键词
D O I
10.1007/978-3-030-54455-3_40
中图分类号
F8 [财政、金融];
学科分类号
0202 ;
摘要
Java is a high-level, well-known and powerful object-oriented language, with a large support library and a comfortable toolbelt. Hence, it has been proposed for writing smart contracts in blockchain. However, its support library is non-deterministic, which is a blocking issue for its application to smart contracts. This paper discusses the kind of (non-)determinism of the methods of the Java library and how a deterministic fragment of that library can be specified. It shows that some relevant parts are deterministic only under specific conditions on run-time values. It concludes with the description of an instrumentation, for the Takamaka blockchain, that enforces such conditions, statically or dynamically, reporting experiments with its implementation.
引用
收藏
页码:568 / 583
页数:16
相关论文
共 15 条
[1]   Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains [J].
Androulaki, Elli ;
Barger, Artem ;
Bortnikov, Vita ;
Cachin, Christian ;
Christidis, Konstantinos ;
De Caro, Angelo ;
Enyeart, David ;
Ferris, Christopher ;
Laventman, Gennady ;
Manevich, Yacov ;
Muralidharan, Srinivasan ;
Murthy, Chet ;
Binh Nguyen ;
Sethi, Manish ;
Singh, Gari ;
Smith, Keith ;
Sorniotti, Alessandro ;
Stathakopoulou, Chrysoula ;
Vukolic, Marko ;
Cocco, Sharon Weed ;
Yellick, Jason .
EUROSYS '18: PROCEEDINGS OF THE THIRTEENTH EUROSYS CONFERENCE, 2018,
[2]  
Antonopoulos A. M., 2017, Mastering Bitcoin: Programming the Open Blockchain
[3]  
Antonopoulos A. M., 2019, Mastering Ethereum: Building Smart Contracts and DApps, V1st ed.
[4]   Stack-based access control and secure information flow [J].
Banerjee, A ;
Naumann, DA .
JOURNAL OF FUNCTIONAL PROGRAMMING, 2005, 15 :131-177
[5]   A certified lightweight non-interference Java']Java bytecode verifier [J].
Barthe, Gilles ;
Pichardie, David ;
Rezk, Tamara .
MATHEMATICAL STRUCTURES IN COMPUTER SCIENCE, 2013, 23 (05) :1032-1081
[6]  
Chatterjee K, 2019, 2019 IEEE INTERNATIONAL CONFERENCE ON BLOCKCHAIN AND CRYPTOCURRENCY (ICBC), P403, DOI [10.1109/bloc.2019.8751326, 10.1109/BLOC.2019.8751326]
[7]  
Cormen T. H., 2009, Introduction To Algorithms
[8]  
Iyer K., 2018, Building Games with Ethereum Smart Contracts
[9]   A BEHAVIORAL NOTION OF SUBTYPING [J].
LISKOV, BH ;
WING, JM .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1994, 16 (06) :1811-1841
[10]  
Naftalin Maurice., 2006, JAVA GENERICS COLLEC