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.

Nyzo Origins

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 freely available, and you can check it on their Github. The consensus mechanism is also original. It is called Proof of Diversity (POD). 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

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, new calculator is available here.

Problems Nyzo Solves

Scalability

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 complete blockchain is being archived only for historical reference.

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 processing transactions, so we believe the fee is reasonable.

Democratic Participation

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.

Sustainability

Already explained in the first paragraph, but basically, Nyzo has protection against becoming obsolete over time. Network-wide upgrades are much easier to complete than is the case with Bitcoin. As an example, switching to a quantum-proof cryptography or even a completely separate quantum-proof blockchain once quantum supremacy becomes a reality would be relatively easy to do.

Nyzo Review – Coin Metrics

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 based tokens as a gross oversimplification. But in reality, Nyzo cannot be compared to any other project due to its democratic nature. Nyzo devs created a genesis block that contained a total Nyzo supply of 100,000,000 coins. 20% or 20,000,000 coins have been set aside and are used as an incentive for verifiers to participate in the mesh while the network is young and has a low volume of organic transactions. These locked coins will be slowly distributed over a period of six years, during which they are designed to mimic organic transaction volume. The idea is that after the initial period, the network will be large enough to support verifiers solely from transaction fees which are awarded to verifiers for processing transactions. The transaction fee is fixed at 0.25%, regardless of the transaction amount.

In case you have not yet noticed, Nyzo is a very different blockchain. With Nyzo, we did not attempt to produce an iterative improvement over previous blockchains. We attempted to produce a blockchain that addressed every major issue, both economic and technical, that we saw in previous blockchain systems. Proof of diversity, the balance-list mechanism, and the radically democratic nature of Nyzo are the most obvious differences in Nyzo. However, the transaction-fee structure and the absence of mining are no less important than these other characteristics to whether Nyzo becomes a viable, sustainable digital currency. Nyzo is not mined, there are no mining rewards, and there was no premine. 100 million coins were generated in the Genesis block. Coin-generation transactions are not allowed outside the Genesis block, so no more coins will ever be generated in this blockchain.

The majority of the remaining coins, roughly 77% has been transferred to the cycle controlled wallet that requires the approval of 75% cycle participants for any future transactions. Those funds can be considered as burned until the cycle decides on a case by case basis to un-burn a small portion of the funds. The announcement from the Nyzo team can be read here. Transactions from the cycle account can only go in a maximum of 100,000 Nyzo increments. These transactions are not subject to transaction fees, and the account will be slowly replenished with 1% of organic transaction fees. The remaining supply (around 2%) has been spent on various security bounties.

Price: ~900 satoshis Update: The price aged well, Nyzo has been listed on an exchange, and the price never returned to initial levels.

Exchange: qTrade

Circulating Supply: 2,801,790 Nyzo (Source)

Total Supply: 100,000,000 Nyzo

Supply Emission

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

Nyzo Team

The team is anonymous, but we do know that it is comprised of multiple persons. If the coin we are reviewing is not a privacy coin, we usually look at team anonymity as a red flag. But given how little control Nyzo Team has over the system, we have a hard time doing so. They possess a small minority of total coins, all important code changes need to be approved by the cycle, and they only control nine in-cycle verifiers. Hence, even if they went rogue for some abstract reason that goes against their best interests, the damage they could do is limited.

After we transfer the remainder of the initial distribution funds to the cycle account, we will no longer control Nyzo in any significant way. The official verifiers are gone. The nyzo.co website has no special access to the mesh, and it never has. We will hold less than 610,000 after we complete the transfers to the cycle account. This is the sum of all coins that all of our verifiers, official and anonymous, have earned since the beginning of Nyzo. To this date, we have not sold a single coin that any of our verifiers have earned. We currently have only 9 in-cycle verifiers — we had 10, but we recently lost a verifier due to the version-541 sentinel issue. Overall, we will have far less control over the cycle and, we suspect, control of fewer coins than some early adopters. However, advocating for democracy and decentralization while trying to maintain control of the system doesn’t make sense to us. Nyzo is wonderful in a lot of ways, but we think its strongest attribute is its community. That’s why turning over the remainder of the initial-distribution coins to the community is the right thing to do.

Nyzo team is very knowledgeable, and they have demonstrated on numerous occasions that they are experts in their programming fields. After all, the Nyzo code speaks for itself. 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 or through the Discord server. We really like the fact that they are working on the project on a daily basis and are regularly pushing updates and improvements.

Community

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

Website

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, and it needs some prettying and functionality upgrade. It doesn’t even have a search box for searching transactions or public key statistics. There is a community built block explorer that offers better functionality. The same characteristics apply 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 is not based on generic templates seen across the board is refreshing.

Whitepaper

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.

Roadmap

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. Release notes can be seen as an alternative whitepaper. They offer incredible insights into Nyzo blockchain down to the finest details for anyone willing to read through them from beginning.

