В прошлый раз мы в общих чертах говорили о том, что такое блокчейн. Я представил его как некий коллективный бухгалтер, который сообща контролирует транзакции. Сегодня мы мы рассмотрим, что такое хэш-функция и зачем она нужна, поскольку это краеугольный камень технологии, на ее применении основана безопасность сети, майнинг, да и вообще все ее функционирование.
Прежде всего вспомним, что содержит в себе блок данных:
ссылка на предыдущий блок (его хэш) + список всех транзакций в текущем блоке + волшебное число
На волшебном числе мы сейчас останавливаться не будем, скажем только, что оно помогает майнерам добывать валюту, являясь тем самым предметом компьютерной "гонки". А что такое хэш?
Хэш - это результат работы хэш-функции. Ее можно себе представить неким черным ящиком — шифратором. Это сложный калькулятор, который вычисляет сумму всех входных данных, которые попадают в него. Например, вычислим хэш номера мобильного телефона:
790 00 83 04 92 => 7 + 9 + 0 + 8 + 3 + 0 + 4 + 9 + 2 => 42 => 4 + 2 = 6
Здесь хэш = 6
Свойства хэша таковы, что невозможно из вычисленного результата получить входные данные. При этом, имея те же входные данные, и зная способ вычисления, всегда можно вычислить хэш повторно - и это краеугольный камень криптографии и сети биткоин.
В реальности, конечно, все намного сложнее, поскольку алгоритмы шифрования - это целая наука, а блокчейн биткоина хэширует не номера телефонов своих владельцев, а 64-значные ключи в шестнадцатеричной системе исчисления, используя алгоритм шифрования SHA256.
Теперь можно еще раз взглянуть на связь между страницами учета бухгалтерской книги:
...
Блок_102 = Хэш Блока_101 + список транзакций + волшебное число.
Блок_103 = Хэш Блока_102 + список транзакций + волшебное число.
Блок_104 = Хэш Блока_103 + список транзакций + волшебное число.
В заголовок каждого последующего блока записывается хэш-сумма всех данных из предыдущего блока, которую нельзя вычислить в обратном порядке. Сложность выполнения подобной задачи можно сравнить с поиском двух конкретных песчинок на планете Земля. Если злоумышленник попробует заменить страницу и передать несуществующий биткоин, это будет отвергнуто сетью, потому что хэш суммы в соседних блоках, да и во всей последующей цепочке - не будут совпадать.
Хэш функция используется в биткоине, да и вообще, в любом блокчейне - повсеместно. Это она защищает блокчейн от злоумышленников, держит средства людей в сохранности, а также позволяет осуществлять транзакции от одного владельца биткоина - к другому.
Задание:
Вычислите хэш-сумму своего мобильного телефона.
Для чего нужен хэш в блокчейне?
На следующей встрече мы рассмотрим что такое кошелек и как происходит перевод денежных средств. Встреча состоится в 18 часов по Москве в следующую пятницу и будет анонсирована заранее. Приветствую уточняющие комментарии знатоков, а также вопросы от новичков, которые позволят привести текст и видеоматериал к действительно обучающему. Вопросы и ответы - в комментариях.
Хэш функция - это такая мясорубка, в которую кладут мясо, а на выходе получают фарш. А, как известно, "Жизнь (фарш) невозможно повернуть (провернуть) назад..."