--- title: Applications for Zcash tags: letters/fundraising robots: noindex, nofollow --- An account needs to be created at the ZOMG site (https://grants.zfnd.org/) for either Blockchain Commons or Christopher Allen, then an application can be created. What follows if the first cut for the two we discussed, though the sizing (word count) of all of the sections may not be right: some cutting may be required for actual submission (because the requirements are all buried in the actual app process). ## 1. #SmartCustody for Zcash ### Title #SmartCustody for Zcash ### Brief A procedure and risk-management system for end-users, detailing how to ensure the safety of their Zcash. ### Target Amount ??? [my initial thumbnail is 17 days, which is cost to BCC of $13.6k. So, somewhere from $20k-30k total is my suggestion, just note we have to justify it below.] ### Applicant Background Blockchain Commons is a not-for-profit public-benefit company that is dedicated to the creation of public infrastructure for the blockchain industry. One of our main goals is to "Increase the demand for, and population of, people who understand the effective development, and use of, secure decentralized systems." We manage this through tutorials, such as our original #SmartCustody. The authors of that book (and the principals of this project) are Christopher Allen and Shannon Appelcline. Christopher is a futurist who is the co-author of the TLS spec, the founder of the Rebooting Web of Trust design workshops, and the founder of Blockchain Commons. Shannon is a technical writer with extensive blockchain experience, including work for Blockstream, Bitmark, Blockchain Commons, and Certicom and the co-authorship of #SmartCustody and Learning Bitcoin from the Command Line. ### Motivation and Overview The goal of #SmartCustody for Zcash is take the existing material created for Blockchain Commons' Bitcoin-focused #SmartCustody book, including its cold-storage procedure, its adversary-focused analysis, and its risk-management system, and to revise it, expand it, and reimagine it for use specifically with Zcash. It's been about two years since we last worked on #SmartCustody, so one of our motivations is to bring it up to the modern day. We also learned what students found easy and what they found hard when we presented #SmartCustody as an in-person seminar in early 2019. However, most importantly, we want to expand the base of #SmartCustody to include not just Bitcoin users, but also holders of other types of cryptocurrencies. Zcash is a good choice for doing so, because on the one hand it's built on Bitcoin's codebase, but on the other hand it introduces new privacy support that is a natural complement to some of #SmartCustody's lessons for protecting digital assets. Our original #SmartCustody book ran 186 pages. It taught users safe cold-storage techniques as well as methods to assess their personal adversaries, chart out their risks, and revise their holdings accordingly. We expect an expanded Zcash version to build on that with additional support for multi-sigs and shielded addresses. ### Technical Approach Obviously, this is a writing project, so the technical work is on the front-end, ensuring that our #SmartCustody techniques work with Zcash and are up-to-date. Here's our general approach for putting this new edition together. 1. Reorder Existing Material for Improved Pedagogy [2d] Our #SmartCustody seminar taught us that our risk modeling was the heaviest lift in our course, so we'll be reorganizing the book to first get readers focused on our cold-storage scenario before diving into the higher level complexities. 2. Conversion to Zcash [4d] Obviously, this is one of the biggest elements of the updated course: assessing what's usable in Zcash and just as importantly, what's important to highlight for Zcash that isn't included already. 3. Zcash privacy [2d] Zcash's focus on privacy is a crucial one for #SmartCustody. Our plan is to support it as a chapter containing a procedure plug-in that will talk about the dangers of lack of privacy and the ways to support it using Zcash and its shielded addresses (and how selective disclosure relates to that). 4. Multi-sigs [4d] We've long felt that multi-sigs were a necessary component of #SmartCustody. At this step, we'd write a new chapter on multi-sigs, highlighting their usage and introducing another procedure plug-in. 5. Additional Wallets [3d] The current version of #SmartCustody only supports Ledgers, though we've drafted new procedures for Trezors. We would add Trezors and one or two more wallets that we assess as the most used for Zcash, including a wallet with shielded-address support, such as Nighthawk. 6. Finalization [2d] Editing and finalization on complete updated book. ### Execution Risks The biggest risk is that as we apply the #SmartCustody methodology to Zcash, we realize that there is a core incompatibility which requires us to rethink the whole work. We suspect this is unlikely due to the shared code base. The second biggest risk is that our new paradigm in the course for plugging in advanced or alternative content to our procedures (such as the different wallets or advanced techniques such as shielded addresses and multi-sigs) proves overly burdensome and requires rethinking. ### Downsides At the completion of this work, we'll essentially have two version of #SmartCustody, one focused on BTC and one on Zcash; figuring out how to maintain updates for both of them will be challenging (especially if we later expand out to other currencies). We also have some concern over the limited wallet support for shielded addresses. However, given that increasing security and protection is precisely the purpose of our #SmartCustody methodology, we believe that evangelizing them is the right way to expand their usage. ### Evaluation Plan For any course, the best evaluation is in who uses it. We'd consider the project successful if 1% of the active Zcash user base downloaded the finished project within a year of its completion. For #SmartCustody, we can also measure success by whether users are using #SmartCustody techniques (and ultimately, that's the most important measure of success here). In this case, we'd like to see the adoption curve increase for both multi-sigs and shielded addresses. For multi-sigs we'd like to see 10% relative increase in one year and 50% in five years. For shielded addresses, we'd like to see the curve of adoption (which has already been strong) increase further. ### Schedule We only have partial availability for our lead technical writer, due to both internal and external commitments, thus our schedule would be slow, but reliable. Our milestones would be: * *Month #1:* Reorder & Convert to Zcash (~48 hours) * *Month #2:* Write privacy & Multi-sig chapters (~48 hours) * *Month #3:* Expand wallets & finalize (~40 hours) We have simultaneously submitted an applicaiton for "Learning Zcash from the Command Line", which would use the same resources. If both were to be approved, they'd be done serially, and we'd need to jointly decide which had the first priority. ### Budget & Justification [needs more work, both defining amount and how to justify it.] Blockchain Commons ensures the support of the best in the blockchain industry by paying professional but reasonable rates to its contractors. The estimate for this project is: * Technical Writing (~136 hours): $13,600 * Management & Visionary Support (X hours): $XX,000 * Hardware, Software & Other Material Costs: <$1,000 * Overhead (X%): $XX,000 Total: $YY,000 ## 2. Learning Zcash from the Command Line ### Title Learning Zcash from the Command Line ### Brief A course for new developers to learn how to program with Zcash, using the CLI as the basis for teaching lessons about the software. ### Target Amount ??? [my initial thumbnail is 18 days, which is cost to BCC of $14.4k. So, somewhere from $20k-30k total is my suggestion, just note we have to justify it below.] [In some ways, this is too close to comfort to the target for the other course, so if we could expand or reduce either, that would probably be beneficial, to better differentiate them.] ### Applicant Background Blockchain Commons is a not-for-profit public-benefit company that is dedicated to the creation of public infrastructure for the blockchain industry. One of our main goals is to "Increase the demand for, and population of, people who understand the effective development, and use of, secure decentralized systems." We manage this through tutorials, such as our original "Learning Bitcoin" course. The authors of that book (and the principals of this project) are Christopher Allen and Shannon Appelcline. Christopher is a futurist who is the co-author of the TLS spec, the founder of the Rebooting Web of Trust design workshops, and the founder of Blockchain Commons. Shannon is a technical writer with extensive blockchain experience, including work for Blockstream, Bitmark, Blockchain Commons, and Certicom and the co-authorship of #SmartCustody and Learning Bitcoin from the Command Line. ### Motivation and Overview "Learning Bitcoin from the Command Line" has been one of the most successful early projects at Blockchain Commons. Originally released in 2016 and revised in 2020, it has taught numerous developers how to develop with Bitcoin, including both interns and programmers that we've brought in to work at Blockchain Commons. We'd like to take the work we already have and leverage it into teaching the smart development of other cryptocurrencies, starting with Zcash because of its similarities to Bitcoin based on its shared codebase. This allows us to fulfill one of our personal goals by continuing to grow the population of skilled blockchain developers. The result would be a Zcash-focused version of the first 8 chapters of Learning Bitcoin from the Command Line, covering the creation of a Zcash VMS and all of the basic techniques for using the Zcash CLI. It would also include expansions for shielded addresses and other Zcash features not found in Bitcoin. ### Technical Approach Obviously, this is a writing project, but it's one that integrates Zcash CLI usage, so the end product is interwoven text and CLI programming examples. 1. Create New Installation Techniques [2d] Our existing "Learning Bitcoin" course uses Linode Stackscripts to make it easy for users to immediately start using Bitcoin. We'd want to create a similar setup for Learning Bitcoin, and would also link and explain other extant tecniques such as using Docker. 2. Review Existing Chapters [8d] We would review and update the existing introduction and CLI chapters for use with Zcash. This involves stepping through each chapter, updating any technical descriptions as required, redoing all CLI examples, and in some cases removing discussions of Bitcoin features that postdate Zcash's branch (such as the section on descriptors and the chapter on PSBTs). 3. Expand Zcash Sections [5d] We'd then expand the course by adding on new sections on Zcash specific topics. The current plan is to add some discussion of Zcash's alternative proof-of-work in chapter 1, to introduce a new section in chapter 3 on the network upgrades, and to replace chapter 7 (currently on PSBTs) with a new chapter 7 on privacy, and to cover shielded addresses, JoinSplits, ZKPs, upgraded Sapling addresses, and related topics in 2-3 sections. (This could change slightly as we work through the sections, based on how much or little space any topic takes up, and if they suggest any other topics that require discussion.) 4. Finalization [2d] Editing and finalization on complete updated book. 5. Next-Steps Report Out [1d] A report on next steps that we could take to expand the course further. ### Execution Risks The original Learning Bitcoin course is tightly connected to Bitcoin's CLI and RPC interface. This would be our first attempt to expand it to another cryptocurrency, and we might hit unexpected roadblocks. ### Downsides At the completion of this work, we'll essentially have two version of Learning Bitcoin, one focused on BTC and one on Zcash; figuring out how to maintain updates for both of them will be challenging (especially if we later expand out to other currencies). We have a number of advanced topics covered in our Learning Bitcoin course such as scripting and programming with libraries that we've opted not to bring over for this iteration. The eight chapters we're converting cover the strong core of our course and most of our finalized work from 2016. It's the entirety of the basic CLI work. But some readers may want more. Finally, this conversion in some ways steps back from the work we did upgraded Learning Bitcoin to v2.0 in 2020 because features that we added like PSBTs and descriptors aren't available in Zcash. ### Evaluation Plan Learning Bitcoin has been around for five years, and that's given it the opportunity to achieve strong success, resulting in programmers and interns who joined us in the 2019-2020 time frame having learned Bitcoin via our course. The easiest way to measure how much attention a GitHub course is receiving is via GitHub's statistics. In its 5 years, the Learning Bitcoin course has achieved 100 watches, 400 forks, and 1400 stars on GitHub. We'd like see Learning Zcash achieve 5% of that in a year and 25% in a similar five-year timeframe. ### Schedule We only have partial availability for our lead technical writer, due to both internal and external commitments, thus our schedule would be slow, but reliable. Our milestones would be: * *Month #1:* Installation Techniques, Review of Chapters 1-4 (~48 hours) * *Month #2:* Review of Chapters 5-8, Full Outline of New Zcash sections, Writing of Network Upgrades section (~48 hours) * *Month #3:* Writing of Privacy chapter, finalization, report out (~48 hours) We have simultaneously submitted an applicaiton for "#SmartCustody for Zcash", which would use the same resources. If both were to be approved, they'd be done serially, and we'd need to jointly decide which had the first priority. ### Budget & Justification [needs more work, both defining amount and how to justify it.] Blockchain Commons ensures the support of the best in the blockchain industry by paying professional but reasonable rates to its contractors. The estimate for this project is: * Technical Writing (~144 hours): $14,400 * Management & Visionary Support (X hours): $XX,000 * VMS Costs (1-2 machines, 3 months): $240 * Overhead (X%): $XX,000 Total: $YY,000