Блокчейн. Принципы и основы - [32]

Шрифт
Интервал

прообразов. Очевидно, что чем больше число n, тем сложность задачи экспоненциально увеличивается. Накамото предложил хешировать заголовок создаваемого блока, начав с самой маленькой сложности. В этом случае нужно было получить всего восемь нулевых символов в начале строки хеша заголовка. Поскольку один символ занимает четыре бита, то необходимо было перебрать не более 2>32 вариантов, то есть около 4,3 млрд. А затем, по мере увеличения количества узлов в сети, которые пытаются искать валидные хеши, пропорционально поднимать сложность, увеличивая требования к количеству стартовых нулей.

Когда Накамото запустил свою сеть Биткоин в начале января 2009 года, в ней, помимо самого создателя системы, не было других участников. Поэтому первые блоки «намайнил» именно сам Накамото. Когда в сети Биткоин стали появляться другие узлы, сложность сети начала постепенно увеличиваться. Логика управления сложностью была заложена следующая: сложность сети должна быть такова, чтобы вне зависимости от количества узлов, которые ищут блоки, а также от их вычислительной мощности новый блок можно было бы найти в среднем не более и не менее чем за десять минут. Сложность пересчитывалась каждые 2016 блоков, то есть примерно один раз в две недели. Совокупное, реально затраченное время нахождения всех 2016 блоков разделялось на их количество, и полученный результат сравнивался с десятиминутным эталоном. Если блоки находились в среднем быстрее, сложность увеличивалась – то есть поднимались требования к количеству нулей в хеше заголовка блока. Если медленнее – требования уменьшались.

Теперь следует сделать отступление, чтобы разобраться, каким образом перебираются хеши в процессе майнинга. Поскольку хешируется заголовок блока, это означает, что хешируемая информация довольно статична. А это, в свою очередь, говорит о том, что при неизменном прообразе мы будем все время получать один и тот же хеш. Что входит в противоречие с нашей целью – найти «золотой» хеш, чтобы он начинался с большого количества нулей. Давайте взглянем еще раз на структуру заголовка блока, чтобы понять: есть ли там какая-либо динамическая величина, которая будет меняться настолько быстро, чтобы у майнера была возможность хешировать миллионы, миллиарды или даже триллионы прообразов в секунду?

Порядковый номер блока – информация сугубо статичная, которая меняться не будет. Номер версии блока также представляет собой фиксированное значение. Теперь что касается времени создания блока, которое выражается в секундах, прошедших с 1 января 1970 года. Логично было бы предположить, что оно будет меняться не чаще раза в секунду, что для нашей задачи является крайне низкой динамикой. Число транзакций в блоке и вычисленное из них корневое значение дерева Меркла – информация также относительно постоянная. Однако бывают случаи, когда во время поиска валидного хеша майнеру поступают новые транзакции с более высокой комиссией, чем те, что он ранее включил в блок, – тогда блок будет иметь смысл пересобрать заново. Но данная процедура также имеет достаточно низкую динамику и проблем с необходимым разнообразием хешей не решает.

Получается, что коль скоро высокодинамичная информация в заголовке блока естественным образом отсутствует, для решения поставленной задачи необходимо вводить в процедуру майнинга некий искусственный элемент. Он не будет нести никакой полезной нагрузки, кроме как играть роль дополнительной составляющей заголовка блока, как прообраза для хеширования. И такой элемент действительно присутствует в заголовке каждого блока, и называется он «нонс» (nonce). Именно значение этого нонса майнер и будет исключительно быстро менять при переборе, открывая возможности для получения огромного количества разнообразных хешей, среди которых может оказаться и заветный «золотой» хеш с требуемым количеством нулей.

По сути, процедура майнинга и сводится к поиску подходящего значения этого самого нонса, который, будучи добавленным к заголовку блока, позволит майнеру вычислить валидный хеш, дающий ему право на создание нового блока, безусловно принимаемого всей сетью. Однако процедура поиска необходимого значения нонса достаточно сложна. В сети Биткоин используется алгоритм хеширования SHA-256, который предполагает два цикла по 64 итерации хеширования каждый. По состоянию на весну 2019 года сложность сети Биткоин требует наличия 18 первых нулевых символов для нахождения валидного хеша, соответствующим 72 нулевым битовым значениям. Что требует примерно 2>72 или около 5 · 10>21 переборов хешей. Много это или мало? Давайте попробуем сравнить это число, скажем, с количеством песчинок на всех пляжах нашей планеты. Ученые сопоставляют количество песчинок с величиной, приближенной к 10>18. Таким образом, сложность нахождения нужного нам валидного хеша с такими требованиями сопоставима с процедурой перебора всех песчинок примерно на 5000 планет, условно подобных Земле. Вот пример такого валидного хеша, с требованием по сложности в 18 начальных нулей:



