Abstract
Blockchain technology has been highly evaluated for its contracts (contracts for sale, real estate contracts) because of its excellent security, including integrity and non-repudiation. In a blockchain, these contract services can be developed using a technology called a smart contract, and several blockchain platforms provide a programming language for developing smart contracts. Bitcoin and Ethereum, typical blockchain platforms, provide the Bitcoin Scripts and Solidity languages. Using these programming languages, we can develop the smart contract, a digital contract that can be processed dynamically. Smart contracts are being developed in a variety of areas, but studies of designs based on a blockchain are insufficient. In this paper, we propose a meta-model and a static/dynamic design method based on Unified Modeling Language (UML) for smart contracts based on Ethereum. We propose a method for static design attributes and functions of smart contracts, and propose a technique for designing structures among contracts. Dynamic design proposes a technique for designing deployment, function calls, and synchronization among smart contracts, accounts, and blocks within a blockchain. Experiments verify the validity of the design method by applying the static/dynamic design method through real estate contracts.
블록체인 기술은 무결성과 부인 거부 등의 뛰어난 보안성으로 계약 분야(매매 계약, 부동산 계약)에 활용도가 높게 평가되고 있다. 블록체인에서 이러한 계약 서비스는 스마트 컨트랙트라는 기술을 활용하여 개발 가능하며 여러 블록체인 플랫폼들이 스마트 컨트랙트를 개발하기 위한 프로그래밍 언어를 제공한다. 대표적인 블록체인 플랫폼인 비트코인과 이더리움은 비트코인 스크립트와 솔리디티 언어를 제공한다. 이러한 프로그래밍 언어를 이용하여 동적으로 처리될 수 있는 디지털 계약인 스마트 컨트랙트를 개발할 수 있다. 그러나, 다양한 계약 분야에서 스마트 컨트랙트의 개발이 진행되고 있으나 블록체인 기반의 설계를 위한 연구가 미흡한 상황이다. 이에 본 연구에서는 이더리움 기반으로 스마트 컨트랙트를 설계하기 위한 메타모델 및 UML 기반의 정적/동적 설계 기법을 제안한다. 정적설계에서는 스마트 컨트랙트의 속성과 기능을 설계하기 위한 기법을 제안하며, 그리고 컨트랙트들 간의 구조를 설계하기 위한 기법을 제안한다. 동적설계에서는 블록체인 내의 스마트 컨트랙트, 계정, 블록들 간에 배포, 기능 호출, 동기화를 설계하기 위한 기법을 제안한다. 실험은 부동산 계약 사례를 통해 정적/동적 설계 기법을 적용하여 설계 기법의 타당성을 검증한다.