Scalability, Confidentiality, Availability, & Integrity for Block-Webs with Charlotte
Charlotte is a framework for block-based distributed systems, such as Blockchains. The core idea is to separate Storage from Consensus: not all servers need store all blocks. By nature, when blocks refer to each other by hash, they form a DAG, but most applications want a more specific data structure than any old DAG (for example, a chain). Each data structure therefore requires a set of Integrity servers to decide which blocks belong. References to blocks contain attestations from storage servers that they are available, as well as attestations from Integrity servers. Charlotte provides the flexibility to make block-webs more scalable, confidential, available, and trustworthy than any one blockchain.