Вы здесь

Под капотом Emercoin

Данная статья открывает цикл статей, посвящённый технологиям EmerCoin, и описывает основные отличия ядра Emer от других криптовалют.

Под капотом Emercoin

Вначале – определим: Эмер – это технология, сеть и инфраструктура. Эмеркоин – кредитные единицы, которые циркулируют внутри сети Эмер. Но раз уж так принято, что словом EmerCoin называют всё вместе, мы тоже будем следовать общепринятой семантике, применяя слово Эмер, только когда хотим подчеркнуть, что речь идёт именно о технологии, а не расчётно-бухгалтерском аспекте. Под словами монеты, деньги и тп. мы будем подразумевать безналичные кредитные единицы, обращающиеся в распределённой сети криптовалюты.

Откуда он взялся

Исторически, ядро EmerCoin было унаследовано от ядра Peercoin, которое в свою очередь было унаследовано от Bitcoin. Peercoin добавил в свой проект ключевое нововведение – механизм Proof-of-Stake выработки консенсуса, создав гибридный механизм консенсуса, использующий два базовых механизма – и Proof-of-work(POW) и Proof-of-Stake(POS). Рассмотрим эти механизмы и сам консенсус подробнее.

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

Консенсус возникает как результат агрегированных усилий всех майнеров, которые своими ресурсами голосуют за ту или иную версию ветви блокчейна, и за это получают майнерскую награду – свеженапечатанные эмиссионные деньги и/или транзакционные платежи. Можно сказать, что майнеры продают обезличенной коин-сети сервис по поддержанию доверия к блокчейну (траста), и получают компенсацию за свои услуги в виде свежевыпущенных монет.

Возникает интересный вопрос: Что в такой распределённой сети считать голосом? Первая очевидная идея – кошелёк. И явно порочная: злоумышленник может создать миллионы кошельков и этими мёртвыми душами проголосовать за ту версию блокчейна, которая ему выгодна. Следующая идея – IP-address. Тоже не работает, так как любой провайдер может симулировать большую сеть, и снова создать полчища мёртвых душ. Для голосования требуется ограниченный ресурс, который не может быть тиражирован и фальсифицирован. Сатоши Накамото в системе Биткоин предложил в качестве такового Proof-of-work – доказательство посредством вычислительной мощности. Действительно, если у Вас есть компьютер вычислительной мощностью X, вы его можете виртуально разделить на N суб-компьютеров, но их суммарная вычислительная мощность так и останется X. То есть вес голоса владельца такого компьютера не увеличится.

Потом были предложены другие концепции консенсуса, ориентированные на использование не процессора, а другого вычислительного ресурса – например ёмкости дисковых накопителей, Proof-of-capacity. Все такие концепции опираются на ограниченность физического ресурса – вычислительной мощности или дисковой ёмкости. Естественно, в процессе развития экосистемы криптовалюты это приводит к «гонке вооружений», когда майнеры вкладываются в соответствующее майнерское оборудование до тех пор, пока не достигнут паритета расходов на амортизацию оборудования и доходов от майнинга. После чего фыркают и плачут «майнить стало невыгодно, крипта есть надувательство и вообще бяка».

Прорывной идеей Санни Кинга, автора Peerсoin, была концепция Proof-of-Stake, в которой в качестве ограниченного голосующего ресурса выступали монеты, контролируемые самой же системой. Это позволило выйти из ловушки «гонки вооружений материальных ресурсов», заменив материальный ресурс (процессор, диски) на нематериальный – монеты. Это в свою очередь прекратило бессмысленный расход материальный ресурсов, невозвратно расходуемых на майнинг (электричество, оборудование).

Каждый механизм консенсуса по отдельности имеет свои недостатки. Так, например, не очень популярную PoW-криптовалюту можно атаковать, временно арендовав огромные вычислительный мощности (что несколько раз было проделано), а POS-криптовалюты потенциально уязвимы против других видов атак, например, атакой из глубины. Для защиты от последней применяются дополнительные механизмы, например, динамические контрольные точки (dynamic checkpoints), и в целом механизм POS показал себя более устойчивым, чем POW.

Тем не менее, мы считаем гибридный механизм консенсуса Peercoin наиболее безопасным, и использовали именно его как основу для своего проекта. Для успешной атаки на Эмер, атакующий должен иметь и 51% всей вычислительной мощности сети, и 51% всей денежной массы. Это создаёт для атакующего два барьера разной природы, которые и защищают сеть от компрометации.

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

