Обзор криптовалют / NEM
Digital Gold / Цифровое золото @nanocatXEM
Дата обзора: 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 хранит данные аккаунтов пользователей, как ноды биткоина хранят информацию о балансах адресов в UTXO индесах. Nem в этом плане сильно напоминает Ethereum, который, напомню – хранит информацию для всех аккаунтов в сети в дереве Патрисии. Итак, NEM хранит следующую информацию об аккаунтах:
- Баланс
- Количество найденных блоков
- Высота блока, который связан с данным аккаунтом (первое зачисление на этот аккаунт)
- Список miltisig аккаунтов и список подписантов (для multisig аккаунта)
- Информация о делегировании харвестинга (в случае, если харвестинг этого аккаунта делегирован другому аккаунту)
- Важность аккаунта (для POI)
- Подтвержденный баланс
Насчет подтвержденного (vested) и не подтвержденного (unvested) баланса. Суть в том, что собирать блоки (харвестинг) вы можете только с подтвержденным балансом, поэтому в XEM существует 2 баланса, подтвержденный и неподтвержденный. Каждые сутки - 10% не подтвержденного баланса переходит в подтвержденный и может участвовать в харвестинге.
Когда вы отправляете монеты – вы отправляете их с обоих счетов, система сама пересчитывает соотношение, согласно внутренним рейтингам. Когда пользователь принимает новые монеты – он принимает их в unvested баланс. Система очень схожа с PoS, которому необходим и важен «возраст» монет в кошельке для перемещения монет в «stack».
> Транзакции
В неме существует интересная особенность – у каждой транзакции есть deadline, в пределах которого эта транзакция может быть не подтвержденной. Если не подтвержденная транзакция не включается в блок после deadline – она становится не активной. В отличие от биткоина, в котором эти транзакции остаются висеть в мемпуле.
В неме существуют разные типы транзакций.
- Первый тип – транзакция-перевод, которая позволяет переводить XEM с одного аккаунта на другой. Каждая такая транзакция позволяет прикрепить до 96 байт произвольной информации, в случае открытых данных, и 48 байт шифрованных данных (AES-CBC). Транзакция считается как за байты информации, так и за самую передачу.
- Делегирование харвестинга – в немее можо делегировать свои мощности другому аккаунту, т.е. сдать их в аренду, что позволяет добывать NEM на удаленных серверах без необходимости раскрывать серверу свой приватный ключ. Т.е. добывать нем удаленно без каких-либо рисков потери собственных монет. Одна особенность – после передачи монет таким способом (и прохождения 360 подтверждений данной транзакции) – только делегированный аккаунт сможет добывать новые монеты, а владелец – нет. Таким же способом делегирование отключается. В течении 360 подтверждений после отсылки транзакции на отключение – автор может производить харвестинг, а делегированный аккаунт – не сможет.
- Мультиподписные транзакции – подразделяются на несколько транзакций:
- Конвертирование аккаунта в мультиподписной. Каждый аккаунт в системе может быть сконвертирован в мультиподписной, транзакция в этом случае содержит информацию о подписантах. Число подписантов не может превышать 32.
- Редактирование мультиподписного аккаунта. Данная транзакция позволяет обновить число подписантов, добавив или удалив их из списка. Каждое действие в этом случае должно быть подписано всеми подписантами данного аккаунта (кроме случая удаления, когда подписать должны все, кроме удаляемого).
Когда все подписанты удалены – аккаунт переходит обратно в статус обычного.
Мультиподписная транзакция и мультиподписная подписная транзакция работают в паре и позволяют работать системе мультиподписей применительно к отправке монет с мультиподписного аккаунта. Если вкратце – все участники создают мультиподписную подписную транзакцию, указывающую на не подписанную транзакцию с переводом средств для каждого из подписантов. Если все участники отправили такие транзакции – итоговая мультиподписная транзакция будет сгенерирована и отправлена. Разделение мультиподписных транзакций позволяет добиться интересной особенности: когда какой-то из соподписантов из мультиподписного аккаунта инициирует транзакцию - у других соподписантов в кошельке появляется эта транзакция и кнопка "подписать", так что применить эту транзакцию можно в два клика.
> Антиспам
В Nem довольно применена довольно интересная технология антиспама. В отличие от биткоина, комиссия в котором зависит от загруженности майнеров и состояния мемпула – в nem добавлен коэффициент комиссии, позволяющий убрать возможность флуда в сети. Если по-простому (как мы любим) то чем больше пользователь важен сети, т.е. использует её для себя – тем чаще сеть будет давать ему добавлять транзакции, если в мемпуле их более чем 120. Иначе – часть транзакций будет отклоняться сетью. Это решает проблему с массовым количеством аккаунтов в сети и возможностью флуда в ней, потому что важность аккаунта можно посчитать только исходя из количества транзакций определенного аккаунта. Злоумышленник все же может произвести флуд-атаку на сеть, но для этого ему необходимо будет увеличивать комиссии с каждым циклом отправки, что выйдет довольно накладно.
> Блокчейн
Каждый блок в 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.
Конечно, это мое личное мнение, и я никому ничего не навязываю, тем более в качестве спекулятивного интереса всё-таки держу NEM в портфеле. Очень уж нравится то, что NEM нашел реальное применение далеко не в последних кругах в Японии, какой-никакой, а эффект от этого будет.
В целом – в NEM очень много мелких доработок того, от чего страдают криптовалюты первого поколения, взять ту ж борьбу с флудом в mempool или система репутации нод. Уверен, что NEM займет свое место в топе криптовалют и будет его усиленно удерживать.
Написанное выше является личной точкой зрения авторов и не склоняет вас к покупке того или иного актива.
Список источников
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