<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Abstract: SMT-Friendly Formalization of the Solidity Memory Model</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Akos Hajdu</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Dejan Jovanovic</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p />
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Solidity is the dominant programming language for Ethereum smart contracts. This
paper presents a high-level formalization of the Solidity language with a focus on the
memory model. The presented formalization covers all features of the language related
to managing state and memory. In addition, the formalization we provide is e ective: all
but few features can be encoded in the quanti er-free fragment of standard SMT theories.
This enables precise and e cient reasoning about the state of smart contracts written in
Solidity. The formalization is implemented in the solc-verify veri er and we provide an
extensive set of tests that covers the breadth of the required semantics. We also provide
an evaluation on the test set that validates the semantics and shows the novelty of the
approach compared to other Solidity-level contract analysis tools.</p>
    </sec>
  </body>
  <back>
    <ref-list />
  </back>
</article>