SwapSpace – 크로스체인 암호화폐 스왑

하드 포크, 소프트 포크: 대체 무슨 역할을 하는 걸까(그리고 차이점은 무엇일까)?

June Katz

,

업데이트됨: ,2분

블록체인 사용자가 그 진화 과정에서 어떤 어려움에 직면하게 될지 미리 아는 것은 불가능합니다. 때로는 개발에 내재된 알고리즘과 아이디어가 더 이상 지속 가능하지 않거나 비효율적이 되기도 합니다. 이를 계속 사용하는 것은 시장에서의 경쟁력뿐 아니라 법정화폐 대비 코인의 가치까지 잃는 것을 의미합니다. 하지만 이러한 상황을 피하기 위해 개발자들은 중대한 코드 수정에 나서며, 이를 “하드 포크”라고 부릅니다.

포크는 암호화폐 블록체인을 분기하는 절차로, 그 결과 두 개의 서로 다른 체인이 생겨납니다. 이후 이들은 서로 독립적으로 발전해 나갑니다. 개발자들이 대대적인 변경을 가하면, 이러한 포크를 하드 포크라고 합니다.

이 경우 개발자들은 사소한 변경을 하는 것이 아니라, 알고리즘, 코인 발행 규칙, 분배 방식, 그리고 기타 파라미터를 근본적으로 바꿉니다. 이러한 조치의 결과로 이전 블록체인과는 더 이상 상호작용할 수 없는 블록 체인이 생겨납니다.

가능한 포크에는 두 가지가 있습니다. 소프트 포크와 하드 포크입니다. 첫 번째는 네트워크를 완만하게 현대화하는 방식으로, 기존 블록과 새 블록 모두 유효하며 부모 체인에서 자식 체인이 분리됩니다. 하드 포크에서는 프로그램 코드의 강제적인 수정이 일어나며, 모든 오래된 블록은 “잊혀지고”, 블록체인은 두 개의 평행한 경로로 나뉩니다.

소프트 포크의 경우 코인의 일부 특성이 최적화되고, 외형적인 개선이 이루어집니다. 일부 노드가 변경 사항을 받아들이지 않더라도, 그들은 네트워크의 구성원으로 남습니다. 

소프트 포크는 모두를 선택의 기로에 세우지 않습니다. 코드의 작은 변경만으로도 구버전 소프트웨어를 사용하는 노드가 채굴에 계속 참여할 수 있습니다. 새로운 코인은 생기지 않습니다. 이런 업데이트는 암호화폐 보유자들이 거의 알아차리지 못하는 경우가 많습니다. 

이는 학술어와 방언의 공존에 비유할 수 있습니다. 어떤 사람들은 방언을 선택해 그 언어로 소통합니다. 그러나 학술어의 원어민들도 그들을 이해합니다. 합의는 유지됩니다.

하드 포크가 활성화되면, 개발자들은 기존 네트워크를 사실상 매장하는 것입니다. 사용자들은 두 개의 자식 체인 중 하나를 선택해야 합니다.

유명한 하드 포크

BCH 포크

Bitcoin Cash는 하드 포크의 결과물입니다. 이 코인은 2017년 8월 1일 원래의 Bitcoin에서 분리되었습니다. Roger Wind가 이끄는 BCH 팀은 즉시 주요 암호화폐에 대한 적극적인 캠페인을 시작했지만, 그때까지는 성과를 내지 못했고 이 포크는 이미 비트코인 역사에 한 부분이 되었습니다.

Ethereum Classic 포크

초기에는 Decentralized Autonomous Organization(DAO)이 일종의 벤처 펀드로 구상되었고, 참여자들은 ETH에 대한 기여를 바탕으로 지분을 받았습니다. 이 프로젝트는 큰 인기를 얻어 빠르게 1,270만 ETH를 모금했습니다. 당시 이 암호화폐의 가치는 약 2억 5천만 달러였습니다.

얼마 후 해커는 DAO 코드에서 취약점을 찾아내 360만 개가 넘는 Ethereum 코인을 훔칠 수 있었습니다. 사기범이 자금을 인출하지 못하도록 막기 위해 암호 커뮤니티는 Ethereum 하드 포크에 투표했고, 그 결과 대부분의 피해자들에게 자금이 반환되었습니다.

London 하드 포크

Ethereum 암호화폐의 창시자인 Vitalik Buterin은 ETH 2.0의 마지막 단계에 맞춰 Ethereum 1.0 시스템의 또 다른 업데이트를 출시하기로 결정했습니다. London 하드 포크는 가장 논란이 많았습니다. 일부 사용자는 수수료를 줄일 수 있게 해주는 개선 사항을 긍정적으로 받아들였습니다. 그러나 채굴자들은 EIP-1559 때문에 매우 강하게 반발했는데, 거래 처리 보상이 크게 줄어들었기 때문입니다.

하드 포크는 왜 진행되는가?

공식적인 이유로는 기술 개선과 네트워크 최적화의 필요성을 개발자들이 내세우지만, 때로는 단순한 내부 갈등, 사기 시도, 그리고 수익을 챙기며 중앙집중화를 이루려는 욕구가 포크의 배경에 있기도 합니다. 포크의 이유로는 블록 크기 증가(처리량, 즉 초당 거래 수를 늘리기 위해), 수수료 인하(프로젝트에 대한 관심을 높이기 위해), 또는 프로젝트의 “진정한 비전 상실”이 자주 거론됩니다.

암호화폐를 어떻게 포크하는가?

하드 포크를 진행하기 위해 개발자들은 커뮤니티에 그들의 의도를 알립니다(그 이유는 중요한 업데이트일 수도 있고, 서로 다른 팀에 의한 네트워크 분할일 수도 있습니다. 어느 경우든 이 이벤트에 대비해야 합니다).

모든 노드가 투표하게 될 블록 높이가 공개적으로 공지됩니다(예: 346394). 이에 따라 이벤트의 날짜와 시간을 대략 계산해 주는 사이트들이 생깁니다. 그다음 포크에 제안된 소스 코드에 대한 사전 테스트가 진행됩니다.

투표 결과에 따라 네트워크는 어떤 경우든 분기됩니다. 누구도 기존 브랜치를 지원하지 않고 모두 클라이언트를 업데이트한다면, 일부 노드 단위가 여전히 오래된 블록체인을 채굴/검증할 수는 있지만, 그것은 폐기된 것으로 간주됩니다. 의견이 갈리면, 예를 들어 채굴자의 30%가 첫 번째 체인을 계속 채굴하고 70%가 두 번째 체인을 선택하게 됩니다. 그러면 우리는 두 개의 정상적으로 작동하는 블록체인을 얻게 됩니다.

공유:

관련 글

더 궁금한가요?

뉴스레터에 참여하여 정보를 얻고 역량을 강화하세요.