BTC $ 12968.8606065 (2.2 %)
ETH $ 310.728580017 (-1.9 %)
XRP $ 0.3948947274 (-2.24 %)
BCH $ 417.206439811 (-1.89 %)
LTC $ 118.863583399 (-3.4 %)
EOS $ 5.8580554873 (-2.46 %)
BNB $ 31.8970974961 (-4.93 %)
USDT $ 0.9998418267 (-0.57 %)
BSV $ 203.534927004 (-2.65 %)
TRX $ 0.0337806644 (-1.16 %)

Группы команд языка Script в Биткоине

08:15 08/02/2019
Команды языка Script

Введение

 

К сети Биткоин с момента ее появления в 2009 году присоединилось много участников. Одни относятся с энтузиазмом к ее технологическому решению, другим по душе ее приватность и безопасность. Так или иначе, все они используют Биткоин как платежную систему.

 

В среде Биткоина средства передаются при помощи транзакций. Предложенный подход достаточно гибкий, чтобы позволить одновременное управление несколькими денежными единицами. Одна транзакция состоит из нескольких входов и выходов, которые ассоциируются с разными денежными юнитами. Каждый такой юнит называется монетой.

 

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

 

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

 

Данные и код Script

 

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

 

Можно вспомнить некоторые тонкости хранения данных, но они не используются для основной задачи пересылки средств, поэтому не представляют важности. Еще одна возможность избежать использования данных — создать выходы, открытые для всех. Этот случай ближе к основному функционалу Биткоина, но, очевидно, нецелесообразен.

 

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

 

Группы команд в Script

 

Как язык программирования, Script поддерживает разнообразную функциональность. Хоть в нем и нет команд для циклов, там есть много других вариантов для внедрения. Циклы важны в случаях, когда программа большая и должна выполнять одинаковые операции многократно. Биткоин не нуждается в этих вариантах. Каждая передача средств выполняется только один раз. Более того, пересчет пересылки средств не нужен в принципе, поскольку все транзакции ссылаются одна на другую, а блокчейн — неизменен.

 

Основные группы команд:

 

  — Константы. Это числа, размещенные в скрипте. Они бывают двух видов: числа от -1 до 16 или числа, расположенные в нескольких следующих байтах.

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

  — Управление стека. Сюда относятся команды, которые используются для обработки верхних элементов стека. Группа включает добавление, изъятие, копирование, дублирования и т. п.

  — Арифметические. Команды для математических операций.

  — Крипто. Поскольку Биткоин сильно зависит от защиты данных, он нуждается в командах хеширования. Также сюда относятся команды проверки подписей.

 

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

 

Послесловие

 

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

Нашли ошибку? Выделите её и нажмите Ctrl + Enter чтобы сообщить администратору.

Самые актуальные новости о криптовалютах и блокчейне. Прочтите первым!

Зачем мне это?

Загрузка...