Nyzo Review

Nyzo logo

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
Team
Community
Website
Whitepaper
Roadmap
Wallets
Tutorials
Prerequisites
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 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 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

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

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

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.

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 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:

Premine first screenshot

Premine second screenshot

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.

Link To qTrade

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
“Premine”: 100% (explained above)

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

Team

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.

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

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

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.

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

Describes the process of joining Nyzo cycle
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 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.

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

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

How to setup 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:

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 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:

cat /var/lib/nyzo/production/verifier_private_seed

How to setup 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 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:

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

How to update

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 for a community-compiled list of verifiers

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.

How to vote manually

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.

How to change verifier’s 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 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.

MyAltcoins team,
Petar & Ana

Share on twitter
Twitter
Share on reddit
Reddit
Share on telegram
Telegram
Share on email
Email
Share on facebook
Facebook