Член сообщества CKB Retric предложил протокол привязки Nostr

Оригинал статьи был опубликован на Github https://github.com/RetricSu/nostr-binding/blob/main/docs/lightpaper-zh.md.

В этой статье мы предлагаем протокол, который связывает основные структуры данных протокола Nostr с блокчейном CKB. Благодаря этой привязке мы позволяем собственным данным Nostr наследовать характеристики UTXO/Cell в блокчейне CKB, открывая новые возможности протоколу Nostr на основе механизмов цепочки. Одним из потенциальных вариантов использования является выпуск собственных ресурсов на Nostr. Протокол привязки Nostr также привносит новую парадигму разработки в dApps. Вместо разделения вашего dApp на две системы (одна — оффчейн-сервер, а другая — внутрисетевой смарт-контракт), мы создаем dApp, используя согласованную систему с разными уровнями данных. Это фундаментально отличается от модели Ethereum.

Трехуровневая структура Web5:

О Ностр

Nostr — это простой и открытый протокол распространения сообщений, который использует модель ретрансляционного клиента для распространения стандартных сообщений по глобальным сетям. Модель ретрансляционного клиента похожа на сеть P2P в блокчейне, но дешевле, более гибкая, более практичная (и более централизованная) и лучше подходит для массового внедрения приложений потребительского уровня. Стандартные сообщения — основная инновация Nostr. Nostr определяет стандартный формат сообщений на основе JSON (этот формат сообщений также является базовой структурой данных протокола) для описания различных данных. Называется "Событие".

Структура мероприятия:

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

О ЦКБ

CKB — это сеть второго уровня Биткойна с дизайном, похожим на UTXO и POW. Базовая структура данных CKB называется Cell. Cell — это UTXO общего назначения с широкими возможностями программирования.

Структура клетки:

Структура скрипта:

Дополнительную информацию о CKB можно узнать на сайте docs.nervos.org.

обязательность

Так называемая привязка предназначена для создания отношения сопоставления один к одному между событием Nostr и ячейкой CKB. События используются для определения деталей ваших активов, а ячейки, сопоставленные с этим событием, используются для обеспечения защиты прав собственности и других возможностей, специфичных для блокчейна. Чтобы создать это взаимно однозначное сопоставление, вам необходимо иметь точку события Nostr для ячейки CKB и наоборот. Благодаря простоте протоколов Nostr и CKB создать такую ​​привязку очень просто.

Все, что нам нужно, это два скрипта

Мы представили два сценария CKB в протоколе привязки Nostr. Первый — это сценарий привязки Nostr, который представляет собой сценарий типа, определяющий методы привязки событий протокола Nostr к CKB. Это очень простой сценарий, но он охватывает основную логику привязки. Второй — это сценарий блокировки Nostr, сценарий блокировки, который использует событие Nostr в качестве подписи разблокировки. Он используется для упрощения взаимодействия с пользователем и процесса создания приложений Nostr dApps на основе CKB.

Скрипт привязки Nostr

Сценарий привязки Nostr — это тип сценария, используемый для определения правил привязки определенных специальных событий из протокола Nostr к цепочке. Сценарий привязки Nostr гарантирует, что ячейка, использующая этот сценарий в качестве сценария типа, является единственной активной ячейкой, которая существует в блокчейне CKB и привязана к определенному событию Nostr.

связывающий скрипт:

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

  • NOSTR_EVENT_ID используется для обеспечения того, чтобы ячейка указывала только на уникальное событие Nostr.

Ячейка, использующая сценарий привязки Nostr в качестве сценария типа, является ячейкой привязки события Nostr.

Структура события, связанная с Nostr:

  • Тег cell_type_id в событии актива Nostr гарантирует, что событие указывает только на уникальную ячейку CKB.

Nostr Asset Event Представляет созданный пользователем актив. Nostr Метаданные активов Метаданные событий, используемые для описания одной и той же коллекции активов.

Метаданные активов Nostr Структура события:

Скрипт блокировки Nostr

Сценарий блокировки Nostr — это сценарий блокировки, который использует событие Nostr в качестве доказательства разблокировки. Он используется для упрощения взаимодействия с пользователем и процесса создания приложений Nostr dApps на основе CKB.

Структура сценария блокировки Nostr:

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

  • Когда в аргументах 32 байта все 0, это означает, что никто не может разблокировать блокировку.

  • Когда все первые 32 байта равны 0, а последние 4 байта не равны нулю, это означает, что замок может быть разблокирован любой учетной записью Nostr, если событие разблокировки соответствует определенному значению сложности POW (это можно использовать для честных целей). выпуск)

Nostr открывает структуру событий:

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

Сценарий блокировки Nostr также может поддерживать несколько подписей. Его аргументы сценария блокировки могут быть идентификатором события Nostr. Поле «Тег» этого события записывает все открытые ключи MP владельца. Для разблокировки требуется как минимум N (N<=M) учетных записей Nostr, чтобы предоставить событие разблокировки Nostr в качестве доказательства.

