Безопасность, децентрализация и равные права. Как работает блокчейн

Хотя механизм PoW позволил установить надежный консенсус в глобальной сети, он совсем не подходит для приложений, требующих, например, очень высокую пропускную способность транзакций. Для преодоления этих различных ограничений были разработаны и внедрены новые механизмы консенсуса.
Какова цель механизмов консенсуса?
Цель механизма консенсуса в сети состоит в том, чтобы позволить членам сети согласовывать текущее состояние истории транзакций. Другими словами, это процесс, который позволяет сети, совместно использующей общую историю (блокчейн), согласовать действительность и порядок транзакций, которые будут добавлены в историю, путем последовательного добавления новых блоков.
Можно выделить следующие цели:
- Достижение консенсуса: механизм объединяет все групповые соглашения в максимально возможной степени.
- Взаимодействие: каждая группа стремится к соглашению, которое отвечает интересам группы в целом, все люди должны работать в команде и оставят свои личные интересы в стороне.
- Равные права: каждый участник имеет одинаковое значение при голосовании. Это означает, что голос каждого человека очень важен.
- Участие: каждый участник группы должен участвовать в голосовании. Никто не останется вне голосования.
Описание алгоритмов консенсуса:
Proof-of-work (PoW)
Proof-of-work — это алгоритм консенсуса, используемый для достижения соглашения, который определяет, какие из блоков будут добавлены в цепочку после майнинга. Цель этого протокола состоит в том, чтобы избежать кибератак, таких как отказ в обслуживании (DDoS). Он работает через добавление задачи, на которую требуется затратить весомый объем ресурсов. При этом валидатор на проверку будет тратить намного меньше времени. PoW является фундаментальным понятием для криптовалют, и в блокчейне этот алгоритм является ключевым фактором, при генерации новых блоков в цепочке. С PoW майнеры соревнуются друг с другом в совершении онлайн-транзакций и получении вознаграждений. В сети пользователи отправляют друг другу цифровые токены. База данных децентрализована и отвечает за все транзакции в блоках.
Proof-of-stake (PoS)
Proof-of-Stake (PoS) — это категория согласованных алгоритмов для открытых цепочек блоков, которые зависят от экономических интересов валидатора в сети. В общедоступных цепочках блоков, основанных на PoW (например, BTC и текущая реализация ETH), алгоритм поощряет участников, которые решают задачи криптографического шифрование для проверки транзакций и создания новых блоков (например, майнинга). В открытых цепочках блоков, основанных на PoS, группа валидаторов по очереди предлагает и голосует за следующий блок, и вес голоса каждого валидатора (то есть валидация) зависит от размера вашего депозита. Существенные преимущества PoS включают безопасность, снижение риска централизации и энергоэффективности. В общем, алгоритм выглядит следующим образом. Блокчейн отслеживает набор валидаторов, и любой, кто имеет базовую криптовалюту блокчейна, может стать валидатором, отправив транзакцию особого типа. Процесс создания и принятия новых блоков осуществляется через согласованный алгоритм, в котором могут участвовать все существующие валидаторы.
Leased proof of stake (LPoS)
В консенсусе LPoS держатели низких сумм в своем кошельке не смогут проверить блок — так же, как и майнеры с низким хэшрейтом не смогут добывать блок в PoW. На практике в обоих случаях обслуживание сети зависит от ограниченного числа пользователей с большим спектром полномочий (большие суммы или высокие показатели вычислительной мощности). Однако, чем больше распределена сеть, тем больше она будет защищена от бесчисленных типов атак. LPoS делает это, позволяя пользователям сдавать свои балансы в аренду. Арендованные средства остаются под полным контролем владельца и могут быть перемещены или потрачены в любое время (когда заканчивается срок аренды). Арендованные монеты увеличивают «вес» узла, увеличивая ваши шансы добавить блок в цепочку блоков. Все полученные вознаграждения распределяются пропорционально арендаторам.
Delegated proof of stake (DPoS)
DPoS работает таким образом, что валидаторы являются основными действующими лицами в любой конкретной сети блокчейна. Владельцы несут ответственность за голосование валидаторов, которым поручено проверить транзакции и формировать блоки.Это дает возможность исключить двойные траты и обеспечить безопасность. По сути, DPoS — это вариация PoS, которая была разработан для снижения затрат и высокого потребления электроэнергии, связанных с механизмами типа PoW. Метод DPoS был впервые реализован на платформе BitShares, разработанной ведущим разработчиком BitShares Даниэлем Ларимером. С тех пор другие блокчейны, такие как Крипти или Лиск, внедрили аналогичные системы ОИ. Разница между классическим механизмом PoS и механизмом DPoS аналогична разнице между PoS и DPoS. Для классического PoS у каждого пользователя есть определенная криптовалюта, которую он будет блокировать в конце размещения, то есть для участия в процессе проверки транзакции и формирования распределенного консенсуса, чтобы получить вознаграждение. В системе DPoS каждый портфель, содержащий единицы криптовалюты, может голосовать за делегатов пропорционально количеству принадлежащих ему единиц. Именно эти делегаты (101 в первой реализации BitShares), которые выполняют проверку транзакций, подписывая каждый новый блок своим закрытым ключом, гарантируют неприкосновенность данных реестра и возмещают стоимость транзакций, введенных в блок.
Proof-of-Capacity (PoC)
Этот конкретный алгоритм «майнинга» требует от пользователей совместного использования доступного места на HDD. В частности, для подтверждения емкости требуется, чтобы пользователи выделяли большое количество места на жестком диске, чтобы начать процесс генерации новых токенов. В определенном случаи это место на жестком диске используется в качестве хранения больших объемов данных. Выделение большего количества доступного места на HDD позволит пользователям иметь больше «участков» данных. Если хэш вместе заголовком последнего блока меньше определенного значения, пользователь генерирует блок. Этот принцип майнинга идентичен PoW, несмотря на отсутствие мощного компьютерного оборудования, задействованного каким-либо образом. Хранение данных является ценным для многих людей, и свободное место на HDD может быть использовано для получения небольшой пассивной выручки с помощью PoC. Прежде чем кто-либо даже подумает о покупке десятков жестких дисков для майнинга на этой системе, будьте уверены, это не будет стоить вашего времени. Те, которые имеют очень низкую ценность за токен, что означает, что вам понадобится очень большая сумма этой валюты, чтобы заработать немного денег. Даже тогда вам все еще нужно найти людей, желающих выкупить эти монеты, что иногда может быть довольно проблематичным. PoС может принести следующие преимущества: значительно сократить растрату ресурсов. После того, как пользователь платит один раз за место на жестком диске, последующий майнинг не требует сверхусилий.
Proof-of-Importance (PoI)
PoI — это консенсусный алгоритм, применяемый на площадке NEM. Proof of Importance — это модифицированный Proof of Stake, поскольку он не только оценивает количество токенов, но также учитывает активность счета и непрерывного пребывания в сети. Основанный в Сингапуре и запущенный в 2015 году, проект NEM направлен, прежде всего, на создание блокчейна, именуемой «Системой интеллектуальных активов», способного обрабатывать большой объем операций. Хотя интеллектуальные активы, выпущенные в рамках блокчейна, не являются новизной для криптоиндустрии. Это дает возможность майнерам работать на любом оборудовании, гарантируя полную безопасную сеть, которая может развиваться без ограничений.
Proof-of-Burn (PoB)
Название Proof of Burn говорит само за себя, это алгоритм который сжигает токены. Чтобы получить новую валюту, нужно «уничтожить» (сжечь) n-ное количество другой криптовалюты, полученной в системе pow. В теории, это приведет к тому, что каждая новая криптовалюта будет иметь стоимость уничтоженного токена. Другими словами, процесс «горения» токенов представляет силу виртуального майнинга, чем больше токенов пользователь инвестирует, тем больше у него мощности майнинга, и, следовательно, более высокие вознаграждения, поскольку, это станет большим шансом стать валидатором следующего блока.
Proof-of-Authority (PoA)
Алгоритм Proof of Authority в основном используется в сетях, где требуется аутентификация пользователя. Это связано с тем, что в PoA личность пользователя должна быть известна. Для сети это означает, что только доверенные ноды могут участвовать в майнинге. Если это доверие нарушено, сеть может заблокировать доступ для данного пользователя. В PoA мы можем столкнуться с полной централизацией, так как этот алгоритм может использоваться в закрытых пулах. Конечно, существует также возможность децентрализации, когда сетевое сообщество выбирает доверенных лиц — как в DPoS (однако в DPoS можно оставаться инкогнито). Блокчейны с Proof of Authority (PoA) входят в число «разрешенных» блокчейнов доступ к механизму консенсуса для участвующих валидаторов разрешен только должно быть — в отличие от «неразрешенных» блокчейнов, таких как PoW или PoS, в в принципе, каждый может принять участие в поиске консенсуса. Алгоритмы работают пошагово. В каждой транзакции выбран узел, который выступает в качестве лидера майнинга.
Proof-of-Elapsed-Time (PoET)
Чипмейкер Intel представила свой собственный альтернативный согласованный протокол под названием Time Elapsed Test. Эта система работает по принципу PoW, но потребляет гораздо меньше электроэнергии. Кроме того, чтобы участники решали криптографическую головоломку, алгоритм использует надежную среду исполнения (TEE) — такую как SGX — для обеспечения того, чтобы блоки создавались случайным образом, но без необходимой работы. Подход Intel основан на времени ожидания, предоставляемом через TEE. По словам Intel, алгоритм масштабируется на тысячи узлов и будет эффективно работать на любом процессоре Intel, поддерживающем SGX. Единственный недостаток этого протокола заключается в том, что он требует, чтобы вы полагались на Intel в качестве централизованного сервера.
Больше новостей о криптовалютах вы найдете в нашем телеграм-канале РБК-Крипто.
Что такое Proof of Work (PoW) в блокчейне?
Блокчейн обычно воспринимается через призму консенсуса биткоина от Накамото. Но чтобы понять, что такое Proof of Work, необходимо внимательно изучить его.
Proof of Work (обычно сокращенно PoW) – это консенсусный алгоритм, используемый для предотвращения атаки 51% или двойных трат. Криптовалюты, такие как биткоин, используют консенсус PoW для подтверждения транзакций и создания новых блоков, а также добавления их в блокчейн. С помощью PoW майнеры соревнуются за быстрое и точное выполнение транзакций в сети, за что получают вознаграждение.
Основные моменты:

- Понимание концепции Proof of Work и того, как она используется для обеспечения безопасности блокчейн-сети.
- Описание математических задач, которые решают майнеры; как эти вычисления влияют на общество в целом.
- Знакомство со сторонами, вовлеченными в процесс майнинга с помощью консенсуса Proof of Work.
- Перечисление криптовалют, которые все еще работают на модели Proof of Work, пояснение решения Ethereum о создании хардфорка Ethereum 2.0.
- Объяснение, почему консенсус Proof of Stake честнее и надежнее Proof of Work.
Как применяется Proof of Work в блокчейне?
Proof-of-Work – самый старый механизм консенсуса, а также самый популярный блокчейн алгоритм. Конечно же, есть много причин его распространенности. Главная из них – обеспечение честности в децентрализованной системе. Хотя существуют и другие алгоритмы, PoW по-прежнему способен выполнять задачу Византийской отказоустойчивости (BFT).
Разберемся, что такое BFT. Это система, способная противостоять ошибкам, возникающим в связи с задачей византийских генералов. Сеть может исключить ситуацию, когда некоторые ноды (или майнеры) пытаются идти против консенсуса. С помощью характеристик BFT алгоритм PoW работает так, чтобы ноды могли подтвердить блок в сети с помощью решения математических задач.
Первый, кто решит математическую задачу, получает разрешение консенсуса на выбор блока, который будет добавлен в блокчейн. Взамен, нод получает токены. Например, в сети Биткоин наградой будет BTC.
В итоге консенсус PoW создает относительно здоровую и прозрачную закрытую экономику. В основном, это делается для того, чтобы пользователи поддерживали экосистему.

