Paper 2018/416 Original: eprint.iacr.org/2018/416 ↗
Ledger Design Language: Towards Formal Reasoning and Implementation for Public Ledgers
Abstract
Cryptocurrencies have popularized public ledgers, known colloquially as "blockchains". While the Bitcoin blockchain is relatively simple to reason about as, effectively, a hash chain, more complex public ledgers are largely designed without any formalization of desired cryptographic properties such as authentication or integrity. These designs are then implemented without assurances against real-world bugs leading to little assurance with regards to practical, real-world security. Ledger Design Language (LDL) is a modeling language for describing public ledgers. The LDL compiler produces two outputs. The first output is a an applied-pi calculus symbolic model representing the public ledger as a protocol. Using ProVerif, the protocol can be played against an active attacker, whereupon we can query for block integrity, authenticity and other properties. The second output is a formally verified read/write API for interacting with the public ledger in the real world, written in the F* programming language. F* features such as dependent types allow us to validate a block on the public ledger, for example, by type-checking it so that its signing public key be a point on a curve. Using LDL's outputs, public ledger designers obtain automated assurances on the theoretical coherence and the real-world security of their designs with a single framework based on a single modeling language.
Metadata
- Available format(s)
PDF
- Category
- Implementation
- Publication info
- Preprint.
- History
- 2018-05-10: last updated
- 2018-05-10: published
- Short URL
- https://ia.cr/2018/416
- License
- https://creativecommons.org/licenses/by/4.0/
BibTeX
@misc{cryptoeprint:2018/416,
author = {Nadim Kobeissi and Natalia Kulatova},
title = {Ledger Design Language: Towards Formal Reasoning and Implementation for Public Ledgers},
howpublished = {Cryptology {ePrint} Archive, Paper 2018/416},
year = {2018},
url = {https://eprint.iacr.org/2018/416}
}