Как уже упоминалось, первые блоки сети Биткоин Сатоши Накамото находил самостоятельно и использовал для этого обычный компьютер. Как, собственно, и другие участники сети, которые стали постепенно в ней появляться. И на том самом начальном уровне сложности обычного процессора компьютера вполне хватало, чтобы находить блок за положенные в среднем десять минут. Однако по мере роста количества участников сети сложность стала автоматически пересчитываться в сторону увеличения, и в какой-то момент для обычного компьютерного процессора вычислительная задача стала «неподъемной». Тем не менее майнеры быстро нашли выход – они задействовали для поиска блоков не центральный процессор, а тот, который был установлен на их видеокартах. В силу специфики своей вычислительной архитектуры графический процессор гораздо быстрее рассчитывал хеши, чем центральный. Но через определенное время сложность возросла настолько, что и графический процессор перестал справляться с майнингом блоков. Правда, решение было найдено довольно скоро: в июне 2012 года компания Butterfly Labs начала поставлять специальное программно-аппаратное обеспечение под названием ASIC (Application-Specific Integrated Circuit, или «интегральная схема специального назначения»). Фактически это был небольшой специализированный компьютер, полностью оптимизированный только под одну задачу – перебирать хеши по алгоритму SHA-256 и делать это исключительно быстро. Началась эра сначала частного, а затем и промышленного майнинга Биткоина с использованием самых новейших аппаратных средств, производимых различными компаниями, активно конкурирующих между собой.


Рекомендуем почитать
Кибербезопасность в условиях электронного банкинга. Практическое пособие

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


Доходное инвестирование

Что я могу ответить? Я такой же как вы, только начал инвестировать на несколько лет раньше (с 2002 года). Я начинал с "маленьких денег", но уже живу вместе со своей семьей на доходы со своего инвестиционного капитала. Я люблю докапываться до сути вещей и эта моя страсть может быть кому-нибудь полезна кроме меня. А я люблю быть полезным, потому что люблю людей и люблю пользу. Я люблю писать – поэтому я все это и пишу. Если быть кратким: я не собираюсь ни в этой рубрике, ни в целом на вокруг да около, ни в своих консультациях кого-то чему-то учить.


Инвестор за выходные. Руководство по созданию пассивного дохода

Вокруг инвестиций много мифов. Одни говорят, что это слишком сложно и 90 % инвесторов теряют деньги. Другие убеждают в обратном: инвестировать можно безопасно, никакие знания не нужны, а начать стоило еще вчера. Правда, как всегда, посередине: чтобы не прогореть в самом начале, стоит познакомиться с основными правилами в мире инвестиций. Но это действительно несложно – вы справитесь за несколько дней. Автор книги «Инвестор за выходные» Семён Кибало к 30 годам добился полной финансовой независимости благодаря пассивному инвестированию.


Фондовый рынок. Курс для начинающих

Эта книга – великолепное учебное пособие для начинающих углубленное изучение фондовых рынков. Она дает общее представление обо всех аспектах их работы и адресована как студентам и преподавателям экономических вузов, так и начинающим инвесторам, специалистам брокерских фирм и банков. Несмотря на сложность финансовых рынков, все большему числу людей в силу профессиональных потребностей или личного интереса необходимы практические знания об их инструментах, структуре, игроках, регулировании и других особенностях.


Государственные и муниципальные финансы: конспект лекций

Конспект лекций соответствует требованиям Государственного образовательного стандарта высшего профессионального образования.Доступность и краткость изложения позволяют быстро и легко получить основные знания по предмету, подготовиться и успешно сдать зачет и экзамен.Рассматриваются понятие, сущность государственного управления, типы и формы государства, органы государственной власти, структура и компетенция органов законодательной и исполнительной власти Российской Федерации, судебная власть, система органов местного самоуправления и многое другое.Для студентов экономических вузов и колледжей, а также тех, кто самостоятельно изучает данный предмет.


Менеджмент в российском банке. Опыт системного анализа и управления

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