Proof-of-Work (Доказательство работы)

Сама концепция подобного алгоритма была разработана ещё в 1993 году. Но тогда его задачей было предотвращение DoS-атак и излишнего заспамления сети. Смысл заключался в том, что компьютер, подающий запрос, должен был для его подтверждения проделать некоторые вычисления. И если обычному темпу общения это практически не мешало, то подтверждение десятков и сотен запросов серьёзно загружало компьютер-нарушитель.

А в 2009 году стало известно, что данный алгоритм был доработан для обеспечения безопасности первой в мире криптовалютной сети Биткойн. Теперь он назывался «алгоритм консенсуса» и служил для гарантии достоверности новых блоков информации, добавляемых в блокчейн. Сама по себе идея оказалась крайне эффективной, так что практически все современные криптовалюты в той или иной степени используют алгоритм Proof-of-Work (PoW).

Как работает алгоритм Proof-of-Work?

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

Конкретный пример

Лучше всего рассматривать работу алгоритма на самом простом примере – работе сети Биткоин. Потоку как остальные криптовалюты меняют некоторые особенности алгоритма так, как сами считают нужным.

Итак, есть децентрализованная сеть. Все узлы в ней равны, то есть – обладают равными правами и не имеют преимуществ друг перед другом. Активные узлы называются майнерами – именно они и ищут решение уравнения. Для это им нужно угадать или подобрать псевдослучайное число nonce. Если его, вместе с информацией, содержащейся в блоке, пропустить через хэш-функцию, то должен получиться заданный результат – хэш блока. Когда это число будет найдено, остальные участники сети просто подставят его в функцию, чтобы убедиться в правильности решения.

В блокчейн нельзя добавить новый блок, пока не будет найдено это число nonce, которое ещё называют «одноразовым кодом». И каждый новый подтверждённый блок содержит в себе информацию о хэше предыдущего блока, что обеспечивает их логическую и криптографическую связь. А поскольку для получения этого нового блока нужно проделать вычислительную работу, то алгоритм и начали называть Proof-of-Work – «подтверждение работы».

Этот алгоритм гарантирует, что содержимое блоков не будут подделывать. И что блоки реально содержат информацию, связанную с предыдущими блоками цепи. Для успешного имитирования достоверности блока, требуется порядка 51 процента вычислительной мощности всей сети, что невероятно сложно обеспечить. Складывается следующая ситуация – больше половины вычислительных мощностей начинают выстраивать цепочку, исходя из ложного блока. А поскольку сама система организована так, что более короткие альтернативные цепочки автоматически убираются, в данной ситуации, будет убрано «достоверное» ответвление.

Главная проблема алгоритма Proof-of-Work – необходимость использования дорогостоящего оборудования (например – видеокарты последнего поколения) и большого количества электроэнергии. И несмотря на суммарную колоссальную вычислительную мощность децентрализованной сети, её нельзя использовать ни для чего другого, кроме как для вычисления одноразового кода.

Вывод

Но несмотря на это, алгоритм Proof-of-Work до сих пор остаётся самым простым, надёжным и распространённым способом подтверждения достоверности криптовалютных транзакций. А имеющиеся на данный момент альтернативы, только начинают набирать популярность. Смогут ли они стать полноценной и удобной альтернативой – покажет время. Всё же криптовалюты, как явление, развиваются слишком непродолжительный срок, чтобы можно было выстраивать чёткие прогнозы.