Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Bryan Tan

dblp:303/4686 · DBLP profile ↗
← Back
4ranked-venue papers
1as first author
4since 2021 · last 2024
0000-0002-4008-3846ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 3 · 1 first-author · 3 since 2021Security and privacy · 1 · 1 since 2021Theory of computation · 1 · 1 since 2021

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
3 papers
Programming languages and type systems · 57% Program verification · 43%
Network and information security
3 papers
Cryptographic protocols and secure computation · 50% Blockchain and cryptocurrency security · 50%

Topics — the 8 heaviest of 8, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems › type systems
refinement types
1.322024
Certifying Zero-Knowledge Circuits with Refinement Types · SP 2024
SolType: refinement types for arithmetic overflow in solidity · Proc. ACM Program. Lang. 2022
Cryptographic protocols and secure computation › proof systems
zero-knowledge proofs
0.812024
Certifying Zero-Knowledge Circuits with Refinement Types · SP 2024
Programming languages and type systems
type systems
0.812024
Certifying Zero-Knowledge Circuits with Refinement Types · SP 2024
Blockchain and cryptocurrency security
smart contract security
0.722022
Learning Contract Invariants Using Reinforcement Learning · ASE 2022
SolType: refinement types for arithmetic overflow in solidity · Proc. ACM Program. Lang. 2022
Program verification
invariant generation
0.612022
Learning Contract Invariants Using Reinforcement Learning · ASE 2022
Program verification › code-level verification
smart contract verification
0.612022
SolType: refinement types for arithmetic overflow in solidity · Proc. ACM Program. Lang. 2022
Program verification
proof assistants
0.212024
Certifying Zero-Knowledge Circuits with Refinement Types · SP 2024
Program verification › type-based verification
refinement type checking
0.212022
Learning Contract Invariants Using Reinforcement Learning · ASE 2022

Methods — techniques the papers use, named apart from their topics

tactic library · 1.5refinement type system · 1.5coq lemmas · 1.5type inference engine · 1.1refinement type inference · 1.1policy learning · 1.1deep reinforcement learning · 1.1
YearPublicationVenuePosition
2024 Certifying Zero-Knowledge Circuits with Refinement Types
abstract
Zero-knowledge (ZK) proof systems have emerged as a promising solution for building security-sensitive applications. However, bugs in ZK applications are extremely difficult to detect and can allow a malicious party to silently exploit the system without leaving any observable trace. This paper presents Coda, a novel statically-typed language for building zero-knowledge applications. Critically, Coda makes it possible to formally specify and statically check properties of a ZK application through a rich refinement type system. One of the key challenges in formally verifying ZK applications is that they require reasoning about polynomial equations over large prime fields that go beyond the capabilities of automated theorem provers. Coda mitigates this challenge by generating a set of Coq lemmas that can be proven in an interactive manner with the help of a tactic library. We have used Coda to re-implement 77 arithmetic circuits from widely-used Circom libraries and applications. Our evaluation shows that Coda makes it possible to specify important and formally verify correctness properties of these circuits. Our evaluation also revealed 6 previously-unknown vulnerabilities in the original Circom projects.
Ian Kretz, Hanzhi Liu, Bryan Tan, Luke Pearson, Anders Miltner, Isil Dillig, Yu Feng 0001
SP4
2023 Datapath Verification via Word-Level E-Graph Rewriting
Samuel Coward, Emiliano Morini, Bryan Tan, Theo Drane, George A. Constantinides
FMCAD3
2022 Learning Contract Invariants Using Reinforcement Learning
abstract
Due to the popularity of smart contracts in the modern financial ecosystem, there has been growing interest in formally verifying their correctness and security properties. Most existing techniques in this space focus on common vulnerabilities like arithmetic overflows and perform verification by leveraging contract invariants (i.e., logical formulas hold at transaction boundaries). In this paper, we propose a new technique, based on deep reinforcement learning, for automatically learning contract invariants that are useful for proving arithmetic safety. Our method incorporates an off-line training phase in which the verifier uses its own verification attempts to learn a policy for contract invariant generation. This learned (neural) policy is then used at verification time to predict likely invariants that are also useful for proving arithmetic safety. We implemented this idea in a tool called Cider and incorporated it into an existing verifier (based on refinement type checking) for proving arithmetic safety. Our evaluation shows that Cider improves both the quality of the inferred invariants as well as inference time, leading to faster verification and hardened contracts with fewer run-time assertions.
Yanju Chen, Bryan Tan, Isil Dillig, Yu Feng 0001
ASE3
2022 SolType: refinement types for arithmetic overflow in solidity
abstract
As smart contracts gain adoption in financial transactions, it becomes increasingly important to ensure that they are free of bugs and security vulnerabilities. Of particular relevance in this context are arithmetic overflow bugs, as integers are often used to represent financial assets like account balances. Motivated by this observation, this paper presents SolType, a refinement type system for Solidity that can be used to prevent arithmetic over- and under-flows in smart contracts. SolType allows developers to add refinement type annotations and uses them to prove that arithmetic operations do not lead to over- and under-flows. SolType incorporates a rich vocabulary of refinement terms that allow expressing relationships between integer values and aggregate properties of complex data structures. Furthermore, our implementation, called Solid, incorporates a type inference engine and can automatically infer useful type annotations, including non-trivial contract invariants. To evaluate the usefulness of our type system, we use Solid to prove arithmetic safety of a total of 120 smart contracts. When used in its fully automated mode (i.e., using Solid's type inference capabilities), Solid is able to eliminate 86.3% of redundant runtime checks used to guard against overflows. We also compare Solid against a state-of-the-art arithmetic safety verifier called VeriSmart and show that Solid has a significantly lower false positive rate, while being significantly faster in terms of verification time.
Bryan Tan, Benjamin Mariano, Shuvendu K. Lahiri, Isil Dillig, Yu Feng 0001
Proc. ACM Program. Lang.1