NEM is a peer-to-peer cryptocurrency and blockchain platform launched on March 31, 2015. Written in Java, with a C++ version in the works, NEM has a stated goal of a wide distribution model and has introduced new features to blockchain technology such as its proof-of-importance (POI) algorithm, multisignature accounts, encrypted messaging, and an Eigentrust++ reputation system. The NEM blockchain software is used in a commercial blockchain called Mijin, which is being tested by financial institutions and private companies in Japan and internationally.
NEM was started by a Bitcoin Talk forum user called UtopianFuture who was inspired by Nxt. The initial plan for NEM was to create a fork of NXT, but this was eventually dismissed in favor of a completely new codebase. Starting on January 19, 2014, an open call for participation began on the Bitcointalk forum. The goal of the call was to create a community-oriented cryptocurrency from the ground up. The NEM project was not a legal entity at the time, though there have been recent efforts to change this. Stakes of NEM were to be distributed to those who contributed to the project in amounts of 2.25 Million XEM. As the project evolved, people were able to redeem the stakes they had paid for. As NEM was not a legal entity, there was an uncertainty if the people running the redemption would leave. As a result, an 8-month deadline was created. All unclaimed funds were decided to be put aside for the development of NEM.
The Alpha version was released on June 25, 2014. Subsequently, the Beta production version was launched on 20 October 2014. NEM launched its first stable release version on March 31, 2015. The next large update to the NEM ecosystem will be called Catapult. It was originally estimated to be released in Q1 2017 but has since moved to Q2 2017 for the release of its alpha version.
Alpha and Beta
NEM went through open alpha testing starting on June 25, 2014, followed by lengthy and comprehensive beta testing starting on October 20, 2014.
The NEM developers are pseudonymous, but are still largely trusted by the NEM community. The key figures leading the NEM foundation have a public identity, while all of the developers do not reveal their real identities.
The stable version launched on March 31, 2015 has been under active development. New versions are launched every few months providing bug fixes. The majority of the developers' work is focused on Catapult, which will add new features rather than maintenance updates.
In April 2016, Tech Bureau, the operator one of Japan’s largest cryptocurrency exchanges, Zaif, formed a partnership with NEM by announcing that both Mijin and NEM will share the next version of NEM's technology, Catapult. Catapult has been in development since early 2016 and is an enhanced version of NEM/Mijin written in C++ and designed to increase throughput, flexibility, stability, optimization of network communication, and scalability, offering better network performance as well as with more enhanced features.
Another client was the NEM Community Client (NCC). The NIS is connected to the P2P network and acts as a gateway for the NCC. The NCC is a client software that includes a wallet. The NCC has since been deprecated in favor of the NanoWallet. Both NCC and the NanoWallet can be run isolated from the internet, providing security through an airgap.
The modular architecture of NEM allows the wallet software to be protected from external attacks. It is practically impossible to break into the wallet if the wallet is only connected to the NIS through a firewall. Wallets can be used on any computer, whereas the NIS represents a node on the NEM network and can be hosted from remote locations. This allows any device, including low power computers and mobile devices to interact with the NEM blockchain given that they have access to an internet connection capable of connecting to any NIS. Even if the public facing NIS is hacked, there is no direct line of attack into the NEM wallet software from the NIS, creating an extra layer of security.
NEM is a new code base that was written entirely in Java. It uses the POI (proof-of-importance) algorithm instead of POW (proof-of-work). NEM uses a client–server model where the NIS (NEM Infrastructure Server) runs independent of the NCC (NEM Community Client). This allows light clients to operate without running a full copy of the NEM blockchain.
Although the NEM client is open source and available on GitHub, the NEM server based component, the NIS, is closed source. The pseudonymous developers of Catapult say that the C++ rewrite, Catapult, will be open source.
Namespaces on the NEM system are a domain naming system similar to the internet's centralized ICANN domain name system. Within namespaces, there are higher level domains and subdomains. This allows one person with one domain to create many different subdomains for their different projects or outside business accounts. It also helps to build and maintain a reputation system for Mosaics.
A creator owning the root domain namespace can create as many sub-domains as wanted using a convention similar to the Java namespace convention, i.e., separated by a dot "." to represent a domain or subdomain and a colon ":" to represent the name of an asset. An unlimited number of domains and subdomains can be created by a user given that they have enough XEM in their account to do so. The sub-levels of a namespace can act as the actual name of the asset, or in some cases can be a class of assets as it is itself a sub-domain with lots of assets under that sub-domain name. This means that last part of a string will always be the name of the individual asset on the NEM blockchain and the prior names will act as the domain and/or subdomain for that asset.
Mosaics are custom assets on the NEM blockchain. The mosaics themselves are customizable by amount in either a fixed capped or mutable quantity. They can be designed to be transferable or not, divisible or not, have personalized descriptions, and can be sent alongside encrypted messages in one transaction. Mosaics can be applied with a levy so that any mosaic being sent on the network will have to have a special fee paid above the normal transactions fees. This levy fee can be assigned to be nem:xem (which is the mosaic notation for normal XEM coins) or any other mosaic on the NEM blockchain. Each mosaic gets a name that is under a unique domain in the namespace system in the format of subdomain.domain:mosaic.
Node reputation system
NEM employs an Eigentrust++ as a reputation system. NEM ensures the health of the blockchain by monitoring past behavior of nodes within the network. In proof-of-work, the amount of work a node does is used as a measure for its ability to protect the network. But, with Eigentrust++, it is the quality of work that is important. This adds to the NEM network's ability to be run and maintained efficiently.
POI is the algorithm used in NEM to time stamp transactions. A NEM user's importance is determined by how many coins they have and the number of transactions made to and from their wallet. POI uses the NCDawareRank network centrality measure, the topology of the transaction graph, as well as a number of other relevant signals to achieve consensus. POI is different from other initiatives which use a fee-sharing model that does not take into consideration one's overall support of the network. In proof-of-stake systems a person needs to have large numbers of coins to form a block, but in NEM transactions volume and trust become factors. This was designed to encourage users of NEM to not simply hold XEM but instead actively carry out transactions.
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. With a supply of 8,999,999,999 XEM, the theoretical maximum number of accounts with non-zero importance is 899,999. In practice, the number of actual accounts with non-zero importance is not expected to approach the theoretical max due to inequalities in held XEM and also the temporal costs associated with vesting. If NEM becomes very popular, a threshold of 10,000 vested XEM could be undesirable. If necessary, this number could be updated in the future via a hard fork, which is the same procedure for adjusting transaction fees and other parameters related to harvesting.
Harvesting is the act of forming blocks. A harvester must have at least 10,000 vested XEM in his/her account and be running a booted and synchronized node. Once a block is formed by that harvester, a new block is added to the chain and all the fees collected from that block will be delivered to the harvester’s account.
NEM also has a feature called delegated harvesting which allows people to request others to form blocks and process fees for them, but done in a safe and secure way so that a person’s funds are not ever locked up, and fees are always given directly to the person that activated delegated harvesting, not the person that was harvesting for them.
The supernodes rewards program allows the NEM foundation to reward people running active nodes. Anyone with a minimum of 3 million XEM gets paid 140,000XEM divided by the total number of supernodes (doubled from 70,000XEM) every day for running a supernode that meets a minimum technological requirement.
NEM uses supernodes to form a backbone of support for light wallets, mobile wallets, and 3rd party apps. Supernodes provide access to the NEM Blockchain so that users can get to the network without having to sync to a blockchain locally.
Messages can be included in transactions in either encrypted, unencrypted, or hex messaging forms. No XEM needs to be sent in order for a message to be sent on the XEM network. This can be used for secure communication to any XEM address, as well as blockchain based applications. The fee for sending unencrypted messages is currently 1 XEM for every 32 characters, while encrypted messages will vary.
NEM implements multisig (short for multi-signature) technology on its platform. Specifically, NEM implements m of n multisignature, where m ≤ n. This means that m out of a total of n signatories must sign a transaction before it can be broadcast onto the blockchain. NEM's multisignature works by making a contract on chain so that the "m" accounts have full transaction privileges over the account that has been turned into a multisig account. Since the contract metadata is on chain, it can easily be updated by adding or subtracting additional signers given that the required number of parties agree on it.
Multisignature accounts require that another user or users sign a transaction before it can be broadcast onto the blockchain. This means that if one person loses their wallet through a hack, no money can be spent unless another wallet (or wallets if m is more than 2) signs it. Multisignature accounts also help protect community-held funds, in that a majority of designated users must agree before a transaction can be spent from a community-held wallet. This is especially important considering over a third of all XEM in circulation is held in these community wallets.
The catapult release is said to include enhanced use of multisig providing the solution with a very extensive smart contract capability.
Mijin is a private blockchain that uses the NEM software. The developers claim that it will reduce banking institutional costs by 90% while making banking more secure. Sakura Internet is partnered with Tech Bureau to offer 6 month free trials of Mijin for people to try. Mijin is being tested by Infoteria in its enterprise software Asteria. It was tested in December 2015 by Japan's largest trust bank, SBI Sumishin Net Bank, owned by Sumitomo Mitsui Trust Holdings, to add to their online banking services. In December 2015, the Japanese SBI Sumishin Net Bank, commissioned NRI, a research group in Japan to conduct a test of the NEM blockchain technology Mijin. They tested 2,500,000 accounts with over 2,000,000 transactions per day with a variety of transactions over a three-month period and passed.
Mijin is able to support any arbitrary number of assets on its chain. All the features available with NEM are also available with Mijin, with the addition of smart contract support. Much about how the smart contract support will work is still under wraps, with the only reference to it being in the Mijin about page on the official website. The developers that are working on NEM are also the same ones working on Mijin.
Mijin completed its first test in Q4 2015, achieving 25 transactions per second on a global network. In Q1 2016 it moved onto 5000 transactions per second on a local private network. In Q2 and Q3 of 2016 smart contracts were added to Mijin, and Mijin was integrated into some exchanges. In Q4 2016 Mijin finally achieved 10000 transactions per second on a local network, and 100 transactions per second on a global network. The development goal of Mijin is publicly stated as being to reduce the cost of banking infrastructure by 90% by Q4 2018.
Coinjournal - Bitcoin News With Integrity