Independent Mixnet and PIR R&D for Zcash

Zcash Foundation Grant: Mixnet + PIR

Applicant background

HashCloak is a privacy and scalability R&D lab headquartered in Toronto but with a global team. Our focus is on building and researching areas of blockchain privacy and scalability that we feel are underexplored. Our mission is to bring full-stack privacy to blockchain networks in scalable and usable ways. As such, HashCloak is a young team. Our current team members have worked on projects such as Shyft, ETH2.0 and Althea and to the development of optimistic rollups. We bring a well-rounded approach to R&D.

Motivation and overview

The goal of our proposed project is to research how combining mix networks (mixnets) and information theoretic private information retrieval (IT-PIR) can be used for building privacy-preserving lightweight clients for Zcash.

Our motivation comes from the fact that currently, in Zcash, there is no straightforward way to privately read from the Zcash blockchain, despite the fact that there is a way to privately write to the Zcash blockchain (through the enabling Tor functionality in Zcashd). With Tor enabled, light clients can read from the Zcash blockchain to detect payments. This means that an observer won't be able to tell which light client read from the blockchain but they can tell what was queried for (e.g which payments the light client wanted to detect). As Zcash is a privacy-preserving cryptocurrency, this is of concern since one of the goals is to keep both the query and querier private.

As Zcash is well-known for making previously unpractical cryptography primitives such as zero-knowledge proofs practical, we believe that Zcash is well-suited to bring a previously well-studied anonymous networking protocols such as mixnets and private information retrieval protocols into production.

Technical approach

We aim to pursue the following approaches for a mixnet and PIR based light client design:

  • Our first approach is based on ZIP307 in which there is a proxy that provides a bandwidth efficient format of zcash full node data to a set of light client servers.
  • Our second approach is based on direct communication between light client servers and full nodes

We propose to construct improvements to reading and writing from the Zcash blockchain using modern techniques from PIR and mixnets. We will be using the following primitives in an attempt to build such a system:

Note that the above list is non-exhaustive and we hope to use any useful primitives come about throughout our research.

Execution risks

As there is a large research component, things might take longer than original anticipated. Further, we may stumble upon results that prevent certain goals from being possible. Another potential execution risks is with respect to implementing these changes into Zcash directly. It is possible that what we proposed doesn't get implemented into Zcash proper due to a variety of factors such as the Zcash roadmap.

Downsides

The main downsides we foresee are the following:

  • Increased complexity to running a full-node
  • Extra overhead for mobile Zcash wallets
  • Maintenance costs associated with specialized expertise

Evaluation plan

Our evaluation plan has to two components. First, we will provide constructions using formal cryptographic definitions and proofs. This will enable us to show that our construction satisfies a certain level of security and privacy in accordance with Zcash's goals. It will also provide us with theoretical bounds on bandwidth, latency, etc. The second component will be an implementation of the proposed construction. This will allow us to show that the construction is feasible in practice and we can confirm that bandwidth costs, latencies, etc are within the theoretical bounds.

Tasks and schedule

(3 months) Initial designs and specifications (6 months) Prototype implementation (3 months) Improvements and refinements to the protocol specification and implementation

Budget and justification

We are asking for $50K for a 12 months worth of research, broken up as follows:

  • Building a team with the following composition ($45K):
    • 2 software engineers
    • 2 researchers
    • 1 devops engineer (optional as it can be amalgamated into the software engineering responsibilities)
  • Devops and Cloud resources ($5K)

Tipping

Tips Received
???  
ZEC
Accepted without fundingThis proposal has been posted publicly, but isn't being funded by the Zcash Foundation.

Campaign

Started
4 months ago
Requested Funding
$50,000
Open for Community Donations