Какие математические задачи решаются в PoW?
Эти математические задачи состоят из разнообразных необычных математических выражений. Кроме того, решение этих задач требует огромной вычислительной мощности.
Задачи представлены в разных формах – от задач византийских генералов до мудреной хеш-функции. Например:
- Хещ-функция. Она включает в себя процессы генерации случайного Output с определенной длинной через Input. Хеш – это числовое значение (или цель), которое определяет того, кто майнил блок лучше.
- Факторизацией целого числа называется его разложение на более мелкие части, а именно – в произведение простых множителей.
- Протокол конфиденциального вычисления защищает сеть во время DoS атак, которые требуют применения определенных мер. Вместо решения функции этот процесс направлен на анализ основных причин возникающей проблемы.
Итак, за каждое успешное подтверждение блока дается компенсация за усилия. Однако масштабируемость и надежность с ростом сети становятся камнем преткновения. Мощность хеша возрастает соразмерно сложности задач. В результате, был разработан алгоритм Proof ofStake, он должен решить проблемы Proof of Work.
Кто создал Proof of Work?
Консенсус PoW был создан еще до появления сети Биткойн. Алгоритм PoW был представлен в 1993, когда Мони Наор и Синтия Дворк опубликовали статью о противостоянии DoS атакам. В статье обсуждается потенциал алгоритма в предотвращении краж, а также в стабильности в долгосрочной перспективе.
До того, как Сатоши Накамото заговорил об алгоритме PoW в блокчейне Биткоина, программист и поклонник криптографии Хэл Финни (Гарольд Томас Финни II) представил другую систему, а именно – RPoW, Reusable Proof of Work в 2004 году. Система получала не подлежащий возврату и обмену Хешкеш, основанный на токене Proof of Work. Взамен создавался токен, подписанный RSA, который затем можно было переводить от человека к человеку.
Другой ранний пример применения алгоритма Proof of Work – Хешкеш Адама Бека. В этом случае от отправителя требуется небольшое количество вычислительной мощности перед тем, как отправить email. В результате, получатели могли уменьшить объем спама.
Как PoW связан с консенсусом биткоина от Накамото?
PoW использует модель, в которой ноды решают математические задачи, чтобы создать следующий блок для сети. В соответствии с вычислительной мощностью (или хеш) в формате лотереи выбирается лидер, который создаст следующий блок. В модели консенсуса PoWзадействованы майнеры и ноды.
Майнеры
Ноды, которые участвуют в процессе решения задач, называют майнерами, а сам процесс – майнингом. Сообщество майнеров необходимо для важной работы по решению каждой последующей задачи. PoW упрощает весь процесс, привлекая все другие ноды для подтверждения решения, как только нод создает блок.
Ноды
Нодам приходится тратить время на сложные и объемные вычисления. Из-за этого потребляется огромное количество электроэнергии, что вредно для окружающей среды. Децентрализованные ноды в сети должны проверить криптовалюту блокчейна, которая «майнится» за вознаграждение, используя механизм Proof of Work отдельных майнеров
Валидаторы
Основываясь на криптографических доказательствах и консенсусных правилах биткоина, операторы нодов действуют как конечные валидаторы состояния сети. Клиенты нодов также могут быть майнерами и отклонять недействительные блоки и транзакции в сети. Валидаторам требуется в среднем 40 и 60 минут, чтобы одобрить транзакции в блокчейн-сети в рамках механизма консенсуса Proof of Work.
Насколько безопасен PoW?
Алгоритм Proof of Work очень безопасен, так как он может противостоять BFT. Кроме того, то, как он работает, делает его еще более безопасным. Кроме того, хэш каждого блока содержит хэш предыдущего, что повышает безопасность и предотвращает любое нарушение блока на блокчейне Proof of Work.
Чтобы изменить блок, майнеры должны создать новый блок с частью предыдущего. Процесс требует участие всех сторон для возобновления работы, которую они выполняют. Таким образом, блокчейн может избежать вмешательства в систему безопасности.
Плюсы и минусы PoW
Плюсы
- Защита от DDoS-атак.
- Честность и прозрачность.
- Вовлечение небольшого ограниченного количества криптовалюты, которую держат майнеры
- Поддержка интереса общества к сохранению здоровой сети.
Минусы
- Затраты на профессиональное оборудование, иные устройства, также на электричество
- Сложные задачи, бесполезные для общего образования или рутины, необходимые лишь для подтверждения блока.
- Это делает блокчейн более централизованным нежели децентрализованным.
- Майнинг спадет на нет, как только награды перестанут быть привлекательными
Какие монеты используют Proof of Work?
Биткойн остается самой популярной монетой для использования консенсуса PoW. Однако есть много других монет, которые используют этот алгоритм. Хотя до халвинга биткойн остается прибыльным, многие майнеры сейчас ищут альтернативу, так как майнить блок становится все дороже и сложнее.
Естественно, все начинают спрашивать, какую криптовалюту лучше всего майнить. Вот наш список:
Litecoin: как и биткоин, Litecoin также имеет SegWit, в котором ограничение размера блока увеличивается за счет удаления данных из сети. Что отличает Litecoin от биткоина, так это его молниеносное время транзакций при гораздо более низкой стоимости.
DASH: он может похвастаться более быстрыми, а также более защищенными транзакциями в крипто пространстве. Мгновенные транзакции – еще один плюс для майнеров, чтобы заинтересоваться DASH.
Monero: это еще один популярный альткоин, который использует консенсус PoW. Как криптовалюта с открытым исходным кодом, Monero фокусируется на взаимозаменяемости, конфиденциальности, прозрачности и децентрализации через реестр.
Bitcoin Cash: Это спин-офф альткоин, хард-форк сети Биткоин. Хотя он использует PoW, который может показаться безопасным консенсусом, Bitcoin cash является одной из самых сильно пострадавших жертв атаки 51%.
ZCash: Альткоин направлен на обеспечение конфиденциальности через анонимность, в отличие от других криптовалют. Zcash использует те же самые хэш-функции Proof-of-WorkSHA-256, что и биткойн.
Ethereum Classic: несмотря на то, что Ethereum 2.0 уходит в PoS. Ethereum Classic до сих пор пользуется консенсусом PoW, чтобы обеспечить свою сеть. Однако, из-за небольшого размера блокчейна Ethereum Classic, он более уязвим для атак 51% и такого явления как двойная трата.
Proof of Stake лучше, чем Proof of Work?
В последние годы в криптопространстве все чаще обсуждается Proof of Stake (PoS). Сравнивая PoS и PoW, многие эксперты считают, что PoS, несомненно, лучше, чем PoW. И один из главных аргументов против PoW заключается в том, что он требует больших вычислительных мощностей, огромных трат электроэнергии, а также алгоритм негативно влияет на окружающую среду. Возьмем для примера Биткоин; среднее количество энергии, необходимое для поддержания сети биткоина, больше, чем использует вся страна Швейцария.
Кроме того, консенсус PoW находится под высоким риском централизации. Он был тщательно изучен на предмет его низкой производительности и масштабируемости выполнений транзакций.
Как правило, PoS-алгоритм также обеспечивает лучшие экономические преимущества (дивиденды) для своих пользователей, позволяя им запускать мастернод или помещать монеты на платформу для ставок и мастер-кодов. Это более справедливо и более надежно в долгосрочной перспективе.
Вывод
Как первоначальный механизм консенсуса, PoW представляет собой слияние различных теорий игр, распределенных вычислений, социального консенсуса, рыночной экономики и криптографических доказательств. Этот алгоритм создал технологию блокчейн, позволяющую сетям функционировать с безопасным, устойчивым и распределенным консенсусом.
Независимо от того, будет ли больше блокчейнов переходить на PoS в будущем, PoWвсе равно останется важным открытием для вычислительного дизайна и теорий игр.
Как работает майнинг биткоина. Что такое алгоритм PoW простыми словами

