Велосипед скорее всего.
Алгоритм повышения стоимости операций для клиента с сохранением низкой стоимости для сервера.
Пример где это нужно: хочется зарегать учётную запись без sms, email и т.п., но надо избежать флуда регистраций.
- В начале процедуры регистрации генерим на сервере 64КБ рандома.
- Запоминаем 8 случайных кусков по 8 байт из этих 64кб рандома и смещения до них.
- Отправляем юзеру данные 64кб и забываем эти 64 кб.
- Далее с интервалом в секунду посылаем юзеру запросы «дай 8 байт со смещения N», где очередное N - какое-то из запомненных нами на шаге (2).
- Юзер не знает что мы запомнили на шаге (2) и, таким образом, что сервер может спросить и вынужден хранить всё.
- Серверу нужно хранить только 8*8 байт.
- «с интервалом в секунду» - чтобы инициатива о длительности процедуры была полностью в руках сервера. Если клиент ответил раньше - отпинываем его совсем.
Смысл в том, что если клиент захочет запустить много-много параллельных процессов, то это будет стоить ему в разы больше памяти, чем серверу.
Хочется узнать:
- Как называется велосипед, который я только что изобрёл, у нормальных людей.
- Что можно улучшить.
- Альтернативы этому подходу.