Византийский консенсус на пальцах и немного о децентрализации
Создать запись
Создать запись
Популярные тэги
Здравствуйте ) присоеденяйтесь в телеграмм чат и там узнаете подробнее что нужно для того ...
Почему одни криптовалюты стоят более 45 000$, а другие не преодолевают 1$
Здравствуйте, а как создать статью? Выдает ошибку, что нельзя создавать....
Почему одни криптовалюты стоят более 45 000$, а другие не преодолевают 1$
Что-то многовато запросили мне кажется. Не получится как с сабом вики? Получили - отмыли и...
African Subgovernance Proposal
Это монеты с серийным номером что ли? История каждой монеты может быть отслежена? Как-то с...
Невзаимозаменяемые токены NFT
Ну отлично, я готов приступать. И у меня есть бомбическая идея!...
Предложение: конкурс на создание контента
John Doe Подскажите пожалуйста, где звять форму на участие, или линк продублируйте. Спс...
Интервью с Александром Филатовым, СЕО TON Labs

Византийский консенсус на пальцах и немного о децентрализации

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

2

Автор публикации

не в сети 1 день

viljy

8
Комментарии: 0Публикации: 6Регистрация: 11-11-2020

Консенсус означает достижение согласия. Почему он византийский и какое имеет отношение к Free TON? Блокчейн формируется сетью узлов (нод), которым необходимо принимать решения об истинности транзакций для включения их в валидный блок. Для этого узлы должны прийти к консенсусу.

Происхождение названия восходит к задаче византийских генералов, предложенной группой исследователей в 1982 году. В классическом варианте задача выглядит примерно так: армия византийских генералов (по-византийски стратегосов) должна в ночь перед штурмом крепости получить приказы главнокомандующего о том, отступать или идти на штурм.

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

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

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

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

Вот как описывается простейший случай на примере 4 генералов, среди которых есть 1 предатель (пример из интернета, но по мере возможности облегченный для понимания).

После первого обмена информацией, когда каждый генерал посылает сведения другим генералам, каждый генерал будет располагать такими сведениями:

1) 1.2.а.4

2) 1.2.b.4

3) 1.2.3.4. — предатель (эта пометка для читателя, генералы не знают)

4) 1.2.c.4

Здесь каждый генерал сообщил остальным свой настоящий номер. Третий генерал сообщил остальным не свой номер, а произвольную информацию, причем всем разную (обозначена буквами a, b, c). Далее каждый генерал посылает всем остальным сформированные ранее сведения, полученные после первого обмена информацией. В итоге каждый генерал будет располагать таким набором информации:

1) (1.2.a.4) (1.2.b.4) (5.u.7.w) (1.2.c.4)

2) (1.2.a.4) (1.2.b.4) (L.p.s.8) (1.2.c.4)

3) (1.2.a.4) (1.2.b.4) (1.2.3.4) (1.2.c.4) – предатель (какая же он скотина)

4) (1.2.a.4) (1.2.b.4) (h.6.9.t) (1.2.c.4)

Предатель под номером 3 снова разослал разную ахинею всем остальным. Далее каждый генерал ищет совпадающие значения в наборах полученной информации и формирует результат, который у верных генералов будет (1.2.f(a,b,c).4). f(a,b,c) – значение, встречающееся хотя бы два раза среди a,b,c или неизвестность, если они различны. Так как значения a,b,c и функция f у верных генералов те же самые, то консенсус достигается, несмотря на усилия предателя.

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

У византийского консенсуса есть важная особенность — консенсус может быть достигнут если число предателей строго меньше 1/3. Или другими словами если в системе m предателей, то консенсус возможен, если есть минимум 2m+1 верных генералов. То есть больше 2/3. Если предателей ровно 1/3, то консенсус не может быть достигнут. Для этого тоже есть доказательство, но лучше рассмотреть этот момент на низведенном до бытового уровня примере, так сказать объяснить на пальцах, когда имеется 3 генерала, среди которых 1 предатель.

