[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3354166.3354179acmotherconferencesArticle/Chapter ViewAbstractPublication PagesppdpConference Proceedingsconference-collections
research-article

Smart Contracts as Authorized Production Rules

Published: 07 October 2019 Publication History

Abstract

Rainfall is a smart contract programming model that allows mutually distrusting parties to manage assets on a distributed ledger. The model consists of a tuple space of authorized facts, and a set of production rules. Rules match on authorized facts, gaining their authority, and produce new facts with a subset of the gained authority. Rainfall allows assets such as crypto currencies to be defined in user code, rather than being baked directly into the ledger framework. Our authorization model also provides a natural privacy model, where not all rules or facts need to be revealed to all parties.

References

[1]
CSL language guide documentation, release v0.30.0. https://deondigital.com/docs/v0.30.0/cslguide.pdf.
[2]
DAML SDK documentation. https://docs.daml.com/index.html. Accessed: 2019-04-27.
[3]
Financial Core Language (FCL). https://www.adjoint.io/docs/workflows.html. Accessed: 2019-04-27.
[4]
The Docker website. https://www.docker.com/. Accessed: 2019-05-03.
[5]
Martín Abadi. Access control in a core calculus of dependency. Electronic Notes in Theoretical Computer Science, 172, 2007.
[6]
Martín Abadi, Anindya Banerjee, Nevin Heintze, and Jon G Riecke. A core calculus of dependency. In Principles of Programming Languages (POPL), 1999.
[7]
Gul Agha and Christian J Callsen. ActorSpace: an open distributed programming paradigm. In Principles and Practice of Parallel Programming (PPoPP). ACM, 1993.
[8]
Gul Agha, Ian A. Mason, Scott F. Smith, and Carolyn L. Talcott. Towards a theory of actor computation. In International Conference on Concurrency Theory (CONCUR), 1992.
[9]
Elli Androulaki, Artem Barger, Vita Bortnikov, Christian Cachin, Konstantinos Christidis, Angelo De Caro, David Enyeart, Christopher Ferris, Gennady Laventman, Yacov Manevich, et al. Hyperledger Fabric: a distributed operating system for permissioned blockchains. In Proceedings of the Thirteenth EuroSys Conference. ACM, 2018.
[10]
Mostafa M Aref and Mohammed A Tayyib. The Lana-Match algorithm: a parallel version of the Rete-Match algorithm. Parallel Computing, 24(5-6), 1998.
[11]
Nicola Atzei, Massimo Bartoletti, Stefano Lande, and Roberto Zunino. A formal model of Bitcoin transactions. IACR Cryptology ePrint Archive, 2017.
[12]
Gérard Berry and Gérard Boudol. The chemical abstract machine. Theoretical Computer Science, 96(1), 1992.
[13]
Scott Boag, Don Chamberlin, Mary F Fernández, Daniela Florescu, Jonathan Robie, Jérôme Siméon, and Mugur Stefanescu. XQuery 1.0: An XML query language. 2002.
[14]
Sean Bowe, Ariel Gabizon, and Matthew D Green. A multi-party protocol for constructing the public parameters of the pinocchio zk-snark. In International Conference on Financial Cryptography and Data Security, 2018.
[15]
Kevin D Bowers, Lujo Bauer, Deepak Garg, Frank Pfenning, and Michael K Reiter. Consumable credentials in logic-based access-control systems. In Annual Network and Distributed System Security Symposium, 2007.
[16]
Nadia Busi, Roberto Gorrieri, Roberto Lucchi, and Gianluigi Zavattaro. SecSpaces: a data-driven coordination model for environments open to untrusted agents. Electronic Notes in Theoretical Computer Science, 68(3), 2003.
[17]
Paolo Ciancarini. Coordinating rule-based software processes with ESP. ACM Transactions on Software Engineering and Methodology (TOSEM), 2(3), 1993.
[18]
Paolo Ciancarini. Distributed programming with logic tuple spaces. New Generation Computing, 12(3), 1994.
[19]
Ankush Das, Stephanie Balzer, Jan Hoffmann, and Frank Pfenning. Resource-aware session types for digital contracts. arXiv preprint arXiv:1902.06056, 2019.
[20]
Robert B Doorenbos. Production matching for large learning systems. Technical report, Carnegie-Mellon University, 1995.
[21]
Sameh El-Ansary, Luc Onana Alima, Per Brand, and Seif Haridi. Efficient broadcast in structured P2P networks. In International workshop on Peer-to-Peer systems, 2003.
[22]
Robert Bruce Findler and Matthias Felleisen. Contracts for higher-order functions. In ACM SIGPLAN Notices, volume 37. ACM, 2002.
[23]
Charles L Forgy. OPS5 user's manual. Technical report, Carnegie-Mellon University, 1981.
[24]
Charles L Forgy. Rete: A fast algorithm for the many pattern/many object pattern match problem. In Readings in Artificial Intelligence and Databases. Elsevier, 1989.
[25]
Cedric Fournet and Georges Gonthier. The reflexive CHAM and the join-calculus. In Principles of Programming Languages (POPL), 1996.
[26]
Thom Frühwirth. Theory and practice of constraint handling rules. The Journal of Logic Programming, 37(1-3), 1998.
[27]
Deepak Garg and Frank Pfenning. Non-interference in constructive authorization logic. In IEEE Computer Security Foundations Workshop, 2006.
[28]
David Gelernter. Generative communication in Linda. Transactions on Programming Languages and Systems, 7(1), 1985.
[29]
Yossi Gilad, Rotem Hemo, Silvio Micali, Georgios Vlachos, and Nickolai Zeldovich. Algorand: Scaling Byzantine agreements for cryptocurrencies. In Symposium on Operating Systems Principles. ACM, 2017.
[30]
Ian Grigg. EOS - An Introduction, 2017.
[31]
Dominik Harz and William J. Knottenbelt. Towards safer smart contracts: A survey of languages and verification methods. CoRR, abs/1809.09805, 2018.
[32]
Mike Hearn. Corda: A distributed ledger. Corda Technical White Paper, 2016.
[33]
Daira Hopwood, Sean Bowe, Taylor Hornby, and Nathan Wilcox. ZCash protocol specification. Tech. rep. 2016--1.10. Zerocoin Electric Coin Company, 2016.
[34]
IOHK. Formal specification of the Plutus core language (version 2.0). https://hydra.iohk.io/build/798158/download/1/plutus-core-specification.pdf. Accessed: 2019-04-27.
[35]
Kurt Jensen. Coloured Petri nets and the invariant-method. Theoretical computer science, 14(3), 1981.
[36]
Limin Jia, Jeffrey A Vaughan, Karl Mazurak, Jianzhou Zhao, Luke Zarko, Joseph Schorr, and Steve Zdancewic. Aura: A programming language for authorization and audit. In ACM SIGPLAN Notices, volume 43, 2008.
[37]
Leslie Lamport, Robert Shostak, and Marshall Pease. The Byzantine generals problem. ACM Transactions on Programming Languages and Systems (TOPLAS), 4(3), 1982.
[38]
Niels Lohmann, Eric Verbeek, Chun Ouyang, Christian Stahl, and Wil MP van der Aalst. Comparing and evaluating Petri net semantics for BPEL. International Journal of Business Process Integration and Management, 4(1), 2009.
[39]
Iain Merrick and Alan Wood. Coordination with scopes. In Symposium on Applied Computing, 2000.
[40]
Naftaly H Minsky and Jerrold Leichter. Law-governed Linda as a coordination model. In European Conference on Object-Oriented Programming, 1994.
[41]
Naftaly H Minsky, Yaron M Minsky, and Victoria Ungureanu. Safe tuplespace-based coordination in multiagent systems. Applied Artificial Intelligence, 15(1), 2001.
[42]
John Eliot Blakeslee Moss. Nested transactions: An approach to reliable distributed computing. Technical report, Massachusetts Institute of Technology, 1981.
[43]
Diego Ongaro and John Ousterhout. In search of an understandable consensus algorithm. In USENIX Annual Technical Conference, 2014.
[44]
Manuel Oriol and Michael Hicks. Tagged sets: a secure and transparent coordination medium. In International Conference on Coordination Languages and Models, 2005.
[45]
Norman W Paton and Oscar Díaz. Active database systems. ACM Computing Surveys (CSUR), 31(1), 1999.
[46]
Simon Peyton Jones, Jean-Marc Eber, and Julian Seward. Composing contracts: an adventure in financial engineering (functional pearl). In ACM SIGPLAN Notices, volume 35. ACM, 2000.
[47]
Stuart Popejoy. The Pact smart contract language, 2016.
[48]
Gary Riley. CLIPS basic programming guide, version 6.40 beta, 2017.
[49]
Ilya Sergey, Amrit Kumar, and Aquinas Hobor. Scilla: a smart contract intermediate-level language. CoRR, abs/1801.00687, 2018.
[50]
Martin Sulzmann, Edmund SL Lam, and Peter Van Weert. Actors with multi-headed message receive patterns. In International Conference on Coordination Languages and Models, 2008.
[51]
Nur Izura Udzir, Alan M Wood, and Jeremy L Jacob. Coordination with multicapabilities. Science of Computer Programming, 64(2), 2007.
[52]
Fabian Vogelsteller and Vitalik Buterin. ERC-20: A standard interface for tokens. https://github.com/ethereum/EIPs/blob/e7dac5b8287106143d361b1de3704ce0bba31983/EIPS/eip-20.md.
[53]
Gavin Wood. Ethereum: A secure decentralised generalised transaction ledger, 2014.
[54]
Joachim Zahnentferner. An abstract model of UTxO-based cryptocurrencies with scripts. IACR Cryptology ePrint Archive, 2018.
[55]
Joachim Zahnentferner. Chimeric ledgers: translating and unifying UTxO-based and account-based cryptocurrencies. IACR Cryptology ePrint Archive, 2018.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
PPDP '19: Proceedings of the 21st International Symposium on Principles and Practice of Declarative Programming
October 2019
280 pages
ISBN:9781450372497
DOI:10.1145/3354166
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

In-Cooperation

  • Sony: Sony Corporation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 07 October 2019

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

PPDP '19

Acceptance Rates

PPDP '19 Paper Acceptance Rate 19 of 45 submissions, 42%;
Overall Acceptance Rate 230 of 486 submissions, 47%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 128
    Total Downloads
  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 07 Jan 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media