홈 > 전문가분석
전문가분석 > 시황정보 2018.11.29 17:48 / National Institute of Standards and Technology

[블록체인의 모든 것] 15. 블록체인의 한계와 오해(1)

▶▶ 코이니스타는 블록체인 기술을 거의 알지 못하지만 높은 수준에서 어떻게 작동하는지 알기 원하는 유저들을 위해 NIST의 블록체인 기술 개요를 번역해 총 20회에 걸쳐 연재하고 있습니다. ◀◀

시장은 대다수의 초창기 기술을 과장하고 과도하게 사용하려는 경향이 있습니다. 많은 프로젝트가 불필요한 경우에도 해당 기술을 통합하려고 시도합니다. 이것은 그 기술이 아직 새롭고 잘 이해되지 않으며, 기술이 오해에 둘러싸여 있고, 기술을 놓칠까 걱정하기 때문입니다. 블록체인 역시 마찬가지입니다. 여기서는 블록체인 기술의 한계와 오해를 살펴봅니다.

7.1 불변성 (Immutability)

블록체인 기술에 대한 대부분의 출판물은 블록체인 원장이 변하지 않는(immutable) 것으로 설명합니다. 그러나 엄격하게 말하면 이는 사실이 아닙니다. 원장은 금융 거래를 위해 신뢰되어야 하므로 변조 방지되는 것이며, 상황에 따라 블록체인을 변경될 수 있기 때문에 완전한 불변으로 간주할 수는 없습니다. 여기에서 블록체인 원장에 대한 불변성 개념을 위반할 수 있는 여러가지 방법을 살펴보겠습니다.

블록체인 자체를 완전히 불변하는 것으로 간주할 수는 없습니다. 일부 블록체인 구현의 경우, 가장 최근에 게시된 혹은 '꼬리' 블록이 (다른 '꼬리' 블록을 가진 더 길다란 대체 체인에 의해) 교체될 수 있습니다. 앞에서 언급했듯이 대부분의 블록체인 네트워크는 경쟁 체인이 여러 개인 경우 가장 긴 체인(가장 많은 작업이 투입된 체인)을 진리로 채택하는 전략을 사용합니다. 서로 다른 꼬리 블록을 가진 두 개의 체인이 경쟁한다면 더 긴 길이의 블록이 채택됩니다. 그러나 이것이 대체된 블록 내의 트랜잭션이 손실된다는 의미는 아니며(해당 트랜잭션은 다른 블록에 포함되었거나 보류 중인 트랜잭션 풀로 반환되었을 수 있습니다), 꼬리 블록에 대해 약한 불변성을 가지고 있기 때문에, 대부분의 블록체인 네트워크 사용자는 트랜잭션이 유효한 것으로 간주할 때까지 여러 개의 블록 생성을 더 기다리게 됩니다.

무허가형 블록체인 네트워크의 경우, 더 긴 대체 블록체인을 채택하는 정책이 51% 공격을 유발할 수 있습니다[19]. 공격을 위해 침입자는 나머지 블록체인 네트워크의 블록 생성 속도를 능가하기 위한 충분한 자원(새로운 블록 생성에 적용되는 자원의 51% 이상을 보유)을 얻습니다. 블록체인 네트워크의 크기에 따라, 이것은 국가 단위에서 수행되는 엄청난 비용의 공격일 수 있습니다. 이 유형의 공격을 수행하는 데 드는 비용은 공격자가 블록체인을 변경할수록 더 많이 증가합니다. 이 공격은 기술적으로 어렵지 않습니다(예: 블록체인 구현의 일반적인 프로세스를 반복하지만 선택한 트랜잭션이 포함되거나 생략되고 더 빠른 속도로 진행됨). 다만 값비쌀 뿐입니다.

