감사 대상 코드와 범위, 책임한도와 면책의 효력, 재감사 및 감사보고서 표시의 설계
토큰이나 디파이 서비스를 출시하는 프로젝트가 외부 업체에 스마트컨트랙트 보안감사를 맡기는 경우, 감사계약서의 범위와 책임 제한 조항에 따라 해킹 발생 시 감사 업체에 책임을 물을 수 있는 범위가 크게 달라집니다. 해외 감사계약은 대부분 모든 취약점의 발견이나 해킹이 없을 것을 보증하지 않는다고 정합니다.
스마트컨트랙트 보안감사 계약에서 감사 대상 코드와 범위, 책임한도와 면책, 지적 사항 수정과 재감사, 감사보고서의 공개와 표시를 검토할 때의 주요 사항을 정리합니다.
1. 감사 후에도 해킹 위험이 남는 이유
2025년 11월 27일 업비트의 솔라나 계열 지갑에서 약 445억 원어치 가상자산이 외부로 비정상 출금됐습니다. 이 사고는 거래소 지갑에서 발생했지만, 블록체인 서비스의 보안 사고가 얼마나 큰 손실로 이어지는지 보여 줍니다.
스마트컨트랙트 감사는 특정 시점에 제출된 코드를 검토하는 용역입니다. 감사 이후 코드가 바뀌거나 감사 범위 밖의 구성 요소에서 문제가 생기면 감사 결과가 그 부분까지 보장하지 않습니다.
그래서 해외 감사계약은 대부분 모든 취약점을 찾았다거나 해킹이 없을 것이라는 보증을 하지 않는다고 정합니다.
2. 감사 대상 코드와 범위
감사계약서에는 감사할 저장소와 커밋 해시, 대상 컨트랙트 목록을 적습니다. 범위가 모호하면 해킹이 난 뒤 해당 코드가 감사 대상이었는지부터 다투게 됩니다.
오라클, 프론트엔드, 관리자 키 관리, 외부 프로토콜 연동처럼 범위에서 빠진 항목을 명시하고, 따로 점검할 계획을 세워야 합니다.
감사 방법도 확인합니다. 수동 코드 리뷰, 자동화 도구, 경제적 공격 시나리오 검토 가운데 무엇을 포함하는지에 따라 감사의 실질이 달라집니다.
3. 책임한도와 면책 조항의 효력
감사 업체는 보통 책임한도를 감사 대금 범위로 정하고, 간접손해와 이용자 손실에 대한 책임을 배제합니다. 프로젝트 입장에서는 실제 손실에 비해 회수할 수 있는 금액이 매우 작을 수 있습니다.
국내법이 적용되는 경우, 사업자가 미리 마련한 약관으로 자신의 고의나 중대한 과실로 인한 책임까지 배제하는 조항은 약관규제법에 따라 무효가 됩니다. 다만 개별 협상으로 정한 조항이나 해외 법이 준거법인 계약에서는 판단이 달라질 수 있습니다.
책임한도를 대금의 일정 배수로 높이거나, 명백한 검토 누락에는 한도를 적용하지 않는 방안을 협상할 수 있습니다.
4. 지적 사항 수정과 재감사
감사 업체가 취약점을 지적하면 프로젝트가 코드를 고치고, 감사 업체가 수정 결과를 다시 확인하는 절차를 거칩니다.
재검토가 감사 대금에 포함되는지, 몇 차례까지 가능한지, 출시 직전 코드 변경을 어떻게 처리할지 계약서에 정해야 합니다. 최종 배포 코드와 감사 완료 코드가 같은지 확인하는 절차도 둡니다.
출시 후 업그레이드가 예정되어 있다면 추가 감사의 조건과 비용도 미리 협의합니다.
| 조항 | 주요 검토사항 |
|---|---|
| 감사 범위 | 저장소와 커밋 해시, 대상 컨트랙트, 제외 항목 명시 |
| 감사 방법 | 수동 리뷰, 자동화 도구, 경제적 공격 시나리오 포함 여부 |
| 책임 제한 | 책임한도 배수, 고의와 중과실 면책의 효력, 준거법 |
| 재감사 | 수정 확인 횟수와 비용, 최종 배포 코드와의 일치 확인 |
| 보고서 표시 | 감사 범위와 시점 공개, 비밀유지와 취약점 공개 시점 |
5. 감사보고서의 공개와 표시
프로젝트는 감사보고서를 공개해 이용자와 투자자의 신뢰를 얻으려 합니다. 감사 업체는 자신의 이름이 과장되게 쓰이는 것을 막으려 합니다.
감사 완료를 안전 보장처럼 표시하면 이용자 오인을 불러 프로젝트의 책임이 커질 수 있습니다. 감사 범위와 시점, 미해결 지적 사항을 함께 공개하는 방식을 정합니다.
감사 과정에서 넘긴 코드와 내부 자료의 비밀유지, 취약점 정보의 공개 시점도 계약서에 둡니다.
6. 기업에 대한 시사점
스마트컨트랙트 감사의 효과는 감사계약서가 정한 범위와 시점에 한정됩니다. 감사 범위와 제외 항목을 구체적으로 정하는 것은 보안 공백을 확인하는 동시에 사고 발생 시 책임 소재를 가리는 기준이 됩니다.
감사 업체의 책임한도가 실제 손실에 비해 작을 수 있는 만큼, 감사계약 협상과 함께 프로젝트 내부의 보안 점검과 사고 대응 체계를 갖출 필요가 있습니다.


