Криптодоказательства: Что нужно знать про алгоритмы консенсуса криптовалют

За каждой хорошей криптовалютой стоит хороший алгоритм консенсуса. Эти алгоритмы существуют для предотвращения двойного расходования. Ни один из них не идеален, но у каждого есть свои сильные стороны. Скорее всего, вам уже известен Proof-of-work, который используется в биткоине, и Proof-of-stake, на который хочет перейти эфириум. Зейн Уизерспун в своей статье на Hacker Noon кратко описал несколько других популярных алгоритмов, на которые также стоит обратить внимание.

Криптодоказательства: Что нужно знать про алгоритмы консенсуса криптовалют

Delegated Proof-of-Stake (DPoS)

Популярные реализации: Steemit, , BitShares

Плюсы: дешёвые транзакции, масштабируемость, энергоэффективность

Минусы: частичная централизация

Делегированный Proof-of-Stake придуман Дэниелом Ларимером и сильно отличается от оригинального PoS. В DPoS ходлеры токенов не голосуют за действительность блоков, а только избирают делегатов для проведения проверки от их имени. Как правило, в системе DPoS действуют от 21 до 100 избранных делегатов, они периодически перетасовываются, получая возможность поставлять собственные блоки. То, что делегатов относительно немного, позволяет эффективно организовывать работу и назначать временные интервалы для нахождения блоков каждому из делегатов. Если кто-то из них постоянно пропускает свои блоки или публикует недействительные транзакции, ходлеры голосуют за его замену лучшей кандидатурой.

В DPoS майнеры сотрудничают, а не конкурируют, как в PoW и PoS. Частично централизуя нахождение блоков, DPoS может работать на порядок быстрее, чем большинство других алгоритмов консенсуса. Например, в EOS время нахождение блока может устанавливаться на уровне меньше одной секунды! Согласитесь, это немного быстрее, чем один блок в десять минут у биткоина.

Proof-of-Authority (PoA)

Популярные реализации: POA.Network, Ethereum Kovan testnet

Плюсы: высокая пропускная способность, масштабируемость

Минусы: централизованная система

Доказательство полномочий — это алгоритм консенсуса, при котором транзакции проверяются определённым числом узлов, выступающих своего рода «админами» системы. Эти узлы наделены полномочиями, которые позволяют им устанавливать истинность транзакций для других узлов. PoA обладает высокой пропускной способностью и оптимизирован под закрытые сети. Вы вряд ли увидите PoA, работающий в общедоступной сети, из-за его централизованного характера.

Proof-of-Weight (PoWeight)

Популярные реализации: , Filecoin, Chia

Плюсы: настраиваемость, масштабируемость

Минусы: стимулирование пользователей может стать проблемой

Доказательство значимости — это целая категория алгоритмов консенсуса, основанных на модели согласия Algorand. Если в PoS вероятность нахождения вами следующего блока зависит от процента токенов, которыми вы владеете в сети, то в системе PoWeight «взвешивается» какой-либо другой важный параметр. Например, в проекте Filecoin используется Proof-of-Spacetime, отражающий, сколько данных IPFS вы храните. Другие системы могут использовать, к примеру, Proof-of-Reputation (доказательство репутации).

Byzantine Fault Tolerance (BFT)

Популярные реализации: Hyperledger, Stellar, Dispatch и Ripple

Плюсы: высокая пропускная способность, низкая стоимость, масштабируемость

Минусы: полудоверительный характер

Задача византийских генералов — классическая задача в криптологии. Несколько протоколов криптовалют используют разные версии достижения консенсуса BFT, каждая из которых имеет свои плюсы и минусы.

Практическая задача византийских генералов (PBFT) сегодня используется в Hyperledger Fabric с небольшим количеством (меньше 20) предварительно выбранных «генералов», которые позволяют PBFT работать невероятно эффективно. Плюсы: высокая пропускная способность транзакций. Минусы: централизованность.

Федеративное византийское соглашение (FBA) — это ещё один класс решений задачи византийских генералов, используемый в таких валютах, как Stellar и Ripple. Общая идея заключается в том, что каждый «византийский генерал», ответственный за свою собственную цепочку, сортирует входящие сообщения, чтобы установить истину. В Ripple «генералы» (валидаторы) предварительно выбираются самой компанией. В Stellar любой может быть валидатором, поэтому вы выбираете, каким валидаторам можно доверять.

Directed Acyclic Graph (DAG)

Популярные реализации: Iota, Hashgraph, Raiblocks/Nano

Плюсы: масштабируемость сети, низкая стоимость

Минусы: зависит от реализации

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

Tangle — это алгоритм консенсуса DAG, используемый в Iota. Чтобы отправить транзакцию Iota, вам необходимо подтвердить две транзакции других участников системы. Поскольку консенсус определяется транзакциями, теоретически кто-то может cгенерировать одну треть транзакций, которые могли бы убедить остальную часть сети в том, что недействительные транзакции действительны. До тех пор пока не будет достаточного объёма транзакций для предотвращения возможности создания одной трети, в Iota существует «двойная проверка» всех транзакций сети централизованным узлом «Координатор». По словам разработчиков, «Координатор» работает по аналогии с тренировочными колёсами на велосипеде и будет удалён, как только в сети будет достаточное количество транзакций.

Hashgraph — это консенсус с так называемым «протоколом сплетен», разработанный Лимоном Бэйрдом. Узлы делятся известными транзакциями с другим узлами наугад, и в итоге все транзакции выступают в качестве «сплетен» между узлами. Hashgraph действительно быстр (более 250 000 транзакций в секунду), но не устойчив к атаке Сивиллы. Таким образом, Hashgraph — отличный вариант для закрытых сетей, но вы не увидите его в ближайшее время на таких платформах, как эфириум.

Решётка блоков — это запутывание в блокчейне, с которым работает Nano (ранее Raiblocks). Решётка блоков представляет собой структуру, в которой каждый пользователь (адрес) получает собственную цепочку, которую может писать только он, и каждый участник системы имеет копию всех цепочек. разбиваются на блок отправки в цепочке отправителя и блок приёма в цепочке принимающей стороны. Решётка блоков может показаться слишком простой концепцией, но у неё уже есть работающие реализации. Уникальная структура делает её открытой для атаки penny-spend, где атакующие умышленно раздувают количество цепочек, которые должны отслеживать все узлы, отправляя незначительные суммы большому количеству адресов.

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