Write a Blog >>
POPL 2021
Sun 17 - Fri 22 January 2021 Online
Mon 18 Jan 2021 20:20 - 20:25 at CPP - Lightning Talks Chair(s): Natarajan Shankar

Daml is a Haskell-based smart contract programming language used to coordinate business workflows across trust boundaries. Daml’s semantics are defined over an abstract ledger, which provides a clear semantics for Daml’s authorization rules, double-spending protection, and privacy guarantees. In its simplest form, a ledger is represented as a list of commits, i.e., hierarchical transactions and their authorizers. This representation allows for easy reasoning about Daml smart contracts because the total order hides the intricacies of a distributed, Byzantine-fault tolerant system. It is also adequate for Daml running on a single blockchain, as it defines a total order on all transactions.

Yet, for distributed ledgers to fully eliminate data silos, smart contracts must not be tied to a single blockchain, which would then just become another silo. Daml therefore runs on different blockchains such as Hyperledger Fabric, Ethereum, and FISCO-BCOS as well as off-the-shelf databases. The underlying protocol Canton supports atomic transactions across all these Daml ledgers. This makes Daml ledgers sharded for higher throughput as well as interoperable to avoid data silos.

Semantically, Canton creates a virtual shared ledger by merging the individual ledgers’ lists of commits. The virtual shared ledger is not totally ordered, to account for the fact that there is no global notion of time across ledgers. Still, transactions can use only contracts that have been created within earlier transactions. This ensures that causality is respected even though individual system users cannot see all dependencies due to the privacy rules. Canton tracks privacy-aware causality using vector clocks.

To ensure that Daml and Canton achieve their claimed properties, we have started to formalize the Daml ledger model and prove its properties in Isabelle/HOL. The two main verification goals are as follows:

  1. Canton’s vector clock tracking correctly implements causality.

  2. The synchronization due to vector clocks cannot cause deadlocks.

The challenge here is that these guarantees should hold for honest nodes in the system even if other systems fail or behave Byzantine.

In the lightning talk, we give an idea of the ledger model, privacy-aware causality, and the current state of the verification.

Mon 18 Jan

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

20:00 - 21:00
Lightning TalksCPP / CPP Lightning Talks at CPP
Chair(s): Natarajan Shankar SRI International, USA

Streamed sessions: https://youtu.be/sFMJBTtbjTc

20:00
5m
Talk
Certified Semantics for miniKanren
CPP Lightning Talks
Dmitry Rozplokhas Saint Petersburg State University and JetBrains Research, Andrey Vyatkin Saint Petersburg State University, Petr Lozov Sain Petersburg State University, SPbGU, Dmitri Boulytchev Saint Petersburg State University / JetBrains Research
Media Attached
20:05
5m
Talk
Cameleer: a Deductive Verification Tool for OCaml
CPP Lightning Talks
Mário Pereira NOVA LINCS & Nova School of Sciences and Tecnhology, António Ravara Department of Informatics, Faculty of Sciences and Technology, NOVA University of Lisbon and NOVA LINCS
20:10
5m
Talk
Gradualizing the Calculus of Inductive Constructions
CPP Lightning Talks
Meven Lennon-Bertrand Inria – LS2N, Université de Nantes, Kenji Maillard Inria Nantes & University of Chile, Nicolas Tabareau Inria, Éric Tanter University of Chile
Pre-print
20:15
5m
Talk
Formally Verified Decentralized Exchange with Mi-Cho-Coq
CPP Lightning Talks
Arvid Jakobsson Nomadic Labs, Colin González Université de Paris, Irif -- Nomadic Labs, Bruno Bernardo Nomadic Labs, Raphaël Cauderlier Nomadic Labs
20:20
5m
Talk
A semantic domain for privacy-aware smart contracts and interoperable sharded ledgers
CPP Lightning Talks
Sören Bleikertz Digital Asset, Andreas Lochbihler Digital Asset, Ognjen Marić Digital Asset, Simon Meier Digital Asset, Phoebe Nichols Digital Asset, Matthias Schmalz Digital Asset, Ratko G. Veprek Digital Asset
File Attached
20:25
5m
Talk
Specification and model checking of Tendermint consensus in TLA+
CPP Lightning Talks
Igor Konnov Informal Systems Inc, Zarko Milosevic Informal Systems, Josef Widder Informal Systems
20:30
5m
Talk
Formalization of Combinatorics on Words in Isabelle/HOL
CPP Lightning Talks
Štěpán Holub Charles University, Štěpán Starosta Faculty of Information Technology, Czech Technical University in Prague
Link to publication Media Attached File Attached
20:35
5m
Talk
Formalising MPC-in-the-head-based zero-knowledge
CPP Lightning Talks
Nikolaj Sidorenco Aarhus University, Sabine Oechsner Aarhus University, Bas Spitters Concordium Blockchain Research Center, Aarhus University
File Attached
20:40
5m
Talk
Mechanically-checked soundness of type-based null safety
CPP Lightning Talks
Alexander Kogtenkov Schaffhausen Institute of Technology, Switzerland
Media Attached File Attached
20:45
5m
Talk
Formalising MiniSail in Isabelle
CPP Lightning Talks
Mark Wassell University of Cambridge
20:50
5m
Talk
How to verify an ASN.1 Protocol C-language Stack in Coq?
CPP Lightning Talks
Nika Pona Digamma.ai, Vadim Zaliva Carnegie Mellon University, USA
File Attached
20:55
5m
Talk
Monadic Second-Order Logic and Pomset Languages
CPP Lightning Talks
Tobias Kappé Cornell University