Технология
June 6, 2021

Parcel Primer

Наш план расширения возможностей Parcel, c включением в него токенизации данных.

Резюме

Parcel - это платформа для обмена данными и управления ими.

Это позволяет:

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

В этом документе подробно описаны архитектуры токенизации Parcel и данных на уровне, полезном для интегратора/разработчика приложений. Далее объясняется, как вы можете выполнить эту интеграцию.

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

Концепции

Термины

Аппаратное обеспечение - надежные среды выполнения (TEE), реализованные с использованием специальной поддержки CPU (EG, Intel SGX, AMD SEV, AWS). TEE может гарантировать как целостность, так и конфиденциальность.

Целостность - Вычисления не могут быть изменены. Если входы являются надежными, выходы могут быть также надёжны.

Конфиденциальность - Промежуточные этапы вычислений (и, возможно, выходы) не могут быть прочитаны не-компьютером.

Parcel

Термины

идентификатор

стабильный указатель на (машинного) пользователя платформы

объект

Часть (структурированных или неструктурированных) частных данных, которыми можно управлять с помощью платформы

документ

Неизменяемый двоичный объект, он же набор данных. Документы шифруются и долго хранятся off-chain. Метаданные и ключ шифрования хранятся в сети.

грант

Кортеж из (объект, грантодатель, получатель гранта, условие), который позволяет грантодателю получить доступ к объекту при соблюдении условия

приложение

Идентификатор с удобствами для авторизации и создания грантов в/из приложения.

работа

Частная аналитическая программа (упакованная как образ OCI), которая выполняется в анклаве, в "песочнице" Parcel worker.

Токенизация данных

Термины

токенизация

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

токен данных

Токен, представляющий права доступа к объектам, управляемым Parcel.

транш

Класс взаимозаменяемых токенов. Монета - это транш размера n>1, а NFT - транш размера 1. Токены в транше имеют определенные права доступа и ограничения. Транши с меньшими ограничениями имеют более высокую стоимость.

хранение

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

Примерные потоки пользователей

Parcel

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

Разработчик регистрируется для использования Parcel и при этом создает приложение Parcel.

Разработчик настраивает приложение Parcel для запроса доступа к документам пользователей.

Пользователь интегрирует приложение Parcel в свое собственное приложение с помощью клиента TypeScript, REST API или клиента, созданного на основе спецификации OpenAPI.

Пользователь начинает использовать основное приложение Dev, и приложение Dev предлагает пользователю присоединиться к приложению Dev Parcel, чтобы можно было предоставить доступ к документам.

Dev, через приложение Parcel, обрабатывает предоставленные документы пользователя с помощью аналитической программы, которая запускается в Parcel Worker.

Результаты анализа возвращаются Пользователю.

Более сложный поток может включать любую комбинацию: Dev загружает документы от имени пользователя, Dev агрегирует данные по пользователям, Dev делегирует доступ к данным пользователей, а приложение Dev Parcel предоставляет пользователю доступ к документам. Все это возможно, но сейчас слишком много деталей!

Токенизация данных

Данные загружаются в Parcel

Владелец данных передает право собственности на данные службе токенизации и получает минтинг-токен (возможность).

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

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

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

Архитектура Parcel

Давайте начнем со стратосферы и рассмотрим детали.

Вид с высоты птичьего полета

Здесь представлены основные компоненты Parcel. Общая идея заключается в том, что клиент делает запросы к шлюзу Parcel, используя обычные конечные точки REST. Документы, загруженные на шлюз, шифруются и хранятся вне цепочки с ключом шифрования, переданным и защищенным Parcel Runtime. Время выполнения управляет доступом к документам (через их ключи шифрования) с помощью системы грантов и журналов доступа.

Клиенты могут запросить через шлюз выполнение задания для одного или нескольких документов. Задание отправляется на Parcel Worker, который запускает программу анализа, предоставленную в виде образа OCI (Docker). Полученные результаты повторно загружаются в виде документов. Входы, выходы и работа задания очень настраиваемы. Вы можете представить его как закрытый Kubernetes Job, которому могут быть предоставлены специальные права доступа к документам.

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

