검수요청.png검수요청.png

소프트포크

위키원
Asadal (토론 | 기여)님의 2019년 8월 12일 (월) 03:21 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

소프트포크(softfork)란 기존 블록체인의 기능을 일부 수정하는 포크를 말한다. 소프트포크를 하면, 기존 블록체인의 기본 구조는 변경되지 않고 부분적인 기능개선만 이루어지기 때문에, 기존 블록체인 노드들은 간단한 시스템 업그레이드만으로도 새로운 시스템으로 이전할 수 있다. 소프트포크의 반대말은 하드포크(hardfork)이다.

개요

소프트포크는 기존 체인포크해서 업그레이드한 후 다시 체인에 덧붙이는 방식이다. 이 방식으로 새 분기와 이전 분기는 원래의 사슬에서부터 확장된다. 간단히 말해 원본을 복사해 복사본을 업그레이드한 후 원본에 다시 붙인다. 이때부터 원본과 복사본은 동시에 공존하지만, 복사본은 이미 원본과 다른 길을 가게 된다는 것이다. 소프트포크는 기존 블록체인 프로토콜과 역 호환이 가능한 프로토콜을 사용한다. 소프트포크 블록체인의 모든 블록은 새로운 합의 규칙뿐만 아니라 이전의 합의 규칙 세트를 따르므로 계약을 검토하기 위해 네트워크상의 노드를 이동시킬 필요가 없다.

사례

  • 이오스(EOS) 메인넷 : 대다수의 EOS BP가 알 수 없는 이유로 메인체인 블록생성에 실패하는 문제가 발생했다. 이는 이오스 메인넷이 가동된 지 약 40시간 만에 발생한 첫 번째 메인체인 중단 사고다. 이 문제는 메인체인 버전 업그레이드를 통해 문제를 해결하기로 했다. 블록원BP는 블록생성 실패 원인이 '지연된 트랜잭션 처리 방식'으로 인한 것이라고 밝혔다. 지연된 트랜잭션 처리 문제는 블록 생성을 위한 거래 명세인 트랜잭션이 과다하게 발생했을 경우 나타난다. 블록원과 BP는 해당 오류를 해결하기 위해 하드포크가 아닌 소프트포크를 진행했다. 이오스 메인체인은 1.0.5로 소프트포크 되면서 발생한 오류는 해결, 블록생성이 재가동됐다. 블록원은 "1.0.5 버전 업그레이드를 통해 발생한 오류는 해결됐으며, EOS 블록체인의 어떤 데이터도 손실되지 않았다"고 밝혔다.[1]
  • 세그윗(SegWit) : 세그윗이란 Segregated Witness의 약자로서, 비트코인의 블록에서 디지털 서명 부분을 분리함으로써 블록당 저장 용량을 늘리는 소프트웨어 업그레이드를 말한다. 비트코인은 세그윗이라는 소프트포크를 진행하였다. 기존의 비트코인은 거래내역을 기록하는 블록 크기가 1MB에 불과하여 초당 7건, 하루 최대 60만건의 거래내역밖에 처리하지 못하는 한계가 있었다. 이 문제를 해결하기 위해 비트코인 블록에서 디지털 서명 부분을 분리하여 별도로 저장함으로써, 블록당 저장 용량을 늘릴 수 있게 되었다.
  • 에이다(ADA) : 에이다는 소프트포크를 지원하는 대표적인 암호화폐인데, 카르다노(Cardano)라는 자체 블록체인 플랫폼을 기반으로 하고 있다. 에이다는 암호화폐 소유자가 체인 간에 암호화폐 자산 이전이 쉽게 가능하게 하기 위해 소프트포크만으로 운영할 수 있게 했다.

관련 BIP

  • BIP16 : 이 BIP는 비트코인 스크립팅 시스템을 위한 새로운 "표준"트랜잭션 유형을 설명하고 새 트랜잭션에만 적용되는 추가 유효성 검사 규칙을 정의한다. 이 BIP는 BIP 12를 대체한다. [2]
  • BIP30 : 이 BIP는 참조 구현에 있는 특정 문제를 해결하기 위해 블록체인에서 중복 트랜잭션을 처리하기 위한 사양을 제공한다. [3]
  • BIP34 : 비트코인 블록 및 트랜잭션은 버전이 지정된 이진 구조이다. 두 가지 모두 현재 버전 1을 사용한다. 이 BIP는 버전 관리 된 트랜잭션 및 블록에 대한 업그레이드 경로를 도입한다. 새로 생성된 코인베이스 트랜잭션에 고유한 값이 추가되고 블록이 버전 2로 업데이트 된다.[4]
  • BIP65 : 이 BIP는 비트코인 스크립팅 시스템을 위한 새로운 opcode(OP_CHECKLOCKTIMEVERIFY)를 설명한다. 이 스크립트는 미래의 어느 시점까지 트랜잭션 출력을 배제 할 수 있도록 한다.[5]
  • BIP66 : 서명을 엄격한 DER 인코딩으로 제한하기 위해 비트코인 트랜잭션 유효성 규칙에 제안된 변경 사항을 지정한다.[6]

각주

  1. 박근모, 〈EOS 메이넷 오류로'일시 중지'…5시간만에 소프트포크로 해결〉, 《코인데스크》, 2018-06-17
  2. dergigi, 〈BIP 16〉, 《GitHub》, 2019-04-10
  3. kn0rhaan, 〈BIP 30〉, 《GitHub》, 2017-07-21
  4. luke-jr, 〈BIP 34〉, 《GitHub》, 2016-11-30
  5. zaqltomo, 〈BIP 65〉, 《GitHub》, 2018-03-06
  6. harding, 〈BIP 66〉, 《GitHub》, 2018-04-05

참고자료

같이 보기


  검수요청.png검수요청.png 이 소프트포크 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.