Журнал «Биткойн» — новости о биткойнах, статьи и мнения экспертов

Nostr Wallet Connect: уровень совместной работы биткойн-приложений

NOSTR WALLET CONNECT: УРОВЕНЬ СОТРУДНИЧЕСТВА БИТКОИН-ПРИЛОЖЕНИЙ

ШИНОБИ48 МИНУТ НАЗАД

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

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

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

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

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

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

Nostr Wallet Connect — это протокол, который пытается стать действительно универсальным механизмом для удовлетворения этой потребности. При попытке внедрить платежи Lightning в Nostr возникли все эти сложности, связанные с тем, как это сделать.

МОЛНИЯ И NWC

Команда Amethyst, клиента Nostr, и Alby, веб-кошелька Lightning, создали NWC, чтобы решить проблему пользователей Nostr, желающих интегрировать Lightning в свою работу с Nostr без необходимости использования специального кошелька. Приложение/протокол основано на архитектуре идентификации Nostr, где каждое сообщение (событие), отправленное через Nostr, подписывается парой криптографических ключей, действующей как ваша личность в Nostr. Это позволяет приложению просто генерировать пару ключей Nostr и уже на этом основании иметь механизм криптографической аутентификации, который можно использовать при взаимодействии с внешним биткойн-кошельком для выполнения функций приложения.

[ВСТАВИТЬ ИНФОРМАЦИЮ ЗДЕСЬ]

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

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

На стороне кошелька моста NWC могут быть реализованы ограничения безопасности, чтобы предотвратить беспрепятственный доступ внешнего приложения к средствам кошелька в случае, если ключ Nostr, используемый для связи с кошельком, был скомпрометирован. Ограничения на суммы, разрешенные к трате, а также частоту платежей настраиваются на стороне кошелька при подключении.

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

ЗА МОЛНИЕЙ

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

Многопартийные монетные пулы являются прекрасным примером. Большинство конкретных проектных предложений, таких как деревья Ark или Timeout, построены вокруг центральной координирующей стороны или поставщика услуг, что может легко облегчить передачу сообщений между кошельками пользователей, но это ограничивает пространство проектирования единственной точкой отказа. Если сто пользователей объединены в пул монет поверх одного UTXO, модель безопасности основана на том, что у каждого пользователя есть заранее подписанный путь для вывода своих монет в одностороннем порядке из цепочки. Этот механизм можно использовать в случае сбоя или исчезновения координатора, чтобы гарантировать, что его средства не будут потеряны, но это наименее эффективный способ справиться с таким наихудшим сценарием.

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

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

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

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

Nostr — идеальный базовый протокол для облегчения этой задачи, учитывая его невероятную простоту и избыточность использования большого набора реле. NWC является прекрасным примером того, что это жизнеспособное решение.