포크는 블록체인의 프로토콜 또는 기본 규칙 세트에 변경 사항이 있을 때마다 발생하는 오픈 소스 코드 수정입니다. 기존 코드를 복제하고 수정하여 새로운 제품을 만드는 수단입니다. 일반적으로 포크는 블록체인의 기능과 설계를 개선하기 위한 제안이 이루어진 후 블록체인 프로토콜을 관리하는 커뮤니티 간에 의견 불일치가 있을 때 발생합니다. [1][2][3]
포크는 커뮤니티가 블록체인 프로토콜에 변경 사항을 도입할 때 발생합니다. 결과적으로 체인이 분할되어 원래 체인의 전체 기록 데이터를 유지하지만 뚜렷한 궤적을 시작하는 보조 블록체인이 생성됩니다. 많은 블록체인 포크는 내장된 특성에 대한 의견 불일치로 인해 발생합니다. 그러나 네트워크의 근본적인 변경 사항을 구현하거나 원래와 유사한 특성을 가진 새로운 자산을 만들기 위해 수행되는 경우가 많습니다. 일반적으로 포크는 다른 이유가 없더라도 이전 및 새 체인의 트랜잭션 기록이 분할되기 전과 동일했기 때문에 "공유된 기록"을 갖습니다. [2][4]
포크는 기본적으로 기존 블록체인 코드베이스에서 새로운 독립적인 프로젝트 또는 버전을 생성하는 코드베이스 포크와 실행 중인 블록체인이 두 부분으로 더 나뉘는 라이브 블록체인 포크의 두 가지 유형으로 분류됩니다. 라이브 블록체인 포크는 소프트웨어 결함 또는 해시율의 비정상적인 변동으로 인해 네트워크가 둘 이상의 방향으로 분할된 후 블록체인에서 확장된 분기가 나타날 때 발생하는 우발적 포크와 노드 운영자가 의도적으로 자신의 블록체인을 시작하고 블록을 생성하기로 선택할 때 발생하는 의도적 포크의 두 가지 유형으로 나뉩니다. 의도적 포크는 이전 버전과 호환되지 않는 암호화폐 프로토콜에 대한 상당한 변경 사항인 하드 포크와 이전 버전과의 이전 버전과의 호환성을 유지하는 암호화폐 프로토콜에 대한 수정 사항인 소프트 포크의 두 가지 범주로 더 나뉩니다. [1][5][6][7]
코드베이스 포크는 소프트웨어 구현 코드를 복제하는 것을 포함하며 종종 원래 코드베이스를 조정하는 것을 포함합니다. 비트코인의 맥락에서 코드베이스 포크는 호환 가능한 코드베이스 포크, 블록체인 포크 및 새로운 암호화폐 생성의 세 가지 범주로 나눌 수 있습니다. 이러한 구분은 비트코인 생태계 내에서 코드베이스 포크에서 발생할 수 있는 다양한 결과를 보여줍니다. [1][8]
이러한 포크는 기존 비트코인 프로토콜과의 완전한 호환성을 유지하면서 비트코인 소프트웨어 코드베이스를 변경하는 것을 포함합니다. 일반적으로 블록체인 분할을 일으키지 않고 새로운 기능이나 개선 사항을 도입합니다. [8]
일부 코드베이스 포크는 이전 버전과 호환되지 않는 방식으로 비트코인 프로토콜을 변경합니다. 이로 인해 네트워크가 서로 다른 규칙 세트를 따르는 두 개의 개별 체인으로 분할되는 "블록체인 포크"가 발생할 수 있습니다. 포크가 충분한 지원을 얻으면 새로운 암호화폐 생성을 초래할 수 있습니다. [8]
경우에 따라 비트코인의 코드베이스 포크가 너무 커서 자체 블록체인을 가진 완전히 새로운 암호화폐를 만들 수 있습니다. 이러한 포크는 종종 프로토콜, 합의 규칙 또는 기본 기술에 대한 중요한 변경 사항을 포함하여 뚜렷한 디지털 통화의 탄생으로 이어집니다. [8]
라이브 블록체인 포크는 소프트웨어 및 프로토콜 규칙이 처음에는 동일하지만 블록체인 기록의 특정 시점에서 체인이 두 개의 개별 부분으로 분할되는 경우에 실제로 발생할 수 있습니다. 이는 합의 규칙의 차이, 커뮤니티 내의 의견 불일치 또는 소프트웨어 업그레이드를 포함한 다양한 이유로 발생합니다. 이러한 포크가 발생하면 자체 트랜잭션 기록이 있는 두 개의 개별 체인이 생성되고 각 체인은 독립적으로 계속 개발될 수 있으며 잠재적으로 한쪽 또는 다른 쪽을 지원하는 다른 노드, 채굴자 및 사용자가 있을 수 있습니다. 어떤 체인을 따르거나 지원할지에 대한 결정은 종종 네트워크 참가자의 선호도와 커뮤니티 내에서 달성된 합의에 달려 있습니다. 라이브 블록체인의 맥락에서 포크는 우발적 포크와 의도적 포크의 두 가지 주요 이유로 발생할 수 있습니다. [1]
"임시 포크"라고도 하는 우발적 포크는 채굴자가 거의 동시에 새로운 블록을 발견하여 두 개의 개별 블록체인이 생성될 때 발생합니다. 이 기간 동안 여러 체인이 네트워크에 공존하고 해당 블록 시퀀스를 확장하여 지배적인 체인이 되기 위해 경쟁하기 시작합니다. 네트워크의 일부 참가자는 한 그룹의 채굴자가 채굴한 블록을 수락하고 계속 구축하여 해당 시점부터 뚜렷한 체인을 형성할 수 있습니다. 다른 사람들은 대체 블록을 따르도록 선택할 수 있습니다. 이러한 경쟁 체인이 진행됨에 따라 어떤 체인이 더 길게 성장하고 더 많은 블록을 축적할 수 있는지 결정하기 위한 경쟁이 시작됩니다. 시간이 지남에 따라 더 긴 체인이 필연적으로 우세하고 더 짧은 체인보다 빠르며 블록체인 네트워크가 단일 통합 체인으로 통합됩니다. 이는 네트워크 내의 모든 노드가 더 긴 체인을 합법적이고 수용된 버전으로 수렴하여 블록체인의 트랜잭션 및 기록에 대한 최종 원장이 되기 때문에 발생합니다. [1][9][10]
영구 또는 개인 포크라고도 하는 의도적 포크는 개발자가 블록체인의 공통 규칙 또는 프로토콜을 의도적으로 변경하여 새로운 암호화폐를 생성할 때 발생합니다. 의도적 포크에는 두 가지 주요 유형이 있으며, 이는 블록체인 프로토콜의 이전 버전과의 호환성 및 새 블록 생성 시기를 기준으로 분류할 수 있습니다.
의도적인 체인 분할의 성공 여부는 주로 새로운 코인을 지원하는 상당한 커뮤니티가 있는지 여부에 달려 있습니다. 충분한 관심이나 지원이 없으면 새 토큰의 가치가 0으로 떨어질 수 있고 채굴이 중단될 수 있습니다. 반대로 상당한 커뮤니티가 새 코인을 지원하면 두 자산 모두 계속 진화하고 공존할 수 있습니다. 경우에 따라 의도적인 포크가 해결되지 않은 상태로 남아 두 체인이 무기한 공존하여 네트워크가 두 개의 개별 커뮤니티로 효과적으로 분할될 수 있습니다. [1]
의도적 포크는 하드 포크와 소프트 포크의 두 가지 유형으로 분류됩니다. 하드 포크와 소프트 포크는 모두 블록체인 네트워크를 업그레이드하고 진화시키는 메커니즘이지만 네트워크에 미치는 영향과 참가자 간에 필요한 합의 수준이 다릅니다. [1][9][10]
하드 포크는 블록체인 프로토콜에 대한 의도적이고 중요한 변경 사항입니다. 이는 프로토콜 업그레이드, 합의 규칙 변경 또는 새로운 기능 도입과 같은 다양한 요인으로 인해 발생할 수 있습니다. 하드 포크가 발생하면 일반적으로 블록체인이 자체 규칙 세트를 따르는 두 개의 개별 체인으로 영구적으로 분기됩니다. 사용자와 채굴자는 어떤 체인을 지원할지 선택해야 하며 이로 인해 두 개의 뚜렷한 암호화폐가 생성될 수 있습니다. [1]
소프트 포크는 블록체인 프로토콜에 대한 이전 버전과의 호환성이 있는 변경 사항입니다. 즉, 도입된 새로운 규칙은 이전 소프트웨어 버전을 실행하는 노드에서 여전히 허용됩니다. 이 경우 블록체인은 두 개의 개별 체인으로 분할되지 않습니다. 대신 네트워크는 단일 체인에서 계속되지만 업데이트된 소프트웨어가 있는 노드는 새로운 규칙을 적용하는 반면 이전 소프트웨어가 있는 노드는 호환성을 유지하지만 변경 사항을 적용하지 않을 수 있습니다. [1]
2012년 Gavin Andresen은 비트코인의 첫 번째 포크인 Bitcoin XT로 알려진 최초의 주요 블록체인 포크를 만들었습니다. 이 포크는 비트코인의 블록 크기 제한을 늘리는 것을 목표로 했습니다. 그러나 비트코인 네트워크에서 구현하는 데 필요한 지원을 얻지 못했고 2016년까지 중단되었습니다. [5][11]
2016년 이더리움은 DAO(분산형 자율 조직) 해킹이라는 논란이 많은 사건으로 인해 이더리움 클래식으로 하드 포크되었습니다. 처음에는 이더리움 네트워크가 해킹된 후 포크는 해킹을 되돌리려고 했습니다. 그러나 상황을 처리하는 방법에 대한 이더리움 커뮤니티의 의견 불일치로 인해 하드 포크가 발생하여 이더리움 클래식이 생성되었습니다. 2022년 9월 이더리움 블록체인은 작업 증명(PoW)에서 지분 증명(PoS) 합의 메커니즘으로 전환되었습니다. 이로 인해 The Merge와 구별되는 PoW 블록체인인 ETHPoW(ETHW)가 활성화되었습니다. [2][12]
2017년 비트코인 캐시는 확장 솔루션에 대한 의견 불일치로 인해 포크되어 뚜렷한 커뮤니티와 체인이 형성되었습니다. 비트코인 커뮤니티는 비트코인 트랜잭션이 더 저렴하고 빨라야 한다고 믿습니다. 또한 분산화를 유지하기 위해 작은 블록 크기를 유지해야 한다고 믿습니다. 비트코인 캐시의 목표는 즉각적인 비용 및 속도 이점을 희생하지 않고 더 많은 채굴자가 지속 가능한 방식으로 블록 보상에 참여하고 경쟁할 수 있도록 돕는 것입니다. [2]