Nano: The new cryptocurrency technology
Bitcoin is a very secure and stable crypto-currency; no wonder it’s been dubbed “Virtual Gold”. But when it comes to everyday transactions, it’s too slow and expensive, and can only process around 10 transactions per second. Many other forms of coin offer better transaction speed and more transactions per second, but so far, none could replace PayPal or credit card companies. At least, not until Nano (formerly RaiBlocks).
How Bitcoin Works
Here are the steps required for a transaction to make it to a block in the blockchain:
- A person makes a transaction, signing it with their private key.
- The transaction is put in the Mempool.
- Miners build a block with as many pending transactions as possible (depending on block size).
- Miners compete to find the “nonce” that will give their block a SHA-256 value that starts with a specific number of zeros.
- The first miner to find the nonce broadcasts their block.
- Other miners accept the block and move on to the next block, or continue trying to find a nonce for their block in the hopes that 51% of the miners will agree that the current block is invalid.
This design has the following issues:
- Pending transactions must waste time in the Mempool until they can be integrated into a block.
- Blocks have a maximum size, while the number of pending transactions varies immensely from one minute to the next, sometimes preventing a block from including all pending transactions.
- There is a network-enforced minimum time lapse between blocks to give miners a chance to find a SHA-256 value and broadcast their block.
- Miners need to be rewarded, either through transaction fees or with free coins
- The competition between miners can be cutthroat.
- Mining consumes huge amounts of electricity—not good for the environment.
- Blocks are initially approved by just one miner. Since individual miners should not be trusted, merchants wait for several blocks (~6) to be added to that block to make sure that all Miners have approved it.
How Nano Works
- You create the “send block” yourself and broadcast it.
- The receiver creates a “receive block” and broadcasts it.
- If a block conflicts with another block (they have the same predecessor), representatives vote on which one should be kept.
Instead of having a single synchronous blockchain, Nano has one blockchain for each account. Each block in a blockchain is not “many transactions” but a single action. There are currently 4 types of actions: 1) Open: Create an account; 2) Change: Set your representative; 3) Send: Transfer Nano tokens (XRB) to another account; 4) Receive: Accept a previously sent transfer to your account. Blocks are created by the owner of the account. If someone tries to double spend their coins, they’ll just create conflicting blocks in the network, i.e. different blocks with the same predecessor. In this case, representatives will vote on which block should be kept. A representative is anyone that runs the full node server. Representatives have a number of votes equal to the number of XRB that they represent: someone who doesn’t want to run the server can assign a representative for their account.
The Power of Nano
1. Asynchronous transactions
A blockchain is synchronous: You can only add one block at a time and you need to wait for it to be broadcast before appending another block. The same applies to Nano, but since there are many block chains, if one block chain is getting a lot of traffic with many pending transactions, other users on other chains can still do their business normally. Nano can scale almost infinitely, since the worst bottleneck is the entire network.
2. Only you can build your blockchain
As opposed to other currencies, where random miners or stalkers build the next block, picking transactions in whatever priority and order they like, in Nano, blocks can only be created by the owner of the account’s blockchain. It lightens the protocol, since Representatives only come in when someone tries to cheat. It also makes it easier to keep track of your transactions, since they are in the order that you expect them to be. With other coins, you may receive a transaction that you don’t remember because it was pending for 2 days due to the small reward attached to it.
3. A small and clean ledger
The Bitcoin ledger (blockchain), now at nearly 200GB, will be hard to prune. But in the Nano ledger, you can easily remove accounts with a zero balance, for example. Also, because blocks are minimal and of a known size, the Nano ledger is currently very small, considering the amount of transactions that it holds. Here’s how the “send block” is serialized:
void rai::send_block::serialize (rai::stream & stream_a) const
{
write (stream_a, hashables.previous.bytes);
write (stream_a, hashables.destination.bytes);
write (stream_a, hashables.balance.bytes);
write (stream_a, signature.bytes);
write (stream_a, work);
}
Just packed binary data. I like the effectiveness and simplicity of Nano!
4. Representatives don’t need to be paid
The simple fact that representatives can be “delegated” to “take care of someone’s money” in a decentralized way makes this role very valuable. IT businesses crave for recognition like “Facebook likes”, and this “decentralized trust vote” is just more real. Since those businesses already have the required architecture in place, they incur no extra costs. This allows Nano to operate free of fees and inflation.
Should Nano Replace Bitcoin?
II believe that all of Bitcoin’s major issues (huge fees, transaction speeds and network saturation) will eventually be fixed, though I don’t think that it will be enough to attract the masses. We need a crypto-currency that will attract the attention of the worst skeptics with such features as:
- Zero transaction fees.
- Zero inflation.
- Instant transactions.
- Unlimited transactions per second.
I think that Nano will be able to provide all this, though it still has a ways to go; for example, it currently doesn’t have a light wallet, and the current wallet is geared to developers rather than the average person. But that is coming very soon, a light wallet is already open to beta testers.
The main obstacle that I think the NANO team is facing currently is concerning the risk that someone attacks the network by spamming it with more transactions that it can handle. Each transaction requires a “Proof of Work” and the NANO network can handle easily thousands of transactions, but there’s always the possibility that someone is ready to spend a few millions doing that. There are many solutions that are to be considered, as a “Proof of Work” algorithm that would be more complex, but I think more and more that they will have to give up the idea of providing completely free transactions. Each transaction could require a very small amount of money, such as 0.01 cent, and that amount could be destroyed, i. e. removed from the total money pool that is limited, so that everyone is somehow rewarded when transactions occur.