Обзор криптовалют / NEM

Обзор криптовалют / NEM

Digital Gold / Цифровое золото @nanocat

XEM

Дата обзора: 29/12/2017           

Название:  NEM (XEM)

Количество монет:  8,999,999,999

Текущая капитализация:  $7 846 433 999 USD 

Дата старта:     Анонс на форумах произошел 15 июня 2014 года, а первый блок был сгенерирован 29 марта 2015 года. Официальный запуск произошел 31 марта 2015 года.

Текущая цена: $0,87$ / 0.00006086 BTC

Текущая высота блоков:  1 434 483

Создатель: UtopianFuture (bitcointalk), Lon Wong

История:

NEM был запущен пользователем форума Bitcointalk под названием UtopianFuture, который был вдохновлен Nxt.

Первоначальный план NEM заключался в создании ответвления от NXT. Но, в конечном итоге, была разработана совершенно новая платформа. Начиная с 19 января 2014 года на форуме Bitcointalk начался открытое обсуждение. Целью обсуждения было создание криптовалюты с нуля. В течении полугода после создания этого топика – был процесс первичной разработки бета-версии. После чего 29 марта произошел релиз бета версии.

Изначально монета имела исключительно локальное распространение и находилась в обороте в Японии. Но всего за 2 года ей удалось выбиться в ТОП-10 криптовалют по показателю капитализации. Главная цель, которая стояла перед разработчиками, заключалась в создании нового инструмента, который мог бы вывести безопасность и скорость транзакций на новый уровень. Именно этим инструментом и стала NEM (XEM).

Инфраструктура:  

Хорошая. На базе этой криптовалюты даже создан закрытый блокчейн mijin, использующийся в работе банков Японии. Разработчики постоянно улучшают экосистему и саму криптовалюту. В сети имеются NIS и NCC – т.е. сервер и клиент, соответственно. Что позволяет отделить мух от котлет и позволить пользователям не скачивать полный блокчейн.

Описание технологии и отличительные стороны:

Особенности NEM кратко

> Аккаунты

Сеть NEM хранит данные аккаунтов пользователей, как ноды биткоина хранят информацию о балансах адресов в UTXO индесах. Nem в этом плане сильно напоминает Ethereum, который, напомню – хранит информацию для всех аккаунтов в сети в дереве Патрисии. Итак, NEM хранит следующую информацию об аккаунтах:

  • Баланс
  • Количество найденных блоков
  • Высота блока, который связан с данным аккаунтом (первое зачисление на этот аккаунт)
  • Список miltisig аккаунтов и список подписантов (для multisig аккаунта)
  • Информация о делегировании харвестинга (в случае, если харвестинг этого аккаунта делегирован другому аккаунту)
  • Важность аккаунта (для POI)
  • Подтвержденный баланс
Подтверждение 100 000 XEM в сети NEM

Насчет подтвержденного (vested) и не подтвержденного (unvested) баланса. Суть в том, что собирать блоки (харвестинг) вы можете только с подтвержденным балансом, поэтому в XEM существует 2 баланса, подтвержденный и неподтвержденный. Каждые сутки - 10% не подтвержденного баланса переходит в подтвержденный и может участвовать в харвестинге.

Когда вы отправляете монеты – вы отправляете их с обоих счетов, система сама пересчитывает соотношение, согласно внутренним рейтингам. Когда пользователь принимает новые монеты – он принимает их в unvested баланс. Система очень схожа с PoS, которому необходим и важен «возраст» монет в кошельке для перемещения монет в «stack».


> Транзакции

В неме существует интересная особенность – у каждой транзакции есть deadline, в пределах которого эта транзакция может быть не подтвержденной. Если не подтвержденная транзакция не включается в блок после deadline – она становится не активной. В отличие от биткоина, в котором эти транзакции остаются висеть в мемпуле.

