BTC $ 5526.13748888 (-10.03 %)
XRP $ 0.4551503236 (-4.08 %)
ETH $ 176.150126083 (-8.66 %)
BCH $ 417.112905985 (-10.58 %)
XLM $ 0.2250216622 (-6.75 %)
EOS $ 4.4211784037 (-9.42 %)
LTC $ 42.250852813 (-9.93 %)
USDT $ 0.982825587 (-0.61 %)
ADA $ 0.0605938397 (-11.67 %)
XMR $ 84.0101266293 (-13.92 %)

Биткоин смарт-контракты: правда или вымысел?

21:00 22/10/2018

Введение

 

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

 

Даже без такого запоминающегося названия эти инфраструктурные элементы блокчейна необходимы для создания сложного и универсального решения. И здесь обнаруживается кое-что интересное — что-то, о чём большинство не знает. Биткоин в своем чистом виде обычно рассматривается исключительно как криптовалюта безо всяких особых свойств. Это вызвано непониманием и недостатком качественных описаний в сети. Большинство из них объясняет свойства смарт-контрактов, скорее, на высоко-технологичном уровне, чем на техническом. Любопытные пользователи наверняка обнаружат, что даже у Биткоина есть нечто, что позволяет писать для него контакты.

 

 

 

Бутерин о смарт-контрактах

 

Входы и выходы в транзакцию

 

Мы уже обсуждали структуру каждой транзакции. Пришло время рассмотреть каждый вход и выход. Начнём с выхода, поскольку именно он диктует структуру соответствующего ему входа. У каждого выхода есть три компонента: объем средств в сатоши, длина закрывающего скрипта и сам закрывающий скрипт. Важно помнить, что после внедрения SegWit эта структура может отличаться. Тем не менее мы представим ее в старом стиле.

 

Классическая структура выхода

 

Теперь поговорим о входе. Каждый вход ссылается на выход. У него внутри больше компонентов: TXID указывает на транзакцию-источник (если быть точнее, это хеш транзакции), VOUT — это порядковый номер выхода в указанной транзакции; размер открывающего скрипта; сам открывающий скрипт и на данный момент неиспользуемое индексное значение, предназначенное для замещения транзакций новыми версиями. Как было упомянуто ранее, здесь могут присутствовать отличия, связанные с использованием SegWit. 

 

Классическая структура входа

 

Скрипты — это то, что мы ищем. Объединяя два скрипта, мы получаем результат. Либо вход транзакции открывает средства на выходе, либо нет. В любом случае скрипты будут вычисляться, и это то, что мы можем назвать предшественником смарт-контракта.

 

Операционные коды скрипта

 

Средства в транзакциях защищались кодовыми командами с момента появления Биткоина. Эти команды называются «опкоды» или «функции», и все их разнообразие подробно описано в BitcoinWiki https://en.bitcoin.it/wiki/Script. Начиная с 2009 года, некоторые коды были деактивированы из-за своего потенциально опасного влияния. Другие были введены как часть активации BIP. Так или иначе, они дают большую свободу в программировании сложных условий подтверждения транзакций. 

 

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

 

Контракты

 

Поскольку Script не поддерживает циклы и петли, он определенно не «смарт» в том виде, в каком мы понимаем этот термин. Тем не менее, разнообразные решения можно найти в BitcoinWiki, в секции контрактов https://en.bitcoin.it/wiki/Contract. Список включает в себя следующие решения:

 

  1. «Умная» собственность. Этот концепт определенным образом связывает цифровую ценность с недвижимостью, ценными бумагами или любым другим активом.
  2. Мобильная виртуальная собственность. В этом случае виртуальная ценность определяет владение цифровой собственностью типа музыки, фильма или картины.
  3. Автономный программный агент, который может выполнять функции, необходимые для продолжения его работы.
  4. Распределенные рынки, предназначенные для надежной торговли, защищенной блокчейном.

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

 

Послесловие

 

Смарт-контракты в сети Биткоин — далеко не единственный пример контрактов, применяемых исключительно для верификации транзакций. Известная платформа под названием Corda обладает такой же встроенной системой компонентов кода. Разнообразные решения, которые появились после выдвижения Биткоина, предлагают отличающиеся программные компоненты. Некоторые из них опираются на собственную программную среду, как Эфириум с его Виртуальной Машиной Эфириума (Ethereum Virtual Machine), другие не содержат код по умолчанию и планируют внедрение контрактов как более высокое по уровню решение (например, Nano). Мы обсудим их в следующих статьях.

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

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

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

Загрузка...