Практически каждый слышал о том, что такое блокчейн и как это здорово. Но не все понимают, как эта технология работает. В данной статье мы расскажем, что она из себя представляет.
Что такое блокчейн?
Блокчейн-технологию можно представить в виде дневника, который практически невозможно подделать.
Хэш-функция
Допустим, в одной комнате собралось 10 человек, которые решили создать собственную валюту. Им необходимо следить за потоком средств, а один из них, например, Миша, решил фиксировать все события в дневнике:
- Аня дала три токена Маше
- Маша дала пять токенов Ване
- Ваня дал три токена Ане
- Аня дала один токен Васе
- …
Один из присутствующих, Ваня, решил деньги украсть, и поэтому внес изменения во все записи в дневнике:
- Аня дала 10 токенов Маше
- Маша дала 5 токенов Ване
- Маша дала три токена Ане
- Аня дала один токен Васе
- ….
Миша заметил, что кто-то внес изменения в его записи, и решил это прекратить. Он нашел программу, которая называется хэш-функция. Она переводит текст в набор символов — цифр и букв.
Хэш — это последовательность цифр и букв, произведенных хэш-функцией. Хэш-функция — это математическая функция, которая изменяемое число символов переводит в последовательность с фиксированным числом символов. Даже малейшее изменение в таких последовательностях создает абсолютно новый хэш.
Итак, Миша после каждой записи добавил хэш. Теперь дневник стал выглядеть так:
- Аня дала 10 токенов Маше.
lgk8gj3rjrrkgjkjflskjvsklk123nkbdkfjbdlkfbjdfb85fbdf0bxklfjbsv5d1b
- Маша дала 5 токенов Ване.
fdfhsd4nx6nx8v1vkvnklv9alsdd8xmxmxxb0bnnkxnzvzzdvz6vzvz
Ваня снова решил внести изменения в записи. Ночью он добрался до дневника, внес изменения в записи и создал новый хэш.
- Аня дала 10 токенов Маше
cff4kgkldfkslgb8sdvjkadna9fjvfvba0zdfnadfjvdcv1bkb4kjdfj7vnv5
- Маша дала 8 токенов Ване
4zfjvzfv41dkfzlfkjdlfjfff0fnvskjvf7fvskdvskdva2sda9dadbckajbc5d
Миша заметил, что кто-то опять внес изменения в записи в дневнике. Он решил усложнить характер записи о каждой транзакции. Тогда он решил усложнить систему записи о каждой операции. Он стал добавлять хэш, созданный из записи и последнего хэша. Таким образом, каждая новая запись стала зависеть от предыдущей.
Вводные данные | Хэш |
Аня дала 10 токенов Маше | 5dfjkgdkfghsv9svksdvjksdbjvd7adcjhacghasc4 |
Маша дала пять токенов Ване 5dfjkgdkfghsv9svksdvjksdbjvd7adcjhacghasc4 | sdjsk3kjvkjw2klkv9jvlv0vskdvsdvka6jdvj55asdv |
Маша дала три токена Ане sdjsk3kjvkjw2klkv9jvlv0vskdvsdvka6jdvj55asdv | sdfjhsdv567svdkjsdvk8sdvn3dvkja1ksdvks333s |
Если Ваня решит опять внести изменения в записи, ему придется менять хэш во всех предыдущих записях. Но Ваня был очень алчным и потратил целую ночь на исправление всех хэшей.
Случайный код
Но и Миша не хотел так легко сдаваться. Он решил добавить цифры в конце каждой записи. Эти цифры называются «случайный код» или «случайное число». Случайное число подбирается таким образом, чтобы сгенерированный хэш оканчивался на два нуля.
Вводные данные | Хэш |
Аня дала 10 токенов Маше 451 | 5dfjksv9s0541vksdvjksdbjvd7ad899asc900 |
Маша дала пять токенов Ване 13 5dfjksv9s0541vksdvjksdbjvd7ad899asc900 | sdjk3kj2klkv9jvlv0vs812dv567ka6jdvj55a00 |
Маша дала три токена Ане 476 sdjk3kj2klkv9jvlv0vs812dv567ka6jdvj55a00 | sdfj132dv567vd8dvk8sdn3dvkja1ks333s00 |
Теперь, чтобы фальсифицировать записи, Ване пришлось бы провести множество часов, подбирая случайное число к каждой строчке.
А главное, не только люди, но и компьютеры не могут быстро подобрать такой случайный код.
Узлы
Позже Миша понял, что записей слишком много, и вести дневник в таком виде целую вечность не представляется возможным. Поэтому, когда количество транзакций достигло пяти тысяч, он преобразовал их в крупноформатную электронную таблицу. А Маша проверила ее правильность.
Миша перенес свой дневник в форме таблицы более чем на 5.000 компьютеров по всему миру. такие компьютеры называются «узлы». При проведении каждой транзакции ее правильность проверяет каждый из этих узлов и затем одобряет или не одобряет ее. После проверки транзакции каждым узлом происходит что-то вроде процесса электронного голосования, ведь одни узлы могут посчитать операцию верной, а другие — нет.
Каждый узел, т.е. компьютер, содержит копию цифрового реестра блокчейн. Каждый узел проверяет правильность каждой транзакции. Если большинство узлов сочли транзакцию верной и одобрили ее, эту транзакцию заносят в блок.
И теперь, если Ваня решит исправить одну запись, остальные компьютеры, обладающие оригинальным хэшем, просто не дадут внести никаких изменений.
Блок
Блоком называется большая электронная таблица, о которой мы упоминали выше. А все семейство блоков образует «блокчейн» — дословно, «цепочку блоков». Каждый узел содержит копию блокчейна. Как только в блоке набирается определенное количество одобренных транзакций, формируется новый блок.
Блокчейн автоматически обновляется каждые 10 минут, без получения соответствующей команды от мастера или центрального компьютера.
После обновления никаких изменений в такую таблицу или, как ее называют, «реестр», внести больше нельзя, а значит, подделать ее тоже будет невозможно. Остается только вносить новые записи. Обновление реестра происходит на всех компьютерах блокчейн-сети одновременно.
Подведем итоги
- Блокчейн — это вид дневника или электронной таблицы, где содержится информация о транзакциях.
- При проведении каждой транзакции генерируется хэш.
- Хэш — это последовательность букв и цифр.
- Транзакции фиксируются в порядке их проведения, который играет важную роль.
- Хэш зависит не только от транзакции, но и от хэша предыдущей транзакции.
- Малейшее изменение в транзакции создает абсолютно новый хэш.
- Узлы проверяют транзакции на предмет изменений посредством тщательного изучения хэша.
- Если транзакцию одобрит большинство узлов, она вносится в блок.
- Каждый блок связан с предыдущим блоком, а вместе они образуют цепь блоков — блокчейн.
- Эффективность блокчейна заключается в том, что его сеть распределяется на множество компьютеров, на каждом из которых есть копия блокчейн.
- Эти компьютеры называются узлами.
- блокчейн автоматически обновляется каждые 10 минут.