m
Recent Posts
16/08/2018
ГлавнаяЧто такое хеширование

Что такое хеширование?

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

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

Хеш-функции имеются практически в любом языке программирования. Например, они используются для реализации хеш-таблиц и множеств (HashMap/HashSet в Java, dict и set в Python, Map, Set и объекты в JavaScript и так далее). Отдельная категория хеш-функций — криптографические хеш-функции. К ним предъявляются существенно более строгие требования, чем к функциям, обычно используемым в хеш-таблицах. Поэтому и применяются они в более «серьезных» случаях, например для хранения паролей. Криптографические хеш-функции вырабатываются и тщательно проверяются исследователями по всему миру.

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

>>> hash_hex(‘Blockchain’)
‘625da44e4eaf58d61cf048d168aa6f5e492dea166d8bb54ec06c30de07db57e1’
>>> hash_hex(‘blockchain’)
‘ef7797e13d3a75526946a3bcf00daec9fc9c9c4d51ddc7cc5df888f74dd434d1’
>>> hash_hex(‘Bl0ckchain’)
‘511429398e2213603f4e5dd3fff1f989447c52162b0e0a28fe049288359220fc’

Защита данных с помощью Хэширования

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

  • Невозможно создать одинаковое хэш-значение для разных входных данных:  Это важно, потому что, если бы это было не так, было бы невозможно отслеживать подлинность входных данных. 
  • Одно и то же сообщение всегда будет выдавать одно и то же хэш-значение:  Важность этого аналогична предыдущему пункту.
  • Быстрое создание хэша для любого сообщения: В противном случае система не была бы эффективной или не предоставляла ценность.
  • Невозможно определить входные данные на основе хэш-значения: Это один из главных аспектов и качеств хэширования и защиты данных.
  • Даже малейшее изменение ввода полностью изменяет хэш:  Это также вопрос безопасности. Если бы незначительные изменения только немного изменят хеш, то было бы значительно легче разобраться в том, какие данные были на входе. Чем лучше и сложнее алгоритм хеширования, тем больше влияние изменения входных данных на выходные данные (смотрите пример выше).

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

Хеширование Блокчейна

Хеши в блокчейнах гарантируют «необратимость» всей цепочки транзакций. Дело в том, что каждый новый блок транзакций ссылается на хеш предыдущего блока в реестре. Хеш самого блока зависит от всех транзакций в блоке, но вместо того, чтобы последовательно передавать транзакции хеш-функции, они собираются в одно хеш-значение при помощи двоичного дерева с хешами (дерево Меркла). Таким образом, хеши используются как замена указателям в обычных структурах данных: связанных списках и двоичных деревьях.

За счет использования хешей общее состояние блокчейна — все когда-либо выполненные транзакции и их последовательность — можно выразить одним-единственным числом: хешем самого нового блока. Поэтому свойство неизменности хеша одного блока гарантирует неизменность всего блокчейна.

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

Первый блок блокчейна, известный как блок genesis, содержит транзакции, которые при объединении и проверке производят уникальный хэш. Этот хэш и все новые транзакции, которые обрабатываются, затем используются в качестве входных данных для создания совершенно нового хэша, который используется в следующем блоке в цепочке. Это означает, что каждый блок ссылается на свой предыдущий блок через его хэш, образуя цепочку обратно в блок genesis, отсюда и название блокчейн (blockchain). Таким образом, транзакции могут быть добавлены безопасно, пока узлы в сети находятся в консенсусе относительно того, каким должен быть хэш.

Структура данных

Уважаемый обучающийся!

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

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

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

Что такое ICO, как правильно инвестировать и минимизировать риски, как правильно изучать ICO перед инвестированием, что такое Whitepaper, ключевые моменты и как провести самому ICO.

Что такое криптовалюты, в чем их особенности, как заработать на них, что такое Биткоин, меры безопасности при пользовании криптовалютами.

Это лишь малый список вопросов на которые вы найдете подробнейшие и исчерпывающие ответы с прекрасной инфографикой и кейсами.

На данном этапе заканчивается демо-доступ к контенту Блокчейн Академии The Blockchain Journal.  Продолжение обучения доступно только зарегистрированным обучающимся. Для контактов: support@thebcj.ru

В начало

НАДЕЕМСЯ ВАМ ПОНРАВИЛАСЬ НАША АКАДЕМИЯ

и качество материалов, которые помогают в интерактивном режиме изучать столь непростые технологии!

ДЛЯ ПРОДОЛЖЕНИЯ СВЯЖИТЕСЬ

уточнить цену support@thebcj.ru

или Telegram: @FeedSupport_bot 

Что дальше?

протоколы консенсуса Блокчейна

 

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

Навигация по программе обучения
Прогресс обучения
Знаток 22%

Меню навигации будет доступно в процессе обучения

Меню навигации будет доступно в процессе обучения

Меню навигации будет доступно в процессе обучения

Меню навигации будет доступно в процессе обучения

Меню навигации будет доступно в процессе обучения