Гид по EOS для начинающих. Часть 2

in #eos6 years ago

С возвращением в наш гид по EOS IO Dawn 4.0.

Мы уже обсудили следующие моменты:

  • Рынок оперативной памяти (ОП)
  • Параллельная обработка DPOS в будущем
  • Подтверждение только заголовков

Во второй части мы рассмотрим:

  • Вознаграждение производителей блоков
  • Распад голосов
  • Алгоритм последнего необратимого блока

№4: Вознаграждение производителей блоков

Мы уже рассказали вам о том, как работает алгоритм достижения консенсуса делегированное доказательство долей в EOS. Напомним, что в сети EOS 21 производитель блоков, которые обеспечивают консенсус и работоспособность сети. Получить вознаграждение в традиционных алгоритмах консенсуса, таких как POW (от англ. proof of work - доказательство работой) и POS (от англ. proof of stake - доказательство долей), можно более быстро. А в DPOS EOS ничего подобного нет. Вместо этого действует встроенная система инфляции, которая увеличивает общий объем на 5% каждый год.

Эти дополнительные токены затем распределяются определенным образом (подробнее об этом чуть позже).

Согласно Block.One система инфляции - путь к стратегическому развитию проекта.

Распределение вознаграждения

Изображение предоставлено Medium

Хм… Что здесь творится?               

Уровень инфляции EOS составляет 5% в год и делится на 2 части:

  • 1% производителям блоков.
  • 4% системе предложений работников (подробнее об этом чуть позже).

Основная идея такого распределения в том, чтобы обеспечить:

  • Адекватную оплату работы производителей.
  • Достаточную для покрытия затрат оплату.
  • Все, кто претендует на роль производителя блоков, должны получать за день минимальную оплату, чтобы “состоятельные лица, не намеревающиеся производить блоки, не пытались получить проценты, создав поддельного кандидата в производители и голосуя таким образом за себя”.

Как мы уже упомянули, активных производителей блоков 21. Но число резервных производителей блоков не ограничено - тех, кто, возможно, получил определенное количество голосов на выборах, но не смог попасть в топ. Здесь начинается самое интересное. 1%, предназначенный для производителей блоков, делится еще на 2 части:

  • 0,25% (вознаграждение за блоки)
  •  0,75% (вознаграждение за голоса)

21 производитель блоков имеют право на  0,25% вознаграждения за блок пропорционально количеству подписанных блоков.

Что происходит с остальными 0,75%?

Они распределяются между 21 производителями блоков и остальными резервными производителями блоков в соответствии с количеством полученных ими голосов. Но для этого должны быть соблюдены следующие условия:

  • Производители, которые получают награду, должны претендовать на как минимум 100 токенов EOS.
  • Вознаграждения за голоса должны приходить сразу же на ежедневной основе.

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

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

Здесь можно посмотреть количество активных производителей блоков EOS. На момент написания было 55 производителей, которые имеют право (более 100 EOS в день) на вознаграждение за голоса.

Что происходит с 4%?

Как мы уже говорили, 4% инфляции отводится на “систему предложений работников”. 4% - это куча денег. Задумайтесь, на рынок выйдут 50 миллионов токенов EOS в первый год. Из них 40 миллионов будут использоваться для этих систем предложений работников. На данный момент это примерно $400 миллионов.

Это ОГРОМНЫЕ деньги, поэтому имеет смысл получить представление о том, на что они пойдут.

Оказывается, с такими инвестициями вы можете делать практически что угодно!

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

Есть другое интересное предложение.

Через 5 лет количество токенов EOS вырастет до 1,276 миллиардов, это примерно 300 миллионов токенов прироста, что на данный момент составляет примерно $3 миллиарда!

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

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

Далее в программе - распад голосов!

№5 Распад голосов

Прежде чем изучать распад голосов, важно понять, почему голосование - исключительно важная составляющая EOS.

EOS и голосование

EOS был создан для поддержки децентрализованных приложений в промышленных масштабах. Важно знать, что подразумевается под словосочетанием “в промышленных масштабах”. EOS используют DPOS с 21 производителем блоков так, чтобы было возможно масштабировать платформу настолько, чтобы поддерживать эти приложения. Важность производителей блоков невозможно переоценить. Они обеспечивают не только консенсус, но и работу всей сети.

