что такое алгоритм консенсуса в блокчейне
Механизмы достижения консенсуса в блокчейне
Криптовалюты используют распределенные регистры или блокчейны для записи информации — в первую очередь, о балансе каждого адреса на платформах передачи ценности (например, Биткоина и большинства криптовалют), хотя такой подход может применяться к любой информации.
Ключевое условие — сеть должна коллективно согласовывать содержимое регистра: он распределен между всеми участниками цепочки вместо того, чтобы передать централизованное ведение счетов одному субъекту — например, банку.
Для этого сети требуется поддерживать консенсус вокруг информации, записанной в блокчейне. Способ достижения этого консенсуса влияет на безопасность и экономические параметры протокола. Вот пять примеров его достижения.
1. Подтверждение выполнения работы (Proof of Work, PoW)
Подтверждение выполнения работы — это первый распределенный механизм достижения консенсуса, созданный создателем Биткоина, известным под псевдонимом Сатоши Накамото. Его примеру последовали многие криптовалюты, в том числе и Ethereum.
В случае в PoW, все компьютеры в сети, которым поручено поддерживать безопасность блокчейна (в случае Биткоина они называются майнеры), работают над вычислением математической функции, называемой хэшем. Это довольно простая задача (для компьютера), но постоянно повторяющаяся и, следовательно, дорогая в плане вычислений. Компьютеры конкурируют за поиск хэша с особыми свойствами. Компьютер, который вычислит его первым, получит подтверждение того, что он выполнил необходимую работу и сможет добавить новый блок транзакций в блокчейн. В качестве вознаграждения, он получит транш свежедобытых биткоинов (в настоящее время 12,5 BTC за блок или примерно каждые 10 минут), плюс все небольшие сборы за проведение транзакций, которые пользователи заплатили за отправку монет.
PoW работает по следующему принципу: добавить транш новых транзакций в блокчейн — это дорого, а вот проверить, действительны ли транзакции — это очень легко, благодаря прозрачности регистра. Майнеры коллективно подтверждают действительность всего блокчейна, и транзакции не считаются полностью «подтвержденными», пока к ним не добавятся несколько новых блоков. Если злоумышленник попытается использовать монеты незаконным способом, то его транзакции будут проигнорированы остальной частью сети. Единственный способ для злоумышленника совершить такое мошенничество — это обладать огромным количеством вычислительной мощности, позволяющим майнить блок за блоком и раз за разом первым из всей сети получать подтверждение выполнения работы. Такой способ называется «атака 51%», потому что для его реализации необходимости иметь более половины общего сетевого хэша. Реальность такова, что ни один майнер не может иметь такую долю хэша. Другими словами, попытка такого мошенничества 1) чрезвычайно дорогая (поскольку она требует затрат на оборудование и электроэнергию, а также несет в себе альтернативные издержки, вызванные отсутствием работы в действительной версии блокчейна и получением за это вознаграждения) и 2) крайне маловероятна. Следовательно, майнерам лучше (то есть более выгодно) оставаться честными.
2. Подтверждение доли (Proof of Stake)
PoW является дорогостоящим и энергоемким методом из-за требуемой вычислительной мощности. Вокруг создания специального оборудования, предназначенного исключительно для майнинга, выросла целая индустрия. Подтверждение доли (PoS) — это альтернативный способ, который не требует специального оборудования и в последние годы стал очень популярным. В случае PoW, вероятность того, что участник добавит следующий блок транзакций в цепочку, определяется уровнем хэша. В случае PoS, эта вероятность определяется количеством монет участника. Другими словами, каждый сетевой узел связан с определенным адресом, и чем больше монет принадлежит этому адресу, тем больше вероятность того, что они намайнят (или «надолят» в этом случае) следующий блок. Это похоже на лотерею: победитель определяется случайно, но чем больше монет (лотерейных билетов) у него есть, тем больше у него шансов. Злоумышленнику, который хочет совершить мошенническую транзакцию, потребуется владеть более 50% монет для надежной обработки нужных транзакций; покупка такого количества монет спровоцирует рост цен на них и сделает такую попытку непомерно дорогой.
Система PoS была впервые разработана Nxt. Поскольку она не столь энергоемкая, как PoW, то затраты на получение монет не требуют такого вознаграждения, как в случае Биткоина. Таким образом, системы PoS хорошо подходят для платформ с фиксированным количеством монет и отсутствием инфляции от создаваемых блоков. Вознаграждение участников состоит только из комиссии за проведение транзакций. Это подход применяется большинством платформ, финансируемым за счет краудсейла, где токены распределяются на основе инвестиций, и увеличение количества монет не понравится инвесторам, так как это «разбавит» их долю.
В настоящее время, подтверждение доли — это хорошо отлаженный механизм достижения консенсуса, но он не часто используется в своем первоначальном виде. Определенные преимущества предлагают две его разновидности, LPoS и DPoS.
3. Арендованное подтверждение доли (Leased Proof of Stake, LPoS)
В случае с классическим PoS, участники сети с небольшим балансом вряд ли смогут добавлять блоки в цепочку — так же, как небольшие майнеры с низким уровнем хэша вряд ли смогут создать блок в цепочке Биткоина. Может пройти много лет, прежде чем небольшому участнику посчастливится создать блок. Это означает, что многие участники сети с небольшим балансом не имеют узлов и позволяют ограниченному числу более крупных участников управлять сетью. Поскольку безопасность сети повышается с увеличением числа участников, то важно стимулировать этих небольших участников принимать в ней участие.
Механизм LPoS позволяет участникам делать это, сдавая свои средства в аренду крупным узлам. Арендованные средства остаются под полным контролем их владельца и могут быть переведены или потрачены в любое время (после чего аренда заканчивается). Арендованные монеты увеличивают «вес» узла сети, повышая его шансы на добавление блока транзакций в блокчейн. Любыми полученными вознаграждениями узлы делятся с арендодателями. Такой подход применяет Waves.
4. Делегированное подтверждение доли (Delegated Proof of Stake, DPoS)
BitShares и ряд других платформ используют несколько иной подход. С помощью DPoS, владельцы монет используют свои средства для выбора списка узлов, которые будут иметь возможность создавать блоки новых транзакций и добавлять их в блокчейн. Это вовлекает в работу сети всех владельцев монет, хотя они могут и не получать прямого вознаграждения, как в случае LPoS. Владельцы монет могут также голосовать за изменения параметров сети, что повышает их влияние на сеть и долю в ней.
5. Подтверждение важности (Proof of Importance, PoI)
Последней разновидностью этих механизмов достижения консенсуса является PoI. NEM стала первой криптовалютной платформой реализации этого способа. В случае PoI, важно не только количество монет. Система достижения консенсуса NEM основана на идее, что вознаграждать следует за продуктивную сетевую активность, а не просто за владение монетами. Вероятность создания блока зависит от ряда факторов, в том числе доступных средств, репутации (определяется отдельной специальной системой) и количества входящих и исходящих транзакций с этого адреса. Это дает более целостную картину «полезного» члена сети.
Существует множество разновидностей этих основных подходов, и некоторые платформы используют комбинацию PoW и PoS — первый часто используется для распространения монет, а затем платформа переходит на второй способ для поддержания сети. Еще один подход — это использование главных узлов в сочетании с майнингом PoW, как в случае с DASH и Crown. Они помогают обрабатывать транзакции и получать долю от вознаграждений за деятельность майнеров.
Во всех случаях, цель подхода к достижению консенсуса заключается в обеспечении безопасности сети, преимущественно с помощью экономических средств: атака на сеть должна быть слишком дорогой, а ее защита — более выгодной.
«Алгоритмы консенсуса»: Подтверждение доли и доказательство работы
Блокчейн — это распределенная система, в которой могут находиться тысячи участников. В отличие от обычных распределенных баз данных, в блокчейне почти всегда отсутствует центральный администратор, который конфигурирует узлы сети, поэтому получается, что архитектура блокчейна не просто распределена, но децентрализована. В связи с этим для блокчейна является актуальной задача распределенного консенсуса:
«Как узлам сети достичь одинаковой точки зрения на журнал транзакций блокчейна в распределенной сети при условии, что произвольные узлы могут «падать» или зависать, руководствуясь лишь общими правилами обработки сообщений в сети?»
О том, как достигается консенсус в блокчейнах, мы поговорим в нашем сегодняшнем материале.
Структура и узлы блокчейн-сетей
В любой блокчейн-сети передаются два основных типа сообщений — транзакции и блоки (которые, в свою очередь, являются списками транзакций). Транзакции формируются участниками системы и их алгоритм консенсуса не касается: для того чтобы инициировать, скажем, отправку биткойнов, никакого соглашения не надо, достаточно знать правильный ключ. Блоки — совсем другое дело. Они являются основным продуктом алгоритма консенсуса и определяют, в каком порядке транзакции будут включены в журнал транзакций.
Зачем нужны эти сложности? Оказывается, без согласования между узлами сети возможна повторная трата средств (double spending). Предположим, у Евы есть 1 биткойн. Она может сформировать две транзакции, согласно которым этот биткойн переходит Алисе и Бобу. Если Алиса и Боб никак не согласовывают свою историю транзакций, они оба примут платеж Евы, поскольку транзакции будут подписаны электронной подписью Евы, а до выполнения транзакции у Евы действительно был этот биткойн! Поэтому участникам сети нужно согласовывать журналы транзакций. Тогда успешно выполнится только одна из транзакций Евы, а вторая станет некорректной — средства Евы будут уже потрачены.
Можно ли обойтись без блоков, включая транзакции в журнал по отдельности? Теоретически да, но на практике блоки экономят объем трафика и вычислительные ресурсы узлов сети. Кроме того, у них есть и другие преимущества в контексте конкретных алгоритмов консенсуса — оказывается, что со слишком частыми блоками работа блокчейна становится нестабильной.
Блоки создаются особой категорией узлов сети блокчейна — так называемыми узлами консенсуса. В случае биткойна и других криптовалют эти узлы называют майнерами, поскольку они вознаграждаются за свою работу (майнинг) генерацией новых порций криптовалюты. Майнеры активно участвуют в формировании блокчейна, постоянно группируя входящие транзакции в блоки и распространяя их по сети.
Второй тип — узлы аудита. Они не участвуют в процессе консенсуса, однако имеют у себя полную копию блокчейна. «Аудиторы» регулярно проверяют работу майнеров и занимаются распределением нагрузки по сети, выполняя функцию своеобразной сети доставки контента (CDN) для данных блокчейна.
Третий тип узлов — это легкие клиенты. Легкими они называются потому, что не имеют полной версии блокчейна и содержат лишь те данные, которые важны для узла. По этой причине они являются хорошим вариантом для организации криптовалютного кошелька — всей картины сети такой клиент не даст, но позволит эффективно отслеживать баланс пользователя. Легкие клиенты требуют меньше вычислительных ресурсов и объемов памяти, поэтому могут работать на мобильных платформах.
/ Роли узлов в блокчейн-сети. Узлы консенсуса и конечные клиенты могут быть «отгорожены» друг от друга
Биткойн-блокчейн является одним из крупнейших блокчейнов. По данным сайта bitnodes, 8 апреля 2017 года в биткойн-сети наблюдалось 7025 узлов с полной копией блокчейна. Большая часть из них — это узлы аудита; продуктивных майнеров в сети не так уж много — несколько десятков. Отметим, что количество узлов в несколько раз меньше числа участников сети биткойн (которых более 13 миллионов). Так получается потому, что пользователи не обязаны хранить локальную копию блокчейна для отправки транзакций — достаточно хранить закрытые ключи, при помощи которых транзакции подписываются.
Консенсус
Задача распределенного консенсуса не специфична для блокчейнов и имеет хорошо проверенные решения для многих других распределенных систем (например, баз данных NoSQL). Даже задача консенсуса, в котором узлы могут вести себя «по-плохому», — задача византийского консенсуса — впервые была сформулирована в 80-х годах прошлого века, а методы её решения появились в конце 90-х.
Но биткойн и другие блокчейны от предыдущих наработок отличаются условиями работы сети. В обычных алгоритмах византийского консенсуса у узлов сети есть «личности», выражаемые через цифровые подписи или сходные криптопримитивы, а сам список узлов известен заранее или меняется редко, но предсказуемо. В биткойн-блокчейне все наоборот.
Участники сети не только заранее неизвестны, но и могут свободно подключаться или отключаться от сети. При этом блокчейн, являясь децентрализованной системой, имеет определенные свойства: устойчивость к цензуре (никто не может запретить майнить криптовалюту) и объективность (для определения текущей версии журнала транзакций не нужно доверие неким авторитетным источникам — корень доверия находится в самом блокчейне).
Из-за этого обычные алгоритмы византийского консенсуса для блокчейна не подходят. Поэтому было предложено множество различных алгоритмов, среди которых выделяются две основные категории: алгоритмы на основе доказательства работы (proof-of-work) и алгоритмы на основе подтверждения доли (proof-of-stake).
Доказательство работы — PoW
Доказательство работы было «изобретено» задолго до биткойна еще в начале 90-х и применялось в ином контексте: для защиты от спама. Например, один вариант доказательства работы (Hashcash) был предложен английским криптографом Адамом Бэком (Adam Back), который сейчас является генеральным директором одного из крупнейших блокчейн-стартапов.
В случае доказательства работы хеш сообщения, объединенного со специальным полем (nonce), должен быть меньше определенного значения (или начинаться с определенного числа нулевых битов). Nonce не несет смысла для самого сообщения — это поле перебирается автором доказательства, пока не будет найдено подходящее значение. Название «доказательство работы» отражает тот факт, что для нахождения nonce надо совершить вычислительную работу, ожидаемое количество которой измеримо. Например, если нужно, чтобы первые 16 бит хеша равнялись нулю, то в среднем нужно перебрать 65536 значений nonce.
Проиллюстрировать это можно с помощью программы на Python:
Уточнение насчет ожидаемого количества работы является важным. Теоретически, при сильном везении, подходящий nonce можно найти очень быстро. Если программу выше запустить с сообщением «Bl0Ckchain», то получится, что значение nonce равняется 6571, а это в десять раз меньше ожидаемого. Поэтому, глядя на доказательство работы, можно лишь оценить затраченные на него ресурсы, однако для высокой сложности доказательства (то есть ожидаемого количества выполненной работы) эта оценка будет достаточно точна.
Доказательство работы похоже на цифровые подписи — оно обеспечивает целостность сообщения, так как вероятность того, что один и тот же nonce подойдет для различных сообщений, очень мала. Доказательства также легко проверяются — достаточно провести лишь одну операцию хеширования. В отличие от подписей, создание доказательства работы не требует знания секретов, но «потребляет» больше вычислительных ресурсов. Например, в приведенной выше программе на создание доказательства работы для сообщения «blockchain» сложностью 32 бита требуется несколько часов вычислений на обычном персональном компьютере, однако проверяется это доказательство практически мгновенно.
PoW и консенсус
Использование PoW для консенсуса — пожалуй, самая большая инновация оригинальной статьи о биткойне. Соответствующий алгоритм консенсуса получил вполне академическое название — консенсус Накамото. Сатоши (автор или авторы статьи) предложил «подписывать» каждый создаваемый блок доказательством работы, сложность которого зависит от общей вычислительной сложности сети биткойна. Такой подход дает несколько преимуществ:
Консенсус Накамото обеспечивает два ключевых требования к блокчейну, которые мы выделили ранее. Из-за того, что доказательство работы не привязывается к личностям майнеров (в отличие от цифровых подписей/сертификатов), обеспечивается устойчивость к цензуре. А за счет того, что доказательства работы быстро проверяются и не требуют для проверки ничего, кроме блокчейна, достигается объективность протокола.
Консенсус Накамото устойчив к атакам на сеть блокчейна, причем его безопасность достаточно хорошо исследована теоретически (в отличие от более новых предложений для блокчейнов). В оригинальной статье отмечено, что сеть биткойна продолжит адекватно функционировать, даже если половина майнеров начнет злонамеренную активность. Если же среди майнеров появится злонамеренное большинство (так называемая атака 51%), они смогут игнорировать блоки от всех остальных майнеров, чтобы забрать себе всю награду в сети, или, например, мошенничать, производя повторную трату средств за счет намеренных форков блокчейна. Однако при этом отметим, даже если все майнеры в сети сговорятся, они не смогут обойти базовые механизмы безопасности биткойна — например, не смогут похитить биткойны пользователей.
Биткойн — самая мощная сеть, использующая доказательство работы. За одну секунду майнеры биткойна вычисляют более трех квинтиллионов (3∙1018) хешей. 32-битное доказательство (которое вычисляется на компьютере несколько часов) — это минимальная сложность в биткойне, которую можно было наблюдать лишь в самом начале работы сети. Это связано с тем, что сложность доказательства автоматически регулируется так, чтобы биткойн-сеть находила в среднем один блок в 10 минут. При увеличении хешрейта сети растет и сложность — сейчас сложность одного доказательства составляет около 70 бит. Соответственно, hex-запись хеша блока должна начинаться с 17 нулей.
/ Мощность биткойн-сети растет по экспоненте. Это обеспечивает высокую стоимость атаки на сеть
Альтернативы для PoW
У консенсуса Накамото есть свойство, которое многими воспринимается как большой недостаток, — для обеспечения безопасности нужно «работать», то есть производить доказательства работы. Вычисления, которые выполняются в рамках PoW, не служат никакой полезной цели, и это архитектурная особенность. Оказывается, очень сложно придумать доказательство работы, которое бы выполняло общественно полезную роль. Поэтому может показаться, что ресурсы (прежде всего, электричество) на майнинг тратятся впустую (если не считать, что они тратятся на обеспечение безопасности).
Помимо этого, майнинг все же подвержен проблеме централизации. Более 70% хешрейта биткойна на данный момент находится в одной стране — Китае. Многие криптовалюты пытаются децентрализовать майнинг за счет использования доказательств работы, которые экономически невыгодно вычислять на специализированном оборудовании, однако с таким подходом возникает другая проблема — если сделать выгодным майнинг биткойнов с помощью домашних компьютеров, то арендовать оборудование для атаки (или создать для нее ботнет) станет существенно дешевле и проще.
Пытаясь решить эти проблемы, сообщество предлагает множество алгоритмов консенсуса, которые не требуют «работы». Самая популярная категория таких алгоритмов основана на доказательствах доли (proof-of-stake, PoS). Доказательство доли похоже на доказательство работы, только вместо совершения определенной работы автор показывает, что у него есть доля в системе (например, в виде ненулевого баланса криптовалюты). Получается, что для майнинга с PoS достаточно «запастись» криптовалютой, после чего просто получать с нее «проценты».
Однако у доказательства доли есть неприятный недостаток в сравнении с PoW: поскольку доказательства доли базируются не на реальном мире (вычислительная мощность), а на чём-то внутри самого блокчейна (баланс криптовалюты), задача построения надежного PoS-алгоритма оказывается нетривиальной.
В простейших вариантах PoS-консенсуса возникают проблемы с базовыми свойствами. Оказывается, что в них самым экономически выгодным поведением является размножение форков блокчейна для повторной траты средств. Были созданы более сложные варианты доказательства доли, без явных дыр в безопасности; такие алгоритмы возвращают в консенсус фактор экономической ответственности за счет обязательного залога, который конфискуется в случае некорректного поведения участника.
У криптографического сообщества все еще остаются сомнения насчет возможности надежных алгоритмов с доказательством доли. Возможно, планируемый переход на доказательство доли блокчейна Ethereum — второго по объему рынка публичного блокчейна — расставит все точки над i.
Кроме доказательства доли, блокчейн-энтузиасты экспериментируют и с другими алгоритмами «proof-of-*». Например, Брэм Коэн (Bram Cohen), создатель протокола BitTorrent, недавно предложил использовать для консенсуса в блокчейнах доказательство локального хранения файлов (proof-of-space), то есть заменить вычислительную мощность в PoW на дисковое пространство. Однако по степени зрелости подобные инициативы еще сильнее отстают от алгоритмов доказательства работы, чем proof-of-stake.
Что такое Алгоритм Консенсуса в Blockchain?
Алгоритм консенсуса
Прежде чем мы погрузимся в разные типы алгоритмов консенсуса, важно понять различия между алгоритмом и протоколом.
Алгоритм консенсуса vs Протокол
Термины алгоритм и протокол часто используются взаимозаменяемо, но это не одно и то же. Проще говоря, мы можем определить протокол как первичные правила блокчейна, а алгоритм как механизм, с помощью которого они будут выполняться.
Кроме использования в финансовых системах, технология blockchain может применяться к широкому кругу предприятий, и может быть пригодна для различных случаев использования. Но независимо от контекста, блокчейн сеть будет построена поверх протокола, который определит, как должна работать система, поэтому все различные части системы и все участники сети должны будут следовать базовым правилам протокола.
Чтобы дополнительно это проиллюстрировать, рассмотрим, что Bitcoin протокол определяет: как должны взаимодействовать узлы, как данные должны передаваться между ними, и каковы требования к успешной проверке (валидации) блока. С другой стороны, алгоритм консенсуса отвечает за проверку балансов и подписей, подтверждение транзакций и фактическое выполнение проверки блоков, и все это зависит от консенсуса сети.
Другие типы алгоритмов консенсуса
Существует несколько типов алгоритмов консенсуса. Наиболее распространенными являются PoW и PoS. У каждого есть свои преимущества и недостатки, при попытке сбалансирования безопасности, с функциональностью и масштабируемостью.
Proof of Work (PoW)
Майнинг PoW включает в себя многочисленные попытки хеширования, поэтому чем больше вычислительная мощность, тем больше попыток в секунду. Другими словами, майнер с высоким хешрейтом имеет больше шансов найти правильное решение для следующего блока (aka. хеш блока). Алгоритм консенсуса PoW гарантирует, что майнеры смогут только подтверждать новый блок транзакций и добавлять его в блокчейн, если распределенные узлы сети достигают консенсуса и соглашаются с тем, что хеш блока, предоставленный майнером, является подтвержденным proof of work (валидированным доказательством работы).
Proof of Stake (PoS)
В 2011 году в качестве альтернативы PoW был разработан алгоритм консенсуса PoS. Хотя PoS и PoW имеют похожие цели, но представляют некоторые фундаментальные различия и особенности. Особенно во время валидации новых блоков.
Блокчейн Ethereum в настоящее время основан на алгоритме PoW, но в конечном итоге протокол Casper будет выпущен для переключения сети с PoW на PoS в попытке увеличить масштабируемость сети.
Почему алгоритмы консенсуса имеют значения для криптовалют?
Как упоминалось ранее, алгоритмы консенсуса имеют решающее значение для поддержания целостности и безопасности криптовалютной сети. Они обеспечивают состояние распределенных узлов, достигающих консенсуса, относительно того, какая версия блокчейна является действительной. Согласие на текущее состояние блокчейна, имеет важное значение для правильной работы цифровой экономической системы.
Как работают алгоритмы консенсуса криптовалют и в чем их различия?
Алгоритм консенсуса — это правила, по которым происходит генерация блоков и подтверждение транзакций в блокчейне.
В зависимости от используемого алгоритма в одних блокчейнах работает механизм майнинга для добычи новых монет, а в других — стейкинг, одни сети работают быстрее, но подвержены централизации, другие — медленнее, но их сложно взять под контроль недобросовестным участникам сети. Поэтому важно разбираться в отличиях между PoW, PoS, PoA и другими алгоритмами консенсуса, чтобы правильно оценить перспективы блокчейн-проекта.
Представляем подробный гайд по наиболее востребованным консенсусным алгоритмам, используемых в передовых блокчейнах.
Навигация по материалу:
Что такое алгоритм консенсуса в блокчейне?
Начнем с азов. Блокчейн — это децентрализованная сеть из блоков, содержащих различные данные. В криптовалютах эти блоки хранят информацию обо всех операциях внутри сети. Все блоки записываются в сеть последовательно один за другим и связаны в цепочку. При этом каждый блок содержит информацию обо всех предыдущих блоках. Из такой сети нельзя ничего удалить, отредактировать или изменить задним числом — ведь пришлось бы переписывать всю цепочку с самого начала.
В блокчейне проверкой операций и подтверждением того, что они записаны верно, занимается специальный встроенный механизм под названием алгоритм консенсуса.
Алгоритм консенсуса блокчейна — это способ, благодаря которому децентрализованные ноды сети достигают согласия (или консенсуса) о текущем состоянии данных во всех блоках. Нода — это любой компьютер, подключенный к блокчейну, который проверяет и подтверждает транзакции, и хранит копию блокчейна.
Алгоритм консенсуса гарантирует соблюдение правил протокола и достоверность всех транзакций. Другими словами, он отвечает за то, чтобы все ноды сети были согласны с добавлением в нее нового блока. Таким образом консенсусный алгоритм поддерживает целостность и безопасность сети.
При этом важно понимать разницу между алгоритмом консенсуса и протоколом:
Так, например, Bitcoin и Ethereum — это протоколы, а Proof-of-Work и Proof-of-Stake — это консенсусные алгоритмы.
Какие алгоритмы консенсуса используются в криптовалютах?
Есть много вариантов алгоритмов консенсуса. Рассмотрим подробнее наиболее востребованные среди лучших блокчейн-проектов.
Proof-of-Work (PoW)
Proof-of-Work (доказательство выполнения работы, PoW) — алгоритм консенсуса, который впервые был представлен в сети первой криптовалюты Bitcoin.
Суть PoW заключается в следующем: ноды сети (майнеры), чтобы подтвердить транзакции и не позволить другим участникам расходовать одни и те же монеты дважды, должны решать сложные математические задачи (хэш-функции). Нода, которая первой нашла решение, получает вознаграждение — новые монеты сети.
При этом сложность майнинга защищает сеть от возможных угроз в виде DDoS-атак, атаки 51% (когда злоумышленники получают контроль над подтверждением транзакций и созданием блоков) и других видов атак. Если бы задачи были слишком легкими, злоумышленники могли бы легко взломать сеть.
PoW стал прорывом для своего времени и позволил запустить первые криптовалюты. Он делает сеть децентрализованной и устойчивой ко взломам. Так, Bitcoin практически невозможно взломать — понадобился бы квантовый компьютер и гигантские ресурсы для получения контроля над сетью.
Но по мере популяризации криптовалют и их массового внедрения недостатки этого алгоритма начали становиться все заметнее. Более того, сейчас эти уязвимости мешают и ограничивают развитие ранних проектов криптовалют.
Среди основных недостатков PoW :
Proof-of-Stake (PoS)
Proof-of-Stake (доказательство доли владения, PoS) — алгоритм консенсуса, представленный на форуме Bitcointalk в 2011 году в качестве альтернативы PoW. Цель данного алгоритма — стремиться исправить основные недостатки PoW, в частности, низкую скорость и слабую масштабируемость сети.
В 2012-м данный алгоритм был впервые интегрирован в блокчейн криптовалюты PPCoin (в настоящее время PeerCoin). Сегодня на базе PoS работают такие блокчейны, как Cardano, Binance Chain, IOTA, Nano, TRON, TomoChain и Ziliqa. А в декабре 2020 года после нескольких лет разработки сеть Ethereum также начала переход с PoW на PoS в рамках запуска версии Ethereum 2.0.
В PoS нет майнинга. Вместо решения математических задач новые монеты добываются за счет стейкинга — механизма, позволяющего добавлять новые блоки за счет доказательства владения криптовалютой этой сети, что раньше также называлось форджингом. Ноды такой сети называются валидаторами, а их баланс — стейком. Чем больше у ноды монет в кошельке, тем у нее больше шансов подтвердить новый блок и получить вознаграждение.
Таким образом стейкинг можно сравнить с банковским вкладом. Чем больше монет заморожено в сети, тем выше вознаграждение. Для валидаторов это возможность зарабатывать пассивный доход.
Основные преимущества PoS-алгоритма :
Главный недостаток PoS-алгоритма — угроза централизации. Валидаторы с наибольшим количеством монет в конечном итоге будут контролировать большую часть сети. Поэтому в последние годы блокчейн-разработчики представили новые версии PoS-алгоритма, о которых пойдет речь ниже.
Proof-of-Authority (PoA)
Proof-of-Authority (доказательство полномочий, PoA) — это алгоритм консенсуса, учитывающий «заслуги» и рейтинг валидаторов. Он считается эффективным механизмом для частных блокчейнов, впервые был концептуализирован в 2014 году одним из создателей Ethereum Гэвином Вудом и уже несколько лет используется в облачной платформе Microsoft Azure, которая включает более 200 продуктов и служб.
PoA — это своеобразная попытка объединить PoW и PoS. Здесь вообще нет майнинга, а, следовательно, нет гонки вычислительного оборудования, как и огромных расходов энергии. В PoA для генерации блоков валидаторы используют не мощность оборудования или количество монет, а собственную репутацию.
Так, за работоспособность сети отвечает фиксированное число валидаторов, которые были выбраны участниками сети или разработчиками проекта. Такой подход гарантирует высокую скорость обработки транзакций и хорошую масштабируемость. При этом валидаторы заинтересованы в том, чтобы их работа была честной и прозрачной, иначе они потеряют свой статус и репутацию надежного участника сети.
Главный недостаток PoA — возможность излишней централизации и отсутствие мотивации пользователей, которые не получают вознаграждения за майнинг или стейкинг. Более того, в рамках классического PoA обычный пользователь никак не может повлиять на работу блокчейн-сети, поскольку этим занимаются доверенные ноды, как правило, принадлежащие одной компании.
Криптопроекты, использующие PoA, прекрасно понимают недостатки консенсуса и пытаются обойти их разными способами. Например, разработчики криптовалюты UMI в попытках избавиться от ограничений PoA создали свою вариацию этого алгоритма. Основные отличия механизма PoA в UMI от классического PoA — децентрализация и стейкинг.
Децентрализация достигается разделением нод на две ключевые группы:
Вознаграждение за поддержание сети UMI доступно благодаря стейкингу. Но так как в классическом PoA стейкинга нет, в UMI механизм реализован с помощью смарт-контракта. Смарт-контракт — специальная программа на блокчейне, которая автоматически выполняет заданные действия при достижении заранее прописанных условий. Смарт-контракт в UMI обеспечивает выполнение всех условий, корректную работу стейкинга и начисляет вознаграждения в режиме 24/7.
Вот другие особенности стейкинга в UMI, которых удалось достичь благодаря смарт-контракту:
Благодаря этому экосистема UMI стала уникальной для крипторынка децентрализованной средой, позволяющей любому участнику бесплатно переводить монеты внутри сети и приумножать их при помощи стейкинга, приносящего до 40% новых монет в месяц.
В конце 2020 года тестовая версия обновленной сети UMI заняла 4-е место по скорости среди остальных блокчейнов, а среднее время генерации нового блока в последней версии составляет всего 1 секунду. Скоро эти изменения будут интегрированы в основную сеть. Все это делает UMI оптимальной блокчейн-средой, доступной для по-настоящему массового применения. Так, уже сейчас скорость блокчейна UMI составляет 4 369 операций в секунду, после грядущих обновлений она должна увеличиться до 65 535, а потенциально может дойти до 1 млн tps и выше.
Delegated Proof-of-Stake (DPoS)
Delegated Proof-of-Stake (делегированное доказательство доли владения, DPoS) — разновидность PoS-алгоритма, созданная разработчиком Дэном Ларимером в 2014 году. DPoS задумывался как альтернатива PoW и PoS. Его цель — лишить валидаторов возможности централизации. Среди известных блокчейнов на DPoS: EOS, Steemit и Tezos.
DPoS — это более демократическая версия Proof-of-Stake. Главное отличие двух алгоритмов в том, что в DPoS держатели монет (свидетели) передают свое право одобрять операции и получать награду, то есть делегируют свой голос заранее выбранному валидатору (делегату).
Делегатом может стать любой пользователь сети. Но в любой момент свидетели могут отозвать свой голос — это способ позволяет избежать излишней централизации и захвата сети недобросовестными участниками.
Делегаты объединяются в особый пул, который имеет право вносить изменения в ряд параметров сети: время добычи новых блоков, их размер и так далее. Но отменять транзакции или проводить ложные операции делегаты не могут. Поэтому у свидетелей остается власть над сетью.
Основные преимущества DPoS-алгоритма — высокая скорость и большее масштабирование. В сети работает значительно меньше нод, чем в PoW или PoS, что позволяет достаточно быстро создавать новые блоки.
Среди недостатков: при низкой активности участников сети сохраняется угроза централизации, а также возможно проведение DDoS-атак и недобросовестное поведения делегатов, которые могут вызвать сбои в сети.
Leased Proof-of-Stake (LPoS)
Leased Proof-of-Stake (арендованное доказательство доли владения, LPoS) — еще один вариант PoS-алгоритма, разработанный специально для блокчейна Waves.
LPoS призван решить проблему «имущественного ценза» в классическом PoS, в рамках которого пользователи с недостаточным балансом не могут участвовать в стейкинге и зарабатывать новые монеты. Это оборачивается централизацией.
В рамках LPoS-алгоритма любой участник сети может передавать свои монеты валидаторам, получая в обмен долю от прибыли. При этом монеты остаются в кошельке пользователя, но их нельзя использовать, передавать или обменивать. Аренду можно отменить в любое время. Валидаторам выгодно арендовать монеты, так как это увеличивает их стейк, а, следовательно, и шанс на награду.
Такой подход позволяет зарабатывать монеты даже с небольшим стейком, но делает сеть подверженной централизации: валидаторы могут арендовать так много монет, что смогут контролировать сеть.
Proof-of-Importance (PoI)
Proof-of-Importance (доказательство значимости, PoI) — еще одна вариация PoS-алгоритма, разработанная для блокчейна NEM в 2015 году.
В отличие от классического стейкинга, в PoI важно не только количество заблокированных в стейке монет, но и активность пользователя (количество транзакций), и время его пребывания в сети. Чем активнее пользователь и чем выше его репутация в сообществе, тем больше его доход от стейкинга. Это поощряет участников не хранить монеты в кошельках, а активно использовать их.
Proof-of-Space (PoSpace)
Proof-of-Space (доказательство пространства, PoSpace; также встречается название Proof-of-Capacity, доказательство работоспособности, PoC) — алгоритм, использующий для подтверждения блока место на жестком диске, а не вычислительную мощность компьютера.
Это необычная концепция, обещающая высокую скорость и демократизм, но она не получила масштабного распространения среди криптопроектов. На этом алгоритме, например, работают такие малоизвестные проекты, как Burstcoin и SpaceMint.
Майнер резервирует для подтверждения блоков определенное место на жестком диске. Сначала в жестком диске генерируются наборы возможных решений математических задач, потом происходит сам майнинг. Майнеру не нужно искать решение майнинговой задачи — оно уже есть в памяти одного из жестких дисков. Чем больше память диска, тем больше решений может там храниться и тем больше шансов, что решение найдет именно этот майнер.
Преимущества PoC — это низкая энергозатратность и возможность майнить с любого устройства, даже со смартфона.
Proof-of-Burn (PoB)
Proof-of-Burn (доказательство сжигания, PoB) — алгоритм, альтернативный классическим PoW и PoS.
Майнер отправляет монеты на специальный адрес, к которому невозможно подобрать приватные ключи. Это значит, что монеты с этого кошелька потратить тоже нельзя — они сжигаются. В награду за это майнер создает новый блок и получает за него вознаграждение в виде новых монет сети. Чем больше монет сжечь, тем выше шансы получить награду за блок.
Преимущества алгоритма: низкое энергопотребление и экономичность, ведь не надо тратиться на дорогостоящее оборудование для майнинга. Кроме того, при сохраняющемся или растущем спросе алгоритм может способствовать росту стоимости остающихся монет — ведь их количество постоянно уменьшается.
Главный недостаток PoB — он подходит только для зрелых проектов, в которых основная эмиссия монет уже завершена, и им есть что сжигать. Поэтому алгоритм не популярен, но все же иногда используется, например, в блокчейне Counterparty (XCP).
Proof-of-Elapsed-Time (PoET)
Proof-of-Elapsed-Time (доказательство истекшего времени, PoET) — алгоритм консенсуса от компании Intel. Считается одним из самых сбалансированных и совершенных консенсусных алгоритмов и используется в основном корпоративными блокчейнами, например, Hyperledger.
Принцип работы PoET напоминает лотерею. В каждой ноде сети генерируется случайное время ожидания для конкретного блока — каждый раз оно разное. После этого нода «замораживается» (переходит в период ожидания). Блок добывает та нода, у которой время ожидания блока окажется наименьшим. Специальная система SGX следит за тем, чтобы все это происходило действительно случайным образом.
Главный недостаток PoET — он требует обязательного использования процессора Intel Software Guard Extension, поддерживающего SGX.
Где выгоднее покупать криптовалюту? ТОП-5 бирж
Для безопасной и удобной покупки криптовалют с минимальной комиссией, мы подготовили рейтинг самых надежных и популярных криптовалютных бирж, которые поддерживают ввод и вывод средств в рублях, гривнах, долларах и евро.
Надежность площадки в первую очередь определяется объемом торгов и количеством пользователей. По всем ключевым метрикам, крупнейшей криптовалютной биржей в мире является Binance. Также Binance самая популярная криптобиржа в России и на территории СНГ, поскольку имеет наибольший оборот денежных средств и поддерживает переводы в рублях с банковских карт Visa/MasterCard и платёжных систем QIWI, Advcash, Payeer.
Специально для новичков мы подготовили подробный гайд: Как купить биткоин на криптобирже за рубли?
Рейтинг криптовалютных бирж :
# | Биржа: | Cайт: | Оценка: |
---|---|---|---|
1 | Binance (выбор редакции) | https://binance.com | 9.7 |
2 | Huobi | https://huobi.com | 7.4 |
3 | Exmo | https://exmo.me | 6.9 |
4 | OKEx | https://okex.com | 6.5 |
5 | Bybit | https://bybit.com | 6.3 |
Критерии по которым выставляется оценка в нашем рейтинге криптобирж :
В заключение
По мере взросления крипторынка и развития блокчейн-технологий будут появляться все новые, более совершенные консенсусные алгоритмы и будут совершенствоваться текущие. Они будут предлагать самые оптимальные решения для устранения уязвимостей и недостатков существующих блокчейн-сетей.
Вполне вероятно, что в будущем начнет появляться все больше таких блокчейн-проектов, как UMI, где успешно совмещаются элементы разных механизмов по достижению консенсуса и получению вознаграждения. Такой подход позволит брать только лучшее из представленных на рынке механизмов, минимизируя уязвимости и повышая эффективность работы сети.
Дата публикации 27.09.2021
Подписывайтесь на новости криптовалютного рынка в Яндекс Мессенджер.
Поделитесь этим материалом в социальных сетях и оставьте свое мнение в комментариях ниже.