В неме существуют разные типы транзакций.

  • Первый тип – транзакция-перевод, которая позволяет переводить XEM с одного аккаунта на другой.  Каждая такая транзакция позволяет прикрепить до 96 байт произвольной информации, в случае открытых данных, и 48 байт шифрованных данных (AES-CBC). Транзакция считается как за байты информации, так и за самую передачу.
  • Делегирование харвестинга – в немее можо делегировать свои мощности другому аккаунту, т.е. сдать их в аренду, что позволяет добывать NEM на удаленных серверах без необходимости раскрывать серверу свой приватный ключ. Т.е. добывать нем удаленно без каких-либо рисков потери собственных монет. Одна особенность – после передачи монет таким способом (и прохождения 360 подтверждений данной транзакции) – только делегированный аккаунт сможет добывать новые монеты, а владелец – нет. Таким же способом делегирование отключается. В течении 360 подтверждений после отсылки транзакции на отключение – автор может производить харвестинг, а делегированный аккаунт – не сможет.
  • Мультиподписные транзакции – подразделяются на несколько транзакций:
  1. Конвертирование аккаунта в мультиподписной. Каждый аккаунт в системе может быть сконвертирован в мультиподписной, транзакция в этом случае содержит информацию о подписантах. Число подписантов не может превышать 32.
  2. Редактирование мультиподписного аккаунта. Данная транзакция позволяет обновить число подписантов, добавив или удалив их из списка. Каждое действие в этом случае должно быть подписано всеми подписантами данного аккаунта (кроме случая удаления, когда подписать должны все, кроме удаляемого).

Когда все подписанты удалены – аккаунт переходит обратно в статус обычного.

Мультиподписная транзакция и мультиподписная подписная транзакция работают в паре и позволяют работать системе мультиподписей применительно к отправке монет с мультиподписного аккаунта. Если вкратце – все участники создают мультиподписную подписную транзакцию, указывающую на не подписанную транзакцию с переводом средств для каждого из подписантов. Если все участники отправили такие транзакции – итоговая мультиподписная транзакция будет сгенерирована и отправлена. Разделение мультиподписных транзакций позволяет добиться интересной особенности: когда какой-то из соподписантов из мультиподписного аккаунта инициирует транзакцию - у других соподписантов в кошельке появляется эта транзакция и кнопка "подписать", так что применить эту транзакцию можно в два клика.


> Антиспам

 В Nem довольно применена довольно интересная технология антиспама. В отличие от биткоина, комиссия в котором зависит от загруженности майнеров и состояния мемпула – в nem добавлен коэффициент комиссии, позволяющий убрать возможность флуда в сети. Если по-простому (как мы любим) то чем больше пользователь важен сети, т.е. использует её для себя – тем чаще сеть будет давать ему добавлять транзакции, если в мемпуле их более чем 120. Иначе – часть транзакций будет отклоняться сетью. Это решает проблему с массовым количеством аккаунтов в сети и возможностью флуда в ней, потому что важность аккаунта можно посчитать только исходя из количества транзакций определенного аккаунта. Злоумышленник все же может произвести флуд-атаку на сеть, но для этого ему необходимо будет увеличивать комиссии с каждым циклом отправки, что выйдет довольно накладно.

Справедливое нахождение блока для важности 0,01% (1 продецемили) от сети, зависимость от уровня заполнености mempool


> Блокчейн

Каждый блок в NEM может содержать максимум 120 транзакций, блок каждую минуту, что равняется примерно 2 транзакции в секунду (в биткоине – 3000-5000 транзакций, блок каждые 10 минут, 7 транзакций в секунду).

среднее время блока

Из особенностей – сложность сети пересчитывается каждый час (каждые 60 блоков), блок содержит публичный ключ того, кто его нашел и высоту в блокчейне (как и в эфире).  Сложность блока привязывается ко времени генерации предыдущих 60 блоков, и стремится к 60 секундам.

Процесс создания нового блока называется харвестинг (сбор урожая). По аналогии с POS в Nem испольуется POI (Proof of importance) (доказательство важности), о котором будет написано в главе ниже. Суть в том, что так же как и в POS, в POI только аккаунты с vested (законный баланс) могут добывать новые блоки.  

Каждый блок в блокчейне нема имеет свой рейтинг, он основан на формуле:

сложность-время с предыдущего блока

и позволяет  избежать проблем форков при синхронизации блокчейна, т.е. просто выбирать цепь с лучшим усредненным рейтингом блоков.


> Репутационная система

Разработчики NEM так же создали репутационную систему, которая позволяет исключать из сети недобросовестных узлов. Репутационная система базируется на трех типах сообщений:

  • Success – новая верная информация
  • Neutral – Известная информация
  • Failure – ложная информация

Тип neutral игнорируется при расчете рейтингов нод, а success и failture используются в специальной формуле, чтобы получить значение, которое называется «local trust», которое и определяет честность той или иной ноды. Каждая нода хранит матрицу таких значений для всех нод, с которыми она соединена и время от времени распространяет её по сети другим участникам сети.

В итоге данная система дополняет пиринговую сеть таким образом, чтобы всем участникам сети можно было доверять, а узлы, создающие проблемы – исключались бы из сети.


> POI

