#blockchain #crypto #mining #pow #криптография
POW - Proof of Work - доказательство работы. Алгоритм защиты блокчейн сети от атак.
Изначально задумывался как противодействие спаму по электронной почте. А на сегодняшний момент находит своё приложение в сети биткоин.
Суть проста, майнеру необходимо найти такую рандомную добавку (
nonce), чтобы хеш сумма от (сообщение + nonce) имело в начале N нулей.
Искать такую добавку довольно сложно, тем более при высоких значениях N.
Хеш сумма даёт на выходе шестнадцатеричные цифры, то есть [0-9] + [abcdef] всего 15.
Вероятность получить '0' на первой позиции равна:
1/15 ~ 0.067 ~= 67/1000.
Это значит, что при тысяче итерациях примерно 67 получившихся хешей будет иметь '0' в начале.
А теперь представьте значения вероятности при N=10.
(1/15) ^ 10 ~= 1.7 * 10^-12
Это число с 12 нулями после запятой. Это значит, что нужно произвести примерно триллион итераций , чтобы собрать валидный блок. Внушительно.
Сеть биткоин адаптируется под растущие вычислительные мощности - увеличивается необходимое число нулей. Сейчас генерация нового блока занимает 10 минут - именно такое время необходимо майнерам, чтобы найти валидный nonce. Тот, кто первым находит nonce, получает награду.
Процедура увеличения сложности называется халвингом и просходит примерно раз в четыре года. Награда за нахождение блока тоже уменьшается в два раза.
Из минусов POW стоит отметить, что этот алгоритм требует невероятное количество энергии. На этом и строится его безопасность ( атака 51 процента ). В качестве альтернативы можно рассматривать Proof of Sake. Но это уже совсем другая история.
UPD:
Пример транзакции.