Алгоритмы консенсуса — основа работы блокчейн-сетей

Алгоритмы консенсуса — основа работы блокчейн-сетей

В основу всех современных криптовалют положен принцип работы одноранговых сетей (тот самый peer-to-peer), в которых каждый узел является независимой единицей и может участвовать в подтверждении транзакций и формировании сети блокчейн. Для того чтобы сеть функционировала нормально и чтобы максимально исключить атаки на сеть, все узлы сети должны взаимно подтверждать и одобрять действия друг друга, т.е. достигать консенсуса при подтверждении каждой транзакции и создании нового блока. Право генерации нового блока как раз и определяется моделью консенсуса или, как ее часто называют алгоритмом консенсуса.

Что такое алгоритмы консенсуса

По сути, алгоритм консенсуса — это набор определенных математический правил и законов, которые регулируют работу блокчейна.

  • Частоту генерации новых блоков — это помогает исключить ситуации, когда каждый узел генерирует свой блок и записывает его в блокчейн. Например, в блокчейне биткоина блок генерируется каждые 10 минут (итого 6 блоков в час). Иногда возникают ситуации, когда несколько узлов практически одновременно (с разницей в несколько долей секунды) генерируют блок, тогда возникает конфликт, который решается в пользу узла, который раньше всех создал блок. Транзакции, которые входили в «отвергнутый» блок/блоки, помещаются в список неподтвержденных транзакций и обрабатываются уже в следующем блоке.
  • Размер вознаграждения за сгенерированный блок. Размер зависит от сложности: чем выше сложность, тем ниже сумма вознаграждения.
  • Проверка корректности данных блока. Все узлы должны подтвердить правильность данных блока, который был сгенерирован определенным узлом. Проверяются хеши транзакций, предыдущего и сгенерированного блока, правильность подбора числа nonce.
  • Избежание повторной траты средств. Например, в блокчейне биткоина при отправке транзакции в блокчейн отправляются все средства, после чего указанная сумма уходит получателю, а остаток возвращается обратно на счет отправителя.

Алгоритмы консенсуса в блокчейне базируются на криптологической задаче византийских генералов. Однако для применения в криптовалютах ее принципы были немного изменены и адаптированы под работу в P2P-сети:

  • Стойкость к цензуре. В отличие от «Византии» блокчейн не нуждается в главнокомандующем, потому что блокчейн — это децентрализованная система, и никто не может никому запретить заниматься майнингом.
  • Объективность — в блокчейне всегда хранится актуальная версия журнала транзакций и поэтому эта информация не нуждается в подтверждении авторитетными источниками.

В настоящее время самыми используемыми являются два алгоритма — Proof-of-Work и Proof-of-Stake. Также существуют и другие, однако они применены в намного меньшем количестве монет. Это связанно, в первую очередь, с их относительно недавним появлением и с пока что недостаточно отработанной технологией.

Proof-of-Work (PoW)

Proof-of-Work (PoW)

Proof of Work переводится как «доказательство работы». Впервые, в 1993 году его принцип был описан в работе американской ученой в области информатики Синтии Дворк и израильского криптографа Мони Наора. Они создали теоретическую базу PoW, предлагая создать алгоритм, который бы предоставлял доступ к определенным данным только тем пользователям, которые правильно решили определенную задачу. Следующий шаг в развитии алгоритма «доказательства работы» был Hashcash Адама Бэка, созданный в 1996 году — этот инструмент помогал предупредить DoS-атаки и рассылки спама.

Официально термин Proof-of-Work был предложен Маркусом Якобсеном и Ари Джуэлсом в 1999 году. В 2008 году все эти наработки были соединены в разработке Сатоши Накамото, которую мы сегодня знаем как Bitcoin. Иногда Proof-of-Work в отношении биткоина называют консенсусом Накамото. За основу Сатоши взял Hashcash с алгоритмом хеширования SHA-256 (SHA-256 более безопасный, чем оригинальный алгоритм Hashcash), а PoW обеспечивает работу сети блокчейн: используется для генерации нового блока и гарантирует безопасной всей сети.

Блокчейн-сеть, работающая по принципу алгоритма Proof-of-Work работает следующим образом: узлы сети производят математические вычисления, питаясь найти неизвестное число (nonce) рандомным способом. Данная операция несложная, но требует больших вычислительных мощностей. Когда один из узлов находит nonce, другие проверяют правильность результатов, просто подставив найденное число в формулу. После подтверждения корректности данных происходит генерация блока и начисление вознаграждения узлу, нашедшему правильное решение.

