Название: Введение в технологию Блокчейн
Автор: Тимур Сергеевич Машнин
Издательство: Автор
Жанр: Компьютеры: прочее
isbn:
isbn:
И теперь стек содержит два элемента – подпись и публичный ключ, который использовался для этой подписи.
Мы уже проверили, что этот публичный ключ является публичным ключом, который требуется, и теперь мы должны проверить, действительна ли подпись.
Это отличный пример того, как язык скриптов Bitcoin построен с учетом криптографии.
Несмотря на то, что это довольно простой язык с точки зрения логики, в нем есть некоторые довольно сильные инструкции, такие как инструкция «OP_CHECKSIG».
Эта инструкция выталкивает эти два значения из стека и выполняет всю проверку подписи за один раз.
Но чего это подпись?
Какой был вход функции подписи?
Оказывается, есть только одна вещь, которую вы можете подписать в биткойн – это целая транзакция.
Таким образом, инструкция «CHECKSIG» выталкивает из стека два значения, открытый ключ и подпись, и проверяет, является ли эта подпись валидной для всей транзакции, используя этот публичный ключ.
Теперь мы выполнили каждую инструкцию в скрипте, и в стеке ничего не осталось.
Если ошибок не было, выход этого скрипта будет просто true, указывая, что транзакция действительна.
Теоретически, скрипт позволяет нам в каком-то смысле указать произвольные условия, которые должны быть выполнены для того, чтобы потратить монеты.
Но на сегодняшний день эта гибкость практически не используется.
Если мы посмотрим на скрипты, которые на самом деле были использованы в истории Биткойна, подавляющее большинство, 99,9 %, – это точно такой же скрипт pay-to-public-key-hash, который мы использовали в нашем примере.
Как мы видели, этот скрипт pay-to-public-key-hash просто указывает один публичный ключ, вернее его хэш, и требует подписи для этого публичного ключа, чтобы потратить монеты.
Однако существуют несколько других инструкций, которые действительно полезны.
Иногда используется специальный тип скрипта под названием «Pay-to-Script-Hash», который обрабатывает мультиподписи MULTISIG и который мы обсудим позже.
Вообще говоря, не существует большого разнообразия используемых скриптов.
Это связано с тем, что узлы биткойнов по умолчанию имеют белый список стандартных скриптов, и они отказываются принимать скрипты, отсутствующие в списке.
Это не означает, что эти другие скрипты нельзя использовать вообще; это просто усложняет их использование.
На самом деле это различие – это очень тонкая вещь, к которой мы вернемся, когда мы будем говорить об одноранговой сети Bitcoin.
Далее рассмотрим несколько видов стандартных скриптов.
Proof of burn доказательство сжигания – это скрипт, в котором биткойны никогда не могут быть потрачены.
Отправка монет в скрипт с доказательством сжигания устанавливает, что они уничтожены, так как нет никакой возможности для их расходования.
Одно из использований доказательства СКАЧАТЬ