SmartCheck static analysis of ethereum smart contracts

Ethereum is a major blockchain-based platform for smart contracts - Turing complete programs that are executed in a decentralized network and usually manipulate digital units of value. Solidity is the most mature high-level smart contract language. Ethereum is a hostile execution environment, where...

Full description

Saved in:
Bibliographic Details
Published in:2018 IEEE ACM 1st International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB) pp. 9 - 16
Main Authors: Tikhomirov, Sergei, Voskresenskaya, Ekaterina, Ivanitskiy, Ivan, Takhaviev, Ramil, Marchenko, Evgeny, Alexandrov, Yaroslav
Format: Conference Proceeding
Language:English
Published: New York, NY, USA ACM 27.05.2018
Series:ACM Conferences
Subjects:
ISBN:9781450357265, 1450357261
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract Ethereum is a major blockchain-based platform for smart contracts - Turing complete programs that are executed in a decentralized network and usually manipulate digital units of value. Solidity is the most mature high-level smart contract language. Ethereum is a hostile execution environment, where anonymous attackers exploit bugs for immediate financial gain. Developers have a very limited ability to patch deployed contracts. Hackers steal up to tens of millions of dollars from flawed contracts, a well-known example being "The DAO", broken in June 2016. Advice on secure Ethereum programming practices is spread out across blogs, papers, and tutorials. Many sources are outdated due to a rapid pace of development in this field. Automated vulnerability detection tools, which help detect potentially problematic language constructs, are still underdeveloped in this area. We provide a comprehensive classification of code issues in Solidity and implement SmartCheck - an extensible static analysis tool that detects them1. SmartCheck translates Solidity source code into an XML-based intermediate representation and checks it against XPath patterns. We evaluated our tool on a big dataset of real-world contracts and compared the results with manual audit on three contracts. Our tool reflects the current state of knowledge on Solidity vulnerabilities and shows significant improvements over alternatives. SmartCheck has its limitations, as detection of some bugs requires more sophisticated techniques such as taint analysis or even manual audit. We believe though that a static analyzer should be an essential part of contract developers' toolbox, letting them fix simple bugs fast and allocate more effort to complex issues.
AbstractList Ethereum is a major blockchain-based platform for smart contracts - Turing complete programs that are executed in a decentralized network and usually manipulate digital units of value. Solidity is the most mature high-level smart contract language. Ethereum is a hostile execution environment, where anonymous attackers exploit bugs for immediate financial gain. Developers have a very limited ability to patch deployed contracts. Hackers steal up to tens of millions of dollars from flawed contracts, a well-known example being "The DAO", broken in June 2016. Advice on secure Ethereum programming practices is spread out across blogs, papers, and tutorials. Many sources are outdated due to a rapid pace of development in this field. Automated vulnerability detection tools, which help detect potentially problematic language constructs, are still underdeveloped in this area. We provide a comprehensive classification of code issues in Solidity and implement SmartCheck -- an extensible static analysis tool that detects them. The source code is available at https://github.com/smartdec/smartcheck. SmartCheck translates Solidity source code into an XML-based intermediate representation and checks it against XPath patterns. We evaluated our tool on a big dataset of real-world contracts and compared the results with manual audit on three contracts. Our tool reflects the current state of knowledge on Solidity vulnerabilities and shows significant improvements over alternatives. SmartCheck has its limitations, as detection of some bugs requires more sophisticated techniques such as taint analysis or even manual audit. We believe though that a static analyzer should be an essential part of contract developers' toolbox, letting them fix simple bugs fast and allocate more effort to complex issues.
Ethereum is a major blockchain-based platform for smart contracts - Turing complete programs that are executed in a decentralized network and usually manipulate digital units of value. Solidity is the most mature high-level smart contract language. Ethereum is a hostile execution environment, where anonymous attackers exploit bugs for immediate financial gain. Developers have a very limited ability to patch deployed contracts. Hackers steal up to tens of millions of dollars from flawed contracts, a well-known example being "The DAO", broken in June 2016. Advice on secure Ethereum programming practices is spread out across blogs, papers, and tutorials. Many sources are outdated due to a rapid pace of development in this field. Automated vulnerability detection tools, which help detect potentially problematic language constructs, are still underdeveloped in this area. We provide a comprehensive classification of code issues in Solidity and implement SmartCheck - an extensible static analysis tool that detects them1. SmartCheck translates Solidity source code into an XML-based intermediate representation and checks it against XPath patterns. We evaluated our tool on a big dataset of real-world contracts and compared the results with manual audit on three contracts. Our tool reflects the current state of knowledge on Solidity vulnerabilities and shows significant improvements over alternatives. SmartCheck has its limitations, as detection of some bugs requires more sophisticated techniques such as taint analysis or even manual audit. We believe though that a static analyzer should be an essential part of contract developers' toolbox, letting them fix simple bugs fast and allocate more effort to complex issues.
Author Takhaviev, Ramil
Voskresenskaya, Ekaterina
Alexandrov, Yaroslav
Ivanitskiy, Ivan
Tikhomirov, Sergei
Marchenko, Evgeny
Author_xml – sequence: 1
  givenname: Sergei
  surname: Tikhomirov
  fullname: Tikhomirov, Sergei
  email: sergey.s.tikhomirov@gmail.com
  organization: University of Luxembourg, Esch-sur-Alzette, Luxembourg