Компоненты

клиент

Это вы, разработчик приложения.

Шлюз Parcel

Закрытый HTTP-сервер, который превращает дружественные вызовы REST в подзапросы к Parcel Runtime, Parcel Worker и off-chain blob хранилищу . Предоставляет клиентам данные только для чтения и неприватные данные с низкой задержкой. Записи и приватные чтения отправляются в среду выполнения.

Parcel Runtime

Закрытая программа on-chain, которая хранит ключи шифрования документов, гранты, выданные этим документам, метаданные идентификатора/приложения/документа/задания/гранта, а также журналы.

Parcel Worker

Закрытая "песочница", в которой запускаются образы Docker. Аттестованный рабочий получает свою собственную идентификацию, а гранты могут предоставлять доступ только рабочим.

Зашифрованное хранилище

off-chain высокодоступное блочное хранилище Oasis, где хранятся зашифрованные документы. Мы не предоставляем хранилище непосредственно разработчикам, чтобы иметь возможность гибко размещать данные вместе с рабочим.

Сеть Oasis

Блокчейн. Обеспечивает конфиденциальность и целостность транзакций Parcel Runtime благодаря консенсусу BFT.

Подождите. Прежде чем вы подумаете: "Что все это значит?!", позвольте мне заверить вас, что это вполне доступно. Для начала, все, что изменилось по сравнению с предыдущей диаграммой, это то, что теперь внутри Parcel Gateway и Parcel Runtime есть ячейки, показывающие внутренние компоненты, о которых вы заботитесь. Два новых понятия - это API шлюза, интерфейс шлюза и структура Parcel Runtime.

Для начала давайте сосредоточимся на API, ящиках в Parcel Gateway и Runtime RPC. На шлюзе вы можете увидеть конечные точки REST, соответствующие каждой из моделей, упомянутых в разделе Concepts. Вы также можете увидеть соответствующие конечные точки RPC, открываемые средой выполнения. Возможно, вы уже догадались, что одной из основных функций шлюза является преобразование удобного для разработчиков REST в эффективные, зашифрованные RPC "точка-точка".

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

После того как запрос проходит через API времени выполнения, он декодируется "контроллером" (в смысле базы данных) в операции с базой данных. База данных Parcel DB представляет собой обычную базу данных SQL, но с зашифрованными столбцами для конфиденциальных данных. Ячейки в столбцах шифруются с помощью ключей, полученных из ключа шифрования среды выполнения, предоставленного средой выполнения, управляющей ключами, которая взаимодействует со средой выполнения Parcel (и проверяет среду выполнения Parcel, прежде чем выдать ключ).

И вот краткое изложение всей вышеперечисленной информации в виде таблицы, потому что зачем? Потому что все любят таблицы.

Компоненты

клиент

Это вы, разработчик приложения.

Шлюз Parcel

Вложенный HTTP-сервер, который превращает дружественные REST-вызовы в RPC к Runtime, Worker и внецепочечному хранилищу. Чтение только для чтения и публичные чтения идут в локально кэшированное состояние, а записи и зашифрованные чтения идут во время выполнения, если транзакция действительна, насколько может судить локальное состояние.

Время выполнения Parcel

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

Parcel Worker

Закрытая песочница, в которой запускаются образы Docker. Проверенный рабочий получает свою собственную идентификацию, а гранты могут предоставлять доступ только рабочим.

Зашифрованное хранилище

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

Oasisnetwork

Блокчейн. Обеспечивает конфиденциальность и целостность транзакций Parcel Runtime благодаря консенсусу BFT. Частью процесса консенсуса является аттестация Parcel Runtime и подача сигнала менеджеру ключей для выпуска ключа шифрования состояния Parcel Runtime.

Небольшой экскурс: Доверительные связи

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

Есть три якоря доверия: сеть Oasis, поставщик TEE и Oasis Labs. С точки зрения разработчика,

Сеть Oasis Network защищена доказательным консенсусом BFT.

Поставщику TEE доверяют создавать надежное оборудование TEE (или, по крайней мере, пытаться); нет причин доверять поставщику TEE, кроме репутации, но выбор невелик (пока).

