Delegated Proof-of-Stake (DPoS)Что такое DPoS и зачем он нужен?Если говорить упрощенно, то PoS-майнинг предполагает получение новых монет, путем удержания в своем кошельке блокчейна предыдущих транзакций (полной ноды). Иными словами, проверка новых транзакций происходит на основе накопления и удержания монет. Соответственно, чем больше монет на счету держателя – тем больше его вознаграждение с новых блоков.
Это порождает определенную дискриминацию клиентов с малым количеством монет на счету. Эта проблема была, к примеру, у Peercoin – первой монеты, использующей PoS в своей основе.
С алгоритмом DPoS просто держать деньги на счету уже недостаточно. Более того, чтобы стать майнером в сети, нужно пройти определенный отбор. Функцию проверки транзакций (майнинга) осуществляют избранные в результате голосования клиенты. Только пройдя процедуру, сообщество делегирует им эти функции. Точно так же сообщество может эти функции отобрать, если сочтет, что держатель кошелька не справляется со своими обязанностями. Своего рода пример представительской демократии.
Иными словами, Delegated PoS применяет PoS с расширенным функционалом. Поэтому остается быстрым (и даже ещё быстрее), не требует больших вычислительных мощностей по сравнению с алгоритмом Proof-of-Work (PoW).
Преимущества:
Главное преимущество DPoS в том, что доверенным узлам сети не требуется пересчитывать половину цепочки – достаточно проверить тот блок, который поступил от другого доверенного узла. Этим и достигается высокая скорость обработки транзакций. В теории, как это предполагал автор DPoS Дэниел Лаример, блокчейн на этом алгоритме способен проводить до 100 тысяч переводов в секунду.[/li][/list]
Элементы DPoS, достоинства алгоритма
DPoS представляет собой своего рода двухуровневую систему.
В ней есть клиенты, которым делегированы полномочия (исполнители) – их задача майнинг, то есть создание новых блоков. Есть избиратели (держатели кошельков), которые назначают свидетелей путем голосования.
Исполнителей в блокчейне – строго ограниченное количество. Поэтому они больше всех заинтересованы в том, чтобы выполнять свою работу качественно: получать вознаграждение могут только лучшие из них. В противном случае сообщество быстро сможет найти им замену. Кроме того, процесс «выборов» происходит непрерывно в автоматическом режиме.
Достоинства такого подхода неоспоримы:
- Высокая скорость сети;
- Равные возможности для заработка при голосовании;
- Принятие управленческих решений по развитию экосистемы упрощается – любой консенсус достижим в результате голосования;
- Высокая устойчивость сети: DPoS работает даже, если большая часть исполнителей вышла из строя. Сообщество тут же проголосует за их замену.
В то же время делегирование полномочий порождает централизацию сети, хотя при этом позволяет избавляться от негодных исполнителей.
Какие криптовалюты работают на алгоритме DPoSBitShares (BTS) – первая разработка на DPoS, авторы Дэниел Лаример и Чарльз Хоскинсон;
Lisk (LSK) – блокчейн-платформа, форк другой монеты Crypti, авторы Макс Кордек и Оливер Беддоус;
EOS (EOS) – своеобразная операционная система на блокчейне для создания децентрализованных приложений и нулевыми комиссиями за транзакции, авторы – коллектив разработчиков из компании BlockOne;
Ark Coin (ARK) – криптовалютная блокчейн-платформа, способная связываться с другими блокчейнами при помощи технологии SmartBridge, автор – один из разработчиков Lisk Франсуа Квасье;
Перспективы развития сетей на базе DPoS
Следует отметить, что технология DPoS – сравнительно молодое явление. Многим криптовалютам на основе этого алгоритма не более двух лет, так что пока трудно сказать, насколько успешны они будут в дальнейшем.
В пользу DPoS говорит высокая скорость обработки данных и отличная масштабируемость сети. Тем не менее надежность алгоритма пока под вопросом, хотя до сих пор его ещё никому не удалось взломать.
Кроме того, работоспособность системы на алгоритме DPoS зависит от активности пользователей, их стремления голосовать и избавляться от неугодных исполнителей. Поэтому критически важный момент – в мотивации держателей кошельков.
Подробный алгоритм DPOSАлгоритм DPOS делится на две части: избрание группы производителей блоков и составление графика производства. Процесс избрания позволяет убедиться, что держатели долей контролируют процесс, ибо именно они теряют больше всего, когда сеть перестает работать как надо. То, как люди избираются, не особенно влияет на то, как из минуты в минуту достигается консенсус. Посему этот документ будет сфокусирован на том, как достигается консенсус после избрания производителей блоков.
Чтобы упростить объяснение работы этого алгоритма, я предлагаю взять трех производителей блоков: A, B и C. Так как для разрешения всех ситуаций консенсус требует согласия 2⁄3 + 1, в этой упрощенной модели мы будем считать, что производитель C является нарушителем порядка. В реальном мире обычно есть 21 или более производителей блоков.
Нормальное функционированиеПри нормальном функционировании производители блоков поочередно производят блок раз в три секунды. Если предположить, что никто не пропускает свою очередь, то в результате мы получим наиболее длинную из возможных цепей. Производитель блоков не может производить свой блок в иной временной период, кроме уже назначенного.
Форк меньшинстваВплоть до 1⁄3 всех нод могут быть вредоносными или неисправными и создать форк меньшинства. В таком случае форк меньшинства будет производить только один блок каждые 9 секунд, тогда как форк большинства будет производить 2 блока каждые 9 секунд. И опять же, честные 2⁄3 большинства всегда будут создавать более длинную цепь, нежели меньшинство.
Двойное производство изолированным меньшинствомМеньшинство может попытаться произвести неограниченное количество форков, но все их форки будут короче основной цепи, потому как меньшинство ограничено малой скоростью роста своей цепи.
Фрагментация сетиФрагментация сети всегда остается возможной, и когда это случается, ни один из форков не обладает большинством производителей блоков. В этом случае самая длинная цепь будет присвоена самому многочисленному из меньшинств. Когда сетевое подключение будет восстановлено, малочисленные меньшинства естественным образом переключатся на самую длинную цепь, и однозначный консенсус будет восстановлен.
Может случиться так, что возникнут три форка, из которых два длиннейших будут одинаковой длины. В таком случае производители третьего (меньшего) форка разрешат этот вопрос, вновь присоединившись к сети. Количество производителей всегда нечетное, поэтому невозможно долго удерживать равновесие. Позже мы добавим перетасовку производителей, что рандомизирует порядок производства и позволит нам удостовериться, что даже если два форка обладают одинаковым количеством производителей, форки будут расти рывками разной длины, за счет чего один форк обгонит другой.
Двойное производство присоединенным меньшинствомВ таком сценарии меньшинство B произвело два или более альтернативных блока в свой временной период. Следующий за ним производитель ( C ) может продолжить строить цепь на любом из вариантов, произведенных B. Когда это случится, такой вариант станет самой длинной цепью, и все ноды, выбравшие B1, переключатся на этот форк. Не важно, сколько альтернативных блоков попытается продвинуть меньшинство вредоносных производителей - они никогда не станут частью самой длинной цепи дольше, чем на раунд.
Последний необратимый блокСуществует возможность, что в случае фрагментации сети несколько форков продолжат расти в течение длительного периода времени. В перспективе самая длинная цепь выиграет, но наблюдателям нужен способ узнать наверняка, когда блок точно является частью самой быстрорастущей цепи. Это можно определить, увидев подтверждение от 2⁄3+1 производителя блоков.
На рисунке ниже блок B был подтвержден C и A, что представляет собой подтверждение от 2⁄3+1, а значит, мы можем заключить, что никакие другие цепи не могут быть длиннее, если эти 2⁄3 производителей честны.
Заметьте, что это “правило” схоже с 6-блочным “правилом” подтверждения в Биткойне. Некоторые смышленые индивиды могут создать такую последовательность событий, когда две ноды могут оказаться на разных последних необратимых блоках. Этот пограничный случай требует от атакующего обладанием тотальным контролем над задержкой в коммуникации и способностью воспользоваться этим контролем не единожды, а дважды и с разрывом в несколько минут. Если бы такое случилось, долгосрочное правило самой длинной цепи всё равно осталось бы применимо. Мы считаем, что вероятность такой атаки стремится к нулю, а ее экономические последствия столь незначительны, что не стоит и беспокоиться.
Отсутствие кворума производителейВ том маловероятном случае, когда в блокчейне отсутствует четко определенный кворум производителей, меньшинство всё равно может продолжить производить блоки. В эти блоки держатели долей смогут включать транзакции, которые меняют их голоса. Затем эти голоса могут избрать новый набор производителей и восстановить уровень участия в производстве блоков до 100%. Как только это произойдет, цепь меньшинства в итоге обгонит все другие цепи, работающие с уровнем участия менее 100%.
На протяжении этого процесса все наблюдатели будут знать, что состояние сети нестабильно до тех пор, пока не появится цепь с 67%-ным участием. Те, кто решил совершить транзакцию при таких условиях, рискуют в той же степени, что и те, кто решил принимать менее 6-ти подтверждений. Они делают это, зная о существовании малой вероятности того, что консенсус установится на другом форке. На практике эта ситуация намного безопаснее, чем принятие блока с менее чем 3-мя Биткойн подтверждениями.
Коррумпированность большинства производителейЕсли большинство производителей станут коррумпированы, то они смогут произвести неограниченное число форков, каждый из которых будет продвигаться вперед с подтверждением от 2⁄3 большинства. В таком случае алгоритм последнего необратимого блока меняется на алгоритм самой длинной цепи. Самой длинной цепью будет та, которая подтверждена самым многочисленным большинством, которое будет определяться меньшинством оставшихся честных нод. Такое поведение не продлится долго, так как держатели долей будут голосовать за замену этих производителей.
Источник