Nyzo Wallets

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 sufficiently 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: Android mobile wallet and a Nyzo client have been released. Paper wallet generator is also available.

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 in a safe location. Then, visit the Nyzo wallet for interacting with your freshly created wallet. Bookmark your wallet page link for quick balance checks in the future.

Nyzo Review – Tutorials

Nyzo Cycle Flowchart

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 exercise your democratic right to vote for other verifiers, sign cycle transactions, and approve technology proposals. 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.

Thanks go to Snipe and Lufo for the help with these scripts; they figured out all the little quirks and issues.

Prerequisites

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 purposes and never had problems. Use our referral link below to sign up or read the full review in our hosting crypto nodes article for more details.

💡 Our recommendation for hosting verifiers goes to FranTech (BuyVM). If FranTech is out of stock, Hostens is another affordable option.

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.

First steps

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 Nyzo verifier.

How to setup Nyzo 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 chmod +x nyzoVerifier.sh && ./nyzoVerifier.sh && 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:

sudo ./nyzomagic

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 status on the queue page. Bookmark it as you will be checking often. If the setup went fine, verifier will be shown as orange until it finishes syncing. The sync usually takes around 30 minutes or less. If the verifier color is yellow or red for more than a few minutes, something isn’t right. It is best to wipe everything and start from scratch in this case.

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 to display your Nyzo private key:

cat /var/lib/nyzo/production/verifier_private_seed

How to setup Nyzo sentinel

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 (cycle) and a few verifiers on the waitlist (queue). 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 – sentinel cannot run alongside verifier on the same VPS. Then repeat the steps outlined in the First Steps section above.

Create a new file and name it “nyzosentinel”, like this:

nano nyzosentinel

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 chmod +x nyzoSentinel.sh && ./nyzoSentinel.sh && 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:

sudo ./nyzosentinel

After it finished, create a file with the access 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.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-30 minutes):

tail /var/log/nyzo-sentinel.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. Update: as of version 579, manual sentinel whitelist is no longer necessary.

Nyzo Verifier/Sentinel Installation Script

We created a simple bash script that will do all the work for you and install the Nyzo verifier or sentinel, depending on your selection. It requires a few user inputs and does the rest automatically. Simply follow the guidelines and do what it asks. The script only supports Ubuntu but might work on Debian as well. This method is ideal for users who want to install the Nyzo verifier or sentinel as soon as possible in a seamless way or want to do it quickly on multiple servers.

To get started, simply run the following command on a fresh Ubuntu VPS:

wget https://gist.githubusercontent.com/MyAltcoins/8df8d20da33fedaa25dc80e1faf10368/raw/d7bf15171e63cb3440a91ef0ddc835109df48fef/nyzo-install-script.sh && sudo bash nyzo-install-script.sh

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

How to downgrade

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

How to vote manually

Manual voting for queue verifiers is simple. You just need to know the public key (full identifier) of a verifier you want to vote for. You can find it on the mesh page.

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.

How to change verifier nick

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

How to transfer verifier to another server

Transferring your verifier to a new server (VPS) also isn’t hard. Note that if you transfer verifier that is currently participating in the lottery, it will lose it’s spot and will have to wait 30 days again. Changing queue verifier IP or the private key will both reset the waiting time. In-cycle verifiers can be freely transferred to a new server once each cycle. To transfer a verifier, setup a new server, as explained above. Leave it alone for around 30 minutes 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 verifier page 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 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

How to sign cycle transactions easily

If you weren’t paying attention and still don’t know what a cycle fund is, make sure to read Nyzo team announcement that explains the details. Information about cycle transactions or NCFP’s (Nyzo Community Fund Proposals) can usually be found on the Nyzo forum, make sure to read proposals, and participate in the discussion before signing. NCFP 3 is a must-read. The same process, as explained below, is used for signing NTTP’s (Nyzo team technology proposals). The signing will be performed from your sentinel. The signing script will sign using all private verifier keys that the sentinel manages, so you don’t have to sign transactions with each verifier separately. Without further ado, let’s get started with the signing process. It only takes a few minutes.

Firstly make sure that your sentinel is on version 576 or higher:

cat /home/ubuntu/nyzoVerifier/src/main/java/co/nyzo/verifier/Version.java

Next, switch to the sentinel working directory:

cd /home/ubuntu/nyzoVerifier

Then go to the cycle transactions page and copy the initiator signature of the transaction you want to sign (approve). Finally, run the following command from your sentinel, replace sig_xyz with the initiator signature that you copied:

sudo java -jar build/libs/nyzoVerifier-1.0.jar co.nyzo.verifier.scripts.CycleTransactionSignScript sig_xyz 1

Sit back and let it do the signing, depending on the number of in-cycle verifiers that you have, sentinel will have to sign quite a bit of autographs which can take a few minutes.

We hope you enjoyed this Nyzo review and successfully started your first Nyzo verifier. Take care.

Tutorials last updated: April 2020.

MyAltcoins team,

Petar & Ana