В EOS вы закладываете свои токены за такие ресурсы как пропускная способность сети, пропускная способность процессора и оперативная память. Если стоимость токенов возрастает в 3 раза, ставка не повлияет на ваш доступ к этим ресурсам.

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

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

Апатия избирателей и Эффект безбилетника

Голосование - сердце современной демократии. То же справедливо для EOS как для децентрализованной системы.

Но голосование как правило подпадает под действие эффекта безбилетника. Эффект безбилетника - концепция в теории игр, когда

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

Давайте рассмотрим пример эффекта безбилетника, а потом посмотрим как он применяется к выборам.

Эффект безбилетника распространяется на общественные блага/услуги, которые бывают:

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

Давайте поговорим о “Национальной безопасности”, т.к. это государственная услуга. В идеале, вы должны регулярно платить налоги государству, чтобы они использовали их для содержания и улучшения армии. Но что будет, если вы не платите эти налоги?

Вообще-то... ничего.

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

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

Так как это влияет на голосование в EOS, спросите вы. Давайте возьмем довольно свежий пример.

Апатия избирателей

Когда вы спрашиваете, почему человек не голосовал, самый популярный ответ: “Мой голос ничего не изменит”.

Избиратели думают, что раз так много людей голосует, один единственный голос не сыграет роли.

Но мы уже рассмотрели проблему с растущим числом “безбилетников”.

Далеко ходить не надо - выборы президента США в 2016 году, когда развернулась борьба между Хилари Клинтон и Дональдом Трампом. Только 56,9% населения озаботилось тем, чтобы появиться на выборах.

Изображение предоставлено Statista

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

Но это крайне идеалистичный взгляд. Нужно предпринять что-то то, что бы гарантировало значимость каждого отданного голоса. Поэтому создатель EOS Дэн Лаример представил концепцию “Распада голосов”.

Распад голосов

Вследствие внедрения “Распада голосов” происходит следующее:

  • Сила каждого голоса делится пополам каждый год (если вы обновляете голоса - прим. ред.)
  • Голосующий должен по новой отдавать голос каждую неделю, чтобы подтвердить силу голоса.
  • Обходит проблему “эффекта безбилетника”, давая голосующим шанс пересмотреть свой выбор.

Механизм распада голоса дает 2 огромных преимущества:

  • Во-первых, мы снова и снова можем наблюдать, как коррумпированные избранные представители начинают петь другую песенку после избрания. Эта система дает возможность пересматривать свой выбор каждую неделю, что держит в тонусе производителей блоков. 
  • Во-вторых, люди меняются  с течением времени. Политические взгляды и идеология человека сегодня через год могут сильно измениться. Система позволяет людям голосовать за тех, кто наиболее соответствует их взглядам на данный момент.

Эта концепция имеет все шансы стать по-настоящему революционной и изменить децентрализованное голосование (может быть даже обычное голосование) навсегда.

Как мы уже упомянули ранее, сила каждого голоса делится пополам каждый год. Kartik Mandaville -  генеральный директор SpringRole - продемонстрировал, как это будет происходить, в статье на Medium:

“Нормативное время на вычисление веса - первое января 2000 года. Вместо переписывания веса голоса каждый раз, Дэн придумал увеличивать вес свежих голосов, например 1 января 2019 - 2¹⁹ и 1 января 2018 - 2¹⁸ - это делает голос 1 января 2019 вдвое мощнее голоса 1 января 2018.”

Одна из самых интересных концепций, которые EOSIO Dawn 4.0 представили нашему вниманию - модель “Распада голоса”. Считается, что она имеет потенциал стать очень мощной моделью, которую будущие блокчейн проекты смогут использовать, чтобы внедрить механизм голосования.

Распад голосов - одна из самых многообещающих новинок, выпущенных EOSIO Dawn 4.0. Проблемы может вызвать использование ботов для голосования. Но Дэн Лаример реагирует на это следующим образом:

“Мы предлагаем, чтобы конституция содержала запрет на использование автоматизированных ботов для голосования, т.к. цель распада голосов была в том, чтобы гарантировать возможность пересматривать решения, а не “выбрать и забыть”. Пока не будет возможности доказать использование ботов, можно доказать обратное - что люди не используют смарт контракты для авто голосования”.

№6 Алгоритм последнего необратимого блока DPOS

Прежде чем вы сможете понять алгоритм DPOS LIB (от англ. Last Irreversible Block - последний необратимый блок), надо освоить целый ряд вопросов. Для начала мы должны узнать, что такое окончательность.

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

