스마트 계약 감사
스마트 계약 감사란 무엇입니까?
스마트 계약 감사는 암호화폐 또는 블록체인과 상호 작용하는 데 사용되는 스마트 계약 코드를 광범위하고 체계적으로 조사하고 분석하는 것입니다. 이 프로세스는 코드의 오류, 문제 및 보안 취약점을 발견하여 개선 사항과 수정 방법을 제안하기 위해 수행됩니다. 일반적으로 대부분의 계약이 금융 자산 및/또는 가치 있는 항목을 다루기 때문에 스마트 계약 감사가 필요합니다.
스마트 계약은 종종 서로 상호 작용하고 타사 시스템과의 통합으로 인해 시스템이 취약해질 수 있으므로 이러한 검사는 복잡합니다. 이로 인해 검사는 상호 작용과 관련된 다른 스마트 계약으로 확장되는 경우가 많으며 심지어 상호 작용하는 스마트 계약에도 적용됩니다. 이러한 검사에는 일반적으로 테스트 실행과 수동 코드 분석이 모두 포함됩니다.
스마트 계약은 종종 막대한 양의 자금을 관리하며 단일 버그나 취약점으로 인해 큰 손실이 발생할 수 있습니다. 보다 정확하게는 문제의 분산형 애플리케이션의 사용자와 이해관계자가 생태계의 일부인 모든 자산을 잃을 수 있습니다.
감사인이 제시한 권고사항은 사전에 프로젝트팀에 전달되며 이에 대한 대응 조치는 최종 보고서에 명시됩니다. 이는 프로젝트의 진정성과 완전성을 나타내는 표시로 간주됩니다. 이러한 이유로 팀은 사용자의 신뢰를 얻고 프로젝트의 신뢰성을 높이기 위해 감사를 받는 데 열중하고 있습니다. 이러한 감사는 일반적으로 여러 단계로 수행됩니다.
첫 번째 단계는 팀과 감사 그룹이 감사 범위와 사양에 동의하는 것입니다. 이는 스마트 계약의 설계, 목적, 아키텍처 및 기타 세부 사항이 감사자에게 제공된다는 의미입니다. 다음은 감사자가 개별 기능(단위 테스트)을 테스트한 다음 더 큰 부분(통합 테스트)을 테스트하는 테스트 단계입니다.
자동화된 버그 감지 및 분석 도구는 계약에서 일반적으로 알려진 취약점을 찾는 데에도 사용됩니다. 마지막으로 감사자는 코드를 수동으로 검사하여 개발자의 의도를 이해하고 해당 맥락에서 결과를 해석합니다. 마지막으로 팀에서 발견한 내용과 적용된 수정 사항이 포함된 보고서가 발행됩니다.
스마트 코드 감사의 중요성은 2016년 이더리움 체인 분할이 공격자가 악용한 코드 취약성으로 인해 수백만 달러의 자금이 위험에 빠졌다는 사실로 가늠할 수 있습니다. "재귀 호출 버그"를 통해 공격자는 "DAO" 민주화된 헤지 펀드에서 수백만 달러 상당의 ETH를 유출할 수 있었습니다. 자금을 강제로 반환할지 여부에 대한 커뮤니티의 후속 조치로 인해 불일치와 하드 포크가 발생했습니다.
투자자 수요를 충족하기 위해 버그로 가득 찬 스마트 계약이 종종 급히 발생하는 급성장하는 DeFi 산업에서 스마트 코드 감사는 점점 더 중요해지고 있습니다. 이로 인해 2020년에는 Harvest, Yam Finance, bZx, Balancer 및 Eminence 등 총 수백만 달러에 달하는 많은 비용이 드는 해킹이 발생했습니다.