Предатель будет рассылать остальным двум генералам разную информацию, двое верных генералов будут рассылать действительную информацию. Любой из верных генералов получает с одной стороны информацию, не совпадающую с информацией с другой стороны, при этом ценность получаемых данных для него совершенно одинакова. Как ему принять решение? Никак. Предатель получает два набора информации на основании которых консенсус мог бы быть достигнут, но он предатель. Это правило работает при любом количестве узлов в системе. Если всего их 300, и среди них 100 неисправных, то консенсус достигнут быть не может.

Система, построенная да византийском консенсусе называется в общем случае Byzantine Fault Tolerance (BFT), что можно интерпретировать как отказоустойчивый византийский протокол (протокол это метод достижения консенсуса). Существуют разные усовершенствованные варианты реализаций протокола BFT, например такие как Practical Byzantine Fault Tolerance (PBFT), Federated Byzantine Agreement (FBA), Delegated Byzantine Fault Tolerance (DBFT). Последний нашел применение в Free TON, но со своими особенностями. Однако как именно, на основании чего валидаторы могут приходить к консенсусу? В основе этого лежит механизм Proof-of-Stake (PoS) — доказательство владения долей (монет). Этот механизм является энергоэффективным и экономичным в отличие от Proof-of-Work (POW), к которому еще вернемся впоследствии.

Какие преимущества имеют блокчейны, построенные таким образом? Основное отличие это скорость обработки транзакций, которая является завершенной сразу же после того, как сеть принимает решение и нода получает ответы от остальных узлов. Почему это так – BFT протокол абсолютного согласия. В отличие от протокола Накамото, где согласие вероятностное. Этот протокол допускает наличие микроскопической ошибки, вероятность которой экспоненциально падает с увеличением количества блоков. Однако скорость транзакций в этом случае страдает. Также необходимо некоторое количество подтверждений блока, чтобы избежать двойного расходования средств. Однако последний протокол обладает большей отказоустойчивостью чем классический BFT. Поэтому для нивелирования слабых мест BFT применяются его различные модификации, упомянутые выше.

Имеется не то чтобы недостаток, а особенность — чем больше валидаторов, тем медленнее сеть работает. Поскольку на взаимодействие для достижения консенсуса тратится больше ресурсов. По-простому: 10 людям быстрее и легче договориться, чем сотне. При том, что нет «председателя», который всех созовет на собрание (все валидаторы равноправны). Впрочем, сеть FreeTON допускает до 1000 валидаторов без существенной потери скорости транзакций. Хотя вряд ли такое количество валидаторов понадобится в ближайшее время. Однако иметь запас по масштабированию необходимо.

Для разбавления избытка технической информации в статье (хотя и минимизированной, насколько это получилось) небольшое отступление от темы. Поскольку задача византийских генералов отсылает к средневековью, то вот пример как консенсус не был достигнут. Брат короля Франции Робер Артуа вопреки предупреждению Людовика, не стал дожидаться подхода основных сил и повел авангард на штурм Мансуры (город в Египте). При этом вынудил великого магистра тамплиеров на участие в своей авантюре, обвинив его в трусости, в результате спасся лишь магистр (но уже без глаза) и несколько рыцарей. Впоследствии магистр так же погиб, а армия святого короля была пленена. 7 крестовый поход закончился неудачно. Конечно натянутый пример, поскольку имело место невыполнение приказа. Однако с другой стороны, не абы кем нибудь, а братом короля, которому многое позволительно. Кроме того не стоит забывать, что абсолютизма тогда не было и король был лишь первым среди равных. В некотором роде децентрализация.

Далее имеет смысл коснуться такого вопроса, как момент создания блоков относительно достижения консенсуса. В основном, в блокчейнах (например, биткоин) сначала создается блок, а потом ищется консенсус. В этом случае возможно существование такого явления как разветвление цепи или по-иному вилка — форк. В Free TON сначала достигается консенсус, а затем создается блок, что позволяет избегать вилок. Например, в Polkadot этот механизм позволяет обновлять систему без форков вообще, то есть процесс происходит гладко и без эксцессов, которые иногда сопровождают подобного рода события в других блокчейнах.