Основа работы Proof-of-Work

  • Сложность вычислений должна быть достаточно высокой
  • Проверка результата должна быть быстрой и доступной всем узлам

В модели PoW роль играют два параметра: вычислительная мощность (хешрейт) и вероятность нахождения рандомного числа nonce. Однако эти два параметра взаимосвязаны: чем выше хешрейт — тем выше шанс сгенерировать блок. Ввиду огромного роста сети биткоин для генерации блоков требуются очень большие мощности, поэтому сейчас майнингом биткоина в основном занимаются пулы. Уже к 2012 году общий хешрейт биткоин-сети превысил вычислительную мощность самого мощного суперкомпьютера в мире. В качестве узлов сети выступают GPU: 1 GPU = 1 узел. Учет GPU, а не IP в качестве узлов, предотвратило возможность захвата сети владельцами множества IP-адресов. Однако сегодня создаются целые майнинг-фермы, в которых работают тысячи вычислительных устройств.

Это создает опасность проведения так называемой атаки 51%, когда больше половины всего хешрейта сети сконцентрирована в одних руках. Это первый недостаток Proof-of-Work. Второй — чрезмерное расходование электроэнергии, которое увеличивается с каждым месяцем. В долгосрочной перспективе это может привести к глобальной экологической катастрофе.

Достоинства алгоритма доказательства работы

  • Невозможность подделки результатов — найденный nonce проверяется всеми узлами сети, прежде чем будет сгенерирован блок
  • Невозможность «заготовки» результата — работа над поиском nonce очередного блока начнется только после того, как будет закончена работа над предыдущим
  • Невозможность возникновения атаки Сивиллы — теоретический злоумышленник не сможет создать множество фейковых узлов, при помощи которых он мог бы «массой» подавить мнение других узлов сети. Для того чтобы участвовать в майнинге, необходимо обладать реальной вычислительной мощностью, которая потребляет реальные ресурсы
  • Стимул к честному участию — когда один из узлов начинает «хитрить» и пытаться нарушить работу сети, он может быть навсегда заблокирован другими участниками с сети
  • Честность заработка — сумма потенциального вознаграждения напрямую зависит от хешрейта, которым обладает узел. Однако сегодня это преимущество достаточно спорно, так как практически 70% всего хешрейта сконцентрировано в одной стране — в Китае.

Алгоритм Proof-of-Work используется во многих популярных криптовалютах: Bitcoin, Ethereum, Litecoin, Dogecoin, Zcash, Monero.

Proof-of-Stake (PoS)

Proof-of-Stake (PoS)

Proof of Stake переводится как «доказательство доли владения». Этот алгоритм впервые предложен пользователем QuantumMechanic на сайте bitcointalk.org в 2011 году как альтернатива используемого в биткоине Proof-of-Work. PoS еще называют форджингом. Первая монета, которая частично была реализована на алгоритме доказательства доли владения — Peercoin. А если быть точнее, то в PPC использовался гибридный вариант: изначально использовался принцип майнинга по алгоритму Proof-of-Work, а после того как все монеты были добыты произошел переход к Proof-of-Stake. Первыми «чистыми» монетами, которые с самого начала работали на PoS, были Nxt и Blackcoin.

Принцип работы Proof-of-Stake состоит в следующем: некоторое количество монет на счетах участников, которые участвуют в форджинге, «замораживается» в качестве некой гарантии честности узла. Монеты находятся в «замороженном» состоянии до тех пор, пока одной нодой не будет сгенерирован блок, а остальные участники не подтвердят правильность действий мастерноды. Подобная «заморозка» также является мерами предосторожности, которые помогают предотвратить атаки на сеть, избежать «двойной траты» монет и исключить возможность валидации поддельных транзакций узлами.

В отличие от Proof-of-Work в Proof-of-Stake определяющим фактором является количество монет на счету ноды (узла). Т.е. чем большее количество монет хранится на одном кошельке, тем больше шансов сгенерировать блок и получить порцию новых монет. Узел, который «побеждает в схватке» называется мастернодой. Принцип PoS в некотором роде схож с игрой в рулетку: чем больше ставок вы делаете (в нашем случае имеете монет), тем выше шансы выиграть (получить вознаграждение в виде криптовалюты).

