Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zcash on Tor - Project Grant Proposal #11

Open
xyZcash opened this issue Sep 11, 2017 · 15 comments
Open

Zcash on Tor - Project Grant Proposal #11

xyZcash opened this issue Sep 11, 2017 · 15 comments

Comments

@xyZcash
Copy link

xyZcash commented Sep 11, 2017

Motivation and overview

See: https://forum.z.cash/t/zcash-on-tor-a-community-funded-proposal/14651

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:

  1. Maintain our existing Zcash on Tor servers.
  2. Establish (at least) 4 new increased capacity (Tier 1) Zcash on Tor .exit servers.
  3. Develop and operate a Zcash on Tor .onion enabled mining pool for zaddresses.
  4. Set-up (Tor enabled) Zcash Proving key distribution mirrors.
  5. Work on supporting documentation, user guides and automated set-up tools.

Technical Approach

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.

Evaluation plan

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.

Security Considerations

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.

Schedule

October - November 2017

  • Identify appropriate hosting for the new increased capacity (Tier 1) Zcash on Tor .exit servers.

November - December 2017

  • Set-up our UK registered non-profit ISP.
  • Establish and launch (at least) 4 new increased capacity (Tier 1) Zcash on Tor .exit servers.
  • Set-up (Tor enabled) Zcash Proving key distribution mirrors.
  • Build and launch our full zcashtorservers.org service website.

December 2017 - January 2018

  • Develop and launch our Zcash on Tor .onion enabled mining pool for zaddresses.

January 2018 - ongoing

  • Work on improving supporting documentation, user guides and automated set-up tools.
  • Build on and facilitate increased community education and outreach.
  • Continue (and assist) with Zcash privacy research and development, where appropriate.
  • Consider integrating additional Zcash on Tor services provision, such as the ORC (Onion Routed Cloud) ?

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
https://github.com/ZcashFoundation/GrantProposals-2017Q4/files/1360660/Zcash.on.Tor.-.Grant.Proposal.2017.Q4.-.Final.Submission.pdf

@tromer
Copy link

tromer commented Sep 11, 2017

@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.

@tromer
Copy link

tromer commented Sep 15, 2017

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?

@xyZcash
Copy link
Author

xyZcash commented Sep 15, 2017

@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.

@xyZcash
Copy link
Author

xyZcash commented Sep 16, 2017

@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.

@tromer
Copy link

tromer commented Sep 17, 2017

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?

@acityinohio
Copy link
Contributor

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.

@xyZcash
Copy link
Author

xyZcash commented Oct 5, 2017

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.

@xyZcash
Copy link
Author

xyZcash commented Oct 5, 2017

@acityinohio Thank you for the reminder!

Herewith, Zcash on Tor - Grant Proposal 2017 Q4 - Final Submission.pdf

Zcash on Tor - Grant Proposal 2017 Q4 - Final Submission.pdf

We thank all board members for their consideration.

@tromer
Copy link

tromer commented Oct 7, 2017

@xyZcash I'm surprised that maintaining the existing Tor nodes requires 8 hours a week of your time on ongoing basis (according to the budget). Can you say more about this?

@alexcryptan
Copy link

@xyZcash Are you aware of the MITM risks that Tor introduces http://ieeexplore.ieee.org/document/7163022/
Do you plan to switch to next gen HS v3 once it is stable?

@xyZcash
Copy link
Author

xyZcash commented Oct 27, 2017

@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.

@xyZcash
Copy link
Author

xyZcash commented Oct 27, 2017

@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

@alexcryptan
Copy link

@xyZcash @tromer Good replies, I am Ok with it.

@acityinohio
Copy link
Contributor

@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 josh [at] z.cash.foundation with an email address suitable as a point of contact. Due to our newfound 501(c)3 status there are additional reporting and compliance burdens that may delay or change disbursements, but we are working through them as fast as we can.

Just in case you didn't see it, please find the committee recommendation for your project below, and congratulations again!

The proposer runs "Zcash on Tor", a free service which provides Zcash peer-to-peer nodes accessible as high-bandwidth Tor servers, to help users protect the privacy of the Zcash transactions from network monitoring attacks. The funds will be used to maintain and upgrade this service, where the bulk of the cost is system administration. The proposer also plans to set up non-profit ISP in UK to put things on solid ground legally.

The committee points out that the use of Zcash over Tor opens some potential attacks, as discussed, and that the presence of many additional, independent nodes is needed to mitigate these attacks; we hope that the open-source deployment tools released under this project will facilitate this.

We recommend funding at the first suggested tier, approx. USD 9,300. The higher funding tiers would offer additional capacity and functionality, but the labor costs seem excessive and the functionality is less essential.

@sonyamann
Copy link

Hi @xyZcash! I'm pinging all of the 2017 grant recipients for updates on their projects. Can you either write a paragraph or two here, or alternately email me? sonya@z.cash.foundation

Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants