Алгоритмы консенсуса. Атака 51%

Алгоритмы консенсуса. Атака 51%

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

При реализации PoW, все компьютеры в сети, которые обеспечивают консенсус (майнеры), работают над вычислением математической функции, называемой хэшем. Это простая задача для компьютера, но постоянно повторяющаяся и, требующая значительных вычислительных мощностей. Компьютеры конкурируют за поиск хэша с особыми свойствами. Компьютер, который вычислит его первым, получит подтверждение того, что он выполнил необходимую работу и сможет добавить новый блок транзакций в блокчейн. В качестве вознаграждения, он получит транш свежедобытых биткоинов (в настоящее время 12,5 BTC за блок, примерно каждые 10 минут), плюс все небольшие сборы за проведение транзакций, которые пользователи заплатили за отправку монет.

Поскольку «сложность» любой криптовалюты со временем возрастает, на ее добычу требуется все больше компьютерных мощностей. Чтобы увеличить совокупную мощность вычислений (и как следствие с большой вероятностью получить награду за добавление блока в блокчейн) отдельные компьютеры объединяются в пулы (англ. pool). Доход от работы пула делится пропорционально между всему участниками системы (в соответствии с предоставленными вычислительными мощностями). Сам пул имеет небольшой процент от майнинга участниками системы, который идет на поддержание серверов, ПО и прибыль держателя пула.

Единоличный майнинг на своем оборудовании называется соло майнинг (англ. solo mining). Он может быть эффективен лишь для вновь создаваемых криптовалют, которые не имеют большой «сложности».

Майнеры коллективно подтверждают действительность всего блокчейна, и транзакции не считаются полностью «подтвержденными», пока к ним не добавятся несколько новых блоков. Если злоумышленник попытается использовать монеты незаконным способом (двойная трата), то его транзакции будут проигнорированы остальной частью сети. Единственный способ для злоумышленника совершить такое мошенничество — это обладать огромным количеством вычислительной мощности, позволяющим майнить блок за блоком и раз за разом первым из всей сети получать подтверждение выполнения работы. Такой способ называется «атака 51%», потому что для его реализации необходимости иметь более половины общего сетевого хэша.

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

Подтверждение доли (англ. Proof of Stake). Алгоритм PoW, описанный выше, является дорогостоящим и энергоемким методом из—за требуемой вычислительной мощности. Вокруг создания специального оборудования, предназначенного исключительно для майнинга, выросла целая индустрия. Подтверждение доли (англ. Proof of Stake, сокращенно — PoS) — это альтернативный способ, который не требует специального оборудования и в настоящее время стал достаточно популярным.

В случае PoW, вероятность того, что участник добавит следующий блок транзакций в цепочку, определяется уровнем хэша. В случае PoS, эта вероятность определяется количеством монет участника.

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

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

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

В настоящее время, подтверждение доли — это хорошо отлаженный механизм достижения консенсуса, получивший продолжение в своем развитии. Определенные преимущества, по сравнению с классическим PoS получили две его разновидности, LPoS и DPoS.

Арендованное подтверждение доли (англ. Leased Proof of Stake, сокращенно — LpoS). В случае с классическим PoS, участники сети с небольшим балансом вряд ли смогут добавлять блоки в цепочку — так же, как небольшие майнеры с низким уровнем хэша вряд ли смогут создать блок в цепочке биткоина. Может пройти много лет, прежде чем небольшому участнику посчастливится создать блок. Это означает, что многие участники сети с небольшим балансом не имеют узлов и позволяют ограниченному числу более крупных участников управлять сетью. Поскольку безопасность сети повышается с увеличением числа участников, то важно стимулировать этих небольших участников принимать в ней участие.

Механизм LPoS позволяет участникам делать это, сдавая свои средства в аренду крупным узлам. Арендованные средства остаются под полным контролем их владельца и могут быть переведены или потрачены в любое время (после чего аренда заканчивается). Арендованные монеты увеличивают «вес» узла сети, повышая его шансы на добавление блока транзакций в блокчейн. Любыми полученными вознаграждениями узлы делятся с арендодателями. Такой подход применяет Waves.

Делегированное подтверждение доли (англ. Delegated Proof of Stake, сокращенно — DpoS) BitShares и ряд других платформ используют несколько иной подход. С помощью DPoS, владельцы монет используют свои средства для выбора списка узлов, которые будут иметь возможность создавать блоки новых транзакций и добавлять их в блокчейн. Это вовлекает в работу сети всех владельцев монет, хотя они могут и не получать прямого вознаграждения, как в случае LPoS. Владельцы монет могут также голосовать за изменения параметров сети, что повышает их влияние на сеть и долю в ней.

Подтверждение важности (англ. Proof of Importance, сокращенно — PoI) Еще одна разновидность механизма достижения консенсуса является PoI. В случае PoI, важно не только количество монет. Подобна система достижения консенсуса основана на идее, что вознаграждать следует за продуктивную сетевую активность, а не просто за владение монетами. Вероятность создания блока зависит от ряда факторов, в том числе доступных средств, репутации (определяется отдельной специальной системой) и количества входящих и исходящих транзакций с этого адреса. Это дает более целостную картину «полезного» члена сети. Алгоритм PoI в своей работе использует NEM

Комбинированные алгоритмы. Некоторые платформы используют комбинацию PoW и PoS — первый часто используется для распространения монет, а затем платформа переходит на второй способ для поддержания сети.

Еще один подход — это использование главных узлов (мастернод) в сочетании с майнингом PoW (используется в монете DASH). Они помогают обрабатывать транзакции и получать долю от вознаграждений за деятельность майнеров.

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