보안 및 테스트 개요
Signals는 메커니즘, Solidity 코드베이스, 운영 절차 전반에 걸쳐 방어막을 쌓아 이용자를 보호합니다. 이 문서는 현재 배포된 조치, 이를 검증하는 방법, 그리고 곧 도입될 개선 사항을 정리했습니다.
메커니즘과 컨트랙트 방어선
CLMSR 컨트랙트는 백서의 잠재함수를 그대로 구현해 확률 정상화와 메이커 손실 한계를 강제합니다. 모든 엔트리포인트에는 nonReentrant 가드와 비상 일시정지 훅이 연결되어 있으며, 틱 범위·유동성 계수·오라클 값에 대한 입력 검증을 엄격하게 수행합니다. lazy segment tree 연산은 MAX_EXP_INPUT_WAD, MAX_CHUNKS_PER_TX, MIN_FACTOR, MAX_FACTOR와 같은 하드 한도를 준수해 정밀도나 가스를 초과하는 거래를 차단합니다. 현재 권한은 단일 Ownable 오너에게 집중되어 있지만, 운영 자동화 파이프라인이 업그레이드와 일일 운영을 캡슐화해 휴먼 에러를 줄이고 있으며, 타임락·멀티시그 도입을 준비 중입니다.
테스트 전략
자동화된 테스트는 여러 층을 커버합니다.
- 단위 테스트는 수학 라이브러리, 고정소수점 헬퍼, 세그먼트 트리 변형 동작을 점검합니다.
- 통합 및 E2E 시나리오는 시장 생성부터 거래, 정산, 청구까지 풀 루프를 실행해 컨트랙트와 스크립트가 일치하는지 확인합니다.
- 불변성(invariant) 테스트는 무작위 거래 시퀀스에서도 가격 정상화와 손실 한계가 유지되는지 검증합니다.
- 가스 벤치마크는 청크 지수 계산, 정산 관련 상태 업데이트, 일반적인 거래 경로의 비용을 추적해 회귀를 조기에 발견합니다.
모든 PR은 CI에서 실행되며, 야간 잡은 더 긴 거래 트레이스를 재생해 비결정적 에지 케이스를 탐지합니다.
운영 통제
운영팀이 관리하는 배포 manifest는 환경별 구현 주소를 기록해 어떤 바이트코드가 라이브인지 쉽게 확인할 수 있게 합니다. 운영 자동화는 업그레이드, 시장 생성, 정산 제출, 이벤트 모니터링을 재현 가능한 명령으로 수행합니다. 외부 인덱서와 검증 스크립트는 온체인 잔액을 CLMSR 기대값과 비교해 미수령 금액이나 트리 합계가 모델과 어긋나면 경고를 발생시킵니다. 기준 가격 피드가 지연되면 파이프라인은 검증 가능한 값이 나올 때까지 정산을 멈추며, 자금은 풀 안에 그대로 유지됩니다.
로드맵 및 예정 작업
- 매도·청구를 내림 라운딩으로 통일하고 SUSD 최소 주문을 온체인에서 강제합니다.
- 업그레이드와 정산에 다중 승인이 필요하도록 오너 역할에 타임락과 멀티시그 래퍼를 추가합니다.
- 위 변경이 반영되면 외부 감사를 진행하고, 결과와 개선 계획을 공개합니다.
책임 있는 제보
보안 연구자는 security@signals-protocol.com으로 제보할 수 있습니다. 재현 절차, 예상 영향, 완화 아이디어를 함께 보내 주세요. 치명적 취약점은 공개 채널이나 GitHub 이슈에 올리지 말고, 패치가 배포될 때까지 비공개로 조율해 주세요.
추가 배경 자료는 안전 한계 & 파라미터와 정산 파이프라인 문서를 참고하세요.