DPOS BFT - конвеерная задача византийских генералов

Katya_CryptoLionsKatya_CryptoLions Posts: 29 Brand New

Оригинал: https://medium.com/eosio/dpos-bft-pipelined-byzantine-fault-tolerance-8a0634a270ba
Дата перевода: 26/05/2018

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

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

Консенсусные алгоритмы, которые появились позже, будь то HashGraph, Casper, Tendermint или DPOS BFT используют известные принципы Paxos и соответствующие консенсусные алгоритмы. Согласно этим моделям, можно достичь однозначной окончательности в любых сетевых условиях, если более ⅔ участников поступают честно.

Объективная и недвусмысленная 100% окончательность является критическим свойством для всех блокчейнов, которые поддерживают внутреблочную коммуникацию. Отсутствие 100% финальности, возврат на одну цепочку назад может иметь противоречивые последствия для всех взаимосвязанных цепочек.

Абстрактный протокол действующий для протоколов, которые появились недавно включает следующие команды:

  1. Предложение блока
  2. Все участники подтверждают блок (предварительное обязательство)
  3. Все участники дают подтверждение, что они получили предварительное обязательство от ⅔ + других участников (обязательство)
  4. Блок становиться окончательным после того, как на узел пришло ⅔ + передач
  5. Единогласное соглашение об окончательности может быть достигнуто если только ⅓ + не являются плохими, а доказательства некорректного поведения доступны для всех

Вот основные моменты, которые указывают на различия между консенсусными протоколами:

  1. Возможность решать, кто и когда может предлагать блок
  2. Определение принципа регистрации и передачи обязательств
  3. Документирование византийского поведения
  4. Наказание за византийское поведение

Некоторые из этих различий являются политическими, а некоторые из них носят технический характер. Примеры политических различий включают следующие:

  1. DPOS отбирает набор инициаторов и валидаторов на основе ставки
  2. Casper использует доказательство работы, чтобы указать, кто и когда будет предлагать и взвешывать связанную ставку с целью определения валидаторов (Casper relies on proof-of-work to determine when and who and when gets to propose and bonded-stake-weight to determine who the validators are).
  3. DPOS наказывает объективно и субъективно некорректное поведение, путем выведения участников из голосования
  4. Casper только наказывает объективно некорректное поведение, сокращая облигации

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

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

Самый простой возможный алгоритм позволяет каждому достичь консенсуса на одном блоке до того, как любые действия могут быть осуществлены на следующем блоке. Это предполагает, что каждый участник отправляет каждому другому участнику два сообщения на блок. В глобальной сети скорость света ограничивает практическую латентность с момента предложения до того момента, когда на узел приходит больше ⅔ коммитов примерно к одной секунде (500 мс задержка в оба конца * 2 прохождения в оба конца). Все сети, с которыми я сталкивался, имеют 2-3-секундную задержку. Эти простые протоколы также имеют «таймер», который запускает новое предложение, в случае если консенсус относительно валидности действующего предложения не был достигнут. Этот таймер можно поставить на дольше, чем ожидаемое время подтверждения.

Протоколы, подобные Casper, направлены на минимизирование накладных расходов, полагаясь на доказательство работы для краткосрочного консенсуса и достигая окончательности на каждом 100-м блоке (контрольная точка). Это означает, что цепи основаны на Casper достигают окончательности через каждые 20-30 минут.

DPSO BFT Конвеерный Консенсус
Современное делегированное доказательство ставки с BFT, реализованное в EOSIO, использует конвейерный подход для передачи сообщений о предложениях, предварительных обязательствах и обязательствах. Это означает, что при нормальных условиях, каждый блок приближает окончательность одного блока делая одно предложение за определенный временной интервал. Другими словами, стоимость DPOS с окончательностью BFT, в отношении проверки подписи, хеш-расчетов, пропускной способности сети и т. д., равна стоимости более старых систем DPOS, которые основывались на конечной согласованности и самом длинном правиле цепи, которое сходилось с Bitcoin и Ethereum перед появлением Casper.

Только DPOS BFT может проводить эффективное масштабирование с неограниченным количеством валидаторов (с расчёта стоимости за латентность). Другие протоколы расширяют ресурсные требования для финальности с O(2N) количеством участников, так как каждый должен осуществлять двойной контакт на каждом блоке или контрольной точке. При наличии большего количества сторон требуется большее количество подписей, сетевых накладных расходов и памяти, а также высокая латентность.

Предполагая, что DPOS BFT имеет двухсекундный блочный интервал и 21 производителя, достижение окончательности происходит за 1 минуту, но новый блок достигает окончательности каждые две секунды. Это достигается путем конвейерной обработки подтверждений BFT. Платформы как EOSIO производят блоки каждые 500 мс, но ротации происходят только на каждых 12 блоках. Это означает, что окончательность на BFT достигается примерно за 3 минуты на основе чистых подтверждений блока BFT DPOS. В конечном результате, вы получите скорость в 10 раз выше, чем Casper для окончательности на отдельных блоках, но новый блок будет достигать окончательности каждые две секунды, а не 30 минут.

Гибридный конвеер DPOS / BFT реального времени
Существует много приложений, в которых трехминутное достижение окончательности является нежелательным и/или доказательства DPOS для легких клиентов на каждом конкретном блоке являются больше желаемого. В этом случае, можно создать блокчейн дизайн, при котором сообщения BFT о предварительном коммите и коммите передаются через каждый блок что находится в статусе ожидания. Это обеспечивает DPOS-BFT цепям конечную задержку в 1-2 секунды за счет дополнительных сетевых расходов, памятных требований и использования ЦП. В отличие от таких протоколов как Tendermint/Cosmos, в конвеере может существовать множество предложений одновременно. Возможно даже что некоторые блоки никогда не получают коммитов в реальном времени из-за сетевых расколов, но тем не менее, в конечном счете, они считаются подтвержденными.

