One of the core decisions when designing the Nano protocol was to avoid relying on transaction fees. Instead, transactions require a small Proof of Work (PoW) value to discourage transaction spam.
Spam: transactions with no utility which create undesirable extra load on the network.
Proof of Work: a mathematical problem that is hard to calculate but simple to verify.
This design helps to tackle the emergent centralization issues seen in other currencies and allows more flexibility in who, how, and where costs related to a transaction are managed.
Emergent centralization due to economies of scale
A defining property of cryptocurrency which separates it from other monetary systems is the focus on being…
But this setup has drawbacks — anyone with enough computational power can generate a large amount of pre-computed PoW to send lots of transactions aimed at disrupting the network.
With previous Nano node releases, steps have been taken to help mitigate the potential impacts of spam, thus protecting the quality of service on the network. First, the Dolphin V18 release provided the ability to prioritize transactions based on the difficulty level of PoW. Then with the following release, Solidus V19, updates were made to automatically recalculate the PoW for unconfirmed transactions when the network is under heavy load.
With these changes, users can get their transactions prioritized, even when the network is saturated with spam transactions.
None of the updates aimed at mitigating the impact of spam have yet looked at the underlying algorithm used in the Nano network. With V20, we are taking another major step with the introduction of a completely new PoW algorithm, uniquely designed to reflect the speed and latency requirements of the protocol, as well as its simplicity.
We call this Nano PoW.
Why do we need a new PoW algorithm?
The current PoW algorithm is based on computational power, which makes it too easy and cheap to scale for spam. Specialized hardware can be used to mass-compute PoW. A potential solution to this includes increasing the amount of computational work required for nodes to accept a transaction. Although to effectively discourage spam, the difficulty level would have to be raised to a degree out of reach for the everyday user.
To combat this problem, algorithms which primarily use memory elements have been developed. These are more expensive resources that cannot be easily scaled up on specialized hardware, effectively making it much more costly to mass-compute PoW. At the same time, this has a manageable impact on the average user, as the amount of memory required to generate PoW can be tuned to be within the range of conventional devices.
Why not use available algorithms?
All publicly available memory-based PoW algorithms have one or more drawbacks that make them unfit to be used within the Nano protocol:
- Verification is too costly, creating an impractical burden on all node operators
- Resulting proofs are too large, impacting the size of blocks and bandwidth usage
- Shortcuts can be found which create unfair and exploitable advantages
- Complex specifications and implementations, making use impractical
What makes Nano PoW perfect for our needs?
- Trivial verification — Verification using the current PoW algorithm is very lightweight and provides sufficient protection against related Denial of Service (DoS) attacks. Nano PoW requires even fewer resources to be verified.
- Small proof size — With blocks designed to fit into a single UDP packet, all data must be as small as possible. With Nano PoW, the proof has a size of 10 bytes, which still fits in the same payload.
- Memory-hard — Scales based on memory rather than compute elements. Much more expensive to scale and using less energy to generate.
- Simple — Both in specification and implementation. Simplicity makes it easier to create and validate, along with reducing the probability that issues will be found later.
Does the new algorithm use more energy?
No, in fact, due to memory access being more energy-efficient, energy consumption is lower for an equivalent difficulty level as compared to the current algorithm used by the Nano network.
Who created Nano PoW?
Colin Lemahieu designed and developed Nano PoW. He has been working with the Nano Foundation team and consulted with various other third-parties in the industry to validate and adjust the implementation.
When will it be available?
Our Lydia V20 release will include Nano PoW. The existing PoW algorithm will also remain available for use by nodes after upgrading. At a later date, after the release, the network will complete the transition to Nano PoW as the only algorithm allowed.
V20 — A Look at Lydia
Lydia will bring one of the most anticipated features to the Nano protocol — NanoPoW — a new memory-hard proof of work…
Additional details will be communicated in good time, and a separate work generation server will be provided to help services and node operators successfully make the transition to using Nano PoW.
How can I find out more?
Stay tuned for an upcoming article by Colin LeMahieu with a more technical overview of the algorithm design.