Кроме того, мы исповедуем промышленный подход к своим проектам, который предполагает максимальное следование уже существующим стандартам и спецификациям. Так как де-факто, технологии и API Bitcoin являются стандартами криптоиндустрии, мы стремимся в наших проектах поддерживать максимальную совместимость с ними, и соответственно использование Bitcoin в качестве основы нашего ядра.

Подобия и отличия

Здесь мы объясним, какие компоненты криптовалюты остались неизменными, а какие были изменены. Отличия будем рассматривать относительно Bitcoin, как наиболее освещённого проекта.

POW+POS vs POW

Как было указано выше, Эмеркоин имеет гибридный механизм консенсуса, который и определил стартовую точку нашего проекта. Этот гибридный механизм был нами унаследован из Peercoin с единственным изменением – большим сдвигом в сторону POS. По сути, Эмер является POS-криптовалютой, в которой механизм POW оставлен по соображениям безопасности, и играет хоть и важную, но вспомогательную роль, а примерно 80% блоков закрываются именно POS-ом.

Sha256

Хеш-функция закрытия блока применена та же самая, что и в Bitcoin и Peercoin – sha256. Причина заключается в том, что sha256 является стандартом, и продолжает обеспечивать уровень безопасности, достаточный для поддержания стабильной работы сети.

Также в силу того, что майнинг sha256 давно уже производится специализированными процессорами ASICs, мы можем быть уверены в двух вещах:

  • Не произойдёт революции сложности, вызванной появлением специализированного оборудования для другого алгоритма, которая может привести к встряске сети и консолидации майнинговой мощности в руках владельцев нового оборудования.
  • Мы против майнинга на универсальных компьютерах, так как при таком подходе могут пострадать непричастные. Как известно, до появления ASICов был ряд вирусов, которые использовали вычислительные мощности заражённых компьютеров для майнинга биткоинов. Появление ASICов сделали такие вирусы экономически не выгодными. Тем не менее, опасность сохраняется для других криптовалют, которые майнятся на универсальных компьютерах.

Более подробно наша позиция описана в блоге.

10 минут

Время закрытия блока остаётся таким же, как и в Bitcoin и Peercoin – 10 минут. Мы считаем, что Сатоши выбрал удачный параметр, и сокращение времени блока может привести к большому количеству коллизий с orphan-блоками, и потере стабильности сети. Рассмотрим это утверждение подробнее.

Вероятность коллизии есть время обновления сети, делённое на время закрытия блока. Время обновления сети зависит от топологии и загрузки сети, и для сети Bitcoin уже сейчас может достигать минут. Соответственно, другие криптовалюты (например Quark), которые сократили время закрытия до суб-минутных интервалов, рискуют получить постоянные форки, как только нагрузка на них вырастет до более-менее значительных величин.

Нам могут возразить, что есть прекрасный протокол Ghost, применяемый в Ethereum, и ему не страшны форки, так как orphan-блоки (у них они называются uncles) хоть и не попадают в результирующий блокчейн, участвуют в голосовании за ту или иную версию цепочки, поэтому там время блока может быть в районе 20 секунд.

Мы не согласны с этими утверждениями. Мы считаем, что этот протокол имеет ряд уязвимостей. Например, сеть под протоколом Ghost может быть подвержена сетевому шторму – эффекту, возникающему в широковещательных Ethernet-сетях при достижении некоей критической нагрузки. Упрощённо говоря, это произойдёт по следующим причинам:

Время обновления сети пропорционально нагрузке на сеть, то есть трафику. При достижении критической нагрузки (большом числе транзакций в секунду), время обновления станет сравнимо с временем генерации блока. При этом различные майнеры независимо произведут блоки-кандидаты на включение в блокчейн. И вот – сюрприз – эти блоки будут содержать те же самые транзакции. И эти большие блоки снова будут разосланы по сети, что создаст мультипликацию трафика, то есть снова нагрузит сеть, что вновь приведёт к задержкам ещё большему количеству uncles. Поведение сети станет подобным атаке типа DNS/NTP Amplification , только в качестве и атакующего, и жертвы выступают те же самые узлы сети, а триггером становится достижение критической нагрузки, зависящей от топологии сети.

А если ещё учесть, что в блокчейн попадёт только один из блоков-кандидатов, а сеть тратила силы не только на решение этого блока, но и на его братьев, которые только проголосовали, но в блокчейн не вошли, то становится очевидным драматическое снижение траста принятого блокчейна в результате такого шторма, и возможность атаки мощностью менее 51%.

