비트코인
분류 기초강좌

하드 포크(Hard fork)와 소프트포크(Soft fork)의 개념 및 특징

작성자 정보

  • 작성자 슈어맨스
  • 작성일

컨텐츠 정보

본문

포크(fork)란? 

코인시장에서 한번쯤은 포크(fork)라는 말을 접해보셨을텐데요, 흔히 우리가 알고 있는 나이프 / 포크할 때의 그 포크가 맞습니다.

포크로 꼭 찝어서 가져온다는 말로, 내용을 그대로 복사해서 가져온다는 뜻이죠. 다만 단순한 복사로 끝나는게 아니라, 복사가 된 시점에서 원본과 복사본이 나뉘게 됩니다.    

16363563595591.jpg

 

 

이더리움과 이더리움 클래식을 조금이라도 공부해봤다면 하드포크(Hard fork)’라는 단어를 들어보셨을 겁니다. 실제로 이더리움은 DAO 해킹 사건으로 인해 하드포크를 실행했습니다. 물론 한국에서도 이더리움와 이더리움클래식의 사용자들은 하드 포크로 인해 출금이 일시적으로 정지당하는 사태를 겪기도 했습니다. 

1636356360757.png

 

하드포크를 말하자면 꼭 따라오는 개념이 있는데요. 바로 하드포크와 상충되는 소프트 포크(Soft fork)라는 개념입니다. 두 개념의 차이를 정확히 인지한다면 하드포크를 더욱 분명하게 이해할 수 있습니다. 블록체인과 같이 암호화폐의 소스가 공개된 상태에서 두 가지 개념이 어떤 차이를 가지고 각각은 어떻게 작용하는지를 알아봅시다.

 

 이를 위해서는 꼭 집고 넘어가야 할 개념이 있습니다. 바로 블록체인(Blockchain) 인데요. 간단하게 설명을 한다면, 가상화폐에서 블록체인을 이용해 거래를 하게 되면 사용자간의 거래 기록이 블록에 저장이 됩니다. , 블록은 모든 거래가 저장되는 공공 장부라고 보시면 됩니다. 사용자 간의 거래가 완료되면 발행되는 순서에 따라서 블록에 저장이 됩니다. 그리고 그러한 블록들이 마치 체인처럼 연결되어 진다고 하여 붙은 이름이 블록체인입니다. 만일 이렇게 연결되어진 블록체인에 누군가 블록 중간에서 변형을 하려거나 해킹을 시도한다면 그 뒤에 연결된 보든 블록들 또한 전부 변형을 해야하기 때문에 사실상 해킹은 매우 어렵다고 보시면 됩니다. 이 때문에 블록체인의 안전성이 높은 신뢰를 얻고 있는 것이죠.

 

 

