블록체인

포크, 하드포크와 소프트 포크 (Fork, Hard Fork vs Soft Fork)

ziwookim 2022. 11. 8. 01:23

포크 (Fork)

블록체인 네트워크 참여자 간 의견충돌이 발생하여, 노드 사이에서도 의견 일치가 이루어지지 않을 경우, 블록체인 네트워크는 분기를 선택하게 된다. 즉, 일정 시점에서 생성되는 블록을 기점으로 하여 두 개의 독립된 블록체인으로 나뉘는 일을 포크(Fork) 라고 한다.

블록체인 환경이 업데이트 될 때에도 fork가 일어나는데, 새로운 환경을 만들기 위해 업데이트를 하게 되는 경우 기존의 규칙을 따르려는 블록새로운 규칙에 따라 기록되는 블록으로 포킹(Forking, 분기) 된다.

fork에는 두 가지 종류가 있다.

 

소프트 포크 (Soft Fork)

소프트 포크는 기존의 규칙에서 큰 틀은 바꾸지 않고 부분적인 업데이트만 일어나기 때문에 포킹(Forking)된 블록끼리 호환이 가능하다.

 

쉽게 말해, MS Office 2010을 쓰다가 기능적인 면에서 업데이트를 한 MS Office 2013이 나오게 된다면 2010으로 저장된 파일이 2013에서도 사용이 가능한 것과 같다. 하지만 예시처럼 기능적인 면에 있어서 몇 가지 제한이 있다.

 

이렇게 서로 어느 정도 호환이 가능하기 때문에 기존의 규칙을 따르는 블록체인은 업데이트가 필수가 아닌 선택사항이다.

기존의 규칙을 따르던 블록체인에서도 노드들이 새로운 규칙을 따르기로 합의를 한다면 두 체인은 결국 합쳐진다.

 

하드 포크 (Hard Fork)

하드포크는 블록의 규칙을 근본적으로 바꾸는 업데이트 이다. 그렇기 때문에 이전 노드들과 호환이 되지 않는다.

쉽게 말하자면, 아이폰의 iOS와 갤럭시의 안드로이드 운영체제가 서로 호환되지 않는 것과 같다.

하드포크는 전혀 다른 블록체인이 되어 합의에 도달하지 않고 서로 분리된 채 블록이 계속 쌓여 나간다.

실제로 몇 번의 하드포크가 있었는데, 가장 대표적인 예로 2017년 8월, 비트코인의 하드포크를 예로 들 수 있다. 블록의 크기를 1MB에서 8MB로 늘리는 근본적인 변화를 주는 업데이트를 했는데 그렇게 포크(Fork) 되어 나온 것이 바로 '비트코인 캐시'이다.

비트코인과 비트코인 캐시는 서로 호환되지 않는 다른 코인이다. 비트코인 1개와 비트코인 캐시 1개의 가격이 다르고, 채굴도 다른 시스템으로 진행되고 있다.

 

하드포크 시 유의해야할 사항이 있다.

위에 언급했던 하드포크의 특성 상 포킹(Forking)할 때 코인을 송금한다면 포킹된 새로운 코인도 송금되는 현상이 발생한다.

비트코인(BTC)과 비트코인 캐시(BCH)로 예를 들면, 블록이 포킹되지 않은 상태에서 1BTC를 송금을 했는데 아직 거래가 처리되지 않고 포킹 후에 거래가 기록이 된다면 기존의 코인과 새로운 코인 모두 송금이 된다.

 

즉, 가치가 전혀 다른 1BCH까지 같이 송금이 되는 현상인데, 이를 '리플레이 어택(Replay Attack)' 이라고 한다.

 

리플레이 어택을 발생시키지 않기 위해서는, 포크(Fork)가 일어나기 직전에는 절대로 송금하지 않고 가지고만 있어야 한다.

 

현재도 포크(Fork)는 일어나고 있고, 개발자와 채굴자간 서로에게 유리한 방향으로 블록체인을 업데이트하기 위해 정치적인 투쟁을 하고 있다.

 

출처: https://www.banksalad.com/contents/%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%98%EB%8A%94-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8%EC%9D%98-%ED%97%88%EC%A0%90%EA%B3%BC-%ED%95%98%EB%93%9C%ED%8F%AC%ED%81%AC-%EC%86%8C%ED%94%84%ED%8A%B8%ED%8F%AC%ED%81%AC-QfiST

 

'블록체인' 카테고리의 다른 글

DeFi 기반 금융 서비스 사례  (0) 2022.11.08
스마트 컨트랙트(Smart Contract)란?  (0) 2022.11.08
디앱(DApp)이란?  (0) 2022.11.08
Nonce란?  (0) 2022.11.08
블록체인이란?  (0) 2022.11.07