Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Zcash on Tor - Project Grant Proposal #11
Motivation and overview
The 'Zcash on Tor' project is an existing and free service for both the Zcash community and Tor users alike.
Our privacy focused service amalgamates high-capacity Zcash peer-to-peer nodes with fast, high-bandwidth Tor servers. The project aims to uphold the core values of the Zcash Foundation, particularly with regard to enabling users to better control their own financial privacy.
The project was started in mid-March 2017 from community donations totalling around $300 and has continued to-date, mainly through ongoing personal contribution.
Our primary motivation is to help solve network correlation issues that can affect regular Zcash users, through the continued provision of our censorship-resistant service and by further empowering and educating users to make the best use of existing software tools. We uphold the individual right to privacy as a basic and fundamental human right.
A grant will primarily enable us to:
We currently host 4 Tor Relays, 1 (2) Tor Exits nodes and 4 Tor hidden_service client nodes.
Therefore, a total of 10 dedicated addnode=zcashxxxxxxxxxxx.onion nodes are already made available by our service.
Our public facing Relays can be located via the Tor Atlas: https://atlas.torproject.org/#search/ZcashTor
Each 'Zcash on Tor' IP address runs a full Zcash peer-to-peer node, enabling upwards of 256+ concurrent connections per node (helping to strengthen the network and contributing to a social good!). 4 new increased capacity (Tier 1) servers will enable us to scale up to thousands of concurrent connections and users.
Details of how to connect with our privacy service can be found via the Zcash Forum: https://forum.z.cash/t/zcash-addnode-tor-hidden-service-onion/13007 - another aim for the project is to improve supporting documentation, user guides and automated set-up tools.
Team and background qualifications
xyZcash (a.k.a BitcoinFX) is a long-standing and active member of the Bitcoin and crypto-currency communities. He has been hosting Tor Relay's and Exit nodes for almost 10 years. As a private individual, background qualifications and identity documentation are to be made available to the relevant parties, where deemed to be appropriate and necessary.
Other team members are currently TBD.
We will continue to evaluate and provide community updates in regards to our current and future Zcash on Tor service provision. Whilst some metrics (and estimates) can be made available for the approximate number of users and actual bandwidth throughput etc., good anonymity and privacy networks generally do not retain such information by design.
In terms of our operational security - we have partnered with https://tornull.org to limit any potential or actual abuse issues. We already have practical measures in place including firewalls and DDoS protection. See: https://forum.z.cash/t/an-example-zcash-iptables-firewall-for-linux-cloud-servers/8736
We will closely follow all security advisory notifications from both the Zerocoin Electric Coin Company and the Tor Project Inc., in regards to software upgrades and best practices. Our operating systems and cloud services are kept up-to-date with the latest security releases.
From a legal standpoint, as Tor Exit node operators, we are looking to establish a UK based Non-profit ISP (as advised by the Tor Project Inc.) and to perhaps put in place some form of legal defence fund contingency. We already have extensive experience of dealing with and responding to any abuse complaints.
We do not store any Zcash or make any direct transactions via our own servers; as such we are a network of routers operating as common carriers, much like the internet backbone. Our nodes therefore contain no identifiable routing information, or any details of transactions that are not already available on the Zcash blockchain. Our routers maintain no logs whatsoever of any of the Tor traffic and therefore attempts to seize our routers would accomplish nothing.
From a Zcash on Tor user perspective we are keen to work on improving supporting documentation, user guides and automated set-up tools - particularly in regards to users privacy, security and anonymity, as well as choice secure operating systems and procedures.
October - November 2017
November - December 2017
December 2017 - January 2018
January 2018 - ongoing
More TBD within our final submission document.
Budget and justification
Servers and cloud services;
We require $1050 (including UK VAT at 20%) as direct expenses to maintain our existing servers for a minimum of 6 months.
We require $288 (plus UK VAT at 20%) as direct expenses to maintain our 4 new high-capacity servers for a minimum of 6 months.
We would require $300 (plus UK VAT at 20%) as direct expenses plus estimated $500 min. to develop and launch our Zcash on Tor .onion enabled mining pool for zaddresses. The service will likely include a 1% mining fee as a direct contribution to our projects ongoing costs.
Our full costings breakdown will be in the final submission document (to include research and development, contingency costs, fees, overheads and any out-of-pocket expenses).
As a future non-profit ISP we are already operating our free and voluntary service on a tight personal budget and with some community support. Grant provision will allow the 'Zcash on Tor' project to focus on continuing our privacy research, development and outreach, as well as maintaining and securing existing and new services for the Zcash community and for regular Tor users.
Thank you for your consideration.
EDIT : 5th October 2017 : Zcash on Tor - Grant Proposal 2017 Q4 - Final Submission.pdf
@xyZcash I would prefer to see this funded for 12 months, since the technology risk is low (this is mostly ongoing/mature tech). Can you post a suitable budget?
Regarding security, can you comment on single-point-of-failure risks and how you plan to mitigate them? Likewise on the issue of colluding Tor nodes being in position to weaken anonymity.
To be explicit: this is about running servers, not Zcash+Tor code development, right?
There have been discussions of improvements to Zcash's Tor support (https://github.com/zcash/zcash/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20tor%20in%3Atitle%20), and adding I2P support (https://github.com/zcash/zcash/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20i2p%20%20in%3Atitle%20). Is it correct to say that those coding efforts are outside the scope of this proposal, but if they're implemented and easily enabled in nodes, then the servers supported by this proposal will be upgraded accordingly?
@tromer Thank you for expressing your interest with regards to the funding duration. This is useful to know for our work on the budget proposal. We will put forward at least 3 flexible and scaleable budgeting options for the Foundations consideration.
In terms of security and single-point-of-failure issues - we look to complete additional research and work with the Foundation and community to mitigate said risks. We also fully recognise that this project should be 'trustless', where possible.
Having a single entity as the 'Zcash on Tor' project initially hosting the majority of servers has already been identified as a pertinent issue to be addressed. Hence the reason why community education, outreach, automated set-up tools and improved documentation is required to ensure increased user inclusion and participation.
As the internet adage states "you cannot really be anonymous by yourself!" ...
Thus, whilst we have already presented Zcash on Tor servers as a core 'always-on' system for building-up and strengthening Zcash user anonymity and security provision, increasing the number of ephemeral / user submitted nodes into the mix is most certainly the best option moving forward, for everyone.
With an increasing number of nodes available, blocks of server types can be easily selected by users themselves and/or at random. Transparency in this regard will also provide the best case user anonymity, privacy and security. Lists of known Zcash addnode=.onion servers should be listed appropriately i.e. hosted by us (or hosted by 'unknown'), hosted by x 'trusted' organisation, community member node, last seen running Zcash software version x, etc.,
In regards to trust we would propose a not dissimilar set-up to a Canary Watch.
Facilitating user choice goes some way towards solving the identified issue of potentially colluding Tor nodes being in a position to possibly weaken user anonymity. Zcash on Tor users can already select configurations to utilize one or more (or none!) of our .onion addnodes, whilst exiting additional (or all) peer-to-peer connections via Tor exit nodes. This is not dissimilar to adding addnode=mainnet.z.cash when using only clearnet (i.e the regular internet), for example.
All of our projects publicly facing Tor nodes already have the MyFamily flag correctly set and therefore the Tor software avoids building circuits within that same family. We have purposefully hosted existing nodes in a variety of countries for better Geo IP diversity and we also use a selection of hosting providers for this very same reason.
Our current and most future nodes will run as 'dual stack' servers, being connected both via Tor and clearnet at the same time, which does already help to avoid certain types of traffic manipulation or clustering 'attacks'. This is actually provable, as the nodes are on public IP addresses (documented via the Tor Atlas), whilst clients connecting to the mix of non-corresponding addnode=.onion addresses via Tor retain near perfect privacy and anonymity. Remembering also that by Tor network design it is practically impossible for the hidden service operator (or host) to identify a connecting user.
I agree that we have much more research to undertake in this regard though.
@tromer Correct. The project is primarily focused on maintaining our existing servers and running new Zcash+Tor enabled servers.
However, I see few obstacles with regards to a newly formed, privacy focused, non-profit Tor ISP both contributing to and/or facilitating code development + safe working practices and contracting or employing additional staff to undertake such roles.
Whilst we are more familiar with Tor over I2P, enabling I2P on existing or new servers would certainly be an option and this can also be set-out within the scope of the final proposal submission.
Realize that I often switch between the use of 'We and I', as some other team members are contributing to the project, although they are OK with remaining in an advisory only role for now.
We would look forward to working closely with the Foundation and of course implementing new privacy and security features and/or networking; where appropriate, along with continuing research and development.
Thanks, @xyZcash. I am satisfied by these answers as offering the best available measures to mitigate the centralization risks in this setting.
Are there instructions or tools (e.g., deployment and monitoring scripts) that you publish to help others run their own independent nodes?
Every informal proposal has multiple reviews by the review committee. The reviews are being collected and discussed in a private google doc (the 5 reviewers all have edit access to it, no one else can view it). By way of early, informal feedback, the reviewers have made a list of projects that they consider leading candidates for grant funding.
In that vein, your project was selected as one of the leading candidates, and the review committee encourages you to submit a full proposal by October 6th and looks forward to reviewing it.
Thank you @tromer That is good to know.
Some basic set-up instructions are available via the Zcash forum here : https://forum.z.cash/t/set-up-guide-for-running-zcash-on-tor-ubuntu-debian-linux-desktop/18748
Easy deployment tools for independent users is certainly a priority moving forward and something I look forward to both collaborating on and building.
@acityinohio Thank you for the reminder!
Herewith, Zcash on Tor - Grant Proposal 2017 Q4 - Final Submission.pdf
We thank all board members for their consideration.
@tromer Sure. This figure is actually an average of the minimum number of hours that I already dedicate to the project.
Whilst planned server maintenance accounts for most of the working time in the lower budget, the running of a registered non-profit has also been factored in and therefore this working time also covers extras, such as; paying server bills and general accounting, responding to any abuse complaints, unscheduled maintenance and emergency incident response, research and development time, pro-active security / attack mitigation etc.,
Based on experience this is a realistic estimate to cover all eventualities.
@alexcryptan Yes. I'm aware of the MITM risks that using Zcash (or Bitcoin) on Tor can introduce, both from a client and service providers perspective. I have read your linked research paper in the past and will certainly be re-reading it over this weekend to respond more fully.
The research paper has most certainly identified most of the actual and/or theoretical attack vectors and therefore provides a solid base for how our projects efforts might be combined to mitigate these risks moving forward.
Some of the attack vectors highlighted have already formed the basis of my best working practices for our servers maintenance and firewall configurations etc.,
The project will naturally be phased towards next generation Hidden_Services v3 when appropriate. Initial testing on our testnet nodes has now been commenced in this regard: https://forum.z.cash/t/meet-tazy-our-zcash-on-tor-testnet-node/20398/10
@xyZcash : I'm thrilled to inform you that the Grant Review committee—and the Zcash Foundation board—has tentatively approved your proposal! While the recommendations are already posted, we are planning to make a more public post tomorrow morning (November 21st) Pacific Standard Time.
Next steps: please email me
Just in case you didn't see it, please find the committee recommendation for your project below, and congratulations again!