article@choigww180410: 블록체인의 5가지 문제점

in #kr7 years ago (edited)

Original Article (source)

https://www.computerworld.com/article/3236480/emerging-technology/the-top-5-problems-with-blockchain.html?upd=1523272936578
스크린샷 2018-04-09 오후 8.28.00.png


블록체인의 5가지 문제점

2017.11.10 by Lucas Mearian

블록체인은 비즈니스 프로세스를 재창조해낼 잠재력이 있지만, 아직까지는 여러 취약점이 존재하는 신생 기술이다.

idg-blockchain-vid

블록체인이 지금 당장 여러 산업의 비즈니스 프로세스와 신뢰 모델을 뒤엎을 것 같아 보이지만, 아직 블록체인은 발전 초기 단계이며, 블록체인 기술에 사용되는 다양한 형태의 분산 원장 (distributed ledger) 또한 충분히 검증되지 않았다.

Forrester Research의 최신 보고서에 따르면,
"잠재력이 매우 높은 기술이지만, CIO 및 비즈니스 담당자들은 블록체인의 도입 전에 심각한 소프트웨어 버그와 양자 컴퓨팅으로 인한 여러 리스크와 같은 문제를 반드시 고려해야 한다."

블록체인 기술은 일부 비즈니스 프로세스에는 적합하지 않다고 경고하는 전문가도 있다. 예를 들면, 이더리움 교환소 Leverj의 설립자 Bharath Rao는 암호화폐 이외 분야가 블록체인 어플리케이션을 도입하는 것에 회의적이다. 그는 블록체인이 기존의 중앙화된 관계형 데이터베이스(centralized relational database) 기술보다 느릴 뿐 아니라 훨씬 많은 비용이 든다고 주장한다.

Rao는 "자동화를 위해 효율성을 희생하는 것"이라며, 블록체인 내의 거래 기록을 일컫는 '블록'은 새 블록을 추가하기 전 암호화 검증을 요구하기 때문에 신속한 거래가 요구되는 비즈니스 어플리케이션에는 효율적이지 않을 수 있다는 것이다.

그는 또 이렇게 덧붙였다. "게다가 블록체인 자체의 특성 때문에 거래 기록(블록)의 추가는 순차적으로, 한 번에 하나씩 이루어져야 한다(have to be serialized). 데이터 추가를 병렬식으로 처리할 수 있는 기존 데이터베이스보다 데이터 추가 속도가 느릴 수밖에 없다."

Forrester Research 또한 사람들이 블록체인을 지나치게 고평가하는 부분에 대해, 보고서에서 다음과 같이 지적했다.

"세계경제포럼의 글로벌 리스크 평가단이 정확히 지적했듯, 너무나 적은 사람들이 이해하고 있는 기술에 대해 너무나 많은 사람들이 이토록 기대감을 나타낸 적은 없었다."

simplified-bitcoin-blockchain

2018년에도 Forrester는 블록체인의 열풍이 계속될 것으로 예측했다. 그러나 Forrester의 수석 애널리스트이자 최신 보고서의 주저자(lead author)인 Martha Bennett에 따르면, 블록체인은 점진적으로 확산될 것이며 대기업보다는 틈새 시장 쪽에서 더 많이 활용될 가능성이 높다.

다음은 Forrester가 말하는 블록체인의 5가지 문제점이다.

  • 갓 태어난 블록체인, 결함 있는 소프트웨어
  • 블록체인은 데이터 저장에 언제나 적합한 것은 아니다
  • 블록체인은 충분히 안전하지 않다
  • 확장가능성과 보안, 가장 큰 두 개의 문제점
  • 블록체인의 스마트 컨트랙트는 과장되었다

갓 태어난 블록체인, 결함 있는 소프트웨어

"사토시 나카모토"에 의해 최초의 분산형 블록체인의 개념이 알려진 것이 2008년이었지만, 실제 어플리케이션으로의 적용은 고작 수 년 밖에 되지 않았으며, 대부분 암호화폐나 가상화폐 거래를 위한 분산 장부로서 구현되고 있다.

가장 잘 알려진 블록체인 플랫폼인 Hyperledger와 Ethereum은 기술의 도입 과정에서 예기치 못한 문제가 충분히 발생 가능한, 성숙되지 않은 기술이다. 따라서 Forrester는 블록체인을 도입하고자 하는 CIO에게 치명적인 소프트웨어 결함 또는 프로젝트를 갈아엎고 다시 시작해야 하는 경우까지 염두에 둬야 한다고 경고한다.

지난 3년간 블록체인을 연구해 온 Bennett은 이렇게 말한다.

"블록체인 커뮤니티 뿐 아니라 블록체인을 자세하게 알지 못하는 일부 기업들은 이 세상에 버그 없는 소프트웨어란 없으며, 그 중 몇몇은 버그가 아닐 수도 있다고 이야기한다."

예를 들면, Solidity라는 스마트 컨트랙트를 실행시키는 이더리움 스크립트는 현재 소수점을 지원하지 않아서 개발자들은 우회적인 방법을 이용해야만 한다.

Bennett은 "매우 크고 중요한 블록체인 프로젝트를 진행하는 사람들과 이야기를 나눌 때, 그들은 프로젝트를 하면 할 수록 얼마나 블록체인이 미성숙한 기술인지를 깨닫는다고 말한다."라고 말한다.

이번 주에는 코드 취약점으로 인해서 한 사용자가 수억 달러에 달하는 이더리움 암호화폐(이더)를 동결시키고 최대 3억 달러에 이르는 이더리움 네트워크의 화폐 전체 유동성이 제한되는 사건이 발생했다.

Parity Technologies가 관리하는 블록체인은 장부 상태의 변경에 참여자들의 합의가 필요하도록 설계되었어야 했으나, 코드 취약점으로 인해 한 명의 유저가 "우연히" 체인 네트워크에 존재하는 모든 암호화폐 지갑을 단독으로 소유할 수 있게 되었던 것이다.

블록체인은 데이터 저장에 언제나 적합한 것은 아니다

블록체인의 최대 장점은 데이터를 한 번만 만들면 많은 사람들에게 공유할 수 있다는 점이다. 이는 웹의 각기 다른 노드에 손쉽게 적용할 수 있으면서 각 기록은 고유한 해시를 가지므로 수정, 조작이 불가능하다.

Bennett에 따르면, 블록체인 기반 네트워크를 통한 분산 원장은 내부 시스템과 블랙리스트로 사전 필터링 된 선택적 거래 기록보다 훨씬 풍부하고 포괄적인 거래 기록을 제공할 수 있다. 그러나 이것이 거래 관련 정보가 반드시 체인의 일부여야 한다는 것은 아니다.

예를 들면, 블록체인 사용자가 거래 기록에 이미지 데이터를 추가할 경우, 데이터 용량은 매우 빠르게 증가하게 된다. 일방적인 추가만 가능한 상황에서 데이터 용량의 상승은 네트워크 오버헤드로 이어진다. 데이터를 분산하는 블록체인 특성으로 인해 모든 데이터가 체인 상 모든 노드에 복제되어야 한다.

하나의 블록체인 네트워크가 통제 불가능할 정도로 비대해지는 것보다는 일부 거래 내용을 구분된 네트워크 스토리지에 따로 저장하는 관계형 데이터베이스를 사용하는 것이 낫다. Bennett은 이렇게 덧붙인다.

"관계형 데이터베이스가 충분히 제 역할을 하고 있다면 절대, 절대로 블록체인 기반 아키텍쳐를 도입하지 마라."

블록체인은 충분히 안전하지 않다

블록체인은 크게 2가지 종류가 있다. 퍼블릭 블록체인과 프라이빗 블록체인이 그것이다. 퍼블릭 블록체인은 누구나 참여할 수 있다. 비트코인은 암호화폐를 구매하고자 하면 체인에 참여할 수 있는 퍼블릭 블록체인의 대표적인 사례다. 퍼블릭 블록체인의 특징은 개방성과 투명성으로, 체인에 참여하는 모든 사람들이 거래 내역을 볼 수 있다.

프라이빗 블록체인은 중앙 기구에 의해 관리되며 (centrally administered) 네트워크 참여를 위해 허가가 필요하다. 프라이빗 블록체인은 하나의 조직 또는 파트너 관계에 있는 여러 조직에 적합하다. 오직 허가된 사용자만이 네트워크에 참여할 수 있기 때문이다.

퍼블릭 블록체인과 프라이빗 블록체인 모두 수정 불가능하다는 점에서 안전하며 (예를 들면 거래 기록은 변경할 수 없고 네트워크 참여자 모두에게 묶여 있다) 새로운 블록을 추가하기 위해 참여자 간 합의가 필요하다. 합의에 얼마나 많은 동의가 필요한지는 블록체인 적용 환경에 따라 다르다. 전체의 50%가 동의해야 할 수도 있고 그 이상일 수도 있다. 그러나 데이터를 수정할 수 없고 블록의 추가에 합의를 요구한다는 점에서 블록체인은 현존하는 그 어떤 네트워크보다 안전하다.

그러나 블록체인은 필연적으로 어플리케이션 소프트웨어와 암호화에 의존적인데, 수백 개의 블록체인 스타트업 중에는 검증되지 않은 알고리즘을 사용하는 경우도 있다. 예를 들면, 비트코인은 거래 내역의 고유값 부여(해싱hashing)를 위해 검증된 암호화 알고리즘인 SHA-256을 사용한다. 그러나 여러 연구 결과에 따르면 양자 컴퓨팅이 가능해짐에 따라 이러한 알고리즘은 깨질 것이다. 개발자가 '작동할 것'이라고 말한 것 이외에 무엇도 검증되지 않은 새로운 암호화 알고리즘을 적용한 블록체인도 여럿 존재한다.

