Эволюция алгоритмов — полное руководство

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

PoW — Proof of Work (доказательство работы)

Алгоритм не изобретен Сатоши

Алгоритм Proof of Work является пионером в истории развития индустрии криптовалют. Стоит отметить, что знаменитое Proof of Work было разработано в конце 20-го века, но вряд ли его создатели тогда подумали бы, что они дадут толчок развитию такой глобальной технологии.

Теперь вы можете испытать небольшой шок — технология доказательства работы не была разработана таинственным Сатоши Накамото. Идея принадлежит исследователям Moni Naor и Cynthia Dwork, которые предположили, что для того, чтобы обезопасить доступ к сетевому ресурсу, пользователю необходимо выполнить определенную задачу. Адам Бек использовал эту идею в проекте Hashcash в 1996 году, задачей которого было защитить электронную почту от спама. И только в 1999 году этот механизм получил привычное название «Proof of Work», которое было внедрено в систему защиты сервера от DDoS-атак.

Основные принципы работы

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

Рабочий процесс Proof of Work можно разделить на четыре этапа:

  1. Транзакции, входящие в blockchain, случайным образом объединяются в отдельные блоки;
  2. Майнеры, решая сложную задачу (Proof of Work Problem), подтверждают транзакции;
  3. Подтвержденная транзакция вводится в цепочку распределения blockchain;
  4. Майнер, который первым решил проблему с проверкой работы (чтобы найти хеш), получает вознаграждение.

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

Proof of Work Недостатки

PoW далеко не совершенен (неудивительно, что у него так много альтернатив).

Основными причинами, по которым разработчики реже обращаются к этому алгоритму консенсуса, являются:

  • Стоимость электроэнергии превышает доход от добычи

Поиск хеша становится все труднее, что способствует увеличению времени решения проблемы. Единственное решение — купить еще более мощное оборудование, которое увеличивает энергопотребление.

  • Атака в 51% — главная угроза сети в PoW

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

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

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

Но, как и для других криптовалют на Proof of Work, такой сценарий весьма вероятен, поэтому пришло время обсудить алгоритм Proof of Stake.

Proof of Stake

Ваш ASIC ничего не решает здесь

Понимая все проблемы Proof of Work, пользователи bitcointalk.org в 2011 году озвучили совершенно новую и дальнейшую революционную идею, где вычислительная мощность не является приоритетом.

Алгоритм Proof of Stake предоставляет право голоса на основе консенсуса, предоставляя определенное количество криптовалюты в качестве залога — доли в сети. Чья сумма больше, он получает награду за генерацию блоков выше.

Этот алгоритм был впервые показан в действии в 2012 году, валидаторы сети PeerCoin на своем примере доказали, что это возможно. PoS можно найти сегодня в криптовалютах DASH, Neo, Stratis, ReddCoin, NavCoin и MasternodeCoin.

С точки зрения надежности и безопасности, PoW имеет преимущество перед PoS. Однако PoS намного более энерго эффективен, чем его предшественник.

Майнинг это, или нет?

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

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

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

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

Основные принципы работы

  1. Пользователь после покупки монет должен перевести их на свой адрес кошелька.
  2. Используя специальное программное обеспечение, пользователь переключает криптовалюту в режим ноды.
  3. Регистрация адреса кошелька в сети.
  4. После активации кошелька (обычно это занимает один день), он начинает майнинг на своем устройстве. Единственное условие — узел должен постоянно находиться в сети.
  5. Программа майнинга отвечает за необходимые расчеты (как с PoW), и через месяц, вы получите свои заработанные монеты.

Proof of Stake недостатки

  • Сетевая зависимость

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

  • Децентрализация теряет смысл

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

  • Угроза договоренностей

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

Delegated Proof of Stake

Модифицированный Proof of Stake

Делегированное подтверждение кола, является альтернативой PoW и PoS. Алгоритм DPoS является результатом разработки проекта Graphene, который был представлен в 2014 году. Создатели алгоритма решили разделить участников на тех, кто имеет право голоса в сети и кто может проверять транзакции. В результате держатели монет не являются валидаторами транзакций.

Анонимность только на заднем плане

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

