Технология HashCash, которая вошла в основу многих криптовалют, была разработана в 1997 году доктором Адамом Бэком. Основная идея этой технологии заключается в использовании вычислительных ресурсов устройств для борьбы с спамом и другими формами злоупотреблений в сети.
Что такое HashCash?
HashCash — это система, которая требует от отправителя сообщения выполнения определенных вычислений, прежде чем отправить письмо. Это создает "доказательство работы", которое подтверждает, что отправитель затратил время и ресурсы на создание сообщения.
Пример: Борьба со спамом
[Спамер] → [Хочет отправить много писем]
↓
[HashCash] → [Требует большие вычисления от устройства]
↓
[Спамер] → [Отказ от отправки]
Как это работает?
Создание хэша: Перед отправкой сообщения отправитель должен создать специальный хэш (криптографическую подпись, код из символов) для своего письма. Этот хэш зависит от содержимого сообщения и некоторых случайных данных.
Пример: Создание хэша
[Вы] → [Создаете сообщение "встреча в 17:00"]
↓
[HashCash] → [Генерирует хэш, код из различных символов например"xks7fwu7Y8" который и является сообщением только зашифрованным]
↓
[Вы] → [Отправляете сообщение с хэшем]
При этом, если в сообщении "встреча в 17:00." появится символ [точка], то генерируемый хэш тоже изменится.
Отправка сообщения:
После успешного создания хэша, отправитель включает его в заголовок письма и отправляет его получателю.
Получатель может легко проверить, что хэш был правильно сгенерирован:
- В состав хэша входит дата отправки сообщения. Если она не находится в пределах двух дней от текущей даты, она недействительна. (Двухдневное окно компенсирует сдвиг часов и время сетевой маршрутизации между различными системами.)
- Компьютер получателя проверяет, совпадает ли адрес электронной почты в строке хэша с любым из действительных адресов электронной почты, зарегистрированных получателем, или совпадает ли с любым из списков рассылки, на которые подписан получатель. Если совпадение не найдено, строка хэша недействительна.
- Компьютер получателя вставляет строку хэша в базу данных. Если строка уже есть в базе данных (что указывает на попытку повторного использования строки хэша), она недействительна.
- Если хэш-строка проходит все эти тесты, она считается допустимой хэш-строкой. Все эти тесты занимают гораздо меньше времени и места на диске, чем получение содержимого тела электронного письма.
Как эта технология используется в криптовалюте:
Представьте, что вы участвуете в викторине, где необходимо найти число, которое при сложении с другим даёт результат, соответствующий заданному условию. Например, вам говорят:
Найдите число, которое при сложении с 50 даёт сумму, оканчивающуюся на 0.
Вы начинаете перебирать числа:
- 50 + 1 = 51 (не подходит)
- 50 + 2 = 52 (не подходит)
- 50 + 10 = 60 (подходит)
Вы нашли правильное число — это **10**.
Теперь применим это к Hashcash в криптовалютах:
1. Каждый блок информации (например, транзакции) имеет свой "вопрос", который нужно решить.
2. Вопрос заключается в том, чтобы найти такое число (называемое **nonce**), которое при хешировании блока даёт хеш, начинающийся с определённого количества нулей.
3. Майнеры (участники сети) начинают перебирать возможные значения **nonce**, пока не найдут правильное число.
4. Как только кто-то находит правильное значение, блок считается решённым и добавляется в блокчейн.
Процесс поиска правильного числа — это и есть Proof-of-Work (доказательство работы), что делает систему защищённой от злоупотреблений.