비트코인 네트워크가 중단된적이 있다는데 무슨 이유인가요?

암호화폐 미디어에서 들은 소식을 보니 비트코인이 2009년 1월3일 추시된 이후 지난 10년동안 네트워크가 다운된적이 두차례가 있었다고 합니다. 어떤 사건으로 인해서 네트워크가 중단된것인지 궁금합니다.

    1개의 답변이 있어요!

    • 질문해 주신 내용과 관련하여 우선 Value overflow incident(가치 초과 사건)이 있습니다. 이 사건은 2010년 8월 15일에 발생한 것으로, 트랜젝션을 블록에 기록하기 전에 유효성을 검증하는 과정에서 사용되는 코드가 비트코인 총 발행량을 초과하는 Output 값을 가지지 못하도록 설정되어 있지 않았기 때문에 높이가 74638에 해당하는 블록에 합계 기준 약 1800억 BTC를 생성한 트랜잭션이 포함되는 Overflow(초과) 문제가 발생되었습니다.

      이러한 문제가 발생되자 긴급하게 소프트 포크를 진행해야 할 필요성이 생겼고 Output 값이 비트코인의 총 발행량을 초과하는 트랜젝션이 만들어질 수 없도록 하는 새로운 합의 규칙이 5시간 정도가 지나 새로운 버전(0.3.1)의 클라이언트에 추가되며 소프트 포크가 이루어졌습니다.

      이렇게 새 버전의 클라이언트 소프트웨어가 배포되고도 한동안 업데이트가 완료되지 않아 Overflow 문제를 가진 구 버전의 체인과 소프크포크가 이루어진 신 버전의 체인이 나란히 이어지는 포크 상태가 이어지면서 무엇이 메인체인인지 명확하지 않은 상황에서 사실상 네트워크 중단 사태가 빚어진 바가 있습니다.

      하지만 새로운 버전이 적용된 체인이 높이가 74691인 블록을 먼저 생성하고 더 길이가 긴 체인을 완성하고 그것이 메인체인으로 모든 노드에게 인정받게 됨으로써 지금으로 이어지고 있습니다.

      다음으로 2013년 3월 11일에 비트코인 블록체인이 포크가 될 뻔한 위기가 있어 기존의 메인 체인을 이어나가기 위한 노력이 이루어지게 되며 6시간이 넘게 메인 블록체인이 모호한 상태로 사실상 네트워크가 중단되는 사태가 발생한 바가 있습니다.

      이 사건의 경우 앞서 사건과 비슷하게 비트코인 클라이언트 소프트웨어의 버전을 0.7에서 0.8로 업그레이드 하는 과정에서 발생했습니다.

      즉, 클라이언트 소프트웨어의 버전이 0.8로 업그레이드가 된 상황에서, 블록체인 네트워크의 다수 노드들이 새로운 버전으로 업그레이드를 미처 완료하지 못했기 때문에 기존의 0.7버전을 이용하여 블록을 생성하는 노드들이 다수 존재하게 되었고, 이로인해 블록높이가 225430인 블록에서 블록체인이 분기(Fork)되는 사건이 발생한 것입니다.

      이러한 문제를 해결하기 위해서는 어느 한 버전에 해당하는 블록체인을 메인 체인으로 간주하고 그것을 이어나가야 하는데, 새로운 버전인 0.8을 택하게 된다면 다수의 노드들이 새로운 버전으로의 업그레이드를 완료할 때까지 이러한 사태가 진행되어야만 했습니다.

      그렇기 때문에 비트코인 개발자들과 많은 해시 파워를 보유하고 있는 주요 채굴 업자들이 논의를 하여 0.7 버전으로 클라이언트 소프트웨어를 다운그레이드 하기로 결정하게 됩니다.

      이렇게 되면 기존의 업그레이드를 완료하지 않은 노드들이 새롭게 업데이트를 하지 않아도 되며, 주요 채굴 업자들의 해시파워가 0.7버전의 체인 상으로 옮겨가 블록을 채굴하게 됨으로써 0.7 버전의 블록 생성이 활발하게 이루어지고 0.8버전의 포크 체인보다 길이가 길어질 가능성이 높아지게 됩니다.

      결국 6시간이 넘는 시간이 흘러 높이가 225454인 블록을 기존의 메인 체인인 0.7버전의 체인 상에서 생성하며 0.8버전보다 길이가 더 길어져 메인 체인으로 결정되었고 비트코인 네트워크의 중단 사태가 마무리가 되게 되었습니다.

      끝으로 이러한 두 사건을 통해 비트코인도 잘 알려지지는 않았지만 위기를 겪었고 그러한 위기를 극복하며 발전해 온 블록체인이라는 것을 알 수 있고, 블록체인 네트워크에서 '포크'가 가지는 위험성에 대해서도 알 수 있지 않나 싶습니다.

      답변이 도움이 되길 바랍니다.