MODULE 2 (B) - CRYPTOCURRENCY TRANSACTIONS INTUITION
06. WHAT IS SEGREGATED WITNESS? (SEGWIT)
분리된 증인인 세그윗에 대해 대략적으로 살펴볼 것이다.
세그윗(Segwit)은 분리된 증인(Segregated witness)의 약자이다.
분리된 증인은 말 그대로 증인이 분리되었다는 것인데, 트랜잭션을 검증하는데 필요한 트랜잭션 내 주소, 공개 키와 서명 등 즉, scriptSig라고 불리는 큰 부분이 트랜잭션으로부터 분리하는 것이며, scriptSig를 자체 메시징 채널로 분리하는 것이다.
아래 예시로 블록이 있다.
블록 안에는 몇 가지가 있는데, 블록 번호, 타임스탬프, 논스 이전 해시와 해시 등이 있다.
이 모든 것들을 합쳐서 블록 헤더라고 하며, 블록 헤더는 블록의 추가 정보에 함께 따라오는 것이지만 블록의 주체는 트랜잭션이다.
그래서 비트코인에는 1MB의 사이즈 제한이 있으며, 설계에 포함되어 있다.
그 이유는 정확히 모르지만 가능한 추측으로는 블록 크기가 너무 작으면 많은 트랜잭션을 포함할 수 없기 때문에 네트워크상에서 대역폭 문제를 많이 겪게 될 것이고 트랜잭션을 포함하기 위해 오래 기다릴 것이기 때문이다.
반면에 블록 크기가 너무 크면 네트워크가 느려지는데 전체 원장이 네트워크에 공유되야 하기 때문이다.
만약, 블록 크기가 크나면 모두 블록체인의 복사본을 가져야 하기 때문에 전파되는데 시간이 오래 걸릴 것이다.
이는 고아 블록이 생길 가능성과 경쟁 체인이 생길 가능성 그리고 공격자가 블록체인으로 뭔가 할 가능성이 높다는 뜻인데 정보가 느리게 전파되기 때문에 뭔가 할 시간이 많기 때문이다.
그래서 절충안으로 1MB로 결정하고 블록체인이 작동하고 있는 것으로 추측된다.
하지만 2017년부터 점점 속도가 느려지고 있고 트랜잭션 백로그가 발생한 것을 알아차리기 시작했다.
이를 위해 하드 포크(Hard Fork)와 소프트 포크(Soft Fork)의 접근 방법을 사용하였다. 하드 포크는 블록 크기를 증가시키고 소프트 포크는 세그윗이다.
이렇게 다른 두 가지의 접근법이 있으며 하드 포크는 우리가 보는 비트코인 캐시이고, 소프트 포크는 현재 비트코인이 된 것이다.
소프트 포크는 세그윗이다.
이는 블록체인 작동 방식을 업그레이드하는 것과 같은 의미이며, 모든 사람이 반드시 고려해야 할 것은 아니다.
시간에 따라 네트워크에 전파돼서 천천히 받아들일 수 있는 것이기 때문이다.
그리고 세그윗의 역할은 개별 트랜잭션의 콘텐츠를 확인하는 것이다.
트랜잭션 내부에는 from, to, amount가 있다.
이는 누가 누구에게 돈을 보내고 얼마나 보내려는지 누가 체인에 추가하려는지에 대한 정보이다.
하지만 보안 상의 이유로 그 정보를 포함할 순 없다.
이름을 입력할 순 없고 주소를 입력해야 하며, 그리고 서명과 공개 키도 입력해야 한다.
왜냐하면 트랜잭션에 누가 서명했는지 검증할 수 있는 노드가 필요하기 때문이다. 즉, 공개 키에 있는 개인 키를 소유한 사람이 서명했는지 검증하는 것이다.
문제는 공개 키의 서명이 큰 숫자라는 것이다.
서명과 공개키는 정말 큰 16진수이다. 그래서 전체 트랜잭션 사이즈의 60%를 차지한다.
즉, 트랜잭션의 주요 용도가 아니고 검증의 또 다른 방법이자 보안 메커니즘일 뿐이지만 공간을 많이 차지한다.
그래서 자체 메시징 서비스와 네트워크를 통해 메시지에서 scriptSig라고 불리는 큰 부분을 제거하고 보내도록 계획된 것이다.
그래서 각 블록과 트랜잭션에 여전히 연결되어 있지만 네트워크를 개별적으로 통과하는 것이다.
이렇게 하면 공간을 절약하고 각 트랜잭션의 크기를 줄여 더 많은 트랜잭션을 수용할 수 있게 된 것이다.
비트코인뿐만 아니라 Litecoin 같은 다른 암호화폐도 세그윗을 사용한다.
세그윗은 네트워크 처리량과 속도를 늘려 주기 때문이다.
비트코인과 블록체인과 암호화폐가 여러 장점이 있지만 큰 단점 중 하나는 느리다는 것이다. 즉, 처리량이 느리다.
현재 비트코인은 Visa나 MasterCard에 비해 트랜잭션 처리량이 매우 작다.
만약 비트코인이 이런 카드와 경쟁하게 된다면 지연 속도에 관한 문제를 반드시 해결해야 한다. 또한 지연 속도 보다는 처리량의 문제를 해결해야 한다.
세그윗이 그 첫 단계이지만 아직 갈 길이 멀며, 현재의 은행 시스템과 비교해 경쟁력 있는 처리량을 갖기 위해 향후에 비트코인과 다른 암호화폐에 관한 많은 의사 결정을 해야 한다.
"세그윗 블록 사이즈의 이해" - Jimmy Song
Jimmy Song, (2017), Understanding Segwit Block Size