가상화폐 비트코인과 이더리움
지금의 동전과 지폐가 화폐 역할을 하기 전에는 조개껍데기나 물물교환으로 화폐를 대신했다. 화폐는 그 이후로도 많은 변화를 거쳐, 이제는 우리가 눈으로 보거나 만질 수 없는 가상화폐가 나왔다. 가상화폐인 비트코인, 이더리움이 지금의 동전과 지폐를 대신할 미래 화폐가 되지 않을까 하는 관심이 주목된다. 이론적으로 ‘거의’ 조작할 수 없으며 저장된 기록이 ‘거의’ 영구적으로 남을 수 있다는 특성이 있기에 보안 학계를 포함한 많은 학계 그리고 업계에서 특히나 화두가 되고 있다. 비트코인 후 블록체인의 기술을 이더리움 중심으로 소개하며 해결해야 할 기술적 이슈들과 동향에 관해 살펴본다.
가상화폐, 비트코인 특징과 단점
가상화폐로 거래할 때 컴퓨터에서 가상화폐가 생성되기 때문에 보안에 허점이 있지 않을까 하는 생각을 한 번쯤 해봄 직하다. 블록체인은 비트코인 등의 가상화폐 혹은 암호화폐 시스템의 근간이 되는 기술이다. 블록은 주기적으로 생성되며 블록체인에 추가된다. 블록에는 시간과 난수, 전 블록의 해쉬, 그리고 거래내용들이 포함된다. 여기서 말하는 시간은 블록이 생성된 시간을 의미한다. 시간을 기록함으로써 공격자가 해킹하지 못하게 하는 용도로 쓰인다. 난수란 비트코인의 경우 4바이트 값으로서 SHA256을 이용하여 해쉬값을 조정하는 데 쓰인다. 전 블록의 해쉬는 블록을 가리키며, 전 블록을 가리켜야 블록 간의 연결이 되기 때문에 필요한 요소이다. 비트코인은 블록체인의 가장 좋은 예이기도 하지만 몇 가지 단점들이 존재한다. 첫 번째는 튜링 미완전성이다. 단순하게 말하면, while문과 for문 등을 이용할 수가 없다. 비트코인 블록체인에서 허가된 단순한 명령 정도만 실행시킬 수 있다. 두 번째는 가치의 불투명성이다. 비트코인을 화폐로 본다면 그 가치를 확실히 알 수 있어야 한다. 예를 들어 x 달러를 y 비트코인으로 환전했다고 가정한다. 30일 뒤에 y 비트코인을 달러로 환전하려고 할 때 y 비트코인과 상응하는 달러의 가치를 알아야 한다. 하지만 쉽게 알 방법이 존재하지 않는다. 세 번째는 상태의 단순성이다. 비트코인의 경우 사용된 비트코인과 사용하지 않은 비트코인, 두 가지 상태로만 나뉜다. 하지만 실제 상황에서는 수많은 상태가 존재할 수 있다. 비트코인으로는 많은 경우의 수를 전부 구현하기 힘들거나 불가능하다. 네 번째는 검증 시간이다. 비트코인의 경우 한 블록이 생성되는데 대략 10분의 시간이 소요된다. 검증의 수가 늘어날수록 거래의 신용도도 높아진다. 큰 거래를 할 시에는 신뢰할 수 있는 검증을 높이기 위해 오랜 시간을 기다려야하는 번거로움이 따른다.
블록체인의 단점을 보완한 이더리움
비트코인 이후 많은 블록체인 기반의 전자화폐가 생겨났으며 대표적으로 이더리움이 있다. 이더리움은 비트코인의 단점들을 보완하고 튜링 완전한 컴퓨팅 기능을 넣음으로써 블록체인상에서 프로그램을 실행시킬 수 있는 기능을 더했다. 이더리움은 2013년 Thiel Fellow인 Vitalik Buterin에 의해 제안되었다. 2015년 중순, 첫 공개가 된 후, 많은 찬사를 받으며 단기간에 두 번째로 규모가 큰 가상 화폐로 자리매김했다. 이더리움의 경우 비트코인의 단점을 보완하면서 단순히 A에서 B로의 거래를 기록하는 것이 아닌 컴퓨팅 기능을 추가함으로서 큰 의미를 가진다. 블록체인에서 프로그램을 구현할 수도 있고 실행시킬 수도 있다는 특성이 있다. 이더리움도 비트코인의 지갑과 동일한 개념인 account가 존재한다. 하지만 비트코인과는 다르게 두 가지 종류의 account가 존재한다. Externally Owned Account(EOA)는 주소가 존재하며, 이더리움의 통화단위인 이더(Ether) 등을 포함한다. Contract Account는 이더리움의 계정 중 하나로, 블록체인 내부에 존재한다. 코드를 포함할 수도 있으며 블록체인 외부 혹은 내부에서 코드를 실행시킬 수도 있고, 데이터를 저장할 수 있다. 이더리움 블록체인의 경우 이더리움 버추얼 머신(Ethereum Virtual Machine)이 존재한다. 실제로 이더리움에는 Solidity와 Serpent 등과 같은 프로그램을 구현할 수 있다. 그 프로그램을 구현한 뒤 컴파일을 하면 바이트코드로 변환된다. 블록체인은 ‘거의’ 위변조 불가능하며 기록이 ‘거의’ 영구적으로 남을 수 있는 특징이 있다. 이더리움상에 코드를 신용할 수 있고, 한번 저장된 코드 및 데이터는 ‘거의’ 영구적으로 남는다는 튜링 완전한 컴퓨팅 기능의 장점이 있다.
이더리움의 취약점을 이용한 공격
이더리움은 블록체인 기반의 컴퓨팅 머신을 구현하여서 혁신적인 변화를 불러왔지만 그만큼 많은 공격을 당했다. 피해 규모 면에서 가장 쟁점이 된 2건의 공격이 있다. 첫 번째는 'DAO Attack'이다. 2016년 4월, 이더리움 재단에서는 이더리움의 장점을 살려 크라우드 펀딩을 시작했다. DAO라는 통화단위를 이용하여 투자자들은 투자한 액수만큼 DAO를 소유할 수 있게 했다. DAO를 소유한 투자자들이 투자를 받고자 하는 사업체의 제안서를 검토하고 DAO를 투자하는 방식이다. 이더리움의 투명성을 이용하여 투자자들은 자신이 투자한 돈의 유동을 쉽게 알 수 있게 된다는 장점이 있다. 이 크라우드 펀딩은 엄청난 성공을 거두었지만, 6월 18일, 해커들에 의해서 The DAO에 보관된 360만 개 이상의 이더들이 해커의 계정으로 옮겨졌다. 이 사건으로 당시 1이더의 가치는 20달러에서 이틀 만에 13달러로 하락했다. 이더를 A에서 B로 옮겨주는 단계에서 옮겨진 값을 바로 수정하지 않는 취약점으로 인해 재귀함수 공격에 취약점이 있었다. 탈 중앙화를 이더리움의 장점이라고 하던 재단의 행보에 문제가 발생할 수밖에 없었다. 두 번째 사건은 'OPCODE DDOS'이다. 이더리움 코드는 앞서 말한 것처럼 Solidity나 Serpent라는 프로그래밍 언어로 구현되며 그 코드가 바이트코드로 변환된다. 계산이 많은 연산부호 같은 경우 대체로 가스 비용이 비싸다고 예상할 수 있다. 하지만 많은 연산부호가 존재하기 때문에 모든 연산부호에 적절한 가스 비용을 부여하긴 어렵다. 그 취약점을 이용하여 공격자들은 EXTCODESIZE라는 연산부호로 이더리움 네트워크를 공격했다. 30~60초 내로 실행이 되어야 할 프로그램이 네트워크 마비로 인해, 5시간 이상 지체되기도 하였으며 결제가 취소된 적도 있었다.
이더리움의 이용사례
이더리움은 스마트 컨트랙, 즉 프로그램을 저장하고 실행시킬 수 있는 특징이 있으므로 많은 응용서비스에서 이용될 수 있다. ETRI에서는 이더리움을 이용하여 IoT 기기 인증과 제어를 하는 시제품을 구현해보았다. 라즈베리 파이를 이용하여 전기소모량을 모니터링하는 스마트 미터, 스마트 에어컨, 그리고 스마트 전구를 시뮬레이션하였다. 스마트미터는 코드를 이용하여 실시간으로 미터 값(meter), 공개키(pubKey), 데이터 사인(data_sign)값을 블록체인에 기록했다. 그리고 스마트폰을 사용하여 이용자가 에어컨과 전구의 정책을 설정한다. 예를 들어 전기 사용량을 일정 부분 넘기면 절전상태로 바뀌는 등이다. 이용자가 에어컨의 절전점을 300KW로 블록체인에 설정해놓으면 에어컨 기기는 실시간으로 미터기의 값과 에어컨 설정값을 비교한다. 여기서 에어컨 기기는 미터기의 값을 공개키와 데이터 사인값을 이용하여 인증할 수 있다. 만약 공격자가 임의의 데이터를 블록체인에 기록한다면 기기는 데이터가 잘못되었다는 것을 공개키와 데이터 사인값을 확인하여 알 수 있다. 시제품 구현을 통해 얻은 시사점은 거래시간에 대한 문제와 거래시간의 불확실성이다. 한 검증 시간당 12초 정도가 걸려, 비트코인보다 짧은 시간이지만 시간에 민감한 도메인에서는 몇십초를 기다리는 데엔 무리가 있다. 또, 이더리움의 검증시간을 완벽하게 확실할 수는 없다. 위 문제점을 해결하기 위해서는 컨소시엄 블록체인이나 다른 형태의 블록체인을 고려해야 할 필요가 있다. 이더리움은 많은 비트코인의 단점을 보완하며 튜링 완전성을 보장하는 컴퓨팅 기능을 이용하여 일반적인 거래장부 외에도 데이터를 저장할 수 있으며 프로그램도 실행시킬 수 있다. 사물인터넷에서 기기제어나 투표 서비스 등과 같이 광범위한 응용서비스에 활용될 수 있다. 다양한 분야에서 이용사례가 늘고 있어, 더 많은 이용사례가 생겨날 것으로 예상하는 가운데, 국내에서도 블록체인에 관한 더 많은 연구와 개발이 시급한 실정이다.
※ 논문 다운받기(논문 저자 : 정보보호연구본부 허세영 연구원 / 조상래 책임연구원 / 김수형 책임연구원·실장)
- 본 글은 전자통신동향분석 「비트코인 후 블록체인」논문을 재구성하여 작성했습니다. 자세한 내용은 논문을 확인해주시기 바랍니다. -