Алгоритмы консенсуса на блокчейне можно разделить на 2 категории:

  • Со 100% окончательностью при условии определенного набора подтверждающих.
  • Те, которые не дают 100% окончательности, но рассчитывают на высокую вероятность окончательности.

Первое поколение алгоритмов консенсуса на блокчейне давало высокую вероятность окончательности без 100% гарантий. Возьмем Биткоин.

Биткоин следует правилу “самой длинной цепи”. Даже если в блокчейне возникает несколько цепей, главной считается цель с максимальным количеством блоков. Поэтому ни один из добытых блоков не является необратимым во всех смыслах этого слова. Любой человек в любое время может создать цепь длиннее, если у него достаточно ресурсов и мотивации.

Bitshares представили миру DPOS. Как правило, в блокчейне с DPOS 100% участие производителей блоков. Транзакция обычно подтверждается за 1,5 секунды с момента появления с 99,9% точности. Чтобы быть полностью уверенным насчет подтверждения транзакции, ноде нужно подождать, пока к консенсусу придут только 15/21 (т.е. ⅔ ) производителей.

Что произойдет, если появится форк?

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

Благодаря быстрому времени создания блока, возможно предупреждать ноды за 9 секунд о том, в главной они цепи или цепи меньшинства. Причина проста - среднее время между каждым блоком составляет 3 секунды. Если нода пропускает 2 последовательных блока, есть 95% шанс, что она попадет в форк меньшинства.

DPOS 2.0

DPOS 2.0 вышел на совершенно новый уровень, выдвинув концепцию последнего необратимого блока.  LIB - это самый свежий блок, который создали 2/3+1 производители блоков. Логика в том, что если большинство производителей строят цепь, то вероятность форка становится еще меньше.

При этом есть вариант атаки. Рассмотрим следующий случай:

  • Сеть распадается на 2 цепи.
  • Обычно, это заставило бы одну или обе цепи приостановить работу, пока одна из них не получит одобрение 2/3+1 производителей блоков.
  • Но что если 2 группы валидаторов одновременно переключатся на форки, и оба форка получат  2/3+1 на 2 разных блоках?
  • Из-за этого есть вероятность 2 разных LIB.

Тем не менее эта вероятность гораздо меньше, чем вероятность обращения блока Биткоина с 6 подтверждениями. Bitshares и Steem функционируют более 3 лет, и нет ни следа этой проблемы.

DPOS 3.0

Вот где DPOS 3.0 и IBC вступают в дело. IBC поможет одной цепи доказать окончательность своих транзакций. Окончательность - ключевой элемент бесперебойной IBC.

Чтобы защитить надежную IBC вопреки всем условиям, DPS 3.0 и BFT представили небольшую модификацию алгоритма LIB. С помощью нее можно доказать, что 2 ноды не могут прийти к разным заключениями относительно LIB. В результате это также помогает доказывать вредоносные действия нод.

В DPOS все до единого созданные блоки - не что иное как показатель утверждения ранее добавленного блока. Поэтому если 70% производителей создали блок, то этот блок имеет 70% голосов и одобрения в экосистеме. Выглядит это очень надежно, но здесь мы сталкиваемся с препятствием. Оказывается, что в системе DPOS, производители могут намеренно или нечаянно, производить блоки на разных форках. Это приводит к противоречию голосов, полученных благодаря ранее добавленным блокам.

Давайте рассмотрим следующий случай, и проверим, как он был бы разрешен в DPOS 2.0 и DPOS 3.0

Дано:

  • Сеть с 3 производителями:  A, B и C.
  • Предположим, связь между производителями A и B потеряна. A создает блок N во время T (блок N(A)) и B создает блок N во время T+1 (блок N(B)).
  • C создает блок N+1 во время T+2 поверх блока N(B).
  • Поняв это, A создает блок N+2 поверх блока N+1 C, противоречащий его ранее добавленному блоку N.

DPOS 2.0

Всего в нашей вымышленной сети 3 производителя. Чтобы получить большинство голосов 2/3+1, все 3 должны прийти к соглашению (2/3*3 +1 = 3).

Чтобы блоку N(A) считаться необратимым, он должен быть принят всеми производителями.

В DPOS 3.0

Помните ключевые моменты того, что случилось ранее?

  • A и B обнаружили блок N.
  • Блок N(B) был создан, а блок N(A) проигнорирован.
  • На самом деле A также брал за основу блок B.

Но в DPOS 3.0 произошло бы следующее:

  • A подтвердит, что создал альтернативный блок N.
  • Из-за этого сеть не посчитает блок N+2 (A).
  • Так как из-за этого блок (N)B получит только 2 голоса из 3, блок не будет необратимым.

Как это работает?

  • Каждый производитель включает самое большое число блока (H), которое ранее подтвердили на любом форке в заголовке блока N.
  • В случае с блоком N только блок в пределах от H+1 до N рассматривается как необратимый.
  • Все, кто попытается подписать блок в других пределах обозначается как злоумышленник и генерирует криптографическое доказательство неправомерного поведения.
  • Чтобы два разных блока на одной высоте получили 2/3+1 голосов, группа должна быть поделена на 1/3, ⅓ и 1/3. Одна группа производит один блок, другая - другой, пока группа злоумышленников подписывает оба блока.

Но в этой ситуации в сети должно быть 2/3+1 злоумышленников, чтобы создать 2 блока, которые рассматривались бы как необратимые. Произойти это может только в двух случаях:

  • 2 блока подписаны одним номером блока.
  • 2 блока подписаны одним временем блока.

Более свежим прококолам консенсуса таким как DPOS, Hashgraph, Casper и Tendermint удается достигнуть окончательности пока ⅔ участников честны. 100% окончательность - важнейшая фича для блокчейнов, которые хотя поддерживать IBC. Примерная программа для всех этих протоколов включает:

  • Предложение блока.
  • Все участники принимают предварительное соглашение по поводу блока.
  • Все участники утверждают предварительные соглашения, когда >⅔ делают это.
  • Блок становится окончательным, когда достигается >⅔ соглашений.
  • Решение об окончательности принимается, кроме тех случаев, когда ⅓ злоумышленников, и есть доказательство вредоносных действий.

Предмет беспокойства Виталика

Виталик Бутерин - человек, который стоит за Эфириум - указал на несколько возможных уязвимых мест в алгоритме консенсуса EOS. Он сказал следующее:

“Он не выглядит по-настоящему безопасным. Представьте случай с 4 валидаторами, один может быть злоумышленником. Предположим, до времени T всеми согласованный заголовок - Z; затем во время (T, T+1, T+2, T+3) валидаторы (A, B, C, D) создают блоки, расширяя цепь от Z. У A теперь есть голоса от B, C, D и поэтому эта цепь окончательно утверждена. Теперь, прежде чем временной промежуток T+3 заканчивается, D также (злонамеренно) создает блок (называет его D’) поверх Z. Затем во время (T+4 … T+11), (A, B, C, D, A, B, C, D) создают блоки поверх D’ (это в порядке вещей, т.к. каждый валидатор создает блок на один блок выше предыдущего). Второй блок в этой цепи также имеет 3 голоса и также утвержден. Таким образом, 2 противоречащих блока окончательно утверждаются.
Как правило нельзя достигнуть безопасности блока без как минимум 2 сообщений от большинства нод, которые напрямую или косвенно содержат ссылку на этот блок; этот алгоритм пытается сделать это за 1 раунд, что, вероятно, просто невозможно сделать безопасным способом. Если вам нужен удобный способ, я рекомендую просто использовать алгоритм из нашего документа Casper FFG”.

Вы можете ознакомиться с полной переской Виталика и Дэна Ларимера по этом поводу прямо по этой ссылке.

Заключение

Итак, мы надеемся, что с помощью нашего гида вы сможете получить представление о предложениях EOSIO. Но прежде чем сворачиваться, нам стоит затронуть не самую приятную тему.

Да, пока запуск EOS проходит не так гладко. Однако, однозначно говорить о том, как все сложиться, нельзя. На данный момент все, что в наших силах - рассказать вам о разных фичах и свойствах EOSIO Dawn 4.0.

Надеемся, вы почерпнули много важной информации.

Оригинал поста: https://blockgeeks.com/guides/eos-beginners-guide-part-2/
Sort:  

Congratulations @bellevich! You have received a personal award!

1 Year on Steemit
Click on the badge to view your Board of Honor.

Do not miss the last post from @steemitboard:

SteemitBoard Ranking update - Resteem and Resteemed added

Support SteemitBoard's project! Vote for its witness and get one more award!

Congratulations @bellevich! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

SteemFest⁴ commemorative badge refactored
Vote for @Steemitboard as a witness to get one more award and increased upvotes!