{"id":"https://openalex.org/W3110118910","doi":"https://doi.org/10.1145/3428277","title":"Taming callbacks for smart contract modularity","display_name":"Taming callbacks for smart contract modularity","publication_year":2020,"publication_date":"2020-11-13","ids":{"openalex":"https://openalex.org/W3110118910","doi":"https://doi.org/10.1145/3428277","mag":"3110118910"},"language":"en","primary_location":{"id":"doi:10.1145/3428277","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3428277","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3428277","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://dl.acm.org/doi/pdf/10.1145/3428277","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5091905437","display_name":"Elvira Albert","orcid":"https://orcid.org/0000-0003-0048-0705"},"institutions":[{"id":"https://openalex.org/I121748325","display_name":"Universidad Complutense de Madrid","ror":"https://ror.org/02p0gd045","country_code":"ES","type":"education","lineage":["https://openalex.org/I121748325"]}],"countries":["ES"],"is_corresponding":true,"raw_author_name":"Elvira Albert","raw_affiliation_strings":["Complutense University of Madrid, Spain"],"affiliations":[{"raw_affiliation_string":"Complutense University of Madrid, Spain","institution_ids":["https://openalex.org/I121748325"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5061772950","display_name":"Shelly Grossman","orcid":null},"institutions":[{"id":"https://openalex.org/I16391192","display_name":"Tel Aviv University","ror":"https://ror.org/04mhzgx49","country_code":"IL","type":"education","lineage":["https://openalex.org/I16391192"]}],"countries":["IL"],"is_corresponding":false,"raw_author_name":"Shelly Grossman","raw_affiliation_strings":["Tel Aviv University, Israel"],"affiliations":[{"raw_affiliation_string":"Tel Aviv University, Israel","institution_ids":["https://openalex.org/I16391192"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5082349206","display_name":"Noam Rinetzky","orcid":"https://orcid.org/0000-0002-7750-4085"},"institutions":[{"id":"https://openalex.org/I16391192","display_name":"Tel Aviv University","ror":"https://ror.org/04mhzgx49","country_code":"IL","type":"education","lineage":["https://openalex.org/I16391192"]}],"countries":["IL"],"is_corresponding":false,"raw_author_name":"Noam Rinetzky","raw_affiliation_strings":["Tel Aviv University, Israel"],"affiliations":[{"raw_affiliation_string":"Tel Aviv University, Israel","institution_ids":["https://openalex.org/I16391192"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5041607436","display_name":"Clara Rodr\u00edguez-N\u00fa\u00f1ez","orcid":"https://orcid.org/0000-0002-5417-8934"},"institutions":[{"id":"https://openalex.org/I121748325","display_name":"Universidad Complutense de Madrid","ror":"https://ror.org/02p0gd045","country_code":"ES","type":"education","lineage":["https://openalex.org/I121748325"]}],"countries":["ES"],"is_corresponding":false,"raw_author_name":"Clara Rodr\u00edguez-N\u00fa\u00f1ez","raw_affiliation_strings":["Complutense University of Madrid, Spain"],"affiliations":[{"raw_affiliation_string":"Complutense University of Madrid, Spain","institution_ids":["https://openalex.org/I121748325"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5021913033","display_name":"Albert Rubio","orcid":"https://orcid.org/0000-0002-0501-9830"},"institutions":[{"id":"https://openalex.org/I121748325","display_name":"Universidad Complutense de Madrid","ror":"https://ror.org/02p0gd045","country_code":"ES","type":"education","lineage":["https://openalex.org/I121748325"]}],"countries":["ES"],"is_corresponding":false,"raw_author_name":"Albert Rubio","raw_affiliation_strings":["Complutense University of Madrid, Spain"],"affiliations":[{"raw_affiliation_string":"Complutense University of Madrid, Spain","institution_ids":["https://openalex.org/I121748325"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5002512849","display_name":"Mooly Sagiv","orcid":null},"institutions":[{"id":"https://openalex.org/I16391192","display_name":"Tel Aviv University","ror":"https://ror.org/04mhzgx49","country_code":"IL","type":"education","lineage":["https://openalex.org/I16391192"]}],"countries":["IL"],"is_corresponding":false,"raw_author_name":"Mooly Sagiv","raw_affiliation_strings":["Tel Aviv University, Israel"],"affiliations":[{"raw_affiliation_string":"Tel Aviv University, Israel","institution_ids":["https://openalex.org/I16391192"]}]}],"institutions":[],"countries_distinct_count":2,"institutions_distinct_count":6,"corresponding_author_ids":["https://openalex.org/A5091905437"],"corresponding_institution_ids":["https://openalex.org/I121748325"],"apc_list":null,"apc_paid":null,"fwci":1.8558,"has_fulltext":true,"cited_by_count":27,"citation_normalized_percentile":{"value":0.88679717,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":96,"max":99},"biblio":{"volume":"4","issue":"OOPSLA","first_page":"1","last_page":"30"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","score":0.9994000196456909,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T11424","display_name":"Security and Verification in Computing","score":0.9994000196456909,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10772","display_name":"Distributed systems and fault tolerance","score":0.9983000159263611,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10270","display_name":"Blockchain Technology Applications and Security","score":0.9979000091552734,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8705849647521973},{"id":"https://openalex.org/keywords/modularity","display_name":"Modularity (biology)","score":0.8510292768478394},{"id":"https://openalex.org/keywords/callback","display_name":"Callback","score":0.7900855541229248},{"id":"https://openalex.org/keywords/smart-contract","display_name":"Smart contract","score":0.6370528340339661},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.630039632320404},{"id":"https://openalex.org/keywords/bytecode","display_name":"Bytecode","score":0.5155025124549866},{"id":"https://openalex.org/keywords/concurrency","display_name":"Concurrency","score":0.5022203922271729},{"id":"https://openalex.org/keywords/undecidable-problem","display_name":"Undecidable problem","score":0.48674798011779785},{"id":"https://openalex.org/keywords/stateful-firewall","display_name":"Stateful firewall","score":0.4719371497631073},{"id":"https://openalex.org/keywords/distributed-computing","display_name":"Distributed computing","score":0.32799655199050903},{"id":"https://openalex.org/keywords/theoretical-computer-science","display_name":"Theoretical computer science","score":0.24233904480934143},{"id":"https://openalex.org/keywords/decidability","display_name":"Decidability","score":0.12775489687919617},{"id":"https://openalex.org/keywords/database-transaction","display_name":"Database transaction","score":0.12564128637313843},{"id":"https://openalex.org/keywords/computer-security","display_name":"Computer security","score":0.12268006801605225},{"id":"https://openalex.org/keywords/virtual-machine","display_name":"Virtual machine","score":0.09798577427864075}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8705849647521973},{"id":"https://openalex.org/C2779478453","wikidata":"https://www.wikidata.org/wiki/Q6889748","display_name":"Modularity (biology)","level":2,"score":0.8510292768478394},{"id":"https://openalex.org/C204495577","wikidata":"https://www.wikidata.org/wiki/Q1205349","display_name":"Callback","level":2,"score":0.7900855541229248},{"id":"https://openalex.org/C2779950589","wikidata":"https://www.wikidata.org/wiki/Q7544035","display_name":"Smart contract","level":3,"score":0.6370528340339661},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.630039632320404},{"id":"https://openalex.org/C2779818221","wikidata":"https://www.wikidata.org/wiki/Q837330","display_name":"Bytecode","level":3,"score":0.5155025124549866},{"id":"https://openalex.org/C193702766","wikidata":"https://www.wikidata.org/wiki/Q1414548","display_name":"Concurrency","level":2,"score":0.5022203922271729},{"id":"https://openalex.org/C192034797","wikidata":"https://www.wikidata.org/wiki/Q3502995","display_name":"Undecidable problem","level":3,"score":0.48674798011779785},{"id":"https://openalex.org/C22927095","wikidata":"https://www.wikidata.org/wiki/Q1784206","display_name":"Stateful firewall","level":3,"score":0.4719371497631073},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.32799655199050903},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.24233904480934143},{"id":"https://openalex.org/C153269930","wikidata":"https://www.wikidata.org/wiki/Q430001","display_name":"Decidability","level":2,"score":0.12775489687919617},{"id":"https://openalex.org/C75949130","wikidata":"https://www.wikidata.org/wiki/Q848010","display_name":"Database transaction","level":2,"score":0.12564128637313843},{"id":"https://openalex.org/C38652104","wikidata":"https://www.wikidata.org/wiki/Q3510521","display_name":"Computer security","level":1,"score":0.12268006801605225},{"id":"https://openalex.org/C25344961","wikidata":"https://www.wikidata.org/wiki/Q192726","display_name":"Virtual machine","level":2,"score":0.09798577427864075},{"id":"https://openalex.org/C158379750","wikidata":"https://www.wikidata.org/wiki/Q214111","display_name":"Network packet","level":2,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C54355233","wikidata":"https://www.wikidata.org/wiki/Q7162","display_name":"Genetics","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3428277","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3428277","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3428277","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3428277","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3428277","pdf_url":"https://dl.acm.org/doi/pdf/10.1145/3428277","source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[{"display_name":"Partnerships for the goals","id":"https://metadata.un.org/sdg/17","score":0.4699999988079071}],"awards":[],"funders":[],"has_content":{"pdf":true,"grobid_xml":true},"content_urls":{"pdf":"https://content.openalex.org/works/W3110118910.pdf","grobid_xml":"https://content.openalex.org/works/W3110118910.grobid-xml"},"referenced_works_count":38,"referenced_works":["https://openalex.org/W1545155892","https://openalex.org/W1662203549","https://openalex.org/W1850312962","https://openalex.org/W1915915253","https://openalex.org/W2002096014","https://openalex.org/W2072062729","https://openalex.org/W2102640269","https://openalex.org/W2137326810","https://openalex.org/W2149996206","https://openalex.org/W2418260908","https://openalex.org/W2539190473","https://openalex.org/W2593535131","https://openalex.org/W2604844934","https://openalex.org/W2788420036","https://openalex.org/W2799184718","https://openalex.org/W2805052744","https://openalex.org/W2805827286","https://openalex.org/W2883559598","https://openalex.org/W2884898944","https://openalex.org/W2906668391","https://openalex.org/W2963465913","https://openalex.org/W2963610883","https://openalex.org/W2964144608","https://openalex.org/W2964257386","https://openalex.org/W2970809537","https://openalex.org/W2987648005","https://openalex.org/W2988075326","https://openalex.org/W2997326335","https://openalex.org/W3033309818","https://openalex.org/W3033535371","https://openalex.org/W3034136313","https://openalex.org/W3095431539","https://openalex.org/W3104720502","https://openalex.org/W3105187050","https://openalex.org/W3151748982","https://openalex.org/W4235116491","https://openalex.org/W4286447266","https://openalex.org/W4297888334"],"related_works":["https://openalex.org/W2808452017","https://openalex.org/W3176636969","https://openalex.org/W4286331375","https://openalex.org/W4287163518","https://openalex.org/W4322765894","https://openalex.org/W3114041051","https://openalex.org/W2899387114","https://openalex.org/W4255703437","https://openalex.org/W2778144710","https://openalex.org/W4322588517"],"abstract_inverted_index":{"Callbacks":[0,22],"are":[1],"an":[2,121,218],"effective":[3,122],"programming":[4],"discipline":[5],"for":[6,114,124],"implementing":[7],"event-driven":[8],"programming,":[9],"especially":[10],"in":[11,43,51,60,73,184,210],"environments":[12,45],"like":[13],"Ethereum":[14],"which":[15],"forbid":[16],"shared":[17],"global":[18],"state":[19],"and":[20,78,144,176,194,221,248],"concurrency.":[21],"allow":[23],"a":[24,52,137,202],"callee":[25],"to":[26,31,39,81,91,135,158,162,174,186,197,244,253],"delegate":[27],"the":[28,32,67,74,96,99,169,178,188,191,205,224,239],"execution":[29],"back":[30],"caller.":[33],"Though":[34],"effective,":[35],"they":[36],"can":[37,48,164,241],"lead":[38],"subtle":[40],"mistakes":[41],"principally":[42],"open":[44],"where":[46,256],"callbacks":[47,77],"be":[49,165,242],"added":[50],"new":[53],"code.":[54],"Indeed,":[55],"several":[56],"high":[57],"profile":[58],"bugs":[59],"smart":[61,84,199],"contracts":[62,93,209],"exploit":[63],"callbacks.":[64],"We":[65,150,180],"present":[66],"first":[68],"static":[69],"technique":[70,123],"ensuring":[71,126],"modularity":[72,102,111,127,141,163,192,225,255],"presence":[75],"of":[76,98,140,190,204],"apply":[79],"it":[80,196,250],"verify":[82],"prominent":[83],"contracts.":[85],"Modularity":[86],"ensures":[87],"that":[88,152,233,238,249],"external":[89],"calls":[90],"other":[92,257],"cannot":[94],"affect":[95],"behavior":[97],"contract.":[100],"Importantly,":[101],"is":[103,112,134,155,251],"guaranteed":[104],"without":[105,116],"restricting":[106],"programming.":[107],"In":[108],"general,":[109],"checking":[110,226],"undecidable\u2014even":[113],"programs":[115,216],"loops.":[117],"This":[118],"paper":[119],"describes":[120],"soundly":[125],"harnessing":[128],"SMT":[129,170,228],"solvers.":[130],"The":[131],"main":[132],"idea":[133],"define":[136],"constructive":[138],"version":[139],"using":[142,227],"commutativity":[143],"projection":[145],"operations":[146],"on":[147],"program":[148],"segments.":[149],"believe":[151],"this":[153],"approach":[154,183],"also":[156],"accessible":[157],"programmers,":[159],"since":[160],"counterexamples":[161],"generated":[166],"automatically":[167],"by":[168],"solvers,":[171],"allowing":[172],"programmers":[173],"understand":[175],"fix":[177],"error.":[179],"implemented":[181],"our":[182,234],"order":[185],"demonstrate":[187],"precision":[189],"analysis":[193],"applied":[195,243],"real":[198],"contracts,":[200,247],"including":[201],"subset":[203],"150":[206],"most":[207],"active":[208],"Ethereum.":[211],"Our":[212],"implementation":[213],"decompiles":[214],"bytecode":[215],"into":[217],"intermediate":[219],"representation":[220],"then":[222],"implements":[223],"queries.":[229],"Overall,":[230],"we":[231],"argue":[232],"experimental":[235],"results":[236],"indicate":[237],"method":[240],"many":[245],"realistic":[246],"able":[252],"prove":[254],"methods":[258],"fail.":[259]},"counts_by_year":[{"year":2025,"cited_by_count":6},{"year":2024,"cited_by_count":7},{"year":2023,"cited_by_count":3},{"year":2022,"cited_by_count":6},{"year":2021,"cited_by_count":5}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