Через гибридный подход легкие клиенты могут проверять блок с 15 подписями и/или использовать более сложные криптографические методы для объединения всех подписей коммитов в одну подпись. Без сообщений о коммитах легкие клиенты могут по-прежнему достигать BFT окончательности, используя несколько последовательных заголовков блоков.

Степени безопасности

Это было известно давно, что для многих приложений, таких как блог посты и голосование в социальных сетях, ожидание 100% окончательности является неразумным, так как окончательность на 99,999% может быть достигнута менее чем за секунду. Такие протоколы как Casper дают пользователям возможность полагаться на подтверждение доказательства работы, без ожидания проверки на финальной точке.

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

Каждый консенсусный алгоритм определяет конкретные решения для пользователей и постепенно сходит к разным безопасным вариантам. Tendermint/Cosmos/Ripple не дают пользователям выбора работать с чем-то меньшим, чем полная окончательность. Ethereum дает пользователям откат к доказательству работы, а DPOS-BFT позволяет возвращаться к оригинальным гарантиям DPOS.

Можно даже сложить алгоритм финальной проверки Casper с режущими условиями на основе системы предложений блоков DPOS BFT. Такой подход позволил бы создать множество независимых наборов валидаторов с политическими и экономическими стимулами для хорошего поведения.

Пользовательский опыт

Делегированное доказательство ставки с BFT оптимизирует номинальный случай, будучи “не худшим” в худшем случае. При нормальных условиях избранные производители блоков являются публичными деятелями с юридическими обязательствами и высоконадежными узлами. Вероятность того, что готовый блок достигнет окончательности составляет 99,999% и это означает, что средний пользователь получает почти полную окончательность менее чем за секунду. Это дает достаточную надежность в отношении выполнения почти всех ежедневных финансовых операций. Касательно больших финансовых операций, таких как покупка автомобиля, от пользователя требуется всего лишь подождать несколько секунд до достижения абсолютной окончательности.

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

Вывод

Все современные консенсусные алгоритмы, следующие принципам консенсуса BFT, которые были первоначально представлены в 1980-х годах, могут достичь безопасного и окончательного состояния в худшем случае разделенной сети с ⅓ византийских участников. Только DPOS BFT и EOSIO оптимизированы для 99,999% случаев 100% честных узлов без сетевых разделений. DPOS BFT обеспечивает такую ​​оптимизированную производительность, не жертвуя гарантиями безопасности, которые предоставляются другими протоколами.

Дисклеймер: Block.one является софтверной компанией, которая выпускает EOSIOsoftware как бесплатное программное обеспечение с открытым исходным кодом. Это программное обеспечение может, среди прочего, предоставлять возможность тем, кто его развертывает, запускать блокчейн или децентрализованные приложения с различными функциями. Для получения дополнительной информации перейдите на страницу https://github.com/eosio. Block.one не предоставляет финансовую поддержку тем, кто хочет стать производителем блоков на любой версии платформы EOSIO, которая может быть принята или внедрена.

Block.one не будет запускать каких-либо первичных публичных блокчейнов, основываясь на программном обеспечении EOSIO. Это будет исключительно ответственностью третьих сторон, сообщества и/или тех, кто хочет стать производителями блоков принимать и внедрять EOSIO в любом виде, с функциями, которые они выбирают, и/или предоставляя услуги по своему усмотрению. Block.one не гарантирует, что кто-либо примет/реализует такие функции, предоставит такие услуги или что программное обеспечение EOSIO будет принято и реализовано каким-либо образом.

Block.one не поддерживает никаких третьих сторон, их продуктов или услуг, даже если они упоминаются здесь. Block.one не несет ответственности за указание ссылок.

Обратите внимание, что приведенные здесь заявления являются видением block.one, а не гарантией чего-либо. Хоть нашей целью и является сделать это видение реальным, все его аспекты могут быть изменены во всех отношениях, по собственному усмотрению Block.one. Все заявления в этом документе, за исключением заявлений об исторических фактах, включая любые заявления о бизнес-стратегии, планах, перспективах, событиях и целях block.one, являются заявлениями прогнозированного характера. Эти утверждения являются только прогнозами и отражают текущие убеждения и ожидания Block.one относительно будущих событий. Так как они основаны на предположениях, то подвергаются риску, неопределенности и изменениям в любое время. Мы работаем в быстро меняющейся среде. Время от времени появляются новые риски. Учитывая эти риски и неопределенности, мы предостерегаем вас не полагаться на эти заявления полностью. Фактические результаты, эффективность или события могут существенно отличаться от прогнозируемых. Некоторые из факторов, которые могут привести к изменениям фактических результатов, эффективности или событий включают следующие: колебания конъюнктуры рынка; постоянное наличие капитала, финансирования и персонала; принятие продукта; коммерческий успех любых новых продуктов или технологий; конкуренция; государственное регулирование и законы; и общие экономические, рыночные или деловые условия.

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

Идеи и информация, которую вы можете найти здесь, принадлежат исключительно автору и не обязательно отражают позиции, мнения или рекомендации Block.one или любого другого сотрудника Block.one.


Перевод: CryptoLions
Website
Telegram
Steemit
Twitter
GitHub
Meetup

Sign In or Register to comment.