Серия «Самостоятельное хранение», часть III
StarkEx — это механизм масштабируемости с самостоятельным хранением. Мы описали различные аспекты системы самоконтроля, одним из которых являются кошельки. В этом посте описывается работа, которую мы проводим с различными поставщиками кошельков, чтобы гарантировать, что StarkEx останется системой самообслуживания.
Важной чертой системы самоконтроля является то, что каждое взаимодействие требует подписи пользователя. Наш руководящий принцип — « не просто подписывай, проверяй » — он напрямую следует старой поговорке о блокчейне: « не доверяй, проверяй ». Другими словами, при отсутствии проверки пользователя система может оставаться самостоятельным только по названию. Пользователь должен иметь возможность проверить параметры взаимодействия своего кошелька с приложением самообслуживания.Например, когда пользователь предоставляет свою подпись как часть взаимодействия с ончейн-контрактом, кошелек должен представлять не кажущийся загадочным блок данных, а скорее хорошо проанализированное и удобочитаемое сообщение. Тот же принцип должен применяться к приложениям уровня 2, где пользователь должен подписывать транзакции вне сети.
Чтобы внедрить принцип «не просто подписывайте, а проверяйте», мы работали с несколькими поставщиками кошельков, чтобы интегрировать наш протокол непосредственно в их продукт. Эта интеграция особенно важна для систем ZKP. Чтобы обеспечить эффективную проверку подписей, системы ZKP Layer-2 обычно работают с кривой, отличной от стандартной кривой Ethereum , и используют другие хэш-функции. Одним из простых способов продвижения вперед является реализация кошелька в браузере. Мы предпочитаем не делать этого по двум причинам. Во-первых, цель StarkEx — предоставить пользователям профессиональную торговую платформу прямо из своего кошелька , не требуя от них перемещения этих средств в другое место. Во-вторых, создание безопасного кошелька — нетривиальная задача ( показательным примером является недавняя серьезная ошибка интерфейса Loopring ).
Ниже приведен список кошельков, поддерживаемых по состоянию на май 2020 года ( запуск первой системы StarkEx в основной сети Ethereum, поддерживающей DeversiFi ) .
Ledger : полностью интегрированный
StarkEx полностью интегрирован с Ledger . Каждое взаимодействие, будь то вызов контракта в сети или отправка заказа вне сети, будет проанализировано Ledger, представлено пользователю и явно подтверждено пользователем перед подписанием внутри Ledger. Пользователи смогут проверить параметры каждого взаимодействия. Кроме того, Ledger будет поддерживать StarkEx в своем собственном приложении Ethereum (пользователям даже не придется устанавливать конкретное приложение из Ledger Live) .
Эта интеграция потребовала добавления кривой, характерной для STARK, в прошивку Ledger и реализации хеш-функции StarkWare (хэш-функция Педерсена) в приложении Ledger. Тесное сотрудничество между StarkWare и Ledger привело к появлению первого аппаратного кошелька на Layer-2.
WalletConnect: полностью интегрированный
StarkEx полностью интегрирован с WalletConnect . WalletConnect — это открытый протокол для подключения (через QR-код) настольных приложений к мобильным кошелькам с использованием сквозного шифрования. Вместе с Педро Гомесом мы реализовали взаимодействие StarkEx, чтобы создать StarkEx WalletConnect Provider . DeversiFi, первая биржа самообслуживания на базе StarkEx, интегрировала WalletConnect в свое приложение. Мобильный кошелек Argent в настоящее время работает над интеграцией с провайдером StarkEx WalletConnect и скоро будет поддерживать самостоятельную торговлю на DeversiFi.
MetaMask: гибридное решение
В настоящее время у нас есть гибридное решение для пользователей MetaMask. Все транзакции в сети будут обрабатываться MetaMask, а все транзакции вне сети будут обрабатываться кошельком в браузере (первый — это кошелек DeversiFi). Это решение не уступает большинству сегодняшних решений уровня 2 и позволяет нам немедленно поддерживать большую установленную базу MetaMasks. Это решение не соответствует передовой практике, описанной выше: пользователи не могут проверять вызовы контрактов в сети, а также не могут проверять свои транзакции вне сети. Это будет исправлено, как только MetaMask развернет свою систему плагинов Snaps . Мы продолжим тесно сотрудничать с командой MetaMask в качестве партнера по дизайну Snaps (см. нашу совместную демонстрацию на Devcon5).), что позволит StarkEx предоставить пользователям MetaMask решение, соответствующее нашим рекомендациям.