Stacks-wallet-web: Представить метод для подписи произвольных сообщений

Созданный на 9 мар. 2021  ·  12Комментарии  ·  Источник: blockstack/stacks-wallet-web

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

Предлагается сделать аналог https://eips.ethereum.org/EIPS/eip-712 .

от раздора:

хорошо, так что в мире Eth есть тонны произвольной подписи сообщений, для DeFi и DeX и многого другого

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

EIP712 определил структуру (в json), которая позволяет показать, из чего состоит этот хэш заказа.

так что вы видите фактические поля, которые вошли в создание хэша, который вы подписываете

image

enhancement

Самый полезный комментарий

Во время вчерашнего разговора с @MarvinJanssen и @GinaAbrams было определено, что у приложения .BTC не будет острой необходимости в произвольной подписи сообщений, если только два события не произойдут последовательно:

  1. Мы не сможем развернуть исправления Atlas в основной сети в течение следующих нескольких недель.
  2. Он не может внедрить необходимый ему в качестве обходного пути механизм отчетности zonefile, используя настраиваемый смарт-контракт Clarity, а также подписывание и трансляцию транзакций с помощью расширения Stacks Wallet.

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

@agraebe @diwakergupta Я свяжусь с splat на следующей неделе, чтобы узнать, как продвигаются планы развертывания Atlas, чтобы мы могли предоставить @MarvinJanssen обновленную информацию о сроках и о том, как это повлияет на его варианты.

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

Все 12 Комментарий

Спасибо, что опубликовали это! Я думаю, что такая функция имеет решающее значение.

Спасибо, что опубликовали это! Я думаю, что такая функция имеет решающее значение.

Я согласен, и я думаю, что многие в команде тоже согласятся 👍 Я буду работать над обновлением этой проблемы по мере ее обсуждения.

@MarvinJanssen Не могли бы вы указать варианты использования, которые вы хотели бы построить в краткосрочной перспективе, чтобы помочь взвесить приоритеты?

@markmhx говорит краткосрочно, на самом деле есть только одна причина, по которой мне это нужно.

Я создаю компонент на стороне сервера, который отслеживает URL-адреса пользовательского приложения (для файлов зон). Чтобы защитить этот API, пользователь должен подписать URL-адрес своей корзины с помощью Connect. Затем сервер разрешает указанное пользователем имя BNS через контракт BNS и использует соответствующего принципала для проверки подписи. В основном мне нужно убедиться, что конкретное сообщение действительно пришло от принципала, которому принадлежит имя в BNS. Если у вас есть альтернативные решения, дайте мне знать. Мой план резервного копирования заключался в том, чтобы ввести простой контракт Clarity и предоставить пользователю подтверждение через вызов контракта, но это делает его обходным путем для обходного пути для обходного пути...

есть 2 основных других варианта использования, которые я видел, когда подписи используются в Eth:

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

@psq да, в долгосрочной перспективе нам это нужно для DeFi и DeX, а также для платформ, которые выполняют сопоставление на стороне сервера, требующее подписи пользователей. (Например, 0x Protocol и Wyvern на Ethereum.)

Спасибо за дополнительный контекст 🙏 Я поручаю Джасперу, чтобы он занимался дизайном.

Я вижу, что это в холодильнике @markmhx. Значит ли это, что это будет рассмотрено в более позднем спринте? @MarvinJanssen ждет обновлений 🙂

Я вернул эту проблему обратно в список невыполненных работ по Канбану .

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

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

  • Спонсируемые транзакции делают так, что любой звонок по контракту может быть бесплатным. Единственным недостатком здесь является то, что вы не можете делать пакетные подписи.
  • Спецификация ETH тесно связана с тем, как этот формат данных может быть закодирован RLP и использован в EVM. Нам придется проделать много работы, чтобы определить, как это может работать с Clarity, а затем мы сможем сделать из этого спецификацию, а затем мы сможем добавить ее в кошелек.

Строки — наиболее очевидный вариант использования стеков на данный момент. Это позволило бы использовать очень распространенный случай предоставления доступа вне сети пользователю, который может доказать, что он владеет адресом STX. Например, веб-приложение, предоставляющее определенные функции, если у вас есть NFT.

Чтобы быть более конкретным о вариантах использования:

  • Войдите в веб-приложение и подтвердите, что у вас есть адрес STX.

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

  • Поделитесь конкретным сообщением для офчейна, которое доказывает, что вы владеете адресом STX.

    • подписать строку, «простая» версия этой проблемы

  • Одобрение токенов без комиссии

    • решается почтовыми условиями

  • Бесплатное голосование DAO

    • решается спонсируемыми транзакциями

  • Пакетное бесплатное голосование DAO или другие сложные пакетные онлайн-бесплатные вещи.

    • требуется эквивалент ERC712

Во время вчерашнего разговора с @MarvinJanssen и @GinaAbrams было определено, что у приложения .BTC не будет острой необходимости в произвольной подписи сообщений, если только два события не произойдут последовательно:

  1. Мы не сможем развернуть исправления Atlas в основной сети в течение следующих нескольких недель.
  2. Он не может внедрить необходимый ему в качестве обходного пути механизм отчетности zonefile, используя настраиваемый смарт-контракт Clarity, а также подписывание и трансляцию транзакций с помощью расширения Stacks Wallet.

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

@agraebe @diwakergupta Я свяжусь с splat на следующей неделе, чтобы узнать, как продвигаются планы развертывания Atlas, чтобы мы могли предоставить @MarvinJanssen обновленную информацию о сроках и о том, как это повлияет на его варианты.

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

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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги