Overview

In early 2023, the Zcash Foundation commissioned the authors to write a systemization of knowledge paper on the topic of privacy-preserving blackchain programmability solutions, in order to inform discussions amongst the Zcash community about adding programmability to Zcash. This project is to be delivered in three phases:

In this write-up, corresponding to the milestone 1 deliverable, we establish a structural outline consisting of four main components:

  1. Framework — a general protocol model, and common state models and execution models
  2. Parameters — semi-formal definitions for privacy, security, efficiency, and data availability used in comparing different protocols
  3. Applications — classes of common applications supported by the above protocols
  4. Protocols — overview of contemporary protocols, analyzed in terms of the above parameters and designs

In the final write-up for this project, an additional section will be included discussing conclusions on protocol design, and recommendations for useful implementation paradigms.

Table of Contents

1. Framework

1.1 Protocol Model

To provide a formal basis for defining notions of privacy and security, we start by describing a uniform underlying general model which we will use to interpret the properties and behaviors of network protocols.

One fundamental idea which is important in many areas of analysis is that of identity in a distributed protocol. For our purposes, there will be two related notions of identity:

Here, keypairs provide an algorithm-level notion of identity allowing private communication and authentication, and which usually can be created inexpensively by random sampling. Nodes provide a protocol-level notion of identity, and are the abstraction which generates and makes use of keypairs.