하드포크와 소프트포크의 차이점은 무엇인가요?
하드포크나 소프트포크 둘다 블록체인에 발생한 오류를 바로잡기 위해 실시하는 일종의 수정작업이라고 알고 있는데요 하드포크와 소프트포크의 차이는 무엇인가요?
안녕하세요. 하드포크와 소프트포크의 차이점은 무엇인가요? 라고 문의 하셨는데요
하드 포크의 경우 기존의 블록체인과 호환되지 않는 대대적인 업데이트를 하는것을 하드포크라고 합니다.
아예 다르게 바뀐다는 뜻이겠죠.
소프트포크는 기존 블록체인과 호환되는 작은 업데이트입니다. 소프트포트의 경우 기존 블록체인을 유지하면서 업그레이드 하는 개념이라고 보시면 됩니다. 감사합니다.
원래 Fork 식기구인 포크처럼 갈라진 ‘분기’를 뜻하는 단어로 이는 개발자들이 하나의 소프트웨어 코드를 복사하여 독립적인 소프트웨어를 개발하는 것을 뜻하는 용어입니다. 이와 같이 같은 블록 높이에서 같은 넘버의 블록이 두개 이상 발생한다면 체인이 ‘분기’되는것임으로 이를 포크가 발생했다고 표현합니다.
포크의 종류는 Soft Fork 와 Hard Fork로 두 종류로 나뉠 수 있습니다. 이중 하드포크는 블록체인의 프로토콜의 변경 혹은 치명적인 버그나 해킹으로 인해 이전 체인의 버전으로 메인 체인을 변경할때 발생하게 됩니다. 그렇기에 블록체인 네트워크의 구성원들은 반드시 새로운 버전으로 업데이트를 해야 그에 맞는 버전의 블록체인을 사용할 수 있게 됩니다.
사용자들은 새로운 버전을 따르는 체인을 사용하므로서 기존의 블록 체인의 사용자는 점점 줄어들고 새 버전의 블록체인이 중심이 되어 메인체인을 유지해 나가게 됩니다. 2016년 디지털 분산형 자율 조직이자 이더리움 커뮤니티인 DAO가 코드의 취약점을 발견해낸 해커에 의해 공격을 당해 약 520억원에 달하는 금액을 부당하게 탈취당한 사건이 있었습니다. DAO 규정에는 출금까지 시간이 걸린다는 규정이 있어 완전히 출금되기 이전에 이더리움 개발자들이 이와 같은 움직임을 발견해 조치를 취하게 되었고 소프트포크로 해결할지 하드포크로 해결할지의 논의 끝에 결국 하드포크 방식을 선택하게 됩니다. 이 과정에서 해킹이 수정되기 이전 버전을 옹호하던 사용자들은 업데이트를 하지 않은 이전버전에서 블록체인을 계속 유지하게 되었고 이 버전의 이더리움이 바로 Ethereum Classic입니다. 현재도 이더리움 클래식과 이더리움은 많은 부분이 서로 호환되지만 이더리움도 새로운 기능을 도입해 차차 변화하고 있고 , 클래식 또한 점점 발전해나가고 있기 때문에 이제는 완전히 다른 노선을 걷는 블록체인이 되었습니다.
하드포크와 달리 소프트포크는 기존에 사용하던 버전과 새로운 버전이 존재해도 새로운 버전이 이전 버전의 블록체인을 호환하기 때문에 업데이트하지 않아도 사용할 수 있습니다. 즉 새로운 체인이 생성되지 않는 선에서 업그레이드 하여 기존의 버전 그대로 이어나갈 수 있는 업데이트를 소프트 포크라 합니다.