Это может быть спорным, но ваши транзакции должны иметь возможность противостоять злонамеренным валидаторам, использующим сэндвич-атаки. Я создал простую программу, чтобы сделать именно это. Вы не можете знать во время выполнения, является ли проскальзывание естественным рыночным движением или сэндвич-атакой. Но если ваша своп-транзакция попадает на известного злонамеренного валидатора, вы практически гарантированно получите сэндвич до вашего максимального проскальзывания. Это позволяет вам противостоять этому. ✅ На доверенном валидаторе? Ваша транзакция проходит с вашим желаемым проскальзыванием (x%). ❌ На злонамеренном валидаторе? Проскальзывание вашей транзакции корректируется (0%, какая-то доля x%, что угодно) Вместо того чтобы просто откатываться, ваша транзакция может успешно завершиться с более строгими ограничениями, когда она выполняется в более темном лесу. Когда вы создаете и подписываете свою транзакцию, вы не знаете точно, на каком валидаторе она окажется, поэтому логика, изменяющая поведение, должна быть в цепочке. Так как же это работает? Программа Solana не может получить доступ к текущему валидатору, но она может получить доступ к текущему слоту. Программа принимает компактное представление (14 байт, но может быть дополнительно уменьшено), чтобы позволить программе проверить, помечен ли лидер слота как злонамеренный. Несколько способов использования: (1) Вы можете вставить это напрямую как простую инструкцию (<260 CU, большая часть из которых используется для доступа к системной переменной Clock). Откатывает всю транзакцию, когда она попадает на злонамеренного валидатора. (2) Вы можете использовать это для обертывания маршрутизатора Jupiter v6. Он вызовет программу Jupiter и динамически переопределит значение `slippage`, но только когда он работает на злонамеренном валидаторе. (3) Вызовите это напрямую через CPI из вашей собственной программы. Список злонамеренных валидаторов и их предстоящих слотов можно получить из нашего предстоящего API Sandwiched[dot]me или из ваших собственных данных. Имейте в виду, что этот прототип является экспериментальным. Он не развернут в цепочке. Будем рады получить ваш отзыв, и PR приветствуются.
2,78K