Сеть Oasis планирует выполнение Parcel Runtime на Intel SGX TEE. SGX иногда может быть немного дырявым¹²³⁴, но Oasis Labs управляет вычислительными узлами, и мы предполагаем, что вы полагаете, что ни мы, ни наш облачный провайдер не пытаемся использовать побочные каналы.

Поставщиком TEE для Parcel Worker является AMD, а продуктом - SEV. TEEs AMD SEV предоставляются через продукт Confidential VMs компании Google. AMD SEV, в текущей версии -ES, не обеспечивает надежных аттестаций, поэтому нам нужно обходное решение. Мы решили использовать SEV, несмотря на это ограничение, потому что он позволяет запускать по сути немодифицированный код, что похоже на Graphene, только без shim OS и страниц RWX.

Oasis Labs доверяют (только в настоящее время), чтобы обеспечить безопасный код для обновления сети и подтвердить, что мы используем доверенное оборудование там, где не существует аппаратных подтверждений (например, AMD SEV через Google Confidential VMs). Наша цель - снизить требования к доверию в Oasis Labs до нуля. Мы можем добиться этого, интегрировав управление on-chain, когда оно станет доступным, и перейдя на лучшие TEE, когда они станут доступными.

Выдача грантов

Три наиболее важных понятия в Parcel - это личность, документы и гранты. Первые два понятия должны быть достаточно интуитивно понятны. Гранты также интуитивно понятны, но они более мощные, чем просто предоставление доступа к документу A идентификатору Z. В этом разделе мы дадим вводную информацию, а для более глубокого изучения возможностей рекомендуем вам ознакомиться со связанными документами.

В самом базовом виде гранты представляют собой права доступа, передаваемые от одной идентификации (приложения) к другой. Однако существует также условие, которое представляет собой политику, заданную с помощью  straightforward DSL , позволяющего реализовать управление доступом на основе атрибутов. А именно, доступ может быть предоставлен от идентификатора к идентификатору на основе любого (optionally conjunction) из любого количества селекторов. Так, например, ваше приложение может потребовать от участников предоставить вам доступ к их данным только в том случае, если эти данные были загружены вами, и эти данные могут быть прочитаны только из задания, которое вы одобрили. Если вы захотите, вы можете добавить возможности аудита, создав новый корень `$or`, где новой веткой будет "предоставить доступ к идентификатору аудитора". Это очень гибко (и если вы можете придумать что-то еще, то всегда рады предложить это).

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

Задания и аттестация работников

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

Задание описывается спецификацией задания, которая включает критически важные для безопасности детали, такие как образ OCI, который запускается, команда, вызванная в образе, владельцы выходных документов и имеет ли задание доступ к сети. Как упоминалось выше, гранты могут быть выданы на основе значений этих критически важных для безопасности деталей. Спецификация задания также содержит информацию, не связанную с безопасностью, например, запросы ресурсов и (частные) переменные среды, которые предназначены для работника и не влияют на владельцев данных. Владельцы данных (или доверенное лицо владельца данных [например, торговая площадка]) несут ответственность за то, чтобы задания не были вредоносными.

После отправки запроса на выполнение задания шлюз регистрирует данные во время выполнения и хранит там приватную информацию. Работа начнется только в том случае, если отправителю задания будет предоставлен доступ к документам (возможно, с условием, что данные будут предоставлены для конкретного изображения).

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

Примеры выполнения вычислительных заданий можно найти в учебниках, а полную спецификацию полей задания - в документации API.

Компоненты экосистемы

Oasis Labs создала несколько дополнительных сервисов наряду с Parcel, которые могут облегчить жизнь вам и вашим пользователям, если вы готовы доверять Oasis Labs.

Oasis Auth - менеджер идентификации, который позволяет вам и вашим пользователям аутентифицироваться на шлюзе Parcel и Parcel Runtime с помощью OAuth. Вход по OAuth обеспечивает более привычную процедуру входа (и восстановления), если ваши пользователи не против доверить свои учетные записи Oasis Labs.

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

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

Токенизация данных

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

