TIL: NEM cryptotoken consensus algorithm and blockchain features
This post is a compilation of concepts, facts and links I've researched to understand NEM better.
NEM (New Economy Movement) was announced on BitcoinTalk forum by user utopianfuture. While the initial plan was to create a fork of NXT payment network, NEM codebase was built from the ground up.
NEM's "100% original code" is often used in the promotional materials and has some important implications:
- developers are competent enough to produce a new blockchain consensus
- NEM's consensus algorithm wasn't battletested by years of running in production
NEM is built by developers based in Japan and is popular within the country.
- XEM public chain token
- Vesting and Harvesting (mining)
- Namespaces and mosaics (assets)
- Encrypted messaging
“NEM was started to rectify some of the problems with not only the world economy, but also with other cryptocurrencies. One of the problems is of course distribution of wealth”, - Makoto, Lead developer, NEM
"Yes, we are certainly a Blockchain solution that can have multiple vertical applications. We have converts from Ethereum and Bitcoin that were amazed at how easy it is to develop in NEM. For example, we put together a land title registry solution in less than five days, whereas we can see a competition who’d have an army of programmers to do similar things in months using the Bitcoin core technology. We also heard that this similar project would take 1 month to do in Ethereum. This bodes well for the future of NEM," says NEM.io Foundation’s President Lon Wong.
Context: XEM price
I've found several possible reasons for price increase (apart of the general altcoin growth):
- NEM.io Foundation establishment in December 2016
- NEM and Mijin was tested by more than 300 companies and institutions
- XEM token was added to Coincheck, one of Japan’s largest cryptocurrency exchanges
- NEM’s iOS app release
- Chronobank partnership
NEM blockchain concept map
PoI or Proof-of-Importance
The main distinguishing feature of PoI algorithm is that block rewards are determinted by user level of participation in the NEM economy. Participation is defined as a combination of account vested balance and its' graph of inbound and outbound transactions.
This is where NEM comes in. Its POI system not only rewards those with a large account balance, but also takes into account how much they transact to others and who they transact with.
This means that those who actively help the economy and therefore NEM benefit, meaning the right people, are rewarded. Each user is given a trust score, the higher it is, the more chance they have of being rewarded.
Source: NEM official blog post
Each account is assigned an importance score that proxies its aggregate importance to the NEM economy. Accounts with higher
importance scores have higher probabilities of harvesting a block (see section 5: Blocks and the block chain). Because all transactions are publicly available in NEM, the transaction graph of the NEM economy can be calculated exactly. The topology of the transaction graph can be used as an input into the importance of an account. The insight that the transaction graph can be used for elucidating the importance of an account is the key innovation of Proof-of-Importance.
Source: NEM technical reference
NEM founders claim that "the main aim [of PoI] is to empower regular people.". I'm not yet sure about that. If "importance" is defined by transaction graph of a node(vertex) in a network, most "important" will be hubs. By definition hubs are not regular uses.
EigenTrust and EigentTrust++
NEM PoI is based on EigenTrust++ algorithm, a modified version of EigenTrust. EigenTrust is a reputation system originally designed to reduce the number of downloads of inauthentic files in a P2P network. It measures how well different computers on the network interact with each other based on the peer's history of uploads and directs network traffic to the most trusted sources. Eigentrust was developed by Sep Kamvar, Mario Schlosser and Hector Garcia-Molina from Standford university. Eigentrust++ is supposed to have a stronger resilience against Sybil attacks.
Mijin is a private blockchain solution that uses NEM sofware.
The name Mijin comes from a ninja weapon made from 3 chains that would tear an enemy apart into tiny piece. Mijin similarly destroys the cost of conventional infrastructure.
"A key difference compared to Bitcoin is that Mijin will allow private blockchains. This is profoundly interesting because of the potential to completely change financial, logistics, and governance systems," - Mori Hamada & Matsumoto Legal Office, Tech Bureau Legal Adviser.
“Essentially, instead of having a fully public and uncontrolled network and state machine secured by cryptoeconomics (eg. proof of work, proof of stake), it is also possible to create a system where access permissions are more tightly controlled, with rights to modify or even read the blockchain state restricted to a few users, while still maintaining many kinds of partial guarantees of authenticity and decentralization that blockchains provide” - Vitalik Buterin about generic permissioned chains.
Some articles about Mijin use:
Harvesting in NEM is the process of generating blocks and earning the transaction fees in that block as a reward for the contributed work. The POI (Proof-of-Importance) algorithm determines who is allowed to generate a block (or more precisely: which generated block is considered as valid). To be able to harvest, the account needs a vested(!) balance of at least 10,000 XEM.
There are two types of harvesting: local and delegated. Local mode requires a private key and always-on computer/server while delegated setup can be done remotely without exposing a private key. Remote harvesting requires a simple ceremony to initiate.
User deposits tokens into an account and after 24 hours 10% of the balance becomes vested. Then after 24 hours 10% of the unvested remainder XEM is converted to the vested balance.
To be eligible for entering the importance calculation, an account must have at least 10,000 vested XEM. All accounts owning more than 10,000 vested XEM have a non-zero importance score.
Mosaics and namespaces
Mosaics are a NEM's solution for providing user issued tokens for public and private blockchains.
To create an asset, a user is requred to register a root namespace, like a website domain or a folder. Namespaces are:
- namespace creation has a defined XEM price
- limited to 16 alphanumeric characters
- user can create as many sub-namespaces as wanted
User defined mosaic properties:
- name of the mosaic, up to a size limit of 32 characters; must be unique
- description, a free-text description of the mosaic up to 128 characters
- divisibility (like satoshis in bitcoin)
- transferable/not transferable
- possible transaction levy (tax)
Other useful links
- Nikkei Was Wrong to Claim Takemiya Was Founder of NEM, Leading Japanese Blockchain
- Makoto Takemiya - Our Clarification
- Xhai Studios Integrates NEM Blockchain To Ditch Middlemen, Payment Processor
- NEM Blockchain Platform Doubles the Rewards for its Supernode Program
- How Japanese Blockchain Technology Revolutionizes Municipal Government in Belgium
- Radicalizing the Equity Market Landscape
- Top Ten Cryptocurrency NEM Catches on in Japan