블록체인 및 스마트 컨트랙트는 최근 떠오르고 있는 기술 분야로, 다양한 방식으로 금융 및 산업 분야에 적용하기 위한 시도가 이루어지고 있습니다. 신생 기술 분야인 만큼 해결해야 할 다양한 도전과제들이 존재하는데요, 블록체인 기술 및 시스템의 여러 문제점을 해결하기 위하여 다양한 아이디어들을 제시하는 블록체인 경진대회들이 꾸준히 개최되고 있습니다. 저희 CSRC BLEEP 팀(2020년 부터 현재 까지 정부사업(과학기술정보통신부, IITP)인 ‘블록체인 에뮬레이션을 위한 모듈형 라이브러리 및 엔진 기술 개발’ 사업을 수행하고 있음)은 지난 7월에 탈중앙거래소 플랫폼 개발회사인 TAEBIT에서 주최한 ‘글로벌 DeFi 해커톤’ [1]에 참여하여 1등 상을 수상하였습니다.
본 블로그 시리즈는 저희 팀이 본 대회에서 프로젝트를 수행한 과정을 공유하여 스마트 컨트랙트 관련 개발에 입문하는 분들께 도움을 드리고자 합니다. 이번 글에서는 저희 팀이 참여한 TAEBIT ‘글로벌 DeFi 해커톤’에 대한 간략한 소개를 드리고 해당 대회를 수행하면서 느낀 점을 이야기해드리려고 합니다.

대회 소개
DeFi(Decentralized Finance)란 블록체인 네트워크 위에서 스마트 컨트랙트를 활용하여 작동하는 탈중앙화된 금융 시스템을 통칭합니다. DeFi는 은행과 같은 중앙화된 중계자를 없애고, 거래 당사자들 간의 거래를 프로그래밍적으로 보장합니다. 다양한 DeFi 시스템 중 탈중앙화된 방식으로 기존 블록체인 거래소처럼 화폐간의 교환을 수행하는 시스템을 탈중앙화 거래소(Decentralized Exchange, DEX)라고 합니다. DEX는 중앙화된 거래소의 불투명성 및 중앙 서버의 보안 취약점을 이용한 해킹 등의 문제를 회피할 방법으로 제시되었습니다.
DEX는 중앙 서버에 대한 해킹 위험성을 회피할 수 있다는 장점이 존재하지만, 아직 초기 단계의 기술로서 많은 문제점이 여전히 남아있습니다. 이번 개최된 ‘글로벌 DeFi 해커톤’은 DEX에서 해결해야 할 도전과제를 중심으로 다양한 아이디어 및 디자인을 제시하는 대회였습니다. 예시 주제로는 단일 토큰 스테이킹, 조건부 거래 기능, 거래가 가격에 미치는 영향 최소화 등의 주제가 제시되었습니다.
본 대회는 7월 12일부터 7월 25일까지 총 14일간 진행되었습니다. 해커톤 특성상 짧은 시간 동안 집중하여 아이디어를 제안하고, 시연할 프로토타입을 제작하여 테스트하면서 탈중앙화 금융(Decentralized Finance) 시스템에 대한 이해도를 효과적으로 높일 수 있었다고 생각합니다.

대회 준비 과정
본 대회의 첫 3일간은 아이디어 피칭 기간이었고, 해당 기간 동안 수행할 프로젝트를 결정하고 관련 자료를 조사하였습니다. 주최 측 사이트의 DeFi 관련 튜토리얼 및 스마트 컨트랙트 개발 시 사용되는 다양한 도구 API를 참고하여 스마트 컨트랙트 개발 관련된 지식을 학습할 수 있었습니다 [2].
저희 BLEEP 팀은 주최 측에서 제시한 예시 주제 중 하나인 ‘단일 토큰 스테이킹에 대한 구현’을 중심 주제로 하였습니다. 저희는 Request Queuing 서버를 이용한 단일 토큰 스테이킹 시스템을 설계하였습니다.
스테이킹이란 DEX에 암호화폐의 일정량을 예치시키는 행위입니다. DEX 서비스는 기존 금융체계의 은행과 유사하게 화폐교환을 원활하게 수행하기 위하여 충분히 많은 양의 화폐를 보유하고 있어야 합니다. 사용자들은 DEX에 자신이 보유한 암호화폐를 스테이킹하여 자금을 제공하고, 대신 화폐교환 시 발생하는 수수료 일부를 받습니다. 스테이킹은 일반적으로 두 개의 암호화폐를 페어링하여 예치하고 지분을 받는 형식으로 이루어집니다. 이는 DEX 서비스 내 암호화폐 간의 환율이 자동화된 시장 조성 (Automated Market Maker, AMM [3]) 알고리즘에 의하여 결정되기 때문입니다. AMM은 DEX 내부 암호화폐 쌍의 비율로 특정 암호화폐 쌍의 환율을 결정하는데, 스테이킹으로 인한 추가 자금 유입이 해당 화폐 쌍의 비율을 깨트리지 않게 하도록 두 개의 예치할 암호화폐를 환율 비율에 맞추어 예치하는 것입니다.
단일 토큰 스테이킹은 DEX에서 일반적으로 사용하는 토큰 쌍에 대한 스테이킹 대신 하나의 토큰만을 스테이킹하는 메커니즘으로, DEX의 예치할 자산 토큰 쌍에 대한 선택의 복잡성을 해결할 수 있는 메커니즘입니다. 저희 팀은 단일 토큰 스테이킹 시스템을 구현하는데 중간 서버를 두고 요청을 처리하는 방식을 설계했습니다. 가스비 절감 및 조건부 거래 기능 구현 또한 염두에 두었기 때문에 중간 서버를 두고 요청을 모아서 처리하는 방식으로 개발하였습니다.
수상 소감
짧은 대회 기간 동안 아이디어 회의를 하고 시스템을 디자인하여 1등 상을 받은 것에 대하여 보람을 느꼈습니다. 또한, 기존에 수행하던 연구가 블록체인 하위 시뮬레이션 시스템 위주였기 때문에 경험할 기회가 없었던 스마트 컨트랙트 레벨의 개발을 경험할 수 있었고, 블록체인 상위 애플리케이션 계층의 개발 시 고려할 사항을 배울 수 있었습니다. 향후 스마트 컨트랙트 개발 관련 취약점 및 스마트 컨트랙트를 이용한 금융 시스템 보안 문제 등을 연구할 때 도움이 될 수 있는 좋은 경험이었습니다.
글을 마치며
블록체인 탈중앙화 금융 시스템은 아직 초기 단계이고, 많은 개발자가 관심을 가질수록 더 나은 금융 시스템으로 발전할 수 있다고 생각합니다. 대회를 수행하면서 함께 참여한 팀원과 소통을 하면서 좋은 아이디어를 낼 수 있었고, 향후 개최될 다양한 블록체인 대회들에서 좋은 아이디어가 나오면서 블록체인 및 스마트 컨트랙트 생태계가 더 나은 방향으로 발전할 수 있을 것이라고 생각합니다. 다음 글에서는 저희 팀이 본 대회에서 개발한 프로젝트에 대한 기술적인 내용을 담은 글로 찾아뵙도록 하겠습니다.
※ 본 대회 참여는 IITP 사업 (과제명 : N01210015 블록체인 에뮬레이션을 위한 모듈형 라이브러리 및 엔진 기술 개발, 2020~2021년) 수행의 일환으로 참여하였음.
[1] 글로벌 DeFi 해커톤 (https://taebit.com/hackathon)
[2] 글로벌 DeFi 해커톤 튜토리얼 (https://taebit.gitbook.io/taebit-global-defi-hackathon/undefined)
[3] AMM (https://coinmarketcap.com/alexandria/article/what-are-automated-market-makers)
유익한 글 감사합니다.
감사합니다. 2부에서는 본 대회에서 개발한 프로젝트에 대한 기술적인 내용으로 찾아뵙도록 하겠습니다.