Что хеширует Биткоин

Хэширование, или хэш-функция — одна из основных составляющих современной криптографии и протокола блокчейна.

Но, что это такое? Как наглядно представить сущность хэша?

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

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

Как такое может быть? Целый многотомный роман и коротокая строчка, которая отражает его!

В этом смысле хэш подобен отпечатку пальца человека.

Как известно, отпечаток пальца уникален и в природе не существует людей с одинаковыми отпечатками. Даже у близнецов отпечатки пальцев разные.

То же касается и структуры ДНК человека. Она уникальна! Нет людей с одинаковым набором ДНК.

Но, ведь, ДНК, а тем более отпечаток пальцев — относительно короткие наборы информации. И, тем не менее, они являются неким кодом, присущим конкретному человеку. Можно считать, что это и есть «хэши» этого человека. С тем лишь отличием, что эти «хэши» не меняются с возрастом человека.

Итак, первое свойство хэша — его уникальность:

  • Каждому набору (массиву) информации присущ строго определенный, уникальный хэш.

Тем не менее, иногда встречаются т.н. коллизии — случаи, когда хеш-функция для разных входных блоков информации вычисляет одинаковые хэш-коды.

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

Следует отметить, что функций, которые вычисляют хэш, существует множество. Но, наиболее распространена (в частности, используется в протоколе блокчейна биткоина) хэш-функция под названием SHA-256 (от Secure Hash Algorithm — безопасный алгоритм хеширования). Эта хэш-функция формирует хэш в виде строки из 64 символов (длина — 256 бит или 32 байта).

Попробуем при помощи SHA-256 hash калькулятора получить хэш для заголовка этой статьи (« Хэширование: Просто и наглядно»).

Это будет: ef3c82303f3896044125616982c715e7757d4cd1f84c34c6b2e64167d2fde766

А теперь изменим заголовок всего лишь на один символ — добавим знак восклицания в конце (« Хэширование: Просто и наглядно !»).

Как видите, изменение всего лишь на один знак исходного массива информации привело к кардинальному изменению его хэша!

И это второе важное свойство хэша:

  • При самом незначительном изменении входной информации её хэш меняется кардинально.

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

Третье важное свойство хэша, вытекает из того, что хэш-функция необратима. Другими словами:

  • Не существует обратной функции, которая из хэша может восстановить исходный массив информации.
Читайте также:  Биткоин хайпы что это

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

Это свойство важно, поскольку делает взлом хэша (восстановление исходной информации по её хэшу) или невозможным или весьма дорогостоящим занятием.

Еще одно важное свойство хэш-функций — это высокая скорость работы.

  • Хэширование позволяет достаточно быстро вычислить искомый хэш из весьма большого массива входной информации.

Этим хэширование существенно отличается от кодирования (шифрования) и декодирования (дешифрования).

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

Просто и наглядно, как это делается, я расскажу в следующих статьях.

А пока прочитайте мою предыдущую статью из цикла «Просто и наглядно» о Шифровании с открытым ключом.

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


Люди постоянно отправляют Биткоины через Биткоин сеть, но если кто-то не сохранит запись о всех этих переводах, никто не сможет отследить, кто и за что заплатил. Биткоин сеть делится этим, собирая все данные о транзакциях сделанные за все время в список, которые называются блоками. Работа майнера заключается в том, чтобы подтвердить эти транзакции и записать их в общий реестр.

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

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

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

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

Читайте также:  Как играть в марио Биткоин

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

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

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

Итак, вот как майнеры “закрывают” блок. Все они конкурируют друг с другом за это, используя программное обеспечение, написанное специально для майнинга блоков. Каждый раз, когда кто-то успешно создает хеш, они получают вознаграждение в 25 Биткоинов, Блокчейн обновляется, и все в сети узнают об этом. Это стимул держать добычу и поддерживать транзакции.

Проблема в том, что очень легко создать хэш из набора данных. Компьютеры действительно хороши в этом. Сеть Биткоинов должна усложнить работу, иначе каждый из них будет забирать сотни транзакционных блоков каждую секунду, а все Биткоины будут добываться за считанные минуты. Протокол Биткоина преднамеренно затрудняет его, вводя что-то под названием “доказательство работы” (proof of work).

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

Майнеры не должны вмешиваться в транзакционные данные в блоке, но они должны изменить данные, которые они используют, для создания другого хэша. Они делают это, используя другую случайную часть данных, называемую “nonce“. Это используется с данными транзакции для создания хэша. Если хеш не соответствует требуемому формату, значение nonce изменяется, и все это снова хешируется. Это может занять много попыток, перед тем как найти nonce, который работает, и все майнеры в сети пытаются сделать это в одно и то же время. Так майнеры зарабатывают свои Биткоины.

Кстати, вы можете подписаться на наш Telegram канал @incrypted_net и получать новости максимально оперативно. В мире криптовалют и блокчейн все решают новости. А выигрывает тот, кто получает их раньше всех.

Подписывайся, чтобы не упустить ничего важного!

Процесс добычи биткоинов представляет собой майнинг. Несмотря на то, что в последнее время о майнинге говорят все без исключения слои населения, сам процесс майнинга остаётся чем-то таинственным и понятным только определённому числу «избранных». Сегодня мы попробует кратко разобраться в сути вопроса и немного прояснить суть майнинга.

Читайте также:  Как снять Биткоины на яндекс деньги

Если не углубляться в строгие определения, то хеш-функция представляет собой набор символов, полученных из определённой последовательности данных.

Назначение хеш-функций достаточно легко понять из следуюшего примера практической направленности.

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

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

Таким образом, зная хеш-функцию определённого набора данных, можно с лёгкостью определить корректность их передачи.

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

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

Несмотря на это, на самом деле, добыча биткоинов является следствием, а не причиной, и занятие майнингом можно определить также как поиск числа называемого nonce.

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

Верное значение nonce, в совокупности с ранее вычисленными блоками, даёт искомое значение хеш-функции, которое рандомно определяется самим блокчейном.

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

Значения nonce ищутся всеми компьютерами майнеров одновременно. Компьютер, первым определивший верное значение nonce – нового блока блокчейна, получает право назначения нового блока и щедрую премию в размере 12,5 BTC. Понятно, что первым найдёт искомый блок наиболее производительная система.

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

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

Таким образом, достигается некоторый паритет между возможностями майнинговых систем.

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

На сегодняшний день, наилучшим решением для этого является сервис облачного майнинга.

Hashing24 позволяет добывать биткоины удобно и полностью удалённо с использованием любого количества мощностей.

Читайте далее:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Adblock detector