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 в Биткоине

20:15 06/02/2019
Основные свойства языка Script

Введение

 

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

 

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

 

Давайте узнаем больше об этой стороне Биткоина.

 

Основы Script

 

Что же такое Script? Это простейший язык программирования. В нем не хватает нескольких сложных структур для того, чтобы называться полным по Тьюрингу. Script использует стек и представляет собой видоизмененную версию языка Forth.

 

Полнота по Тьюрингу

 

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

 

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

 

Применение стека

 

Скриптовая природа Script берет свое начало в Forth. Это свойство унаследовано и прекрасно подходит к требованиям Биткоина. Стек в компьютерах — это определенная область памяти, которая запрашивается программами. У стека есть два режима доступа под названиями FILO и FIFO. Эти имена обозначают «первым пришел, последним ушел» и «первым пришел, первым ушел» («first-in, last-out» и «first-in, first-out») и объясняют, как элементы, помещенные в стек, будут обрабатываться в дальнейшем. Script обращается к стеку в режиме FILO.

 

Операции в Script

 

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

 

  — кусок данных. Эта группа включает публичные ключи, хешированные данные и подписи. Когда обработчик Script встречает эти данные в коде, он просто помещает их в стек.

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

 

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

 

Послесловие

 

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

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

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

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

Загрузка...