66 research outputs found

    Authenticated Data Structures as Functors in Isabelle/HOL

    Get PDF
    Merkle trees are ubiquitous in blockchains and other distributed ledger technologies (DLTs). They guarantee that the involved systems are referring to the same binary tree, even if each of them knows only the cryptographic hash of the root. Inclusion proofs allow knowledgeable systems to share subtrees with other systems and the latter can verify the subtrees\u27 authenticity. Often, blockchains and DLTs use data structures more complicated than binary trees; authenticated data structures generalize Merkle trees to such structures. We show how to formally define and reason about authenticated data structures, their inclusion proofs, and operations thereon as datatypes in Isabelle/HOL. The construction lives in the symbolic model, i.e., we assume that no hash collisions occur. Our approach is modular and allows us to construct complicated trees from reusable building blocks, which we call Merkle functors. Merkle functors include sums, products, and function spaces and are closed under composition and least fixpoints. As a practical application, we model the hierarchical transactions of Canton, a practical interoperability protocol for distributed ledgers, as authenticated data structures. This is a first step towards formalizing the Canton protocol and verifying its integrity and security guarantees

    Explicitness and ellipsis as features of conversational style in British English and Ecuadorian Spanish

    Get PDF
    In this article I examine differences in conversational style between British English and Ecuadorian Spanish which can be the source of communication conflict among speakers of these two languages in telephone conversations, and, presumably in other types of interaction. I look at the language of mediated and non-mediated telephone conversations and examine one feature that interacts with indirectness, i.e., the degree of explicitness participants employ to realize similar acts or moves in the two languages. In non-mediated telephone interactions both British English and Ecuadorian Spanish speakers appear to display a preference for the use of explicitness in formulating various telephone management moves. On the other hand, in mediated interactions, while the British appear to favour explicitness, Ecuadorians in the present study, make use of elliptical forms. The latter, however, tend to be accompanied by deference markers. Differences in the use of explicit and elliptical utterances are interpreted as reflecting that, in certain types of interactions, Ecuadorians favour a style that can be characterized as fast and deferential, but possibly rather abrupt to the English, whereas the latter appear to favour a less hurried style which emphasizes the expression of consideration rather than deference

    Generic Authenticated Data Structures, Formally

    Get PDF
    Authenticated data structures are a technique for outsourcing data storage and maintenance to an untrusted server. The server is required to produce an efficiently checkable and cryptographically secure proof that it carried out precisely the requested computation. Recently, Miller et al. [https://doi.org/10.1145/2535838.2535851] demonstrated how to support a wide range of such data structures by integrating an authentication construct as a first class citizen in a functional programming language. In this paper, we put this work to the test of formalization in the Isabelle proof assistant. With Isabelle\u27s help, we uncover and repair several mistakes and modify the small-step semantics to perform call-by-value evaluation rather than requiring terms to be in administrative normal form

    Quasivarieties and Varieties of Ordered Algebras: Regularity and Exactness

    Get PDF
    We characterise quasivarieties and varieties of ordered algebras categorically in terms of regularity, exactness and the existence of a suitable generator. The notions of regularity and exactness need to be understood in the sense of category theory enriched over posets. We also prove that finitary varieties of ordered algebras are cocompletions of their theories under sifted colimits (again, in the enriched sense)

    Zero-cost meta-programmed stateful functors in F*

    Full text link
    Writing code is hard; proving it correct is even harder. As the scale of verified software projects reaches new heights, the problem of efficiently verifying large amounts of software becomes more and more salient. Nowhere is this issue more evident than in the context of verified cryptographic libraries. To achieve feature-parity and be competitive with unverified cryptographic libraries, a very large number of algorithms and APIs need to be verified. However, the task is oftentimes repetitive, and factoring out commonality between algorithms is fraught with difficulties, requiring until now a significant amount of manual effort. This paper shows how a judicious combination of known functional programming techniques leads to an order-of-magnitude improvement in the amount of verified code produced by the popular HACL* cryptographic library, without compromising performance. We review three techniques that build upon each other, in order of increasing sophistication. First, we use dependent types to crisply capture the specification and state machine of a block algorithm, a cryptographic notion that was until now only informally and imprecisely specified. Next, we rely on partial evaluation to author a higher-order, stateful functor that transforms any unsafe block API into a safe counterpart. Finally, we rely on elaborator reflection to automate the very process of authoring a functor, using a code-rewriting tactic. This culminates in a style akin to templatized C++ code, but relying on a userland tactic and partial evaluation, rather than built-in compiler support

    Solving the Expression Problem in C++, à la LMS

    Get PDF
    • …
    corecore