세그윗(Segwit) 개념 및 특징
작성자 정보
- 작성자 슈어맨스
- 작성일
컨텐츠 정보
- 조회 27,418
- 댓글 3
본문
-‘서명’의 강력한 효력!
?우리가 생활 속에서 무언가에 동의한다는 것을 표현 할 때, 가장 빈번하게 사용하는 방법은 무엇일까요? 바로 ‘서명’을 통한 방법이 가장 대표적인 수단일 것입니다. 카드 결제를 승인하기 위해, 계약서에 동의를 표시할 때, 중요한 우편물을 받았다는 확인을 할 때 등 우리는 아주 다양한 순간에 ‘확인’을 한다는 표시로 ‘서명’을 하게 됩니다. 이처럼 서명을 하게 되는 순간에 우리는 그에 대해 동의를 했다는 것을 정식적으로 공표하고 이를 인정한다는 것을 의미합니다. 때문에 후에 이로 인해 발생하는 문제에 대해 ‘서명’이 하나의 중요한 증거로서 역할을 할 수 있습니다.
?
만일 누군가 내 신용카드를 도용하여 사용을 한 경우 어떻게 내가 아닌 것을 구별할 수 있을까요? 여러 방법이 있겠지만 그 중 하나가 바로 그 사람이 작성한 서명과 내 서명을 비교하는 것입니다. 필적을 감정하는 전문가를 통해 내 서명이 아니라는 것이 판명 나게 되면 이는 상대방이 도용했다는 확실한 증거의 역할을 하게 됩니다. 이처럼 우리가 의식하지는 못하지만 빈번하게 사용되는 서명은 생각 외로 더 큰 법적 증거와 효력을 가지고 있습니다. 무언가에 내가 동의했음을 인정하는 공식적인 자료인 셈이죠.
?
-?온라인 거래에서는 전자서명을 활용!
?이러한 서명은 인터넷 기술이 발달하면서 그에 따라 늘어난 ‘전자 상거래’에도 동일하게 요구됩니다. 물론 그 양식의 차이는 존재합니다. 오프라인이 아닌 온라인에서 거래를 하거나 결제를 할 경우에도 반드시 서명을 거치게 되는데요. 오프라인에서는 직접 손으로 서명을 하면 되지만 온라인상에서는 디지털로 서명을 해야 합니다. 이를 ‘전자서명’이라 합니다. 이 또한 디지털로 되어있는 계약서나 문서에 내가 동의했다는 것을 공공적으로 증명하는 중요한 자료로 활용 될 수 있습니다. 내가 서명을 한 것을 그에 대해 동의를 했다는 것을 인정하는 것이기에 누군가 그 서명을 증거로 내 동의를 말한다면 아무도 반박할 수가 없는 것이죠.
?
-트랜잭션(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는 이러한 트랜잭션이 전파가 되었음을 확인하는 메시지를 받게 되고 이에 따라 거래가 수행되는 것입니다.
?
-마치며
트랜잭션은 우리가 알고 있는 블록체인을 구성하는 더 작은 단위입니다. 트랜잭션이 모여서 블록이 형성되어 지고 그러한 블록이 모여 블록체인이 만들어 지는 것입니다. 트랜잭션을 이용하면 어떻게 서명이 이루어지게 될까요?
비트코인에서 전자서명은 트랜잭션에 있는 개인키를 통하여 서명을 하게 됩니다. 각각의 개인키에는 쌍을 이루는 공개키가 형성되어 지는데요. 그 공개키가 서명을 확인하는 도구로 모두에게 보내집니다. 반면 개인키는 자신 외에는 아무도 모르게 비밀이 유지됩니다. 즉 공개키만으로 누구나 블록 익스플로어 안에서 어떤 트랜잭션이 제대로 서명을 하는지 검증할 수 있게 됩니다.
?
이러한 원리로 트랜잭션이 작용하게 되어 집니다. 그리고 사용자의 증가로 트랜잭션이 과부화된 문제를 해결하기 위해 등장한게 바로 세그윗입니다. 세그윗을 통해 블록의 트랜잭션에 속해있는 서명이 분리되기 때문에 여유공간을 확보할 수 있게 됩니다. 덕분에 트랜잭션으로 골머리를 앓고 있는 블록체인의 문제를 해결할 수 있게 되는 것입니다.
?
이러한 세그윗은 빠르고 급진적인 해결방안은 아니지만 무한한 가능성을 가지고 있는 하나의 해결방안으로 큰 주목을 받고 있습니다. 앞으로 비트코인과 같은 가상화폐 시장이 더 커질수록 세그윗의 활약도 더욱 기대해봅니다.
관련자료
foecyan님의 댓글
- foecyan
- 작성일
대구코인천재님의 댓글
- 대구코인천재
- 작성일
keorm님의 댓글
- keorm
- 작성일