Основные принципы работы

  1. Пользователь, претендующий на статус проверки, баллотируется для публичного голосования.
  2. Сетевое сообщество путем всеобщего голосования определяет достойного кандидата (здесь следует помнить, что вес каждого голоса определяется количеством средств избирателей).
  3. По результатам голосования отбирается 20-50 кандидатов, которым предоставляется право формировать новые блоки транзакций.
  4. Выбранные валидаторы выстраиваются в случайном порядке с использованием специального алгоритма.
  5. В течение определенного периода времени, каждый из валидаторов в очереди должен формировать один блок. Валидатору часто дается 1 секунда для проверки новых транзакций и формирования нового блока на основе предыдущей. Если он опаздывает, этот процесс переходит в зону ответственности следующего пользователя в очереди.

Делегированное подтверждение недостатков кола

  • Отсутствие анонимности.
  • Возможна централизация.

Leased Proof of Stake

Алгоритм Leased Proof of Stake отличается от DPoS тем, что пользователь, имеющий небольшое количество монет, имеет возможность представить их другому пользователю, который нацелен на большой «вес» своего узла в сети. Согласно этому механизму, «весомые» пользователи, получив награду, будут оплачивать аренду тех монет, которые были предоставлены им менее обеспеченными членами сети.

Этот консенсусный механизм используется в сети Waves.

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

Proof of Importance

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

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

Этот вид консенсуса PoS используется в blockchain NEM.

Proof of Q

Алгоритм PoQ объединяет возможности Pow и PoI. Такая консенсус-модель блокчейна, была реализована в проекте DollarBit. Следует отметить, что PoQ, как и в PoI, учитывает активность пользователей в сети. Однако есть и обычная добыча PoW.

DollarBit утверждает, что их монета может конкурировать со старым BTC и даже опережать его, поскольку майнинг происходит с помощью вычислительной мощности, но при определении уровня участия (Qp), который не зависит от количества активов на остаток средств.

Proof of Authority

PoA предназначен для использования в централизованных сетях и расшифровывается как метод проверки полномочиями. Такой алгоритм может легко вписаться в рабочий процесс компании, где определены основные «полномочия». Суть в том, что только сетевой узел может подтвердить блок, если у него есть это право. При таком подходе возможность получения контроля над сетью со стороны, исключается. Даже при 50% вычислительной мощности, манипулировать процессом генерации блоков будет невозможно, так как необходимо дополнительно получить 50% доли монет.

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

Алгоритм PoA можно увидеть в действии, в блокчейне NXT.

Proof of Capacity

Этот представитель согласованных алгоритмов также может быть найден под названиями «Proof of Space» или «Proof of Storage. Механизм Proof of Capacity означает получение прибыли за подтверждение блока при предоставлении свободного места на жестком диске. Чем больше места предоставит пользователь, тем выше будет вознаграждение.

Этот метод майнинга криптовалюты довольно популярен, поскольку почти у всех есть место на диске. Более того, любые жесткие диски, например, и устройства на ОС Android, подходят для PoC майнинга.

Есть недостаток, и он существенный — хакеры создают и распространяют вредоносное ПО в сети, которое использует для поиска места на жестких дисках людей, которые даже не знают о существовании криптографии.

Майнинг на жестких дисках представлен в монете BurstCoin.

Византийская Отказоустойчивость

BFT является одним из перспективных решений для сетей, которые хотят устранить проблему низкой пропускной способности.

Протокол BFT имеет несколько разновидностей:

  • Делегированный византийский отказоустойчивость (DBFT);
  • Практическая Византийская Отказоустойчивость (PBFT);
  • Федеративное Византийское Соглашение (FBA).

Этот вид консенсуса сохраняет целостность всей сети, даже с помехами в нескольких узлах. Суть в том, что мастер-узлы и узлы принимают участие в развитии сети. Они несут ответственность не только за подтверждение транзакций и их ввод в blockchain, но и за выявление «плохих» узлов, которые пытаются скомпрометировать систему.

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

В случае DBFT решение принимается не одним узлом, а всеми мастер-узлами путем достижения консенсуса, что исключает мошенничество в сети. После положительного ответа от главного узла, узел вводит транзакцию в сеть.

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

При проведении транзакции все узлы решают путем голосования, верить ли валидатору или нет. Если 67% участников высказались за эту сделку, консенсус достигнут.

Но в случае Федеративного византийского соглашения (FBA), транзакции подтверждаются определенным числом участников, которые находятся в сети на момент принятия решения. В отличие от PBFT и DBFT, узлы и мастер-узлы не выбираются заранее; с FBA любой может подключиться к сети.

Заключение

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

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

Mpdblog.ru