Токенизация данных, если вы помните из концепции, заключается в превращении данных в актив, который может участвовать в более широкой экосистеме DeFi. Токен данных может быть обменен на вашем любимом DEX и впоследствии использован для выполнения заданий на данных (или, может быть, просто для спекуляций ; дело ваше).

Токенизация в целом состоит из трех этапов:

хранение: организация, создающая токен, эмитент, передает право собственности на актив в минт. Этот шаг придает отчеканенным токенам ценность в терминах реального актива. Если представить токенизацию как получение кредита под токены данных, то этот шаг будет называться обеспечением. Эмитент получает возможность чеканить токены, обеспеченные хранимым активом; эта возможность может называться минтинг-токеном .

В случае токенизации данных активом является один или несколько фрагментов данных, а минт - Parcel.

транширование: минтинг-токен (по желанию, без разрушения) используется для выпуска одного или нескольких классов токенов, каждый из которых имеет различные права. Вы можете думать о траншах, как о классах акций, но с большим количеством A, B и C, и с полной системой грантов Parcel в качестве прав. Эмитент получает все токены для дальнейшего использования.

распределение: Эмитент, скорее всего, хочет, чтобы токены попали в руки других людей. Выпущенные токены могут быть выпущены в виде синтеза на другой цепочке с использованием кроссчейн/паратайм моста платформы токенизации Parcel.

(необязательный) обратный выкуп: Эмитент может выкупить актив, выкупив все выпущенные токены, а затем обменяв их на актив. Эмитент также может указать, что любой желающий может осуществить обратный выкуп.

Некоторые дополнительные примечания:

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

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

Эта функция еще не реализована, но планируется в ближайшее время.

Интеграция (Как это использовать???)

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

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

Цели:

стремится обеспечить целостный пользовательский опыт, но будет раскрывать Parcel для пользователя, если это дает значительные преимущества для удобства использования

сохраняет информацию о своих пользователях, включая роль, репутацию и баланс токенов

позволяет пользователям загружать свои собственные приватные данные

позволяет пользователям загружать приватные данные из доверенного источника с помощью доверенного оракула с поддержкой HTTPS

позволяет прикреплять (генерируемые машиной) одобрения к загруженным данным

облегчает обмен токенов данных на денежные токены

позволяет доверенные вычисления на токенизированных данных в соответствии с правами, связанными с траншем (включая оплату за использование)

Шаг 1: Настройка

Первым шагом является создание приложения Parcel для Sterling через портал Parcel Portal.

Оно имеет:

внешний клиент, который сможет выполнять вызовы Parcel API в контексте пользователя (однако он не будет действовать от имени пользователя, поскольку желательно, чтобы запрашиваемые диапазоны были краткими).

Разрешение, предоставляющее Sterling возможность TOKENIZE для документов, помеченных как участвующие в рынке.

После создания приложения Sterling Parcel мы можем приступить к его интеграции с внешним приложением. Веб-/мобильному приложению понадобится кнопка входа, которая инициирует поток Login with Oasis для получения маркера доступа Parcel (пример). Пользователям будет предложено создать Oasis Identity, если они этого еще не сделали.

Шаг 2: Ввод данных

Ввод необработанных (т.е. неаутентифицированных) данных пользователей осуществляется пользователем через Parcel Steward. Регистрация включает в себя как загрузку новых данных, так и обмен существующими данными. Причин, по которым регистрация осуществляется через Steward, а не через Sterling, несколько:

Sterling не нужно реализовывать интерфейсы управления данными и просмотра журналов доступа, что значительно экономит время разработки.

Пользователи доверяют тому, что Steward является тонким слоем поверх шлюза Parcel Gateway из-за сильного брендинга Oasis Parcel, а также аудита безопасности третьей стороны (что избавляет Sterling от необходимости проводить собственный аудит формата).

Пользователи могут делиться своими существующими данными Parcel с Sterling. Это становится ценным по мере развития экосистемы Parcel и, следовательно, суверенитета данных.

Используя преимущества функций, уже предоставляемых Parcel Steward, Sterling облегчает пользователям загрузку данных, предоставляя четкую ссылку "Upload Data", которая ведет пользователей непосредственно на страницу внесения данных Sterling.

