На первый взгляд, это будет выглядеть так: пользователь с вашего сайта отправляет запрос через metamask
на ваш backend
, который шифрует запрос пользователя с помощью secret key
(назовем его hash
) и отправляет его с body request
к вашему смарт-контракту (так sendToContract({hash, body})
).После этого смарт-контракт шифрует body
с помощью secret key
(назовем его hash2
) и сравнивает hash2
с hash
Таким образом, смарт-контракт должен хранить secret key
, но невозможно хранить секретные данные в умном контракте .
Да, вы можете попытаться как-то скрыть это secret key
, но в конечном итоге вы не можете иметь 100% гарантию, что только ваши backend
и smart-contract
знать secret key