Блокчейн
В отличие от обычной базы данных, администрируемой централизованно, блокчейн представляет собой одноранговую децентрализованную сеть, с которой может взаимодействовать любой участник. Классический блокчейн построен на криптографии и представляет из себя последовательную цепочку блоков данных. Блоки записываются один за другим, и в зависимости от того, каким именно образом они записываются в цепочку, блокчейн обладает теми или иными определенными базовыми свойствами. Каждый следующий блок “запирает” предыдущий, поэтому данные в цепочке не могут быть изменены «задним числом», иначе пришлось бы переписывать весь блокчейн.
Большинство блокчейнов децентрализованы, то есть в сети присутствует какое-то количество независимых друг от друга компьютеров (узлов), которые и отвечают за запись в цепочку новых блоков, они формируют блокчейн и поддерживают его работоспособность.
Для того, чтобы система работала и, учитывая, что узлы блокчейна не зависят друг от друга, очевидно, что у каждого узла должны быть определённые правила, согласно которым он осуществляет валидацию транзакций и запись блоков в цепочку. При этом эти правила должны быть едины для всех узлов. Так и есть. Эти правила называются алгоритмом консенсуса блокчейна.
Алгоритм консенсуса блокчейна — это совокупность принципов и правил, благодаря которым все участвующие в сети узлы (ноды) автоматически приходят к консенсусу о текущем состоянии сети. Таким образом гарантируется безопасность сети, то есть достоверность всех хранящихся в ней данные.
Кто, кому и что доказывает?
Несложно заметить, что названия большинства алгоритмов начинаются со слов “доказательство чего-либо” (proof of). Как уже было отмечено выше, каждый следующий блок цепи “запирает” предыдущий, так обеспечивается безопасность данных в блокчейне. Каждый новый блок добывается одним из узлов сети и транслируется всем остальным узлам. Для того, чтобы этот блок был принят и записан в блокчейн, узел предоставляет остальным участникам определенные доказательства. Какие именно доказательства — зависит от алгоритма.
На сегодня существует определенное количество алгоритмов консенсуса и периодически появляются новые. Разные алгоритмы используются в зависимости от конкретных целей и задач, которые ставят перед собой разработчики при построении блокчейна. Основная причина, подталкивающая разработчиков к совершенствованию алгоритмов и разработке новых — это желание решить трилемму блокчейна. Давайте рассмотрим некоторые наиболее распространённые из алгоритмов консенсуса, использующиеся сегодня в блокчейнах.
Proof-of-Work (PoW)
Это самый известный и один из самых распространённых алгоритмов консенсуса. По сути с этого алгоритма и началось развитие отрасли. Proof-of-Work расшифровывается как «доказательство работы».
При формировании очередного блока узел (майнер) выполняет большое количество математических расчетов по поиску хеша криптографической функции, который в свою очередь предоставляет сети в качестве доказательства проделанной работы (вычислений).
PoW стал прорывом для своего времени и позволил запустить первые криптовалюты. Алгоритм PoW используется, например, в блокчейне Bitcoin. Он обеспечивает отличный уровень децентрализации (любой желающий может присоединиться к сети и стать майнером) и безопасности (Bitcoin практически невозможно взломать, объём вычислительных мощностей, понадобившихся бы для взлома, на практике сегодня просто невозможно собрать). Это основные преимущества алгоритма PoW, но есть и недостатки:
- высокие затраты электроэнергии. С ростом сети и особенно, если алгоритмом предусмотрена какая-нибудь инфляционная модель, сложность майнинга увеличивается, компьютеры потребляют больше энергии, соответственно растут и совокупные энергозатраты сети
- низкая пропускная способность. Необходимость выполнения большого количества вычислений требует существенных временных затрат, поэтому пропускная способность сети при реализации алгоритма PoW невысока
- высокие комиссии. С развитием сетей на PoW появился эффект централизации. Отдельные майнеры стали объединяться в пулы для повышения результативности майнинга, сложность майнинга стала повышаться, комиссии за транзакции стали избыточно высокими для массового использования
Недостатки базового аглоритма PoW стимулировали сообщество к поиску поиску новых решений, так стали появляться новые алгоритмы консенсуса.
Proof-of-Stake (PoS)
Второй по популярности алгоритм консенсуса, расшифровывается как «доказательство доли владения». В PoS нет майнинга, вместо вычислительных мощностей в качестве доказательств выступают определенные “замороженные” объемы криптовалют, принадлежащие соответствующим узлам. Эти узлы называются нодами или валидаторами, их объём замороженной криптовалюты — стейком, и чем больше у конкретного узла криптовалюты, тем выше вероятность подтвердить транзакцию, а значит, получить вознаграждение.
На алгоритме PoS работают многие известные блокчейны, например Etherium (версия 2.0, после недавнего перехода с Pow на Pos), Binance Smart Chain, Cardano, Tron и другие.
PoS лишен таких недостатков PoW, как высокое энергопотребление, необходимость специализированного/мощного оборудования. Комиссии в сетях PoS ниже, а пропускная способность гораздо выше. Однако у PoS есть и недостатки. Главный из них — угроза централизации. Есть риск консолидации большого объёма криптовалюты ограниченным количеством валидаторов, в этом случае они будут иметь возможность влиять на сеть.
Delegated Proof-of-Stake (DPoS)
Это разновидность вышеописанного алгоритма PoS, расшифровывается как «делегированное доказательство доли владения». Основное отличие алгоритма от классического Pos — это попытка избавить алгоритм от его основного недостатка, то есть от риска централизации. В DPoS право валидаторов одобрять транзакции делегируется им держателями монет, при этом держатели голосуют за того или иного валидатора. Любой участник сети, обладающий определенным объёмом криптовалюты, может стать валидатором, но также в любой момент голоса за этого валидатора могут быть отозваны в пользу другого. DPoS в свою очередь также не лишён недостатков. В частности, риск представляет низкая активность участников сети, тогда DPoS превращается в PoS, ну и сговор делегатов тоже не исключён.
Среди известных блокчейнов с алгоритмом DPoS такие как EOS, Tezos и другие.
Leased Proof-of-Stake (LPoS)
Этот алгоритм также является модификацией классического PoS, расшифровывается как «арендованное доказательство доли владения». Алгоритм отличается от PoS и DPoS тем, что доля криптовалюты может быть арендована. При LPoS валидаторами могут стать даже мелкие участники. Все участники сети могут передавать (делегировать) свою криптовалюту соответствующим валидаторам. При этом непосредственно переводов не происходит, криптовалюта остаётся в кошельках у владельцев, но замораживается. Естественно токеномикой блокчейнов предусматриваются механизмы мотивации для всех участников сети. LPoS не убирает риск централизации. При этом алгоритме крупные валидаторы могут арендовать достаточное количество криптовалюты для монополизации сети. Пример использования LPoS — блокчейн Waves.
Proof-of-Authority (PoA)
Это алгоритм консенсуса сети, который основывается на “авторитете” валидаторов. Расшифровывается как «доказательство полномочий». В качестве доказательств валидаторы используют собственную репутацию. Валидаторы выбираются участниками сети путём голосования, обычно их количество фиксировано. В отличии от PoS и DPoS валидаторы не получают награды за стейкинг, это основной недостаток PoA, у валидаторов отсутствуют стимулы и мотивации для участия, поэтому чаще всего алгоритм PoA используется в частных блокчейнах, где вопрос децентрализации не сильно актуален.
Proof-of-Importance (PoI)
Этот алгоритм основывается на “значимости” валидатора («доказательство значимости»). При подтверждении транзакций алгоритм принимает во внимание не только объём “замороженных” средств в криптовалюте, но и активность валидатора. Оцениваются такие параметры, как количество проведённых транзакций, время в сети (доступность онлайн). Чем больше доля валидатора и его активность, тем значимее он для сети. Один из примеров блокчейнов, которые используют PoI — NEM.
Proof-of-Space (PoSpace)
Это алгоритм, основанный на дисковом пространстве, он так и расшифровывается: “доказательство пространства”. В качестве основного ресурса для доказательства участники используют свободное пространство своих жёстких дисков, которое резервируется под специальные функции блокчейна, например заполнение хеш-кодами для последующей валидации блоков. На этом алгоритме работает Burstcoin.
Proof-of-Space-Time (PoST)
Это разновидность алгоритма Proof-of-Space, которая учитывает ещё и время. Основная мысль создателей в том, что вклад участников в сеть важно оценивать не только по делегированному дисковому пространству, но также и по затратам времени, на протяжении которого это дисковое пространство было делегировано. На этом алгоритме работает Chia.
Proof-of-Elapsed-Time (PoET)
Это алгоритм консенсуса от компании Intel, расшифровывается как «доказательство затраченного времени». Алгоритм основан на использовании набора инструкций Software Guard Extension центрального процессора Intel. Принцип работы похож на лотерею, при “майнинге” генерируется случайное время ожидания для блока, нода “засыпает” ровно на это время, первая проснувшаяся нода получает право валидации блока. SGX следит за тем, чтобы время выбиралось действительно случайным образом.
Данный алгоритм не распространён, он используется в частных блокчейнах и требует обязательного наличия процессоров Intel с набором инструкций SGX.
Proof-of-Burn (PoB)
Этот алгоритм подразумевает “сжигание” криптовалюты, он так и расшифровывается: “доказательство сжигания”. При PoB майнер отправляет криптовалюту на специальный “тупиковый” кошелёк (к этому кошельку, например, отсутствуют приватные ключи, то есть нет доступа). Таким образом определённый объём криптовалюты выводится из обращения, то есть “сжигается”. После доказательства сжигания для майнера увеличивается вероятность получить право создания следующего блока и, соответственно, получить за это награду.
Для майнинга при PoB не требуется больших вычислительных мощностей, а сжигание криптовалюты стимулирует рост цены этой криптовалюты, потому что как правило эмиссия ограничена. Этот алгоритм очень специфичен, подходит далеко не каждому блокчейну. Он используется, например, в XCP.
Резюме
Потенциал технологии блокчейн не оставляет сомнений в том, что её внедрение и совершенствование будут усиливаться. Для публичных блокчейнов жизненно необходимо сообщество участников, которые обеспечивают работоспособность сети. Алгоритм консенсуса обеспечивает логику функционирования блокчейна и через токеномику стимулирует участников. Существуют различные алгоритмы, каждый из них обладает определенными преимуществами и недостатками. В этой статье рассмотрены одни из самых популярных алгоритмов, кроме указанных выше существуют еще PoWt, PoH, DAG, DBFT, SBFT, PBFT и другие. Разработчики в погоне за решением трилеммы блокчейна совершенствуют алгоритмы консенсуса, разрабатывают новые, поэтому уверен, самое интересное в развитии технологии блокчейн у нас ещё впереди.