A Deep Dive Into Nano/RaiBlocks
Nano won the community vote on which cryptocurrency I should review next: http://www.strawpoll.me/14761169
Disclaimer: I don’t own any Nano and haven’t owned Nano in the past. I might hold a position in Nano sometime in the future but am currently in wait-and-see mode.
Nano is a cryptocurrency that supports feeless, near-instant transactions, with tremendous scalability. It does so by veering from the traditional single-threaded blockchain data structure to a directed acyclic graph (DAG) data structure. Nano uses a unique DAG that the team calls a block-lattice.
As Bitcoin’s price rose over 2017, so did its transaction fees. The developers of Bitcoin’s insistence on keeping Bitcoin’s maximum block size at 1mb has caused tremendous congestion in its network. This congestion brought many altcoins with low fees and fast transaction times into the limelight. Nano, which boasts feeless and near instant transactions, was one of them. From a price of $0.20 in December to a peak price of $35 in early January, Nano’s price boomed as Bitcoin’s price stalled. At the time of writing, Nano’s price has stabilized at around $22.
Nano’s claim to fame is its feeless transactions and tremendous scalability. This sounds too good to be true and has had many people raising their eyebrows. The two fundamental properties of cryptocurrencies are decentralization and consistency and it’s generally accepted that it’s incredibly hard, maybe even impossible, to create a cryptocurrency that satisfies all three criteria of the “DCS triangle”: decentralization, consistency, and scalability.
So is Nano legitimate? Is it everything that it claims to be or is it vaporware? Let’s dive into the technology to see how it works.
10,000 feet summary
- Nano was started in 2014 as a side project by Colin LeMahieu. The project took three years to complete and a fully functional main net was launched in 2017.
- Nano has a fixed, maximum supply of 133,248,289 XRB. All XRB was created when the main net was launched.
- All transactions are free and they are confirmed within 5 seconds. Nano has an extremely high network throughput capacity and is only limited by computational speed and data transfer delays.
- Nano uses a DAG-based, block-lattice data structure instead of the traditional single-threaded blockchain.
- Consensus is maintained through a voting mechanism. Validator nodes vote on a world state that they believe is true. The number of votes each node has is the addition of the number of XRB owned plus the number of XRB delegated to the node by other accounts.
- The Nano team didn’t conduct an ICO and instead distributed Nano for free through a web faucet. 7,000,000 XRB was retained as a development fund.
Is Nano a scam?
I’ve scoured through the whitepaper and looked over the team’s history and believe that Nano is everything it claims to be, but with a few caveats. There are many open questions around its consensus algorithm. It’s not well tested and to my understanding, lacks peer review. This increases the risk of critical flaws that could bring down the network. Although Nano does indeed support near instant and free transactions, the jury is still out on whether its consensus algorithm is correct and robust.
Besides open questions on the integrity of Nano’s consensus algorithm, it’s also important to understand that Nano will tend to be more centralized than cryptocurrencies using more traditional consensus algorithms like proof of work or proof of stake. Although it doesn’t require a huge financial investment to start running a validator node, it’s still very expensive to maintain it, mainly because the system doesn’t provide direct financial incentives to do so. As such, with all else being equal, the number of validators in the system will tend to be much fewer than systems such as Ethereum or Bitcoin.
With that said, I’m confident in saying that Nano is not a scam. Although it can be more centralized than Bitcoin or Ethereum, the technology works as advertised.
How does Nano work?
Nano uses a novel data structure known as a block-lattice. While traditional blockchain-based cryptocurrencies maintain a single, global blockchain, Nano maintains a blockchain for every Nano account. Each blockchain can only be updated by the its owner.
To send funds, the sender needs to issue a “send” transaction in its own blockchain and the receiver needs to issue a corresponding “receive” transaction to its blockchain. This is why Nano is so fast. Because the account is the only entity that can update its blockchain, each blockchain can be updated immediately and asynchronously. This results in really fast transactions. Once a blockchain update is made, the transaction is propagated across the network and as long as no validator discovers a conflict, the transaction is confirmed.
The Nano network consists of wallets and validator nodes. In order for a wallet to issue a transaction, it must send it to a validator node. The node validates the transaction and then broadcasts it to all other validator nodes that it’s connected to. Every subsequent validator node performs the same validate-and-relay process until the whole network has seen the transaction.
A validator node keeps track of the state of the entire network by storing every address’s blockchain. Conflicts or “forks” happen when a published transaction conflicts with a validator node’s internal state. To resolve the conflict, the node initiates a voting process by announcing the conflict to other nodes. The voting process occurs over a predefined period where each node votes on a state of the network it believes is correct. The number of votes a node has equals the amount of Nano it owns plus the Nano delegated to it from other accounts. When a state has more than 133,248,289/2 votes (133,248,289 is the total number of XRBs in existence), it’s automatically accepted as the real state of the network.
The Nano network provides no rewards for running a validator.
To mitigate spam, an account needs to perform an easy proof of work problem to add a transaction to its own blockchain. This is, of course, not a cure-all as transactions can still be created within a few seconds.
Team and history
The key developer behind Nano is Colin LeMahieu. LeMahieu started developing Nano in 2014 and he released the network in 2017. Nano didn’t hold an ICO and instead, distributed the cryptocurrency through a web faucet. Users need only complete a captcha in order to receive Nano.
The team behind Nano is small and fairly unknown but with the cryptocurrency’s recent success, LeMahieu is in the process of building a larger team. Expect Nano to make big ecosystem plays in 2018.
PayPal lead engineer + Nano
It’s interesting to note that a lead PayPal engineer built a Nano checkout app as a weekend hack project. Check it out here. For a lead PayPal engineer to build something with Nano, even if it was just a weekend hack project, is quite significant for this nascent cryptocurrency.
Nano vs IOTA
IOTA is another cryptocurrency that offers free and near instant transactions with high scalability. IOTA, like Nano, saw a tremendous increase in price over the past month. It’s not surprising that the two are frequently compared against each other. Here’s how the two cryptocurrencies differ.
As mentioned above, Nano uses a block-lattice structure where every account has its own blockchain. IOTA uses a global DAG data structure (called Tangle) where every node in the graph represents one whole transaction. In order to issue a new transaction, an account needs to validate two previous transactions by solving an easy proof of work problem. The new transaction would then “reference” or connect to the previous two transactions in the Tangle.
While IOTA transactions happen in a single phase (i.e. one transaction that represents both a send and a receive), Nano transactions happen in two phases: a sender needs to issue a “send” transaction in its blockchain and the receiver needs to issue a corresponding “receive” transaction.
Nano is more decentralized than IOTA (though both pale in comparison to Bitcoin and Ethereum). IOTA currently needs a centralized Coordinator to ensure network security and direct network progress. This is because IOTA’s network security is directly tied to the number of transactions occuring in the network. In low transaction conditions, network security drops significantly. In theory, the Coordinator will eventually become unnecessary as the network reaches a critical mass of adoption but IOTA is far from this reality. A scary consequence of the existence of a Coordinator is the fact that IOTA’s developers can freeze any user’s funds at a whim… and they have done so before (source). The security of Nano’s network, on the other hand, does not depend on the volume of transactions in the system. As such, Nano doesn’t need a centralized entity as a security crutch.
But it’s not all that bad for IOTA. After all, it was one of the first movers for free and fast cryptocurrencies and it has an ecosystem advantage over Nano. IOTA has more users and the IOTA Foundation has more business connections. For example, the Foundation recently launched an IOTA Data Marketplace initiative with many large companies participating.
I am primarily concerned with how expensive it is to operate a Nano or IOTA validator node since both require high performance computers but the network provides no financial reward to do so. This discourages the operation of validator nodes and the less validator nodes in a network, the more centralized it is and thus the less secure it is.
Project concerns
Concerns with the consensus algorithm
As mentioned above, there are many open questions around the consensus algorithm. Given that Nano is so young, it’s not well tested and lacks peer review. This introduces the risk of a serious flaw in the consensus algorithm. For example, what happens if there aren’t enough votes for a quorum in order to resolve a network conflict? Currently, validator nodes rely on the maximum supply number (133,248,289 XRB) in order to determine a quorum and it’s totally possible that a voting process could not have enough validator nodes participating.
Here’s another big question I have: in the event that parts of the Nano network get separated for a long period of time (perhaps due to network issues or other freak occurences), what happens when you rejoin the separated networks? Will the rejoined network be crippled from all the voting processes that would inevitably take place? Is there a mathematical guarantee that the new network will recover?
These are all very important questions and their answers will determine the robustness and, ultimately, the longevity of Nano.
Spam vulnerability
Nano, being inherently feeless, is highly vulnerable to spam. I could run a script where multiple accounts will constantly send transactions between each other creating massive blockchains. Run long enough, it will make validators incredibly expensive to maintain.
It costs next to nothing to create spam in the system yet spam can be very costly. Unlike the traditional blockchain where storage and computational costs are predictable, Nano’s feeless transactions and scalability makes both of these costs highly unpredictable and there is no rule that prevents them from skyrocketing.
Expect these spam attacks to occur as Nano increases in popularity and we will have to see how the development team responds.
Nano doesn’t incentivize decentralization
Nano’s validator nodes are very expensive to operate run. The operation costs consist of high network throughput costs and modest processing and storage costs. Since there’s no reward for running a Nano validator node, validator node operators are prone to centralization.
Some people argue that this is not a problem since wealthy businesses relying on the Nano network are incentivized to run validator nodes to secure the network. Large investors might also be incentivized to run validator nodes in order to secure their investment. However, we have yet to see if this is true.
Limited applications - no smart contracts
Smart contracts are an undervalued yet very powerful extension to cryptocurrencies. I have a strong feeling that the any cryptocurrency that wants to be successful in the long run must support smart contracts. However, I have reservations on whether Nano will ever be able to support smart contracts given that its system is so radically different.
Bottomline - am I bullish on Nano?
Nano works as described - near instant and feeless transactions with unlimited transaction throughput. It has a lot of potential to seriously challenge big names like IOTA and even Bitcoin. However, Nano is currently being held back by an unproven consensus algorithm, spam vulnerability, centralization concerns, and the lack of smart contracts. Nevertheless, the network in its current state works and it works well. Although there are still many open questions around the project, I am quite bullish for it.