Технология Proof-of-Work
Вкратце:
- Proof-of-Work - это алгоритм консенсуса, который защищает децентрализованную сеть блокчейна биткойн.
- Биткойн-майнеры пытаются решать сложные математические уравнения с помощью энергоемкого процесса, чтобы генерировать новые блоки и получать вознаграждения в биткойнах.
В майнинг технология Proof-of-Work (доказательство работой) пришла вместе с Bitcoin и применяется для разгадывания блока (майнинга) с помощью специального оборудования.
Суть PoW проста: майнер решает сложную криптографическую задачу при помощи своего оборудования, отправляет результат решения в систему, которая сверяет это решение с проверочным шаблоном.
Если решения совпали – за выполненную работу майнер получает вознаграждение, при этом размер вознаграждения фиксированный (например, за разгадывание блока Bitcoin майнер получит 12,5 btc).
Однако из-за возросшей сложности разгадывания блока майнеры объединяются в пулы, где суммируется мощность их оборудования и разгадывание блока происходит быстрее. При этом размер вознаграждения делится между всеми майнерами, разгадывавшими этот блок пропорционально задействованным мощностям.
Интересно. Технология PoW существовала задолго до появления Bitcoin: в 1993 году в научной статье, авторами которой были Синтия Двор и Мони Наор. Они не дали название технологии, а лишь предложили концепцию: для доступа к какому-либо абстрактному ресурсу нужно решить определенную задачу. Идею подхватил Адам Блэк, запустивший в 1997 году проект Hashcash, основная задача которого заключалась в защите ресурса от спама. Через 2 года появился термин Proof of Work в научной статье Маркуса Якобсена и Ари Джуэлса.
Процесс майнинга биткойнов основан на Hashcash, системе доказательства работы, изобретенной Адамом Бэком в 1997 году для борьбы со спамом в электронной почте и атаками типа «отказ в обслуживании». Бэк, один из первых биткойнеров, отрицает, что он является создателем криптовалюты, Сатоши Накамото.
Какие криптовалюты используют PoW?
Proof-of-Work - это доминирующая модель консенсуса среди криптовалют. Гиганты PoW это - Bitcoin и Ethereum. Также используют ее и другие популярные монеты, такие как Litecoin, Dogecoin, Bitcoin Cash и Monero.
Ознакомиться со всеми монетами, работающие на PoW, Вы можете на нашем сайте!
Пример, в котором не используется функция pow()
#include
В этом примере пользователь вводит числа n и a. Где n - число, которое возводится в степень, a - степень числа. В цикле for, мы умножаем число n на само себя a раз и в результате получаем степень.
Суть Proof of Work и как работает
Это объяснение будет сосредоточено на том как функционируют Proof of Work (или доказательство выполнения работы) в сети биткойнов. Биткойн — это цифровая валюта (криптовалюта), в основе которой лежит своего рода распределенный реестр, известный как « блокчейн » или цепочка блоков. Этот реестр содержит записи всех транзакций биткойнов, организованных в последовательные «блоки», так что ни одному пользователю не разрешается тратить свои активы дважды. Во избежание подделки реестр является публичным или «распределенным». В случае чего, измененная версия реестра будет быстро отклонена другими пользователями.
На практике пользователи обнаруживают подделку с помощью хэшей, длинных цепочек чисел, которые служат доказательством работы. Пропустите заданный набор данных через хэш-функцию (биткойн использует SHA-256), и он будет генерировать только один хэш. Однако из-за «лавинного эффекта» даже незначительное изменение любой части исходных данных приведет к полностью неузнаваемому хэшу. Каким бы ни был размер исходного набора данных, хэш, сгенерированный данной функцией, будет такой же длины. Хэш — это односторонняя функция: его нельзя использовать для получения исходных данных, только для проверки того, что данные, которые сгенерировали хэш, соответствуют исходным данным.
Генерация любого хэша для набора биткойн-транзакций была бы тривиальной задачей для современного компьютера, поэтому, чтобы превратить процесс в «работу», биткойн-сеть устанавливает определенный уровень «сложности». Этот параметр настроен таким образом, что новый блок «добывается» — добавляется в цепочку блоков путем генерации действительного хэша — примерно каждые 10 минут. Установка сложности достигается путем установления «цели» для хэша: чем ниже цель, тем меньше набор действительных хэшей и тем сложнее его сгенерировать. На практике это означает хэш, который начинается с очень длинной строки нулей.
Proof of Work (доказательство выполнения работы) изначально создавалось как предлагаемое решение растущей проблемы спама в электронной почте.
Недостатки алгоритма PoS
Основные проблемы: огромные расходы, «бесполезность» вычислений и «атака 51%».
Для сложных расчетов требуется специализированное и дорогое компьютерное оборудование. Расходы неуправляемо растут, и майнинг становится возможен только для больших групп майнеров. Кроме того, специализированные компьютеры потребляют массу энергии, что увеличивает затраты. Следствием из этого становится постепенное повышение централизации системы, поскольку это выгодно. И именно это происходит в случае с биткоином.
Майнеры выполняют работу по созданию блоков, попутно потребляя огромное количество энергии, но вычисления, которые они делают, совершенно бесполезны сами по себе. Да, они гарантируют безопасность в сети, но их результаты нельзя использовать в бизнесе или в науке.
Особенности Proof of Work
Поскольку данный набор данных может сгенерировать только один хэш, как майнеры убедиться, что они генерируют хэш ниже целевого? Они изменяют ввод, добавляя целое число, называемое nonce (от англ. «number used once» или «число, используемое один раз»). Как только действительный хэш найден, он транслируется в сеть, и блок добавляется в цепочку блоков.
Майнинг — это соревновательный процесс, но это скорее лотерея, чем гонка. В среднем кто-то будет генерировать приемлемое доказательство выполнения работы (proof of work) каждые десять минут, но кто это будет, остается только гадать. Майнеры объединяются, чтобы увеличить свои шансы на добычу блоков, что генерирует комиссию за транзакции и, в течение ограниченного времени, вознаграждение в виде вновь созданных биткойнов.
Proof of Work чрезвычайно затрудняет изменение любого аспекта блокчейна, поскольку такое изменение потребует повторного майнинга всех последующих блоков. Это также затрудняет монополизацию вычислительной мощности сети для пользователя или группы пользователей, поскольку оборудование и мощность, необходимые для выполнения хэш-функций, являются дорогостоящими.
Если часть майнинг-сети начинает принимать альтернативный Proof of Work (доказательство выполнения работы), это называется хардфорк.
Что такое атака 51% и какова ее угроза?
Атака 51% или атака большинства возможна в ситуации, когда пользователь или группа пользователей контролируют большую часть мощностей сети — это дает им возможность контролировать происходящие в сети события. Так, они могут монополизировать создание новых блоков и получать все вознаграждение, поскольку в их власти помешать другим майнерам завершать блоки.
Кроме того, они могут отменять транзакции.
Предположим, Алиса послала Бобу деньги через блокчейн. Алиса участвует в атаке 51%, а Боб — нет. Их транзакция помещается в блок, но атакующие не дают переводу состояться. Происходит раздвоение блокчейна.
Далее атакующие майнеры присоединяются к одной из веток, и, поскольку у них больше вычислительной мощности, их цепочка содержит больше блоков.
Сеть устроена так, что принимается более длинная цепочка, а короткая отклоняется, а значит, сделка между Алисой и Бобом не состоялась, и Боб не получил деньги.
Вот таким образом злоумышленники могут отменять транзакции.
Атака 51% вряд ли может быть выгодной. Она требует огромных вычислительных ресурсов, а как только факт становится известен, сеть считается скомпрометированной и из нее начинают уходить пользователи, что с неизбежностью приводит к снижению цены криптовалюты.
Как работает блокчейн и транзакции?
От этого механизма зависит точность и скорость блокчейна. При этом проблема не должна быть слишком сложной — в этом случае генерация блока займет много времени, а значит, в сети «зависнет» много незавершенных транзакций. Если проблема не может быть решена за предсказуемое время, создание блоков станет счастливой случайностью.
Если же проблема решается слишком просто, это делает систему уязвимой для злоупотреблений, спама и DoS-атак.
Решение должно быть легко проверяемо, в противном случае не все узлы смогут понять, правильно ли был проведен расчет, а значит, им придется доверять другим узлам, что не согласуется с одним из важнейших принципов блокчейна — полной прозрачностью.
Как Proof of Work работает в блокчейне
Впервые использование Proof of Work в блокчейне (распределительном децентрализованном реестре) описано в whitepaper Биткоина. PoW Сатоси Накамото предполагает использование вычислительных ресурсов компьютеров участников системы для валидации транзакций с использованием асимметричной схемы: работа должна быть умеренно сложной (но выполнимой) со стороны запрашивающей стороны, но легко проверяемой поставщиком услуг.
Для этого всех участников системы Биткоин разделили на две группы: майнеры и операторы полного узла.
Майнеры — это участники экосистемы, которые конкурируют между собой за решение математической головоломки, чтобы сгенерировать новый блок (подтвердить последние транзакции) и транслировать его в сеть блокчейна. Победивший майнер получает вознаграждение в виде новых монет (сейчас — 6.25 BTC за блок) и комиссий с подтвержденных транзакций.
Вероятность выигрыша зависит от соотношения вычислительной мощности устройства отдельного майнера к вычислительной мощности всей сети Биткоина. Это правило, как и награда за майнинг, введены, чтобы стимулировать участников к повышению мощности их устройств, что в свою очередь повышает безопасность блокчейна в целом: чем выше суммарная мощность системы, тем больше ресурсов нужно потратить для ее захвата или взлома, например, посредством Атаки-51%.
Операторы полного узла (полная нода) — это обычные пользователи, скачавшие дистрибутив блокчейна Биткоин (около 300 ГБ), который автоматически проверяет и распространяет транзакции и блоки в сети. Такие пользователи — ядро блокчейна, поскольку они являются серверами, обеспечивающими работоспособность системы.
Стать майнером и / или оператором полного узла может любой желающий. При этом один пользователь может выполнять обе эти роли параллельно.
Отличия между Proof-of-Stake и Proof-of-Work
Очевидное преимущество Proof-of-Stake перед Proof-of-Work заключается в том, что его выполнение не требует от майнеров гигантского расхода электроэнергии, что делает его намного более эффективным. Но это не единственное его достоинство. Он также позволяет реализовать системы управления нового поколения, например, предоставив участникам сети возможность принять участие в выборе между хард- и софт-форками.
В плане превосходства PoS над PoW, можно сказать, что для проведения атаки на сеть требуется огромное количество монет, что по сути приводит к ее нецелесообразности для владельца этих же монет, так как он(они) пострадает от этой атаки в первую очередь.
В то же время PoS побуждает к накоплению монет в одних руках, что может негативно сказаться на децентрализации сети. Если найдется майнер или группа майнеров, который(которые) сосредоточит в своих руках большую часть ресурсов сети, то он(они) сможет диктовать свои правила остальным участникам сети.
PoW и PoS это основные механизмы, которые используются для подтверждения выполненной работы в сетях криптовалют, однако есть и другие менее известные и распространенные.
- Proof of Activity (доказательство активности) — стандартная гибридная схема, совмещающая PoW и PoS;
- Delegated Proof of Stake (делегированное подтверждение доли) — общий термин, описывающий эволюцию базовых консенсус-протоколов на основе подтверждения доли. DPoS используется в BitShares, а также в предложенных алгоритмах, таких как Slasher и Tendermint;
- Proof of Burn (доказательство сжигания) — «сжигание» происходит путем отправки монет на такой адрес, с которого гарантированно нельзя их потратить. Избавляясь таким образом от своих монет, пользователь получает право на пожизненный майнинг, который также устроен как лотерея среди всех владельцев сожженных монет;
- Proof of Capacity (доказательство ресурсов) — реализация популярной идеи «мегабайты как ресурсы». Необходимо выделить существенный объем дискового пространства, чтобы включиться в майнинг;
- Proof of Storage (доказательство хранения) – похожая на предыдущую концепция, при которой выделенное место используется всеми участниками как совместное облачное хранилище.
Технология Proof-of-Stake
Ключевое по POS:
- С помощью Proof of Stake (POS) майнеры криптовалюты могут добывать или проверять транзакции блоков в зависимости от количества монет, которые держит майнер.
- Proof of Stake (POS) был создан как альтернатива Proof of Work (POW), который представляет собой оригинальный алгоритм консенсуса в технологии Blockchain, используемый для подтверждения транзакций и добавления новых блоков в цепочку.
- POW требует огромного количества энергии, а майнерам нужно продавать свои монеты, чтобы в конечном итоге оплатить счет за свет и уйти в плюс; Proof of Stake (PoS) дает мощность "майнинга" на основе процента монет, находящихся у майнера.
- POS считается менее рискованным с точки зрения возможности атаковать сеть.
- Биткойн, крупнейшая криптовалюта, работает на основе POW, а не на POS.
В качестве альтернативы PoW в майнинге была создана технология (доказательство ставкой).
Для майнинга по PoS не нужно специальное оборудование. Вам достаточно иметь кошелек и некоторое количество монеты, которая добывается по данной технологии.
Суть PoS в том, что подтверждение транзакции (разгадывание блока) происходит кошельком с данной монетой. То есть для майнинга по PoS необходим лишь кошелек с монетой и включенный компьютер.
Однако минус этой технологии в том, что преимущество в подтверждении транзакций получает тот участник, у которого количество монет в кошельке больше. Но и держатели небольшого количества монет принимают участие в разгадывании блока пропорционально количеству своих монет: если у майнера 1% монет от их общего числа, то количество блоков, которые он разгадает, будет равно 1%.
Proof-of-Stake против Proof-of-Work
Начисление вознаграждения при разгадывании блока при PoS иное, чем при PoW: майнер получает комиссию за проведение транзакции (то есть вознаграждение начисляется из монет, которые уже находятся в обороте), а не установленное количество монет, то есть при PoS эмиссия криптовалюты не происходит. Эта сумма значительно меньше, чем при майнинге по PoW технологии, но и затраты на PoS значительно меньше.
Напишем свою функцию для возведение числа в степень:
double raiseToPow(double x, int power) { double result; int i; result =1.0; for (i=1, i<=power;i++) { result = result*x; } return(result); }
POW против PoS: что лучше?
POW хорошо протестирован и используется во многих криптовалютных проектах.
DDoS-атаки на блокчейн, использующие этот алгоритм, невозможны с сегодняшними вычислительными технологиями. Однако высокая стоимость энергии, негативное влияние на окружающую среду, связанное с этим неблагоприятное освещение в СМИ, растущая централизация в майнинге и низкая пропускная способность транзакций, вероятно, сделают его нежизнеспособным в долгосрочной перспективе.
Сообщества все больше обеспокоены высокими затратами на электроэнергию при добыче биткойнов.
Алгоритм PoS обеспечивает более масштабируемую цепочку блоков с более высокой пропускной способностью транзакций, и несколько проектов уже приняли его, например, криптовалюта DASH.
Однако POS также не идеален. К примеру во время стейкинга злоумышленник также может совершить мошенничество и подтвердить неправильные транзакции.
Проект Ethereum в рамках запланированного перехода на PoS разработал протокол Casper, по которому такие мошенники будут наказаны конфискацией криптовалют, и лишением их возможности делать ставки когда-либо снова.
Если запланированная реализация PoS в таком известном протоколе, как Ethereum, пойдет хорошо, то криптосообщество, вероятно, будет достаточно уверено в способности алгоритма PoS обеспечивать безопасность сети. Это может склонить чашу весов в пользу PoS, и только время покажет, какой из них будет консенсусным алгоритмом блокчейна в будущем.
Почему Proof of Stake лучше, чем Proof of Work?
С другой стороны, модель Proof of Stake намного лучше, чем Proof of Work, потому что она решает множество проблем, о которых мы сейчас расскажем вам.
Централизация
Блокчейны Proof of Work дают людям, которые покупают мощные оборудования (видеокарты или Асики), больше шансов получить вознаграждение с майнинга.
В результате централизованные организации покупают тысячи устройств (видеокарт или Асики), которые генерируют максимальную мощность майнинга.
Этот тип операции известен как «майнинг-пул», и он позволяет людям «объединять» свои ресурсы, чтобы иметь шанс добывать криптовалюту, так как майнинг в соло в настоящее время почти не реален!
Следовательно, всего четыре майнинг пула (большинство из которых расположены в Китае, где дешевое электричество) контролируют более 50% общей мощности майнинга биткойна.
Это несправедливая система, поскольку она означает, что у обычного человека почти нет шансов когда-либо выиграть награду с майнинга. В этом отличие Proof of Stake.
Эта модель предотвращает объединение групп людей для доминирования в сети только для получения прибыли. Вместо этого те, кто вносит вклад в сеть, замораживая свои монеты, получают вознаграждение пропорционально сумме, которую они вложили.
Потребление электроэнергии
Некоторые блокчейны Proof of Work, такие как Биткойн, используют большое количество электроэнергии.
Недавнее исследование показало, что общее количество электроэнергии, необходимое для поддержания работоспособности сети Биткойн, превышает количество, используемое более чем 159 отдельными странами!
С другой стороны у Proof of Stake затраты на электроэнергию для проверки транзакций значительно ниже.
Proof of Work vs. Proof of Stake
Proof of Work | Proof of Stake | |
Криптовалюты | Bitcoin, Ethereum, Litecoin, ZCash, Monero | Cardano, TRON, EOS, Neo, Qtum, Tezos |
Кто подтверждает транзакции | Майнеры | Валидаторы |
От чего зависит размер награды | Вычислительная мощность устройства майнера | Количество монет в кошельке валидатора |
Генерация новых монет | Майнинг производит новые монеты | Новые монеты не образуются |
За что награда | Майнеры получают вознаграждение за генерацию блоков | Валидаторы получают комиссию за подтверждение транзакций |
Потребление энергии | Огромное | Низкое или среднее |
Атака-51% | Существенно подвержен | Практически невозможна |
Реализация Proof-of-Work в сети блокчейна
Майнеры решают задачу, формируют новый блок и подтверждают транзакции. Сложность задачи зависит от количества пользователей, текущей мощности и нагрузки на сеть. Кроме того, хэш каждого блока содержит в том числе хэш предыдущего блока, что повышает безопасность и делает невозможным нарушение порядка созданных блоков.
Если майнер сумел решить задачу, формируется новый блок — в нем размещается очередной комплект транзакций, и они считаются подтвержденными.
Как майнить в блокчейнах с PoW
Купите оборудование. Добывать криптовалюту посредством майнинга можно на любом компьютере или смартфоне, но рентабельным этот процесс будет только на мощных специализированных устройствах, ASICs. Вот 5 таких устройств:
Miner | Hash Power | Power consumption | Price |
Bitmain Antminer S17+ | 73 TH/s | 2920 W | $2000 |
Bitmain Antminer S19/S19 Pro | 110 TH/s | 3250 W | $3100 |
Innosilicon T3+ | 57 TH/s | 3300 W | $1400 |
Innosilicon A10 ETHMaster | 500 MH/s | 750 W | $5700 |
MicroBT Whatsminer M30S | 86 TH/s | 3344 W | $2500 |
Заведите криптокошелек. Подойдет любой поддерживающий нужную криптовалюту, но лучше, если это будет аппаратный кошелек: Ledger Nano X, Ledger Nano S, Ledger Blue или Trezor Model T. Они более надежны и безопасны, так как хранят ключи внутри защищенного пространства USB-устройства.
Выберите пул для майнинга. Это не обязательно, но если подключиться к большому пулу, можно увеличить уровень добычи криптовалюты. Выбирать пул нужно исходя из его доли на рынке (больше = лучше), способа распределения награды и величины сборов. Вот 5 самых крупных криптовалютных пулов:
Майнинг пул | Доля на рынке | Алгоритм распределения награды | Комиссии | Русский |
Poolin | 17,3% | FPPS | 4% | Есть |
F2Pool | 14.6% | PPS+ | 1,36% | Нет |
BTC.com | 14,5% | FPPS | 1,50% | Нет |
AntPool | 10,2% | PPLNS, PPS+ | 0% и 2% | Нет |
ViaBTC | 6,2% | PPS, PPLNS | 2% и 4% | Есть |
Установите софт для майнинга. Для добычи криптовалюты в блокчейнах с Proof of Work нужно установить и настроить специальное программное обеспечение. Обычно его можно скачать с официального сайта криптовалюты, на странице майнинг-пула или в репозитории GitHub. Вот несколько таких программ, которые рекомендуют HubSpot и BitDegree:
CGMiner — лучшая в целом.
MultiMiner — подходит для новичков.
BFGMiner — максимум гибкости и функций.
Awesome Miner — для небольших криптоферм.
Miner Gate Mobile Miner — для смартфонов.
BitMinter — лучший кроссплатформер.
Начинайте добывать монеты. Включите устройство и откройте программу для добычи монет. Войдите в выбранный пул и запустите процесс майнинга.
Преимущества принципа Proof-of-Work
Основные его преимущества — защита от DoS-атак и низкое влияние доли криптовалюты в собственности у майнера на возможности добычи.
PoW накладывает определенные ограничения на действия участников, поскольку для решения задачи требуются значительные усилия. Эффективная атака также требует больших вычислительных мощностей и продолжительных вычислений, поэтому она возможна, но невыгодна на фоне высоких затрат.
Неважно, сколько денег у вас в кошельке — важно иметь большие вычислительные возможности для решения задач и формирования новых блоков, а значит, держатели больших капиталов не могут принимать решения за всю сеть.
Возведение в степень на C#
Простой пример:
int x = 5; int stepen = 4; Console.WriteLine("5^4 = " + Math.Pow(x, stepen));
Полный текст программы
Какие алгоритмы используют доказательство выполнения работы PoW?
Во множестве криптовалют. Конечно, наиболее известная из них — биткоин, и именно биткоин задал эту тенденцию. Здесь используется алгоритм Hashcash, позволяющий менять сложность задачи в зависимости от общей вычислительной мощности сети. Среднее время формирования блока составляет 10 минут. Подобная же система реализована в похожих на биткоин криптовалютах, например, в лайткоине.
Другой крупный проект, где используется PoW, это Ethereum , и учитывая, что почти три четверти всех блокчейн-проектов реализуются на этой платформе, можно с уверенностью сказать, что большинстве приложений используются именно консенсусная модель с доказательством выполнения работы.
- https://bytwork.com/articles/pow-pos
- https://phpstack.ru/other/c-plus-plus-pow.html
- https://Tyulyagin.ru/kriptovalyuty/bitcoin/proof-of-work-pow.html
- https://Mining-CryptoCurrency.ru/proof-of-work-proof-of-stake/
- https://info.exmo.me/ru/obuchenie/pruf-of-work/