Суть смарт-контрактов Universa

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

Терминология для этих разделов документа – это state («состояние»), definition («определение») и transactional («транзакционные данные»). А теперь же пора изучить, что вы можете сделать с этими умными контрактами. Чтобы понять это, хорошо бы для начала побольше узнать о «смарт-контрактах» в целом.

Умный документ

Блокчейн Universa основан на «проверке», а не на «исполнении». В мире Universa смарт-контракт – это двоичный документ с машиночитаемой структурой. Это скорее похоже на документ Word или табличку Excel, чем на файл .exe.

Еще одна важная вещь, которую надо помнить – это то, что в Universa умный контракт иногда называют «умным документом». Это соответствует подходу так называемых «рикардианских контрактов».

Этот подход «структурированные документы в распределенной среде» отражает точку зрения большинства деловых кругов. Этот мир воспринимает термин «контракт» всего лишь как особый вариант «документа».

Такой «блокчейнизированный» документ становится элементом документооборота и потока процессов, это не непрерывно запускаемая программа.

В Universa подход заключается в том, чтобы «написать документ», а не «запустить на исполнение распределенное приложение». И это все подводит нас к другому новому термину: рикардианские контракты.

Рикардианские контракты

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

Преимущества:

  1. Надежность (благодаря однозначной идентификации с помощью криптографической хеш-функции);
  2. Прозрачность документа (благодаря использованию понятного человекочитаемого текста в его юридической основе);
  3. Эффективно исполняемый (благодаря языку разметки для автоматического извлечения важной информации).
  4. Определяет элементы юридического соглашения в формате, который может быть выражен и обработан с помощью программного обеспечения. Это соответствует подходу «умного документа» и привязывает документ к другому ПО для выполнения и обработки.

Вот, вкратце, суть и смысл «умных контрактов» в Universa Blockchain. Но что мы можем с этим сделать? Давайте начнем с примера.

Escrow-контракт

Первый приходящий в голову пример – договор условного депонирования (escrow), также называемый «атомарным свапом», или «атомарным обменом». Это можно рассматривать как безопасный способ обмена контрактами.

Возьмем для примера Боба. У него есть 0,1 UETH, и он хочет купить 500 UTN у Алисы. Это можно сделать децентрализованным образом безо всяких посредников.

Во-первых, Боб создает платежный договор (с правилом split-join, «разделения и объединения», описанным в предыдущей статье) с 0,1 UETH для Алисы и сдачей – для себя.

Он не подписывает эти монеты, но его адрес там указан как адрес «создателя» контракта. Затем он упаковывает его без подписи в пакет контракта и отправляет Алисе. Такой тип контракта также известен как «составной» – “compound”.

Во-вторых, Алиса проверяет, есть ли платеж Боба в документе. Если это так, она добавляет свои 500 UTN к составному контракту. Поскольку он все еще не подписан, Боб ничего не может с ним сделать без ключа Алисы.

После этого Алиса подписывает compound-контракт. Это совершенно безопасно для нее, потому что соединение также содержит платеж от Боба, поэтому Боб не сможет зарегистрировать соединение, не подписав его своим ключом.

И если Боб должным образом подпишет это, только тогда он сможет зарегистрировать договор; но при этом он также зарегистрирует и подтвердит свой платеж Алисе. Обе стороны могут проверить, правильно ли добавлены адрес владельца и токены.

Если все в порядке, Боб подписывает его своим ключом и регистрирует в сети Universa. Как только сеть одобрит соединение, оно утвердит смену владельцев в одной-единственной атомарной операции.

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

Подписание контракта

Либо обе стороны обменивают свои токены так, как написано в контракте, либо ничего не происходит вообще.

  • Ни Боб, ни Алиса не смогут обмануть другую сторону договора во время обмена;
  • Если кто-либо из них пропустит подписание контракта, сеть Universa отклонит его;
  • Если они оба подпишут соединение, регистрация передаст право собственности на оба объекта одновременно в одной атомарной операции;
  • Оба они гарантированно имеют копию своих покупок.

Узнайте больше об этом сложном контракте на нашем сайте Базы Знаний.

Это всего лишь один небольшой пример смарт-контрактов в Universa Blockchain. Но даже он прекрасно показывает требуемый способ мышления: добавление токенов в составной договор, подписание этого документа с двух сторон и регистрация статуса этого обмена в сети – вот и всё, что происходит.

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

В нашем традиционном мире для обмена цифровыми документами нам понадобится третья сторона, которой будут доверять обе. Такой escrow-агент обычно называется «арбитром» или «гарантом». С умным контрактом все происходит в цифровом виде и без «гарантов», без нужды доверять кому-то. Посмотрите в исходный код Службы Контрактов (Constract Service) для получения дополнительной информации об использовании escrow-контрактов.

Рикардианские и dApp контракты

Наконец, давайте закончим с различиями между Ricardian Contracts и типичными dApp-подобными контрактами. Ни один из них не лучше другого. С dApps вы должны написать некоторый исполняемый код для каждой цели, которую вы хотите оцифровать или автоматизировать. В этом случае вы должны быть программистом. Вы хотите сделать «мультисиг-кошелек»? В этом случае вы либо пишете dApp с нуля для этого, либо запускаете некоторый существующий код (а затем работаете с ним как программист).

С Ricardian Contracts (или с блокчейном Universa) вы должны написать или обновить документ. Это легче. И если вы хотите сделать «мультиподпись», вы можете просто поправить документ и указать соответствующие данные в его полях, такие как «владелец: составная роль в виде списка трех подписантов, A, B и C, и ВСЕ три из них должны подписать этот документ, чтобы что-либо изменить».

В следующей статье мы углубимся в другие виды смарт-контрактов. Как «умные контракты» поддерживают работу с utility-токенами? А как насчет neutrino-платежей? А что вы скажете про регистрацию нескольких ревизий одной операцией?

Если вы хотите помочь с переводом этих статей на свой язык, не стесняйтесь обращаться к @starnold. Оставайтесь в безопасности!

Help translating this post to Английский Немецкий Французский Голландский Итальянский Испанский Хорватский. Contact @starnold to participate!

Related posts

Асимметричная криптография в Universa Blockchain

Arnold

Что делает блокчейн Universa безопасным? HashID

Arnold

Внутри смарт-контракта Universa

Arnold

Leave a Comment