전 세계 최초의 Move 스마트 계약 보안 감사 보고서 발표
저자: MoveBit
10월 11일, Move 생태계에 집중하는 보안 회사 MoveBit(모비 보안) 팀은 세계 최초의 Move 스마트 계약 보안 감사 보고서인 《Starcoin Framework Audit Report》를 발표했습니다.
이 감사 보고서는 세계 Move 생태계에서 최초의 스마트 계약 보안 감사 보고서로, Move를 기반으로 구축된 DApp 애플리케이션의 보안 경험을 가장 먼저 정리하였으며, Move 생태계 보안 시스템 구축의 시작을 알립니다.
Move 언어 소개
Move 언어는 처음에 Meta의 Diem 블록체인 프로젝트를 위해 개발되었으며, 현재 Move 언어는 오픈 소스 커뮤니티에 의해 유지되고 있습니다. Move 언어의 비전은 개발자가 안전하고 쉽게 빠르게 블록체인 애플리케이션을 구축할 수 있도록 돕는 프레임워크로, Move는 블록체인을 위해 태어난 스마트 계약 프로그래밍 언어입니다.
MystenLabs의 Move 언어 문서에 따르면, 현재 Move 언어를 사용하는 4개의 공공 블록체인이 있으며, 각각 Aptos, Sui, Starcoin, 0L Network입니다. 현재 Starcoin과 0L Network는 메인넷에上线되었고, Aptos와 Sui는 테스트넷 단계에 있습니다.
Starcoin은 2021년 6월 메인넷에上线된 PoW를 핵심 합의 메커니즘으로 사용하는 Move 블록체인으로, 강화된 작업 증명 합의와 Move 언어를 사용합니다. 이는 계층화되고 유연한 상호 운용성을 통해 DeFi, NFT, 게임 등 다양한 생태계의 구축을 최적화합니다.
Starcoin Framework는 Starcoin 체인上的 일반 Move 라이브러리로, 계정, NFT, Token 등 일반 표준을 포함하며, 생태계 구축의 중요한 기반 시설입니다. Starcoin Framework의 안전성은 Starcoin에서 다양한 Move 프로젝트 애플리케이션의 안전성을 개발하는 기초입니다.
Move 스마트 계약의 중요한 개념
Move Prover: Move에 내장된 스마트 계약의 형식적 검증 도구를 Move Prover라고 하며, 이 도구를 통해 작성한 스마트 계약의 특성과 규범을 주장할 수 있어 스마트 계약 실행에 추가적인 안전 보장을 제공합니다. 기본 아이디어는 형식 검증 분야의 자동 정리 증명 해결기를 통해 프로그램이 특정 규범(specification)을 준수하는지 검증하는 것입니다.
Move Specification: Move는 자체적으로 규범 언어를 정의하며, 이를 통해 전제 조건, 후속 조건, 불변식 등을 사용하여 프로그램이 어떻게 올바르게 실행되는지를 설명합니다. Move Specification은 프로그램에 직접 삽입하거나 별도의 Move Specification 파일로 작성할 수 있습니다. Move Specification은 종종 Move Spec으로 줄여서 사용됩니다.
Move Framework: Move 언어의 핵심 설계는 블록체인에 특화된 프레임워크 논리를 Move 언어의 일반 기능과 분리할 수 있는 것입니다. Move Framework는 체인의 창세 상태에 내장된 일련의 Move 모듈입니다. 이러한 모듈은 일반적으로 계정, Token 등과 같은 핵심 구성 요소를 구현하며, 특정 블록체인의 일반 프레임워크 논리를 구현하는 데 사용되며, DApp 개발의 기초입니다.
Move DApp 애플리케이션 구축의 안전 경험
지난 몇 주 동안 Move 보안 생태계에 집중하는 보안 회사 MoveBit은 Starcoin 팀과 심도 있는 교류 및 협력을 진행하며 Starcoin Framework의 각 세부 사항을 감사했습니다.
MoveBit은 Starcoin Framework의 코드 구조를 깊이 연구하였으며, 가장 먼저上线된 Move Framework로서 Account, Token, STC, Config, DAO, NFT, Oracle, Genesis 및 Block 등 코드 기능이 포괄적이며 대부분의 개발자의 일반적인 장면 요구를 충족합니다. 이를 바탕으로 MoveBit은 Move를 기반으로 구축된 DApp 애플리케이션의 안전 경험을 가장 먼저 정리하였으며, 다음 14종의 위험을 분석하였습니다.
- 거래 순서 의존성
- 타임스탬프 의존성
- 정수 오버플로우/언더플로우
- 반올림 오류 수
- 서비스 거부 / 논리적 간과
- 접근 제어
- 권력의 중앙 집중화
- 규범과 모순되는 논리
- 코드 복제, 기능 중복
- 가스 사용
- 임의의 토큰 발행
- 확인되지 않은 CALL 반환 값
- 능력 흐름
- 증인 유형
MoveBit의 발견
Starcoin Framework는 Starcoin의 Move 표준 라이브러리로, 69개의 Move 소스 파일과 70개 이상의 모듈을 포함합니다. 이 감사 작업 이전에 우리는 Starcoin SIP 및 기타 개발 리소스를 미리 읽었습니다. 우리는 먼저 프레임워크 아키텍처를 검토한 후, 주로 수동 코드 검토, 테스트 및 Move Prover의 형식적 검증을 수행했습니다.
우리는 Starcoin 팀과 긴밀한 연락을 유지하며 v11 버전에서 총 21개의 문제를 발견했습니다(그 중 Major 1개, Medium 4개, Minor 16개) 및 이를 감사 보고서로 요약하여 공개했습니다. Starcoin 팀과의 회의 중에 우리는 모든 문제에 대해 광범위한 논의를 진행했습니다. 일부 문제는 후속 반복에서 수정되었고, 다른 문제는 곧 해결될 것입니다. 원시 함수와 일부 추론할 수 없는 특수 요소를 포함한 함수(예: 런타임 유형 정보, 비트 연산자)를 제외하고, 우리는 대부분의 함수와 파일에 형식적 검증 코드 Move Specification을 추가했습니다. 모든 형식적 검증 코드는 PR로 코드 저장소에 제출되며, 최종적으로 Starcoin 팀이 향후 업그레이드 및 수정에서 병합할 것입니다.
감사 보고서 링크: ++https://www.movebit.xyz/file/Starcoin-Framework-Audit-Report.pdf++
이 감사 보고서는 세계 Move 생태계의 첫 번째 스마트 계약 보안 감사 보고서로, Move 생태계 보안 시스템 구축의 시작을 알립니다. MoveBit은 Move 커뮤니티와 함께 Move 생태계의 안전을 보장하는 데 집중할 것입니다.
Starcoin에 대하여
Starcoin은 2021년 5월 메인넷이上线되었으며, Move 생태계의 첫 번째 무허가 공공 블록체인으로, 가장 성숙한 분산 합의 강화 버전 PoW 및 스마트 계약 언어 Move를 기반으로 원천의 안전을 제공합니다. 계층화된 유연한 상호 운용성을 통해 Web.3.0 생태계에 참여하는 사람들에게 가치 부여의 디지털 자산 서비스 분산 금융 네트워크를 제공합니다.
MoveBit에 대하여
MoveBit(모비 보안) 팀은 Move 생태계를 위한 보안 회사로, 그 비전은 Move 생태계를 가장 안전한 Web3 생태계로 만드는 것입니다. MoveBit 팀은 학계의 보안 전문가와 기업의 보안 리더들로 구성되어 있으며, 10년의 보안 경험을 가지고 있습니다. NDSS, CCS 등 최고의 국제 보안 학술 회의에서 보안 연구 결과를 발표하였습니다. 팀은 Move 생태계의 초기 기여자로서 Move 개발자와 함께 안전한 Move 애플리케이션의 기준을 제정하였습니다. MoveBit은 이미 여러 글로벌 유명 거래소 및 공공 블록체인 프로젝트와 협력하여 파트너에게 보안 감사 서비스를 제공하고 있습니다.