The ZenCash community is having a lively discussion about the effect of the Bitmain AntMiner Z9 Equihash ASIC (Application Specific Integrated Circuit) miner, scheduled to ship in late June 2018. It is an ASIC miner that is supposed to be 12 times more energy efficient than a GPU (Graphics Processing Unit) miner, which has been the mining method of choice for ZenCash since launch. Much of the discussion is in the ZenCash Github at https://github.com/ZencashOfficial/zen/issues/142
The passionate input from the community is very helpful and directly influences the direction the team intends to go.
Why This Is A Potential Issue
There are some people who are okay with an ASIC miner from Bitmain mining ZenCash, and others who are concerned about excessive centralization and control. Bitmain sells their miners to people all over the world, and they also mine cryptocurrencies for themselves, so if they develop more powerful miners and can maintain more than 50% of the mining hashrate, they have the ability to significantly affect the future of a specific cryptocurrency.
There is a risk to ZenCash of being effectively taken over by a single mining company that has the ability to decide, through their hashrate, whether to allow the ZenCash blockchain to be upgraded or not.
ZenCash has the ability to modify the hashing algorithm, which may render the Z9 miners incapable of mining ZenCash. This is the recommended action from many proponents of decentralization, and it is called a Hard Fork in shorthand. It’s called a Hard Fork because at the date of the change, anyone not running the new ZenCash software version is no longer part of the network. A Hard Fork can be risky because there could be issues until the network achieves consensus.
Some people are recommending ZenCash change the hashing algorithm in order to keep it optimized for GPU mining, either for a short period of time, or to change it as soon as possible and keep changing it in the future to render any ASIC miner obsolete. In support of GPU mining, people say GPU miners were the initial supporters and proponents of ZenCash, that GPU’s are available to many people all over the world, and that GPU mining decentralizes the distribution of new Zen to many people in many different places, effectively preventing the centralization of ZenCash hashrate and future voting.
Current Active Development and Discussion
ZenCash is a little bit different than many cryptocurrencies in that not all the ZEN that is created in every block is distributed to miners. After the already planned major ZenCash upgrade at the beginning of July, 70% of the distribution will go to miners, and 30% to
- Secure Node operators – 10%
- Super Node operators – 10%
- Community Funds – 10%
ZenCash already has much more decentralized distribution of new cryptocurrency than many other projects, but much of the distribution still goes to miners, meaning they have the ability to affect what happens during a Hard Fork.
ZenCash has many software updates that are in progress that will both improve decentralization and increase capabilities. ZenCash has five main sources of software upgrades and improvements:
- Zcash software improvements – Sapling will be a huge upgrade this year
- Shielded transactions on mobile wallets – a game changer
- Selective disclosure of shielded transactions
- Display only keys for shielded transactions, enabling one to many messaging and publishing
- Bitcoin software improvements – fixes many smaller performance issues and enables features taken for granted with Bitcoin.
- ZenCash community contributions – Arizen, Swing, and Mobile wallets
- IOHK research and specification implemented by InfoPulse contract development
- Governance and Treasury – secret ballot voting for spending and policy
- Scaling improvement for faster and higher volume performance.
- ZenCash development roadmap, including
- Sidechains for Distributed Secure and Super Node tracking and payment
- Flagship wallets
- New capabilities enabled with sidechains
ZenCash is a community organized cryptocurrency. Major decisions are discussed in the many different places where the community participates, including Discord, Telegram, GitHub, forum, and twitter. Active community members who seek to participate more in the direction of the project join the ZenCash team, sometimes for a short while, sometimes for longer. The founders and directors of the non-profit Zen Blockchain Foundation consider themselves community members entrusted to direct the transfer of Community Funds in a way that is consistent with the expressed community desires.
One of the most important development projects, where significant Community Fund resources are directed, is to the deployment of the Governance and Treasury system, which will enable an improved method of determining community desires.
The ZenCash community stays engaged and informed about the activities of the ZenCash team through regular blog post updates, bi-weekly live stream broadcasts with questions and answers, and many interviews with crypto-currency media. The method of engagement appears to be working well, and the community continues their active participation as the project continues to make progress.
Priorities Regarding Decentralization
The ZenCash development team has responsibilities to all the members of the ZenCash community, and has priorities:
- Empower and enable people to reliably use ZenCash for public, private and anonymous transactions, messaging, and publishing so they can maximize their freedom.
- Continue the software development to a point where the project can be completely turned over to the ZenCash community and is as fully decentralized as possible.
- Expand and support ZenCash community, users, and partners. Partners is a long list, and includes
- People and businesses that transact with ZenCash
- Wallet and application services
- Cryptocurrency exchanges
The people who are recommending changing the ZenCash hashing algorithm to render ASIC miners ineffective for the short term are stressing decentralization as the main reason, and it appears the ZenCash community is mindful of decentralization.
- Miners spread their hashrate among many pools. This can be seen by looking at which different pools are mining blocks at https://explorer.zen-solutions.io/blocks
- The Ledger hardware wallet was well received, and people are withdrawing ZenCash from exchanges to keep on local wallets.
- The number of Secure Nodes continue to increase every week, and people are planning for SuperNodes.
- ZenCash continues to be listed on more exchanges (including decentralized exchanges), spreading the ownership and trading to many different places.
Changing the algorithm is a short term solution to addressing the creation of ASIC miners for Equihash, or any other hashing algorithm that ZenCash could use. As a cryptocurrency becomes more popular, there will be more hardware manufacturers working to make specialized hardware to mine it. If there were multiple ASIC miner manufacturers competing with each other to build hardware and sell that hardware to many different miners around the world, there would be less of a concern about centralization and one entity gaining control of the blockchain.
Possibility of Changing the ZenCash Hashing Algorithm
The ZenCash hashing algorithm is Equihash, inherited from Zcash. Creating optimized hashing functions is done by advanced cryptography practitioners. It is worthwhile to read the original Equihash whitepaper describing how it was created and how it can be optimized and changed.
One of the main features inherited from Zcash is an implementation of zk-SNARKs, enabling shielded addresses and transactions. Without shielded transactions, ZenCash would have no privacy features. ZenCash shielded transactions are about to get a major upgrade from the Zcash Sapling release, enabling shielded transactions on mobile devices. It would be prudent, although it is not necessary, to maintain upstream compatibility as much as possible until after those features are incorporated.
It is possible for the ZenCash community to determine that the project should change the Equihash algorithm to something else that can attempt to prevent mining by ASIC miners. These changes should be balanced against the other development priorities as well as available funding for development efforts, and the ability to engage capable developers for the additional work.
As ZenCash continues to grow and evolve based on the priorities of the community, it is expected that the codebase will continue to diverge, especially when the other large research project IOHK is doing is implemented. This is the scaling upgrade, which is at this point planned to be a DAG based on the Phantom protocol. Along the way there are opportunities to change the hashing algorithm, as well as change the privacy implementation to something other than the existing type of zk-SNARK’s.
Fortunately, the Equihash algorithm is flexible enough to make changes without a complete replacement, so changes can be made relatively quickly which do not require large software development efforts.
The Equihash algorithm has parameters which affect the solution calculation, called the N and K parameters. They affect the amount of time it takes for different combinations of processing power and memory, as well as the size of the solution. The Zcash parameters that were selected before launch were N=200 and K=9. After the launch of Zcash, cryptographers determined that values of 144 and 5 appeared to produce a smaller and more ASIC resistant solution.
ASIC resistance in this case refers to requiring more memory, with the optimal amount of memory for the parameters 200,9 being about 512MB, with 144, 5 it is closer to 2.5GB. It is expensive to build memory into an ASIC miner, so higher memory optimized hashing algorithms tend to be more ASIC resistant. We can call this version of the Equihash algorithm Equihash-144-5 for differentiation.
The members of the ZenCash community do not know if the Bitmain Z9 Antminer can be modified to mine Equihash with adjusted N and K parameters, as no one has shared the actual architecture of the device. It may be a purpose built ASIC with limited internal memory, or it may be a reprogrammable cryptography optimized computing device with external memory. Depending on the architecture, changing the Equihash N and K parameter may delay Bitmain from producing a purpose built Equihash-144-5 miner for a period of time.
Potential Equihash Algorithm Change Preparation
Modifying ZenCash to use Equihash-144-5 is doable, and the software development team has started identifying the specific work that would need to be done in order to create and test this change. It would be a Hard Fork change, and for optimal success of the Hard Fork, it would be best to implement such a proposed change as quickly as reasonably possible before too many ASIC miners take over the hashrate of ZenCash.
Hard Forks are a big deal within the cryptocurrency community, because they inconvenience many people, and the more places where the software has to be upgraded, the more likely it is that users will experience downtime and be unable to transfer their ZenCash while the systems are being upgraded.[themify_box icon=”note” color=”light-green”]The ZenCash team has a Hard Fork upgrade checklist, and it includes the following activity, as well as much more:[/themify_box]
- Create the new version of zend software on a GitHub private development branch.
- Test, identify issues, and fix the zend software on the private devnet.
- Make the new development branch public on Github.
- Compile binaries for different Linux versions, Mac, Windows.
- Integrate updated binaries into other ZenCash software
- GUI wallets for Linux, Mac, Windows
- Mining pool software like Z-NOMP
- Block Explorers
- Secure Node Tracking and Payment System
- Arizen and Mobile wallet back end servers
- Community developers and operators test the development branch on testnet.
- Identify issues, fix, create improvements until development branch is solid on testnet.
- Set a date for the upgrade at least one month out. Determine expected block for upgrade.
- Notify all users of the zend software about the mandatory upgrade at least two weeks before the hard fork block so they can upgrade, test, and integrate with internal systems. Anyone who does not upgrade successfully by the hard fork will have extended system downtimes. Most will have a maintenance period before and after the Hard Fork.
- All exchanges like Bittrex and OpenLedger
- Payment processors like CoinPayments
- Applications like OpenBazaar
- Third party wallets like Coinomi
- Hardware wallets like Ledger
- Mining pool operators
- Secure Node Operators
- Notify community and as many users as possible about the hard fork and mandatory wallet upgrades. Anyone who does not upgrade their wallets will be unable to process ZenCash transactions.
Changing the ZenCash Equihash Algorithm to Equihash-144-5
The ZenCash team is committed to decentralization of as many elements of the project as possible.
The current software development projects of decentralized Secure/SuperNode Tracking and Payment as well as Governance/Treasury on sidechains will have a decentralizing effect on the project, and they are still in the early stage of creation. Until they are closer to deployment, mining by many small miners contributes notably to decentralization.
At this stage of the project development the ability of a single company to produce hardware and mine with it at a rate that the company is able to gain a majority of hashrate for ZenCash is a threat.
To address this threat the ZenCash team intends to do the following Decision Discovery Process:
- Determine the amount of work required to create a software update Hard Fork that modifies the Equihash algorithm N and K parameters to increase mining hardware memory requirements while also improving Equihash solution performance.
- Create a timeline for an Algorithm Hard Fork upgrade after the already scheduled July 1 Performance Hard Fork upgrade.
- Research the capabilities of the Bitmain Z9 miner to determine if an algorithm change to Equihash-144-5 will be effective in reducing potential centralization in a way that can’t be quickly countered.
- Research the timeframe of other vendors coming to market with Equihash ASIC miners.
We have assigned team resources for much of this and encourage the community members to contribute time and work in addition to the opinions and recommendations. Community contributions to discovery are very welcome![themify_box icon=”announcement” color=”light-green”]Based on the conversation of the community, and the threat of centralized control by one entity, the ZenCash development team intends to Hard Fork change the hashing algorithm to Equihash-144-5 in order to optimize for higher memory mining hardware such as GPU’s.[/themify_box]
The timing of the change will be based on how quickly a second hard fork can be successfully completed after the ZenCash upgrade in July 1. The team is working to do this within 4-6 weeks after the July 1 hard fork, and will determine a more precise date as the potential event gets closer.
The ZenCash development team, in collaboration with the community, reserves the right to review and change the decision to Hard Fork, especially if it is determined that changing the Equihash-144-5 algorithm will not be effective in promoting decentralization of mining.
Continued Future Growth and Success of ZenCash
As the ZenCash cryptocurrency and platform continues to grow and develop, along with the active and engaged ZenCash community, the progress along the roadmap will make ZenCash a stronger and more resilient project. There are always issues and problems that occur which can be dealt with by an active community who stay engaged with the development team and provide feedback on the goals and course adjustments along the way.
The current potential threat to decentralization posed by a single company producing an ASIC miner is something that the community feels very strongly about. The ZenCash development team will work through the process to create a Hard Fork upgrade to the Equihash algorithm in the short term to address the threat.
While doing this, the community will undoubtedly continue the conversations about ASIC miners from multiple companies and how those devices would or would not pose a risk to the ZenCash project. There are many potential risks to ZenCash, and development effort should be focused on addressing the different risks in a measured and planned manner to maximize the opportunity for success going forward.
About the Author:
Rolf Versluis (also known as BlockOps) is co-founder and Chief Engineer of the privacy oriented cryptocurrency ZenCash. Rolf is an experienced data network security professional with over a decade of experience designing, installing, and troubleshooting systems as the CTO of the company he founded in the IT industry.
In the cryptocurrency industry, in addition to his work at ZenCash, Rolf operates private cryptocurrency mining facilities with over 600 operational systems, and hosts both a blog and YouTube channel providing instruction and assistance to cryptocurrency miners worldwide.
For both ZenCash and mining, Rolf uses his engineering background as well management and leadership experience from running a 60 person IT company for 14 years and as a US Navy nuclear submarine officer operating out of Hawaii for four years.
ZenCash Website – https://zencash.com
ZenCash Blog – https://blog.horizen.global
ZenCash Github – https://github.com/ZencashOfficial
ZenCash Forum – https://forum.zensystem.io
ZenCash Twitter – https://twitter.com/zencashofficial
ZenCash Software Development Roadmap – https://trello.com/b/C0L7hGCV/development-roadmap
ZenCash Block Explorer – https://explorer.zensystem.io/
ZenCash Secure Node Tracking and Payment System – https://securenodes.zensystem.io/
ZenCash YouTube Channel – https://www.youtube.com/c/ZenCash
ZenCash Telegram – https://t.me/zencash
ZenCash Discord – https://discord.gg/SuaMBTb
ZenCash on Bitcointalk – https://bitcointalk.org/index.php?topic=2047435.0
ZenCash IRC channel #zencash – join at https://kiwiirc.com/
ZenCash Facebook Page – https://www.facebook.com/zencash/
ZenCash Blog on Medium – https://medium.com/zencash
Buy or Sell ZenCash
ZenCash on CoinMarketCap – https://coinmarketcap.com/currencies/zencash/