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

21.06.2021 |

Для статьи про алгоритмы достижения консенсуса

Основной проблемой одноранговых сетей, особенно в сфере финансов, это так называемая проблема “Византийских генералов”. Для ее решения Сатоши Накамото предложил пользователям достигать консенсуса на основе сложных математических вычислений. Для этого требуется достаточно много ресурсов, которые потребляют неимоверное количество электроэнергии. Именно за это сейчас первая криптовалюта подвергается критике. Однако, разработчики свободных средств постоянно находятся на пути решения этой задачи — как достичь легитимного консенсуса не прибегая к специализированному оборудованию, использующему большое количество электроэнергии.

В настоящее время существует несколько десятков алгоритмов достижения консенсуса в сетях распределенного реестра, но самые популярные и эффективные явно заслуживают внимания. У каждого из алгоритмов есть свои плюсы и минусы, но самым популярным до сих пор остается PoW

Proof of Work

Алгоритм консенсуса, основанный на доказательстве проделанной работы, используется во многих популярных криптовалютах. Именно к такому подходу решил прибегнуть Сатоши Накамото, и, как показало время, он не ошибся, несмотря на все недостатки, PoW остается надежным способом поддерживать работоспособность системы. На нем же работают популярные Ethereum, Litecoin, Monero и ряд других.

Как было сказано ранее, в Proof of Work майнеры решают математическую задачу. Для этого требуется большое количество энергоресурсов, обеспечивающих работы вычислительных мощностей. Для ряда монет, например, для Bitcoin и Ethereum, разработаны специальные ASIC майнеры. И если вторую по капитализации криптовалюту еще можно добывать на видеокартах, хоть и не всех, а имеющих более шести гигабайт оперативной памяти, и дальше этот показатель будет только увеличиваться, то биткоин имеет смысл добывать только на ASIC.

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

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

Из плюсов алгоритма Proof of Work можно выделить то, что при росте популярности криптовалюты, когда количество майнеров достигает некой, достаточно высокой массы, то система становится устойчивой к любым атакам, а их проведение нецелесообразно, в первую очередь по экономическим причинам. А вот минусов, к сожалению, у данного подхода несколько больше, особенно в сетях распределенного реестра, где распространены ASIC устройства:

  • крайне высокое энергопотребление криптодобывающей сети, необходимой для устойчивой работы всей системы;

  • дефицит современных устройств для майнинга, из-за чего, например, почти 70% общего хешрейта находятся под контролем пяти крупнейших пулов, таким образом, может появиться опасность сговора между последними для получения полного контроля над сетью;

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

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

Proof of Stake

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

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

Таким образом, алгоритм доказательства владения удобнее, чем доказательство проделанной работы. На него не потребуется много ресурсов, достаточно немного процессорного времени. Однако, есть у PoS один существенный недостаток: необходимость иметь на кошельке некоторое количество монет добываемой криптовалюты, которые нельзя потратить. Например, в новом протоколе Ethereum, получившем кодовое обозначение 2.0, потребуется заморозить в сети почти 90 000 долларов США по нынешнему курсу. Хотя затрат на добычу, по сути, больше никаких не предвидится, но это делает сеть распределенного реестра более подверженной атаке 51% — злоумышленник может выкупить большое количество монет, после чего распределить их по разным кошелькам, сделав их валидаторами, изменив затем реестр или принимая только нужные ему блоки. Таким образом, криптовалюты, работающие на алгоритме консенсуса Proof of Stake, подвержены большей централизации. Для решения некоторых проблем доказательства владения разработаны алгоритмы с некоторыми правилами и ограничениями.

Nothing at Stake

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

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

Proof of Stake Time

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

Delegated Proof of Stake

По своей сути делегирование доказательства владения не совсем относится к PoS алгоритму, но имеет ту же суть. В данном случае валидатор не напрямую ищет и проверяет блоки, а делегирует свои полномочия избранному участнику сети. Делегату отдается право записывать блоки в распределенный реестр. Ставка в данном случае является голосом за валидатора, которых может быть от 21 до 100, в зависимости от загруженности сети. Если избранный делегат записывает в реестр нелегитимный блок, то ставящие голосуют против него и происходит замена доверенного лица. Такой подход позволяет масштабировать сеть до нескольких миллионов транзакций в секунду. Хотя такой подход и несколько нарушает принцип децентрализованности криптовалют, но именно он позволяет работать в несколько раз быстрее остальных алгоритмов консенсуса в криптовалютах.