{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,8]],"date-time":"2025-11-08T13:35:58Z","timestamp":1762608958918,"version":"3.40.3"},"publisher-location":"Cham","reference-count":29,"publisher":"Springer Nature Switzerland","isbn-type":[{"type":"print","value":"9783031197550"},{"type":"electronic","value":"9783031197567"}],"license":[{"start":{"date-parts":[[2022,1,1]],"date-time":"2022-01-01T00:00:00Z","timestamp":1640995200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2022,1,1]],"date-time":"2022-01-01T00:00:00Z","timestamp":1640995200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2022]]},"DOI":"10.1007\/978-3-031-19756-7_18","type":"book-chapter","created":{"date-parts":[[2022,10,19]],"date-time":"2022-10-19T07:02:54Z","timestamp":1666162974000},"page":"324-344","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":5,"title":["Refactoring Solidity Smart Contracts to\u00a0Protect Against Reentrancy Exploits"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-4463-2945","authenticated-orcid":false,"given":"Serge","family":"Demeyer","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3029-7250","authenticated-orcid":false,"given":"Henrique","family":"Rocha","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Darin","family":"Verheijke","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2022,10,17]]},"reference":[{"key":"18_CR1","doi-asserted-by":"publisher","unstructured":"Ahrendt, W., Bubel, R.: Specifying functional verification of smart contracts via strong data integrity. In: Margaria, T., Steffen, B. (eds.) Leveraging Applications of Formal Methods, Verification and Validation: Applications. pp. 43\u201359. Springer, Cham (2020). https:\/\/doi.org\/10.1007\/978-3-030-61467-6_2","DOI":"10.1007\/978-3-030-61467-6_2"},{"key":"18_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"376","DOI":"10.1007\/978-3-030-03427-6_28","volume-title":"Leveraging Applications of Formal Methods, Verification and Validation. Industrial Practice","author":"L Alt","year":"2018","unstructured":"Alt, L., Reitwiessner, C.: SMT-based verification of solidity smart contracts. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11247, pp. 376\u2013388. Springer, Cham (2018). https:\/\/doi.org\/10.1007\/978-3-030-03427-6_28"},{"key":"18_CR3","unstructured":"Antonopoulos, A., Wood, G., Wood, G.: Mastering Ethereum: Building Smart Contracts and DApps. O\u2019Reilly Media, Incorporated (2018). https:\/\/books.google.be\/books?id=SedSMQAACAAJ"},{"key":"18_CR4","doi-asserted-by":"publisher","first-page":"164","DOI":"10.1007\/978-3-642-54792-8","volume-title":"Principles of Security and Trust","author":"N Atzei","year":"2017","unstructured":"Atzei, N., Bartoletti, M., Cimoli, T.: A survey of attacks on ethereum smart contracts (SoK). In: Maffei, M., Ryan, M. (eds.) Principles of Security and Trust, pp. 164\u2013186. Springer, Berlin (2017). https:\/\/doi.org\/10.1007\/978-3-642-54792-8"},{"key":"18_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"43","DOI":"10.1007\/978-3-030-61467-6_4","volume-title":"Leveraging Applications of Formal Methods, Verification and Validation: Applications","author":"B Beckert","year":"2020","unstructured":"Beckert, B., Schiffl, J.: Specifying framing conditions for smart contracts. In: Margaria, T., Steffen, B. (eds.) ISoLA 2020. LNCS, vol. 12478, pp. 43\u201359. Springer, Cham (2020). https:\/\/doi.org\/10.1007\/978-3-030-61467-6_4"},{"key":"18_CR6","doi-asserted-by":"publisher","unstructured":"Bhargavan, K., et al.: Formal verification of smart contracts: Short paper. In: Proceedings of the 2016 ACM Workshop on Programming Languages and Analysis for Security, pp. 91\u201396. PLAS 2016, Association for Computing Machinery, New York, NY, USA (2016). https:\/\/doi.org\/10.1145\/2993600.2993611, https:\/\/doi.org\/10.1145\/2993600.2993611","DOI":"10.1145\/2993600.2993611"},{"key":"18_CR7","doi-asserted-by":"publisher","unstructured":"Bragagnolo, S., Rocha, H.S.C., Denker, M., Ducasse, S.: SmartInspect: solidity Smart Contract Inspector. In: IWBOSE 2018\u20131st International Workshop on Blockchain Oriented Software Engineering. IEEE, Campobasso, Italy, March 2018. https:\/\/doi.org\/10.1109\/IWBOSE.2018.8327566, https:\/\/hal.inria.fr\/hal-01831075","DOI":"10.1109\/IWBOSE.2018.8327566"},{"key":"18_CR8","unstructured":"Ethereum: Solidity documentation (0.8.16) (2022). https:\/\/docs.soliditylang.org\/en\/v0.8.16\/index.html"},{"key":"18_CR9","unstructured":"ethereum.org: Ethereum development documentation (2021). https:\/\/ethereum.org\/en\/developers\/docs\/"},{"key":"18_CR10","unstructured":"Etherscan: Etherscan API knowledge base (2021). https:\/\/docs.etherscan.io\/api-endpoints\/contracts"},{"key":"18_CR11","doi-asserted-by":"publisher","unstructured":"Feist, J., Grieco, G., Groce, A.: Slither: a static analysis framework for smart contracts. In: 2019 IEEE\/ACM 2nd International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB), pp. 8\u201315 (2019). https:\/\/doi.org\/10.1109\/WETSEB.2019.00008","DOI":"10.1109\/WETSEB.2019.00008"},{"key":"18_CR12","unstructured":"Foundation, E.: Ethereum\u2019s white paper (2014). https:\/\/ethereum.org\/en\/whitepaper\/"},{"key":"18_CR13","unstructured":"fravoll: Checks effects interactions pattern (2018). https:\/\/fravoll.github.io\/solidity-patterns\/checks_effects_interactions.html"},{"key":"18_CR14","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"161","DOI":"10.1007\/978-3-030-41600-3_11","volume-title":"Verified Software. Theories, Tools, and Experiments","author":"\u00c1 Hajdu","year":"2020","unstructured":"Hajdu, \u00c1., Jovanovi\u0107, D.: solc-verify: a modular verifier for solidity smart contracts. In: Chakraborty, S., Navas, J.A. (eds.) VSTTE 2019. LNCS, vol. 12031, pp. 161\u2013179. Springer, Cham (2020). https:\/\/doi.org\/10.1007\/978-3-030-41600-3_11"},{"key":"18_CR15","doi-asserted-by":"crossref","unstructured":"Ibba, G.: A smart contracts repository for top trending contracts. In: 5th International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB), p. 8 (2022)","DOI":"10.1145\/3528226.3528374"},{"key":"18_CR16","doi-asserted-by":"publisher","unstructured":"Juels, A., Kosba, A., Shi, E.: The ring of Gyges: investigating the future of criminal smart contracts. In: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, pp. 283\u2013295. CCS \u201916, Association for Computing Machinery, New York, NY, USA (2016). https:\/\/doi.org\/10.1145\/2976749.2978362,https:\/\/doi.org\/10.1145\/2976749.2978362","DOI":"10.1145\/2976749.2978362"},{"key":"18_CR17","doi-asserted-by":"publisher","unstructured":"Liu, C., Liu, H., Cao, Z., Chen, Z., Chen, B., Roscoe, B.: ReGuard: Finding reentrancy bugs in smart contracts. In: Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings, ICSE 2018, pp. 65\u201368. Association for Computing Machinery, New York, NY, USA (2018). https:\/\/doi.org\/10.1145\/3183440.3183495, https:\/\/doi.org\/10.1145\/3183440.3183495","DOI":"10.1145\/3183440.3183495"},{"key":"18_CR18","doi-asserted-by":"publisher","unstructured":"Luu, L., Chu, D.H., Olickel, H., Saxena, P., Hobor, A.: Making smart contracts smarter. In: Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security, CCS 2016, pp. 254\u2013269, Association for Computing Machinery, New York, NY, USA (2016). https:\/\/doi.org\/10.1145\/2976749.2978309, https:\/\/doi.org\/10.1145\/2976749.2978309","DOI":"10.1145\/2976749.2978309"},{"key":"18_CR19","unstructured":"Marx, S.: Stop using solidity\u2019s transfer() now, September 2020. https:\/\/consensys.net\/diligence\/blog\/2019\/09\/stop-using-soliditys-transfer-now\/"},{"key":"18_CR20","unstructured":"Nakamoto, S.: Bitcoin: a peer-to-peer electronic cash system (2008)"},{"key":"18_CR21","doi-asserted-by":"publisher","unstructured":"Permenev, A., Dimitrov, D., Tsankov, P., Drachsler-Cohen, D., Vechev, M.: Verx: Safety verification of smart contracts. In: 2020 IEEE Symposium on Security and Privacy (SP), pp. 1661\u20131677 (2020). https:\/\/doi.org\/10.1109\/SP40000.2020.00024","DOI":"10.1109\/SP40000.2020.00024"},{"key":"18_CR22","doi-asserted-by":"publisher","unstructured":"Pierro, G.A., Tonelli, R., Marchesi, M.: An organized repository of ethereum smart contracts\u2019 source codes and metrics. Fut. Internet 12(11) (2020). https:\/\/doi.org\/10.3390\/fi12110197, https:\/\/www.mdpi.com\/1999-5903\/12\/11\/197","DOI":"10.3390\/fi12110197"},{"key":"18_CR23","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"212","DOI":"10.1007\/978-3-030-61467-6_14","volume-title":"Leveraging Applications of Formal Methods, Verification and Validation: Applications","author":"C Schneidewind","year":"2020","unstructured":"Schneidewind, C., Scherer, M., Maffei, M.: The Good, the bad and the ugly: pitfalls and best practices in automated sound static analysis of ethereum smart contracts. In: Margaria, T., Steffen, B. (eds.) ISoLA 2020. LNCS, vol. 12478, pp. 212\u2013231. Springer, Cham (2020). https:\/\/doi.org\/10.1007\/978-3-030-61467-6_14"},{"key":"18_CR24","unstructured":"Swende, M.H.: EIP-1884: Repricing for trie-size-dependent opcodes (2019). https:\/\/eips.ethereum.org\/EIPS\/eip-1884"},{"key":"18_CR25","doi-asserted-by":"publisher","unstructured":"Tikhomirov, S., Voskresenskaya, E., Ivanitskiy, I., Takhaviev, R., Marchenko, E., Alexandrov, Y.: Smartcheck: static analysis of ethereum smart contracts. In: Proceedings of the 1st International Workshop on Emerging Trends in Software Engineering for Blockchain, pp. 9\u201316. WETSEB 2018, Association for Computing Machinery, New York, NY, USA (2018). https:\/\/doi.org\/10.1145\/3194113.3194115, https:\/\/doi.org\/10.1145\/3194113.3194115","DOI":"10.1145\/3194113.3194115"},{"key":"18_CR26","doi-asserted-by":"publisher","unstructured":"Tsankov, P., Dan, A., Drachsler-Cohen, D., Gervais, A., B\u00fcnzli, F., Vechev, M.: Securify: practical security analysis of smart contracts. In: Proceedings CCS2018 (ACM SIGSAC Conference on Computer and Communications Security), pp. 67\u201382. Association for Computing Machinery, New York, NY, USA (2018). https:\/\/doi.org\/10.1145\/3243734.3243780","DOI":"10.1145\/3243734.3243780"},{"key":"18_CR27","doi-asserted-by":"crossref","unstructured":"Verheijke, D., Rocha, H.: An exploratory study on solidity guards and ether exchange constructs. In: 5th International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB), p. 8 (2022)","DOI":"10.1145\/3528226.3528372"},{"issue":"2","key":"18_CR28","doi-asserted-by":"publisher","first-page":"1133","DOI":"10.1109\/TNSE.2020.2968505","volume":"8","author":"W Wang","year":"2021","unstructured":"Wang, W., et al.: Contractward: automated vulnerability detection models for ethereum smart contracts. IEEE Trans. Netw. Sci. Eng. 8(2), 1133\u20131144 (2021). https:\/\/doi.org\/10.1109\/TNSE.2020.2968505","journal-title":"IEEE Trans. Netw. Sci. Eng."},{"key":"18_CR29","unstructured":"Wood, G.: Ethereum: a secure decentralized generalised transaction ledger. Ethereum Project Yellow Paper, 151, 1\u201332 (2018)"}],"container-title":["Lecture Notes in Computer Science","Leveraging Applications of Formal Methods, Verification and Validation. Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-19756-7_18","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,4,5]],"date-time":"2023-04-05T00:10:06Z","timestamp":1680653406000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-19756-7_18"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022]]},"ISBN":["9783031197550","9783031197567"],"references-count":29,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-19756-7_18","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2022]]},"assertion":[{"value":"17 October 2022","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"ISoLA","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Leveraging Applications of Formal Methods","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Rhodes","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Greece","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2022","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"22 October 2022","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"30 October 2022","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"11","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"isola2022","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"http:\/\/www.isola-conference.org\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}