Bennett은 이렇게 말한다.

"어떤 암호학자에게 묻더라도 새로운 암호화 알고리즘의 검증에는 수 년이 필요하다는 답을 듣게 될 것이다. 암호화를 전에 없던 방식으로 적용하는 스타트업이 있다. 충분한 수학적 지식이 없는 상황에서 당신은 정말로 그 스타트업에 투자할 것인가? 이미 우리는 새로운 해싱 알고리즘을 시도했다가 처참하게 실패한 사례를 목격해 왔다."

암호학자이자 보안 전문가 Bruce Schneier는 블록체인 네트워크는 이제까지 해킹당한 적이 없으며 미래에도 불가능할 것이라면서, "블록체인은 해킹이 아니라 소프트웨어 내부의 보안 취약점으로 인해 무너질 것"라고 지적했다.

예를 들면 2016년 블록체인 기술을 도입한 벤처 캐피탈 펀드 The Dao는 코드 유출로 인해서 6천만 달러 이상의 이더 가상화폐를 도둑맞았다. 또 같은 해, 홍콩의 암호화폐 거래소 Bitfinex는 6,800만 달러 값어치의 비트코인 120,000개를 도둑맞기도 했다. 조사 결과, 비트코인 전자지갑의 소프트웨어 취약점이 주요 원인으로 지목되었다.

확장가능성과 보안, 가장 큰 두 개의 문제점

블록체인 기술은 본질적으로 사람과 기업체 간 관계에 내재된 신뢰를 수학적 원리로 대체하는 것이다. Bennett은 당신이 수학적 원리를 코드로 더 많이 구현할 수록, 더 많은 노드(서버)가 필요해지고 이는 연산량을 증가시켜 결과적으로 더 많은 비용을 발생시킬 것이라고 말한다.

체인 네트워크의 특성 때문에, 블록체인에 추가되는 새로운 기록정보는 순차적으로 추가되며, 따라서 병렬적으로 데이터를 추가하는 것이 가능한 기존 데이터베이스보다 낮은 성능을 보인다. Rao는 "이 비싸고 느린 프로세스는 네트워크의 모든 참여자가 잠재적으로 악의를 가진 경우에나 정당화될 수 있다"라면서, "그러나 모든 참여자가 통제되는 기업 환경에서 아무런 실익도 없이 리소스를 쏟아붓는 것은 수지가 맞지 않는다"라고 말한다.

추가로, 가장 널리 사용되는 퍼블릭 블록체인이 개방적이고 투명하기 때문에, 체인에 참여하는 누구나가 모든 거래 내역을 볼 수 있다. 비트코인이 그러한 경우다. 그러나 상업적 맥락에서 완전한 투명성은 장점이 아니다. 예를 들면, 주식 거래를 들 수 있다. 블록체인이 주식 거래 플랫폼에서 즉각 합의(instant settlement) 메커니즘으로 사용된다면, 주식 거래자 각각은 다른 사람들이 무슨 거래를 하는지 전부 볼 수 있다. 다른 거래자의 의도와 행동 정보를 바탕으로 악용 여지가 생기는 것이다.

다른 예시로는 제조업의 경우를 들 수 있다. 공급자들에 대한 공개 장부로 블록체인을 사용한다면, 모든 계약자는 체인에 존재하는 모든 하도급업자들을 확인할 수 있게 된다.

Bennett은 "고객이 체인의 특정 거래 내역을 확인하고 싶다고 해도, 나는 내 고객들이 나와 거래하는 모든 사람들을 확인할 수 있는 환경을 바라지는 않을 것이다"라면서 "그러므로 당신(블록체인 도입 기업)은 거래 내역의 보안을 어떻게 유지할 것인가를 고민하게 될 것이다"라고 지적했다.

블록체인 상에서 차별적인 접근 권한을 만드는 방법이 존재하며 이에 따라 일부 유저들만 특정 민감한 정보에 접근할 수 있게 된다. 예를 들면, 리눅스 재단이 주도하는 오픈소스 블록체인 프로젝트인 Hyperledger는 채널(channel) 또는 서브체인(sub-chain) 개념을 이용하여 허가된 사용자만이 민감한 정보를 볼 수 있도록 했다.

블록체인의 스마트 컨트랙트는 과장되었다

스마트 컨트랙트 또는 자동실행(self-executing) 계약은 계약의 이행에 있어 별도의 관리 소요가 발생하지 않는다는 점에서 블록체인이 가진 가장 매력적인 특장점 중 하나로 꼽힌다. 본질적으로 스마트 컨트랙트의 특정 조건이 달성되기만 하면 돈, 자산 또는 상품이 자동적으로 전송되는 것이다.

