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

Тут можно читать онлайн Тимур Машнин - Введение в технологию Блокчейн - бесплатно ознакомительный отрывок. Жанр: Интернет, год 2021. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Введение в технологию Блокчейн
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    2021
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Введение в технологию Блокчейн - описание и краткое содержание, автор Тимур Машнин, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Эта книга познакомит вас с технологией блокчейн, которая позволяет осуществлять передачу и хранение цифровых активов децентрализованным способом. Вы получите понимание и знание базовых концепций технологии блокчейн, познакомитесь с методами разработки приложений для блокчейн сетей. Эта книга объясняет основные компоненты блокчейна, такие как транзакция, блок, заголовок блока и цепочка блоков, операции блокчейна, такие как верификация, валидация и достижение консенсуса, а также алгоритмы, лежащие в основе блокчейна.

Введение в технологию Блокчейн - читать онлайн бесплатно ознакомительный отрывок

Введение в технологию Блокчейн - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Тимур Машнин
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

В этом случае мы хотим, чтобы на выходе транзакции говорилось: «этот выход транзакции может быть потрачен с помощью подписи следующего владельца указанного адреса.»

Напомним, что адрес является хешем публичного ключа.

Поэтому просто указание адреса не дает нам публичный ключ, и не дает нам возможности проверить подпись!

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

Теперь что происходит с этим скриптом Кто его запускает и как именно эта - фото 42

Теперь, что происходит с этим скриптом?

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

Секрет в том, что входы также содержат скрипты вместо просто подписей.

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

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

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

Bitcoin язык скриптов был создан специально для биткойнов и называется просто «Скрипт».

Он имеет много общего с языком под названием Forth, который является старым, простым, основанным на стеках языком программирования.

Но вам не нужно изучать Форт, чтобы понимать скрипты биткойнов.

Язык Script был создан, чтобы иметь что-то простое и компактное, но с собственной поддержкой криптографических операций.

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

Язык Script основан на стеках.

Это означает, что каждая инструкция выполняется ровно один раз, линейно.

В частности, в языке Script биткойнов нет циклов.

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

Этот язык не имеет возможности вычислять произвольно мощные функции.

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

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

Таким образом, чтобы проверить, правильно ли новая транзакция потребляет выход предыдущей транзакции, мы создаем комбинированный скрипт, добавляя скрипт scriptPubKey предыдущей транзакции снизу к скрипту scriptSig новой транзакции.

Обратите внимание, что содержит ?'.

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

Есть только два возможных результата при выполнении скрипта биткойнов.

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

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

Язык скриптов биткойнов очень маленький.

В нем есть только 256 инструкций и каждая из них представлена одним байтом - фото 43

В нем есть только 256 инструкций, и каждая из них представлена одним байтом.

Байт состоит из восьми бит. Используя один байт, можно закодировать один символ из 256 возможных (256 = 2 в 8 степени). Таким образом, один байт равен одному символу, то есть 8 битам.

Из этих 256 инструкций, 15 в настоящее время отключены, и 75 зарезервированы.

Зарезервированные инструкции еще не получили никакого специального значения.

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

Там есть базовая арифметика, базовая логика, такая как ‘if’ и ‘then, выброс ошибки, возврат return.

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

Для инструкции CHECKMULTISIG требуется указать n открытых ключей и параметр t - фото 44

Для инструкции CHECKMULTISIG требуется указать n открытых ключей и параметр t как пороговое значение.

Чтобы эта инструкция выполнялась корректно, должно быть не менее t подписей от t из n этих открытых ключей, которые действительны. В этой инструкции мы можем определить компактным образом, что t из n указанных открытых ключей должны дать правильные подписи, чтобы транзакция была действительной.

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

Кстати, существует ошибка в реализации мультиподписи, и она была там все время.

Инструкция CHECKMULTISIG выталкивает значение дополнительных данных из стека и игнорирует его.

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

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

На данный момент эта ошибка считается просто особенностью биткойна.

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

Нам не нужна никакая дополнительная память или переменные.

Это делает скрипт простым в вычислении.

В скрипте существует два типа инструкций: инструкции данных и коды операций или опкоды.

Когда в скрипте появляется инструкция данных, эти данные просто вставляются в верхнюю часть стека.

С другой стороны, опкоды выполняют некоторую функцию, часто беря данные, находящиеся вверху стека, как входные данные.

Теперь давайте посмотрим как выполняется Bitcoin скрипт Здесь мы показываем - фото 45

Теперь давайте посмотрим, как выполняется Bitcoin скрипт.

Здесь мы показываем состояние стека после каждой инструкции.

Первые две инструкции в этом скрипте – это инструкции данных – подпись и публичный ключ этой подписи.

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

Как мы уже сказали, когда мы видим инструкцию данных, мы просто вносим данные в стек.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Тимур Машнин читать все книги автора по порядку

Тимур Машнин - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Введение в технологию Блокчейн отзывы


Отзывы читателей о книге Введение в технологию Блокчейн, автор: Тимур Машнин. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x