Таким образом, протокол может стать практически неприкосновенным при условии, что конкуренция сильна в каждом узле сети – это означает, что ни одна группа майнеров не становится большинством».
Алгоритм византийских генералов[28], или отказоустойчивость
Устойчивость к византийским сбоям, или Byzantine Fault Tolerance (BFT), – это способность системы продолжать функционировать, в ряде случаев в сокращенном объеме, не выходя полностью из строя, когда часть ее компонентов работает неправильно.
Исторически эту систему отказоустойчивости разработали военные во время холодной войны для обеспечения непрерывной работы сложной замкнутой сети, в данном случае сети ARPA[29].
Говоря языком информатики, поскольку алгоритмы родились не одновременно с технологией блокчейна, а в 1970-х годах, проблема византийских генералов – это абстрактное представление класса программ, активизирующих ряд участников, таких как процессоры в компьютере, компьютеры в сети, роботы на заводе или узлы в цепочке (с блоками или без них).
Таким образом, в области распределенных вычислений, и в частности в блокчейнах, ответные действия на сбои будут обеспечены Paxos[30] и Tendermint[31] – семействами протоколов, позволяющими находить консенсус в сети с ненадежными узлами и, таким образом, способными справляться со сбоями.
Определение Tendermint
«Технология блокчейна – это просто переформулирование BFT в более современный контекст с упором на одноранговые сети и криптографическое определение подлинности. Название технологии происходит от способа группирования информации в блоки, каждый блок цепи содержит криптографический хеш предыдущего блока, образуя цепочку. На практике структура данных блоков цепочки оптимизирует концепцию BFT».
Биткойн: майнеры и вознаграждения
В теории все в мире могут быть майнерами, так было при запуске блокчейна. Но на практике при экспоненциальном увеличении числа транзакций майнинг – занятие для предприятий, в основном базирующихся в регионах, где стоимость электроэнергии ниже.
В блокчейне биткойн блок в настоящее время содержит 1000 транзакций с ограничением на размер в 1 мегабайт (средний размер блоков колеблется между 600 и 700 Кб), или около семи транзакций в секунду. Когда майнер собирается подтвердить блок транзакций, он получает 25 новых биткойнов, которые создаются каждые десять минут.