허가형 블록체인 네트워크의 경우, 이 공격을 완화할 수 있습니다. 일반적으로 블록체인 네트워크 소유자 또는 사용자 컨소시엄에서 블록체인 네트워크에 게시 노드를 가입하고 제거하도록 허용하고 있습니다. 소유자 또는 컨소시엄은 비협력적인 게시 노드의 권한을 단순 제거함으로써 게시 노드가 공평하게 협업을 수행할 수 있도록 강제할 수 있으므로 체인 간 경쟁의 가능성이 적습니다. 블록체인 네트워크 사용자에게는 부당행위에 대한 조항 및 법적 조치를 취할 수 있는 추가 법적 계약이 있을 수 있습니다. 이러한 통제는 위법 행위를 방지하는데 유용하지만 소유주 또는 컨소시엄이 원하는 경우 합법적인 방법으로 필요한 만큼 블록을 교체할 수 있습니다.

7.2 블록체인 관리자 (Users Involved in Blockchain Governance)

블록체인 네트워크의 거버넌스는 블록체인 네트워크를 감독하고 제어하는 규칙, 사례 및 프로세스를 다룹니다. 일반적인 오해는 블록체인 네트워크가 제어 및 소유권이 없는 시스템이라는 것입니다. "아무도 블록체인을 통제할 수 없다!"라는 문구를 종종 볼 수 있지만, 엄격하게 이것은 사실이 아닙니다. 허가형 블록체인 네트워크는 일반적으로 블록체인 네트워크를 관리하는 소유자 또는 컨소시엄에 의해 설정되고 실행됩니다. 무허가형 블록체인 네트워크는 종종 블록체인 네트워크 사용자, 게시 노드 및 소프트웨어 개발자의 통제를 받습니다. 각 그룹은 블록체인 네트워크의 발전방향에 영향을 주는 제어 레벨을 가지고 있습니다.

소프트웨어 개발자는 블록체인 네트워크에서 사용하는 블록체인 소프트웨어를 만듭니다. 대부분의 블록체인 기술은 오픈소스이기 때문에 소스 코드를 검사하고 독립적으로 컴파일할 수 있습니다. 개발자가 출시한 사전에 컴파일된 소프트웨어를 우회하는 수단으로 별도의 호환 가능한 소프트웨어를 만들 수도 있습니다. 그러나 모든 사용자가 이를 수행할 수 있는 것은 아닙니다. 즉, 블록체인 소프트웨어 개발자가 블록체인 네트워크의 거버넌스에서 큰 역할을 수행할 것입니다. 이 개발자들은 커뮤니티 전체의 이익을 위해 행동하고 책임을 질 수 있습니다. 예를 들어, 2013년 비트코인 개발자는 가장 인기있는 비트코인 클라이언트의 새 버전을 출시했는데, 소프트웨어의 결함이 발견되어 두 개의 경쟁 체인이 시작되었습니다. 개발자는 새 버전(아직 모든 사람이 채택하지 않은 버전)을 유지하거나 이전 버전으로 되돌리도록 결정해야 했습니다[21]. 어떤 선택을 하든 간에, 선택되지 않은 체인은 삭제되고 일부 블록 체인 네트워크 사용자의 트랜잭션이 무효화됩니다. 개발자는 이전 버전으로 되돌리는 선택을 했고, 비트코인 블록 체인의 진행을 성공적으로 제어했습니다.

이 사례는 의도하지 않은 포크였습니다. 그러나 개발자는 블록체인 프로토콜이나 형식을 변경하기 위해 의도적으로 블록체인 소프트웨어 업데이트를 설계할 수 있고, 충분한 사용자가 동의할 경우 성공적인 포크를 만들 수 있습니다. 이러한 블록체인 소프트웨어 업데이트 포크는 종종 논의되고 관련된 사용자들과 조정하는데, 무허가형 블록체인 네트워크의 경우 일반적으로 게시 노드가 해당됩니다. 새로운 "메인" 포크에서 트랜잭션을 계속 기록하기 위해, 모든 사용자가 일부 선택된 블록에서 새로 업데이트된 블록체인 소프트웨어로 전환해야 하는 이벤트가 발생하기 전에 오랜 토론과 채택 기간이 자주 있습니다.

