금융보안원이 블록체인 기반의 '스마트 컨트랙트(스마트 계약)'에 대해 보안 사고를 예방하기 위한 대응책을 준비하고 있다고 밝혔다.
스마트 컨트랙트는 블록체인에 특정 내용을 담은 프로그램을 기록하는 계약 방식으로 이더리움 공동 창시자인 비탈릭 부테린이 고안했다. 계약서 내용을 담은 코드를 개발하고, 이를 블록체인에 배포한다. 코드에 담긴 조건을 만족하면 계약서가 이행된 것으로 간주하게 된다. 이런 과정들도 블록체인에 기록돼 투명성을 보장한다.
'금융정보보호(FISCON) 2019'에서 유재필 금융보안원 융합보안부 핀테크보안팀 차장은 스마트 컨트랙트에 내재된 보안 위협과 이에 대한 금융보안원의 대응 상황을 소개했다.
스마트 컨트랙트는 계약 내용이 자동으로 실행되고, 블록체인 기반의 분산 원장을 활용해 위·변조 가능성을 최소화해준다는 점에서 이점이 있는 방식이다. 그러나 아직까지는 여러 보안 위협이 존재한다는 설명이다.
유재필 차장은 "스마트 컨트랙트는 C 언어, 자바 등 기존 프로그래밍 언어가 아니라 솔리디티, 고 등의 언어로 개발된다"며 "이 언어들은 아직 출시된지 오래되지 않아 버그를 내포하고 있을 가능성이 있다"고 지적했다.
버그가 있는 언어로 코드를 만들게 되면 보안 취약점이 발생할 수 있다. 유재필 차장은 이를 인지하지 못한 채로 개발자들이 타인이 작성한 코드를 그대로 사용하게 되면서 취약점이 확산되는 점을 우려했다.
아직까지 블록체인이 생소한 운영환경이라는 점에서 발생하는 보안 허점도 있다. 유재필 차장은 "A, B, C를 호출한 결과가 순서대로 나타나지 않거나, C에 대해 수수료를 올리면 C만 호출되는 결과가 발생하는 등 블록 순서를 결정하는 '오더링'에서 문제가 발생할 수 있다"며 "해커가 코드에 내포돼 있는 버그를 악용, 밸런스 값을 조절해 금전을 갈취하는 등의 공격을 시도할 수 있다"고 언급했다.
위·변조를 최소화해주는 분산 원장이 보안 패치를 어렵게 하는 요인으로도 작용한다고 언급했다. 패치 파일을 제공하면 이용자가 내려받는 일반 소프트웨어와 달리, 스마트 컨트랙트는 구조 상 보안 패치를 위해 모든 서비스를 일시 중단해야 한다는 것.
이와 함께 생겨난지 얼마 되지 않은 서비스인 탓에 정형화된 취약점 점검 방법도 존재하지 않는다는 점도 보안 이슈 중 하나로 짚었다.
때문에 스마트 컨트랙트에 존재하는 보안 위협을 확인하기 위해서는 사람이 직접 코드 전반을 관찰하면서 취약점을 확인하는 방법, 현재 공개돼 있거나 자체 개발한 취약점 점검 도구를 활용하는 방법 정도가 사용되고 있다고 덧붙였다.
관련기사
- 中 블록체인 '스마트 계약 기술' 사법영역 첫 적용2019.11.10
- "스마트 컨트랙트만 팠더니...블록체인 시장 보였다"2019.11.10
- 아이콘, 메인넷 3.0 업데이트... 스마트 컨트랙트 본격 가동2019.11.10
- KT, 블록체인으로 로밍 정산 기술 개발2019.11.10
이런 난관 때문에 금융기관들이 스마트 컨트랙트의 보안 위협에 대해 완벽히 대응하기 어려운 상황이다. 금융보안원은 우선 스마트 컨트랙트를 지원하는 환경 중 하나인 하이퍼레저 패브릭에 대해 보안 점검 도구를 개발, 제공하는 것을 고려할 방침이다.
유 차장은 "올해 중순부터 금융보안원은 스마트 컨트랙트의 취약점에 대해 산학 과제 등을 토해 지식을 쌓아왔고, 현재는 하이퍼레저 기반 취약점 점검 자동화 도구를 개념검증하는 단계"라며 "이 과정이 끝나면 금융사의 수요와 예산 상황 등 시장 여건을 고려해 이 도구를 제공하는 것에 대해 검토할 수 있을 것"이라고 전망했다.