비트코인은 어떻게 보안을 유지하나요?
2008년 11월 1일 탄생 이후, 현재 7,000억 달러 이상의 가치를 지닌 비트코인은 13년 동안 운영되어 왔으며, 지난 수년간의 강력한 성장으로 주목을 받게 되었습니다. 일반적인 기관들의 경우 거래량과 데이터가 증가함에 따라 해커 공격의 위험성과 유지보수 비용이 증가합니다. 하지만 오픈소스 코드를 가진 탈중앙화된 비트코인에는 이러한 문제가 해당되지 않는 것 같습니다. 그렇다면 어떻게 운영 보안을 보장하는 것일까요? 누가 비트코인 네트워크를 유지관리하는 것일까요? 비트코인 네트워크는 긴 역사 동안 보안 문제나 해킹을 겪은 적이 있을까요?
비트코인의 오픈소스 코드를 살펴보겠습니다.
2008년 11월 1일 비트코인 백서가 공개된 후, 사토시 나카모토는 비트코인 백서의 규칙을 구현하는 소프트웨어를 개발하기 시작했고, 2009년 1월에 첫 번째 블록을 생성하여 50 비트코인의 보상을 받았습니다. 이후 비트코인은 공식적으로 암호화폐로 등장했고, 그 네트워크는 대중의 관심을 끌기 시작했습니다. 하지만 놀랍게도 나카모토의 네트워크에서는 소스 코드를 수정할 수 있었고, 초기 발행 보상의 매개변수도 변경할 수 있었습니다. 이제 궁금해하실 수 있습니다. 그렇다면 비트코인의 수량을 위조할 수 있다는 뜻 아닌가요? 그리고 매개변수를 변경할 수 있다면, 언제든지 인플레이션이 발생할 수 있다는 의미인가요?
왜 아무도 실제로 수량을 수정하지 않았을까요? 그러한 시도는 무의미하기 때문입니다!
비트코인과 그 네트워크 운영은 합의 메커니즘을 기반으로 하며, 모든 사람이 기본 규칙에 동의할 때만 그 가치가 상승할 수 있습니다. 2,100만 비트코인의 일정한 발행에 대한 합의를 기반으로 해야만 채굴자들이 블록 채굴에 노력을 기울일 것입니다. 규칙이 변경되면 새로운 합의가 필요합니다. 만약 아무도 새로운 규칙을 받아들이지 않고 새로운 규칙 하에서 채굴을 하지 않는다면, 그 암호화폐는 가치가 없어질 것입니다.
이제 궁금하실 수 있습니다. 비트코인의 역사에서 합의에 도달한 규칙 변경 제안이 있었나요?
실제로 있었습니다. 비트코인이 더 널리 받아들여지면서, 블록 크기 제한과 초당 7개의 거래만 처리할 수 있다는 단점이 날이 갈수록 더욱 분명해졌습니다. 2017년 7월, 비트코인 네트워크의 혼잡 문제를 해결하기 위해 두 진영이 등장했습니다. 한 진영은 1M 블록 크기를 유지하고 분리된 증인, 간접 확장, 라이트닝 네트워크를 채택하여 부하를 분산시키자고 주장했고, 다른 진영은 블록 용량의 직접적인 확장을 주장했습니다. 결과적으로 비트코인 네트워크는 전자의 접근 방식을 따랐고, 후자는 비트코인에서 분리되어 비트코인 캐시를 만들었습니다.
따라서 이론적으로는 누구나 코드와 규칙을 수정할 수 있지만, 실제로 아무도 변경에 동의하지 않으면 그 수정은 정당성을 얻지 못합니다. 그리고 수정 계획이 부분적으로만 승인된다면, 그 계획을 계속 진행하는 유일한 방법은 비트코인 네트워크에서 분리하여 새로운 체인과 화폐를 만드는 것입니다. 따라서 이론적으로는 비트코인 발행 매개변수를 수정할 수 있지만, 실제로는 아무도 수정할 수 없습니다.
그렇다면 논의해 보겠습니다. 비트코인 네트워크가 보안 문제를 겪은 적이 있나요? 그리고 비트코인에 중앙 통제가 없다면, 누가 네트워크의 보안을 유지하나요?
비트코인 네트워크에는 중앙 통제가 없지만, 네트워크 보안, 코드 버그 수정, 업데이트는 코어 개발팀이 유지관리합니다. 코어 개발팀은 전통적인 중앙집중식 회사가 아닌, 핵심 개발자들과 많은 단기 기여자들로 구성된 비트코인 개발 커뮤니티를 포함하는 비영리 조직입니다. 실제로 비트코인 네트워크에는 보안 취약점이 있었습니다. 특히 초기에 많았지만, 이 조직에 의해 모두 수정되었습니다.
예를 들어, 비트코인은 2010년 8월 15일 가치 오버플로우 사건에서 가장 심각한 버그를 겪었습니다. 한 개발자가 총 1,844억 비트코인을 포함한 두 개의 거래가 있는 비트코인 블록을 발견했는데, 이는 원래 시스템의 검사를 피해갔습니다. 이 엄청난 버그는 거의 비트코인을 파괴할 뻔했습니다. 당시 총 공급량이 2,100만개에 불과했기 때문입니다. 갑자기 나타난 1,844억 비트코인은 비트코인에 대한 신뢰 기반을 무너뜨렸습니다. 이 버그가 수정되지 않았다면, 비트코인의 가치는 즉시 완전히 사라졌을 것입니다.
버그가 공개된 후, 코어 개발자들은 즉각적인 조치를 취했습니다. 그들은 1,844억 거래 기록을 삭제하고, 비트코인 0.3.1을 출시하여 단 5시간 만에 소프트 포크를 통해 버그를 수정했습니다. 업데이트된 규칙은 모든 가치 오버플로우 사고를 영구적으로 제거했습니다. 그 이후로 몇 가지 사소한 비트코인 버그들이 있었지만, 모두 수정되었습니다.
비트코인이 어떻게 버그를 그렇게 빨리 수정할 수 있었을까요?
코어 개발자들의 신속한 버그 발견과 수정 외에도, 또 다른 이유는 토큰의 데이터 확인 규칙인 최장 체인 규칙이 제공하는 네트워크의 수리 공간입니다. 즉, 노드는 자신의 작업이 다른 노드들에 의해 인정될 때만 보상을 받을 수 있습니다. 노드가 받는 인정이 많을수록 더 긴 체인을 생성하게 되고, 그 체인에서의 채굴 보상도 더 많아집니다. 반대로 인정이 적으면 체인이 짧아지고 보상도 감소합니다.
비트코인의 버그 수정은 좋은 체인이 인정을 받아 긴 체인으로 성장하고, 나쁜 체인이 짧은 체인으로 잘려 버려지는 과정입니다. 따라서 비트코인 네트워크 코드가 오픈 소스이지만, 운영 보안은 문제가 되지 않습니다. 누가 규칙이나 코드를 변경하는지는 중요하지 않습니다. 핵심은 인정에 있기 때문입니다.
여기서 또 다른 질문이 생깁니다. 최장 체인 규칙의 채택이 비트코인을 51% 공격에 취약하게 만드나요? 누군가 51%의 해시레이트만 있다면 비트코인 네트워크를 공격하고 심지어 파괴할 수 있나요?
왜 51%의 해시레이트가 공격이 될까요?
처음에는 모든 사람이 같은 체인에서 채굴을 합니다. 하지만 누군가 51% 이상의 해시레이트를 가지게 되면, 원래 체인을 추월할 수 있는 새로운 체인을 시작할 수 있습니다. 최장 체인 규칙에 따라 새로운 체인이 기존 체인을 대체하여 메인 체인이 되고, 그 결과 기존 체인의 모든 거래 기록이 무효가 됩니다.
51%의 해시레이트를 가진 개인들은 자신의 모든 코인을 사용하고 그 지출을 기존 체인에 기록한 후, 새로운 체인에서 채굴을 다시 시작할 것입니다(새로운 체인에는 사용된 코인의 기록이 없습니다). 새로운 체인의 길이가 기존 체인을 초과하면 기존 체인은 무효가 되고, 그 안에 기록된 지출도 무효가 됩니다. 즉, 사용된 코인이 여전히 남아있다는 의미입니다. 이것이 잘 알려진 "이중 지불 공격"입니다. 다른 사람들이 자신의 코인을 반복적으로 사용할 수 있는 반면, 당신의 코인은 항상 왔다 갔다 하는 상황을 상상해보세요. 이런 암호화폐를 계속 사용하시겠습니까? 절대 그렇지 않을 것입니다.
따라서 이중 지불 공격이 발생하면 암호화폐의 신뢰도가 크게 손상됩니다. 그리고 막을 수 없는 공격이 있다면, 그것은 전혀 안전하지 않기 때문에 그 화폐의 종말이 될 것입니다. 비트코인이 이런 무서운 51% 공격을 겪은 적이 있을까요?
답은 아니오입니다. 왜일까요?
비트코인은 거대한 존재가 되었습니다. 51%의 해시레이트를 얻는 데는 많은 비용이 들지만, 공격으로 얻는 이득은 그에 비례하지 않습니다. 설령 누군가 51%의 해시레이트로 공격을 시작하더라도, 할 수 있는 것은 두 가지뿐입니다: 1) 자신의 거래 기록을 수정하는 것(이중 지불 등), 2) 일부 또는 모든 거래의 확인을 방해하는 것. 이렇게 해서는 비트코인을 무에서 창조할 수도 없고, 각 블록에서 생성되는 비트코인의 수를 수정할 수도 없습니다. 어떤 경우에도 손해를 보는 장사가 될 것입니다.
또한, 비트코인에는 풀 노드라는 두 번째 보호층이 있습니다.
이는 악의적인 해시레이트가 있더라도 비트코인 네트워크를 파괴하기 어렵다는 것을 의미합니다. 비트코인 합의를 변경하려는 반란적인 해시레이트가 비트코인 네트워크에 있더라도, 풀 노드로 구성된 비트코인 네트워크가 이러한 거래를 거부할 수 있습니다. 따라서 비트코인은 51% 공격에 거의 면역이 있습니다. 비트코인 네트워크가 커질수록 공격이 발생할 가능성은 더욱 낮아집니다.
또한, 비트코인은 악의적인 노드가 라이트닝 네트워크에서 자산을 훔치는 것과 DoS 공격과 같은 취약점에도 직면해 있습니다. 2019년 버전 업데이트에서 라이트닝 네트워크는 RSMC 프로토콜을 사용하는 사기 처벌 메커니즘을 출시하여 취약점을 수정했습니다. 해커가 라이트닝 네트워크에서 자금을 훔치는 것이 발견되면, 훔친 자금뿐만 아니라 관련 채널의 모든 자금을 잃게 됩니다.
요약
요약하자면, 비트코인 네트워크가 오랫동안 안정적으로 유지될 수 있었던 것은 완벽하지 않은 네트워크 자체나 해킹에 대한 면역성 때문이 아니라, 합의 메커니즘, 최장 체인 규칙, 풀 노드, 그리고 비트코인 네트워크 구현을 지원하는 비트코인 코어 오픈소스 때문입니다. 이러한 요소들이 함께 많은 개발자들이 자발적으로 취약점을 수정하도록 장려하여 비트코인 네트워크를 자가 치유하고 공격에 저항할 수 있게 만들었습니다.