Скачать книгу

хэши для безопасного хранения различных данных.

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

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

      У хэширования есть четыре очень важных свойства:

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

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

      3. Мы можем обрабатывать строку любой длины, при этом в результате всегда будет получен хэш одинаковой длины. Можем взять текст «Войны и мира» или всего одну цифру, – в результате хэширования будет получено одинаковое количество символов.

      4. При малейшем изменении тех данных, которые мы хэшируем, результаты будут отличаться очень сильно.

      Рис. 2. Как работает хэширование

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

      Реестр транзакций

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

      В реестре все транзакции, подписанные кошельками, собираются в один длинный список и ждут своей очереди на проверку (верификацию, валидацию). Если очень сильно упростить процедуру, то суть проверки состоит в том, что участники сети берут исходные данные транзакции, добавляют к ним ваш публичный адрес и вычисляют хэш. Потом сравнивают полученный хэш с хэшем в реестре. Для всех вычислений и сравнений используются инструменты из высшей математики, которые заложены в алгоритмах блокчейна. Если все правильно, то транзакция считается валидной и будет добавлена в блок к другим «правильным» транзакциям.

      Майнинг

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

      Майнерам для проверки транзакций и добавления их в блоки обязательно нужны две вещи: во-первых, хранить у себя полную ноду

Скачать книгу