Преимущества PoS над PoW

  • Энергоэффективность — в отличие от традиционного Proof-of-Work алгоритм Proof-of-Stake не требует огромных энергоресурсов — электроэнергия тратится только на подтверждение самих транзакций
  • Низкие требования к ресурсам оборудованию — все, что нужно, чтобы участвовать в форджинге — компьютер (обычный ПК или ноутбук), стабильный интернет и установленная программа-клиент
  • Низкие комиссии — в отличие от биткоина и других монет, которые работают на PoW и в комиссию которых закладываются кроме обработки майнерами транзакций еще и оплата счетов за электричество, транзакции монет на PoS более дешевые в виду отсутствия расхода энергорессурсов
  • Бо́льшая децентрализация — для того, чтобы создать стабильную мастерноду и фактически иметь полную власть над процессом подтверждения транзакций, потребуется иметь просто огромное количество монет. Однако здесь есть и обратная негативная сторона — теоретически «киты» могут выкупить бо́льшую часть монет, консолидироваться и захватить власть над форджингом определенной монеты.
  • Высокая стойкость к поломке оборудования — так как форджинг не требует дорогого и сложного оборудования, то в случае поломки устройства его очень легко заменить.
  • Низкая вероятность проведения атаки 51% — чтобы совершить этот тип атаки, форджер должен обладать более чем половиной всех монет. Во-первых, это очень дорого, а, во-вторых, от атаки пострадает он сам в первую очередь, так как стоимость этих монет после проведения атаки резко упадет.

Недостатки технологии Proof-of-Stake

  • Возможность совершения атаки «double-spend» — это атака «двойной траты средств». Дело в том, что в PoS майнить блоки можно на любой высоте. Поэтому, чтобы совершить атаку, необходимо майнить параллельно два блока — один с платежом, который уйдет к получателю, а второй — с транзакцией, которая обратно вернется майнеру. Если майнер найдет оба эти блока, то первый он подтвердит, и деньги уйдут получателю, а второй попадет в сеть для подтверждения другими участниками, деньги вернутся майнеру, и сеть продолжится уже с этого блока
  • Невозможность оборота монет — чтобы участвовать в форджинге, нужно иметь на счету определенное количество монет и не снимать их, т.е. не получится ни совершать покупки, ни обменивать монеты на бирже, ни проводить любые другие операции
  • Достаточно высокий порог входа — чтобы участвовать в форджинге, узел должен обладать определенным количеством монет (например, для Dash нужно иметь минимум 1000 DASH)
  • Небольшая прибыль — в этом случае низкие комиссии становятся не достоинством, а недостатком, так как при форджинге по получится зарабатывать так много как на майнинге

На PoS работают следующие криптовалюты: PayCoin, Blackcoin, Nxt, Clobal. В будущем Ethereum также планирует перейти на Proof-of-Stake.

Leased Proof of Stake (LPoS)

Leased Proof of Stake переводится как «арендованное доказательство доли владения». Это гибридный вид алгоритма PoS. Его суть заключается в том, что более мелкие участники форджинга (или те, которые не могут участвовать в нем ввиду недостаточного количества монет на счету) как бы сдают в аренду свои монеты полноценным нодам, повышая этим шанс последних сгенерировать блок. Взамен «арендодатели» получают свою долю в общем вознаграждении. Это имеет схожесть с майнинг-пулами, которые на данный момент в своем большинстве обслуживают сеть биткоина. В системе LPoS участник имеет полное право сделать со своими монетами что угодно в любой момент: потратить их, обменять на другие монеты и т.д. При этом «договор аренды» автоматически разрывается и с этого момента «арендодатель» уже не может рассчитывать на долю.

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

Delegated Proof of Stake (DPoS)

Delegated Proof of Stake — делегированное доказательство доли владения. Как и LPoS DPoS — это подвид алгоритма Proof-of-Stake. Часто DPoS называют технологической демократии. Работу этого алгоритма можно сравнить с компанией, в которой каждый сотрудник имеет своим голосом повлиять на выбор начальника или его увольнение, если последний не справляется со своими обязанностями. Суть DPoS состоит в том, что ноды сети методом голосования выбирают узел, который будет генерировать блоки. В этом случае работает правило: чем большим количеством монет обладает нода, тем больший вес имеет ее голос. Правила начисления вознаграждения также определяются также участниками сети. В некоторых сообществах вознаграждение начисляется не только ноде, которой делегировали право генерировать блоки, но и остальным участникам.

Первая монета, в которой был применен алгоритм DPoS — Bitshares. Также он применяется в следующих монетах: EOSLisk, Ark, Steem.

Proof-of-Devotion (PoD)

Proof of Devotion — доказательство преданности. Алгоритм разработанный командой Nebulas (NAS)учитывает ранги пользователей на основе данных NR (Nebulas Rank). Участники с рейтингом свыше определенного уровня смогут становиться своеобразными «бухгалтерами» платформы. Они смогут участвовать в генерации новых блоков, и получать за это бонусы. Кроме того, им будет начисляться премия за проведение транзакций.

