ЖАНРЫ

Как заработать на криптовалютах и блокчейне. Объясняем на пальцах
Шрифт:

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

Тем не менее, алгоритм PoS в блокчейн-среде считается более продвинутым и перспективным. Многие блокчейны работают над задачей перехода непосредственно на этот алгоритм или на одну из его версий.

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

Есть два основных недостатка:

1) недоброжелатель блокчейна с PoS-консенсусом может купить на бирже достаточное количество токенов и начать влиять на данные внутри блокчейна, собирая в блоки невалидные транзакции и передавая их в блокчейн;

2) этот консенсус не выглядит справедливым: в нем богатые становятся богаче, а бедные – беднее, изменить этот расклад можно, только увеличив свое богатство.

Разработчики блокчейнов, которые хотят использовать Ро5-алгоритм, придумывают способы, как обойти эти недостатки. Например, в PoS-алгоритмах, актуальных на первую половину 2018 года, используется понятие ставка. Майнер замораживает определенное количество токенов и делает ставку на создание нового блока. Если его ставка больше других, то он получает награду за блок пропорциональную ставке.

На сегодняшний день команда разработчиков Ethereum, одного из самых популярных блокчейнов, работает над внедрением алгоритма Casper – это улучшенная версия Proof-of-Stake. Внедрение этого алгоритма позволит существенно увеличить количество транзакций, которые сможет обрабатывать Ethereum.

Существуют и более редкие виды консенсуса.

Delegated-Proof-of-Stake – «делегированное доказательство доли» – похож на Proof-of-Stake только названием. Важное отличие заключается в том, что все владельцы токенов могут выбрать представителя своих интересов внутри этого блокчейна. Фактически выбирается несколько нод от 21 до 100, которые проверяют блоки. Если выбранная нода работает плохо: добавляет невалидные транзакции, пропускает блоки, не обрабатывает транзакции, – то она будет удалена из списка майнеров и переизбрана. Этот алгоритм используют EOS, Steemit, BitShares. За счет объединения майнеров он позволяет существенно увеличить скорость проверки транзакций, а значит, и пропускную способность блокчейна. Например, EOS использует этот механизм для масштабирования до миллиона транзакций в секунду.

Proof-of-Activiti – доказательство активности. В таком блокчейне есть несколько нод-админов, которые проверяют транзакции и выдают результат всем остальным. Остальные просто копируют то, что проверили админы. Этот алгоритм носит очень централизованный характер: чтобы стать админом такой сети, нужно пройти проверку и подтверждение от уже действующих админов. Этот алгоритм чаще всего используется в непубличных закрытых блокчейнах, которые работают в замкнутом сообществе либо в компаниях. Примером такого блокчейна является Kovan. Kovan – это тестовый блокчейн для программистов, которые разрабатывают проекты на Ethereum. В Kovan существуют несколько администраторов, которые проверяют транзакции участников и бесплатно выдают токены, которые нужны участникам для проведения тестов.

Итак, при помощи консенсуса определяется, какой блок с транзакциями будет добавлен в блокчейн и какой майнер получит за это вознаграждение.

Блоки внутри блокчейна

А теперь давайте наконец-то разберемся, что такое блок и как он устроен?

Майнер собирает проверенные транзакции в блок, добавляет блоку заголовок (идентификатор) и подпись – это хэш блока. В разных блокчейнах структура блока и его отдельных частей может различаться. Например, в блоках биткойна есть еще место для тех самых дополнительных данных, которые майнеры могут менять, добиваясь нужного хэша. Общий принцип везде одинаковый: заголовок, транзакции, подпись.

Рис. 3. Структура блока

Сколько транзакций помещается в одном блоке, зависит от блокчейна, так как максимальный размер блока жестко запрограммирован. Например, в Bitcoin максимальный размер блока – 1 Мб. Из-за этого в биткойн-сообществе периодически появляются идеи, как можно увеличить размер блока. Во втором полугодии 2017 г. активно обсуждалась идея, как можно использовать место, зарезервированное в блоке для служебной информации, под транзакции, тем самым увеличив емкость блока практически в два раза.

Цепочки блоков

Из проверенных блоков формируется цепочка, в которой каждый новый блок ссылается на предыдущие.

Рис. 4. Цепочка блоков

Для блока № 1 формируется хэш из содержимого его транзакций. В хэш блока № 2 включены транзакции из этого блока + хэш блока № 1. В хэш блока № 3 кроме его транзакций попадет хэш блока № 2. Таким образом формируется цепочка. Если удалить какой-то из блоков или подменить транзакции внутри него, то изменятся хэши и такой блок выпадет из цепочки.

Если новый добавляемый блок не ссылается на предыдущий, то он автоматически будет отвергнут цепочкой, а значит, транзакции из него останутся в реестре непроверенных и будут замайнены другим майнером в последующих блоках.

Конкуренция цепочек

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

Но при этом в блокчейне есть такое понятие – конкуренция цепочек блоков. Откуда же возникает конкуренция, если консенсус так красиво решает спорные ситуации?

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

Причем возможны ситуации, когда несчастливым оказывается не один блок, а цепочка из нескольких блоков.

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

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

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

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

Поделиться с друзьями: