Введение в технологию Блокчейн. Тимур Сергеевич Машнин

Чтение книги онлайн.

Читать онлайн книгу Введение в технологию Блокчейн - Тимур Сергеевич Машнин страница 2

Введение в технологию Блокчейн - Тимур Сергеевич Машнин

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

простым перебором возможных сообщений.

      Одновременно мы получаем и отсутствие конфликтов, используя такую схему.

      Невозможно будет найти два разных сообщения с одинаковым таким хэшем.

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

      Используя id из большого распределения, нужно найти x, чтобы хэш id и x попадал в заранее определенное распределение y.

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

      И мы будем использовать это позже, когда мы поговорим о майнинге биткойнов.

      Это своего рода вычислительная загадка, которую мы будем использовать.

      Существует множество хэш функций, но функция, которую использует биткойн, это функция, которая называется SHA-256, и она работает следующим образом.

      Она принимает сообщение, которое вы хешируете, и она разбивает его на блоки размером 512 бит.

      Сообщение не обязательно кратно размеру блока, поэтому мы должны добавить в конце дополнение. И это дополнение будет состоять из, в конце дополнения, поля длиной 64 бит, которое является длиной сообщения в битах.

      И затем до этого находится один бит, за которым следует некоторое количество нулевых бит.

      И вы выбираете число нулевых бит, чтобы выйти точно в конец блока.

      После того как вы разбили сообщение на блоки, вы начинаете вычисление.

      Вы начинаете с 256-битного начального значения и берете первый блок сообщения.

      Затем вы берете эти 768 полных битов, и обрабатываете специальной функцией сжатия, которая на выходе дает 256 бит.

      Вы берете полученные 256 бит и следующие 512 бит сообщения, снова пропускаете через функцию сжатия и так далее, пока не обработаете все блоки сообщения.

      Таким образом вы получите хэш, как 256-битное значение.

      И нетрудно показать, что если эта функция сжатия, C, является свободной от коллизий, то вся эта хэш-функция также будет свободна от коллизий.

      Хэш указатели и структуры данных

      Далее мы поговорим о хэш указателях и их применении.

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

      И в которой вместе с указателем хранится криптографический хэш самой информации.

      Поэтому, если обычный указатель дает способ получения информации, хеш-указатель позволяет не только получить информацию, но и также проверить, что эта информация не изменилась.

      И мы можем использовать хэш указатели для создания всех видов структур данных.

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

      Например,

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