Блокчейн технология NEM.
Новые возможности.
1 Введение
История блокчейн технологии начинается с появления криптовалюты Bitcoin (в 2008 году), в которой механизм финансовых транзакций управляется и поддерживается с помощью публичной сети, где транзакции прозрачны, и любой человек может проконтролировать все их цепочки, но в то же время никто не может ограничить или подделать их. Такая технология работы с записями в реестре известна сегодня как блокчейн технология. Хотя первое свое практическое применение блокчейн технология нашла в криптовалюте Bitcoin, в финансовой сфере, эту мощную технологию можно с успехом использовать и во множестве других областей человеческой деятельности.
Позднее, блокчейн технология трансформировалась в решения различных блокчейн платформ, которые стали следующей ступенью развития после создания криптовалюты Bitcoin. Создаваемые на их основе продукты стали называть криптовалютами следующего поколения, криптосистемами, криптоплатформами. Блокчейн платформа NEM (начало разработки 2014 год) является одной из таких технологий, которые, взяв за основу концепцию оригинальной блокчейн технологий Bitcoin и Nxt, в значительной степени изменили и улучшили их.
Блокчейн технология NEM возникла из необходимости преодолеть некоторые из недостатков имеющихся в тот период времени блокчейн технологий. Разработка NEM начиналась с заимствований из блокчейн технологий Bitcoin и Nxt, но в итоге NEM был разработан с нуля и была создана совершенно новая блокчейн технология - более эффективная, более простая, легко расширяемая, и, прежде всего, легко интегрируемая во внешние приложения благодаря стандартным API и принятым архитектурным решениям.
С появлением новых технологий, таких как блокчейн технология NEM, блокчейн технология Bitcoin постепенно отходит на второй план. Однако, Bitcoin по-прежнему используется многими, но это, безусловно, убывающий тренд, потому что люди с течением времени обнаруживают недостатки в его технологии.
Блокчейн технология как таковая была изобретена со следующими изначально присущими ей свойствами:
Управление криптовалютными токенами и запись транзакций производятся в реестре как в единой технологической среде.
Этот распределённый реестр, как мощную модель репликации данных, никто не регулирует.
Для того, чтобы получить криптовалютный токен, нужно проделать определённую работу, подобно тому, как в физическом мире добывается золото.
Должна быть система для обеспечения безопасности и подтверждения транзакций на основе криптографических приватных и публичных ключей.
Реестр должен быть публичным, чтобы любой мог принять участие в создании криптомонет (в т.н. майнинге монет).
Система реестра должна быть неизменна и необратима во времени.
Система не может быть уничтожена никакой властью и существует как p2p система интернета.
Впоследствии было разработано множество других функций. Далее в этом документе описывается блокчейн платформа NEM и её возможные применения.
2 Внутри NEM
Проект NEM был начат в то время, когда Bitcoin и само понятие криптовалюты находилось на пике своего признания, в тот момент было около 1000 различных криптомонет - альткоинов - и в основном это были форки криптовалюты Bitcoin, когда в его первоначальный открытый исходный код вносились незначительные изменения.
NEM был задуман с другим подходом и другой точкой зрения на его технологию. Другой подход заключался в том, чтобы в NEM использовать другой метод «майнинга», который не требует дорогих машин для добычи криптомонет. В NEM этот процесс назвали харвестинг (сбор урожая). Архитектура NEM была основана на концепции сервера приложений, где узлы являются серверами приложений и подключаются к серверу базы данных.
Как и все блокчейн технологии, NEM использует криптографию; если конкретнее, то для обеспечения конфиденциальности, достоверности и безотказности всех транзакций в NEM используется эллиптическая криптография. Каждый аккаунт использует пару ключей Ed25519 и связан с изменяемым состоянием, которое обновляется, когда транзакции принимаются сетью.
Для того, чтобы предотвратить, насколько это возможно, манипулирование стоимостью криптомонеты, NEM был начат с достаточно широким распределением криптомонет между начальными стейкхолдерами. Разработчики NEM заимствовали этот подход из другой ранее выпущенной криптомонеты (Nxt) и хотели улучшить его.
2.1 Подход, используемый в блокчейн технологии NEM
Решения, используемые в блокчейне Bitcoin, как в продукте первого поколения, имеют много конструктивных недостатков, причем не столько с точки зрения безопасности, сколько с точки зрения неудобств, доставляемых пользователям. К ним относятся:
Медленное время подтверждения транзакции - в зависимости от степени её достоверности, требуется от 10 до 60 минут для подтверждения транзакции.
Bitcoin трудно использовать, для него часто требуются различные усовершенствования и услуги третьих сторон.
Постоянное обращение к услугам третьих сторон делает решение не только громоздким, но и лишает его децентрализации, возвращая его к централизованному управлению. Пример: Coinbase.
Существование множества сторонних разрозненных предложений создаёт ситуацию, когда эти предлагаемые решения не составляют целостную систему.
Требуется длительное время для включения автономного кошелька, что крайне непрактично.
Решение не является дружественным к пользователю и предназначено для технически грамотной аудитории.
Для работы полных узлов Bitcoin требуются дорогие машины, постоянно производящие большой объём сложных вычислений, и, как следствие, впустую потребляющие гигантское количество электрической энергии.
В любой криптовалюте транзакции объединяются в пакеты и подтверждаются пакетами (пакеты транзакций называются блоками). Как и в обычной бухгалтерии, все записи в аккаунтах группируются вместе и размещаются на различных аккаунтах в конце определённого периода. В бухгалтерском деле, период отчётности может составлять например сутки, месяц или год. В мире криптовалют, этот период различен в разных криптовалютах. Bitcoin формирует пакеты транзакций приблизительно каждые 10 минут. Этот "период отчётности" называется блоктайм.
В блокчейн технологии, транзакция сохраняется в памяти сервера и остаётся там неподтверждённой, пока не будет помещена в блок. Чем больше блоктайм, тем больше транзакций будет произведено внутри него. Блоктайм Bitcoin составляет в среднем 10 минут, при этом в блоке может быть от 1200 до 3000 транзакций. Блоктайм NEM равен 1 минуте, лимит количества транзакций в блоке установлен сейчас равным 120, что соответствует потоку транзакций до 2 транзакций в секунду (tps). В живой системе блоктайм величина переменная, 1 минуте он равен в среднем, а практически в редких случаях могут встретиться даже значения от 5 секунд до 5 минут (нормальное распределение в теории вероятностей).
Более короткий блоктайм означает, меньшее время ожидания подтверждения транзакций.
В блокчейн технологии NEM применён ряд оригинальных решений:
Алгоритм консенсуса для блокчейна PoI (Proof of Importance, доказательство значимостью узла)
Проверка добропорядочности узлов (Eigentrust++)
Веб-архитектура
2.1.1 Алгоритм консенсуса для блокчейна PoI
В NEM разработан новый вид харвестинговой "конкуренции" с использованием PoI, концепции, в соответствии с которой право харвестинга определяется в определённой пропорции следующими компонентами:
количеством криптомонет на аккаунте
активностью проведения аккаунтом транзакций
временем нахождения аккаунта в сети
Основной компонентой, определяющей значимость узла, как и в алгоритме PoS, является количество монет на аккаунте. Но бóльшее количество транзакций у аккаунта также повышает его значимость в сети, и соответственно повышает шансы этого аккаунта на вознаграждение в харвестинге. Активностью транзакций аккаунт оказывает поддержку сети и поэтому логично увеличить его шансы на получение награды в харвестинге. Такой компонент в методе харвестинга является новым и также не предъявляет к узлу высоких требований по вычислительной мощности.
Поскольку в уравнение харвестинга включено не только количество криптомонет на аккаунте, но и активность аккаунта в части транзакций, это оставляет меньше шансов любому аккаунту для манипуляций с харвестингом.
Алгоритм PoI (NEM) так же как и алгоритм PoS (NxT) не требует для запуска и поддержания узлов больших финансовых затрат, и потребляет при харвестинге не мегаватты электроэнергии (как алгоритм PoW Bitcoin), а единицы ватт. Полным узлом в NEM может быть копеечный одноплатный компьютер.
2.1.2 Система репутации узлов Eigentrust++
P2p сети очень надёжны, так как при отсутствии или неисправности любого узла система будет продолжать работать. Это обеспечивает 100% времени бесперебойной работы системы. Тем не менее, недостатком p2p-сети является то, что каждый узел является анонимным и поэтому трудно понять, является узел злонамеренным или нет.
В сети NEM для оценки степени доверия к каждому из узлов и управления ими введён алгоритм Eigentrust++. Алгоритм Eigentrust++ в совокупности с алгоритмом POI обеспечивает устойчивую работу сети и защищает её от недобросовестных и злонамеренных узлов. Узлы, которые не являются доверенными, отвергаются и игнорируются.
Eigentrust это алгоритм, позволяющий вычислить репутацию каждого узла в сети на основе истории взаимодействия между узлами сети. Историю взаимодействия можно представить как матрицу связности между узлами, в каждой ячейке которой хранится оценка доверия к узлу, представленная как разность между количеством успешных и неуспешных попыток передачи данных.
Узлы, не связанные непосредственно, доверяют друг другу в том случае, если существует непрерывная цепь узлов между ними, доверяющих друг другу. При этом величина этого доверия определяется произведением последовательных оценок доверия вдоль этой цепи.
Eigentrust++ эффективнее Eigentrust. В чем отличие Eigentrust++ от Eigentrust?
http://www.cc.gatech.edu/~lingliu/papers/2012/XinxinFan-EigenTrust++.pdfEigentrust++ отделяет транзакции, основанные на репутации, от ответных транзакций, которые могут быть недобросовестными.
Eigentrust++ основан на модели распространения доверия от узла к узлу и не использует единую модель доверия.
Eigentrust++ в разность между количествами успешных и неуспешных попыток коннекта двух узлов инкорпорирует общее количество транзакций между ними.
Eigentrust++ полностью отделён от POI. В то время как POI является алгоритмом консенсуса для блокчейна, Eigentrust++ является системой репутации узлов. Eigentrust++ помогает защитить сеть от атак вредоносных узлов, которые намеренно посылают неправильные или неверные данные. Баллы доверия Eigentrust++ не являются глобальными, они локальны и важны для соседних узлов.
POI работает на уровне аккаунта, в то время как Eigentrust++ работает на уровне узлов сети. POI определяет право на харвестинг, в то время как Eigentrust++ определяет репутацию каждого узла в сети. Однако если узел злонамеренный, то это повлияет на возможности аккаунта, т.к. ограничит его харвестинг. Но это коснётся только функционирования аккаунта в части харвестинга, но не затронет коэффициент значимости узла.
Cистема репутации в NEM является уникальной - это первый случай в криптографической сфере.