brunch

You can make anything
by writing

C.S.Lewis

by 뱅크샐러드 May 17. 2018

[easyblockchain] 블록체인도 업데이트를?

블록체인의 포크와 업데이트 개념을 알아보고 관련 기사에 대응하자!

뱅크샐러드의 칼럼 [쉽게 설명하는 블록체인 1, 2편]을 통해서 우리가 알고 있는 것을 정리해보자. 


데이터를 담고 있는 블록들이 약 10분에 한 개씩 생성되어 이어져 ‘체인’을 형성하는데 이를 블록체인이라 부른다는 것, 블록체인은 분산화라는 특징으로 기존의 금융기관의 중개 없이도 거래가 가능하고 이를 전 세계 사람들이 참여해 거래를 기록하고 검증하는 과정을 거친다는 것이다.


여기서 우리는 의문을 가질 필요가 있다. 
과연 이 거래가 과반이 검증한 기록이라 하여 100% 신뢰 가능한 기록일 것인가?



블록체인의 근본적인 문제 ‘51% attack’


A가 B에게 1비트코인(BTC)을 송금하면, A의 지갑에서 1 BTC가 차감되고 B의 지갑으로 가는 것이 정상적인 거래이다.


블록체인에서는 A의 1 BTC가 B가 아닌, 제 3자인 C에게 1 BTC를 전송했다고 ‘잘못’ 기록되는 상황이 발생한다.


그렇게 되면 A의 지갑에서 차감된 1 BTC가 B의 지갑과 C의 지갑으로 모두 1 BTC씩 송금되는 현상이 발생하는데 이를 이중지불(Double spending)이라 하고 이때 블록체인은 ‘분기(Forking)’된다.


즉, 같은 1 BTC의 거래가 서로 다르게 기록되기 때문에 블록체인이 서로 다른 방향으로 나아가게 되는 것이다.


위처럼, 이중지불 문제는 1 BTC가 갑자기 2 BTC로 불어 두 사람에게 나누어 주는 상황이 되기 때문에 반드시 해결해야 한다. 과반수가 위의 블록체인(A와 B의 거래)을 ‘참(true)’이라 주장하게 되면 이 문제는 해결되지만, 아래의 블록(A와 C의 거래)이 ‘참(true)’이라고 할 경우 ‘사기 장부’가 된다.


즉, 블록체인에 참여하는 51% 이상의 노드가 동시에 거래내역을 조작하는 것이다. 
이를 ‘51% attack’이라 한다.


51% attack은 블록체인을 반대하는 사람들이 주장하는 가장 근본적인 문제이지만, 현실화될 위험은 극히 낮다.


사기장부의 기록이 ‘거짓’ 임은 결국 알려지게 되는데, 그러면 장부(Ledger)로서 가치를 부여받은 블록체인의 가치는 추락할 것이고, 장부로서 역할 또한 더 이상 수행할 수 없다.


노드들은 채굴에 필요한 엄청난 금액의 장비 값과 전기료를 감당하면서 작업증명 과정에 참여한다. 만약 51% attack이 일어나 자신이 보유한 블록체인이 가치가 껌 값이 된다면, 경제적인 손실이 너무 크다.


이러한 경제적 유인 때문에 채굴 노드들은 거짓으로 기록을 작성하는 것보다 진실인 기록을 남기는 것이 더 경제적으로 가치가 있고 이득을 더 많이 남길 수 있다.



포크(Fork)는 이중지불에 국한되지 않는다.



블록체인에서 일어나는 포크(Fork)는 우리가 식사할 때 사용하는 ‘포크’의 모양을 보고 가져온 용어인데, 이 포크(Fork)라는 현상은 위의 이중지불(Double spending)처럼 하나의 거래에 대해 서로 다른 거래기록이 생길 때도 일어나지만 더 큰 틀에서 정의를 내리자면 서로 추구하는 것이 다를 때 일어난다.


