ECC-бильярд — головоломка на эллиптической кривой
Дойдите до целевой точки на настоящей эллиптической кривой, используя только удвоение и сложение. Головоломка, обучающая алгоритму double-and-add.
Дойдите до целевой точки. Всего два удара: удвоить или прибавить генератор.
- Генератор G (0, 10)
- Цель (88, 56)
- Вы (0, 10)
Как играть
- Каждая точка — это точка на настоящей эллиптической кривой, такой же, какая защищает биткоин-ключи.
- УДВОИТЬ проводит касательную в вашей точке; ПРИБАВИТЬ проводит хорду через вашу точку и зелёный генератор. В обоих случаях вы попадаете в третью точку и отражаете её.
- Дойдите до оранжевой цели за минимум ударов. Лучший маршрут — ровно то, что делает кошелёк при умножении ключа: вы играете в double-and-add.
Ударов осталось отсюда: 3
Как это работает
В каждом уровне показана настоящая эллиптическая кривая над небольшим простым полем. Вы стартуете в зелёной точке-генераторе G и должны попасть в оранжевую цель, используя всего два удара: УДВОИТЬ (касательная в вашей точке) и ПРИБАВИТЬ (хорда через вашу точку и G). Это и есть подлинный групповой закон: прямая пересекает кривую в третьей точке, которая отражается. Кратчайший путь — ровно та лестница double-and-add, которую кошелёк выполняет при умножении приватного ключа.
Обучающая головоломка над намеренно крошечным простым полем. Настоящие кривые вроде secp256k1 работают по тем же правилам, но с астрономически бо́льшими числами.
Частые вопросы
Как игра связана с настоящей криптографией?
Напрямую. Удвоение и сложение точек — это то, как любой кошелёк вычисляет публичный ключ из приватного. Отличается только масштаб: здесь в поле меньше 200 точек, а в secp256k1 их около 2^256.
Что на самом деле делают «Удвоить» и «Прибавить»?
«Удвоить» проводит касательную в вашей точке, находит второе пересечение с кривой и отражает его. «Прибавить» проводит хорду через вашу точку и генератор G и делает то же самое. Это неизменный групповой закон эллиптической кривой.
Число «лучший результат» — это правда минимум?
Да. Оно вычисляется поиском в ширину по всем достижимым точкам, а не оценивается. Если написано 6, то маршрута из пяти ударов не существует.