안녕하세요. 어미새입니다.
이번 시간에는 포크(fork)에 관한 개념정리를 해보도록 하겠습니다. 명확한 이해를 하기 위해서는 채굴(마이닝)에 대한 사전 지식이 필요합니다(채굴에 대한 개념정리 후 보시면 더욱더 좋을것 같습니다).
포크(fork)
포크(fork)는 소프트웨어 개발 포크 또는 프로젝트 포크(project fork)라는 용어로 사용되며 개발자들이 하나의 소프트웨어 소스를 통째로 복사하여 독립적인 새로운 소프트웨어를 개발하는 것을 의미합니다. 오픈 소스에서는 저작권자가 소스 코드의 사용 범위와 사용자의 의무 사항을 라이선스에 명시해두며, 대부분의 오픈 소스는 무료사항 조건과 의무 사항을 지킬 경우 무료로 사용이 가능합니다. 소스 코드를 복사하여 새로운 프로젝트 개발이 가능하며 오픈 소스를 통해 보다 폭 넓고 다양한 기능을 지원하는 소프트웨어 개발이 이루어질 수 있습니다.
비트코인 시스템 또한 오픈소스 형태로 제공되고 있기 때문에 기존의 비트코인 소스를 통째로 복사하여 단점을 수정 보안하거나, 새로운 기능을 추가하는 형식으로 새로운 암호화폐를 개발할 수 있습니다.
비트코인 캐시 그리고 이더리움 클래식
하드 포크와, 스포트 포크에 관한 개념정리를 하기에 앞서 이해를 돕기위해 비트코인 캐시, 그리고 이더리움 클래식에 대한 이야기를 조금하겠습니다.
비트코인 캐시(Bitcoin Cash)
비트코인은 DDos 공격이나 마이닝풀의 거대화를 막기 위해 블록의 크기를 1MB 크기로 제한하였으며, 하나의 블록에는 약 2100건의 거래내역을 담을 수 있었습니다. 2013년 부터 비트코인의 사용량이 급격히 늘어나면서 거래 수용이 한계에 달하게 되었으며, 블록의 용량이 문제가 되었습니다. 비트코인의 용량의 문제로 블록 사이즈 증가, 세그윗 등 여러가지 방법이 제안되었으나 서로의 이익이나, 신념에의해 의견이 조율되지 않고 난항을 격게되었습니다.
그리고 2017년 7월 17일 비트코인 채굴장과 거래소를 운영하는 ViaBTC에서 8월 1일을 기점으로 UAHF 제안을 시행하여 기존 비트코인의 블록체인을 온전히 가진 새로운 알트코인 Bitcoin Cash를 내놓겠다고 선언했습니다.
2017년 8월 1일 10시 16분에 비트코인을 가지고 있던 이용자는 1:1 비율로 비트코인 캐시를 지급 받았습니다.
이더리움 해킹사건.
이더리움의 탄생 배경 또한 아주 재미있지만 이더리움에 대한 포스팅에서 이야기하도록 하겠습니다. 2016년 6월 17일 DAO Contract 취약점을 이용해 대략 360만 개의 이더리움이 도난 당하는 사태가 벌어졌습니다. 도난당한 코인은 전체 이더리움의 약 10%에 해당하며 해당 사건으로 인하여 코인당 21달러에서 13달러까지 엄청난 가치 하락이 있었습니다. 해킹 사실을 알아챈 개발자들은 2016년 7월 20일 10시경 1,920,000번째 블록을 기준으로 하드 포크를 단행하였고 성공하였습니다.
비트코인 하드포크, 비트코인 캐시의 탄생.
앞서 언급한 비트코인의 용량의 문제라던지, 거래 속도의 문제를 수정하기 위해서는 비트코인 시스템의 전반적인 수정이 필요합니다. 이런 대공사가 이루어질 경우 기존의 유지되어 왔던 비트코인 클라이언트들과 별개의 프로그램이 필요하며, 새롭게 개발된 프로그램을 활용한 노드는 같은 프로그램을 사용하는 노드끼리만 호환이 가능하기 때문에 기존의 비트코인 네트워크와 전혀다른 새로운 네트워크가 형성됩니다.
새로운 네트워크에서 새로운 방식으로 블록이 생성되고, 화폐가 발행되며, 거래 방식 또한 변경이 되었기 때문에 태생은 같지만 전혀 다른 암호화폐가 탄생하는것이죠!
비트코인 캐시의 경우 비트코인의 블록체인을 그대로 가져왔기 때문에 비트코인 보유 수량자는 새로운 네트워크인 비트코인 캐시에도 동일한 코인을 보유하고 있게 되는 것입니다. 그래서 비트코인을 하드포크하여 개발된 비트코인 캐시에서 1:1로 코인을 지급 받을 수 있었던 거죠!
이더리움 하드포크, 이더리움 클랙식의 탄생.
이더리움 클래식 같은 경우 아주 사연이 재밌습니다. 이더리움 개발 진영에서 이더리움을 해킹당하자 하드포크를 단행하였고, 해킹 당하기 이전의 블록부터 새롭게 출발할 계획이었습니다. 당연히 이전이 블록체인에 기록된 코인들은 버릴 생각이었겠죠? (네트워크에 참여자가 없으면 자연스럽게 폐허가 되고 버림받아 질테니간요!)
하지만 2016년 7월 24일 폴로닉스의 하드포크 전 블록 체인에 기록된 코인을 이더리움 클래식이라는 이름으로 상장하여 이더리움 클래식이 탄생하게 되었습니다.
이더리움 창시자인 비탈릭 부테린은 트위터에서 100% 이더리움을 지지하고 있으며, 코인계의 유명인사들 또한 이더리움을 100% 지지한다는 글이 계속 올라오면서 이더리움 클래식은 사장될것만 같았습니다.
또한 기술적으로도 이더리움 클래식은 PoS로 전환하지 않으며 최대 발행량은 210M 개로 정해져있었습니다. 오랜 기간 동안 개발 코드 수정 및 기술발전등이 전무한 상황이었기 때문에 이더리움 클래식 지지자들과 투자자들은 이더리움 클래식의 미래 자체에 의구심을 품고 있었습니다.
하지만! 2017년 10월쯤부터 개발 인력들이 결성한 이더리움 클래식 개발팀이 본격적으로 개발을 진행 하였으며, DCG 그룹의 투자가 이어지면서 이더리움 클래식 가격이 상승하기 시작하였습니다.
하드 포크 설명하다가 내용이 삼천포로 빠질것만 같아서 이제 정리를 조금 해보겠습니다.
즉 하드 포크는 새로운 기능이 추가되어 이전의 노드들과 하위 호환을 할 수 없으며 새로운 네트워크 형성을 하는 아주 큰 변화를 주는 경우를 하드포크라고합니다.
그래서 어떤 새로운 코인 발행될때 어디서 하드 포크를 해서 만들었다 어쩌다 그런말을 하는거죠.
소프트 포크
소프트 포크는 말 그대로 아주 가볍고 부드러운 포크입니다. 일종의 소프트웨어 업데이트 정도라고 생각하시면 되겠습니다. MS 오피스 2013에서 작성한 문서를 MS 오피스 2007에서 열람할 수 있는것처럼요.
하지만 MS 오피스 2013에서만 지원하는 기능은 MS 오피스 2013에서만 사용이 가능한것 처럼 일부 노드들 즉 채굴 프로그램은 반드시 업데이트를 사용해야하고, 일반 거래를 위한 노드들은 이전의 프로그램을 그대로 사용해도 무관합니다.
오늘은 이렇게 하드 포크와, 소프트 포크에 대한 개념정리를 하였습니다. 조금 정리를 해보면 아래와 같이 개념 정리가 될 것 같습니다.
소프트 포크 : 시스템의 일부 성능 개선을 위해 업그레이드를 한 수준이며, 이전의 노드들과 하위 호환이 가능하여 네트워크에 큰 영향을 미치지 않는 경우
하드 포크 : 시스템의 기능을 변경하거나, 새로운 기능이 추가되어 이전의 노드들과 하위 호환이 되지 않으며 새로운 네트워크를 형성하는 아주 큰 변화를 주는 경우
이상으로 하드 포크와 소프트 포크에 대한 개념정리를 마치도록 하겠습니다.
긴 글 읽어주셔서 감사합니다!
[참고문헌]
https://namu.wiki/w/%EB%B9%84%ED%8A%B8%EC%BD%94%EC%9D%B8%20%EC%BA%90%EC%8B%9C