소프트 포크란 무엇인가요? 비트코인 하위 호환성에 대한 설명
블록 481,824. 바로 이 시점에 비트코인의 첫 번째 주요 소프트 포크인 세그윗(SegWit)이 2017년 8월 24일 프로토콜에 통합되었습니다. 이 숫자가 중요한 이유는 소프트 포크가 비트코인과 같은 블록체인이 네트워크를 분할하지 않고 자체적으로 업그레이드하는 방식이기 때문입니다. 새로운 규칙이 배포되고 기존 소프트웨어는 계속 실행되며, 두 가지는 동일한 체인 상에 유지됩니다.
대부분의 사람들에게 소프트 포크가 무엇인지 물어보면 한 줄짜리 대답을 듣게 될 겁니다. 블록체인 프로토콜의 하위 호환성을 유지하는 변경 사항이라는 거죠. 기술적으로는 맞는 말이지만, 그다지 유용하지는 않습니다. 실제는 훨씬 복잡하고 흥미롭습니다. 소프트 포크는 개발자들이 규칙 변경을 제안하고, 채굴자들이 지지 의사를 표명하거나 조용히 거부하고, 노드 운영자들이 어떤 소프트웨어를 실행할지 선택하고, 사용자들이 백그라운드에서 어떤 것이 비트코인으로 인정될지 주장하는 등 여러 요소가 얽히고설킨 긴 과정의 결과물입니다. 이 글에서는 이러한 메커니즘을 쉬운 말로 설명하고, 대표적인 사례(SegWit과 Taproot)를 블록 단위로 살펴봅니다. 그리고 마지막으로, 다음 소프트 포크 대상이 무엇이 될지에 대한 뜨거운 논쟁을 다룹니다.
소프트 포크 정의: 하위 호환성을 유지하는 블록체인 업그레이드
소프트 포크는 규칙을 강화하는 것이라고 생각하면 됩니다. 새로운 규칙에 따라 합법적인 것은 기존 규칙에서도 여전히 합법적입니다. 따라서 기존 노드는 새로운 블록을 문제없이 계속 수용합니다. 새로운 노드는 강화된 규칙을 위반하는 기존 방식의 블록은 거부하지만, 규칙 자체가 바뀌는 것이 아니라 더 엄격해지는 것입니다. 네트워크의 분위기는 변하지 않습니다. 유효한 것으로 간주되는 기준만 달라지는 것입니다.
좋은 예로 비트코인의 BIP 16, 즉 Pay-to-Script-Hash(P2SH) 소프트 포크를 들 수 있습니다. 이 소프트 포크는 2012년 4월 1일, 173,805번째 블록에서 활성화되었습니다. BIP 16 이전에는 비트코인 스크립트에 P2SH라는 거래 유형이 존재하지 않았습니다. BIP 16이 배포된 후, 업그레이드된 노드들은 P2SH를 강제 적용했습니다. 기존 노드들은 동일한 출력값을 보고 누구나 사용할 수 있는 이상한 스크립트를 보았지만, 대수롭지 않게 여기고 블록을 그대로 받아들였습니다. 그들은 어겨야 할 규칙이 있다는 사실조차 몰랐습니다. 새로운 규칙이 기존 규칙의 하위 집합이었기 때문에 체인은 그대로 유지되었습니다. 이렇게 비트코인은 조용히 새로운 기능을 갖게 되었습니다.
이것이 바로 핵심적인 속임수입니다. 기존 소프트웨어는 새로운 소프트웨어가 허용하는 모든 것을 포함하는 상위 집합을 받아들입니다. 체인 분할도 없고, 클레임 기간도 없고, 새로운 코인도 없습니다. 블록체인 네트워크는 사용자가 어떤 소프트웨어 버전을 사용하든 모두가 동의하는 하나의 체인을 계속해서 생성합니다. 이는 소프트웨어 변경처럼 보이지만, 놀랍도록 정교한 사회 공학적 기법입니다.
이러한 속성은 소프트 포크와 기존 소프트웨어와의 호환성 문제를 구분하는 기준이 됩니다. 업그레이드로 인해 이전에 유효했던 블록이 기존 소프트웨어에서 무효화될 수 있다면, 그것은 소프트 포크가 아니라 하드 포크입니다. 두 경우 모두 장단점이 완전히 달라집니다. 블록체인 기술 관점에서 이 두 가지 포크 유형의 차이는 한 가지 실질적인 질문으로 귀결됩니다. 업그레이드하지 않은 노드가 새로운 블록을 여전히 유효한 것으로 받아들일 것인가?
소프트 포크 vs 하드 포크: 실제 차이점
하드 포크는 그 반대 방향으로 진행됩니다. 규칙을 완화하거나 기존 소프트웨어가 완전히 거부할 방식으로 규칙을 변경합니다. 기존 노드는 새로운 블록을 보고 유효하지 않다고 판단하여 따르기를 거부합니다. 모든 노드가 업그레이드하거나 네트워크가 분리됩니다. 이 두 가지 선택지만 존재합니다.
두 가지 사례가 자주 등장합니다. 2016년 7월 20일, 192만 번째 블록에서 이더리움의 DAO 포크가 발생하여 약 1,200만 ETH가 손상된 두 개의 스마트 계약에서 다른 블록체인으로 이동했습니다. 기존 노드들은 이 변경을 거부하고 원래 체인을 계속 운영했으며, 이로 인해 이더리움 클래식이 탄생했습니다. 비트코인 캐시는 1년 후 같은 현상을 보였습니다. 2017년 8월 1일, 478,559번째 블록에서 비트코인 캐시는 블록 크기 제한을 1MB에서 8MB로 늘렸습니다. 기존 비트코인 노드들은 더 커진 블록을 즉시 거부했습니다. 그 순간부터 비트코인 캐시는 새로운 블록체인 상의 별개의 암호화폐가 되었습니다.
소프트 포크는 애초에 그런 복잡한 문제를 피하도록 설계되었습니다. 기존 노드들은 아무런 조치를 취하지 않고, 완화된 규칙에 따라 계속해서 블록을 검증합니다. 대다수의 채굴자들이 새로운 규칙을 적용하면, 채굴되는 모든 블록은 두 가지 규칙 체계 모두에서 동시에 유효하게 됩니다. 하나의 경제 체인, 하나의 원장인 셈이죠. 이러한 비대칭성이 바로 비트코인 문화가 소프트 포크를 기본으로 하고 하드 포크를 최후의 수단으로 여기는 구조적인 이유입니다.

비트코인에서 소프트 포크가 실제로 어떻게 작동하는가
대부분의 설명은 여기서 멈춥니다. 소프트 포크가 "규칙을 강화한다"고만 말하고 넘어갑니다. 하지만 아무도 자세히 설명하려 하지 않는 부분은 바로 그 강화가 실제로 어떻게 이루어지는가 하는 점입니다. 소프트 포크는 개발자가 스위치를 켜는 것처럼 간단하게 이루어지는 것이 아닙니다. 느리고 때로는 복잡한 조정 과정을 거쳐야 합니다. 그리고 이러한 조정 과정은 비트코인 자체에 설계되어 있습니다.
기존의 소프트 포크 활성화 방식은 채굴자 신호 방식입니다. 소프트 포크 제안은 BIP(비트코인 개선 제안)가 되어 블록 헤더 버전 필드에 비트가 할당됩니다. 업그레이드된 소프트웨어를 실행하는 채굴자들이 이 비트를 변경합니다. 이러한 블록들의 채굴 능력이 나머지 네트워크가 활성화 준비 상태를 판단하는 신호가 됩니다. 신호가 전달된 블록의 비율이 정해진 기간 내에 임계값을 넘으면 포크가 활성화됩니다. 2017년까지 사용된 모델은 BIP 9으로, 2016년 블록을 기준으로 95% 이상의 신호가 전달되면 활성화되는 방식이었습니다. 이후 BIP 8이 도입되었는데, 이 버전에는 마감일이 추가되어 지연된 제안이 영원히 활성화되지 못하는 것을 방지합니다.
그 모델은 결국 실패로 돌아갔습니다. SegWit은 2017년 초 채굴자 지지율이 30~45%에 머무르며 몇 달 동안 정체되었습니다. 대형 채굴자들은 신호를 보내지 않을 이유가 있었고, 그 이유들은 모두 좋지 않았습니다. 커뮤니티는 해결책을 찾아야 했습니다. BIP 91은 실질적인 임계값을 낮추고 신속하게 배포했습니다. 동시에, 사용자 주도의 소프트 포크인 BIP 148이 2017년 8월 1일을 마감일로 설정했습니다. 이 날 이후, BIP 148 노드는 SegWit 신호를 보내지 않는 모든 블록을 거부하기 시작했습니다. BIP 91과 UASF의 정치적 압력이 결합되어 교착 상태가 해결되었습니다. 대부분의 사람들은 이런 상황을 본 적이 없었습니다. 누가 실제로 이 교착 상태를 해결했는지에 대해서는 아직도 많은 사람들이 논쟁하고 있습니다.
Taproot 커뮤니티는 좀 더 깔끔한 방식인 '신속 시험(Speedy Trial)'을 시도했습니다. 90일 동안 90%의 시그널링 임계값을 달성하면 포크가 활성화되고, 실패하면 제안은 깔끔하게 만료되어 다시 시도할 수 있습니다. Taproot는 별다른 문제 없이 임계값을 넘어 2021년 11월 14일 709,632번째 블록에서 활성화되었습니다.
소프트 포크 활성화 모델
| 방법 | 어떻게 작동하는가 | 예 | 결과 |
|---|---|---|---|
| 비피프 9 | 2016개 블록 기간 동안 95% 채굴 신호 | SegWit (초기에 멈춤) | 초기 포크 버전에서는 잘 작동했지만, SegWit에서 교착 상태에 빠졌습니다. |
| BIP 91 | 신호 끊김 해제 임계값 낮추기 | 2017년 8월 SegWit 출시 | SegWit 교착 상태를 해결했습니다. |
| BIP 148 (UASF) | 노드는 마감 시간을 설정하고, 신호가 없는 블록은 거부합니다. | SegWit 2017년 8월 1일 | 정치적 압력으로 인해 BIP 91로 즉시 대체됨 |
| BIP 8 / 신속 재판 | 정해진 시간 내에 90% 이상의 신호가 수신되거나 만료됩니다. | 탭루트 2021 | 깔끔하게 활성화되었고, 아무런 문제도 없었습니다. |
비트코인 소프트 포크: SegWit 및 Taproot 사례 연구
세그윗(SegWit, Segregated Witness의 줄임말)은 비트코인 역사상 가장 많이 언급되는 소프트 포크입니다. 세그윗은 거래 서명, 즉 "증인 데이터"를 거래 본문에서 분리하여 별도로 저장하는 방식을 개발했습니다. 기존 노드들은 새로운 출력값을 누구나 사용할 수 있는 스크립트로 인식하고 이를 포함하는 블록을 승인했습니다. 반면 새로운 노드들은 증인 규칙을 제대로 적용했습니다. 핵심은 기본 거래 구조에 대한 소프트 변경을 통해 실질적인 용량 증가를 이뤄냈다는 점입니다. 비트코인의 1MB 블록 크기 제한은 400만 가중치 단위 제한으로 대체되었습니다. 실제로 현재 일반적인 블록에는 약 1.8MB의 데이터가 저장됩니다. 이론적인 최대 용량은 약 2.4MB입니다.
SegWit은 2017년 8월 24일 01:57:37 UTC에 블록 481,824에서 활성화되었습니다. 해당 블록이 활성화되기까지의 8개월은 이제 비트코인 거버넌스의 중요한 역사적 사건으로 자리 잡았습니다. 채굴자 지원은 2017년 대부분 기간 동안 정체되어 있었습니다. 결국 BIP 91, UASF의 위협, 그리고 소위 SegWit2x 합의를 통해 활성화가 이루어졌습니다. 제가 이 시기를 계속해서 언급하는 이유는 이후 모든 활성화 사례 연구의 기준이 되었기 때문입니다.
Taproot은 두 번째로 많이 언급되는 소프트 포크이며, SegWit 이후 비트코인에서 가장 깔끔하게 활성화된 사례일 것입니다. SegWit이 활성화된 지 4년 후인 2021년 11월 14일, 709,632번째 블록에서 활성화되었습니다. 90%의 신속 테스트(Speedy Trial) 통과 과정은 예상보다 훨씬 순조로웠습니다. Taproot은 Schnorr 서명, MAST 트리, 그리고 단일 서명, 다중 서명, 스크립트 경로 지불에 대한 통합 출력 유형이라는 세 가지 주요 기능을 도입했습니다. 이러한 변화는 라이트닝 네트워크와 같은 솔루션이 시간이 지남에 따라 더욱 효율적으로 발전할 수 있는 기반을 마련했습니다.
Taproot의 후속 이야기는 주목할 만합니다. 2023년까지 채택률은 꾸준히 상승했고, 2024년 초에는 오디널(Ordinals) 서명 붐에 힘입어 전체 비트코인 거래의 약 42%를 차지하며 정점을 찍었습니다. 그러나 2025년 중반에는 약 20%로 떨어졌습니다. 서명 활동도 주춤했고, Taproot의 서명 체계가 미래의 양자 컴퓨팅 공격에 취약한지에 대한 논쟁도 불거졌습니다. 하지만 이러한 모든 요인들이 Taproot의 활성화를 막지는 못했습니다. 다만 사용량 곡선은 프로토콜 측면의 소프트 포크가 성공적이라고 해서 자동으로 지갑이나 사용자 채택으로 이어지는 것은 아니라는 점을 상기시켜 줍니다.
비트코인의 소프트 포크 계보
| BIP / 이름 | 활성화됨 | 차단하다 | 한계점 |
|---|---|---|---|
| BIP 16 (P2SH) | 2012년 4월 1일 | 173,805 | 55% |
| BIP 34 | 2013년 3월 24일 | 227,835 | 95% |
| BIP 66 | 2015년 7월 4일 | 363,731 | 95% |
| BIP 65 (CLTV) | 2015년 12월 14일 | 388,380 | 95% |
| BIP 141 (SegWit) | 2017년 8월 24일 | 481,824 | 95% (BIP 91 이후) |
| BIP 340/341/342 (원뿌리) | 2021년 11월 14일 | 709,632 | 90% 빠른 체험 |
2025-2026 소프트 포크 논쟁: OP_CTV와 OP_CAT
현재 비트코인의 탭루트 이후 첫 번째 본격적인 소프트 포크 논의가 진행 중입니다. 논쟁의 핵심은 비트코인 스크립트의 표현력을 어느 정도로 해야 하는지에 대한 것입니다. 두 가지 제안이 논의를 이끌고 있지만, 아직 어느 쪽도 우위를 점하지 못했습니다.
OP_CHECKTEMPLATEVERIFY는 BIP 119로 공식화되었으며, 특정 미래 지출 패턴을 확정할 수 있는 스크립트 오퍼레이션 코드를 추가합니다. OP_CAT는 2024년 4월에 BIP 번호를 부여받아 BIP 347로 공식화되었으며, 스크립트 요소 연결을 다시 활성화합니다. 이는 사토시 나카모토가 서비스 거부 공격 우려로 2010년에 제거했던 기능입니다. 두 오퍼레이션 코드 모두 비트코인 개발자들이 '코버넌트(Covenant)'라고 부르는 기능을 위한 게이트웨이 프리미티브입니다. 코버넌트는 코인을 다음에 보낼 위치를 제한하는 스크립트입니다. 이를 통해 비트코인 블록체인 위에 구축된 레이어에서 볼트, 혼잡 제어 배치 처리, 네트워크 처리량 개선 등의 기능을 구현할 수 있습니다.
2026를 통해 OP_CTV의 활성화 매개변수가 2022년 이후 처음으로 공식적으로 논의 대상이 되었습니다. 제안된 임계값은 채굴자 신호 90%입니다. OP_CAT는 개발자 테스트 네트워크인 Signet에서 테스트 중입니다. 둘 다 아직 커뮤니티의 합의를 얻지 못했습니다. 커뮤니티가 고심하고 있는 이 문제는 현실적인 절충안입니다. 표현력이 풍부해지면 새로운 사용 사례가 가능해지지만, 비트코인의 공격 표면도 넓어집니다. 새로운 오퍼코드는 영구적으로 저장됩니다. 저는 둘 중 어느 것도 2026에서 통과될 것이라고 확신하지는 않지만, 이 논의는 비트코인 거버넌스가 여전히 소프트 포크를 고려할 수 있다는 가장 분명한 신호입니다.
소프트 포크가 지갑과 지갑 홀더에 미치는 영향은 무엇일까요?
비트코인을 보유한 사람이라면 누구나 소프트 포크가 발생했을 때 어떤 조치를 취해야 하는지 궁금해할 것입니다. 솔직히 말해서 거의 항상 답은 '아니요'입니다. 아무것도 할 필요가 없고, 청구할 것도 없고, 이전할 것도 없습니다. 소프트 포크는 새로운 디지털 자산을 생성하지 않습니다. 기존 지갑은 사용자의 별도 조치 없이 기존 규칙에 따라 계속해서 코인을 주고받을 수 있습니다.
예외는 소프트 포크가 새로운 주소 형식을 도입하는 경우입니다. SegWit은 bc1 주소 접두사를 추가했습니다. 지갑은 사용자가 SegWit 주소로 또는 SegWit 주소에서 코인을 주고받을 수 있도록, 그리고 새로운 거래 구조가 제공하는 수수료 절감 효과를 누리려면 새로운 형식을 지원해야 했습니다. 기존 지갑을 사용하는 사용자는 기존 주소를 통해 코인을 문제없이 주고받을 수 있었습니다. 새 버전으로 업그레이드하는 것은 선택 사항이었습니다. Taproot도 bc1p 주소에 대해 같은 방식을 적용했습니다. 이러한 선택적 참여 방식이 바로 소프트 포크의 핵심입니다. 소프트 포크는 하드 포크보다 혼란이 적은데, 그 이유는 도입이 점진적이고 자발적으로 이루어지기 때문입니다.
노드 운영자의 경우 상황이 조금 달라집니다. 소프트 포크 이후에도 이전 버전의 노드를 운영한다는 것은 더 이상 새로운 규칙을 직접 적용할 필요가 없다는 것을 의미합니다. 업그레이드된 마이너와 다른 노드들이 그 역할을 대신해 줄 것이라고 믿어야 합니다. 새 버전으로 업그레이드하지 않은 노드도 이전 소프트웨어 프로토콜을 사용하여 블록을 검증할 수는 있습니다. 다만 포크로 인해 도입된 새로운 제약 조건은 검증할 수 없습니다. 하지만 대부분의 운영자는 어쨌든 신속하게 업그레이드합니다. 이것이 바로 비트코인의 풀노드 생태계가 중요한 이유 중 하나입니다.

