hopskipjump
**HopSkipJump** is a **query-efficient decision-based adversarial attack that uses gradient estimation at the decision boundary** — improving upon the Boundary Attack with smarter step sizes and boundary-aware gradient estimation for faster convergence.
**How HopSkipJump Works**
- **Binary Search**: Find the exact decision boundary between the clean and adversarial points.
- **Gradient Estimation**: Estimate the boundary gradient using Monte Carlo sampling (random projections).
- **Step**: Move along the estimated gradient direction while staying near the boundary.
- **Iterate**: Repeat binary search → gradient estimation → step with decreasing step sizes.
**Why It Matters**
- **Query Efficient**: Converges to strong adversarial examples with far fewer model queries than Boundary Attack.
- **$L_2$ and $L_infty$**: Works for both distance metrics — flexible threat model.
- **Practical**: Effective against real-world deployed models with limited API access.
**HopSkipJump** is **smart boundary navigation** — combining binary search, gradient estimation, and careful stepping for efficient decision-based adversarial attacks.