Core Concepts
PropertyGPT는 기존 인간이 작성한 속성을 활용하여 새로운 스마트 계약 코드에 대한 포괄적이고 고품질의 속성을 자동으로 생성할 수 있다.
Abstract
PropertyGPT는 LLM(Large Language Model)의 in-context learning 기능을 활용하여 기존 인간이 작성한 속성을 참조하여 새로운 스마트 계약 코드에 대한 속성을 자동으로 생성한다. 이를 위해 PropertyGPT는 다음과 같은 주요 단계를 거친다:
기존 인간 작성 속성을 벡터 데이터베이스에 임베딩하여 저장한다.
새로운 스마트 계약 코드를 입력받아 벡터 데이터베이스에서 유사한 코드와 속성을 검색한다.
검색된 속성을 참조하여 LLM을 통해 새로운 속성을 생성한다.
생성된 속성이 컴파일 가능하도록 컴파일러 피드백을 활용하여 반복적으로 수정한다.
생성된 속성들을 유사도 기반 가중치 알고리즘으로 순위화하여 상위 K개를 선별한다.
선별된 속성들을 전용 프루버를 통해 형식적으로 검증한다.
PropertyGPT의 실험 결과, 기존 인간 작성 속성 대비 80%의 recall과 64%의 precision을 달성하였다. 또한 PropertyGPT는 37개의 CVE 및 공격 사례 중 26개를 탐지하였고, 4개의 실제 프로젝트에서 12개의 제로데이 취약점을 발견하여 $8,256의 버그 바운티를 받았다.
Stats
기존 인간 작성 속성 623개를 23개 Certora 프로젝트에서 수집하였다.
90개의 속성을 테스트 데이터로 사용하였고, 나머지를 참조 데이터로 활용하였다.
PropertyGPT는 테스트 데이터 90개 중 72개의 속성을 생성하였다.
Quotes
"PropertyGPT는 기존 인간 작성 속성을 활용하여 새로운 스마트 계약 코드에 대한 포괄적이고 고품질의 속성을 자동으로 생성할 수 있다."
"PropertyGPT는 37개의 CVE 및 공격 사례 중 26개를 탐지하였고, 4개의 실제 프로젝트에서 12개의 제로데이 취약점을 발견하였다."