Процесс создания доказательства работы происходит в случайном процессе с низкой вероятностью. Это потому, что много проб и ошибок не требует усреднения, прежде чем создавать действительное доказательство работы. Биткойн использует хэш-наличность для проверки работоспособности.
Одним из применений этой идеи является использование хеш-наличности в качестве метода предотвращения спама в электронной почте, требующего подтверждения работы с содержимым электронной почты, включая адрес, в каждом электронном письме.
Законные электронные письма будут в состоянии сделать работу, чтобы генерировать доказательство быстро без такой большой работы. Для этого в основном требуется одно электронное письмо, но в случае массового спама у электронной почты возникнут трудности с получением необходимых доказательств, которые потребуют огромных вычислительных ресурсов.
Доказательство работы и HashCash
Доказательства работы Hashcash в биткойнах помогают при генерации блоков. Для блоков, требующих принятия, требуется проверка работоспособности, показывающая данные каждого блока. Сложность этой работы заключается в майнинге биткойнов. Он настроен на ограничение скорости, с которой новые блоки могут генерироваться в сети каждые 10 минут.
Из-за очень низкой вероятности успешного генерирования это делает непредсказуемым, какой рабочий компьютер в сети сможет генерировать следующий блок.
Чтобы блок был действительным, он должен хешировать до значения, меньшего, чем текущая цель. Это означает, что каждый блок указывает, что работа выполнена, генерируя это. Каждый блок содержит хэш предыдущего блока. Таким образом, каждый блок имеет цепочку блоков, которые вместе содержат значительный объем работы.
Изменение блока происходит путем создания нового блока, содержащего тот же предшественник, который требует регенерации всех преемников и повторения выполняемой ими работы. Это защищает цепь блока от взлома.
Биткойн представил наиболее распространенную схему проверки работоспособности - SHA-256. Некоторые другие алгоритмы хеширования, которые помогают при проверке работы, включают scrypt, Blake-256, CryptoNight, HEFTY1, Quark, SHA-3, scrypt-Jane, scrypt-n и их комбинации.