В общем, Сатоши был далеко не дурак, когда придумывал свою систему. И мы с его подходом согласны.

Пересчёт сложности после каждого блока

В отличии от Bitcoin, где сложность майнинга пересчитывается один раз на каждые 2016 блоков (примерно раз в две недели), сложность в сети Эмер (как и Peercoin) пересчитывается после каждого блока. Мы считаем, что такой подход повышает стабильность работы сети. Приведём пример:

Допустим, после очередного пересчёта сложности, в сети Биткоин перестала работать половина майнеров. Это кстати далеко не гипотетический случай – достаточно вовремя принять соответствующие законы в государствах, на территориях которых находятся крупные майнинг-пулы. В результате, блоки будут закрываться вдвое реже, то есть раз в 20 минут. Также вдвое вырастет время подтверждения транзакций и размер блоков. А учитывая то, что уже сейчас часто блоки достигают своего предела в 1 мегабайт, есть прямые шансы, что многие транзакции в блоки просто не попадут, и много дней будут неподтверждёнными. Это вызовет панику, и ещё большее число транзакций, связанных с желанием продать по чём есть, что только усугубит ситуацию. И система только через месяц восстановит работоспособность.

При пересчёте сложности после каждого блока такой проблемы возникнуть не может – сеть сразу же начинает адаптироваться под изменение суммарной мощности майнеров. Кроме того, так как EmerCoin является в основном POS-криптовалютой, в которой майнинг и пулы играют второстепенную роль, даже полная и одномоментная остановка всех пулов приведёт к увеличению времени блока на 20%, что будет скорректировано системой адаптации в течение суток.

Пересчёт награды за POW-блок

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

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

Теоретически, наиболее эффективная стратегия майнинга Эмеркоина – сговориться, майнить минимальной мощностью и делиться максимальным доходом между участниками. Но этого не выйдет в силу эгоистичности майнеров, которые находятся в ситуации, описанной в Дилемме Заключённого.

POS 6% APY

Так как EmerCoin является и POS-криптовалютой, то в ней можно майнить не только оборудованием, но монетами, находящимися в кошельке. В нашем проекте мы выбрали POS-награду в 6% годовых. Иными словами, если в некой транзакции монеты без движения пролежали более месяца, то они имеют шанс закрыть блок, и принести хозяину награду в 6% годовых. Если же монеты были использованы куда-либо, то срок их вылёживания «сгорает», и начинает накапливаться по новой у нового хозяина. То есть 6% - это верхний предел POS-награды, достижимый только в случае неподвижных денег. В настоящее же время, практическое значение роста денежной массы за счёт POS-награды составляет 4-5% годовых, и по мере расширения использования EmerCoin будет снижаться, достигая величин, принятых в устойчивых фиатных валютах, но не обращаясь в ноль.

В ответ на наивное возражение, что-де «у вас же инфляция из-за этих 6%» заметим, что Эмеркоин наоборот демонстрирует дефляционность, то есть стоимость монеты растёт, причём довольно быстро. Это видно по курсу монеты, которая с начала года выросла примерно вчетверо. Такое расхождение с наивной моделью объясняется тем, что стоимость монеты отражает стоимость соответствующей экономики, и при росте экономики монета растёт тоже, и накачка денежной массы вследствие POS пренебрежимо мала по сравнению с другими факторами.

Эмиссия и сжигание

Из вышеизложенного можно сделать вывод, что денежная масса Эмеркоина будет расти бесконечно. И это в первом приближении правда. Действительно, участники поддержания консенсуса продают свои услуги сети, и за это получают свеженапечатанные монеты. Однако, в системе Эмеркоин действует механизм уничтожения монет, который противоположен эмиссии. Уничтожение монет происходит при использовании сервисов блокчейна – пересылке монет или покупке записей в NVS. То есть, в отличие от сети Bitcoin, где эмиссия ограничена, но механизм уничтожения отсутствует, в сети EmerCoin есть и неограниченная эмиссия, и процесс, призванный ей противодействовать.

Мы считаем такой подход справедливым: Участники, предоставляющие услуги сети, получают награду, а покупающие у сети услуги – платят за них.

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

STUN rfc5389

Первым уникальным нововведением EmerCoin является использование протокола rfc5389, STUN для получения внешнего IP-адреса. Программе-кошельку за NAT-ом нужна знать внешний IP. Bitcoin его ранее получал (а другие криптовалюты и продолжают получать) запросом к централизованному серверу checkip.dyndns.org , но в настоящее время код этого запроса удалён из Bitcoin, и используется только UPNP или ручная конфигурация.

Нас не устраивал этот подход по ряду причин (например, UPNP некорректно работает за многослойным NAT-ом), и мы решили избавиться от зависимости от централизованного сервера, и применить STUN, который как раз и применяется для этой цели в IP-телефонии, и является промышленным стандартом. В настоящее время группа Emer владеет наиболее полным списком публичных STUN-серверов в сети, и эти сервера используются STUN-подсистемой Emer для определения внешнего IP.

Последующая попытка передать нововведение разработчикам Bitcoin была безуспешной, и мы в процессе исследования состояния дел столкнулись с рядом весьма любопытных фактов. Эти факты были изложены в личном письме некоему человеку, и Леонид Каганов с разрешения Олега Ховайко, автора идеи использования STUN в криптовалютах, опубликовал копию письма в своём блоге.

Представляют интерес как факты и предположения, изложенные в письме, так и комментарии читателей.

В настоящее время код для определения внешнего IP через STUN был позаимствован у нас и использован в других криптовалютных проектах (из публичных можно указать на Novacoin).

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

Оптимизатор транзакций

Другим уникальным нововведением, присущим только Emer, является оптимизатор транзакций.

В криптовалютах, блокчейн которых содержит транзакции, при создании очередной транзакции надо выбрать подмножество входов, которые данная транзакция будет тратить. В Bitcoin и других криптовалютах используется стохастический алгоритм, который делает 1000 случайных проб, и выбирает подмножество с суммой, максимально приближённой к целевой. При этом, даже если кошелёк и содержит подмножество транзакций, позволяющих собрать сумму «под расчёт», стандартный алгоритм почти всегда её упускает, и в новой транзакции создаст выход для платежа и сдачу себе. Это приводит и к излишнему размеру созданной транзакции, и к появлению будущей транзакции, которая потратит сдачу.

Кроме того, этот алгоритм создаёт проблему «золотого песка», когда в кошельке скапливается множество транзакций-сдач на мелкие суммы.

Мы в Emer для выбора подмножества транзакций применили подход динамического программирования, и наш алгоритм гарантировано находит такое подмножество, чтобы обеспечить сумму без сдачи, если такая возможна. В результате, по нашим оценкам, средний размер транзакций снизился на 5%, что соответственно снизило скорость роста размера блокчейна. Детали об этом – в статье.

Распределённые динамические контрольные точки

К POS-криптовалютам могут быть применены некоторые экзотические атаки, специфичные для POS. Основной из них является «атака из глубины». Суть её состоит в том, что если некто получает контроль над кошельками, содержащими уже потраченные монеты, он может модельно откатить время к моменту, когда эти кошельки содержали монеты, и получив таким образом 51% монет, построить альтернативную цепочку блокчейна, более длинную чем основная, и таким образом изменить содержимое блокчейна задним числом.

Для предотвращения этой атаки используются контрольные точки (checkpoints), глубже которых система не пересматривает структуру блокчейна. В Biicoin применены только hard checkpoints, встроенные в код кошелька, которые обновляются только с выходом нового релиза кошелька. Peercoin и Emer имеют также динамические checkpoints, когда разработчики рассылают по сети информацию о контрольных точках, что не требует обновления кода на стороне клиентов и держит актуальной структуру контрольных точек.

В текущем Peercoin и старой версии Emer контрольные точки мог рассылать только один узел. При рассылке их из нескольких узлов появлялась вероятность конфликта в сети. Cоответственно, выход из строя этого узла приводил к тому, что информация о динамических checkpoints переставала обновляться.

Emer, начиная с версии 0.5.0 содержит механизм распределённых децентрализованных checkpoints, в котором контрольные точки рассылаются независимыми узлами, и имеется алгоритм избегания «двойной рассылки». Это повышает надёжность сети, так как контрольные точки будут продолжать обновляться, даже если какие-то узлы выйдут из строя.

Смарт-контракты в стиле Ethereum

Нет и не предвидятся. Мы категорически против этого по соображениям безопасности. Мы считаем критически опасной неавторизованную загрузку в компьютеры пользователей Тьюринг-совместимого кода и его принудительное исполнение по внешнему событию. Подробнее наша позиция освещена в этом интервью.

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

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

Name-Value Storage (NVS)