무허가형 블록체인 네트워크의 경우 개발자가 큰 영향을 미치지만, 사용자는 업데이트된 소프트웨어 설치를 거부하여 개발자가 변경한 사항을 거절할 수 있습니다. 블록체인 네트워크 사용자 중 게시 노드는 새 블록을 만들고 게시하기 때문에 중요한 제어권을 갖습니다. 사용자들은 일반적으로 게시 노드가 생성한 블록을 채택하지만, 반드시 그렇게 할 필요는 없습니다. 이것의 흥미로운 부작용은 무허가형 블록체인 네트워크가 본질적으로 게시 노드에 의해 지배되며, 사용자가 주요 포크에 머무르기 위해 동의하지 않을 수 있는 변경 사항을 채택하도록 하여 사용자 세그먼트를 소홀히 할 수 있다는 것입니다.

허가형 블록체인 네트워크의 경우, 통제와 거버넌스는 관련 소유자 또는 컨소시엄의 구성원에 의해 이루어집니다. 컨소시엄은 누가 네트워크에 가입할 수 있는지, 언제 멤버를 네트워크에서 제거할지, 스마트 계약에 대한 코딩지침 등을 결정할 수 있습니다.

요약하면 소프트웨어 개발자, 게시 노드 및 블록체인 네트워크 사용자 모두가 블록 체인 네트워크 관리에 참여합니다.

7.3 디지털 너머 (Beyond the Digital)

블록체인 네트워크는 자체 디지털 시스템 속 데이터와 매우 잘 작동합니다. 그러나 실세계와 상호 작용해야 할 때는 몇 가지 문제가 있습니다(종종 오라클 문제(Oracle Problem)라고 함 [22]). 블록체인 네트워크는 실세계의 센서 입력 데이터는 물론 사람이 입력한 데이터도 기록할 수 있지만, 입력 데이터가 실제 이벤트를 반영하는지 확인하는 방법이 없을 수 있습니다. 센서가 오작동하고 부정확한 데이터를 기록할 수 있고, 사람이 (의도적 또는 비의도적으로) 허위 정보를 기록할 수 있습니다. 이러한 문제는 블록체인 네트워크에만 해당하는 것이 아니라 전반적인 디지털 시스템에도 해당됩니다만, 블록체인 네트워크의 익명성 때문에 디지털 네트워크 외부에서 잘못 표현된 데이터를 처리하는 것이 특히 문제가 될 수 있습니다.

예를 들어 실세계의 물품을 구매하기 위해 암호화폐 거래가 발생한 경우, 외부 센서 또는 사람의 입력이 없다면 블록체인 네트워크 내에서 물품 선적 여부를 확인할 방법이 없습니다.

많은 프로젝트가 외부 데이터를 정확하고 신뢰할 수 있는 방식으로 수집하여 '오라클 문제'를 해결할 수 있는 안정적인 메커니즘을 만들려고 시도했습니다. 예를 들어, 'Oraclize' 프로젝트는 웹 API 데이터를 가져와 블록체인이 읽을 수 있는 동작코드(byte/opcode)로 변환하는 메커니즘을 제공합니다. 하지만 분산 어플리케이션 관점에서 이러한 프로젝트는 공격자가 손상시킬 수 있는 단일 지점을 제공하므로 중앙 집중식으로 간주될 수 있습니다. 그 결과, 블록체인 기술에 영감을 얻고 기존 합의 모델과 경제적 인센티브를 바탕으로 오라클 문제를 해결하기 위해 구축된 'Mineable Oracle Contract'와 같은 프로젝트가 최근 떠오르고 있습니다 [23].

7.4 블록체인의 소멸 (Blockchain Death)

전통적인 중앙집중식 시스템은 끊임없이 생성되고 중단되며, 블록체인 네트워크도 크게 다르지 않습니다. 다만 분산되어 있기 때문에 블록체인 네트워크가 "종료” 되더라도 완전히 종료되지 않으며 몇몇 남아 있는 블록체인 노드가 계속 실행될 수 있습니다.

