DApp подписывает транзакции на мобильных устройствах и передает их на сервер - Веб-безопасность

В настоящее время я разрабатываю приложение для iOS и Android с использованием React Native, где у пользователей будет кошелек, созданный с использованием: https://www.npmjs.com/package/ethereumjs-wallet-react-native . Затем они могут подписывать и отправлять транзакции в мой веб-API, используя это: https://github.com/ethereumjs/ethereumjs-tx .

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

Шаги:

  1. Пользователь создает кошелек и сохраняет закрытый ключ на устройстве.
  2. Пользователь создает транзакцию и подписывает транзакцию на устройстве.
  3. Пользователь отправляет подписанную транзакцию через HTTPS на мой WebAPI.
  4. Мой WebAPI отправляет его в блокчейн.

Кроме того, я хотел бы создать какой-то способ, чтобы пользователи могли получить свои кошельки, если устройство каким-либо образом будет повреждено. Я не могу придумать особо безопасный способ сделать это. Разве что, когда я храню закрытый ключ в связке ключей (или аналогичной для Android), Apple/Android управляет восстановлением? Например, если я войду в систему на одном устройстве, а затем войду на другом устройстве, будет ли использоваться тот же закрытый ключ?

Спасибо заранее, и я ценю вашу помощь.

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

Ответы (1)

Пока вы подписываете транзакцию на устройстве и передаете только подписанные транзакции, вы соответствуете базовым требованиям безопасности, которые были бы развернуты в любом другом кошельке. Если вы еще не смотрели infura.io, рекомендуем проверить это, так как он имитирует вашу функциональность WebAPI (работа в качестве брокера).

Привет, Чим, да, я буду использовать инфуру для трансляции транзакций, но для некоторых вещей у меня есть и типичный веб-API (в будущем можно будет перенести на IPFS.) :). Спасибо за совет.