VLDB 2026 Research / reviewers in the wild / expert
Shelly Grossman
dblp:202/8941
· DBLP profile ↗
6ranked-venue papers
3as first author
2since 2021 · last 2024
0009-0003-7541-4195ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4 · 3 first-author · 1 since 2021Security and privacy · 2 · 1 since 2021Systems, architecture and hardware · 1Theory of computation · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
5 papers |
Program verification · 81% Compilers and program optimization · 13% Program analysis · 6% | |
| Network and information security
2 papers |
Blockchain and cryptocurrency security · 64% Systems and software security · 36% |
Topics — the 15 heaviest of 16, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program verification
SMT-based verification |
0.9 | 2 | 2024 | Practical Verification of Smart Contracts using Memory Splitting · Proc. ACM Program. Lang. 2024 Taming callbacks for smart contract modularity · Proc. ACM Program. Lang. 2020 |
Compilers and program optimization › compiler optimization
memory partitioning |
0.8 | 1 | 2024 | Practical Verification of Smart Contracts using Memory Splitting · Proc. ACM Program. Lang. 2024 |
Program verification › code-level verification
smart contract verification |
0.8 | 1 | 2024 | Practical Verification of Smart Contracts using Memory Splitting · Proc. ACM Program. Lang. 2024 |
Program verification
invariant verification |
0.7 | 1 | 2023 | Relaxed Effective Callback Freedom: A Parametric Correctness Condition for Sequential Modules With Callbacks · IEEE Trans. Dependable Secur. Comput. 2023 |
Program verification › concurrent program verification
parameterized verification |
0.7 | 1 | 2023 | Relaxed Effective Callback Freedom: A Parametric Correctness Condition for Sequential Modules With Callbacks · IEEE Trans. Dependable Secur. Comput. 2023 |
Blockchain and cryptocurrency security
smart contract security |
0.4 | 1 | 2020 | Taming callbacks for smart contract modularity · Proc. ACM Program. Lang. 2020 |
Systems and software security › program analysis
static analysis of smart contracts |
0.4 | 1 | 2020 | Taming callbacks for smart contract modularity · Proc. ACM Program. Lang. 2020 |
Blockchain and cryptocurrency security
smart contract |
0.3 | 1 | 2018 | Online detection of effectively callback free objects with applications to smart contracts · Proc. ACM Program. Lang. 2018 |
Program verification
modular reasoning |
0.3 | 1 | 2018 | Online detection of effectively callback free objects with applications to smart contracts · Proc. ACM Program. Lang. 2018 |
Program verification
equivalence checking |
0.3 | 1 | 2017 | Verifying Equivalence of Spark Programs · CAV (2) 2017 |
Program analysis › static analysis
pointer analysis |
0.2 | 1 | 2024 | Practical Verification of Smart Contracts using Memory Splitting · Proc. ACM Program. Lang. 2024 |
Program analysis
static analysis |
0.1 | 1 | 2020 | Taming callbacks for smart contract modularity · Proc. ACM Program. Lang. 2020 |
Program verification
dynamic verification |
0.1 | 1 | 2018 | Online detection of effectively callback free objects with applications to smart contracts · Proc. ACM Program. Lang. 2018 |
Program verification › dynamic verification
runtime verification |
0.1 | 1 | 2018 | Online detection of effectively callback free objects with applications to smart contracts · Proc. ACM Program. Lang. 2018 |
Distributed systems
distributed data processing |
0.1 | 1 | 2017 | Verifying Equivalence of Spark Programs · CAV (2) 2017 |
Methods — techniques the papers use, named apart from their topics
SMT solving · 1.6decompilation · 0.9commutativity reasoning · 0.9pointer analysis · 0.8memory allocation recovery · 0.8static analysis · 0.7invariant reduction · 0.7dynamic analysis · 0.7callback-free reduction · 0.7
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2024 | Practical Verification of Smart Contracts using Memory SplittingabstractSMT-based verification of low-level code requires modeling and reasoning about memory operations. Prior work has shown that optimizing memory representations is beneficial for scaling verification—pointer analysis, for example can be used to split memory into disjoint regions leading to faster SMT solving. However, these techniques are mostly designed for C and C++ programs with explicit operations for memory allocation which are not present in all languages. For instance, on the Ethereum virtual machine, memory is simply a monolithic array of bytes which can be freely accessed by Ethereum bytecode, and there is no allocation primitive. In this paper, we present a memory splitting transformation guided by a conservative memory analysis for Ethereum bytecode generated by the Solidity compiler. The analysis consists of two phases: recovering memory allocation and memory regions, followed by a pointer analysis. The goal of the analysis is to enable memory splitting which in turn speeds up verification. We have implemented both the analysis and the memory splitting transformation as part of a verification tool, CertoraProver, and show that the transformation speeds up SMT solving by up to 120× and additionally mitigates 16 timeouts when used on 229 real-world smart contract verification tasks. Shelly Grossman, John Toman, Alexander Bakst, Sameer Arora, Shmuel Sagiv, Chandrakana Nandi |
Proc. ACM Program. Lang. | 1 |
| 2023 | Relaxed Effective Callback Freedom: A Parametric Correctness Condition for Sequential Modules With CallbacksabstractCallbacks are an essential mechanism for event-driven programming. Unfortunately, callbacks make reasoning challenging because they introduce behaviors where calls to the module are interleaved. We present a parametric method that, from a particular invariant of the program, allows reducing the problem of verifying the invariant in the presence of callbacks, to the callback-free setting. Intuitively, we allow callbacks to introduce behaviors that cannot be produced by callback free executions, as long as they do not affect correctness. A chief insight is that the user is aware of the potential effect of the callbacks on the program state. To this end, we present a parametric verification technique which accepts this insight as a relation between callback and callback free executions. We implemented our approach and applied it successfully to a large set of real-world programs. Elvira Albert, Shelly Grossman, Noam Rinetzky, Clara Rodríguez-Núñez, Albert Rubio, Shmuel Sagiv |
IEEE Trans. Dependable Secur. Comput. | 2 |
| 2020 | Taming callbacks for smart contract modularityabstractCallbacks are an effective programming discipline for implementing event-driven programming, especially in environments like Ethereum which forbid shared global state and concurrency. Callbacks allow a callee to delegate the execution back to the caller. Though effective, they can lead to subtle mistakes principally in open environments where callbacks can be added in a new code. Indeed, several high profile bugs in smart contracts exploit callbacks. We present the first static technique ensuring modularity in the presence of callbacks and apply it to verify prominent smart contracts. Modularity ensures that external calls to other contracts cannot affect the behavior of the contract. Importantly, modularity is guaranteed without restricting programming. In general, checking modularity is undecidable—even for programs without loops. This paper describes an effective technique for soundly ensuring modularity harnessing SMT solvers. The main idea is to define a constructive version of modularity using commutativity and projection operations on program segments. We believe that this approach is also accessible to programmers, since counterexamples to modularity can be generated automatically by the SMT solvers, allowing programmers to understand and fix the error. We implemented our approach in order to demonstrate the precision of the modularity analysis and applied it to real smart contracts, including a subset of the 150 most active contracts in Ethereum. Our implementation decompiles bytecode programs into an intermediate representation and then implements the modularity checking using SMT queries. Overall, we argue that our experimental results indicate that the method can be applied to many realistic contracts, and that it is able to prove modularity where other methods fail. Elvira Albert, Shelly Grossman, Noam Rinetzky, Clara Rodríguez-Núñez, Albert Rubio, Shmuel Sagiv |
Proc. ACM Program. Lang. | 2 |
| 2019 | SBFT: A Scalable and Decentralized Trust InfrastructureabstractSBFT is a state of the art Byzantine fault tolerant state machine replication system that addresses the challenges of scalability, decentralization and global geo-replication. SBFT is optimized for decentralization and is experimentally evaluated on a deployment of more than 200 active replicas withstanding a malicious adversary controlling f=64 replicas. Our experiments show how the different algorithmic ingredients of SBFT contribute to its performance and scalability. The results show that SBFT simultaneously provides almost 2x better throughput and about 1.5x better latency relative to a highly optimized system that implements the PBFT protocol. To achieve this performance improvement, SBFT uses a combination of four ingredients: using collectors and threshold signatures to reduce communication to linear, using an optimistic fast path, reducing client communication and utilizing redundant servers for the fast path. SBFT is the first system to implement a correct dual-mode view change protocol that allows to efficiently run either an optimistic fast path or a fallback slow path without incurring a view change to switch between modes. Guy Golan-Gueta, Ittai Abraham, Shelly Grossman, Dahlia Malkhi, Benny Pinkas, Michael K. Reiter, Dragos-Adrian Seredinschi, Orr Tamir, Alin Tomescu |
DSN | 3 |
| 2018 | Online detection of effectively callback free objects with applications to smart contractsabstractCallbacks are essential in many programming environments, but drastically complicate program understanding and reasoning because they allow to mutate object's local states by external objects in unexpected fashions, thus breaking modularity. The famous DAO bug in the cryptocurrency framework Ethereum, employed callbacks to steal $150M. We define the notion of Effectively Callback Free (ECF) objects in order to allow callbacks without preventing modular reasoning. An object is ECF in a given execution trace if there exists an equivalent execution trace without callbacks to this object. An object is ECF if it is ECF in every possible execution trace. We study the decidability of dynamically checking ECF in a given execution trace and statically checking if an object is ECF. We also show that dynamically checking ECF in Ethereum is feasible and can be done online. By running the history of all execution traces in Ethereum, we were able to verify that virtually all existing contract executions, excluding these of the DAO or of contracts with similar known vulnerabilities, are ECF. Finally, we show that ECF, whether it is verified dynamically or statically, enables modular reasoning about objects with encapsulated state. Shelly Grossman, Ittai Abraham, Guy Golan-Gueta, Yan Michalevsky, Noam Rinetzky, Shmuel Sagiv, Yoni Zohar |
Proc. ACM Program. Lang. | 1 |
| 2017 | Verifying Equivalence of Spark Programs
Shelly Grossman, Sara Cohen, Shachar Itzhaky, Noam Rinetzky, Shmuel Sagiv |
CAV (2) | 1 |