ERC-20 기능 명세를 활용한 이더리움 스마트 계약의 적합성 평가 방법론
A Conformance Evaluation Methodology of Ethereum Smart Contracts with ERC-20 Functional Specifications
- 주제어 (키워드) 블록체인 , 이더리움 , 스마트 계약 , ERC-20 표준 , 기능 명세 , 적합성 , Blockchain , Ethereum , Smart Contract , ERC-20 Standard , Functional Specification , Conformance
- 발행기관 서강대학교 일반대학원
- 지도교수 박수용
- 발행년도 2022
- 학위수여년월 2022. 8
- 학위명 박사
- 학과 및 전공 일반대학원 컴퓨터공학과
- 실제 URI http://www.dcollection.net/handler/sogang/000000066897
- UCI I804:11029-000000066897
- 본문언어 한국어
- 저작권 서강대학교 논문은 저작권 보호를 받습니다.
초록
이더리움 블록체인은 지갑이나 분산 거래소와 같은 외부 응용 프로그램들이 토큰들을 자유롭게 주고받을 수 있도록 ERC-20 표준 API 기반 스마트 계약을 지원한다. ERC-20 표준은 계정별 토큰 잔액을 확인하고 토큰을 전송하는 등의 기능을 구현하기 위한 6개의 필수 API로 구성되어 있다. 원활한 토큰 거래를 위한 호환성을 보장하기 위해 도입하였음에도 불구하고 함수 인터페이스만 정의하고 그 동작에 대해 엄밀하게 정의하지 않았다. 그 결과 스마트 계약에서 이 표준 API를 제대로 구현했는지를 평가할 수 있는 방법이 없기 때문에 현존하는 ERC-20 스마트 계약들에서 API에 대한 해석이 서로 달라 호환성 취약 문제가 다수 발생하였다. 본 논문에서는 이 문제를 해결하기 위하여 ERC-20 API 기능 명세에 대한 엄밀한 기준을 제시하고, 이더리움에서 사용 중인 스마트 계약들이 어떻게 이 API들을 해석하고 구현하였는지 분석하여 관례적 기능 명세를 정의하였으며, 이 관례적 표준에 따라 스마트 계약 적합성 평가 방법을 제시하였다. 첫째, ERC-20 토큰 스마트 계약을 분석하기 위한 기준을 마련하기 위해 ERC-20 표준의 엄밀한 기능 명세를 설계하였다. 6개 필수 표준 함수에 대하여 블록체인 전역 변수들과 함수 지역 변수로 구성된 함수 호출 이전과 이후의 상태를 빠짐없이 19개 세부 기능 명세로 정의하였다. 둘째, 앞서 정의한 기능 명세를 기준으로 이더리움 생태계의 상위 100개 토큰 스마트 계약들의 ERC-20 API 해석 및 구현 현황을 분석하였다. 이 상용 계약들을 분석하기 위해 테스트 방법과 기호 실행 방법을 함께 사용하여 분석 결과를 서로 보완하였다. 테스트 방법으로 기능 명세 대비 기존 토큰 스마트 계약들의 비호환 원인을 분석하였고, 기호 실행 방법으로 호환성도 확인하였다. 이 분석을 통해, 19개 세부 명세에 대해 동일한 결과를 보이는 토큰들을 그룹화하여 가장 많은 토큰들이 속하는 그룹의 API 기능 동작을 관례적 ERC-20 API 표준으로 도출하였다. 셋째, 관례적 ERC-20 API 표준에 대한 기능 명세를 정의하여 토큰 스마트 계약이 이 표준을 따르는지 검사하는 적합성 평가 방법을 제시하였다. 이 평가 방법과 비호환 원인에 대한 분석 결과를 바탕으로 관례적 ERC-20 API 표준 적합성 리뷰 절차를 설계하였다. 이 리뷰 절차를 지원하는 도구를 구현하여 새로운 토큰 스마트 계약에 대하여 평가하였다. 본 논문에서, 엄밀한 표준이 없는 상황에서 작성하여 배포된 스마트 계약들의 현황을 분석하고 관례적 표준을 찾는 정형 명세 기반 방법론을 제시하였다. 이 방법론은 동일한 상황에 처한 이더리움의 다른 표준에도 적용하여 스마트 계약들의 호환성을 높이는데 활용할 수 있을 것이다.
more초록
Ethereum blockchain supports smart contracts based on the ERC-20 standard API so that external applications such as wallets and distributed exchanges can freely send and receive tokens. The ERC-20 standard consists of six essential APIs to implement functions such as checking the account's token balance and sending tokens. It was introduced to ensure compatibility in token transactions, but only the interface is defined and the functional behavior is not rigorously defined. As a result, there was no way to evaluate whether this standard API is properly implemented in a smart contract, and so the existing ERC-20 smart contracts have had one’s own different the interpretations on the API. This resulted in a number of compatibility vulnerabilities. In this paper, to solve this problem, a formal definition for the ERC-20 API function specification is presented, using this definition the de factor standard for the API is specified by analyzing how the existing smart contracts have interpreted and implemented these APIs, and a conformance review method for smart contracts with the de factor standard for ERC-20 API is proposed. First, a formal description on the functional specification of the ERC-20 standard is designed to analyze the existing ERC-20 token smart contracts. For the six essential standard functions, each of 19 detailed functional specifications is defined by describing a precondition on states before a function call and a post-condition on them after the function call where states consist of global variables of the blockchain and function local variables. Second, based on the functional specifications defined above, we analyze the ERC-20 API interpretation and implementation status of the top 100 token smart contracts in the Ethereum ecosystem. To analyze these existing contracts, we use a combination of testing and symbolic execution methods to complement each other’s analysis result. A test method is used to analyze the incompatibility of existing token smart contracts with respect to the functional specification, and a symbol execution method is also used to confirm the compatibility of them. Based on the analysis result, we group tokens showing the same behavior when tested over the 19 functional specifications, and choose the functional API behavior of the biggest group as the de factor standard for ERC-20 API. Third, we are now able to define a functional specification for the de factor ERC-20 API standard, and present a conformance review method for verification of a token smart contract if it conforms to the de factor standard. The conformance review procedure for the de factor ERC-20 API standard is designed based both on the de factor standard and the analysis result on the causes of incompatibility in the existing smart contracts. We evaluate new token smart contracts by implementing tools to support this review procedure. This paper presents a formal specification-based methodology to analyze the status of smart contracts implemented and distributed in the absence of rigorous standards and to find a de factor standard. This methodology will be applicable to other standards for Ethereum that are in the same situation in order to enhance the compatibility of smart contracts on the standards.
more