Protocol Design - Introduction¶
Part of work in progress Living Whitepaper
This page is part of the Living Whitepaper revisions currently underway to replace the original static whitepaper. These efforts include the Protocol Design and Node Implementation sections of the docs, which will cover and expand on details and topics covered in the original whitepaper.
See the bottom of the page for related whitepaper sections and other related details. Some of the sections and headers on this page may be in draft form or just suggestions/framework for later consideration. If you are interested in helping with revisions please connect with us on the
#documentation channel on our Discord server.
Contributing to the protocol
If you are interested in helping develop the Nano protocol check out our details on contributing code to the Nano node as a starting point to understanding the current implementation contributions, as these are often tightly coupled with protocol-related changes.
Limited scalability and high demand can lead to significantly increased transaction fees and confirmation times for popular cryptocurrencies like Bitcoin, resulting in a poor user experience for peer-to-peer transactions. Here we introduce Nano, a cryptocurrency with a novel block-lattice architecture where each account has its own blockchain, enabling near instant transactions and scalability that is not artificially limited by protocol-side variables like block sizes or block times.
Each Nano user has their own blockchain, allowing them to update their chain asynchronously vs other transactions on the network, resulting in fast transactions with minimal overhead. Transactions keep track of account balances rather than transaction amounts, allowing aggressive database pruning without compromising security. Consensus is maintained by Open Representative Voting (ORV), which facilitates irreversible finality (full-settlement). User-selected representative nodes vote on each transaction, and every node independently cements each transaction after seeing enough representative votes to achieve quorum.
To date, the Nano network has processed more than 53 million transactions with an unpruned ledger size of only 25.33GB. Average transaction confirmation time during typical network conditions is 0.2 seconds 1. The production network has seen traffic as high as 161 CPS (80.5-161 TPS), while the beta network has achieved >1800 CPS (900-1800 TPS) 2. Nano’s feeless, split-second transactions make it an ideal cryptocurrency for consumer transactions, while also maintaining decentralization, censorship-resistance, and self-sovereignty.
Since the implementation of Bitcoin in 2009, there has been a growing shift away from traditional, government-backed currencies and financial systems towards modern payments systems based on cryptography, which offer the ability to store and transfer funds in a trustless and secure manner 3. In order to function effectively, a currency must be easily transferable, non-reversible, and have limited or no fees. Unfortunately, increased transaction times, high fees, limited network scalability, and high energy consumption have raised questions about the practicality of Bitcoin as an everyday currency.
In this living whitepaper, we introduce Nano, a low-latency cryptocurrency built on an innovative block-lattice data structure offering unlimited scalability and no transaction fees. Nano by design is a simple protocol, with the sole purpose of being a high-performance cryptocurrency. The Nano protocol can run on low-power hardware, allowing it to be a practical, decentralized cryptocurrency for everyday use.
Cryptocurrency statistics reported in this living whitepaper are accurate as of August 21, 2020.
The following sections of the Living Whitepaper outline the design of the Nano protocol. The focus here is providing details of the blueprints for the different messages shared between nodes which allow data to be stored and communicated consistently across the network.
Because Nano is decentralized and uses network-wide consensus to validate transactions, participating requires following specific message and data designs, otherwise attempts at transacting will not be confirmed by the network.
Although there is cross-over between the two main areas of the living whitepaper, the following Protocol Design sections are largely required to participant on the network, while the Node Implementation sections primarily cover functionality that improves performance and security through a specific node design, but doesn't contain elements the network explicitly requires.
|Ledger||Unique Block Lattice design of the Nano ledger|
|Blocks||Block structures and transaction types|
|Work||Computation required to establish validity and priority of transactions on the network|
|Networking||Protocols, ports and details of current vs. historical traffic|
|ORV Consensus||Mechanism for efficiently achieving network-wide consensus|
|Attack Vectors||Potential attack vectors, risk levels and mitigations in place|
|Resource Usage||Estimates for bandwidth, disk and computational resources for nodes|
|Distribution and Units||Unit measurements and methods used for full distribution of Nano|
|Signing, Hashing and Key Derivation||Cryptographic methods used for signing and validation|
|Contributing||How to contribute to the Nano protocol directly|
|Original Whitepaper||Online version of original whitepaper last revised in November 2017|
Existing whitepaper sections related to this page:
Other existing content related to this page: