블록 체인(blockchain)이 공격 당하고 있다.

가상화폐 및 스마트 계약(smart contract) 플랫폼에 점점 더 많은 보안 허점이 나타나고 있으며 일부는 근본적인 문제로 보인다.

1년 전만해도 이같은 시나리오는 대부분 이론적이었다. 그러나 최근 발생한 이더리움 클래식(Ethereum Classic)에 대한 소위 51% 공격은 초기 지분을 높인 블록체인에 대한 일련의 공격 중 한 사례 일뿐이다.

해커들은 2017년 이래로 주로 가상화폐(cryptocurrency) 거래소(exchange)를 통해 공개적으로 밝혀진 부분만 약 20억 달러대 가상화폐를 훔쳐왔다. 이들은 정교한 사이버 범죄조직으로 분석업체에 따르면 두개 그룹에서만 거래소를 통해 약 10억 달러를 훔쳤다.

블록체인은 허위 거래도 기록을 되돌릴 수 없기때문에 도둑에게 특히 매력적이다. 블록체인에 고유한 보안 기능이있는 것과 마찬가지로 취약점이 있음은 오랫동안 알려져 왔다. 마케팅 슬로건으로 이 기술을 ‘해킹 불가능하다’고 일컫는 것은 잘못된 것으로 드러나고 있다.

블록체인 해킹

비트코인(Bitcoin)이 10년 전에 등장한 이후 지난 한 해 새로운 가상화폐 프로젝트가 폭발적으로 증가했다.

블록체인(blockchain)은 최신 버전의 복사본을 저장하는 컴퓨터 네트워크에 의해 유지되는 암호화 데이터베이스다. 블록체인 프로토콜은 노드라고하는 네트워크의 컴퓨터가 새 트랜잭션을 확인하고 이를 데이터베이스에 추가하는 방법을 지시하는 일련의 규칙이다. 일반적으로 노드 절반 이상이 트랜잭션이 유효하다는 것을 동의해야한다. 이 프로토콜은 암호화, 게임이론에 다라 노드가 개인 이익을 위해 공격하는 대신 네트워크를 보호하기위한 인센티브를 부여한다. 올바르게 설정된 경우, 이 시스템은 허위 거래를 추가하는 것은 매우 어렵고 비용이 많이 들지만, 유효한 거래를 확인하는 것은 비교적 쉽다.

이 기술이 금융 등 많은 산업 분야에 전파되고 있다. 뉴욕 증권거래소 소유자 피델리티 인베스트먼트(Fidelity Investments)와 인터콘티넨탈 익스체인지(Intercontinental Exchange) 뿐만아니라 중앙 은행조차도 이제는 새로운 디지털 형태의 자국 통화에 이 기술을 적용하려고한다.

그러나 블록체인 시스템이 복잡할수록 설정하는 동안 실수를하는 방법이 많아진다. 이달 초 Zcash는 사용자가 개인적으로 거래 할 수 있도록 매우 복잡한 수학을 사용하는 가상화폐 프로토콜의 암호화 결함을 비밀리에 고쳤다고 밝혔다.

독자적으로 가상화폐를 교환하거나 노드를 실행하려면 취약점을 포함 할 수있는 소프트웨어 클라이언트를 실행해야한다. 지난 9월에 비트코인의 주요 클라이언트 개발사 비트코인 코어(Bitcoin Core)는 시스템에서 허용하는 것보다 더 많은 버그를 수정해야했다.

해킹의 대부분은 블록체인 자체에 대한 공격이 아니라 거래소에서 사람들이 가상화폐 구입하고 거래하고 보관하는 웹 사이트에서 발생했다.

51 % 공격 현실화

이더리움 클래식에 대한 51 % 공격이 최근 발생했다.

51 %의 공격 가능성은 대부분의 가상통화에 내재해 있다. 대부분은 트랜잭션 확인을위한 프로토콜로 작업 증명을 사용하는 블록체인을 기반으로하기 때문이다. 채굴, 마이닝이라고도 하는이 프로세스에서 노드는 새로운 트랜잭션에 대한 정보를 데이터베이스에 추가할만큼 충분히 신뢰할 수 있음을 증명하기 위해 방대한 양의 컴퓨팅 성능을 소비한다. 어떻게든 네트워크의 마이닝 파워의 지배권을 얻은 채굴자는 블록체인의 대체 버전을 만들어 다른 사용자를 속일 수 있다. 이 새로운 버전을 포크(fork)라고한다. 대부분의 채굴 권한을 통제하는 공격자는 포크를 신뢰할 수있는 버전의 체인으로 만들 수 있으며 동일한 가상화폐를 다시 사용한다.

인기있는 블록체인의 경우, 이같은 시도를 하는 것은 극도로 비싸다. 관련 웹사이트(crypto51.com)에 따르면 비트코인을 공격 할 수있는 충분한 해싱파워를 임대하는 데는 현재 시간당 26만 달러 이상의 비용이 소요된다. 하지만 1500개가 넘는 거래소의 가상통화들은 훨씬 저렴하다. 보상과 해싱 파워가 적어 네트워크에 대한 보호가 약해지므로 비용이 훨씬 적게든다.

2018년 중반에 공격자들은 버지(Verge), 모나코인(Monacoin), 비트코인 골드(Bitcoin Gold)등 상대적으로 작고 가벼운 가상통화에 대해 51 %의 공격을 가해 총 2000만 달러를 훔치기 시작했다. 1백만 달러 이상을 훔친 이더리움클래식 공격은 톱20 가상통화에 대한 첫 번째 공격 시도였다.

