뉴스&정보
>

세그윗(Segwit) 설명

익명 0 188 0


 

 

카드 결제를 승인하기 위해, 계약서에 동의를 표시할 때, 중요한 우편물을 받았다는 확인을 할 때 등 우리는 아주 다양한 순간에 ‘확인’ 표시로 ‘서명’을 합니다. 우리는 그에 대해 동의를 했다는 것을 정식적으로 공표하고 이를 인정한다는 것을 의미합니다. 때문에 후에 이로 인해 발생하는 문제에 대해 ‘서명’이 중요한 증거로서 역할을 합니다.

 

만일 누군가 내 신용카드를 도용하여 사용을 한 경우 어떻게 내가 아닌 것을 구별할 수 있을까요? 여러 방법이 있겠지만 그 중 하나가 바로 그 사람이 작성한 서명과 내 서명을 비교하는 것입니다. 필적을 감정하는 전문가를 통해 내 서명이 아니라는 것이 판명 나게 되면 이는 상대방이 도용했다는 확실한 증거의 역할을 하게 됩니다. 무언가에 내가 동의했음을 인정하는 공식적인 자료 입니다.

 

온라인 거래에서는 전자서명



 

이러한 서명은 인터넷 기술이 발달하면서 그에 따라 늘어난 ‘전자 상거래’에도 동일하게 요구됩니다. 물론 그 양식의 차이는 존재합니다. 오프라인이 아닌 온라인에서 거래를 하거나 결제를 할 경우에도 반드시 서명을 거치게 되는데요. 오프라인에서는 직접 손으로 서명을 하면 되지만 온라인상에서는 디지털로 서명을 해야 합니다. 이를 ‘전자서명’이라 합니다. 이 또한 디지털로 되어있는 계약서나 문서에 내가 동의했다는 것을 공공적으로 증명하는 중요한 자료로 활용 됩니다.  

 

 

트랜잭션(Transaction)이란?

 

 

 

이러한 전자서명은 가상화폐인 비트코인을 거래할 경우에도 반드시 거쳐야 할 관문입니다. 그럼 비트코인을 거래한다면 서명은 어떻게 보관이 될까요? 바로 트랜잭션이라고 불리는 곳에 전자 서명이 포함되어 집니다. 트랜잭션은 ‘내가 소유하고 있는 비트코인 중에서 보내고 싶은 만큼 비트코인의 소유권을 명시된 주소로 넘기겠다’는 표시로, 다른 사람에게 전송하겠다는 내용이 담긴 문서에 서명을 한다는 것을 의미합니다.

 

 


포화된 트랜잭션의 문제의 해결방안으로 등장한 세그윗!




 

서명은 거래를 확인하기 위해 반드시 필요한 절차인데, 비트코인 안에서 이러한 서명으로 문제가 발생하게 됩니다. 애초에 비트코인 블록은 10분에 한번 생성되도록 설계되어 있습니다. 그러나 점점 비트코인 사용자 수는 증가하고 이로 인해 사람들이 사용하는 트랜잭션이 또한 자주 일어나게 됩니다. 때문에 블록에 수많은 트랜잭션을 포함하지 못하는 경우가 발생합니다. 처음 비트코인을 만들었을 때 블록사이즈는 1메가를 상한선으로 만들었습니다.

 

시간이 지나며 증가하는 사용자로 인해 점점 거래 확인을 위한 시간이 오래 걸리자 블록 사이즈를 늘려가자는 주장이 일었습니다. 그러나 중국 채굴자 들은 블록 사이즈가 늘어날 경우 채굴이 불리해지게 되므로 강하게 반대했습니다. 이로 인해 비트코인 가격은 점점 하락하고 수수료를 변경해도 확인까지 걸리는 시간은 계속 지체됬습니다. 이로 인해 코어 개발자들 사이에서도 분분하게 의견이 나뉘는 상황까지 발생합니다. 결국 등장한 해결방안이 세그윗입니다. 세그윗은 1메가 블록 사이즈는 유지하지만 서명을 분리시켜서 남은 공간을 활용하자는 해결책 입니다.

 

 

 세그윗(Segwit)이란?



 

세그윗은 Segregated와 Witness가 합쳐서 탄생한 합성어입니다. Witness는 '증인'이라는 뜻을 나타내고 Segregated은 '분리되어 있다'는 것을 의미합니다. 즉 두 단어의 개념을 합치면 분리된 증인이라는 단어인 셈이죠. 세그윗은 옛 버전의 노드로부터 분리되어서 활동하는 증인으로 트랜잭션이 유효하다는 것을 증명하는 역할을 수행한다는 것을 나타냅니다. 세그윗 기능은 비트코어 지갑 버전인 0.13.1에서 처음으로 구현되었습니다. 때문에 그 이전 버전을 사용한 노드(사용자)는 세그윗 기능이 없겠죠. 하지만 세그윗은 이전 버전의 노드들과도 공존할 수 있도록 설계되어 있습니다.

 

 

