Когда вы создаете код подтверждения, у вас есть доступ к номеру телефона звонящего?
Если это так, я бы использовал номер телефона звонящего и запустил его через какую-то функцию хеширования, чтобы вы могли гарантировать, что проверочный код, который вы дали звонящему на шаге 1, тот же, что он вводит на шаге 2 чтобы убедиться, что они не используют проверочный код друга или просто сделали очень удачное предположение).
Насчет хеширования, я не уверен, возможно ли взять 10-значное число и получить результат хеширования, который будет <10 цифр (я думаю, вам придется жить с определенным количеством коллизий) но я думаю, что это поможет гарантировать, что пользователь - это тот, о ком говорят. </p>
Конечно, это не будет работать, если номер телефона, использованный на шаге 1, отличается от того, с которого они звонят на шаге 2.