Как функционирует блокчейн
Чтобы понять, как функционирует блокчейн, стоит в качестве примера привести простую аналогию. Допустим, несколько человек решили каждый день взвешиваться и записывать показания в базу данных.
· каждый участник проекта может в любой момент времени получить доступ к любой записи в базе данных.
Как уже говорилось выше, блокчейн — это цепочка, состоящая из блоков. Что же такое «блок»?
Результаты взвешивания всех участников за один период, например, за день, можно объединить в блок. Все участники взвешиваются и вносят показания в программное обеспечение блокчейна. Далее сама программа группирует эти записи, которые, как мы знаем, называются транзакциями, в один блок и записывает в блокчейн. Блок ограничен объемом информации, которую в него можно записать, в разных блокчейнах размер блока отличается. Чем больше размер, тем больше транзакций можно записать в блок, сеть при этом будет работать быстрее.
Блок, условно говоря, делится на несколько секторов, в каждый из которых записывается определенная информация. В один из секторов записываются транзакции. А еще один сектор отводится под заголовок. В заголовке записывается системная информация блока: время создания, хеши текущего и предыдущего блоков.
Хеш-сумма, хеш-код, или сокращенно хеш — это результат работы хеш-функции. Хеш-функция основана на той самой криптографии, о которой упоминалось выше. Это математический алгоритм, который может данные произвольного размера превратить в массив битов фиксированного размера.
· после взвешивания каждый участник показывает свой результат всем остальным участникам, то есть все должны подтвердить, что согласны с результатом взвешивания для каждого из них;
· после этого вес каждого участника заносится в базу данных;
· внесенные в базу данных записи менять нельзя, если кто-либо будет уличен в обмане или изменении уже внесенной записи — он изгоняется из проекта;
Собственно, перед нами и есть простая модель блокчейна. Записями в блокчейне могут быть любые данные. Результаты измерений, финансовая информация, личные записи, например, блог, дневник. Практически любая информация.
Есть несколько важных понятий, которые нужно знать, чтобы хорошо понимать принцип работы блокчейна.
Вернемся к примеру со взвешиванием. Каждая запись в блокчейне, в данном случае результат взвешивания, называется транзакцией.
Пример хеш-суммы: ef7797e13d3a75526946a3bcf00daec9fc9c9c4d51ddc7cc5df888f74dd434d1.
Так хеш-функция закодировала слово «blockchain». Что интересно, зная только хеш-сумму, но не имея доступа к хеш-функции никто не сможет этот длинный и бессмысленный набор букв и цифр преобразовать назад в слово «blockchain».
ef7797e13d3a75526946a3bcf00daec9fc9c9c4d51ddc7cc5df888f74dd434d1
625da44e4eaf58d61cf048d168aa6f5e492dea166d8bb54ec06c30de07db57e1
Они кардинально отличаются, увидеть между ними какую-то взаимосвязь невозможно. Хотя, в первом случае это слово «blockchain», а во втором случае это же слово, но написанное с большой буквы — «Blockchain». То есть, даже малейшее изменение входных данных полностью меняет хеш-сумму. Это называется эффектом лавины. Можно самому поиграться с созданием хеш-сумм на этом сервисе.
Так к чему это все и что такое хеш блока? Когда все данные (транзакции) записаны в блок, они пропускаются через хеш-функцию, которая выдает хеш-сумму этого блока. Она записывается в заголовок блока. Также в заголовок блока записывается хеш-сумма предыдущего блока.
Так незамысловато работает хеш-функция. И даже самое незначительное изменение информации в любом из уже существующих блоков повлечет за собой изменение хеша как самого блока, в котором произошло изменение, так и всех остальных хешей. Вот и тот самый эффект лавины.
В таком случае все участники блокчейна заметят эти изменения, и, скорее всего, будут с ними не согласны. Ведь все, что попало в блокчейн, остается там навсегда в неизменном виде. Это один из важных принципов блокчейна.
Может возникнуть вопрос, а что в качестве хеша предыдущего блока записывается в самом первом блоке блокчейна? Ответ прост: ничего, только хеш именно этого блока. Кстати, самый первый блок в цепочке блоков называется генезиз-блоком (genesis block).
Подытожим свойства хеш-суммы:
· она уникальна для каждого массива данных и всегда будет одинакова для каждого из них;
· при самом незначительном изменении входящей информации хеш полностью меняется;
· хеш-сумма необратима, то есть, при текущем уровне технологического развития из нее нельзя извлечь исходную информацию.
Пример хеш-суммы: ef7797e13d3a75526946a3bcf00daec9fc9c9c4d51ddc7cc5df8
88f74dd434d1.
ef7797e13d3a75526946a3bcf00daec9fc9c9c4d51
ddc7cc5df888f74dd434d1
625da44e4eaf58d61cf048d168aa6f5e492dea166d
8bb54ec06c30de07db57e1