С помощью сценария блокировки Nostr пользователи могут использовать экологический клиент Nostr и подключаемый модуль браузера для прямой подписи и создания разблокированных событий в качестве доказательства подписи для разблокировки транзакций CKB, поэтому разработчики этих автономных экологических инструментов Nostr могут знать всего лишь возможно И представить CKB и код, связанный с блокчейном. При этом пользователи могут практически «не заботиться» о блокчейне. Участник проекта или другие волонтеры могут запустить специальное реле, чтобы отслеживать, есть ли новые события разблокировки в сети Nostr, и если да, то помогать анализировать транзакции и отправлять их в цепочку CKB для разблокировки. Комиссия за транзакцию может быть оплачена через ячейки, которые резервируют часть своего баланса в качестве комиссии за обработку.

Выпуск активов

прямая привязка

Пользователь: требуется учетная запись Nostr и CKB.

  1. Индексируйте ячейку CKB и рассчитайте TYPE_ID ячейки.

  2. Создать событие актива Nostr с подписью Nostr, используя TYPE_ID

  3. Используйте событие актива Nostr для генерации транзакции привязки CKB и отправки ее в цепочку.

по RGB++

Пользователь: требуется учетная запись Nostr, биткойн-кошелек и сатоши.

  1. Индексируйте UTXO, создайте сопоставление ячейки через RGB++ и вычислите TYPE_ID ячейки.

  2. Создать событие актива Nostr с подписью Nostr, используя TYPE_ID

  3. Используйте событие актива Nostr для генерации транзакции привязки CKB и отправки ее в цепочку.

передача

При блокировке с помощью Nostr

Пользователь: требуется учетная запись Nostr

  • Проиндексируйте ячейку, которую вы хотите разблокировать, используя сценарий блокировки Nostr на CKB.

  • Создайте транзакцию CKB и замените эту ячейку другим сценарием блокировки.

  • Используя результаты шага 2, сгенерируйте событие разблокировки Nostr через расширение клиента/браузера Nostr.

  • Отправьте событие разблокировки Nostr в специальную группу ретрансляции и отправьте его в цепочку.

При использовании других замков

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

Просто следуйте обычной процедуре CKB/RGB++, чтобы разблокировать передачу.

Проблемы масштабируемости

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

Однако мы видим несколько вариантов решения этой проблемы:

  1. Интегрировано с сетью CKB Lightning Network.

Поскольку собственные ресурсы Nostr, созданные протоколом привязки Nostr, можно рассматривать как обычные активы CKB, мы можем использовать их для расширения протокола привязки Nostr после запуска сети CKB Lightning Network. Сам протокол привязки Nostr не требует никаких изменений, это бесплатная функция. Но недостаток в том, что нужно дождаться запуска CKB Lightning Network.

  1. Внедрите простой, но полезный канал оплаты

Еще один вариант перед запуском CKB Lightning Network — реализовать несколько очень простых, но полезных каналов оплаты, таких как каналы Spillman. Канал Spillman — это односторонний канал оплаты, который проще реализовать. В канале есть плательщик и получатель платежа. Этот вид платежного канала может быть не очень полезен для блокчейна, но в случае протокола привязки Nostr он идеально вписывается в модель подписки между создателями контента и их подписчиками.

  1. Привязка N к 1 вместо привязки 1 к 1

Вместо создания привязки 1 к 1 мы можем создать привязку N к 1 между событием Nostr и ячейкой CKB. Другими словами, мы объединяем несколько событий в ячейку для масштабируемости. Это сделает стоимость хранения картографических данных в цепочке намного меньше, чем стоимость хранения Nostr Event вне цепочки. Однако проблема с привязкой N-to-1 заключается в том, что она требует разработки нового шаблона для управления и разделения владения связанными событиями. Это будет более сложно и потребует дополнительных работ по проектированию и реализации.

  1. RGB-стилевое решение

Другой способ добиться максимальной масштабируемости — создать решение в стиле RGB, используя ячейку CKB в качестве одноразовой печати и сделав протокол Nostr уровнем реализации, аналогичным протоколу RGB. Это решение упрощает рабочий процесс, выбирая реализацию только стандарта токена и исключая общие идеи смарт-контрактов из исходного протокола RGB.

Часто задаваемые вопросы

Почему выбирают Ностр?

Nostr — идеальный уровень для массовых приложений, основанных на криптографии. Это очень простой, понятный, практичный, объективный и легко интегрируемый протокол распространения информации. Многие проекты web3 могут использовать такие вещи, как Arweave и IPFS, которые придерживаются совершенно разных ценностей и философии. Вы можете думать о Nostr как о суперсвободном протоколе, без одержимости полностью децентрализованной P2P-сетью, без чрезмерной приверженности экономике токенов и механизмам стимулирования, которые уже давно существуют в мире web3, что делает Nostr более практичным и непредвзятым.

Почему бы просто не использовать активы блокчейна?

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

Почему стоит выбрать ЦКБ?

Реализация протоколов привязки с использованием CKB намного проще благодаря его программируемости. Биткойн еще сложнее. Кроме того, учитывая уникальный способ привязки CKB к BTC, было бы проще сначала привязаться к CKB, а затем к BTC.

Заключение

В целом, Nostr, как простой и практичный протокол распространения информации, очень подходит для широкомасштабного внедрения потребительских приложений. Программируемость CKB и связь с Биткойном делают его идеальным выбором для реализации протокола привязки Nostr. В то же время, выпуская собственные активы на основе Nostr Event, можно разрабатывать новые механизмы продуктов на основе приложений, что позволяет Nostr конкурировать с другими традиционными интернет-приложениями и находить свой собственный уникальный PMF.