Аутентифицированные данные (например, поступающие с веб-страницы HTTPS) должны быть загружены с Parcel Worker. В конечном итоге Parcel сам предоставит услугу доверенного оракула, но это всегда можно сделать с помощью заданий Parcel.

Чтобы получить аутентифицированные данные с помощью задания Parcel, начните с создания пользовательского вычислительного образа. Простейшим образом будет curl, с командой `curl -o /parcel/out/data.bin $1 -H "Authentication: $USER_AUTH"`, где запрашиваемая конечная точка API является первым аргументом задания, а учетные данные пользователя находятся в (приватной) переменной окружения. Более сложные изображения могут реализовать поток OAuth для доступа к данным из таких API, как Google и Facebook. Разумеется, пользователи должны будут доверять Sterling свои учетные данные. Учетные данные не должны передаваться никуда, кроме Parcel Gateway.

Идентификатор образа вычисления может быть использован для создания спецификации задания, которая принимает ноль входных документов, имеет личные учетные данные пользователя в качестве переменных env, публичный URL(s)⁵ в качестве аргументов, запрашивает доступ к сети (предпочтительно с масштабированием только на запрашиваемый URL, но пользователь все равно должен проверить, что спецификация задания и образ заслуживают доверия) и загружает аутентифицированные данные обратно пользователю, но совместно с Sterling.

Шаг 3: Управление данными

Продающая сторона (производитель данных)

Настоящее веселье начинается после того, как данные передаются приложению Sterling.

Sterling может показать пользователям, какие документы доступны для токенизации, вызвав `parcel.listDocuments({ sharedWith: STERLING_APP_ID })`. Также возможны дополнительные ограничения фильтра.

Пользователи могут выбрать один или несколько документов и запросить у Sterling их токенизацию. Sterling вызывает команду `parcel.createToken({ documents })`, чтобы передать право собственности на документы на счет депонирования токенизации Parcel. В ответ пользователь получает токен для майнинга (т.е. возможность).

Sterling переводит пользователя на страницу выпуска транша, где можно настроить транши и условия для токенов внутри транша. Окончательная конфигурация передается с помощью одного или нескольких вызовов `parcel.createTranche({ config })`; возможно, за этим следует вызов `parcel.burnToken({ id: mintingTokenId })`, если это необходимо⁶. Токены хранятся у пользователя, как показано в пользовательском интерфейсе Sterling.

Через Sterling пользователь может перечислить токены на другие цепочки/паратаймы, которые имеют функциональность DeFi. Sterling отслеживает баланс счета по мере перемещения, покупки и продажи токенов.

Сторона покупки (потребитель данных)

Потребление данных начинается с покупки токена данных (созданного с помощью описанного выше процесса).

Sterling облегчает эту задачу, показывая пользователям список токенов, созданных на платформе (с помощью `parcel.listTokens({ filter })`). При покупке токена покупателю передается право собственности на токен, но не на данные.

Когда токен данных передается на Parcel, эскроу-счет токенизации удаляет гранты предыдущего владельца и создает новые гранты для нового владельца. Это происходит только при передаче токена на Parcel - передача синтетического токена на другой цепочке должна быть материализована в Parcel, чтобы вступить в силу (в конечном итоге это происходит благодаря мосту, но занимает некоторое время).

Sterling позволяет потребителям данных выполнять задания на данных, лежащих в основе хранящихся у них токенов. Это делается путем постановки задания в очередь с помощью Parcel API (входными наборами данных являются те, которые лежат в основе токена).

[1]: https://www.usenix.org/conference/usenixsecurity18/presentation/bulck

[2]: https://sgaxe.com/

[3]: https://plundervolt.com/

[4]: https://dl.acm.org/doi/abs/10.1145/3296957.3173204

[5]: Если URL-адрес будет общедоступным, компании Sterling будет проще показать происхождение документа.

[6]: Для данных, которые не могут быть восстановлены, сжигание токена для майнинга сделает выпущенные токены более ценными, поскольку никогда не произойдет инфляции токенов данных.