Bits.media logo

Русскоязычный информационный сайт о криптовалюте Bitcoin


Baikal miners

У истоков Биткоина: как был создан Proof-of-work

Хэширование

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

Не так давно была популярна версия, что Ник Сабо (Nick Szabo) и есть создатель Биткойна Сатоши Накамото, потому что он внёс огромный вклад своими научными публикациями и разработками, которым он посвятил свою жизнь. Самая значимая из них - попытка создать BitGold в 2000-х годах. Сам Ник Сабо отрицает свою причастность к авторству Биткойна.

Если попытаться разобраться поглубже, то самые важные изобретения человечества часто создавались не единственным изобретателем.

До недавнего времени в криптовалютном сообществе мало кто слышал о таком выдающемся криптографе, как Адам Бэк (Adam Back). Эта статья позволяет непосвящённому в криптографию читателю понять, в чём суть изобретения Адама Бэка - Hashcash, которое появилось ещё в 1997 году, и какую роль его механизм играет в Биткойне на сегодняшний день. 

Адам Бэк

Ведущий редакции подкаста-интервью с Андреасом Антонопулосом характеризует Бэка скромным, не медийным человеком, который внёс большой вклад в улучшение предсказуемости криптографии и создал многие криптографические алгоритмы, без которых существование Биткойна было бы невозможным.

Адам получил свой диплом профессора в области компьютерных технологий и распределённых систем в Эксетерском университете, и первое время занимался программированием криптографических систем. Ему приходилось работать над проектами электронных денег в компании ZeroKnowledge Systems (разработчик протокола для браузера TOR, в частности Адам успел сыграть ключевую роль в разработке системы шифрующих компонентов этого браузера), где ему удалось получить опыт в технологиях приватности, криптографии и в распределённых системах.

Ещё задолго до появления Биткойна, он работал над проектами свободного программного обеспечения (Open Source) исследования в которых стали основополагающими для разработки алгоритма Proof-of-Work. Несмотря на огромный опыт и знания в этой области, сам Адам не мог себе представить, к чему приведут его разработки. С другой стороны, еще много лет назад он понимал, что когда-то на свет появятся такие системы, как NameCoin.

За два месяца до того, как была выпущена первая версия кошелька Биткойна, Сатоши опубликовал свой экспертный доклад (White Paper), его получили все подписчики рассылки по криптографии. Адам Бэк был в их числе.

Что касается личного участия, Адам сказал:

«Если бы я, как Хал Финни, запустил майнер на своем компьютере, возможно в моём кошельке сейчас было бы много биткойнов ещё той эры, когда их можно было добывать тысячами.

Ирония в том, что у меня нет ни единого биткойна, несмотря на то, что HashCash, на основе которого сейчас работает сеть биткойна - это моё изобретение.»

Как был разработан HashCash

В связи с принципами работы алгоритма SHA-256, при попытке изменить вводные данные всего лишь на 1 бит, алгоритм запускает череду каскадных механизмов, которые приводят к непредсказуемому выводу. В итоге, при изменении ввода на 1 бит вы не получите вывод отличающийся лишь на 1 бит. Это будет совершенно непредсказуемый вывод.

Для примера, если найти в Яндексе или Google любой калькулятор SHA-256, то вы легко сможете рассчитать хэш для фразы Hello! (с большой заглавной буквы) - эта фраза имеет свой специфический "отпечаток пальцев" SHA-256. Если вы попробуете написать это же слово, убрав или добавив восклицательный знак, или если вы напишете его с маленькой буквы, то вы получите совершенно непредсказуемый хэш, который будет уникальным именно для этой вариации.

Но не важно, сколько времени пройдет, если вы будете предоставлять в качестве вводных данных одни и те же символы - то и хэш будет выводиться абсолютно тот же.

Именно благодаря этой простой особенности технологии в 1997 году Адам Бэк создал систему анти-спама, которая называется HashCash.

Мотивом послужило то, что уже в то время развелось слишком много спамеров, и он подумал "что, если я воспользуюсь этой функцией, чтобы заставить каждый компьютер выполнить кое-какую работу?"

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

Ясное дело – "скормить" любые данные алгоритму SHA-256 - задача несложная. Поэтому проверить, была ли действительно выполнена работа по подбору соответствующих выводов - тоже не проблема.

Адам нашёл способ предсказывать, сколько потребуется времени компьютеру с процессором тактовой частоты с определённой скоростью вычисления. Это было нужно, для того чтобы, например, дать компьютеру задачу проделать операцию сложностью по времени в 1 секунду, перед тем как отправить 1 сообщение.

Если вы действительно пользователь форума, которому надо написать сообщение в Интернете или чтобы отправить очередной e-mail, то для вашего компьютера 1 секунда трудозатрат - это не такая уж и роскошь. Но если вы - спамер и вам надо разослать 1 миллион сообщений, то это уже является существенным препятствием, так как вам придётся потратить 1 миллион секунд процессорного времени. И, внезапно, возникает целая экономика на этих расчётах.

Этот механизм, использованный Адамом Бэком в Hashcash, имеет другое, более известное название -  Proof-of-Work.

Что сделал Адам Бэк для Биткойна?

Воплощение HashCash в Биткойне не является точной копией того, что создал Адам. В Биткойне был произведён переход с алгоритма SHA1 на SHA256 с незначительными изменениями кода. Тем не менее, не считая этих мелочей - задумка Proof-of-Work была на 99% взята с её модели применения в HashCash.

Учитывая взгляды Адама на приверженность моделям распределённых систем, в сообществе криптографов той первой почтовой рассылки по Биткойну он быстро занял свои позиции  среди лидирующих разработчиков, хотя сам не написал ни единой строчки кода для Биткойна. Он был одним из тех голосов, к которому прислушивались все, включая Сатоши.

Изобретение Адама Бэка стало фундаментом для появления экосистемы майнинга. Когда чипы ASIC обсчитывают огромное количество хэшей - они производят те же расчёты, что производились в Hashcash.

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

Создатель Биткойна построил логику распределения выплат ещё в 2008 году, когда и началась работа над написанием готового программного продукта - первого клиента Bitcoin. Если взглянуть на этот вопрос с философской и практической точки зрения - именно алгоритм Proof-of-work Адама Бэка позволил совершить невозможное: построить полностью прозрачный механизм вознаграждений, но необратимый для тех, кто захочет сфальсифицировать данные.

Заслуга Сатоши Накамото заключается в том, что он догадался использовать этот механизм, чтобы научить компьютеры договариваться в глобальной распределенной сети. Именно консенсус майнеров на основе работы по расчету хэшей лежит в основе Bitcoin.

Алгоритмы хэшрования, в том числе SHA-256, существовали уже много лет. Система Hashcash существовала с 1997 года. Но Сатоши совместил эти технологии с P2P сетями, которые работают подобно BitTorrent, и множество других приложений на базе P2P, для того чтобы создать новую систему цифровых денег, которую мы теперь называем криптовалютой.


Все материалы с данного сайта Вы можете свободно копировать с указанием на источник - bits.media
Любые пожелания, предложения, материалы и т.п. Вы можете присылать на адрес admin@bits.media
Адрес для добровольных пожертвований на развитие - 1BQ9qza7fn9snSCyJQB3ZcN46biBtkt4ee (QR)