Today we will be looking at Nyzo, a relatively new and fairly unique cryptocurrency. Nyzo team took the original approach in solving problems plaguing Bitcoin and most other coins. This post will serve as a one-stop-shop for all Nyzo related information and tutorials. It wasn’t easy to find all of the required information as some of it is spread around and hidden in the depths of Discord chat. We will try to keep it up to date as Nyzo evolves. Sit tight and enjoy our Nyzo review.
Table Of Contents
● Nyzo Origins
● The Mesh
● Problems Nyzo Solves
● Coin Metrics
— First steps
— How to setup verifier
— How to setup sentinel
— How to update
— How to downgrade
— How to vote for a community-compiled list of verifiers
— How to vote manually
— How to change verifier’s nick
— How to transfer verifier to another server
Nyzo finally brings some fresh air in the midst of a stale bear market. It is not a fork of Bitcoin or Monero like most coins are these days. Nyzo is built from scratch, from the ground up. Source code is available, and you can check it on their Github. The consensus mechanism is also original. It is called Proof of Diversity. There is no mining or staking — more on this in the next section.
Nyzo key strengths are democratization, efficiency, and sustainability. Nyzo devs are aware that technology advances at a rapid pace and that eventually, their tech could become obsolete. Here is an excerpt from Nyzo whitepaper that explains how it works:
The sustainability program will work as follows. Any coins transferred to address 0000000000000000-0000000000000000-0000000000000000-0000000000000001 are transfers to the next blockchain. The next blockchain will periodically inspect the previous blockchain for transfers to that address and will generate appropriate coins in the next blockchain corresponding to the source identifier and amount of the transaction on the previous blockchain. Democratic processes would govern all of these decisions, with the current cycle of each generation serving also as the Genesis cycle of the next generation when the next generation of the blockchain begins.
The mesh is a central point of Proof of Diversity (PoD) system. We have to warn you before we proceed – checking mesh page can become addictive, once you setup your verifier, mesh page will end up in your sticky tabs or even as your homepage. Mesh participants are called verifiers. Verifiers are in charge of verifying transactions and producing blocks. In exchange for securing the network, verifiers collect transaction fees which are distributed fairly among all of them. Each verifier gets a chance to verify one block in one mesh cycle. If for some reason, it doesn’t propose a block when the time comes, it will get kicked out of mesh.
There are also special verifiers called sentinels that protect normal verifiers from attacks or network outages. Requirements for joining the mesh are simple. No special equipment with large amounts of processing power is necessary, nor does it provide an edge. Only a unique IP address and always-on Linux VPS are required. New verifiers are joining the mesh at a controlled rate. Wait times are based on a number of verifiers in the mesh and the number of verifiers waiting to enter. At the current rate of around 500 in cycle verifiers and about 830 on the waitlist, one new verifier can join the mesh every two hours. You can also use this calculator, but it is not entirely accurate at the moment. Update: the calculator is no longer relevant since the mesh entries are now lottery-based.
Nyzo can handle thousands of transactions per second. It won’t have problems reaching VISA transaction throughput. The only factor it relies on is the performance of verifiers in the mesh. And the requirements are reasonably low. The size of one transaction is also much smaller when compared to Bitcoin – 130 vs. 250 bytes. Nyzo doesn’t require any Layer 2 scaling solutions; it is built from the ground up to be fast and scalable.
Another important thing to note is the blockchain size. Currently, Bitcoin blockchain is a bit over 200 GB in size, and it takes a while to sync a full node. On the other hand, Nyzo only requires the last four cycles worth of blocks for full functionality. Nyzo doesn’t have a block limit. But let’s use some numbers to make a point. If we imagine that each block will be around 1 MB and take a mesh size of 1,000 verifiers, we get to a blockchain of just 4 GB. And that’s all the data new verifier needs to join the cycle and start producing blocks. The full blockchain will be archived only for historical references.
High Energy Footprint
Bitcoin uses a significant amount of electricity. Much more than most smaller countries. Without going into the details of that debate, we will just say that Nyzo uses only a tiny fraction of Bitcoin’s resources while performing the same tasks. Nyzo is obviously unproven technology and will have to pass the test of time, but it has solid foundations.
High Transaction Fees
When the Bitcoin memory pool gets flooded with lots of transactions due to high network usage, transaction costs go through the roof. The same thing happens with Ethereum and most other cryptocurrencies. Nyzo, on the other hand, has a fixed transaction fee of 0.25% for every transaction. This is very cheap for most typical transactions but it adds up to non negligible amount for large transactions. However, verifiers need to have an incentive for securing the network and transaction processing, so it is more than a reasonable fee.
Today, mining equipment required for mining and securing the Bitcoin network is getting more expensive every year, and many people can’t afford to participate. Nyzo lowers this barrier considerably and allows almost anyone to participate in the mesh and exercise their democratic voting rights while securing the network.
Already explained in the first paragraph, but basically Nyzo has protection against becoming obsolete over time.
Nyzo supply emission is different since it doesn’t use Proof of Work or Proof of Stake consensus mechanism. It has somewhat similar mechanics to ETH tokens as an example. Nyzo devs created a genesis block which contained a total Nyzo supply of 100,000,000 coins. 20% or 20,000,000 coins has been set aside and is used as an incentive for verifiers to participate in the mesh while the network is new. These coins will be distributed over a period of six years. The idea is that after the initial period, the network will be large enough to support verifiers solely from transaction fees which are awarded for processing transactions. The transaction fee is fixed at 0.25%, regardless of transaction size.
The other 80% is problematic. It is controlled by Nyzo team and can be used as they please since it is not locked. Huge red flag since it is effectively 80% premine. We don’t see any justifiable reason for doing this. Every project needs consistent funding for various expenses, but this is simply way too much. It is one thing standing in the way of great success Nyzo could achieve if this issue is dealt with accordingly. We hope they burn most of these coins as soon as possible. This is what Nyzo developer had to say on the matter:
Important update: on July 11, 2019, dev fund plan has been released, and can be read here. It brings unique changes to the system, and addresses many of the above concerns.
Important update 2: another game-changing update regarding dev fund has been released, it can be read here.
Price: ~900 satoshis Update: The price aged well, Nyzo has been listed on an exchange, and the price never returned to initial levels.
Circulating Supply: 2,801,790 Nyzo (Source)
Total Supply: 100,000,000 Nyzo
“Premine”: 100% (explained above)
Block Reward: 1.40 Nyzo currently (depends on mesh size)
Average Block Time: 7 seconds
Current Block Height: 1,661,904
Yearly Emission: ~4,000,000 + bounties
The team is anonymous; we don’t even know for sure if it’s one or multiple persons. Nyzo is not a privacy coin, so we must look at this as a red flag.
After all, they have control over seed account which contained all of the coins and could theoretically dump as much as they wish when the opportunity presents itself. Team anonymity only makes things look worse. Anyone involved with the project needs to put a huge amount of trust into Team morals.
With the ugly part out of the way, we can move onto the good stuff. The team is very knowledgeable, and they seem to be experts in their programming fields. They are often online and interact with the community and its inquiries in a helpful and friendly manner. If you have any (technical) questions regarding Nyzo you can contact the team at nyzo[at]nyzo.co. We really like the fact that they are working on this project on a daily basis and are regularly pushing updates.
Discord server is where most of the activity happens. Member count is currently floating around 360. Chat is full of vibrant and educational discussions. Users are friendly and help each other with technical problems they encounter. Nyzo devs do not want to be in control of any social media channels or marketing. Those parts will be community managed, hence why Discord admins and mods are not part of Nyzo anon team. They just run the Discord chat and help around with various things like developing tools and scripts. Bitcointalk announcement thread doesn’t have much activity. The Twitter account also isn’t used much as of yet. All in all, Nyzo gathered an excellent and experienced community of people who aren’t new in the space and know their business well. Growth is slow and organic without any marketing so far.
Nyzo website has a unique text-based design consisting of big clickable buttons and large fonts which makes it easy to navigate. When we first opened it we had sort of a flashback. It has that old school feel while being a bit futuristic at the same time. The website is very fast since it doesn’t contain any images and all of the required information is easy to find.
Block explorer is bare bones, it needs some prettying and functionality upgrade. It doesn’t even have a search box for searching transactions or public key statistics. The same thing applies to the web wallet. We would like to see a bit more eye candy – a look that aligns better with current standards. But it still gets a thumbs up from us. An original design that isn’t based on generic templates seen across the board is refreshing.
The whitepaper is available here. It is written concisely without any fluff. Protocol details, consensus mechanism, and techniques used are explained in a user-friendly way while preserving enough technical information. Project goals are also clearly stated. It is a bit of a short read and lacks a few details (and we addressed some in this article), but it is much better than many whitepapers we have read.
Currently, there is no standard graphical roadmap available. But you can see short term development goals here. The team is currently focused on improving the protocol and fixing bugs as they arise. There are no deadlines, but updates are released every few days. Version changes are detailed in the release notes posted here.
Nyzo currently doesn’t have standard wallet binaries for various operating systems. Only a web-based wallet and a key tool for creating and converting keys are available. CLI based wallet is currently in the pipeline. GUI versions will come over time. We hope it won’t take long since it’s a key part of any project. For now, though, web-based tools do the trick, they are secure and easy to use. They are run within your web browser; private key doesn’t leave your PC at any time. If you want to upgrade security to a higher level, examine the code yourself – it should be easy to do even for non-developers. Then download the pages and run them locally from your PC to prevent malicious code changes. Update: a mobile wallet and a client have been released.
To create a new wallet, visit Nyzo key tool and click on “new key”, then click on “generate” below. Save your newly generated private key and public id PNG images in a safe location. Then, visit the Nyzo wallet for interacting with your freshly created account. Bookmark your account page for quick balance checks in the future.
Tutorials will be the longest part of our Nyzo review. In this section, we will explain how to setup everything you need for starting your first Nyzo verifier and sentinel. As well as how to use your democratic right to vote for other verifiers of your choosing. Some troubleshooting will be included as well for good measure. A bit of basic Linux knowledge is required. If you don’t know what is a Linux shell, how to connect to it remotely via SSH or which client to use for your operating system, visit your favorite search engine before proceeding.
First things first, you need a server for hosting your verifiers and sentinels. Your home PC won’t cut it. Always online Linux VPS is a must if you want to have healthy mesh participants. But don’t worry, they aren’t costly, VPS’s around $10 will work just fine. There are many providers out there you can choose from, but we recommend FranTech (BuyVM). We used them for many years for various solutions and never had problems. Use our referral link if you want, and sign up on FranTech. Alternatively, if the FranTech is out of stock, you can try Hostens.
You can get away with running VPS with 1 GB of RAM, but you might run into problems, so 2 GB plan is recommended. Pick one of these two plans and make sure to select Ubuntu 16.04 LTS as your operating system. Other Linux versions are not fully compatible with our tutorials. Another option you might consider is ordering DDoS protected IP address since some verifiers are getting attacked, but this is not a required step. Do note that once your verifier gets in the cycle, you might have to upgrade it, dedicated vCPU, and 2 GB RAM is recommended at the moment.
Time to SSH into your newly created VPS, as explained above. Log in as root or create a new user with limited privileges (safer). Don’t forget to use a strong, unique password or key pairs if you are more advanced.
Always update your VPS and try to keep it up to date to avoid breaches.
sudo apt update && sudo apt upgrade -y
Remove Apache web server to save some resources:
sudo apt purge apache2* -y
Install htop if you want to keep an eye on VPS performance:
sudo apt install htop
We also need to install Nano text editor as it is not installed by default:
sudo apt install nano
Git also isn’t installed by default:
sudo apt install git -y
Alright, that should be it, your VPS is ready for setting up your first verifier.
Firstly create a new file and name it “nyzomagic”. Use nano text editor like this:
sudo nano nyzomagic
Paste the following inside that file:
cd /home/ mkdir ubuntu cd ubuntu sudo ufw allow 9444/tcp sudo ufw allow 9446/udp sudo apt update sudo apt install haveged -y sudo apt install openjdk-8-jdk -y sudo apt install supervisor -y git clone https://github.com/n-y-z-o/nyzoVerifier.git cd nyzoVerifier ./gradlew build sudo mkdir -p /var/lib/nyzo/production sudo cp trusted_entry_points /var/lib/nyzo/production sudo cp nyzoVerifier.conf /etc/supervisor/conf.d
Save it (ctrl+x, confirm with y), then make it executable with this (command won’t show any output):
sudo chmod +x nyzomagic
Time to run it and let the magic happen:
Next, pick your nick (leave the quotes). Choose it wisely as everyone will be able to see it:
sudo bash -c 'echo "YourUniqueNick" > /var/lib/nyzo/production/nickname'
The last step is to start your verifier and create a cronjob which will start it on every VPS reboot:
sudo supervisorctl reload echo "@reboot sudo supervisorctl reload" >> mycron crontab mycron rm mycron
Finally, run this command to check if everything went smoothly, it will say “RUNNING” if it works:
sudo supervisorctl status
Congrats on setting up your first verifier, go and check its state on the mesh page. Bookmark it as you will be checking often.
One more important step before you go, extract your private key, and save it in a safe place. Without your private key, you won’t be able to access your Nyzos, so make sure not to skip this step. Run this command:
We are creating this guide as the official one is designed for Amazon AWS and doesn’t work on standard Ubuntu VPS we used in this guide. Sentinel is the most effective if you pair it with a few verifiers in the mesh and a few verifiers on the waitlist. Always run at least one sentinel to keep your verifiers safe.
Setting up a sentinel is slightly different but still pretty easy. Let’s begin.
Order a fresh VPS and repeat the steps outlined in the First Steps section above.
Then create a new file and name it “nyzosentinel”, like this:
Paste the following inside:
cd /home/ mkdir ubuntu cd ubuntu sudo apt update sudo apt install haveged -y sudo apt install openjdk-8-jdk -y sudo apt install supervisor -y git clone https://github.com/n-y-z-o/nyzoVerifier.git cd nyzoVerifier ./gradlew build sudo mkdir -p /var/lib/nyzo/production sudo cp nyzoSentinel.conf /etc/supervisor/conf.d/
Save it (ctrl+x, confirm with y), then make it executable:
sudo chmod +x nyzosentinel
Time to run it:
After it finished, create a file with the data of verifiers that will be protected by your sentinel:
sudo nano /var/lib/nyzo/production/managed_verifiers
The format is as follows, repeat for as many verifiers as you want to protect:
VerifierIP1:9444:VerifierPrivateKey1 VerifierIP2:9444:VerifierPrivateKey2 VerifierIP3:9444:VerifierPrivateKey3 VerifierIP4:9444:VerifierPrivateKey4
Last step is to start your sentinel and create a cronjob which will start your sentinel on every reboot:
sudo supervisorctl reload echo "@reboot sudo supervisorctl reload" >> mycron crontab mycron rm mycron
Run this command to check if everything went smoothly, it will say “RUNNING” if it works:
sudo supervisorctl status
Next, check if sentinel loaded all of the verifiers you specified:
cat /var/log/nyzo-sentinel-stdout.log | grep 'ManagedVerifier'
And finally, check if the sentinel is tracking Nyzo blockchain correctly, but do give it some time to catch up first (10-60 minutes):
tail /var/log/nyzo-sentinel-stdout.log -n 30 | grep 'froze block'
Compare the output of “Block height” it shows with the “Frozen edge” on the mesh page, they should be very close.
One last thing you need to do to ensure proper sentinel functionality is whitelisting your sentinel on the verifiers it manages. Follow the guide at the end of these release notes. That’s it. Your sentinel is ready.
Always read release notes in full before updating. Run these commands one at a time, and you will update your verifier/sentinel to the latest version:
cd /home/ubuntu/nyzoVerifier sudo git reset --hard sudo git pull origin master sudo ./gradlew build sudo supervisorctl reload
If you are having issues with the latest version, run the commands below one at a time to downgrade to the previous version. Replace <hash> in the second command with the commit hash of the version you are downgrading to. Version history is located here.
cd /home/ubuntu/nyzoVerifier sudo git reset --hard <hash> sudo ./gradlew build sudo supervisorctl reload
Currently, there are issues with automatic votes and some groups are forming voting clans which effectively prevents other verifiers from joining the mesh. Nothing to worry about, we can expect this kind of problems until the mesh becomes large enough and renders this kind of attacks unfeasible. In a response, Benjamin and Chase created a temporary solution for this problem which seems to work good for now. Benjamin posted more info along with a guide on how to use it here. Check pinned messages on Discord for latest voting lists. Update: due to the new lottery based voting method, this is no longer necessary.
Manual voting is simple, you just need to know the public key of a verifier you want to vote for. You can find it on the mesh page or here.
sudo java -jar /home/ubuntu/nyzoVerifier/build/libs/nyzoVerifier-1.0.jar co.nyzo.verifier.scripts.NewVerifierVoteOverrideRequestScript YourPrivateKey PubKeyYouVoteFor
And that’s it, your verifier will continue to vote until the verifier you voted for gets in the mesh. To check if it worked, check the vote status here.
This one is straightforward, change your nick in this file:
sudo nano /var/lib/nyzo/production/nickname
And then reload your verifier:
sudo supervisorctl reload
Transferring your verifier to a new VPS also isn’t hard. First, setup your new verifier as explained above. Leave it alone for around ten hours so that it can sync properly (white on the mesh page) and then enter your old private key here:
sudo nano /var/lib/nyzo/production/verifier_private_seed
Reload the verifier:
sudo supervisorctl reload
Check if the mesh shows both of your verifiers under the same public key. If everything is fine, you can delete your old verifier.
Bonus tip for more experienced users: if you already have a healthy verifier, you can avoid waiting a few hours and sync a new verifier in a few seconds, thanks to jimtalksdata for this great tip. Firstly, stop your newly created verifier to avoid potential conflicts:
sudo supervisorctl stop all
Run this command from a healthy verifier that is already synced to copy all blocks to a verifier that needs to be synced, replace port if needed and “user@NewVerifierIP” with your server details:
rsync -av --ignore-existing -e 'ssh -p 22' /var/lib/nyzo/production/blocks/ user@NewVerifierIP:/var/lib/nyzo/production/blocks
And finally reload your new verifier:
sudo supervisorctl reload
We hope you enjoyed this Nyzo review and successfully started your first verifier. Take care.
Last updated: September 2019.
Petar & Ana