세그윗은 생성된 블록의 트랜잭션(Transaction ID)를 계산할 경우에 거기에 속해있는 서명을 분리하게 됩니다. 세그윗을 시행하게 되면 블록에서 서명이 분리되어집니다. 때문에 블록 생성에 성공한 채굴자가 받는 상금이 저장되는 코인베이스 거래내역의 서명 부분이 옮겨집니다. 서명이 블록에서 분리가 된다는 것은 거래 내역에 그만큼의 용량을 더 포함할 수 있다는 것을 의미하기 때문에 효율성이 더 높아집니다.

 

 

 중앙 관리 시스템 vs 탈중앙화 시스템

 

 

트랜잭션으로 인해 탄생한 세그윗이 왜 꼭 필요한지 좀 더 자세하게 알아봅시다.

기존 은행과 같은 거래 시스템에서는 중앙에서 관리자가 존재하는 시스템으로 수많은 거래가 운영이 되었습니다. 때문에 거래가 승인이 이루어질 때에도 중앙에서 송금을 확인한 후에 이에 대한 결정이 떨어져야 합니다.


A와 B의 거래를 예를 들어 생각해봅시다. A는 B에게 10만원을 보내고자 합니다. A가 돈을 보내고자 할 때 중앙 관리자는 A의 잔고가 충분한지를 확인합니다. A의 잔고가 전송 금액보다 많다는 것이 확인이 된다면 중앙 관리자 혹은 서버는 기존 A의 잔고에 있던 100만원에서 10만원을 뺀 90만원으로 자료를 수정합니다.

 

그리고 A로부터 돈을 전송받은 B의 잔고는 기존 50만원에서 10만원이 더해진 60만원으로 바뀌게 됩니다. 그리고 중앙 관리자는 A와 B에게 각각 바뀐 잔고 내역을 알려주면 둘의 거래는 완료가 되는 형태로 운영이 되었습니다. 즉 중앙에서 관리하는 시스템의 경우에는 중앙의 관리자가 각각의 데이터를 확인하는 작업을 거친 후에 거래가 성사되는 방식입니다.

 

 

그러나 최근에 등장한 비트코인과 같은 블록체인을 활용하는 가상화폐의 가장 큰 특징은 탈중앙화된 방식으로 중앙에서 관리하는 기관이나 서버가 존재하지 않는다는 것입니다. 중앙에서 통제하는 기관이 없기 때문에 거래를 확인하고 운영되는 시스템이 보다 복잡한 단계를 거치게 됩니다. 왜냐하면 중앙 기관이 수행해야 할 역할을 각각의 사용자 모두를 거쳐야 거래가 확인되고 승인이 되는 구조이기 때문입니다.

 

또 다시 A와 B의 거래를 예로 들어봅시다. A가 B에게 1 비트코인을 보내고자 합니다. A와 B는 각각 비트코인 지갑을 가지고 있습니다. 이때 A가 B에게 비트코인을 보내기 위해서는 B는 비트코인 주소를 새로 생성해야 합니다. 이렇게 새롭게 바뀐 주소를 A에게 알려주면 A는 자신의 지갑에서 보내고자 하는 1 비트코인을 잠궈야 합니다. 이를 ‘인풋’이라고 일컫습니다. 잠긴 1 비트코인의 소유권을 누가 가질 것인지를 ‘아웃풋’이라고 합니다. 트랜잭션은 이와 같이 인풋과 아웃픗이 존재하게 됩니다.

 

다시 말하면, 보내고자 하는 사람의 금액이 잠궈지게 되면 받는 사람은 그만큼의 금액에 대한 소유권을 가지게 된다고 보면 됩니다. 그리고 어느 누구도 이에 대해 이의를 제기하지 않는다면 바로 성공적인 트랜잭션이 이루어졌다고 보는 것입니다.

 

이러한 트랜잭션은 P2P 형식으로 연결되어 각각의 사용자들에게 전송이 되어 집니다. 이러한 전송으로 거래가 검증을 받는 절차를 거쳐 마지막으로 B의 지갑으로 트랜잭션이 전파가 됩니다. B는 이러한 트랜잭션이 전파가 되었음을 확인하는 메시지를 받게 되고 이에 따라 거래가 수행됩니다.


0 Comments
Category
Facebook Twitter GooglePlus KakaoStory NaverBand