Для тех, кому интересен механизм использования на https://reg.readdle.me/ challenge proof of work:
- Запрашиваем у сервера challenge id и challenge string. Формируем новый приватный ключ из подстроки "{challenge id}{nonce}{challenge string}" где nonce — требуемое решение.
- Подбираем nonce, чтобы публичный ключ соответствующий приватному ключу полученному на шаге 1 начинался на "VIZ52" (если требуется гораздо большая сложность — можно проверять соответствие с строкой "VIZ512").
- Отправляем challenge id и подобранный nonce при регистрации.
- Сервер берет challenge id, достает из базы статус регистрации (чтобы не было дублей) и подставляя nonce также проверяет по маске получившийся публичный ключ.
Таким образом получается невидимая каптча, которая требует немного процессорного времени на решение ребуса.