디지털 자산
하드 포크란 무엇인가?
블록체인 규칙의 변경은 이용자, 개발자, 트레이더와 투자자에게 영향을 줄 수 있다. 이를 이해하는 데 중요한 개념이 하드 포크다. 하드 포크는 기존 소프트웨어와 호환되지 않는 합의 규칙의 변경을 뜻한다.
모든 블록체인 업데이트에 하드 포크가 필요한 것은 아니다. 소프트 포크도 있고 합의 규칙을 바꾸지 않는 소프트웨어 개선도 있다. 차이를 알면 어떤 소프트웨어가 새 규칙을 검증하는지, 언제 네트워크가 갈라질 수 있는지 이해할 수 있다.
하드 포크란?
하드 포크는 노드가 블록과 거래의 유효성을 판단하는 규칙을 바꾼다. 새 규칙에 맞는 블록을 기존 규칙을 따르는 노드는 거부할 수 있다. 새 기능을 도입하거나 프로토콜의 제한을 바꿀 때 사용될 수 있으며, 핵심은 코드 변경량보다 합의 규칙의 호환성이다.
새 규칙의 체인을 검증하려는 노드 운영자는 이를 지원하는 소프트웨어를 사용해야 한다. 모든 참여자가 기술적으로 강제되는 것은 아니다. 일부는 기존 규칙을 계속 따를 수 있고, 기존 체인의 생존 여부는 참여자의 지원과 합의 방식에 달려 있다.
개발자나 커뮤니티 구성원은 기능 추가, 문제 수정 또는 다른 개발 방향을 위해 하드 포크를 제안할 수 있다. 제안만으로 네트워크가 바뀌지는 않는다. 참여자들이 소프트웨어를 채택하고 규칙의 활성화를 조율해야 한다.
하드 포크가 일어나면?
새 규칙은 보통 정해진 블록 높이나 시점에 활성화된다. 업데이트하지 않은 노드는 새 노드가 수용하는 블록을 거부할 수 있다. 하지만 하드 포크가 반드시 두 개의 지속적인 네트워크나 통화를 만드는 것은 아니다. 참여자가 함께 전환하면 기존 체인은 멈출 수 있다.
서로 다른 집단이 호환되지 않는 규칙에 따라 계속 블록을 만들면 장기적인 분리가 생길 수 있다. 이는 유효한 두 블록이 거의 동시에 발견된 뒤 네트워크가 하나의 기록으로 수렴하는 일시적인 분기와 다르다.
두 체인이 살아남으면 분기 이전의 기록을 공유하고 이후에는 각자 발전한다. 기존 체인이 자동으로 무의미해지는 것은 아니다. 두 체인 모두 이용자, 개발자, 노드 운영자와 채굴자 또는 검증자의 지원에 의존한다.
분기 후 어느 체인이 원래 체인인가?
하드 포크는 비트코인이나 이더리움에만 일어나는 일이 아니다. 분기 후 이름과 정체성은 커뮤니티와 시장의 사용 및 인정에 달려 있다. 최신 코드를 적용한 체인이 언제나 기존 이름을 가져간다는 보편적인 규칙은 없다.
규칙의 업데이트와 프로젝트 정체성은 별개의 문제다. 합의된 업데이트 뒤에도 네트워크가 이름을 유지할 수 있다. 반대하는 집단은 다른 이름으로 별도 체인을 이어갈 수 있다. 그렇다고 비트코인의 모든 업데이트가 하드 포크인 것은 아니다.
비트코인 캐시와 비트코인 골드는 비트코인 관련 분기에서 나온 프로젝트의 예다. 비트코인 SV는 이후 비트코인 캐시의 분기에서 나왔다. 이들은 같은 비트코인 소프트웨어의 버전 이름이 아니라 별도의 네트워크다.
하드 포크를 제안하는 이유
새 기능, 합의 매개변수 변경이나 취약점 수정 등이 이유가 될 수 있다. 다수의 지지는 조율에 도움이 되지만 모든 노드를 강제로 바꾸는 중앙의 결정은 아니다. 참여자는 자신이 실행할 규칙을 선택한다.
규모가 크거나 노드가 많다고 공격에 자동으로 안전한 것은 아니다. 스마트 계약, 소프트웨어와 합의의 취약점은 서로 다른 문제다. 특정 상황에서 커뮤니티가 네트워크 상태 변경을 지지할 수는 있지만, 거래 기록을 마음대로 삭제할 수 있다는 뜻은 아니다.
규칙 변경은 플랫폼 이전과도 구별해야 한다. 후자의 사례는 폴리매스와 이더리움에 관한 관련 기사에서 다룬다. 하드 포크로 상태를 변경한 사례로는 2016년 DAO 공격에 대한 이더리움의 대응이 있다.
2016년 7월 20일 블록 1,920,000에서 DAO 포크가 활성화됐다. 이더리움 재단의 보고는 관련 DAO 계약의 자금을 복구 계약으로 옮기는 상태 변경을 설명한다. 큰 지지가 있었다고 커뮤니티 전체가 동의한 것은 아니다. 일부는 변경을 거부하고 포크하지 않은 체인을 이더리움 클래식으로 이어갔다.
포크는 공격 거래를 기록에서 지우지 않았다. 상태 변경으로 자금을 새 계약에 옮겨 DAO 토큰 보유자의 권리에 따라 인출하도록 했다. 복구는 이 계약을 통해 이뤄졌으며 모든 보유자에게 자동으로 동시에 지급된 것은 아니다.
하드 포크와 소프트 포크의 차이
둘 다 합의 규칙을 바꿀 수 있지만 호환성이 다르다. 소프트 포크는 규칙을 강화하므로 새 규칙에 맞는 블록을 기존 노드도 받아들인다. 다만 기존 노드는 새로 추가된 제약을 모두 검증하지는 않는다.
하드 포크에서는 기존 노드가 새 규칙에 맞는 블록을 거부할 수 있다. 두 집단이 각자의 규칙을 유지하면 두 체인이 살아남을 수 있다. 소프트 포크는 호환되는 하나의 체인을 유지하도록 설계하지만 조율이나 구현에 문제가 생기면 분리 등 문제가 발생할 수 있다.
모든 새 규칙을 검증하려는 운영자는 소프트웨어를 업데이트해야 한다. 소프트 포크에서는 기존 노드가 추가 제약을 모두 이해하지 않아도 새 블록을 따라갈 수 있다. 하드 포크에서는 그 블록을 거부할 수 있다. 따라서 두 방식이 반드시 같은 종류의 분리를 만드는 것은 아니다.
하드 포크가 본질적으로 소프트 포크보다 안전한 것은 아니다. 보안은 설계, 구현, 시험, 활성화 조율과 네트워크 지원에 달려 있다. 소프트 포크도 낡은 방식이 아니다. 비트코인 탭루트는 2021년에 활성화된 소프트 포크다. 하드 포크 자체가 훨씬 많은 연산 능력을 요구하는 것도 아니며, 자원 요구량은 구체적인 프로토콜 변경에 달려 있다.
결론
하드 포크는 기존 노드와 호환되지 않는 합의 변경을 가능하게 한다. 개발 계획에 포함되거나 긴급한 문제에 대응할 수 있지만 모든 새 기능에 필요한 것은 아니다.
결과는 변경 내용과 참여자의 지원에 달려 있다. 조율된 업데이트는 하나의 네트워크를 유지할 수 있고 의견 충돌은 별도 체인을 만들 수 있다. 이용자는 자신이 선택한 규칙, 소프트웨어와 네트워크를 이해하는 것이 중요하다.












