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

данных в дереве Merkle мы можем проверить членство данных за относительно короткое время.

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

      И мы можем проверить принадлежность к дереву за логарифмическое время.

      Также есть вариант Merkle дерева – это сортированное дерево Merkle.

      В этом дереве мы берем блоки данных внизу и сортируем их в некотором порядке.

      Алфавитном, лексикографическом, числовом порядок или каком-либо другом порядке.

      И как только мы отсортировали дерево Merkle, мы можем доказать, что конкретный блок не находится в дереве Merkle.

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

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

      И поэтому между ними нет места для элемента, который мы ищем.

      Цифровые подписи

      Далее мы поговорим о цифровых подписях.

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

      Итак, цифровая подпись – это как подпись на бумаге только в цифровой форме.

      И что это значит, что мы хотим от подписи? Это две вещи.

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

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

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

      Это означает ваше согласие или одобрение конкретного документа.

      Теперь, как мы можем построить это в цифровой форме с использованием криптографии?

      Вот API интерфейс для цифровых подписей.

      Здесь есть три операции, которые мы должны делать.

      Первое, нам нужно иметь возможность генерировать ключи, и поэтому у нас есть операции generateKeys, которая принимает размер ключа и создает два ключа, sk и pk.

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

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

      Вторая операция, это операция подписи.

      Операция подписи берет секретный ключ подписи и сообщение, на котором вы хотите поставить свою подпись.

      И она возвращает значение, которое является подписью и которое представляет собой лишь несколько бит, представляя вашу подпись.

      И затем, третья операция – это проверка, которая берет то, что утверждается как правильная подпись, и подтверждает,

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