네트워크 안정성 측면에서 소프트 포크가 하드 포크보다 나은 이유는 무엇일까요?
소프트 포크를 기본 업그레이드 경로로 선택해야 한다는 주장은 네트워크 복원력에 근거하며, 실제로 계산해 보면 그 결과는 매우 심각합니다. 2026년 4월 27일 기준 비트노드 스냅샷에 따르면 비트코인은 전 세계적으로 약 22,992개의 접속 가능한 풀 노드를 운영하고 있습니다. 여기에 방화벽 뒤에 숨겨진 더 많은 노드들을 포함하면 그 수는 알 수 없습니다. 하드 포크로 인해 이 노드 중 10%가 관성이나 의견 불일치로 손실된다면, 이는 명백히 체인 분할로 이어집니다. 두 개의 암호화폐, 두 개의 원장, 두 개의 시장, 두 개의 커뮤니티가 생겨나는 것입니다.
소프트 포크에서 10%의 채굴자가 신호 전달을 거부하여 이탈하더라도, 나머지 90%의 채굴자가 새로운 규칙을 적용하는 동안에는 확인 속도가 약간 느려질 뿐입니다. 경제적 체인은 그대로 유지됩니다. 이것이 바로 비트코인이 하위 호환성을 중시하는 비대칭성입니다. 성공적인 소프트 포크는 느린 움직임을 보이는 채굴자에게 불이익을 주지 않으면서 협력을 장려합니다. 실패한 소프트 포크는 단순히 활성화되지 않고 다음 주기에서 다시 시도될 수 있습니다. 반면, 실패한 하드 포크는 아무도 원하지 않는 새로운 브랜드와 지속적인 정치적 영향력을 가진 새로운 블록체인을 생성합니다.
이것이 바로 2012년 이후 비트코인 블록체인에 대한 모든 주요 업그레이드가 (비트코인 캐시를 생성한 논란의 여지가 있는 2017년 8월 포크를 제외하고) 소프트 포크였던 이유입니다. 대부분의 채굴자들은 일관되게 분기보다는 하위 호환성을 유지하는 변경을 선택해 왔습니다. 이러한 패턴은 우연이 아닙니다.
소프트 포크 위험 및 실패 모드
소프트 포크는 하드 포크보다 안전하지만, 위험이 전혀 없는 것은 아닙니다. 2015년 7월 BIP 66은 일부 채굴자들이 새로운 규칙에 대한 지지를 표명했지만 실제로 검증하지 않아 의도치 않게 6개 블록이 분리되는 사태를 초래했습니다. 이는 전형적인 실패 사례입니다. 업그레이드된 노드는 업그레이드되지 않은 채굴자들이 계속 생성하는 블록을 거부하고, 경쟁하는 체인이 잠시 존재하게 됩니다. 네트워크 보안은 몇 시간 동안 악화됩니다. 다수 채굴자가 따라잡으면서 분리는 해결되었지만, 몇 시간 동안 비트코인에는 두 개의 경쟁 체인이 동시에 작동했습니다. SegWit의 2년 활성화 기간 또한 완전히 회복되지 않은 정치적 파장을 일으켰고, 결국 비트코인 캐시가 탄생하게 되었습니다. 그리고 명확한 채굴자 다수가 없는 UASF는 영구적인 분리의 실질적인 위험을 내포하고 있습니다. 하위 호환성은 강력한 제약 조건이지, 결코 면죄부가 아닙니다.