체인 분할과 그 해결 방법은 종종 오해받는 주제입니다. 사용자 활성화 소프트 포크(UASF)에 대한 Shaolinfry의 최근 제안이 많은 주목을 받고 있는 가운데, 이러한 오해를 명확히 하여 체인 분할의 의미와 그 잠재적 해결책을 완전히 이해해야 합니다.
포크의 유형
채굴자들은 일부 클라이언트에게 유효해 보이는 블록을 의도적으로 고아화하여 체인 분할을 생성할 수 있습니다. 사용자는 모든 블록에 대해 요구하는 합의 규칙 집합을 유지합니다. 사용자가 시행할 합의 규칙 집합에 대해 이견이 있을 경우, 그들은 다른 체인을 따릅니다. 논의를 단순화하기 위해, 합의 규칙이 합의된 경우는 건너뛰고, 채굴자가 다른 이유로 블록을 고아화하기로 결정한 경우와 두 개 이상의 합의 규칙 집합이 있는 경우는 건너뛰겠습니다.
다음 예제에서는 두 개의 규칙 집합, 즉 빨간 규칙과 노란 규칙이 있습니다. 이 예제에서 빨간 규칙은 시행되고 있는 원래 규칙이며, 노란 규칙은 수정된 규칙입니다. 주황색 규칙은 빨간 규칙과 노란 규칙의 조합입니다(두 규칙 집합 모두 이 블록이 유효하다고 동의합니다).
호환되지 않는 하드 포크
호환되지 않는 하드 포크는 이해하기 가장 간단한 유형의 체인 분할입니다. 특정 블록 높이에서 일부 사용자가 새로운 규칙 집합을 구현하기로 결정합니다. 이 경우 새로운 규칙 집합은 원래 규칙과 완전히 독립적입니다.
호환되지 않는 하드 포크
하드 포크는 일부 채굴자가 새로운 규칙 집합으로 채굴하기로 결정하고, 일부는 기존 규칙 집합을 계속 따를 때 발생합니다. 새로운 규칙 하에서 생성된 블록은 기존 규칙 하에서는 유효하지 않으며, 그 반대도 마찬가지입니다. 이더리움/이더리움 클래식 분할은 이러한 유형의 분할의 예입니다. 이 경우, 체인은 영원히 분리되어 서로 수렴할 가능성이 없습니다.
준호환 하드 포크
준호환 하드 포크는 규칙 집합이 교차하지만 각 체인에서 유효한 블록이 하나만 있는 경우 발생합니다.
준호환 포크
이 경우, 채굴자는 주황색 규칙 블록만 채굴하여 체인 분할을 방지할 수 있습니다. 그러나 채굴자가 빨간색 또는 노란색 블록을 채굴하면 체인이 분할됩니다. 채굴자가 결국 주황색 체인을 독점적으로 구성하면 체인이 수렴할 수 있습니다. 만약 그렇게 된다면, 빨간/주황색 및 노란/주황색 체인은 빨간/노란 클라이언트에 의해 고아화되고, 그들은 단일 체인을 보게 될 것입니다. 제가 아는 한 이러한 유형의 주요 포크는 없습니다.
이 경우 채굴자에게 가장 좋은 선택은 주황색 블록만 채굴하여 체인 분할을 방지하는 것입니다. 그렇게 함으로써 채굴자는 준호환 포크를 소프트 포크로 전환하게 됩니다.
호환 하드 포크
하드 포크에서는 규칙 집합이 확장되어 이전의 모든 규칙을 포함하지만 다른 조건도 허용합니다.
하드 포크
규칙이 확장되면, 채굴자가 노란 규칙으로 블록을 채굴하는 즉시 체인이 분할됩니다. 이 유형의 분할은 노란 체인이 주황 체인보다 더 많은 작업을 포함하는 한 분기됩니다. 이 유형의 분할에서의 위험은 주황 체인이 더 많은 작업을 포함할 경우 노란 체인이 고아화된다는 것입니다. 노란 체인의 사용자는 초기에는 해시파워의 대다수가 이 체인에 있어야 하며, 영원히 이 체인에 남아 있어야 합니다. 이 유형의 포크의 예로는 비트코인 XT, 비트코인 클래식 및 비트코인 언리미티드가 있습니다.
소프트 포크
소프트 포크는 규칙 집합이 강화되고 노란 규칙이 빨간 규칙에 의해 완전히 덮이는 경우입니다(따라서 오직 주황색과 빨간 규칙 집합만 존재합니다).
체인 분할은 채굴자가 빨간 블록을 생성할 때 발생할 수 있습니다. 빨간 규칙 집합을 사용하는 사용자는 해당 체인을 따르고, 노란 규칙 집합을 사용하는 사용자는 주황 체인을 따릅니다. 이 경우 해시파워의 대다수가 주황 규칙을 시행하기 시작하면 빨간 체인은 고아화됩니다. 이러한 유형의 포크는 비트코인 역사에서 BIP66, CSV, CLTV와 같은 변경 사항으로 여러 번 발생했으며, 제안된 세그윗 소프트 포크에서도 발생합니다.
재조직 위험 및 분할 위험
대규모 재조직과 체인 분할은 사용자와 채굴자에게 위험을 초래합니다. 대규모 재조직은 이전에 승인된 거래가 사라지게 할 수 있으며, 이로 인해 많은 사람들이 손실을 입게 됩니다.
예를 들어, 아마도 1년 전 당신은 자동차에 대해 10BTC를 받았고, 1년 후 그 거래는 원장에서 사실상 사라지고 당신의 체인은 버려집니다. 당신은 자동차도 없고 비트코인도 없습니다. 이러한 행동은 통화에 대한 신뢰를 크게 잃게 만들 것입니다. 분할 유형에 따라 대규모 재조직은 느슨한 규칙 집합의 사용자에게만 영향을 미칩니다. 더 엄격한 규칙 집합의 사용자는 결코 재조직되지 않습니다.
체인 분할 또한 위험을 초래합니다. 이더리움은 이더리움 클래식에서 분할된 후 가치가 하락했습니다. 이는 시장에 혼란을 추가했습니다(어떤 것이 진짜 이더리움인가? 원래 규칙을 가진 것인가, 아니면 오늘날 중앙 집중화된 이더리움 재단이 시행하는 규칙을 가진 것인가?). 체인 분할은 모든 사용자에게 부정적인 영향을 미칩니다. 분할이 선호될 수 있는 경우도 있습니다(예를 들어, 두 그룹이 매우 다른 이해관계를 가지고 있으며, 서로 타협하기보다는 각자의 요구를 따르는 것이 가장 좋습니다).
위험 완화
대부분의 이러한 포크에 대한 위험은 채굴자와 사용자 모두에 의해 완화될 수 있습니다.
호환되지 않는 하드 포크의 경우, 완화 계획이 발생할 수 없습니다. 체인은 일부 채굴자와 일부 사용자가 원하기만 하면 분할됩니다. 아무것도 일어날 수 없습니다. 이는 이혼 판결을 받고 다시는 상호작용하지 않는 것과 같습니다.
준호환 소프트 포크의 경우, 채굴자는 체인 포크와 대규모 재조직을 모두 방지할 수 있는 권한을 가지고 있습니다. 채굴자의 대다수가 주황색 블록만 채굴하기로 선택하면 사용자는 하나의 체인에 남아 있고 재조직은 소수의 블록으로 제한됩니다.
호환 하드 포크의 경우, 위험은 전적으로 노란 규칙 사용자의 몫입니다. 그들의 최선의 완화 방법은 경제의 대다수가 그들의 편에 있도록 하는 것입니다. 또한 초기에는 채굴자의 대다수도 그들의 편에 있어야 하며, 그렇지 않으면 체인이 분할되지 않습니다. 경제의 대다수가 없다면 주황색 블록의 가치는 더 커지므로 이익에 관심이 있는 채굴자들이 그들의 편으로 끌려가 대규모 재조직이 발생할 수 있습니다.
이 시나리오에서는 극도의 주의가 필요합니다(비트코인 XT, 비트코인 클래식 또는 제안된 비트코인 언리미티드에서는 이러한 상황이 없었습니다). 이전 것은 단지 75%의 해시파워로 활성화되었고, 비트코인 언리미티드는 활성화에 대한 기준이 없습니다.
소프트 포크의 경우, 위험은 전적으로 빨간 규칙 사용자의 몫입니다. 그들의 최선의 완화 전략은 경제가 그들의 편에 있도록 하고, 빨간 규칙을 따르는 채굴자의 대다수 또는 주황 규칙을 따르는 채굴자의 대다수를 확보하는 것입니다.
이것은 다소 직관에 반하는 것처럼 보일 수 있지만, 만약 대다수의 채굴자가 주황 규칙을 채굴하고 있다면, 그들은 주황 사용자와 합의 상태를 유지하게 되어 고아화되지 않습니다. 채굴자는 주황 집합의 블록만 채굴하고 빨간 집합을 고아화함으로써 이를 완화할 수 있습니다.
채굴자는 이 위험을 완화하는 데 중요한 역할을 합니다. 호환되지 않는 하드 포크를 제외한 모든 경우에서 채굴자는 체인 포크를 방지할 수 있습니다. 준호환 하드 포크의 경우, 그들은 이를 소프트 포크로 전환함으로써 이를 수행할 수 있습니다. 호환 하드 포크의 경우, 그들은 하드 포크를 거부함으로써만 이를 수행할 수 있습니다. 소프트 포크의 경우, 그들은 소프트 포크를 시행함으로써 이를 수행합니다. 그러나 채굴자가 이를 수행하지 않더라도 사용자는 주황 규칙을 시행하고 이를 충족하지 않는 모든 것을 거부함으로써 스스로를 보호할 유인이 있습니다. 이는 하드 포크를 거부하고 소프트 포크를 시행하는 것을 의미합니다.
에필로그: 채굴자가 부과한 규칙 집합 변경에서 벗어나기
Jeff Garzik을 포함한 많은 사람들이 소프트 포크에 의문을 제기했습니다. 왜냐하면 이는 사용자에게 선택권을 주지 않기 때문입니다. 비트코인과 기타 작업 증명 기반 블록체인의 본질은 채굴자가 사용자들이 동의하는 것보다 더 엄격한 규칙을 시행하는 것을 막을 수 없습니다. 그러나 사용자는 권한을 가지고 있습니다 — 호환되지 않는 하드 포크를 발동함으로써.
이 경우, 사용자는 새로운 규칙 집합을 도입하여 체인을 분할하도록 강요합니다(이는 작업 증명 변경을 포함할 수 있지만 필수는 아닙니다). 이는 사용자가 거부하는 채굴자가 부과한 규칙 집합에서 항상 탈출할 수 있도록 보장합니다. 이렇게 하면 경제와 사용자가 소프트 포크 규칙 변경을 진정으로 거부할 경우, 그들은 항상 분리되어 원하는 규칙을 회복할 수 있는 권한을 가집니다. 이는 불편할 수 있지만, 채굴자가 사용자에게 공격하는 경우에도 마찬가지입니다.
이 게스트 포스트는 Alphonse Pace에 의해 작성되었으며, 원래 Medium에 게시되었고, 여기에서 크리에이티브 커먼즈 라이센스에 따라 재생산되었습니다.