-하드 포크(Hard fork) vs 소프트 포크(Soft fork)

 

 그렇다면 다시 원래 이야기로 돌아가 봅시다. 하드포크와 소프트포크는 모두 기존 버전에서 새로운 버전으로 업그레이드 하는 것을 의미합니다. 하지만 업그레이드를 하는 방식에서 두 개념은 차이점을 가집니다.

 

 먼저 소프트 포크(Soft fork)의 경우를 살펴봅시다. 소프트 포크는 기존에 사용하던 버전이 있습니다. 여기서 새로운 버전으로 업그레이드를 실행하더라도 두 버전을 동시에 사용할 수 있기 때문에 문제가 되지 않습니다. 블록들이 체인처럼 연결되어진 그림을 떠올려 봅시다. 여기서 말하는 포크(fork)라는 단어는 계속해서 연결되어진 체인을 의미한다고 보시면 됩니다. 다시 말하면 소프트 포크는 블록체인에 포크(fork), 새로운 체인이 생성되지 않는 한에서 업그레이드를 단행하는 것을 의미합니다. 그렇기 때문에 기존 버전을 그대로 사용하더라도 큰 문제 없이 정상적으로 이용이 가능한 것입니다.

 

 그렇다면 하드 포크(Hard fork)는 소프트 포크와 어떻게 다를까요? 하드 포크는 앞서 설명한 포크(fork)가 반드시 새로 연결되어 업그레이드가 진행됩니다. 그렇기 때문에 기본 유저들은 반드시 새로운 버전으로 블록체인을 업데이트 해야만 사용이 가능합니다. 즉 소프트 포크와는 달리 블록체인에 새로운 체인이 생성되는 것을 의미하죠. 포크(fork)가 발생하기 때문에, 강제적으로 새로운 버전으로 업그레이드를 해야한다는 필요성이 존재합니다. 

 

 이처럼 하드포크를 실행하게 되면 블록체인에 영구적으로 포크가 발생을 하게 됩니다. 따라서 하드포크를 실행할 경우 기존의 블록체인에서 비주류 블록체인은 점점 없어지게 되고 주류 블록체인만이 살아남게 됩니다이러한 하드포크는 빈번하게 일어나는 것이 아닌 꼭 필요한 경우에만 실행이 됩니다. 블록체인 내에 새로운 기능을 업데이트를 한다거나 잘못된 거래를 기록하였을 경우에 이를 바로잡기 위하여 하드포크를 하는 경우입니다.

 

 이런 하드포크를 통해서 체인은 기존의 체인에서 새로운 체인이 생성되며 체인이 두 갈래로 나눠지게 됩니다. 이때에도 거래가 기록되어 오던 기존의 체인은 계속해서 유지가 되어 집니다. 기존 체인에서 발생한 문제를 보완을 하고 그렇게 새롭게 만들어진 체인 블록이 생성되는 셈이죠. 이에 따라 2가지 체인이 존재하게 되는 것이죠. 그러나 대부분의 사용자들은 아무래도 기존의 체인보다는 새로운 체인에 자신의 거래를 기록하기를 원할 것입니다. 그렇기에 기존의 체인보다는 새롭게 만들어진 체인이 중심이 되어 블록체인을 형성해 나가는 것입니다.

 

 이러한 하드포크를 실행하기 위해서는 기존 사용자의 합의가 필요합니다. 왜냐하면 일반 유저는 반드시 자신이 사용하던 버전에서 업그레이드를 강행해야 하기 때문에 동의가 필요한 것입니다. 일반적으로 각 코인들의 게시판 등을 통하여 의견을 수렴하고 실행이 결정 되어집니다.

 

 우리가 잘 알고 있는 이더리움(ETH)’이더리움 클래식(ETC)도 이러한 하드포크에 의해 나눠지게 된 케이스입니다. 특이한점은 사용자들이 기존의 체인을 거부하지 않고 계속해서 거래를 이어나가자 두 가지 체인이 모두 현재까지 이용되고 있다는 점이죠. 실제로 이와 같이 하드포크로 인해 나눠지는 체인이 새로운 코인으로 탄생하는 예를 보여준 것입니다.

 

16363563616848.png

"하드포크는 블록체인에 포크가 발생하도록 업그레이드를 하기에 반드시 새로운 업그레이드가 필요한 반면 소프트포크는 포크가 발생하지 않아 기존 버전을 그대로 사용할 수 있다."

 

 

 위 그림은 소프트 포크와 하드 포크의 개념을 간단히 정리한 것입니다.

 

 기본적으로 두 개념 모두 기존 버전에서 새로운 버전으로 업그레이트가 이루어진다는 것은 동일합니다. 하지만 소프트 포크의 경우 업그레이드를 하더라도 블록체인에 포크가 발생하지 않게 업그레이드가 이루어집니다. 때문에 사용자들은 기존 버전을 그대로 사용하면 됩니다.

 반면 하드포크를 실행할 경우 블록체인에 포크가 발생하기 때문에 체인은 두 가지로 나뉘게 됩니다. 그리고 사람들은 새로운 체인을 더 선호하고 거기에 거래를 이어나가기 때문에 강제적으로 새로운 버전으로 업데이트를 해야 하는 것이죠. 이러한 하드포크를 통해 소스코드에 변화를 줄 수 있습니다. 예를 들어 하드포크를 통해 코인의 총 발행량을 조절할하기도 하고 블록 보상으로 제공하는 코인의 수도 줄이거나 늘릴수도 있습니다.

 

 이처럼 하드포크와 소프트포크는 비슷한 맥락이지만 사용자의 편에서는 확연한 차이점을 가집니다. 두 개념을 명확히 이해하였을거라 믿고 앞으로는 두 개념을 혼동하지 않고 사용하길 바랍니다.  

관련자료

댓글 9

슈퍼맨님의 댓글

  • 슈퍼맨
  • 작성일
감사합니다

lee여유님의 댓글

  • lee여유
  • 작성일
감사합니다

고고고님의 댓글

  • 고고고
  • 작성일
감사합니다!!!!

Skull님의 댓글

  • Skull
  • 작성일
감사드립니다.

큰호랑이님의 댓글

  • 큰호랑이
  • 작성일
조금 이해됩니다.

나징기스칸님의 댓글

  • 나징기스칸
  • 작성일
네, 감사합니다.

foecyan님의 댓글

  • foecyan
  • 작성일
이해가 됩니다~

keorm님의 댓글

  • keorm
  • 작성일
설명 감사합니다.

노하님의 댓글

  • 노하
  • 작성일
감사합니다~
전체 144 / 5 페이지
번호
제목
이름

공지사항


알림 0