Нужна помощь?

Основы блокчейна — доказательство выполнения работы

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

Что из себя представляют двойные траты?

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

Двойные траты — это незаконное действие на блокчейне, где один биткоин тратится более чем один раз.

В физическом мире Боб дает Алисе картину. Поскольку Боб отдал картину Алисе, он больше ею не владеет. Боб не может дать ту же картину Джону, поскольку ее владельцем теперь является Алиса.

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

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

What is proof of work double spend

Что из себя представляет доказательство выполнения работы?

Доказательство выполнения работы (сокращенно PoW) — это метод подтверждения транзакций на блокчейне, также называемый майнингом. 

Блокчейн — это распределенный реестр (база данных) прошлых блоков. Блокчейн распределяется по всему миру узлами, обеспечивающими децентрализацию. Одна из функций узлов — добавление новых блоков на блокчейн. Эти узлы называются майнерами. Только те узлы, которые хотят тратить вычислительные ресурсы, могут добавлять новые блоки на блокчейн.

NHOS

Как на самом деле работает доказательство выполнения работы?

С PoW майнеры решают математические односторонние функции. Несколько майнеров одновременно соревнуются друг с другом. Кто решит функцию первым, получает финансовое вознаграждение и его решение передается всем остальным узлам. 

С помощью SHA256 можно получить Y из X, но нельзя обратно получить X из Y. Это называется односторонней функцией и часто используется в криптографии. Например, адрес Биткоин-кошелька — это выход приватного ключа, который хэшируется в выход SHA256.

Пример хэшированного с помощью SHA256 слова “NiceHash”:
D22df564d771ed4e6785029de215e9f9e2affe9bbe37bacc8544c32f0a162ba3

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

Обратите внимание, что Sha256 может использоваться с бесконечным объемом данных, даже с изображениями.

Попробуйте сами:

Если у майнера есть входные данные, он получит длинную строку символов, которая не может быть реверсирована. Но блокчейн использует другую строку, называемую nonce. С помощью nonce майнер может манипулировать выходом SHA256 для угадывания желаемого выхода.

Например, сеть блокчейна укажет, чтобы желаемый вывод начинался с 6 нулей: 000000c49ede7f965ba8e7e6419d6efb0afc99e7ecd10095b286310ca55a6355

Майнер будет буквально угадывать nonce, пока выход хэша блока не будет начинаться с 000000. Это то, чем занимаются майнеры, они комбинируют транзакции блока в качестве входных данных, затем угадывают nonce, пока выход SHA256 не начнется с 000000.

Введите случайный набор данных в форму ниже и попробуйте найти хэш, который начинается с четырех нулей (0000), угадывая nonce:

Time to solve the block: 0.427 sec

Или просто нажмите МАЙНИТЬ (MINE), чтобы найти правильный nonce автоматически.

Обратите внимание, что это упрощенная версия. Майнер также должен включить во входные данные выход хэша предыдущего блока вместе с данными транзакции. Также при увеличении сложности растет количество нулей, что делает угадывание правильного nonce менее вероятным, поэтому угадать правильный хэш выхода сложнее. Проще найти выход с одним нулем (0), чем с четырьмя нулями (0000).

НАПИСАНО
Marko Tarman
Марко — специалист по оборудованию для майнинга и создатель контента в NiceHash. Он начал заниматься майнингом в 2012 году, еще до того, как были выпущены первые ASIC. Он перешел от майнинга на видеокартах таких криптовалют, как BTC и LTC, к майнингу VTC и DOGE. Его майнинг-девиз: «У меня 99 проблем, но все дело в плохом райзере».