Proof-of-Importance (PoI)

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

Proof-of-Activity

Proof of Activity —доказательство активности. Это гибридный вариант, который создан на основе алгоритмов PoW и PoS. В этом алгоритме блоки PoS параллельно ищутся с блоками PoW, т.е. блокчейн Proof-of-Activity состоит из блоков обоих типов.
Если возникает конфликт в системе, то вес блоков PoW больше, чем блоков PoS, так как в Proof-of-Work практически невозможно осуществить атаку «double-spend», которую теоретически возможно реализовать в Proof-of-Stake. В этом случае форджеры «принимаются за работу» только после того, как произведена работа майнерами. Это создает меры безопасности, которые не позволяют монополистам-холдерам каждый раз получать вознаграждение за генерацию нового блока или совершить атаку 51%. Это помогает сделать работу сети более безопасной и защищенной.

Proof-of-Burn

Proof of Burn — это доказательство сжигания. Майнеру нужно «сжечь» монеты, чтобы иметь право заниматься майнингом. Под «сжечь» подразумевается отправка монет на адрес, к которому ни у кого нет доступа. Таким образом нода получает пожизненное право участвовать в майнинге и получать вознаграждение за генерацию блоков. Причем, чем больше монет «сжег» майнер, тем больше у него шансов найти блок. По данному алгоритму работает Slimcoin.

Proof-of-Capacity

Proof of Capacity — доказательство емкости. Если в Proof-of-Work определяющим фактором является хешрейт, то в Proof-of-Capacity главную роль играет место на жестком диске. Для майнинга можно использовать даже самый обычный ПК, главное, чтобы на жестком диске были тысячи (а лучше сотни тысяч) терабайт свободного места, которое будет «забиваться» случайными хешами в надежде на то, что один из них поможет сгенерировать блок. Данный алгоритм применен в монете Burst.

Proof-of-Signature (PoSign)

Proof of Signature — доказательство подписи. Это новый алгоритм, который появился достаточно недавно (в ноябре 2017 года) и еще даже не разработан до конца. Суть его состоит в том, блоки подписываются каждым узлом сети, за что последние получают вознаграждение. Если один из узлов попытается совершить атаку, то он будет исключен из сети без дальнейшего права участвовать в майнинге. На данный момент эта технология применяется в монете XTRABYTES — это первый и пока единственный проект, который работает на основе алгоритма PoSign.

Proof-of-Authority (PoA)

Proof of Authority — доказательство полномочий. Этот алгоритм позволяет только избранным (изначально определенным нодам) генерировать блоки и устанавливать свои правила в сети. Подходит для создания частных сетей или государственных криптовалют. В качестве примера можно назвать сеть Kovan.

Proof-of-Brain

Proof of Brain — доказательство «мозговой деятельности». Майнинг происходит путем создания качественного контента, который поддерживается другими участниками сети через голосование (лайки и комментарии). Чем больше лайков и комментариев получит узел, создавший контент, тем больше монет он сможет «намайнить». На данной технологии работает сеть Steemit и ее форк Golos.
Алгоритмы консенсуса играют самую важную роль в «жизни» монеты, поскольку определяют ее функционал, эмиссию и общие правила сети. В данный момент на первом месте по популярности находится Proof-of-Work, за ним идет PoS, все чаще встречаются и гибридные алгоритмы. Каждый из алгоритмов имеет свои достоинства и недостатки, но в общем идеальный алгоритм консенсуса должен выполнять две важных задачи:

  • Атаки на сеть должны быть максимально затратными и иметь плохие последствия для самого атакующего
  • Защита сети должна хорошо вознаграждаться

Proof of Credit Share (PoCS)

Proof of Credit Share – доказательство доли кредита. Созданный разработчиками GXChain алгоритм консенсуса, задача которого заключается в устранении дисбаланса при обмене информацией между крупными и небольшими компаниями. Расчет баллов PoCS осуществляется после завершения членами альянса процессов обмена данными. Оценивается PoCS в зависимости от частоты транзакций. Эти параметры учитываются для проведения оплаты. Те из членов альянса, которые имеют меньший счет, будут вынуждены оплачивать более высокие комиссии. В то же время для участников с высокими счетами транзакционная комиссия будет снижаться.

Подписывайтесь на наш Telegram и будьте в курсе последних новостей!
Чтобы оставить комментарий необходимо или зарегистрироваться