Данные, хранящиеся с использованием технологии блокчейн (blockchain), представляют собой непрерывную цепочку блоков, в каждый из которых записывается информация. Эта цепочка со временем обновляется и дополняется. Чтобы подтвердить истинность записанных блоков, в блокчейне используется функция хеширования (hashing).
Хеш-функция блокчейна
Блокчейн — революционная технология хранения и обработки данных, обладающая одновременно несколькими свойствами:
- распределенность, т. е. информация хранится на всех компьютерах, работающих с блокчейном;
- ненужность двойных записей: система учета действует таким образом, что при создании транзакции о переводе определенного числа монет, автоматически формируется другая транзакция с количеством монет, которые отправитель формально высылает сам себе, а сумма этих транзакционных операций равна начальному числу монет;
- устойчивость к подмене, блоки одновременно копируются столько раз, сколько пользователей участвует в блокчейне, соответственно попытка злоумышленников подменить один блок обречена на провал.
Чтобы хешировать данные, получаемые в процессе генерации биткоинов (bitcoin), используют алгоритм шифрования SHA-256, применяемый также в криптографии. Он состоит в том, что информация любого размера и вида кодируется в 256-битный ключ, состоящий из цифр и букв латинского алфавита.
Хеш функция уникальна тем, что с ее помощью кодируется как многотомная книга, так и одно слово, а размер полученного ключа будет одинаковым. При попытке внести изменения хотя бы в 1 символ исходного блока, полученный в результате hash ключ будет кардинально отличаться. Эта ситуация называется «эффект лавины» и служит для защиты от изменений. Также алгоритм SHA-256 гарантирует защиту от коллизий, т. е. вероятность генерации совпадающих хешей при неодинаковых исходных данных стремится к нулю.
Хеширование в майнинге
Вычислительный процесс генерации данных в блокчейне называют майнингом. Хеширование является неотъемлемой его частью. Каждый новый блок несет в себе следующую информацию: хеш предыдущего и хеш текущего блоков, адрес кошелька, список транзакций и другие системные значения. Технология понимает, на основании дешифровки хеша, какой блок является старым, а какой новым, и в соответствии с этим записывает их в список транзакций.
Пользователи во время майнинга создают новые контейнеры с информацией, но подтверждение получают только те, которые отвечают заданным условиям блокчейна. Хеш блока, создаваемого пользователем, должен быть меньше максимально возможного за вычетом переменной, которую обозначают как «сложность». В зависимости от того, с какой скоростью находились предыдущие блоки, сложность задачи увеличивается или уменьшается, чтобы скорость майнинга в будущем оставалась на относительно одинаковом уровне. Если одновременно отслеживается не один блок, удовлетворяющий указанному условию, то пройдет проверку и в список транзакций добавится только тот, чья цепочка длиннее.
ВАЖНО! Чтобы узнать хеш конкретной транзакции, нужно воспользоваться специальными программными средствами или сайтами. Например, если вводить на сайте www.blockchain.info информацию о биткоин-транзакции, то на экране отобразятся все сведения о ней, в том числе и искомый хеш. Управление транзакциями осуществляют в личном кабинете, там же отслеживают отправителей и получателей биткоинов, заводят биткоин-кошелек, обменивают криптовалюту.
Использование хеширования в области блокчейна и при создании биткоинов помогает проверять истинность и неизменность полученных блоков, защищает их от вмешательства извне. Кроме шифрования SHA-256, в блокчейне применяются другие хорошие криптографические методы: X11, DaggerHashimoto, Scrypt.
Видео: криптографические хеш-функции
Смотрите это видео на YouTube
Видео: что называется хешированием?
Смотрите это видео на YouTube