Основным же нововведением, имеющем внешнюю утилитарную ценность, является подсистема NVS – Name-Value Storage. Разработка этой подсистемы была инспирирована распределённым DNS от криптовалюты Namecoin.
И если подобная структура Namecoin была жёстко ориентирована на распределённый DNS, то Emer NVS представляет собою доверенное распределённое хранилище общего назначения с децентрализованным управлением. Подробнее об этой подсистеме можно прочесть на сайте.

Вкратце, подсистема представляет собою хранилище бинарных данных (до 20кб) любого вида. Данные ассоциированы с поисковым ключом длиной до 512байт. Ключ уникален в пределах всей сети EmerCoin. То есть невозможно создать дубликат уже имеющегося ключа. Запись ассоциирована с платёжным адресом, принадлежащим владельцу некоего кошелька.

Записью может управлять только владелец платёжного адреса, и никто другой. Управление подразумевает создание новой записи взамен старой, или передача прав владения на другой платёжный адрес. Но при этом старая запись не пропадает, и тоже остаётся доступной из блокчейна. Таким образом, становится доступной полная история модификаций и смены прав владения той или иной записью.

Технически, такая запись в блокчейне представляет собою выход транзакции на 0.01EMC на платёжный адрес хозяина записи. Этот выход внутри script-контракта собственно и содержит содержимое NVS. Только владелец записи может потратить этот выход, так как только в его кошельке имеется соответствующий приватный ключ для подписи выхода. При трате этого выхода можно произвести модификацию записи, заменив в ней value или другие артибуты, включая платёжный адрес. В последнем случае, запись будет передана в кошелёк, содержащий адрес-получатель.

Взаимодействовать с подсистемой NVS можно либо посредством JSON API способом, подобным взаимодействию с кошельком Bitcoin, либо же через GUI кошелька, в специальной вкладке.

Именно эта подсистема стала основой для создания сервисов Emer, о которых мы расскажем в следующих постах.

Дополнительная информация

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

Олег Ховайко

Категория: 
Криптовалюты
5
Ваша оценка: Нет Средняя: 5 (2 оценок)
43245 / 0
Аватар пользователя admin
Публикацию добавил: admin
Дата публикации: пн, 10/03/2016 - 10:02

Что еще почитать:

Комментарии:

Продолжение цикла статей про технологии Эмер

сб, 11/12/2016 - 22:25

dobcrypto

Подскажите, где лучше/выгоднее и за какую валюту приобрести эмер?

сб, 12/03/2016 - 23:14

dobcrypto

С этим разобрался.
Интересует вопрос по ПОС майну. Нужно же 24/7/365 держать кош запущенным, есть ещё варианты? На биржах такое не прокатит, как я понимаю...

сб, 12/03/2016 - 23:59

Все время держать кошелек запущенным не надо. Монеты генерируются примерно раз в месяц. Т.е. как только вы получили первые монеты от пос-майнинга, можно на месяц выключить кошелек.

Но вообще лучше иметь сервер с установленным веб-кошельком. Благо кошелек не требователен к ресурсам и работает на чем угодно.

вс, 12/04/2016 - 23:54

NeiTrinO

Вообще, конечно, исходя из этой статьи, блокчейн Эмер даже лучше Биткоина)

чт, 03/02/2017 - 19:24

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

пт, 03/03/2017 - 12:29

Старатель

Я правильно понимаю, что рядовой человек может только купить эмеркоины на бирже или получить в уплату за работу/услуги, что бы потом жечь их в транзакциях и на сервисах, и потом опять покупать? НаМайнить рядовому человеку не удастся, майнить будут только избранные, остальным предоставляется только работать за коины?
Короче, как обычный человек без "фермы" может намайнить эмеркоинов хотя бы в том объеме что бы оплачивать сервисы блокчейна?

пн, 09/04/2017 - 07:54

Denis.123

Монеты достаються либо за услуги, либо за работу. работа может быть разной либо ПоС, либо майнинг ПоВ - но суть одна и также нужно проделать какую-то работу чтобы получить за это оплату, либо ПоС, либо ПоВ. в эмере насколько я знаю merged PoW с Биткойном что гарантирует защиту, но майнить просто emc на sha256 как бы не выгодно.

чт, 12/24/2020 - 09:42

Сложная для восприятия статья. У меня тут возник вопрос как происходил майнинг криптовалюты emercoin до pos-майнинга? Или просто был премайн EMC?

пн, 09/03/2018 - 23:51

Denis.123

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

чт, 12/24/2020 - 09:48