Искать ключ в 2^256 и искать ключ в 2^70 — это не одна и та же задача в разных масштабах. Это разные задачи. Первая невозможна с точки зрения физики, как показал промежуточный этап. Вторая — это проект: дорогой, длительный, с существующим оборудованием и людьми, которые его уже выполняли. Все в этом модуле связано с этой разницей.
Интервал поиска — это именно то, что подразумевает название: начало и конец. Утверждение, что ключ находится в интервале семидесяти бит, означает, что он больше или равен 2^69 и меньше 2^70 — то есть, что есть 2^69 кандидатов, и ни одного за пределами этого диапазона. Интервал не делает математику слабее. Он сокращает поле поиска.

Правильная мера этого поля — количество бит, и именно она дает правильные пропорции. Каждый дополнительный бит удваивает работу: интервал в 71 бит стоит вдвое больше, чем в 70, а в 80 — в тысячу раз больше. Говорить о битах вместо чисел с двадцатью цифрами позволяет не потерять интуицию — разница между 70 и 80 кажется небольшой, написанной так, но это разница между неделями и веками.
Теперь различие, которое решает все в этом модуле, и которое многие люди обнаруживают поздно. Существуют две совершенно разные ситуации, в зависимости от того, что известно о цели.
В первой, открытый ключ известен. Это происходит всякий раз, когда адрес уже что-то потратил: для траты необходимо представить открытый ключ, и с этого момента он навсегда опубликован в блокчейне. С открытым ключом в руках проблема превращается в дискретный логарифм в небольшом интервале, и алгоритмы квадратного корня из следующих уроков атакуют 2^69 кандидатов примерно за 2^35 шагов. Тридцать пять бит — это работа на один день.
Во второй, известен только адрес. Адрес — это хеш открытого ключа, и хеш не обратим — Урок 1 Модуля 4 настаивал на этом. Без открытого ключа нет кривой для атаки, нет сокращенного пути квадратного корня, остается только длинный путь: выбрать случайное число, вывести открытый ключ, вычислить хеш, сравнить с адресом, повторить. Это 2^69 полных оборотов, а не 2^35.

Запомните эту асимметрию, потому что она объясняет почти всю историю вызовов, о которых расскажет последний модуль: первыми пали, как правило, те, чьи открытые ключи были выставлены, а те, кто устоял, остаются нетронутыми, защищенными не кривой, а хеш-функцией перед ней.
Стоит также упомянуть, откуда берутся маленькие интервалы, потому что они не появляются сами по себе. Некоторые из них намеренные: в 2015 году кто-то создал кошелек, в котором ключ каждого адреса был выбран в интервале с увеличивающимся размером, по одному биту за раз, и профинансировал все 256. Другие случайны и гораздо более печальны: фраза, выбранная человеком, имеет, возможно, тридцать бит непредсказуемости, неисправный генератор может сократить 256 бит до нескольких десятков, а тестовая программа, ставшая настоящим кошельком, обычно выбирает в крошечном интервале.

Правильно выбранный ключ с настоящей энтропией в 256 бит не находится ни в каком интервале — или, точнее, находится в единственном интервале, который никто не сканирует. Ничто в этом модуле ему не угрожает, и важно, чтобы это было сказано до шести следующих уроков.
Далее идет честный расчет каждого метода, начиная с самого простого. В следующем уроке — сколько стоит попытаться подобрать число за числом — в ключах в секунду, в счетах за электроэнергию и в точке, где расчет перестает сходиться.