배경지식

1. 개요

CTF 씬은 거대한 지각 변동을 겪고 있다. 전통적인 시스템 해킹이 메모리 주소를 조작하여 제어 흐름을 탈취하는 싸움이었다면, 영지식 증명 해킹은 다항식과 유한체 위에서 연산의 무결성을 무너뜨리는 싸움이다.

공격의 본질이 변했다:

이 문서는 ZK 시스템을 공격하기 위한 체계적인 방법론을 제시한다. 수학적 기반부터 회로 논리, 구현 레벨까지 전 계층을 아우르는 공격 기법을 다루며, 실전 CTF 문제 해결에 직접 적용할 수 있는 방법론을 제공한다.

2. Attack Surface Analysis

ZK 시스템을 공격하기 위해서는 먼저 공격 표면을 체계적으로 분석해야 한다. CTF 문제에서 제공되는 아티팩트들을 올바른 순서로 분석하고, 각 계층에서 발생할 수 있는 취약점 유형을 이해하는 것이 핵심이다.

2.1 아티팩트 분석 순서

CTF 문제에서는 일반적으로 다음과 같은 파일들이 제공된다. 각 파일은 서로 다른 계층의 취약점을 담고 있을 수 있으므로, 체계적인 분석 순서가 중요하다.

2.1.1 circuit.circom

회로의 논리적 구조와 제약 조건을 분석하여 under-constrained 변수나 논리적 허점을 찾는다.

분석 방법:

도구:

2.1.2 verifier.sol (온체인 구현 분석)

Solidity로 구현된 검증자 컨트랙트에서 구현 버그나 가스 최적화로 인한 보안 허점을 찾는다.

분석 방법: