'안전한 스마트 컨트랙트 개발, 시작이 모든 것이다'
'안전한 스마트 컨트랙트 개발, 시작이 모든 것이다'
  • 박윤 기자
  • 승인 2018.08.02 09:09
  • 댓글 0
이 기사를 공유합니다

김종호 해치랩스 대표 "스마트 컨트랙트 오딧과 쉬운 디앱 개발 환경이 중요"

 

김종호 해치랩스 대표
김종호 해치랩스 대표

블록체인 분야에서 터지는 사건 사고들 중 다수가 스마트 컨트랙트와 관련한 것들이다. 최근만 해도 국내 업체가 주도하는 퍼블릭 블록체인 플랫폼인 아이콘이 스마트 컨트랙트 오류로 곤욕을 치렀고, 탈중앙화 거래소인 뱅코 역시 스마트 컨트랙트 문제로 해킹을 당해 체면을 구겼다.

스마트 컨트랙트는 계약 조건에 부합하면 제3자 개입 없이 계약 내용이 소프트웨어 코드에 의해 자동으로 실행되도록 하는 것으로 블록체인 기반 애플리케이션인 디앱(Dapp)의 핵심 중 하나로 꼽힌다. 디앱을 떠받치는 중요한 프로세스 대부분이 스마트 컨트랙트에 기반하고 있다. 스마트 컨트랙트는 데이터가 한번 저장되면 위변조가 어려운 블록체인 네트워크와 맞물려 돌아가기 때문에 한번 만들어 배포하고 나면 사실상 수정이 불가능한 구조다. 시작 단계부터 신경 쓰지 않으면 골치아픈 일을 많이 겪을 수밖에 없다. 전문가들이 스마트 컨트랙트의 신뢰성에 대해 강조하고 또 강조하는 이유다.

그런데도 스마트 컨트랙트를 둘러싼 사건 사고는 끊이지 않고 일어나고 있다. 나름 이름 있는 회사들도 사건 사고에서 자유롭지 않은 것이 현실이다.

이에 대해 스마트 컨트랙트 오딧(Audit) 전문업체인 해치랩스 김종호 대표는 스마트 컨트랙트가 기존 소프트웨어 프로그래밍과는 다른 패러다임인 데다 산업도 초기 단계여서 에러가 상대적으로 많이 나올 수 있는 상황이라고 진단한다.

김 대표는 디앱들이 가장 많이 올라가 있는 블록체인 플랫폼인 이더리움을 예로 들었다. 그에 따르면 이더리움 기반 스마트 컨트랙트 개발에선 기존 소프트웨어 프로그래밍에서 고민할 필요가 없었던 가스(Gas)가 변수로 등장한다.

가스는 이더리움 블록체인 상에서 거래를 할 때 사용자가 지불해야 하는 수수료 개념으로 이더리움 스마트 컨트랙트의 경우 트랜잭션 한번에 최대로 쓸 수 있는 가스량(블록 가스 리밋)이 정해져 있다. 이같은 상황은 기존 프로그래밍 스타일에 익숙해진 개발자들에겐 장벽일 수 있다.

김 대표는 "하나의 트랜잭션에 블록 가스 리밋보다 많은 가스를 쓰도록 프로그래밍했다면 이 트랜잭션은 영원히 블록에 담길 수 없는 것"이라며 "가스 리밋을 초과하는 설계를 했다면 돈이 묶이게 될 수도 있다"고 지적했다.

디앱 생태계는 아직 초기라 스마트 컨트랙트 개발에 경험 많은 개발자 풀(Pool)이 많지 않다. 에러가 많을 수밖에 없는 것이 현실이다. 문제는 한번 실수로 감당해야 할 충격이 엄청나다는 것이다. 에러가 반복되면 금전적인 손실은 물론이고, 블록체인 생태계 전반에 걸쳐 신뢰의 위기기 일어날 수 있다.

그런만큼 현재로선 시작 단계에서 외부 전문가들과 협력해 스마트 컨트랙트의 무결성을 철저하게 체크하는 것이 중요하다고 김 대표는 강조한다. 그가 스마트 컨트랙트 오딧을 해치랩스의 주특기로 정한 것도 이 때문이다.

그는 "처음 설계에서 발견하지 못한 스마트 컨트랙트 오류는 경제적으로 매우 큰 손실로 이어질 수 있다"면서 스마트 컨트랙트가 제대로 프로그래밍됐는지 감사하는 스마트 컨트랙트 오딧의 중요성을 거듭 강조했다. 또 “300억원 가량을 모은 ICO 프로젝트가 스마트 컨트랙트를 잘못 짜서 투자받은 돈을 탈취당하거나 사용할 수 없다면 토큰 자체에 대한 손실을 넘어 붕괴된 경제 시스템을 새로 만들어야 하는 문제에 직면한다"면서 "신뢰를 한번 잃은 커뮤니티에서는 사람들의 참여를 보장할 수 없다"고 지적했다.

스마트 컨트랙트에 담긴 취약점을 알아내려면 스마트 컨트랙트가 돌아가는 EVM(Ethereum Virtual Machine)에서 프로그램을 어떻게 다루는지 이해할 필요가 있다. 김 대표는 "제대로 이해하지 못한 상태에서 프로그래머들이 스마트 컨트랙트를 개발하는 것이 문제"라며 "경험이 없다면 만들지 말거나 전문가에게 도움을 구하는 것이 맞다"고 말했다.

해치랩스가 제공하는 스마트 컨트랙트 오딧은 2단계로 이뤄진다.

1단계는 스마트 컨트랙트만 시큐리티 툴을 이용한 검사다. 시큐리티 툴은 알려진 공격에 대한 취약점을 자동으로 검출해준다.

2단계는 1단계에서 잡지 못한 오류를 전문가들이 수작업으로 검사한다. 이 과정에서는 해치랩스는 코드를 테스트 하기 위해 ‘테스트 코드’를 만든다. 테스트 코드는 A가 B에게 이더리움을 100개 보냈을 때, B의 잔고에 A에게서 받은 이더리움 100개가 있는지 확인하는 등 여러가지 케이스를 다룬다.

해치랩스는 스마트 컨트랙트 오딧에서 보안 취약점 외에 의도대로 구현됐는지, 가스에 최적화된 설계인지 등도 체크한다.

가스 최적화는 가스를 적게 쓰면서도 원하는 프로그램을 만드는 것이 핵심이다. 김 대표는 "가스비가 최적화돼 있지 않으면 사용자들이 프로그램을 사용하면서 가스비를 많이 지불해야 하므로, 최대한 가스비를 최적화 시키는게 좋다"고 말했다.

해치랩스는 단순한 검사 서비스 외에 개발자들이 스마트 컨트랙트를 쉽게 개발할 수 있도록 지원하는 솔루션도 준비하고 있다.김 대표는 "스마트 컨트랙트 오딧만큼이나 스마트 컨트랙트를 쉽게 개발할 수 있는 것이 중요하다”며 "이를 지원하는 제품을 9월 선보일 예정"이라고 말했다.


관련기사

댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.