Теперь, как и было сказано выше, вернемся к POW. И речь пойдет о способах достижения максимальной децентрализации сети. Что предпринимается в отношении этого в блокчейнах, построенных на протоколах доказательства работы? Это: борьба с асиками, борьба с фермами (видеокарт), борьба с пулами. Достигается это усложнениями алгоритма (вот теперь настала очередь сказать что это такое, если по-простому, алгоритм — это способ вычислений, используемый для работы протокола и нахождения консенсуса в сети). Существует очень много разных алгоритмов, начиная от SHA256, scrypt, groestl, x11, x13, x15 ,x17, x22i (это все целые пачки отдельных алгоритмов, объединенные в один «комбо»), заканчивая random x, или совсем уж экзотическими biblehash или burgerhash. Куча их, и перечислять прямо все нет смысла.

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

А как обстоят дела с децентрализацией у Free TON и похожих систем? Вышеуказанные проблемы здесь просто не существуют. Хотя опять таки можно сказать, что даже тысяча валидаторов это не совсем децентрализация. Но на это есть что возразить. А именно, практика многих лет показала, что в других системах, несмотря на казалось бы заложенную при создании возможность масштабной децентрализации, по факту получилась практически централизованная система с несколькими крупнейшими пулами майнеров. Это например, относится и к биткоину, и к эфиру. Можно сказать, что и в чисто POS блокчейнах ситуация похожа. Или рано или поздно приведет к этому. Так как пока ни одна такая система не смогла полностью преодолеть проблему «богатые становятся богаче». Проблема сама по себе не в том, что они становятся богаче (это не вопрос социальной справедливости). Дело в том, что это подтачивает децентрализацию, а значит и надежность, и как следствие безопасность системы.

Слабость приведенного аргумента в том, что он в стиле «А у вас в Америке негров линчуют!». Так как какими бы ни были недостатки других блокчейнов, это не снижает недостатки какого-то одного. Как же тогда показать, что Free TON децентрализованный, но не потому, что другие централизованы. Начнем с количества валидаторов и их отбора.

К примеру найдем оборотную сторону какого-нибудь достоинства Polkadot. Первое, что казалось бы и не недостаток вовсе, а песнь социальной справедливости — любой бомж (утрированно) может стать валидатором, практически не имея стейка. При этом быть анонимным. Казалось бы хорошо, а возможен ли случай, когда куча таких злонамеренных валидаторов, действующих по сговору (потому что это один или небольшая группа людей) привлекла каким-то образом горы стейков (ну например сверхнизкой комиссией) и в один из раундов как-то вот так была выбрана в валидаторы на эпоху, составив при этом 1/3 или более от выбранных. Что происходит с византийским консенсусом при этом уже было описано ранее. Так что это не идеальный путь. Отобранные валидаторы Free TON как-то более надежно выглядят. Кстати, в том же Polkadot в сообществе рекомендуют номинировать известных валидаторов, а не анонимных ноунеймов. Кроме того, есть психологический элемент, влияющий на безопасность сети — если валидатор должен обладать минимально необходимым размером стейка, он вкладывает капитал, а значит непосредственно заинтересован в стабильности и безопасности системы.

Теперь «богатые становятся богаче». Механизм распределения наград Free TON таков, что доход получается не только за выполненную работу (валидация блоков, подтверждение транзакций), но и ровно пропорционально стейку (чего нет в Polkadot – там производится только оплата за работу независимо от размера стейка). Однако это никак не скажется на децентрализации. Валидаторов от этого меньше не станет. (В отличие от чистого POS, где с маленьким весом монет можно никогда ничего не получить, так лучше выключить кошелек, а монеты продать киту.) Таким образом «богатение» богатых» не угрожает децентрализации. Каждый валидатор и номинатор получит свою долю. Кстати, это в некотором роде стимулирует потихоньку увеличивать свой стейк по мере возможности (а в POS нет, там или все, или лучше и не начинать).

