История криптовалют. Биткойн-детектив. Андрей Урлин
Чтение книги онлайн.
Читать онлайн книгу История криптовалют. Биткойн-детектив - Андрей Урлин страница 22
Впервые принцип Proof-of-Work был описан в 1993 году Синтией Дворк и Мони Наор60. Авторы предложили следующую концепцию:
«Чтобы получить доступ к общему ресурсу, пользователь должен вычислить некоторую функцию: достаточно сложную, но посильную; так можно защитить ресурс от злоупотребления».
Звучит немного сложно, но на самом деле смысл можно проиллюстрировать на достаточно простом примере. Допустим, вы владелец интернет-форума или электронного почтового сервера. Ваши пользователи имеют возможность писать на форум сообщения или отправлять другим пользователям электронные письма. Стоит задача – как вам защититься от спамеров и при этом не мешать пользоваться вашими сервисами добросовестным пользователям? Теоретически, современные домашние компьютеры позволяют генерировать миллионы сообщений на форумы или миллионы писем со спамом. Вот тут и приходит на помощь PoW. Вы перед каждой отправкой сообщения на форум или перед отправкой электронного письма на чей-то электронный адрес заставляете компьютер пользователя в фоновом режиме выполнить определенную операцию, которая в среднем будет занимать, к примеру, 1 секунду. При этом вы будете проверять, действительно ли пользователь выполнил необходимую операцию. Для добросовестного пользователя это не проблема. В случае же со спамером время выполнения рассылки 1 миллиона сообщений увеличится на 1 миллион секунд. Или на 11,5 суток, что уже будет для него вряд ли приемлемым.
Именно на этом принципе Адам Бэк начал в 1997 году начал создавать систему анти-спама, которую назвал HashCash. Профессор в области компьютерных технологий и распределённых систем Эксетерского университета Адам Бэк вначале сам не мог представить, к чему приведут его разработки. Он добросовестно решал лишь задачу борьбы со спамом в интернете. Ему необходимо было построить функцию, которая бы таким образом преобразовывала вводимые в нее данные, чтобы на выходе получался заранее известный результат. То есть вычисления должны были быть несимметричными – время подбора функцией ответа должно быть достаточно большим, а время проверки результата – минимальным.
Адам нашел способ предсказывать, сколько времени потребуется компьютеру с процессором, имеющим известную тактовую частоту, для производства определенных вычислений. Так был создан HashCash – алгоритм доказательства правильности работы, требующий выборочного объёма данных для вычислений. При этом само доказательство может быть эффективно подтверждено. У пользователей электронной почты к заголовку добавлялся текст отметки HashCash, подтверждающий, что перед отправкой письма компьютером пользователя было затрачено заданное время для вычисления отметки. Заголовок отметки выглядит следующим образом:
X-Hashcash: 1:20:1303030600:[email protected]::McMybZIhxKXu57jd: FOvXX
Сам заголовок содержит:
ver:
60
Dwork C., Naor M. // Pricing via Processing, Or, Combatting Junk Mail, Advances in Cryptology. In CRYPTO’92: Lecture Notes in Computer Science No. 740. Springer. – 1993. – pp. 139—147.