Техническое Руководство

Использование скриптового языка биткоина (Script)

Использование скриптового языка биткоина (Script)

Скриптовый язык биткоина (Script) — это примитивный стековый язык, используемый для описания условий, при которых транзакция может быть проведена. Он позволяет задать правила, по которым биткоины могут быть потрачены. В этом руководстве мы рассмотрим основы использования Script и примеры его применения.

I. Что такое Script?

Script — это язык программирования, используемый в биткоине для задания условий транзакций. Он основан на принципах стека и имеет следующие особенности:

  • Стек: Все операции производятся на вершине стека.
  • Детерминированность: Результат выполнения скрипта всегда однозначен.
  • Отсутствие циклов: Невозможно использовать циклы или рекурсию.

II. Основные операторы Script

Script поддерживает множество операторов, среди которых:

  • OP_CHECKSIG: Проверяет подпись транзакции.
  • OP_EQUALVERIFY: Проверяет равенство верхних элементов стека.
  • OP_HASH160: Вычисляет hash160 верхнего элемента стека.
  • OP_DUP: Дублирует верхний элемент стека.

Полный список операторов можно найти в официальной документации биткоина.

III. Пример использования Script

Рассмотрим классический пример использования Script для создания стандартной транзакции:

Стандартная транзакция (Pay-to-PubKeyHash)

  1. Unlocking script (scriptSig):

<signature> <public_key>

  1. Locking script (scriptPubKey):

OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG

IV. Применение Script

Script используется для создания различных типов транзакций, таких как:

  • Pay-to-PubKeyHash (P2PKH): Стандартная транзакция.
  • Pay-to-ScriptHash (P2SH): Транзакция с использованием хэшированного сценария.
  • Multisig: Транзакция с требованием нескольких подписей.

V. Заключение

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