Книга: Блокчейн на практике
Назад: Lightning Network и внесетевые транзакции
Дальше: Сайдчейны

Альтернативные методы консенсуса

Процесс майнинга по методу доказательства работы (Proof-of-Work) критикуют за наличие очень многих недостатков. В первую очередь это огромное и постоянно растущее энергопотребление майнеров. Кроме того, классический майнинг не позволяет создавать блоки чаще, чем через определенный промежуток времени, равный примерно 10‒15 секундам, а комфортный интервал, не приводящий к постоянному конфликту блоков и перезапуску расчетов, начинается от минуты. PoW-цепочка для надежного сопротивления атаке 51 % и двойным тратам постоянно надстраивается только в один поток. Все это приводит к медленной по современным меркам работе и избыточному потреблению ресурсов. Достаточно напомнить, что майнеры, обеспечивающие только блокчейн Bitcoin, потребляют десятки тераватт-часов в год (столько расходует страна с населением в несколько миллионов человек без крупных промышленных комплексов), и из-за гонки мощностей их энергопотребление постоянно растет, невзирая на появление все более технологичных и экономных устройств. Нельзя также списывать со счетов майнинг Ethereum и других блокчейнов, потребляющих еще несколько тераватт-часов в год. При этом аппаратный майнинг требует и множества накладных расходов на техническое обеспечение и обслуживание оборудования, помещений и электросетей. По сути, уже сейчас многие промышленные майнеры балансируют на грани рентабельности, а прибыльный домашний майнинг становится искусством, доступным только знатокам этого дела.
Что касается Bitcoin как средства сохранения стоимости и уже общепринятого резервного актива для отрасли блокчейна, то для него высочайшая безопасность PoW-майнинга и отсутствие необходимости многократного масштабирования снижают остроту этой проблемы (за исключением роста энергопотребления). Однако для других блокчейнов аппаратный майнинг становится все более тяжелой ношей и повышает риск атаки 51 %, так как они не могут обеспечить таких мощностей, как Bitcoin и Ethereum. Это вынуждает разработчиков искать более эффективные механизмы достижения консенсуса. Наиболее популярным и универсальным считается метод PoS (Proof-of-Stake, или доказательство доли). Конкуренцию в секторе частных блокчейнов ему стремится составить BFT (Byzantine Fault Tolerance). Прочие методы не получили широкого распространения.
Попытки модификации PoW
Прежде чем приступить к рассмотрению консенсуса PoS, необходимо упомянуть о попытках улучшения метода Proof-of-Work, устраняющих хотя бы часть его недостатков. Наиболее известны две такие разработки.
Во-первых, это технология Instant Send, появившаяся в 2015 году в криптовалюте Dash. В ее блокчейне существует два вида узлов (кошельков): обычные и так называемые суперузлы (masternodes). Для работы суперузла необходимо иметь на балансе не менее 1000 Dash (можно назвать это отсылкой к PoS). Основная функция суперузлов – ускоренное подтверждение транзакций пользователей без ожидания их включения в блок. Если не учитывать риск того, что большинство суперузлов попадет под контроль злоумышленников, этот метод достаточно надежен. Его недостаток в том, что он не увеличивает реальную пропускную способность блокчейна, так как транзакции Instant Send все равно рано или поздно должны быть включены в блок, как и все прочие. Однако этот метод очень хорошо подходит для сглаживания пиковых нагрузок: в случае многократного роста объемов транзакций за короткий период, например после выхода важных новостей, транзакции будут подтверждаться суперузлами мгновенно, а в блоки они могут быть включены значительно позже, когда активность уже спадет и очередь транзакций рассосется. Но Instant Send не сможет справиться с постоянной перегрузкой блокчейна.
Второй способ улучшения Proof-of-Work, названный Bitcoin NG (next generation), был предложен также в 2015 году профессором Корнеллского университета Эмином Гюн Сирером. Он состоит в том, что майнеры каждые 10 минут борются за право генерировать блоки, а не собирают в блоки уже отправленные в сеть транзакции. Победитель этого «конкурса», собравший на основе лучшего хеша так называемый ключевой блок, не содержащий транзакций, на 10 минут получает право создавать неограниченное количество микроблоков, включающих сами транзакции. Количество и размер этих микроблоков фактически неограниченны и диктуются только текущей нагрузкой на сеть. Теоретически этот метод может улучшить объем обрабатываемых транзакций, но технически он сложнее, повышает уязвимость сети перед атакой 51 % и несет гораздо большее количество рисков безопасности по сравнению с обычным майнингом. Кроме того, он не устраняет «гонки мощностей» и постоянного роста энергопотребления майнеров. Поэтому Bitcoin NG не получил практического применения, единственный эксперимент с ним поставил российский проект Waves, в конце 2017 года запустивший его модификацию Waves NG. Однако блокчейн Waves работает на технологии Proof-of-Stake, поэтому Waves NG будет правильнее рассматривать как временное решение, на смену которому идут новые технологии масштабирования в современных PoS-блокчейнах.
Особенности Proof-of-Stake
Метод Proof-of-Stake был первой альтернативой Proof-of-Work и ненамного моложе его – он был создан анонимным разработчиком, известным под псевдонимом Sunny King, еще в 2010 году. Первичная реализация PoS была не очень надежной и не получила распространения. Современные разработки обеспечивают этому методу уровень безопасности, сравнимый с PoW, при значительно лучшей скорости и масштабируемости, однако не могут устранить некоторые архитектурные недостатки.
Консенсус PoS основан на экономичном майнинге, в котором вместо мощности хеширования учитывается количество монет в кошельке майнера. На основании псевдослучайного выбора права на создание блока получает один из работающих в сети майнеров. В среднем за длительный период времени (например, за год) доля созданных майнером блоков с ничтожной погрешностью равна его доле монет от их общего количества в сети. В остальном же стандартный PoS-майнинг идентичен PoW-майнингу.
Преимущества PoS:
● Низкое энергопотребление и близкие к нулю эксплуатационные расходы.
● Отсутствие «гонки мощностей» и другой непродуктивной конкуренции.
● Гибкость к изменению основных параметров, включая частоту блоков.
● Возможность многопоточной обработки транзакций.
Недостатки PoS:
● Экономическая модель вынуждает хранить, а не тратить монеты, выводя их из оборота. Это ведет к низкой активности пользователей и завышению цены токена.
● Распределение долей пользователей в блокчейне крайне статично, изменение соотношения возможно только путем передачи (продажи) монет, что в перспективе ведет к их концентрации у небольшой группы «олигархов».
● Отсутствие затрат на майнинг облегчает атаку 51 % и другие недобросовестные действия майнеров, которые приводят к необходимости введения в протокол административных наказаний.
Именно перечисленные выше проблемы замедляют массовое принятие PoS, поскольку их сложно решить на уровне протокола, а внешнее администрирование децентрализованной сети неэффективно.
Несмотря на то что первые реализации PoS были не очень надежны, начиная с 2014 года популярность этого метода росла из-за все более очевидно проявлявшихся проблем PoW. В 2015‒2016 годах сложились следующие направления развития PoS:
● Delegated Proof-of-Stake (DPoS), разработанный командой Дэна Ларимера. Применяется в платформах Bitshares, EOS, Tezos, Lisk и их аналогах. В 2014 году появился Tendermint – созданная для проекта Cosmos модификация DPoS.
● Casper – технология для масштабирования Ethereum, которая все еще находится в разработке. В 2017 году разделилась на две ветви: Casper FFG создается командой Виталика Бутерина для Ethereum) и Casper CBC (разрабатывается командой Влада Замфира в проекте RChain).
Во всех новых реализациях Proof-of-Stake майнеров принято называть валидаторами, в EOS их именуют создателями блоков, в Tezos – «пекарями». Однако по сути их функции аналогичны майнерам в PoW-сетях – формирование цепочки (блокчейна) путем подтверждения корректности транзакций и помещения их в блоки.
DPoS
Изначально протокол DPoS был задуман для устранения одного из недостатков первых реализаций PoS – каждый кошелек должен был майнить отдельно, только свои монеты. DPoS позволяет владельцам небольших сумм делегировать монеты более крупным держателям, создавая таким образом подобие майнинговых пулов, объединяющих множество майнеров.
В DPoS количество валидаторов ограничено, они выбираются голосованием всех владельцев монет или другим способом, предусмотренным протоколом конкретного блокчейна. Для обновления списка валидаторов голосование, как правило, происходит на периодической основе, и в нем могут принять участие все владельцы токенов блокчейна. Такая схема работает, например, в EOS и Lisk. В Tezos, где применяется собственный алгоритм LPoS, количество валидаторов теоретически неограниченно, необходимо только иметь на балансе 10 000 XTZ. Валидаторы аналогично майнерам работают на псевдоконкурентной основе, право создания блока время от времени получает каждый из них.
В протоколе Tendermint (который часто называют BFT-PoS) каждый блок подписывается несколькими валидаторами с помощью их закрытых ключей, при этом для подтверждения блока за него должны проголосовать не менее 2/3 всех имеющихся валидаторов. Предложить сформированный блок на утверждение может любой из них. Каждый блок предлагается в ходе так называемого раунда, и, если необходимое количество подписей валидаторов не набирается, начинается новый раунд. Это продолжается до тех пор, пока не будет набран кворум в 2/3 подписей, после чего блок присоединяется к основной цепи и открывается раунд для предложения следующего блока. Подписи валидаторов на блоке можно идентифицировать в публичном блокчейне с помощью открытых ключей.
На сегодняшний день консенсус Tendermint применяется только в проекте Cosmos, который проводит достаточно закрытую политику и почти не информирует сообщество о ходе разработок. Кроме того, на Tendermint предположительно основан проект братьев Дуровых Telegram Open Network, который, по неофициальной информации, планируют запустить в марте 2019 года. Точная дата пока неизвестна.
Casper
Теоретические разработки протокола Casper, также называемого Ethereum 2.0, появились летом 2016 года, когда план перехода на консенсус Proof-of-Stake был опубликован командой Виталика Бутерина в «Лиловой книге» (Mauve Paper). Реализация в коде и запуск Casper в основной сети Ethereum первоначально планировались на лето 2017 года, но с тех пор многократно переносились. В сентябре 2018 года разработчики Ethereum заявили, что полноценная реализация Casper появится только в конце 2019 года, а промежуточная, с комбинированным майнингом, не раньше середины года, хотя основные элементы протокола были протестированы к первой половине 2018 года.
Один из ключевых элементов Casper, который теоретически даст Ethereum почти неограниченные возможности масштабирования, – это шардинг, метод распределения базы данных по множеству серверов в виде блоков (шардов), уже достаточно давно применяемый в классических СУБД. В спецификации Casper шардингом называется многопоточная обработка транзакций, в которой единый блокчейн разбит на множество частей (шардов), причем с каждой из них будет работать отдельная группа валидаторов. По сути, блокчейн будет разбит на множество параллельных цепочек, формирующих и подтверждающих (финализирующих) собственные блоки. Надежная синхронизация этих цепочек и создание из них виртуально единого блокчейна с помощью перекрестных ссылок между шардами остается главным камнем преткновения в применении концепции шардинга в протоколе Casper. Эффективное и достаточно безопасное решение до сих пор не найдено, поэтому сроки релиза продолжают переноситься.
На данный момент готовится к выпуску промежуточная версия Casper FFG без шардинга, технически находящаяся посередине между DPoS и Tendermint, – с майнингом единой цепочки всеми валидаторами. Сначала Casper пройдет стадию гибридного майнинга, когда часть блоков будет создаваться PoW-майнерами, а остальные – валидаторами PoS. Для того чтобы стать валидатором, пользователю придется заморозить некоторую сумму ETH в смарт-контракте (точный размер депозита еще не определен).
Блоки в Casper FFG планируется создавать каждые четыре секунды, при этом PoW-майнерам достанется примерно один из четырех или пяти блоков. Через определенное количество блоков будет создаваться чек-пойнт, дальше которого блокчейн невозможно будет откатить – это один из методов противодействия картельному сговору валидаторов и другим распространенным атакам.
Еще одна версия Casper CBC разрабатывается Владом Замфиром (сейчас он работает в проекте RChain). Эта концепция действует на чистом PoS, причем в ней не предусмотрена общая окончательная финализация блоков – каждый валидатор самостоятельно устанавливает для себя порог неизменяемости. CBC – более гибкий протокол по сравнению с FFG, но более уязвим к разделению цепочки (форку). Запуск проекта Rchain на основе Casper CBC намечен на II квартал 2019 года.
BFT
Название метода BFT (byzantine fault tolerance) может ввести в заблуждение. «Задача византийских генералов» была сформулирована еще до появления Bitcoin и означает способ нахождения консенсуса между сторонами, которые не могут доверять друг другу. Эту модель использовал и Сатоси Накамото, она применяется и в PoW, и в PoS. Однако блокчейн-консорциум Hyperledger, а также другие блокчейны для корпоративного рынка, включая Ripple и Stellar, используют свой альтернативный метод консенсуса именно с таким названием. В этом разделе описан именно BFT как метод консенсуса для определенного вида блокчейнов, а не решение «задачи византийских генералов» в общем виде.
В Hyperledger Fabric используется консенсус под названием Practical Byzantine Fault Tolerance (PBFT), аналогично DPoS основанный на фиксированном количестве валидаторов, однако здесь они не выбираются, а назначаются администраторами блокчейна. Валидация транзакций происходит через смарт-контракт (chaincode). Транзакция считается верной, если количество валидаторов, подтвердивших ее, окажется втрое больше, чем отвергнувших.
В Ripple и Stellar применен Federated Byzantine Agreement (FBA): каждый из валидаторов ведет и подтверждает собственную цепочку транзакций, причем в Ripple валидаторы также назначаются Ripple Foundation, а в Stellar валидатором может стать любой узел. Консенсус формируется с помощью групп узлов, образующих кворум, достаточный для подтверждения транзакции. В большой сети кворум разбивается на части, или слайсы (quorum slices), образующие федерацию, причем один узел может входить в несколько слайсов. Транзакция подтверждается слайсом, которому доверяет отправивший ее узел, в спорных случаях кворум расширяется включением в него других слайсов. Узлы-нарушители могут быть блокированы и исключены из кворума.
Эта группа методов консенсуса отличается тем, что узел блокчейна может самостоятельно выбирать валидаторов для своих транзакций и присоединяться сразу к нескольким группам, также выступая в качестве валидатора.
Назад: Lightning Network и внесетевые транзакции
Дальше: Сайдчейны