Шрифт:
Интервал:
Закладка:
Вот как выглядит проблема: генералы, каждый из которых командует отдельной армией, должны координировать свои действия, чтобы осадить город. Генералы общаются с помощью надежных курьеров, но некоторые из генералов оказались предателями и стремятся к тому, чтобы сорвать план нападения (византийская ошибка, таким образом, представляет собой сбой, заключающийся в предоставлении недостоверной или противоречивой информации). Таким образом, нападение может сорваться, если генералы не придут к консенсусу.
ПРОБЛЕМА ВИЗАНТИЙСКИХ ГЕНЕРАЛОВ
Генералы византийской армии расположились лагерями вокруг осажденного вражеского города. Они могут общаться между собой только посредством передаваемых сообщений и должны выработать план совместного нападения, без чего поражение неизбежно.
Однако некоторые из этих генералов являются предателями, они пытаются сеять панику и замешательство среди остальных. Таким образом, проблема заключается в том, чтобы найти алгоритм, позволяющий честным генералам все же согласовать план баталии.
Таким образом, нужно найти алгоритм, чтобы убедиться, что лояльные генералы смогут все же договориться и согласовать план битвы. Следует координировать доверительные отношения с помощью сообщений, написанных и подписанных (без возможности подделки), которые генералы передают друг другу, делясь намерениями со всеми генералами. Таким образом, мы возвращаемся к консенсусу proof of work.
Технология блокчейна предоставляет первое и, возможно, единственное решение проблемы византийских генералов. Таким образом, вероятно, впервые в истории человечества удается создать и сохранить реестр, открытый для широкой публики и достаточно безопасный для каждого.
Анализ Юбера де Воплана[27]
«Как блокчейн способен установить доверие (теоретически без ошибок) между двумя членами сети, живущими в разных странах? Эта математическая проблема, которая также называется проблемой византийских генералов, заключается в том, чтобы убедиться, что совокупность информационных компонентов, работающих совместно, может справиться с отказами или злонамеренными действиями.
Система должна поддерживать свою надежность даже в том случае, если меньшая доля ее составляющих пошлет ложную или вредоносную информацию с целью обойти проверки на двойные затраты (мошенничество). Чтобы решить эту проблему, протокол использует криптографические системы, основанные на децентрализованной системе проверок: решение такой задачи требует использования большой вычислительной мощности компьютеров, предоставляемой майнерами.
Майнеры – это агенты, функция которых заключается в подпитке сети вычислительными мощностями для того, чтобы обеспечить обновление децентрализованной базы данных (в случае биткойна – списка транзакций). Для обновления базы данных майнеры должны подтвердить новые “блоки” посредством дешифровки данных (классическая работа криптографии). Чем больше майнеров, тем труднее присвоить решение.
Таким образом, протокол может стать практически неприкосновенным при условии, что конкуренция сильна в каждом узле сети – это означает, что ни одна группа майнеров не становится большинством».
Алгоритм византийских генералов[28], или отказоустойчивость
Устойчивость к византийским сбоям, или Byzantine Fault Tolerance (BFT), – это способность системы продолжать функционировать, в ряде случаев в сокращенном объеме, не выходя полностью из строя, когда часть ее компонентов работает неправильно.
Исторически эту систему отказоустойчивости разработали военные во время холодной войны для обеспечения непрерывной работы сложной замкнутой сети, в данном случае сети ARPA[29].
Говоря языком информатики, поскольку алгоритмы родились не одновременно с технологией блокчейна, а в 1970-х годах, проблема византийских генералов – это абстрактное представление класса программ, активизирующих ряд участников, таких как процессоры в компьютере, компьютеры в сети, роботы на заводе или узлы в цепочке (с блоками или без них).
Таким образом, в области распределенных вычислений, и в частности в блокчейнах, ответные действия на сбои будут обеспечены Paxos[30] и Tendermint[31] – семействами протоколов, позволяющими находить консенсус в сети с ненадежными узлами и, таким образом, способными справляться со сбоями.
Определение Tendermint
«Технология блокчейна – это просто переформулирование BFT в более современный контекст с упором на одноранговые сети и криптографическое определение подлинности. Название технологии происходит от способа группирования информации в блоки, каждый блок цепи содержит криптографический хеш предыдущего блока, образуя цепочку. На практике структура данных блоков цепочки оптимизирует концепцию BFT».
В теории все в мире могут быть майнерами, так было при запуске блокчейна. Но на практике при экспоненциальном увеличении числа транзакций майнинг – занятие для предприятий, в основном базирующихся в регионах, где стоимость электроэнергии ниже.
В блокчейне биткойн блок в настоящее время содержит 1000 транзакций с ограничением на размер в 1 мегабайт (средний размер блоков колеблется между 600 и 700 Кб), или около семи транзакций в секунду. Когда майнер собирается подтвердить блок транзакций, он получает 25 новых биткойнов, которые создаются каждые десять минут.
В блокчейне биткойн, существующем с января 2009 года, наградой за решение блока было от 50 биткойнов, но она автоматически уменьшалась в два раза каждые 210 тысяч блоков (около четырех лет): сегодня майнеры получают 12,5 биткойнов за блок с 2021 года 6,75 ВТС и т. д.
Сегодня несколько мегапулов (GHASH. IO, Ant-Pool, BW.COM, F2Pool…) имеют монополию на добычу биткойнов. Достаточно посмотреть на сайт blockchain. info в столбце «передано через», чтобы понять, какому пулу удался подвиг получения биткойнов за последние блоки (цифры указаны в процентах).