이를 쉽게 만드는 것은 공격자가 공격에 컴퓨팅 파워를 임대하는 데 사용할 수있는 소위 해시 마켓 플레이스의 등장이다. 거래소가 궁극적으로 지원할 가상통화를 선택할 때 훨씬 더 보수적이어야 하는 이유다.

새로운 웜 버그

스마트 계약 버그는 새로운 수준의 블록체인 보안 취약점이다.

스마트계약은 블록체인 네트워크에서 실행되는 컴퓨터 프로그램이다. 규 된 규칙 및 조건에 따라 가상통화 이동을 자동화하는 데 사용할 수 있다. 실제 법적인 계약이나 복잡한 금융 거래를 촉진하는 등 많은 잠재적 용도가 있다. 벤처캐피탈 기금의 모든 투자자가 집합적으로 자금 배분 방법을 결정할 수있는 투표 메커니즘을 만든다든지 하는 용도다.

분산형자율기구(DAO)라는 이 기금은 이더리움(Ethereum)이라는 블록체인 시스템을 사용해 2016년에 설립됐다. 그 후 얼마 지나지 않아 공격자는 DAO를 관리하는 스마트 계약에서 예기치 않은 결함을 악용해 6000만 달러 상당의 가상통화를 훔쳤다. 본질적으로이 결함으로 인해 해커는 시스템에서 돈을 이미 인출했음을 등록하지 않고도 계정에서 돈을 요청할 수있었다.

일반 소프트웨어에서는 패치로 버그를 수정할 수 있다. 블록체인 세계에서는 그렇게 단순하지 않다. 취리히연방공대(ETH Zurich) 연구자이자 체인시큐리티(ChainSecurity) 공동창업자 페타 탄코브(Petar Tsankov)는 블록체인의 트랜잭션을 취소 할 수 없기 때문에 스마트계약을 전개하는 것이 로켓을 발사하는 것과는 다르다고 말한다.

일종의 수정 프로그램이 있긴 있다. 일부 계약은 추가 스마트 계약을 배포해 ‘업그레이드’할 수 있다. 개발자는 네트워크에 중앙 집중식 킬(kill) 스위치를 구축, 해킹이 탐지되면 모든 활동을 중지 할 수 있다. 그러나 돈을 이미 도난당한 사용자에게는 너무 늦을 것이다.

돈을 회수하는 유일한 방법은 공격이 일어나기 전에 블록체인 지점으로 돌아가서 새로운 블록 체인에 포크를 만들고 네트워크의 모든 사람들이 대신 그 블록을 사용하도록 동의를 받는 방법이다. 이더리움 개발자가 선택했던 것이다. 커뮤니티의 대부분은(전부는 아니지만) 새로운 포크로 전환했다. 이더리움 클래식은 체인의 작은 홀드 아웃 그룹이다.

지난 달 ChainSecurity 팀은 DAO 재앙의 재연을 막았다. 계획된 소프트웨어 업그레이드가 있기 하루 전, 회사는 이더리움 수석 개발자에게 DAO해킹을 초래 한 같은 종류의 버그 발생 우려를 표했다. 개발자는 즉시 업그레이드를 연기했으며 이번 달 말에 업그레이드를 진행할 예정이다.

그럼에도 불구하고 이더리움 스마트 계약은 이른바 재진입 버그에 취약하다. 지난 수만 건의 계약에 수십 만 건의 취약성이있을 수 있다는게 보안업계의 판단이다. 퍼블릭 블록체인 스마트계약에 버그가있는 경우 해커가 소스 코드를 블록체인에서 볼 수 있으므로 이를 발견하게 된다.

특히 수백만 달러를 보유한 계약은 은행이나 정부를 공격하는 것과 마찬가지로 고급 해커를 유인하고 있다.

코드 검사 등 위협 대처

MIT테크놀로지리뷰에따르면 블록체인 해킹 위협에 대처하는 스타트업도 등장하고 있다. 인공지능을 사용해 트랜잭션을 모니터링하고 의심스러운 활동을 탐지하며 알려진 취약성을 위해 스마트계약 코드를 검사 하는 팀이다.

ChainSecurity를 ​​포함한 다른 회사들은 정식 검증이라고하는 기존의 컴퓨터과학 기술을 기반으로 감사 서비스를 개발하고 있다. 목표는 계약 코드가 제작자가 의도 한 바를 실제로 수행한다는 것을 수학적으로 증명하는 것이다.그러나 이 과정은 많은 비용과 시간이 소요될 수 있다.

미국 코넬대 가상통화와 계약(Cryptocurrencies and Contracts) 연구원 필립 다이안(Philip Daian)은 블록 유인 기반의 ‘버그 현상금’을 설정하기 위해 추가적인 스마트 계약을 사용할 수도 있다고 말한다.

블록체인은 인간의 예측할 수 없는 행동에 의존하는 복잡한 시스템이다. 블록체인 기술 보안은 특정 조건 하에서 상당히 취약 할 수 있다. 때로는 실행이 잘못되거나 비의도적 소프트웨어 버그가 발생할 수 있다. 코드, 블록체인 경제, 탐욕의 상호 작용으로 인해 시스템이 더 복잡해고 있다. 이제 너무 많은 블록체인이 생겨났다. 의미있는 것을 때로는 어려운 방법을 통해 배우고 있다.