Если к функции обновления хэша имеет доступ любой юзер, то, следовательно, нет
Обновление будет проходить внутри функцией с логикой, а чтобы вызвать эту функцию нужен пароль.
Есть только проблема, если пользователь пошлет транзакцию, потом отменит ей, прочитает пароль, и использует пароль, но потом установит свой новый хеш, а не хеш из сервера... И это закроет всю работу.
В этом случае можно оставить функцию для owner чтобы стереть не корректный хеш.