Майнинг криптовалюты — это процесс, который заключается в решении сложных математических задач для подтверждения транзакций и создания новых цифровых монет. Одним из наиболее широко используемых алгоритмов майнинга является Proof of Work (PoW), который обеспечивает безопасный и децентрализованный механизм подтверждения транзакций в сети биткоина или другой криптовалюте, работающей на PoW. В статье рассмотрим, как устроен алгоритм PoW, его преимущества и недостатки, а также некоторые популярные альтернативы, включая его различные вариации, используемые в таких монетах, как Raven и Ergo.
Что такое алгоритм Proof of Work (PoW) простыми словами
Алгоритм Proof of Work (PoW) — это механизм консенсуса, применяемый в майнинге криптовалюты. Проще говоря, он требует от майнеров решения сложных математических задач для проверки и записи транзакций в блокчейн. Каждый блок транзакций содержит уникальную задачу, и тот майнер, который решит ее первым, получает возможность добавить блок в общую цепочку и получить вознаграждение в виде новых монет. Сложность задачи возрастает по мере того, как в работе сети участвует все больше майнеров.
Преимущества PoW
Одним из преимуществ алгоритма PoW является то, что он защищает блокчейн от DDoS-атак, которые пытаются перегрузить сеть фальшивым трафиком. Кроме того, размер вознаграждения за майнинг в виде комиссий относительно невелик, что способствует справедливому распределению монет между майнерами. Награда за найденный блок вдвое уменьшается примерно раз в четыре года, этот процесс называется «халвинг» или «уполовинивание».
Минусы и недостатки PoW
- Атака 51%. Один субъект, контролирующий более 50% вычислительной мощности сети, может взять под контроль блокчейн, что делает его уязвимым для атак.
- Ограничения для графических процессоров. Алгоритм PoW неэффективен для майнинга с помощью видеокарт и требует специализированного оборудования, что может ограничить круг желающих присоединиться к добыче криптовалюты.
- Полезность результатов вычислений. Алгоритм PoW использует значительное количество энергии и вычислительной мощности для решения задач, которые не имеют практического применения за пределами майнинга.
- Крупные майнинговые фермы. Крупные майнинговые фермы со значительной вычислительной мощностью имеют непропорционально большое преимущество в майнинге и могут в дальнейшем монополизировать получение доходов.
Майнинг по алгоритму Proof-of-Work (PoW)
Майнеры используют вычислительные мощности для решения математической задачи, относящейся к каждому блоку транзакций. Эта задача может быть решена только путем перебора различных входных данных до тех пор, пока не будет найдено нужное значение. Первый майнер, решивший задачу, передает решение в сеть, а другие майнеры проверяют его, прежде чем добавить блок в цепочку.
Чтобы добавить блок в блокчейн с алгоритмом PoW, майнер должен первым найти достоверный хеш этого блока, применяя для этого вычислительные ресурсы своего устройства. Машины, созданные специально для выполнения этой функции (ASIC), способны вычислять триллионы уникальных хешей каждую секунду.
Шансы добавить блок в качестве одиночного майнера определяются количеством хешей, которые устройство майнера вычисляет в секунду, по отношению к общему количеству хешей, которые каждую секунду вычисляют все машины в сети. Как правило, блоки добываются крупными пулами, объединяющие мощности тысяч устройств участвующих в пуле пользователей. Крупнейшими из них являются Foundry, AntPool и собственный пул биржи Binance.
Альтернативы PoW
Cуществует несколько других алгоритмов работы криптовалют, которые также набрали популярность благодаря своим потенциальным преимуществам перед PoW.
- Proof of Stake (PoS). В этом алгоритме шанс майнера подтвердить блок зависит от количества монет, которыми он владеет. Этот алгоритм устраняет необходимость в мощных вычислительных ресурсах, необходимых для PoW, что делает его более энергоэффективным. Примерами являются Ethereum (ETH), Cardano (ADA) и Binance Coin (BNB).
- Directed Acyclic Graph (DAG). Этот алгоритм используется в IOTA (MIOTA) и позволяет подтверждать транзакции без необходимости майнерам решать сложные математические задачи. Он основан на структуре Tangle, которая представляет собой сеть отдельных транзакций, которые подтверждаются последующими транзакциями.
- Delegated Proof of Stake (DPoS). Это похоже на PoS, но вместо того, чтобы все держатели монет участвовали в подтверждении блока, они избирают делегатов для выполнения этой задачи. Примерами криптовалют, использующих этот алгоритм, являются EOS (EOS) и Tron (TRX).
- Proof of Capacity (PoC). Этот алгоритм требует от майнеров наличия свободного места на жестком диске, которое они используют для решения математических уравнений. Chia (XCH) — криптовалюта, использующая этот алгоритм и стремящаяся быть более экологичной, чем криптовалюты на основе PoW.
Существуют и другие вариации алгоритма PoW, такие как X16R, который использует монета Ravencoin, или Autolykos у монеты Ergo. Они также созданы для устранения ограничений традиционного алгоритма PoW и повышение эффективности майнинга.
Proof of Work — это фундаментальный алгоритм, который широко используется для защиты блокчейна, позволяя майнерам решать сложные математические задачи и зарабатывать вознаграждение в криптовалюте. Несмотря на преимущества, главным из которых является его проверенная годами надежность, у него есть и минусы, включая возможность атак 51% и концентрацию власти в руках крупных майнинговых ферм.
По мере развития технологии можно ожидать появления дальнейших инноваций и альтернатив PoW, которые обладают различными преимуществами и недостатками. В конечном итоге выбор алгоритма будет зависеть от множества факторов, включая конкретные потребности и цели сети и ее пользователей.
Больше новостей о криптовалютах вы найдете в нашем телеграм-канале РБК Крипто
Proof-of-Work для чайников
Вы наверняка слышали, что блокчейн обеспечивает безопасное хранение данных. Но за счёт чего ему это удаётся?
В статье «Что же такое блокчейн на самом деле?» мы разобрались, что делает блокчейн децентрализованным, и затронули понятие Proof-of-Work — PoW, доказательство работы. Однако мы не обсудили в деталях, как работает механизм, какие проблемы решает и с какими трудностями сталкивается.
Децентрализация — ключевое свойство блокчейна, но она делает его потенциально уязвимым. Когда один участник сети хочет загрузить свою копию блокчейна, как другому пользователю узнать, что загружается «правильный» блокчейн? Если в сети тысячи компьютеров, что мешает сотням из них начать бомбардировать нового пользователя данными, которые они вместе подделали?
В информатике это называется задачей византийских генералов . Это очень сложный вопрос, но мы всё равно постараемся в нём разобраться.
Если вы знакомы с игрой в испорченный телефон, то понимаете, как легко исказить информацию при передаче по цепочке ради шутки или желая подставить другого. Дело в том, что в этой игре правда и ложь стоят одинаково. Но что если бы за подложные данные пришлось доплачивать?
Алгоритм Proof-of-Work (PoW) позволяет участникам блокчейн-сети знать, была ли предлагаемая им информация создана бесплатно или её авторам пришлось серьёзно вложиться в её создание.
Почему PoW столь важен
PoW используется в биткоине для решения нескольких проблем, стоящих перед децентрализованной сетью, у которой нет «начальства». Рассмотрим самые важные из них.
- Какая версия истории правильная?
В сети, где вам нужно знать, кто располагает деньгами, кто тратил деньги и кто их получал, история — это всё. Раньше считалось, что участникам децентрализованной сети, которой никто не руководит, невозможно достичь полного консенсуса и согласиться друг с другом.
Время в сети имеет решающее значение, так как биткоин создаёт новые монеты каждые десять минут. В традиционной системе вы просто скажете: «Посмотри на часы», но в децентрализованной глобальной системе встаёт вопрос, на чьи часы смотреть.
Представим, что новый компьютер присоединяется к сети сегодня. «Старожил» может сказать: «Эй, вот деньги, которые я отчеканил шесть месяцев назад, и деньги, которые я отчеканил ещё через десять минут». Как новый участник сети сможет подтвердить действия, которые были совершены в прошлом?
Чтобы понять, как Proof-of-Work справляется с этими двумя вопросами, вы сначала должны понять, что это за механизм и как он работает.
Анализ Proof-of-Work: Без кода совсем никуда
Когда Стивен Хокинг писал свой шедевр «Краткая история времени», коллега сказал ему, что каждая научная формула, которую он включит в книгу, уменьшит количество читателей на 50%. Так что в итоге Хокинг оставил только знаменитую Эйнштейновскую E= mc 2 . Книгу Хокинга в итоге прочли миллионы людей, многие из которых весьма далеки от физики.
Поскольку эта статья нацелена на широкую аудиторию, постараемся использовать в ней как можно меньше кода.
Напомним, что хеш-функция предоставляет собой уникальный цифровой отпечаток части данных. Например, уникальный хеш для имени Мэтт — это длинный фрагмент текста:
Если кто-то видит этот хеш, он не знает, что за ним стоит, но мы можем сказать: «Если вы напечатаете текст matt с помощью компьютерной программы, то сможете доказать, что мы знаем, что представляет собой этот хеш. Дело в том, что ваша программа будет генерировать один и тот же хеш, следовательно, мы знаем, к чему относится этот хеш».
Когда майнер создаёт новый блок для блокчейна, он должен предоставить сети два хеша: один из них — хеш всех транзакций в блоке, а другой — хеш, который доказывает, что майнер потратил огромное количество энергии на создание блока. Эти затраты делают нерентабельным искажение данных. Но для этого, как упоминалось в предыдущей статье , майнерам необходимо работать в системе, действующей по типу лотереи, где может быть только один победитель. Обе эти задачи решаются с помощью Proof-of-Work.
Скажем, если вместо matt хешировать matt0 , мы получим такой хеш:
Если сравнить его с хешем matt , легко заметить, что хеши совершенно разные:
Hash(matt) =
4f31fa50e5bd5ff45684e560fc24aeee527a43739ab611c49c51098a33e2b469
Hash(matt+0) =
c5163e81b6dff231b46b584384718ffb734da51d51009399b4b5c73aaa55a811
Криптографические хеш-функции всегда возвращают одинаковое значение для заданной части данных.
Теперь хешируем, например, matt14 и получим:
Hash(matt + 14) =
0ec48972291a05f8b137468c709bf798dbd8b84bc113b5352e81d2bb20d43120
Но зачем это делать? Представьте, что компьютер поставил перед нами задачу: «Дайте мне первое число, добавленное в конце имени Мэтт, в результате чего хеш будет начинаться с нуля».
С помощью своего компьютера мы начинаем генерировать хеши до первого совпадения:
Hash(matt + 0) =
c5163e81b6dff231b46b584384718ffb734da51d51009399b4b5c73aaa55a811
Hash(matt + 1) =4755a40d3769d7614fb31229fedea4d5e247b3ab8cdc223c4b4f5e3cf9910b4c
Hash(matt + 2) =3f8aad849c3ac625d61ae58929ac1bbf5626592a28dc5368b19b2ef40f514f59
В конце концов, дойдя до matt14 , мы получили бы хеш, который начинается с нуля:
Наш компьютер отвечает текстом matt14 и включает хеш; принимающий компьютер смотрит, соответствует ли полученный хеш тому, который был запрошен.
Это доказывает, что наш компьютер провёл расчёты, добавляя цифры от 0 до 14, чтобы найти этот хеш. Это эффективно, поскольку наш компьютер выполнил 15 действий, а принимающий компьютер смог проверить это с помощью одного действия.
Фактически мы предоставили доказательства своей работы, то есть выполнили доказательство работы.
Компьютер способен создавать миллионы хешей в секунду, 15 операций приведены только для примера: на деле такое доказательство работы не имеет особого смысла. Но представьте, что группа других компьютеров сообщает нашему следующее задание: «Предоставьте нам действительный блок транзакций, его хеш, а также число, которое приведёт к хешу, начинающемуся с 15 нулей».
Изначальная команда поступит в обработку мгновенно:
BlockHash = Hash(‘All of the transactions in the current block’)
После чего наш компьютер приступит к вычислениям:
Hash(BlockHash + 0)
Hash(BlockHash + 1)
Hash(BlockHash + 2)
Чтобы найти хеш с 15 нулями в начале, потребуются многие триллионы попыток. Медленный компьютер потратил бы на это сотни лет, а несколько мощных компьютеров справились бы за считанные минуты.
Эти компьютеры, очевидно, будут съедать много электричества. Из-за затрат на электроэнергию майнеру невыгодно находить допустимый хеш для недопустимого блока транзакций. То есть майнеру глупо подтверждать «неправильный» блок, утверждая, что все транзакции действительны, и просто переходить к хешированию. Остальные компьютеры в сети отклонят недействительный блок, и майнер не получит своё вознаграждение.
Одна из вещей, которая помогает поддерживать децентрализацию майнинга, заключается в том, что двое майнеров не могут хешировать одинаковые блоки. При хешировании «a + b» получается не тот же результат, что при хешировании «b + a». Майнеры получают транзакции по сети в разном порядке; из-за этого, а также из-за индивидуальных предпочтений в вопросах комиссии каждый майнер обрабатывает блок немного иначе.
Хотя все блоки, возможно, были подтверждены правильным образом, только один блок может войти в блокчейн. Все майнеры должны будут продолжать хешировать, пока не найдут число, которое при добавлении к их блоку даёт результат, начинающийся с такого числа нулей, которое сеть согласилась принять как действительный показатель.
Чтобы поддерживать финансовую политику биткоина, сеть должна гарантировать создание нового блока раз в десять минут. Сеть делает это путём корректировки сложности добычи каждые две недели. Поэтому, если блоки обнаруживаются слишком быстро из-за количества новых майнеров, сеть для снижения инфляции увеличивает требуемую сложность, и майнерам приходится искать хеши с большим количеством нулей в начале.
Невозможно заранее узнать, каким будет этот хеш, поэтому майнеры должны работать быстро, используя множество быстрых компьютеров. Поскольку в этой «игре» присутствует элемент случайности, майнер с самым мощным компьютером не всегда выигрывает. Представьте это как лотерею, где пользователь с самым большим количеством билетов имеет больше шансов на победу, но не побеждает каждый раз.
Краткое повторение пройденного: майнер создаёт блок действительных транзакций, а затем запускает Proof-of-Work на этом блоке, надеясь найти хеш, установленный правилами сети, раньше других майнеров. В случае успеха его блок войдет в блокчейн, и он получит своё вознаграждение плюс свежевыпущенный биткоин.
В следующий раз, когда вы услышите в СМИ о том, что майнеры зарабатывают биткоины, решая сложные математические задачи, вы будете знать, о чём идет речь.
Проблемы Proof-of-Work
Майнинг с алгоритмом Proof-of-Work — не единственный известный метод достижения консенсуса в децентрализованной сети. Тем не менее это самый безопасный и меньше всего подверженный централизации на сегодняшний день вариант.
Существуют и другие системы, такие как Proof-of-Stake: она направлена на решение некоторых проблем, связанных с Proof-of-Work, но в целом ведёт к полудецентрализованной (или полуцентрализованной) сети.
Итак, с Proof-of-Work связаны две проблемы.
Высокое энергопотребление
Хеширование от matt до matt+14 занимает меньше одной микросекунды. Однако сеть биткоина состоит из миллионов специально разработанных микрочипов, хеширующих каждые десять минут. Это требует много энергии!
Текущий хешрейт биткоин-сети составляет 20 экзашей в секунду, или, проще говоря, сеть создаёт 20 млрд. хешей в секунду. Обычный компьютер не может выдать даже 1 млрд. хешей в секунду; но если бы это было возможно, понадобилось бы 20 млрд. компьютеров, чтобы иметь такой же хешрейт, как у сети биткиона.
Биткоин-майнеры используют специальные чипы, разработанные для хеширования. Это защищает сеть от атак ботнетов, при которых хакеры захватывают множество компьётеров и используют их для майнинга. Хакеры могут сделать это, но мощности всех доступных им компьютеров не хватит для того, чтобы обмануть сеть биткоина. Созданные хакерами блоки просто будут отклонены.
Блокчейн хранит историю всех когда-либо созданных блоков, включая Proof-of-Work для каждого блока. Когда новый компьютер присоединяется к сети, он загружает весь блокчейн и проверяет каждый фрагмент работы, чтобы гарантировать, что всё верно. Хакеры могут отправить пользователю неправильный блокчейн, но программное обеспечение пользователя подключится ко многим компьютерам и рассмотрит самую длинную цепочку с самым длинным кумулятивным доказательством работы — и это будет «истинный» блокчейн.
Это то, что мы называем термодинамически безопасным , или защищённым законами физики . Если хакеры хотят запутать сеть, им необходимо сжигать больше энергии на более быстрых компьютерах, чем самой сети. Это обойдётся в сотни миллиардов долларов; если бы хакеры могли обладать такими ресурсами, они нашли бы более экономичный вариант играть по правилам и зарабатывать биткоины.
Из-за модели безопасности биткоина, где сеть защищена потребляемой ей энергией, главная криптовалюта рассматривается как нечто очень энергоёмкое. В то время как население планеты стремится уменьшить глобальный углеродный след, это обеспечивает СМИ новостями, способными переполошить и напугать общественность.
Из-за того, что электричество представляет собой самую серьёзную статью расходов, с которой сталкиваются майнеры, добыча биткоинов связана не только с гонкой за правильным хешем, но и с поиском самого дешёвого электричества. Лучшим решением для получения дешёвой энергии было использование гидроэнергетики и других возобновляемых источников. Победителем в гонке станет тот, кто найдёт самое дешёвое электричество. Таким образом, биткоин поддерживает развитие современных видов энергетики и способствует защите окружающей среды.
Централизация майнинга
Границы рентабельности добычи биткоинов очень тонкие. Чтобы получить прибыль, вам нужно иметь доступ к дешёвому электричеству, и его поставки должны быть надёжными. Пока большая часть добычи биткоина приходится на западные провинции Китая, где в избытке производится дешёвая электроэнергия. Напротив, модель Proof-of-Stake не имеет географической привязки.
Ситуация может накалиться в том случае, если монопольный производитель оборудования для майнинга биткоинов решит диктовать свои правила, не учитывая интересы клиентов. Это приведёт к централизации сети. Однако, если производитель оборудования захочет слишком многого, пользователи сети могут договориться об изменении метода Proof-of-Stake. В таком случае выпускаемое монополистом оборудование в один момент станет ненужным мусором.
Теоретически, на прибыльном рынке должно быть достаточно конкуренции, но в этой области потребители предпочитают покупать только то оборудование, которое обещает наибольшую прибыль. Некоторые полагаются на закон Мура и верят, что в итоге ни один майнер не будет иметь преимущества над другим; другие считают, что лидеры на рынке будут постоянно сменять друг друга.
Одно можно сказать наверняка: на сегодняшний день Proof-of-Work обеспечивает самый высокий уровень безопасности для децентрализованных блокчейн-сетей.