즉, 블록체인 환경이 업데이트가 될 때에도 포크가 일어나는데, 새로운 환경을 만들기 위해 업데이트를 하게 되는 경우 기존의 규칙을 따르려는 블록과 새로운 규칙에 따라 기록되는 블록으로 포킹(Forking)된다. 포크에는 두 가지 종류가 있다.


1) 소프트 포크 (Soft Fork)



소프트 포크는 기존의 규칙에서 큰 틀은 바꾸지 않고 부분적인 업데이트만 일어나기 때문에 포킹(Forking)된 블록끼리 호환이 가능하다.


쉽게 말해, MS Office 2010을 쓰다가 기능적인 면에서 업데이트를 한 MS Office 2013이 나오게 된다면 2010으로 저장된 파일이 2013에서도 사용이 가능한 것과 같다. 하지만 이 예시처럼 기능적인 면에 있어서 몇 가지 제한이 있다.


이렇게 서로 어느 정도 호환이 가능하기 때문에 기존의 규칙을 따르는 블록체인은 업데이트가 필수가 아니라 선택사항이다.


기존의 규칙을 따르던 블록체인에서도 노드들이 새로운 규칙을 따르기로 합의를 한다면 두 체인은 결국 합쳐진다.


2) 하드 포크 (Hard Fork)


하드포크는 블록의 규칙을 근본적으로 바꾸는 업데이트이다. 그렇기 때문에 이전 노드들과 호환이 되지 않는다.


쉽게 말하자면, 아이폰의 iOS와 갤럭시의 안드로이드 운영체제가 서로 호환되지 않는 것과 같다.



하드포크는 전혀 다른 블록체인이 되어 합의에 도달하지 않고 서로 분리된 채 블록이 계속 쌓여 나간다.


실제로 몇 번의 하드포크가 있었는데, 가장 대표적인 예로 2017년 8월, 비트코인의 하드포크를 들 수 있다. 블록의 크기를 1MB에서 8MB로 늘리는 근본적인 변화를 주는 업데이트를 했는데 그렇게 포크(Fork)되어 나온 것이 ‘비트코인 캐시’이다.


비트코인과 비트코인 캐시는 서로 호환되지 않는 다른 코인이다. 비트코인 1개와 비트코인 캐시 1개의 가격이 다르고 채굴도 다른 시스템으로 진행되고 있다.


하드포크 시 유의해야 할 사항이 있다.


위에 언급했던 하드포크의 특성상 포킹(Forking)할 때 코인을 송금한다면 포킹된 새로운 코인도 송금되는 현상이 발생한다.



비트코인(BTC)과 비트코인 캐시(BCH)로 예를 들면, 블록이 포킹되지 않은 상태에서 1 BTC를 송금을 했는데 아직 거래가 처리되지 않고 포킹 후에 거래가 기록이 된다면 기존의 코인과 새로운 코인 모두 송금이 된다.


즉, 가치가 전혀 다른 1 BCH까지 같이 송금이 되는 현상인데, 
이를 ‘리플레이 어택(Replay Attack)’이라고 한다.


‘리플레이 어택(Replay Attack)’을 발생시키지 않기 위해서는, 포크(Fork)가 일어나기 직전엔 절대로 송금하지 않고 가지고만 있어야 한다.


현재도 포크(Fork)는 일어나고 있고, 개발자와 채굴자간 서로에게 유리한 방향으로 블록체인을 업데이트하기 위해 정치적인 투쟁을 하고 있다.

포크의 기본원리를 알고 있다면, 개발자가 지향하는 업데이트와 채굴자가 지향하는 업데이트에 대해 이해하고 언제든 블록체인 관련 뉴스에 어느 정도 대응이 가능해진다.





<함께 보면 좋은 글>

가상화폐 개념 완벽정리 A to Z  

투자 성향별 BEST 로보-어드바이저

달러에 투자하는 7가지 방법


Written by EasyBlockchain
블록체인 기술이 가까운 미래에 큰 변화를 가져다줄 거라고 믿는 블록체인 전문 블로거.
매거진의 이전글 [투자사전] 은행만 아는 당신, 상호금융조합은 어때요?
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari