было вызывать контракт только из приложения, а напрямую запретить?
Я знаю что можно добавить хеш из пароля в контракт, и потом требовать у пользователя пароль, но это для одноразового пользования... А мне надо много без обновления хеша.
А привязать кошелек к вызову? Чтобы транзакции шли только от имени определенного кошелька
Я тоже об этом думал... Но не совсем то, что мне нужно. Ок спасибо!
Еще вариант - тоже с хэшем, но его отдельной функцией от имени владельца обновлять по желанию - хоть каждый чс. Вопрос только в затратах газа
Я придумал такой вариант Пользователь вызывает из приложения определенный метод, который требует пароль. Сервер отправляет на приложение пароль, плюс создаёт новый хеш. Пользователь использует пароль, и обновляет хеш с новым паролем за свой счёт. Таким способом владелец приложения не тратит свой газ и вызов может быть осуществлен только из приложения, которое может получить пароль и новый хеш от сервера, только с помощью секретного токена внутри приложения. Это безопасно ?
Если к функции обновления хэша имеет доступ любой юзер, то, следовательно, нет
Обновление будет проходить внутри функцией с логикой, а чтобы вызвать эту функцию нужен пароль. Есть только проблема, если пользователь пошлет транзакцию, потом отменит ей, прочитает пароль, и использует пароль, но потом установит свой новый хеш, а не хеш из сервера... И это закроет всю работу. В этом случае можно оставить функцию для owner чтобы стереть не корректный хеш.
Если бы как то прикрутить nonce ...
Посмотри как сделали firstblood.io на своем ICO
Обсуждают сегодня