예컨대 보험 회사는 허리케인이나 가뭄과 같은 재해 보험에 보상금을 자동으로 지급하는 스마트 컨트랙트를 적용할 수 있다. 그러나 Bennett은 소위 스마트 컨트랙트라고 불리는 것은 스마트하지도 않을 뿐더러 계약으로서의 법적 구속력도 없다고 주장한다.

"개념적으로는 훌륭한 아이디어다. 스마트 컨트랙트는 본질적으로 비즈니스 프로세스 자동화의 한 형태에 해당된다. 비즈니스 프로세스 자동화를 위해 당신은 그 프로세스가 무엇인지, 어떤 규칙이 적용되는지에 대해 동의 / 합의해야 하고, 그 다음 당신은 해당 내용을 코드로 옮겨야 한다. 결코 일반 사람들이 일상적으로 활용 가능한 수준이 아니다."

블록체인 스크립트(코드) 언어가 아직까지 성숙하지 않은 상황이며, 필연적으로 프로그래머 또한 이를 막 배워나가는 단계다. 버그와 취약점이 발생할 여지가 충분하다.

블록체인 네트워크의 참여자들은 또한 거래 운용 방식을 어떻게 준수할 것인지, 그리고 거래 이행 여부와 관련한 분쟁이 발생할 시의 시나리오에 대해 합의해야 한다.

Bennett은 다음과 같이 경고한다.

"계약 내용 일부가 스마트 컨트랙트 코드에서 누락될 경우를 대비해 체인 외부에서 코드를 수정할 수 있는 수단, 또는 의도하지 않은 방식으로 스마트 컨트랙트가 작동할 때를 위한 '킬 스위치'을 마련해 두어야 한다."

예를 들면, 2010년 자동화된 거래 이행 시스템이 "순간적인 장애(flash crash)"를 일으키면서 전세계의 상거래에 영향을 미친 적도 있었다. 당시 한 대규모 거래자가 상거래 플랫폼의 주문 정보를 피딩하는 자동화 알고리즘을 통해 판매 프로그램을 실행하고자 했다. 이 판매 프로그램이 실행되면서, 역대 최고의 net change가 비정상적인 변동성을 발생시키고 시스템 장애를 야기했다.

이 사건 이후 규제 당국은 5분 안에 주가가 10% 이상 상승 또는 하락할 경우 개별 주식 거래를 중지시키는 규칙을 만들면서, 효과적인 "킬 스위치"를 마련했다.

Bennett은 "명백하게 이건 스마트 컨트랙트와 수정 불가능성이라는 블록체인의 개념이 상충하는 지점이기도 하다"라며 "왜냐하면 스마트 컨트랙트에 있어 수정 불가능성은 곧, 당신이 최악의 보안 취약점을 발견해도 수정할 수가 없음을 뜻하기 때문이다"라고 지적한다.

블록체인 기술이 성숙해짐에 따라 블록체인의 수학적 구조, 원리와 관련된 분야를 중심으로 점점 더 많은 연구가 이루어지고 있다. 이미 일부 기업들은 출시 예정인 자사 제품에 대해 주도면밀한 수학적 검토를 의뢰하고 있으며, 이러한 흐름은 2018년에 더 강해질 전망이다.

Bennett을 비롯한 여러 사람들이 새로운 비즈니스와 신뢰 모델을 제공한다는 점에서 블록체인의 혁신성을 인정한다. 그러나 실제로 이러한 모델이 시장에서 어떤 형태로 나타날 지에 대해서는 조금 더 논의가 필요한 듯 보인다.

Bennett은 "현재 대부분의 기업에서 진행되는 블록체인 프로젝트는 기존 프로젝트의 최적화가 주를 이루고 있다"면서 "그러나 공공의 합의를 포함하는 어떤 비즈니스 프로세스의 실행 방식 자체를 재정의하는 일은 블록체인 기술이 충분히 성숙해지는 미래에 가능해질 것이다"라고 말했다.

또한, 비즈니스 프로세스를 새롭게 만들어내는 작업은 개별 사용자들이 그러한 프로세스를 위한 전제 조건에 동의가 필요하다. 그리고 새로운 비즈니스 프로세스 운용 방식과 그 조건에 대해 사용자 합의를 이끌어내지 못해 무산된 여러 블록체인 프로젝트 사례가 존재한다. 그러니 블록체인의 도입이란 물론 기술적 문제이면서도, 동시에 사람들 간의 계약과 합의의 문제이기도 하다.

Bennett은 "최근 이런 말을 들었다. 블록체인의 2할은 기술이고 8할은 비즈니스라고 말이다"라며, 블록체인의 비기술적 측면을 강조했다.