From 14db294657b3f21d2241119c6188f3d3a6565f85 Mon Sep 17 00:00:00 2001 From: "Chelsea H. Komlo" Date: Tue, 1 Sep 2020 13:45:44 -0400 Subject: [PATCH] add clarification on where Tor is inserted for Zcash --- .../network-privacy.pdf | Bin 95192 -> 95964 bytes .../network-privacy.tex | 32 ++++++++++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/network-privacy-assessment/network-privacy.pdf b/network-privacy-assessment/network-privacy.pdf index 51549a7afecfd471829b6aac7364668fc52d05e9..f18d8f22b27ca77b594c6a642142a7b5d9645d58 100644 GIT binary patch delta 23005 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 delta 22263 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 TIg`sv%fckd1q2ZK>g4|cMfP=g diff --git a/network-privacy-assessment/network-privacy.tex b/network-privacy-assessment/network-privacy.tex index afad456..bb0705a 100644 --- a/network-privacy-assessment/network-privacy.tex +++ b/network-privacy-assessment/network-privacy.tex @@ -467,7 +467,7 @@ general-purpose Loopix-based mixnets~\cite{Piotrowska:2017:LAS}. Further, we review private information retrieval (PIR) as a method which can be used in conjunction with the above systems. -\textbf{Dandelion.} +\subsection{Dandelion.} Dandelion~\cite{BojjaVenkatakrishnan:2017:DRB} and Dandelion++~\cite{Fanti:2018:DLC} is a lightweight gossip protocol aimed at adding additional network privacy for @@ -494,7 +494,9 @@ a super node to link a specific transaction to the node which originally published that transaction. -\textbf{Tor.} +\subsection{Tor.} +\label{tor-intro} + Tor~\cite{tor-specification} is an anonymity network that today has over 2.5 million users and a network size of over 6,500 nodes. Tor supports applications that require low latency, @@ -513,8 +515,16 @@ participants, Tor avoids epistemic or routing attacks unlike completely decentralized networks which cannot guarantee a user or relay's view of the network is authentic or that all users fall within a global anonymity set. +In Zcash, Tor integration can be implemented at several points: between senders +and the Zcash network, between Zcash peers, or between receivers and the Zcash +network. Because our focus is on preventing \emph{end-to-end} correlation +attacks, we focus our attention on integrating Tor to submit and receive +transactions only. While integrating Tor between Zcash peers could have some +utility, as demonstrated by our analysis, this protection can easily be +circumvented by malicious peers handling entry/exit traffic to the network. -\textbf{Loopix-based Mixnets.} + +\subsection{Loopix-based Mixnets.} While a range of mix network designs have been introduced in the literature, in this assessment we consider only those which instantiate the Loopix~\cite{Piotrowska:2017:LAS} design, which provides improved latency @@ -531,7 +541,7 @@ the network. However, alternative network distribution mechanisms can be used, but similarly may be subject to epistemic and path-routing attacks similar to other distributed networks. -\textbf{Private Information Retrieval (PIR).} +\subsection{Private Information Retrieval (PIR).} Even though the above network anonymity systems disassociate a sender or receiver's identity from the transaction, nodes can still observe which blocks are being fetched and perform fingerprinting attacks using this information. @@ -758,7 +768,8 @@ following steps to provide stronger security and privacy guarantees. In looking at Table~\ref{network-zcash-assessment}, the strongest protections are offered by the combination of PIR along with a network anonymity tool such -as Tor or a mixnet. Because use of an anonymity network protects against +as Tor or a mixnet between senders and receivers and the edges of the Zcash +network. Because use of an anonymity network protects against directly leaking the network identity of a user, and PIR protects against disclosing the contents of a user's query, the combination of these methods leaves little room for an attacker to gain advantage. @@ -774,12 +785,19 @@ itself. Again, this observation requires that the receiver can hide the contents of their query. -As such, our immediate-term plan to proceed with Tor integration, and will -assess PIR as a second step. +As such, our immediate-term plan to proceed with Tor integration to facilitate +sending and receiving transactions over Tor, and will +assess PIR to improve receiver query privacy as a second step. We will continue to observe the development of production-ready mixnets as a possible option in the future, with an eye towards large-scale adoption in order to ensure sufficiently large anonymity sets for users. +As discussed in Section~\ref{tor-intro}, sending Peer-to-Peer traffic between +Zcash nodes may frustrate some attackers' ability to perform end-to-end +correlation attacks, but has no effect on other adversaries such +as malicious light wallets. As such, we deem integrating Tor in the P2P gossip +protocol for Zcash as low priority. + \section{Conclusion} \label{conclusion}