최근 이오스(EOS)를 발행한 블록닷원(Block.One)은 $10,000 달러의 상금을 걸고 버그바운티를 진행했습니다.
이 과정에서, 중국의 보안업체 360 에서는 매우 크리티컬한 버그를 발견하고 블록닷원에 제보를 통하여, 해당 버그를 해결하였습니다.
위 버그가 한때 FUD로 작용하기도 했습니다만, 조금만 생각해보면 버그는 이오스에게 큰 영향을 미치지 못할 가능성이 많습니다.
컴퓨터 공학관점에서 버그(Bug)란 프로그램을 만드는 과정에서, 개발자의 실수 등으로 인하여 생기는 비정상적인 프로그램 실행 등을 통해 의도치 않은 결과를 나오는 것을 말합니다.
때문에, 버그를 이용하여 금전적인 이득 등을 취하거나 해당 프로그램이 제공하는 서비스를 방해하는 등 악의적인 행동을 할 수 있어 많은 프로그램 또는 서비스 개발회사에서는 버그바운티 제도를 운영하고 있습니다.
버그바운티 제도는 해당 프로그램(또는 이를 활용한 서비스) 에 버그를 신고하면 버그가 미치는 영향등에 따라 상금을 줍니다. 구글과 같은 해외 대기업부터 한글과컴퓨터 같은 국내기업까지 많은 기업들이 이 제도를 활용하고 있습니다.
버그가 없는 프로그램이 과연 존재할까요? 이를 증명하기는 매우 어렵고, 프로그램 크기가 커질수록 거의 불가능에 가깝다에 한표 드립니다. 이유는 프로그램을 작성하다 보면 그 내용이 많아 질수록 검증하기가 매우 어렵기 때문입니다.
하지만 수많은 테스트와 퍼징 기법등을 활용하여 다양한 입력값을 프로그램에 넣어보며 테스트 할 수록 버그가 줄어든 프로그램을 얻을 수는 있습니다.
버그를 없애야하는 대표적인 프로그램은 달 탐사 로켓 등에 들어가는 프로그램일 것입니다. 예전에 NASA에서 쏘아올린 인공위성에 코드 한줄의 버그로 인공위성이 폭발한 사건이 있었다고 합니다.
현재 여러분이 사용하시는 컴퓨터 운영체제(OS) 혹은 웹브라우저는 무엇인가요? 윈도우, 리눅스, IE, 사파리, 크롬 등인가요? 그렇다면 해당 프로그램(소프트웨어)의 업데이트가 얼마나 자주 일어나는지 알고 계신가요?
프로그램들은 업데이트 과정에서 버그를 찾아 없애거나, 기능개선 등을 합니다. 이러한 버그를 사전에 알고 이를 통한 공격을 우리는 제로데이 공격(Zeroday Attack)이라고 부릅니다. (버그 = 취약점) 즉, 해당 업데이트(패치)가 이루어지지 않으면 언제든 공격당할 수 있다는 것이죠.
우리가 사용하는 수많은 유명한 프로그램(소프트웨어) 조차 수 많은 버그를 가지고 있는것이 현실입니다. 따라서 지속적인 업데이트를 통하여 해당 버그를 없애고 있습니다.
만약, 이오스에 아주 치명적인 버그가 발견되었다고 가정해 봅시다.
첫번째 경우는 큰 문제가 없습니다.
두번째 경우도 어느정도 혼란은 있을 수 있지만 해결가능 합니다. 이는 이오스가 대의민주주의 방식으로 BP들을 선출하여 동작하는 블록체인이기 때문에, 충분히 버그와 관련된 이슈를 커뮤니티 구성원들과의 소통을 통하여 금전적인 악용을 무효화 시킬 수 있기 때문입니다.
문제가 되는 것은 세번째 경우입니다. 해당 서비스를 이용하지 못할 경우, 이와 관련되어 금전적 손실 등도 발생할 수 있기 때문입니다.
이는 버그(Bug) 뿐만 아니라 디도스공격(DoS, DDoS) 등을 통해서도 발생할 수 있는 사안입니다.
이에, 블록닷원과 이오스 BP 후보들은 수많은 DDoS 공격에 대한 대비 훈련을 진행 하고 있습니다. 또한 블록닷원은 버그를 없애기 위한 버그바운티 제도 를 운영하고 있으며 향후 BP후보들과 함께 지속적인 버그 업데이트 및 이오스 업데이트(기능적 측면)를 진행 할 것입니다.
혹시 이더리움과 이더리움클래식이 왜 나누어지게 되었는지 아시나요? 이는 DAO라고 하는 이더리움의 초기 버그로 인해 발생한 문제 때문 입니다.
이 사태로 인해, 해당 버그를 악용한 해커는 금전적 이득을 취하게 되었고 이를 인정하고 계속 진행된 블록체인이 이더리움 클래식(ETC) 이며, 해커의 악용을 인정하지 않은 블록체인이 현재의 이더리움(ETH) 입니다.
즉, 버그로 인하여 하나의 블록체인이 2개의 블록체인으로 나누어지는 안타까운 일이 발생한 것입니다. (물론 ETC를 기습 상장한 모 거래소가 있었기에 현재까지 ETC가 발전되어 가는것일 수도 있습니다)
혹시 위 내용 중 잘못된 내용이 있다면 제보 부탁드립니다~! ^^;;