• English
    • svenska
  • English 
    • English
    • svenska
  • Login
View Item 
  •   Home
  • Faculty of Science / Naturvetenskapliga fakulteten
  • Department of Computer Science and Engineering / Institutionen för data- och informationsteknik
  • Research Reports in Software Engineering and Management
  • View Item
  •   Home
  • Faculty of Science / Naturvetenskapliga fakulteten
  • Department of Computer Science and Engineering / Institutionen för data- och informationsteknik
  • Research Reports in Software Engineering and Management
  • View Item
JavaScript is disabled for your browser. Some features of this site may not work without it.

Tainting in Smart Contracts: Combining Static and Runtime Verification

Abstract
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 offchain 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.
Publisher
Lecture Notes in Computer Science book series (LNCS,volume 13498)
URI
https://hdl.handle.net/2077/74145
Collections
  • Research Reports in Software Engineering and Management
View/Open
Conference paper (589.0Kb)
Date
2022
Author
Azzopardi, Shaun
Ellul, Joshua
Falzon, Ryan
Pace, Gordon J.
Keywords
taint analysis
runtime verification
static analysis
Publication type
conference paper, peer reviewed
Language
eng
Metadata
Show full item record

DSpace software copyright © 2002-2016  DuraSpace
Contact Us | Send Feedback
Theme by 
Atmire NV
 

 

Browse

All of DSpaceCommunities & CollectionsBy Issue DateAuthorsTitlesSubjectsThis CollectionBy Issue DateAuthorsTitlesSubjects

My Account

LoginRegister

DSpace software copyright © 2002-2016  DuraSpace
Contact Us | Send Feedback
Theme by 
Atmire NV