TL;DR
This paper introduces Nomos, a resource-aware session-typed programming language for digital contracts that enforces protocols, controls resource usage, and prevents asset duplication, with formal guarantees and practical case studies.
Contribution
It presents the design, formalization, and implementation of Nomos, integrating session types, resource analysis, and linear types for secure and efficient digital contracts.
Findings
Nomos effectively enforces protocol adherence at runtime.
Automatic resource analysis provides sound upper bounds on resource consumption.
Case studies demonstrate Nomos's applicability to real-world smart contracts.
Abstract
Programming digital contracts comes with unique challenges, which include (i) expressing and enforcing protocols of interaction, (ii) controlling resource usage, and (iii) preventing the duplication or deletion of a contract's assets. This article presents the design and type-theoretic foundation of Nomos, a programming language for digital contracts that addresses these challenges. To express and enforce protocols, Nomos is based on shared binary session types. To control resource usage, Nomos employs automatic amortized resource analysis. To prevent the duplication or deletion of assets, Nomos uses a linear type system. A monad integrates the effectful session-typed language with a general-purpose functional language. Nomos' prototype implementation features linear-time type checking and efficient type reconstruction that includes automatic inference of resource bounds via…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
