skip to main content
10.1145/3240719.3241790acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Authenticated modular maps in Haskell

Published: 27 September 2018 Publication History

Abstract

We present hamm, a Haskell library that enables programmers to easily configure authenticated map (key-value store) implementations. We use type level programming techniques to establish an extensible foundation, and provide an example base map and several example “add on” transformers supporting features such as caches, Bloom filters and paging structures. Another add-on enables a prover to provide—and a verifier to verify—a “summary” containing only a small subset of the map’s data, and a verifier to receive and verify additional data only if needed. Preliminary performance results demonstrate significant potential for authenticated maps configured using hamm to support our goal of enabling participants to join blockchain networks faster.

References

[1]
2018. auth-adt. (2018). https://github.com/adjoint-io/auth-adt
[2]
Burton H. Bloom. 1970. Space/Time Trade-offs in Hash Coding with Allowable Errors. Commun. ACM 13, 7 (July 1970), 422-426.
[3]
Manuel M. T. Chakravarty, Gabriele Keller, Simon Peyton Jones, and Simon Marlow. 2005. Associated Types with Class. In Proceedings of the 32Nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '05). ACM, New York, NY, USA, 1-13.
[4]
James Cheney and Ralf Hinze. 2003. First-class phantom types. Technical Report. Cornell University.
[5]
T.H. Cormen, T.H. Cormen, C.E. Leiserson, R.L. Rivest, Massachusetts Institute of Technology, C. Stein, Inc Books24x7, MIT Press, and McGraw-Hill Publishing Company. 2001. Introduction To Algorithms. MIT Press.
[6]
Cryptographic hash functions 2018. Cryptographic hash functions. (2018). https://en.wikipedia.org/wiki/Cryptographic_hash_function.
[7]
Richard A. Eisenberg, Stephanie Weirich, and Hamidhasan G. Ahmed. 2016. Visible Type Application. In Programming Languages and Systems, Peter Thiemann (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 229-254.
[8]
GHC Team. 2018. GHC 8.4.1 User's Guide. (2018). https://downloads.haskell.org/~ghc/8.4.1/docs/html/users_guide/.
[9]
Sheng Liang, Paul Hudak, and Mark Jones. 1995. Monad Transformers and Modular Interpreters. In Proceedings of the 22Nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL '95). ACM, New York, NY, USA, 333-343.
[10]
Ralph C. Merkle. 1988. A Digital Signature Based on a Conventional Encryption Function. In Advances in Cryptology -- CRYPTO '87, Carl Pomerance (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 369-378.
[11]
Alp Mestanogullari, Sönke Hahn, Julian K. Arni, and Andres Löh. 2015. Type-level Web APIs with Servant: An Exercise in Domain-specific Generic Programming. In Proceedings of the 11th ACM SIGPLAN Workshop on Generic Programming (WGP 2015). ACM, New York, NY, USA, 1-12.
[12]
Andrew Miller, Michael Hicks, Jonathan Katz, and Elaine Shi. 2014. Authenticated Data Structures, Generically. SIGPLAN Not. 49, 1 (Jan. 2014), 411-423.
[13]
Satoshi Nakamoto. 2009. Bitcoin: A peer-to-peer electronic cash system. (2009). http://www.bitcoin.org/bitcoin.pdf
[14]
Péter Szilágyi. 2015. eth/63 fast synchronization algorithm #1889. (2015). https://github.com/ethereum/go-ethereum/pull/1889
[15]
Brent A. Yorgey, Stephanie Weirich, Julien Cretin, Simon Peyton Jones, Dimitrios Vytiniotis, and José Pedro Magalhães. 2012. Giving Haskell a Promotion. In Proceedings of the 8th ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI '12). ACM, New York, NY, USA, 53-66.

Cited By

View all
  • (2021)Formal verification of authenticated, append-only skip lists in AgdaProceedings of the 10th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3437992.3439924(122-136)Online publication date: 17-Jan-2021
  • (2019)An efficient algorithm for type-safe structural diffingProceedings of the ACM on Programming Languages10.1145/33417173:ICFP(1-29)Online publication date: 26-Jul-2019

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
TyDe 2018: Proceedings of the 3rd ACM SIGPLAN International Workshop on Type-Driven Development
September 2018
90 pages
ISBN:9781450358255
DOI:10.1145/3240719
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].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 27 September 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Authenticated datatypes
  2. Blockchain
  3. Haskell

Qualifiers

  • Research-article

Conference

ICFP '18
Sponsor:

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)1
Reflects downloads up to 17 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2021)Formal verification of authenticated, append-only skip lists in AgdaProceedings of the 10th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3437992.3439924(122-136)Online publication date: 17-Jan-2021
  • (2019)An efficient algorithm for type-safe structural diffingProceedings of the ACM on Programming Languages10.1145/33417173:ICFP(1-29)Online publication date: 26-Jul-2019

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