Tainting in Smart Contracts: Combining Static and Runtime Verification

被引:1
|
作者
Azzopardi, Shaun [2 ]
Ellul, Joshua [1 ]
Falzon, Ryan [3 ]
Pace, Gordon J. [1 ]
机构
[1] Univ Malta, Msida, Malta
[2] Univ Gothenburg, Gothenburg, Sweden
[3] Hash Data, George Town, Cayman Islands
来源
基金
欧洲研究理事会;
关键词
Taint analysis; Runtime verification; Static analysis;
D O I
10.1007/978-3-031-17196-3_8
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Smart contracts exist immutably on blockchains, making their pre-deployment correctness essential. Moreover, they exist openly on blockchains-open for interaction with any other smart contract and off-chain entity. Interaction, for instance with off-chain oracles, can affect the state of the smart contract, and correctness of these smart contracts may depend on the trustworthiness of the data they manipulate or events they generate which, in turn, would depend on which parties or what information contributed to them. In this paper, we develop and present dynamic taint analysis techniques to enable data tainting in smart contracts. We propose an extension of Solidity that enables labelling inputs of interaction endpoints with dynamic data-carrying labels that capture actionable information about the sender. These labels can then be propagated dynamically across transactions to transitively dependent data. Specifications can then refer to such taints, for instance for ensuring that certain data could not have been influenced through interaction by a certain party. We further allow the use of taints as part of the language, affecting the control flow of the smart contract. To manage the overheads of such runtime tainting we develop sound static analysis-based techniques to prune away unnecessary instrumentation. We give a case study as a proof-of-concept, and measure the overheads associated with our additions before and after optimisation.
引用
收藏
页码:143 / 161
页数:19
相关论文
共 50 条
  • [41] Automatic construction and verification algorithm for smart contracts based on formal verification
    Xie, Rui
    Zhong, Xuejiao
    Chen, Xin
    Xu, Shaohui
    Yu, Haiyang
    Guo, Xinyuan
    [J]. AIP Advances, 2024, 14 (11)
  • [42] A Survey of Verification, Validation and Testing Solutions for Smart Contracts
    Benabbou, Chaimaa
    Gurcan, Onder
    [J]. 2021 THIRD INTERNATIONAL CONFERENCE ON BLOCKCHAIN COMPUTING AND APPLICATIONS (BCCA), 2021, : 57 - 64
  • [43] Survey of Formal Verification Methods for Smart Contracts on Blockchain
    Murray, Yvonne
    Anisi, David A.
    [J]. 2019 10TH IFIP INTERNATIONAL CONFERENCE ON NEW TECHNOLOGIES, MOBILITY AND SECURITY (NTMS), 2019,
  • [44] Formal process virtual machine for smart contracts verification
    Yang, Zheng
    Lei, Hang
    [J]. International Journal of Performability Engineering, 2018, 14 (08) : 1726 - 1734
  • [45] Time Constraint Patterns of Smart Contracts and Their Formal Verification
    Zhao, Ying-Qi
    Zhu, Xue-Yang
    Li, Guang-Yuan
    Bao, Yu-Long
    [J]. Ruan Jian Xue Bao/Journal of Software, 2022, 33 (08): : 2875 - 2895
  • [46] EthVer: Formal Verification of Randomized Ethereum Smart Contracts
    Mazurek, Lukasz
    [J]. FINANCIAL CRYPTOGRAPHY AND DATA SECURITY, FC 2021, 2021, 12676 : 364 - 380
  • [47] Formal Verification of Smart Contracts from the Perspective of Concurrency
    Qu, Meixun
    Huang, Xin
    Chen, Xu
    Wang, Yi
    Ma, Xiaofeng
    Liu, Dawei
    [J]. SMART BLOCKCHAIN, 2018, 11373 : 32 - 43
  • [48] Practical Verification of Smart Contracts using Memory Splitting
    Grossman, Shelly
    Toman, John
    Bakst, Alexander
    Arora, Sameer
    Sagiv, Mooly
    Nandi, Chandrakana
    [J]. Proceedings of the ACM on Programming Languages, 2024, 8 (OOPSLA2)
  • [49] Modeling and verification of smart contracts with Abstract State Machines
    Braghin, Chiara
    Riccobene, Elvinia
    Valentini, Simone
    [J]. 39TH ANNUAL ACM SYMPOSIUM ON APPLIED COMPUTING, SAC 2024, 2024, : 1425 - 1432
  • [50] Formal Verification of Smart Contracts using Interface Automata
    Madl, Gabor
    Bathen, Luis A. D.
    Flores, German H.
    Jadav, Divyesh
    [J]. 2019 IEEE INTERNATIONAL CONFERENCE ON BLOCKCHAIN (BLOCKCHAIN 2019), 2019, : 556 - 563