- Published on
블록체인은 얼마나 안전한가?
- Author
- Name
- yceffort
How Safe Are Blockchains? It Depends.
비트코인의 근간이 되는 분산형 선두 기술인 블록체인은, 블록체인이 뒷받침하는 통화보다 훨씬 더 가치 있는 것으로 판명 될 수 있다. 하지만 블록체인은 그것이 안전한 만큼만 가치가 있다. 분산형 원장 기술을 실행하기 시작할 때, 우리가 설정하는 초기 조건이 나중에 보안 문제에 문제가 되지 않도록 하지 않는 것이 중요하다.
블록체인 기술에 내재된 보안 위험을 이해하기 위해서는 퍼블릭 및 프라이빗 블록체인의 차이를 이해하는 것이 중요하다.
비트코인은 누구나 거래를 읽고 쓸 수 있게 해주는 기록 시스템인 공개 블록체인에 의존한다. 이러한 거래를 집계하고 게시할 수 있는 사람은 누구나 충분한 노력을 기울여 어려운 암호화 퍼즐을 해결함으로써 이를 증명할 수 있습다. 노드 네트워크가 이전에 확인된 트랜잭션의 기록을 확인하고 새로운 트랜잭션을 확인하는 프로세스를 합의 프로토콜이라고 합니다. 비트코인 시스템에서는 트랜잭션을 확인하는 데 절대적으로 신뢰되는 사용자가 없으므로 모든 사용자는 강력한 힘으로(즉, 암호 퍼즐을 해결) 문제를 해결하기 위해 소프트웨어 및 하드웨어 리소스를 커밋하여 트랜잭션을 확인하는 알고리즘을 따릅른다. 솔루션에 먼저 도달한 사용자는 보상을 받게 되며, 이를 검증하기 위해 사용된 트랜잭션과 함께 각 새로운 솔루션이 다음 문제 해결의 기반이 된다.
이러한 분권화와 접근의 상대적 자유는 예상치 못한 결과를 가져왔다. 그 이유는 누구든지 거래를 읽고 쓸 수 있기 때문이다. 비트코인 거래는 암시장의 거래를 부채질했다. 합의 프로토콜은 에너지를 소비하기 때문에, 대다수의 사용자는 값싼 전기를 사용하는 국가에서 운영하며, 네트워크 중앙 집중화와 결합의 가능성을 초래하며, 네트워크를 전기세에 대한 정책 변화에 취약하게 만든다. 이러한 두 가지 추세는 모두 프라이빗 블록체인에 대한 관심을 증가시켰고, 이는 궁극적으로 기업에 더 큰 통제력을 줄 수 있다.
주로 금융 환경에서 사용되는 프라이빗 블록체인은 누가 검증된 거래의 원장을 읽을 수 있는지, 누가 거래를 제출할 수 있는지, 누가 그것들을 검증할 수 있는지를 운영자에게 제어한다. 프라이빗 블록체인에서는 복수의 당사자가 동시에 참여하기를 원하지만 서로를 완전히 신뢰하지 않는 다양한 시장이 포함된다. 예를 들어, 토지 및 물리적 자산 등록, 상품 거래 및 사모 주식 분배를 지원하는 민간 블록체인 시스템이 모두 시험되고 있다. 이러한 시스템이 개발되고 진화함에 따라 이들 시스템 역시 예상치 못한 결과를 겪을 수 있으며, 그 중 일부는 시스템 및 관리하거나 저장하는 자산의 보안에 영향을 미칠 수 있다. 소프트웨어 및 제품 개발과 마찬가지로, 초기 단계의 보안을 고려했을 때 나중에 보안 결함을 해결하기 위해 제품을 근본적으로 변경하기가 어렵다.
네트워크 아키텍쳐와 함께 보안이 시작된다.
프라이빗 블록체인을 설정할 때 내려야 할 첫 번째 결정 중 하나는 시스템의 네트워크 아키텍처다. 블록체인은 신규거래 작성 및 승인에 필요한 신규거래 목록, 검증된 거래목록에 대한 합의를 도출한다. 이러한 통신은 노드 간에 이루어지며, 각 노드들은 원장의 복사본을 유지하고 다른 노드들에게 새로 제출되거나 새로 확인된 트랜잭션의 새로운 정보를 알준다. 프라이빗 블록체인 운영자는 누가 노드를 조작할 수 있는지, 그리고 이러한 노드가 어떻게 연결되었는지 제어할 수 있다. 더 많은 연결이 있는 노드는 정보를 더 빨리 수신한다. 마찬가지로 노드는 활성 상태로 간주되는 연결 수를 유지하기 위해 필요할 수 있다. 정보의 전송을 제한하거나 잘못된 정보를 전송하는 노드는 시스템의 무결성을 유지하기 위해 식별 가능하고 피할 수 있어야 한다. 프라이빗 블록체인 기반 상품 거래는 기존 거래 파트너에게 네트워크의 중심 위치를 더 많이 부여할 수 있으며, 예상대로 작동하도록 보장하기 위해 이러한 중앙 노드 중 하나에 대한 연결을 유지하기 위해 새로운 노드가 필요할 수 있다.
네트워크 아키텍처 구축에 있어서 또 다른 보안 문제는 비일관적 또는 간헐적으로 활성 노드를 처리하는 방법이다. 노드는 피해를 끼치지 않기 위해서 오프라인 상태가 될 수 있지만, 네트워크는 오프라인 노드 없이 기능(이전에 확인된 트랜잭션에 대한 합의를 얻고 새로운 트랜잭션을 올바르게 확인하려면)을 구성해야 하며, 이러한 노드를 신속하게 복구할 수 있어야 한다.
퍼블릭 및 프라이빗 블록체인의 합의 프로토콜과 접근 권한
합의 도출에 사용된 프로세스(문제 해결을 통한 트랜잭션 확인)는 현재 약 10분 정도 걸리는 시간을 갖도록 의도적으로 설계되었다. 트랜잭션은 약 1~2시간 동안 완전히 검증되지 않은 것으로 간주되며, 그 후 원장은 포크(fork)라고 알려진 경쟁 버전의 원장을 도입하는 것이 계산적으로 비용이 많이 들 수 있다. 이러한 지연은 둘 다 시스템의 취약성으로 작용한다. 초기에 확인되는 트랜잭션이 나중에 그러한 상태를 상실할 수 있고 금융 거래와 같이 빠른 속도로 진행되는 트랜잭션에 비트코인 기반 시스템을 사용하는 데 상당한 장애물이 될 수 있다.
반면에 프라이빗 블록체인에서는 운영자가 특정 노드만 검증 프로세스를 수행하도록 허용할 수 있으며, 이러한 신뢰할 수 있는 당사자들은 새로 확인된 트랜잭션을 네트워크의 나머지 부분과 통신할 책임이 있다. 이러한 노드에 대한 액세스 보안을 확보하고 신뢰할 수 있는 당사자 집합을 확장할 시기와 대상을 결정하는 책임은 블록체인 시스템 운영자가 내릴 수 있다.
퍼블릭 및 프라이빗 블록체인의 거래 전환성과 자산에 대한 보안
블록체인 거래는 데이터를 저장하는 데 사용될 수 있지만 비트코인 거래의 주된 동기는 비트코인 자체의 거래다. 통화의 환율은 짧은 기간 동안 변동이 잇었으며, 지난 2배 이상의 가치가 상승했다. 각 비트코인 트랜잭션에는 교환되는 비트코인과 관련된 고유한 텍스트 문자열이 포함된다. 마찬가지로, 다른 블록체인 시스템은 거래와 관련된 자산이나 주식의 소유를 기록한다. 비트코인 시스템에서는 개인 키(고유한 출력을 제공하도록 설계된 알고리즘으로 생성된 긴 수)를 사용하여 소유권이 인정된다. 따라서, 도난이라 함은 비트코인의 보안 오류가 아니라 개인 보안문제다. 개인 키를 안전하지 않게 보관한 결과다. 일부 추산에 따르면 잃어버린 비트코인의 가치는 9억 5천만 달러에 달한다.
따라서 프라이빗 블록체인 운영자는 특히 물리적 자산을 관리하는 시스템의 경우 손실된 식별 자격 증명 문제를 해결하는 방법을 결정해야 한다. 비록 아무도 석유 한 배럴의 소유권을 증명할 수 없을지라도, 그 배럴은 어딘가에 존재 할 필요가 있을 것이다. 비트코인은 현재 개인 키를 잃어버린 사람들에게 상환 할 수 있는 기능을 제공하지 않고 있다. 마찬가지로 도난 당한 비트코인은 합법적인 거래와 구별이 안 되는 확인 노드에 나타나기 때문에 회수하기가 거의 불가능하다.
프라이빗 블록체인 소유주는 특히 그 거래가 절도 행위로 보일 수 있는 경우, 확인된 거래를 되돌릴 것인지 여부와 상황에 따라 결정해야 할 것이다. 거래 역전은 시스템의 공정성과 공정성에 대한 신뢰를 훼손할 수 있지만 버그 이용으로 인해 막대한 손실을 허용하는 시스템은 사용자들을 잃게 될 것이다. 이는 퍼블릭 블록체인 플랫폼인 Ethereum에서 운영되도록 설계된 코드 기반 벤처 자금인 DAO(Decentralizational Independent Organization)의 최근 사례를 통해 알 수 있다. DAO를 운영하는 코드의 보안 취약성은 Ethereum의 개발자가 Ethereum 프로토콜의 결함이 아니더라도 Ethereum 프로토콜 자체를 변경해야 하는 재정적 손실을 초래했다. 이러한 변화를 만들기로 한 결정은 논란의 여지가 있었고, 퍼블릭 및 민간 블록체인 개발업자들이 유사한 결정에 직면할 상황을 고려해야 한다는 생각을 분명히 했다.
보상의 무게
프라이빗 블록체인(트랜잭션 확인 및 네트워크 통신 속도 향상, 오류 및 역거래 수정 기능, 외부 공격 가능성 제한 및 감소 기능)이 제공하는 이점은 잠재적인 사용자들을 경계하게 할 수 있다. 모든 블록체인 시스템의 필요성은 어느 정도의 불신 또는 최소한 모든 사용자의 인센티브가 일치하지 않을 수 있다는 것을 전제로 한다. 비트코인과 같은 퍼블릭 블록체인 시스템을 유지하기 위해 노력하는 개발자들은 여전히 그들이 제안하는 변경사항들을 채택하기 위해 개인 사용자들에게 의존한다. 이것은 변화가 전체 시스템에 이익이 되는 경우에만 채택되도록 보장하는 데 도움이 된다. 반면에 민간 블록체인의 운영자들은 일부 사용자들이 동의하지 않는 변경을 일방적으로 적용하기로 선택할 수도 있다. 민간 블록체인 시스템의 보안과 유용성을 보장하기 위해, 운영자들은 시스템 규칙 변경에 동의하지 않거나 새로운 규칙을 채택하는 데 느린 사용자가 이용할 수 있는 상환을 고려해야 한다. 최신 패치 없이 현재 실행 중인 운영 체제의 수는 논란의 여지가 없는 변경도 신속하게 채택되지 않을 것임을 강력히 시사한다.
퍼블릭 블록체인에 금융시장이나 기타 기반시설을 건설하는 위험은 새로운 진입을 중단시킬 수 있지만, 민간 블록체인은 참여자의 행동과 거래 검증 과정에 대한 통제력을 어느 정도 제공한다. 블록체인 기반 시스템의 사용은 시스템 보안의 조기 고려에 의해 뒷받침되는 해당 시스템의 투명성과 사용성에 대한 신호이다. 기업이 안전한 프라이빗 인트라넷이나 인터넷에서 어떤 시스템을 더 잘 호스팅하는지를 결정하는 것과 마찬가지로 빠른 트랜잭션이 필요한 시스템, 트랜잭션 역전의 가능성, 그리고 거래 검증에 대한 중앙 집중식 제어가 더 적합할 것이다. 광범위한 참여로부터 투명성과 제3자 검증이 퍼블릭 블록체인에서 번창할 것이다.