– sequence: 2
  givenname: Ekaterina
  surname: Voskresenskaya
  fullname: Voskresenskaya, Ekaterina
  email: voskresenskaya@smartdec.net
  organization: SmartDec, Moscow, Russia
– sequence: 3
  givenname: Ivan
  surname: Ivanitskiy
  fullname: Ivanitskiy, Ivan
  email: ivanitskiy@smartdec.net
  organization: SmartDec, Moscow, Russia
– sequence: 4
  givenname: Ramil
  surname: Takhaviev
  fullname: Takhaviev, Ramil
  email: tahaviev@smartdec.net
  organization: SmartDec, Moscow, Russia
– sequence: 5
  givenname: Evgeny
  surname: Marchenko
  fullname: Marchenko, Evgeny
  email: marchenko@smartdec.net
  organization: SmartDec, Moscow, Russia
– sequence: 6
  givenname: Yaroslav
  surname: Alexandrov
  fullname: Alexandrov, Yaroslav
  email: alexandrov@smartdec.net
  organization: SmartDec, Moscow, Russia
BookMark eNqNj71OxDAQhI0ACe5ITcEL0CR4vd7ELlHEn3QSBVBbtrMW4bgLSq7h7TFKKiqqb1czu5pZiZP9sGchLkFWAJpuEKwGwGomHYnCNiYLEqlRNR3_2c9EMU0fUkpVG23BnIvVy86Ph_ad4_ZCnCb_OXGxcC3e7u9e28dy8_zw1N5uSq90cygDRkUddxJjTMFbxYBGdwaZOeY5JQOEBiIkTQ2qIBVra2qWEBEp4lpczX_7fOG-xj4n-HZG55Sksno9qz7uXBiG7eRAut-ybim7kLK1-qfVhbHnhD9ZzVCf
CODEN IEEPAD
ContentType Conference Proceeding
Copyright 2018 ACM
Copyright_xml – notice: 2018 ACM
DBID 6IE
6IL
CBEJK
RIE
RIL
DOI 10.1145/3194113.3194115
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Xplore POP ALL
IEEE Xplore All Conference Proceedings
IEEE/IET Electronic Library
IEEE Proceedings Order Plans (POP All) 1998-Present
DatabaseTitleList

Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
EISBN 9781450357265
1450357261
EndPage 16
ExternalDocumentID 8445052
Genre orig-research
GroupedDBID 6IE
6IF
6IL
6IN
AAJGR
ABLEC
ACM
ADPZR
ALMA_UNASSIGNED_HOLDINGS
APO
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
GUFHI
IEGSK
OCL
RIB
RIC
RIE
RIL
AAWTH
LHSKQ
ID FETCH-LOGICAL-a247t-b3c25ded03ccfba92e1384d83eeece13ff815381c1f45732b02e4986e01c335c3
IEDL.DBID RIE
ISBN 9781450357265
1450357261
ISICitedReferencesCount 552
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000454741800002&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
IngestDate Wed Aug 27 02:58:07 EDT 2025
Wed Jan 31 06:36:01 EST 2024
Wed Jan 31 06:47:20 EST 2024
IsPeerReviewed false
IsScholarly true
Keywords static analysis
ethereum
bug detection
smart contracts
solidity
Language English
License Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Permissions@acm.org.
LinkModel DirectLink
MeetingName ICSE '18: 40th International Conference on Software Engineering
MergedId FETCHMERGED-LOGICAL-a247t-b3c25ded03ccfba92e1384d83eeece13ff815381c1f45732b02e4986e01c335c3
PageCount 8
ParticipantIDs ieee_primary_8445052
acm_books_10_1145_3194113_3194115
acm_books_10_1145_3194113_3194115_brief
PublicationCentury 2000
PublicationDate 20180527
2018-May
PublicationDateYYYYMMDD 2018-05-27
2018-05-01
PublicationDate_xml – month: 05
  year: 2018
  text: 20180527
  day: 27