수명을 다한(defunct) 블록체인은 역사 기록에 적합하지 않은데, 왜냐하면 게시 노드가 많이 없는 관계로 악의적인 사용자가 남은 몇 개의 게시 노드를 쉽게 압도하고 나머지 블록을 다시 대치할 수 있기 때문입니다.

7.5 사이버보안 (Cybersecurity)

블록체인 기술을 사용해도 사려 깊고 사전 예방적인 위험 관리가 필요한 내재적 사이버보안 위험은 피할 수 없습니다. 내재적 보안 위험의 대부분은 사람에서 발생하며, 특히 해커가 블록체인 네트워크와 취약점에 대한 지식을 더 많이 습득하면서 생기는 위협에서 네트워크와 참여 조직을 보호하기 위한 강력한 사이버보안 프로그램은 필수적입니다.

기존의 사이버보안 표준 및 지침은 블록체인 네트워크에 의존하는 시스템의 보안을 유지하는 것과 아주 관련이 많습니다. 블록체인 기술의 특정한 속성을 고려하여 기존의 표준과 지침을 조정함으로써, 블록체인 네트워크를 사이버 공격으로부터 보호하기 위한 강력한 기반을 제공할 수 있습니다.

일반적인 원칙과 통제 외에도, 기존의 블록체인 기술과 관련하여 많은 산업에서 폭넓게 사용되는 특정 사이버 보안 표준이 있습니다. 예를 들어, ‘NIST 사이버보안 프레임워크(NIST Cybersecurity Framework)’는 "조직들이 각자 다른 위험들(서로 다른 위협, 다양한 취약성, 다양한 위험 허용치 등)을 가진 상황에서 프레임워크 내에서 어떻게 해결하는지가 각자 다르므로, 사이버보안 위협을 관리할 수 있는 모두에게 맞는 한가지 방법(one-size-fits-all)은 없다”고 명시하고 있습니다. 그리고 프레임워크가 블록체인 기술용으로 특화하여 설계되지는 않았지만, 표준은 블록체인 기술을 포괄할 정도로 광범위하므로 기관이 블록체인 기술에 영향을 주는 위험을 식별하고 제어하는 정책과 프로세스를 개발하는데 도움을 줄 수 있습니다.

7.5.1 사이버 및 네트워크 기반 공격 (Cyber and Network-based Attacks)

블록체인 기술은 변조 저항 및 변조 방지 설계로 인해 매우 안전하다고 선전됩니다. 트랜잭션이 블록체인에 투입되면 일반적으로 변경될 수 없습니다. 그러나 이는 게시된 블록에 포함된 트랜잭션에만 해당되며, 블록체인에 게시된 블록에 아직 포함되지 않은 트랜잭션은 여러가지 유형의 공격에 취약합니다. 트랜잭션 타임스탬프를 가지고 있는 블록체인 네트워크의 경우, 시간을 속이거나 주문 서비스 멤버의 시간을 조정하여 트랜잭션에 긍정적이거나 부정적인 영향을 줄 수 있으므로 시간 정보와 시간 교환 정보를 이용하여 공격받을 수 있습니다. 서비스 거부 공격(DoS, Denial of Service) 역시 블록체인 플랫폼 또는 플랫폼에 구현된 스마트계약에서 수행될 수 있습니다.

블록체인 네트워크와 그 응용 프로그램은 네트워크 스캔 및 정찰을 통해 취약성을 발견하고 악용하며 제로 데이 공격(zero-day attack)을 시작할 수 있는 악의적인 사용자에게 면역성이 없습니다. 블록체인 기반 서비스를 도입하기 위해 스마트 계약처럼 새롭게 코딩된 응용 프로그램의 경우, 요즘 웹사이트 또는 응용 프로그램들의 공격방식과 마찬가지로 네트워크를 통해 발견되어 침입 가능한 새롭거나 이미 알려진 취약점과 배포 약점이 포함될 수 있습니다.

[본 자료는 코이니스타에서 번역한 것이며, 문서의 저작권은 NIST와 원 저자들에게 있습니다.]

ⓒ 코이니스타
<National Institute of Standards and Technology>

| |