Таким образом оба глобальных камня преткновения на пути к децентрализации в какой-то мере устранены в Free TON. Отобранные валидаторы должны иметь минимально необходимый стейк, но не превышающий определенного размера, что для безопасности сети важнее, чем большое множество неизвестных валидаторов. Богатые хотя и богатеют, но без угрозы для децентрализации, а значит и для устойчивости и безопасности сети, что и требуется.

Справедливости ради следует поднять на поверхность еще один спорный нюанс, который не имеет отношения к децентрализации, однако заслуживает того, чтоб его коснуться — это реальная отправка монет валидатору, пусть даже и в смарт-контракт (депул), вместо заморозки на адресе владельца. В чем тут опасность? В том, что смарт-контракты могут быть дырявыми, смарт-контракт могут подменить, ведь такое не исключено когда-либо. Также связанные с этой же особенностью (реальной отправкой монет) выборы валидаторов с обрезанием стейков и отсыланием монет обратно адресатам, что порождает лишние транзакции для блокчейна.

Но и на это есть что возразить. И контраргумент таков: отправка монет обратно не такая и обременительная для быстрой сети. А вероятность наступления подобного события (компрометация смарт-контракта) примерно такая же как то, что Polkadot захватят бомжи-валидаторы.

Впрочем, о вероятности и случайности речь пойдет в следующий раз.

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

2

Автор публикации

не в сети 1 день

viljy

8
Комментарии: 0Публикации: 6Регистрация: 11-11-2020

Популярное

Интервью с Александром Филатовым, СЕО TON Labs

Интервью с Александром Филатовым, СЕО TON Labs

12
Предложено партнерство c BlockchainGameStudio

Ну что, начнем новый рабочий день на хорошей ноте? В этот понедельник, 9 ноября поступило предложение о сотрудничестве от BlockchainGameStudio с весьма необычной идеей внедрения Free TON в проект, над…

15
Как стать судьей в голосованиях и получать за это TON’ы?

Хотите узнать, как получить статус жюри, оценивать работы в конкурсах и получать за это токены? Все есть в короткой и простой инструкции. Добро пожаловать под кат!

2
Интервью с WorldChess, новые партнеры Free TON! ?

Сегодня в гостях на подкасте Free TON Blog СЕО WorldChess расскажет о проекте и партнерстве Free TON, а также ответит на несколько вопросов сообщества. Слушайте прямо сейчас! Ведущая — Полина…

4
Интервью с Ron Millow — Chief Business Officer в TON Labs

Друзья, всем желаем всем хорошего начала недели и хотим поделиться недавним интервью с Ron Millow (Chief Business Officer в TON Labs)! В этом подкасте Ron рассказывает о перспективах Free TON,…

4
NFC Card by TON Labs скоро станет доступна для предзаказа

Пссст, хотите хороших новостей, чтобы скрасить этот пасмурный день? Совсем скоро будет доступна для предзаказа карта TON Labs NFC Card. Здесь мы расскажем подробнее о ее функциях и о том,…

3
Интервью с Егором Петуховским (Co-Founder биржи криптовалют Chatex).

Добрый вечер, наши слушатели! Спешим порадовать Вас с новым интервью с Егором Петуховским — совладельцем биржи криптовалют Chatex!??? Время прослушивания 24 минуты⏳ Ведущая — Полина Вишневская. Специально для blog.freeton.org. Приятного…

3
Инструкция по созданию кошелька в Surf

Первый шаг для начала работы с приложением — создание личного кошелька.  Здесь все предельно просто: Открываем приложение. Под каруселью с описанием приложения находим и нажимаем кнопку Create Wallet. Далее внимательно…

2
Cointelegraph предложил партнерство Free TON

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

1
Интервью с «папой» TON Surf(а) — Евгений Теслов💳💻

Доброго времени суток, всем слушателям подкаста✌🏽💎

2
Авторизация
*
*




Регистрация
*
*
*
Пароль не введен
Генерация пароля