PublicationDecade 2010
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
PublicationSeriesTitle ACM Conferences
PublicationTitle 2018 IEEE ACM 1st International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB)
PublicationTitleAbbrev WETSEB
PublicationYear 2018
Publisher ACM
Publisher_xml – name: ACM
SSID ssj0002684918
Score 2.6025474
Snippet Ethereum is a major blockchain-based platform for smart contracts - Turing complete programs that are executed in a decentralized network and usually...
SourceID ieee
acm
SourceType Publisher
StartPage 9
SubjectTerms bug detection
Computer bugs
Computer hacking
Contracts
Ethereum
smart contracts
Solidity
Static analysis
Subtitle static analysis of ethereum smart contracts
Title SmartCheck
URI https://ieeexplore.ieee.org/document/8445052
WOSCitedRecordID wos000454741800002&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1bS8MwGP3Yhg8-ednEeSOC4IvdmiZtUl_Hhk9joMLeSvIlwSHbZBd_v0nbTQRBfEoIgYbTtN_J5TsH4C7OYqMzxAiZX6Jwl-tIJVpF6ETmDFdxhq40mxDjsZxO80kDHva5MNba8vKZ7YVqeZZvlrgNW2V9yXnwXWtCU4isytXa76cE1ZKcylq9h_K07ycXp5T1qjIED4XzHyYqZQwZHf3v6cfQ-U7GI5N9mDmBhl2cwtHOjYHUH2cbxPPcT4PBm8X3RxI45AzJTnKELB0ZBqpnt3NS9iNBlipkSK078DoavgyeotoWwaPIxSbSDJPUWBMzRKdVnljKJDeS-RGjrzsnw2-MInU8FSzRcWJ5LjMbU2QsRXYGrcVyYc-BMENNkhuH1GOkaa5ZbEWmpJLMMx_Lu3DrMSsC318XVQpzWtS41mXahfs_-xTar_tdF9oB1eKj0tEoakAvfm--hENPTmR1ufAKWpvV1l7DAX5uZuvVTfnyvwDl4qsu
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1dS8MwFL3MKejT1E2cnxEEX-zWNGmb-jo2Js4xcMLeSnOT4JBtsg9_v0nXTQRBfEoogYTDbe9JmnsOwK0f-UpGiB4yu0XhJpFeFsjMQxNHRvHMj9DkZhNxvy9Go2RQgvttLYzWOr98phuum__LVzNcuaOypuDc-a7twK5zziqqtbYnKk63JKGi0O-hPGza8OKUssa6dekjw8kPG5U8i3Qq_5v_EGrf5XhksE00R1DS02OobPwYSPF6ViF-mdhAaL1pfH8gjkWOkWxER8jMkLYje3o1Ifk44oSpXI3Uogavnfaw1fUKYwSLI4-XnmQYhEornyEamSWBpkxwJZhdMdq-McJ9yChSw8OYBdIPNE9EpH2KjIXITqA8nU31KRCmqAoSZZBajCRNJPN1HGUiE8xyH83rcGMxSx3jX6TrIuYwLXAt2rAOd3-OSaXd-Zs6VB2q6cdaSSMtAD37_fE17HeHz72099h_OocDS1XE-qrhBZSX85W-hD38XI4X86s8EL4ABYaudw
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2018+IEEE+ACM+1st+International+Workshop+on+Emerging+Trends+in+Software+Engineering+for+Blockchain+%28WETSEB%29&rft.atitle=SmartCheck%3A+Static+Analysis+of+Ethereum+Smart+Contracts&rft.au=Tikhomirov%2C+Sergei&rft.au=Voskresenskaya%2C+Ekaterina&rft.au=Ivanitskiy%2C+Ivan&rft.au=Takhaviev%2C+Ramil&rft.date=2018-05-01&rft.pub=ACM&rft.spage=9&rft.epage=16&rft_id=info:doi/10.1145%2F3194113.3194115&rft.externalDocID=8445052
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781450357265/lc.gif&client=summon&freeimage=true
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781450357265/mc.gif&client=summon&freeimage=true
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781450357265/sc.gif&client=summon&freeimage=true