알고 있어야 할 용어
소프트포크, 하드포크 등 생전 처음 듣는 용어들을 언급하기 전에 여기에서 각 용어에 대한 간단한 설명을 하기로 한다. 이는 독자들의 혼란을 줄이고자 하는 의도에서이다.
- 블록체인 프로토콜 : 커넥션, 채굴, 거래 규정 등을 분명히 밝혀놓은 코드 규칙을 말한다. 네트워크의 일부가 되기 위해서는 참가자들은 이러한 프로토콜을 준수해야 한다.
-
포크 : 이는 기본 프로토콜과는 다른 버전을 받게 되는 순간을 가리킨다.
그렇다면 이제 각 용어에 대해 좀더 심층적으로 얘기해보기로 하자.
포크나 그밖에 온갖 이해하기 어려운 용어를 언급하기 전에 우리가 무엇보다도 먼저 대답해야 할 질문은 "프로토콜을 왜 업데이트해야 하는가?"이다.
-
이전 버전에서 발견된 중요한 보안 위험을 수정하기 위해. 암호화폐는 상대적으로 생겨난지 오래되지 않은 것으로서 이는 과거 법정화폐가 오래 전에 거쳤던 생성과정을 지금 거치고 있다. 예를 들어 달러화가 오늘날의 모습을 갖추는 데는 종이의 질, 색상, 폰트, 보안특징 등 수많은 측면에서 많은 개선 과정을 거쳐왔다. 그래서 오늘날 달러화를 위조하는 데는 상당한 어려움을 겪게 되었다. 그와 마찬가지로 모든 암호화폐 보안 리스크를 발견하여 수정하는 데는 상당히 오랜 시간이 걸릴 것이다.
-
새로운 기능을 추가하기 위해. 우리가 오늘날 윈도 10을 사용한다는 것은 윈도 이전 버전들에서 상당히 많은 것들을 수정해야 했음을 의미한다. 블록체인 코드 또한 몇 년에 걸쳐 개선되고 있다. 이는 오픈 소스 개발 방식을 채택하고 있으므로 개발자들은 전세계에 걸쳐서 작업을 진행하고 커뮤니티에 개선할 사항을 제안하게 된다. 개선 제안을 한 특성이 상당히 괜찮다고 판단될 경우 이는 다음 버전에 적용되는 것이다.
-
거래 반전을 위해. 과거에 통용됐던 달러화 위조지폐를 기억하는가? 누군가가 그러한 위조지폐를 받았을 경우 위폐범은 감옥에 쳐넣을 수 있을지 모르겠으나 이를 무심코 받았던 사람은 보상 받지 못하고 고스란히 손해를 봤어야 했다. 암호화폐 세계에서는 그러한 손해를 최소화할 수 있다. 보안 침범 사례가 있을 경우 커뮤니티는 특정 일자에 발생한 모든 거래를 무효로 선언할 수 있다. 이는 마치 타임머신을 타고 과거로 돌아가는 것과 같다. 선의의 거래자들 입장에서 이러한 거래 반전 과정은 거래를 다시 할 수 있음을 의미한다. 한편 악의를 갖고 돈을 훔치고자 시도했던 사람들 입장에서 이는 돈을 훔치는 것이 갈수록 더 어려워지고 있음을 의미한다. 물론 그렇다고 완전히 불가능한 것은 아니지만 말이다.
소프트포크란 무엇인가?
위에서 언급했던 것처럼 이는 프로토콜 변경을 의미한다. 그러나 이는 하위호환성은 보장해준다.
그러면 이를 교통규칙을 갖고 설명해보기로 하자. 예를 들어 미국이 교통규칙을 정하면서 고속도로에서 최소 및 최고 속도를 각각 시간당 45km와 90km로 정했다고 치자. 그러다가 어느날 정부가 마음을 바꿔서 이제부터 속도 범위를 60km에서 105km로 상향조정 했다고 하자. 그럴 경우 무슨 일이 벌어질까? 대체로 평균 속도 80km 정도로 달라는 대부분의 운전자들은 아무런 변화를 느끼지 못할 것이다. 이들은 일체의 법을 어기는 일이 없이 계속해서 같은 속도로 운전을 할 수 있을 것이다. 그러나 지금까지 45km로 달렸던 운전자들은 당연히 속도를 더 내야 한다.
그와 마찬가지로 자신이 사용하던 블록체인 버전을 소프트포크 버전으로 즉시 바꿔야 할 필요는 없고 지금까지 했던 그대로 사용할 수 있다. 그러나 새로운 프로토콜에 반하는 일을 할 경우에는 얘기가 달라진다.
하드포크란 무엇인가?
교통규칙의 예를 갖고 계속 설명을 하자면 하드포크는 자체적인 고속도로와 운전자 등을 갖춘 완전히 새로운 평행 우주를 만드는 것과 유사하다.
네브라스카에 거주하면서 지프차를 모는 운전자가 있다고 한다면 이제 '네브라스카 캐시'에 거주하면서 '지프차 캐시'를 모든 '운전자 캐시'가 있는 것과 같다. 따라서 이 두 운전자는 두 개의 상이한 우주에서 상이한 삶을 사는 셈이다. 그러나 네브라스카 캐시 운전자는 절대로 네브라스카 운전자를 만나거나 네브라스카에서 일자리 지원을 할 수 없다. 그 이유는 이 두 우주 간에는 서로 오갈 수 있는 방법이 없기 때문이다.
그럼 다시 암호화폐 용어로 돌아가보자. 하드포크가 있은 다음 과거 버전과 새로운 버전은 완전히 분리가 되고 이제부터는 두 버전 사이의 커뮤니케이션이나 거래는 일체 없게 된다. 많은 경우 새로운 버전은 과거의 모든 거래 내역을 물려받게 되지만 그 시점부터 각 버전은 완전히 다른 거래 내역을 갖게 된다.
하드포크의 사례
비트코인 캐시
원래 비트코인과의 차이점 : 거래 속도는 빨라졌으나 분산형 정도는 낮은 편
무슨 일이 있었는가 : 하드포크가 있은 후 비트코인 캐시는 완전히 새로운 화폐가 됐으며 하드포크 전까지 비트코인을 보유하던 사람들은 그에 상응하는 비트코인 캐시를 월렛으로 전달받게 된다.
발생일 : 2017년 8월 1일
이에 대해서 보다 자세한 내역을 알려면 '비트코인과 비트코인 캐시의 차이점'을 읽울 것
DAO
이더리움 블록체인과의 차이점 : DAO는 이더리움 블록체인 상의 스마트 계약 형태로 만들어졌으며 일종의 벤처캐피털 펀드처럼 작동하도록 만들어졌다. DAO 제정 이후 모든 이더 보유자들은 DAO 토큰으로 교환을 할 수 있었다.
무슨 일이 있었는가 : DAO는 해킹을 당하고 그런 결과 360만개에 달하는 이더가 도난당했다. 해커들이 이 탈취한 토큰을 현금으로 바꾸지 못하도록 하기 위해 커뮤니티는 소프트포크를 결정했다. 그러나 그로부터 얼마 가지 않아 커뮤니티의 대다수는 하드포크에도 표결을 했다.
발생일 : 2016년 7월 20일