NEM has been launched on March 31, 2015; it is written in Java and the current block time is of about 60 seconds.
The native cryptocurrency of the network is XEM: there are 9 billion XEM, and there won’t ever be more, and the official wallet is called nano wallet.
NEM is meant to be a community driven cryptocurrency and — as we’ll see — this focus heavily influenced the network architecture.
Proof of Importance
The consensus algorithm of NEM is called Proof of Importance (POI) and has some similarities with the Proof of Stake (PoS) algorithm.
This algorithm also doesn’t have high computing power requirements for its nodes, so it is possible to run a full node of the network on under 5 watts of power.
Nodes need to “vest” an amount of currency to be eligible for “harvesting” — the NEM’s equivalent of mining — and the selection for block creation is based on a score.
The balance is vested automatically at 10% of the unvested balance and transactions spend the vested and unvested balance equally.
The primary inputs for the score calculation are:
- How much the address did spend in the last month
- The amount of vested XEM
- If the address is a cluster node
The network architecture
Nodes — called NEM Infrastructure Servers (NIS) — are given a score based on the quality of service. A consequence of this design is that nodes that behave dishonestly should get caught and be excluded from the network.
The algorithm is designed this way to address what are by many believed to be the two main flaws of PoS. The first issue prevented by this is the “nothing at stake” problem. The other problem solved (or at least alleviated) by this algorithm is wealth concentration.
Simply hoarding coins to harvest more rewards is solved having the importance score be based on factors that aren’t the number of vested coins. The score is designed in such a way that being a merchant could pay off more than merely having a lot of XEM.
The communication of the p2p network is based on the HTTP protocol. There is both a mainnet and testnet available and the Mijin network which is a private NEM blockchain.
Among the most prominent features of the NEM blockchain, we find its messaging, domain naming and smart asset systems.
NEM supports messages that are part of transactions like most other blockchains do. NEM also supports sending a message without sending any actual transaction, paying only a fee based on the message length.
The domain naming system — which is referred to as Namespaces — is integrated with the reputation system. Namespaces can host mosaics which are custom assets. Those combined constitute a system that is pretty similar to the internet domain system.
Mosaics can be configured in a way that closely resembles the ERC tokens of the Ethereum ecosystem.
External smart contracts support
In NEM, smart contracts are treated as an external resource. Since they are external, the contracts employed on the network are software running off-chain written in any programming language.
This approach, if compared to Ethereum’s EVM is less “trustless” since the code of the contract itself isn’t on the chain and can change. On the bright side, having only to record the balances and transactions renders the NEM network more efficient and lowers the hardware requirements for running nodes of the blockchain.