Charlotte: Composable Authenticated Distributed Data Structures, Technical Report

05/09/2019
by   Isaac Sheff, et al.
0

We present Charlotte, a framework for composable, authenticated distributed data structures. Charlotte data is stored in blocks that reference each other by hash. Together, all Charlotte blocks form a directed acyclic graph, the blockweb; all observers and applications use subgraphs of the blockweb for their own data structures. Unlike prior systems, Charlotte data structures are composable: applications and data structures can operate fully independently when possible, and share blocks when desired. To support this composability, we define a language-independent format for Charlotte blocks and a network API for Charlotte servers. An authenticated distributed data structure guarantees that data is immutable and self-authenticating: data referenced will be unchanged when it is retrieved. Charlotte extends these guarantees by allowing applications to plug in their own mechanisms for ensuring availability and integrity of data structures. Unlike most traditional distributed systems, including distributed databases, blockchains, and distributed hash tables, Charlotte supports heterogeneous trust: different observers may have their own beliefs about who might fail, and how. Despite heterogeneity of trust, Charlotte presents each observer with a consistent, available view of data. We demonstrate the flexibility of Charlotte by implementing a variety of integrity mechanisms, including consensus and proof of work. We study the power of disentangling availability and integrity mechanisms by building a variety of applications. The results from these examples suggest that developers can use Charlotte to build flexible, fast, composable applications with strong guarantees.

READ FULL TEXT
research
06/18/2018

A Web of Blocks

Blockchains offer a useful abstraction: a trustworthy, decentralized log...
research
06/02/2023

Auditable data structures: theory and applications

Every digital process needs to consume some data in order to work proper...
research
11/30/2021

Scaling Shared-Memory Data Structures as Distributed Global-View Data Structures in the Partitioned Global Address Space model

The Partitioned Global Address Space (PGAS), a memory model in which the...
research
10/04/2019

RDMA vs. RPC for Implementing Distributed Data Structures

Distributed data structures are key to implementing scalable application...
research
07/02/2023

What if we tried Less Power? – Lessons from studying the power of choices in hashing-based data structures

In the first part of this survey, we review how the power of two choices...
research
01/28/2020

Peeling Close to the Orientability Threshold: Spatial Coupling in Hashing-Based Data Structures

Hypergraphs with random hyperedges underlie various data structures wher...
research
02/07/2020

Assuring Automotive Data and Software Integrity Employing Distributed Hash Tables and Blockchain

Automotive software is increasingly complex and critical to safe vehicle...

Please sign up or login with your details

Forgot password? Click here to reset