Что означает доказательство работы?
Доказательство работы описывает систему, которая требует немалых, но выполнимых усилий, чтобы сдержать необоснованное или злонамеренное использование вычислительной мощности, такое как отправка спам-писем или запуск атак типа «отказ в обслуживании». Концепция была адаптирована к деньгам Хэлом Финни в 2004 году благодаря идее «многоразового доказательства работы». После своего введения в 2009 году биткойн стал первым широко распространенным приложением идеи Финнея (Финни также был получателем первой транзакции с биткойнами). Доказательство работы лежит в основе многих других криптовалют.
Доказательство работы объяснил
Это объяснение будет сфокусировано на доказательстве работы, поскольку оно функционирует в сети биткойнов. Биткойн - это цифровая валюта, которая опирается на своего рода распределенный регистр, известный как «блокчейн». Этот регистр содержит записи всех транзакций биткойнов, расположенных в последовательных «блоках», так что ни одному пользователю не разрешается тратить свои авуары дважды. Для предотвращения взлома бухгалтерская книга является общедоступной или «распределенной»; измененная версия будет быстро отклонена другими пользователями.
На практике пользователи обнаруживают взлом через хеши, длинные цепочки чисел, которые служат доказательством работы. Поместите данный набор данных через хеш-функцию (биткойн использует SHA-256), и он будет генерировать только один хеш. Однако из-за «лавинообразного эффекта» даже незначительное изменение любой части исходных данных приведет к совершенно неузнаваемому хэшу. Каким бы ни был размер исходного набора данных, хэш, сгенерированный данной функцией, будет одинаковой длины. Хеш является односторонней функцией: ее нельзя использовать для получения исходных данных, только для проверки соответствия данных, сгенерировавших хеш, исходным данным.
Создание любого хэша для набора транзакций в биткойнах было бы тривиально для современного компьютера, поэтому, чтобы превратить процесс в «работу», сеть биткойнов устанавливает определенный уровень «сложности». Этот параметр настраивается таким образом, чтобы новый блок "добывался" - добавлялся в цепочку блоков путем создания действительного хэша - примерно каждые 10 минут. Задание сложности достигается путем установления «цели» для хэша: чем ниже цель, тем меньше набор допустимых хэшей и тем сложнее их сгенерировать. На практике это означает, что хеш начинается с длинной строки нулей: например, хеш для блока # 429818 равен 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Этот блок содержит 2 012 транзакций, включающих чуть более 1000 биткойнов, а также заголовок предыдущего блока. Если бы пользователь изменил одну сумму транзакции на 0, 0001 биткойн, результирующий хэш был бы неузнаваем, и сеть отклонила бы мошенничество.
Поскольку данный набор данных может генерировать только один хэш, как майнеры могут убедиться, что они генерируют хэш ниже цели? Они изменяют ввод, добавляя целое число, называемое nonce («число, использованное один раз»). Как только найден действительный хеш, он транслируется в сеть, и блок добавляется в цепочку блоков.
Майнинг - это соревновательный процесс, но это скорее лотерея, чем гонка. В среднем, кто-то генерирует приемлемое доказательство работы каждые десять минут, но кто это будет, никто не знает. Майнеры объединяются, чтобы увеличить свои шансы на майнинг-блоки, что генерирует комиссионные за транзакции и, в течение ограниченного времени, вознаграждение за вновь созданные биткойны.
Доказательство работы крайне затрудняет изменение любого аспекта блокчейна, поскольку такое изменение потребует повторного майнинга всех последующих блоков. Это также затрудняет монополизацию вычислительной мощности сети пользователем или пулом пользователей, поскольку оборудование и мощность, необходимые для выполнения хэш-функций, дороги.
