ТОП просматриваемых книг сайта:
Введение в технологию Блокчейн. Тимур Сергеевич Машнин
Читать онлайн.Название Введение в технологию Блокчейн
Год выпуска 2021
isbn
Автор произведения Тимур Сергеевич Машнин
Жанр Компьютеры: прочее
Издательство Автор
Если бы майнеры должны были бы приходить к консенсусу по каждой транзакции отдельно, скорость, с которой новые транзакции принимались бы системой, была бы намного ниже.
Кроме того, хеш-цепочка блоков намного короче, чем хеш-цепочка транзакций, поскольку в каждый блок может быть помещено большое количество транзакций.
Это позволяет повысить эффективность проверки структуры цепочки блоков.
Каждый блок должен включать одну или несколько транзакций.
Первая из этих транзакций должна быть транзакцией coinbase или транзакцией генерации, которая собирает и тратит вознаграждение за блок, состоящее из вознаграждения за сам блок и любых транзакционных сборов, оплаченных транзакциями, включенными в этот блок.
Цепочка блоков – это умная комбинация двух разных структур данных на основе хэшей.
Первая структура – это хеш-цепочка блоков.
Каждый блок имеет заголовок блока с хэш-указателем на транзакции и хэш-указателем на предыдущий блок в последовательности.
Вторая структура данных – это дерево всех транзакций для каждого блока, которые включены в этот блок.
Все транзакции, включая транзакцию coinbase, кодируются в блоке в бинарном формате.
Этот формат хэшируется для создания идентификатора транзакции.
Из этих идентификаторов строится дерево merkle путем спаривания каждого идентификатора с одним другим идентификатором и последующим их объединением.
Если существует нечетное число идентификаторов, идентификатор без партнера хешируется с копией самого себя.
Затем результирующие хеши объединяются по парам и хэшируются вместе.
Любой хеш без партнера хэшируется сам с собой.
Процесс повторяется до тех пор, пока не останется только один хеш, или корень merkle.
Таким образом, это дерево Merkle позволяет нам иметь дайджест всех транзакций в блоке эффективным образом.
Как мы видели ранее, чтобы доказать, что транзакция включена в конкретный блок, мы можем предоставить путь через дерево, длина которого – это логарифм числа транзакций в блоке.
Для повторения, блок состоит из заголовка с данными, за которыми следует список транзакций, расположенных в древовидной структуре.
Заголовок блока содержит информацию, связанную с майнингом.
Вспомните, что хеш заголовка блока должен начинаться с большого количества нулей для того, чтобы блок был действительным.
Доказательство работы подразумевает, что хэш заголовка блока должен быть меньше указанного.
Другой способ сказать это, что хэш заголовка блока должен начинаться с определенного количества нулей.
Любой блок, заголовок которого не создает хэш, который меньше целевого значения, будет отклонен сетью.
Целевое значение настраивается каждые две недели, чтобы поддерживать среднее время создания нового блока 10 минут.
Заголовок также содержит значение «nonce», которое изменяется