On-Chain Smart Contract Verification over Tendermint

被引:1
作者
Olivieri, Luca [1 ,2 ]
Spoto, Fausto [1 ]
Tagliaferro, Fabio [1 ]
机构
[1] Univ Verona, Dipartimento Informat, Verona, Italy
[2] Corvallis Srl, Padua, Italy
来源
FINANCIAL CRYPTOGRAPHY AND DATA SECURITY, FC 2021 | 2021年 / 12676卷
关键词
Smart contract; Software verification; Program analysis; Blockchain; Tendermint;
D O I
10.1007/978-3-662-63958-0_28
中图分类号
F8 [财政、金融];
学科分类号
0202 ;
摘要
Smart contracts are computer code that runs in blockchain and expresses the rules of an agreement among parties. A bug in their code has major consequences, such as rule violations and security attacks. Smart contracts are immutable and cannot be easily replaced to patch a bug. To overcome these problems, there exist automatic static analyzers that find bugs before smart contracts are installed in blockchain. However, this off-chain verification is optional: programmers are not forced to use it. This paper defines on-chain verification instead, that occurs inside the same blockchain nodes, when the code of smart contracts is installed. It acts as a mandatory entry filter that bans code that does not abide to the verification rules, that are consequently part of the consensus rules of the blockchain. Thus, an improvement in on-chain verification entails a consensus update of the network. This paper provides an implementation of on-chain verification for smart contracts written in the Takamaka subset of Java, running as a Tendermint application. It shows that on-chain verification works, reporting actual experiments.
引用
收藏
页码:333 / 347
页数:15
相关论文
共 15 条
  • [1] [Anonymous], 2013, ETHEREUM WHITEPAPER
  • [2] Antonopoulos A. M, 2017, MASTERING BITCOIN UN, V2nd
  • [3] Antonopoulos A.M., 2018, Mastering Ethereum: Building Smart Contracts and DApps
  • [4] A Survey of Attacks on Ethereum Smart Contracts (SoK)
    Atzei, Nicola
    Bartoletti, Massimo
    Cimoli, Tiziana
    [J]. PRINCIPLES OF SECURITY AND TRUST (POST 2017), 2017, 10204 : 164 - 186
  • [5] Algorand: A secure and efficient distributed ledger
    Chen, Jing
    Micali, Silvio
    [J]. THEORETICAL COMPUTER SCIENCE, 2019, 777 : 155 - 183
  • [6] Slither: A Static Analysis Framework For Smart Contracts
    Feist, Josselin
    Greico, Gustavo
    Groce, Alex
    [J]. 2019 IEEE/ACM 2ND INTERNATIONAL WORKSHOP ON EMERGING TRENDS IN SOFTWARE ENGINEERING FOR BLOCKCHAIN (WETSEB 2019), 2019, : 8 - 15
  • [7] Grieco Gustavo, 2020, ISSTA '20: Proceedings of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis, P557, DOI 10.1145/3395363.3404366
  • [8] Kwon J., 2014, Draft, V1
  • [9] Nakamoto Satochi., 2009, SSRN ELECT J, DOI [DOI 10.2139/SSRN.3440802, DOI 10.1007/S10838-008-9062-0]
  • [10] An exploratory study of smart contracts in the Ethereum blockchain platform
    Oliva, Gustavo A.
    Hassan, Ahmed E.
    Jiang, Zhen Ming
    [J]. EMPIRICAL SOFTWARE ENGINEERING, 2020, 25 (03) : 1864 - 1904