POI (Proof-of-Importance) означает дословно «доказательство важностью» и является некоторым аналогом PoS алгоритма, в котором на первое место поставлена важность вашего аккаунта для  NEM в системе. Каждый аккаунт, как мы определились выше – содержит значение рейтинга, называющегося «важность». Чем выше ваша важность в сети – тем больше вероятность что вы сможете найти новый блок.

Право на участие в консенсусе достается тем, у кого на балансе есть как минимум 10 000 vested (подтвержденных) монет.

Сам процесс довольно прост. Для всех таких аккаунтов с балансом собираются transfer транзакции (транзакции-перевод), где сумма перевода как минимум 1000 XEM за последние 30 дней (43200 блоков), далее высчитываются веса аккаунта, исходя из их важности и баланса и на основе этих данных и выбирается аккаунт, который находит новый блок.


> Суперузлы

Так как NIS (нода NEM) является закрытой, а клиенты являются тонкими – необходимо поддержание сети с щедрым вознаграждением. Именно этим путем и пошли создатели NEM и сделали возможность создать суперузел с рядом жестких требований к нему, который должен постоянно быть онлайн и держать полный блокчейн сети, а за участники получают вознаграждение. Полный список требований:

  • Время пинга
  • Номер последнего загруженного блока (Block height)
  • Версия NIS
  • Отправка с узла запрашиваемых блоков
  • Правильность отправленных блоков
  • Скорость выгрузки при отправке блоков (Upload speed)
  • Количество API вызовов, на которые узел даст ответ за определенный промежуток времени

Каждый суперузел время от времени тестируется по всем параметрам, и если по одному из параметров тест был провален – суперузел перестает получать вознаграждение примерно на 2е суток. Если тесты проваливаются 7 суток подряд – суперузел исключается из программы полностью.


> Мозаика

В Неме существует еще одна интересная особенность – это мозаика. Мозаика представляет реализацию других свойств объектов реального мира. Т.е. по сути нем позволяет создавать токены на своей платформе. Собственно, первым токеном, созданным на платформе NEM – был токен XEM. Именно поэтому на биржах криптовалюта NEM торгуется под другим тикером.

Мозаики можно отправлять пачками, в одной транзакции возможна пересылка нескольких мозаик. Свойства мозаики достаточно гибкие и их можно настраивать.

Основные свойства мозаик (для первой версии Mosaics):

  • Описание
  • Делимость количество цифр после запятой
  • Изменяемость – возможно ли изменять количество выпущенных токенов
  • Имя мозаики
  • Уникальность – возможно ли динамически создать еще токенов (или уничтожать старые)
  • Переносимость – возможно ли передавать данные токены в сети, или заморозить их на кошельке после первой передачи от владельца мозаики
  • Сбор с оборота – данное свойство позволяет брать создателем налог на использование токена (за любую операцию с токеном будет браться комиссия и отправляться на аккаунт создателя мозаики)


Заключение

Долго думал, что именно написать в заключение к обзору NEM. Вроде криптовалюту уже реально применяют в Японии, и она реально продумана и разработана с умом, но меня не цепляет, не нравится она мне. Ребята сделали классную криптовалюту, действительно подошли к процессу создания с головой, видно, что работали умные люди, как и написано в описании – что привлекли научных сотрудников, так и есть, скорее всего.

Но есть мелочи, которые немного смущают. Первое что смутило – выставление «уникальный код, не форк» как главная особенность, намеренное занижение скорости передачи до 2 транзакций в секунду, сложная схема работы для начинающего, хотя изначально речь шла о простом АПИ для разработчиков.

NIS API всё-таки имеется, и довольно обширное, описывающее все методы и функции ноды в сети NEM.

NIS API слой

Конечно, это мое личное мнение, и я никому ничего не навязываю, тем более в качестве спекулятивного интереса всё-таки держу NEM в портфеле. Очень уж нравится то, что NEM нашел реальное применение далеко не в последних кругах в Японии, какой-никакой, а эффект от этого будет.

В целом – в NEM очень много мелких доработок того, от чего страдают криптовалюты первого поколения, взять ту ж борьбу с флудом в mempool или система репутации нод. Уверен, что NEM займет свое место в топе криптовалют и будет его усиленно удерживать.


Написанное выше является личной точкой зрения авторов и не склоняет вас к покупке того или иного актива. 


Список источников

https://nem.io/

https://bitcointalk.org/index.php?topic=654845.0

https://coinmarketcap.com/currencies/nem/

https://nem.io/wp-content/themes/nem/files/NEM_techRef.pdf

http://free.userboard.net/t48-topic#146

https://forum.nem.io/t/nem/7930