세그윗

dhkim·2022년 7월 4일
0

블록체인 뽀개기

목록 보기
5/22

비트코인의 속도와 확정성 개선을 위한 여러 시도 중, 가장 대표적인 기술이 바로 세그윗(SegWit)

배경

블록체인의 시작이자, 세계 최초의 암호화폐인 비트코인은 매우 느리고 제한된 서비스

  • 거래 기록: 약 10분 단위로 저장
  • 승인: 안전한 거래를 위해서는 최소 6번의 승인 필요

안전한 트랜잭션을 위해서는 약 1시간 이상 소요 된다는 문제점
또한 용량 문제도 있는데, 비트코인 블록 약 1MB

비트코인의 관심이 늘어나면서 여러 분야에 활용하려는 반면 처리할 수 있는 데이터는 작다 보니 어느샌가 비트코인의 가격이 큰 폭으로 오를 정도가 되면서 문제가 발생

위와 같은 특징으로 인해 비트코인은 화폐 시스템으로 부적합하다고 평가받고 있음
이러한 속도와 확장성 문제는 결제 및 송금 서비스 등 현실적인 활용을 어렵게 만들고 있음
블록체인이 지역과 국가를 벗어난 탈중앙화 금융시스템으로 동작하게 하기 위해선 강력한 탈중앙화, 보안 그리고 초당 3000건 이상 트랜잭션을 처리할 수 있는 속도, 확정성이 필요

속도 - 합의에 도달하여 거래기록이 장부에 기록되는데 걸리는 시간
확장성 - 갑자기 많은 트래픽이 발생할 경우 다운이나 지연없이 서비스 연속성이 보장되는 성질

현재 블록체인의 속도와 확장성을 개선하기 위한 여러 방법은 크게 4가지로 정리
1. 블록의 용량 증대
2. 블록체인 내 기술 도입: 샤딩 등
3. 블록체인 외부와 연계
4. 합의 알고리즘 재설계

여기서 세그윗은 1. 블록의 용량증대를 통한 개선 방법 중 하나

세그윗

세그윗이란 비트코인의 블록에서 디지털 서명 부분을 분리함으로써 블록당 저장 용량을 늘리는 소프트웨어 업그레이드
즉, 고정된 블록의 가용 공간을 늘려서 속도를 개선하자는 것이 핵심
기존 비트코인의 블록 구조는 디지털 서명 데이터(75%) + 그 외 데이터(25%)
비트코인 관련 커뮤니티에서는 전자 서명 데이터를 별도의 공간에 저장하고, 대신 블록에 더 많은 트랜잭션을 담자는 세그윗이라는 제안이 나옴

세그윗을 통해 전자 서명 데이터만큼의 블록 저장용량을 늘릴 수 있기 때문.
2017년 8월 1일 기준으로 비트코인은 세그윗을 적용
-> 디지털 서명 데이터 부분만 별도로 Off-chain에서 작동하게 분리함으로써 기존 시스템에는 영향을 주지 않으면서 처리 속도를 개선

  • 세그윗을 처음으로 활성화한 암호화폐는 무엇일까?
    그로스톨코인 -> 한개 블록에 더 많은 거래정보를 담게 함으로써 더 많은 거래내역을 처리
  • 우지한을 비롯한 채굴 세력들은 왜 세그윗에 반대했을까?
    세그윗을 진행할 경우 중국의 채굴업자들이 사용하던 에이식부스트 방식의 비트코인 채굴이 불가능
    이에 앤트풀, 비아비티씨 등 중국의 채굴업체들을 중심으로 기존 에이식 채굴기를 사용한 비트코인 채굴을 지속하기 위해 기존 비트코인을 하드포크시켜 블록 용량을 8MB로 늘린 비트코인캐시라는 새로운 암호화폐를 생성

세그윗의 특징

세그윗의 특징은 크게 3가지

  • 거래 속도의 확장성을 해결
  • 거래 가변성 문제를 해결
  • 버전 호환

거래 속도의 확장성(Scalability)

비트코인은 1초에 7개의 거래만 처리 가능
이를 거래 속도의 확장성 문제
이 확장성 문제를 해결하기 위해 세그윗을 사용
거래하기 위해서는 거래를 하는 당사자의 서명이 필요
서명은 신원을 증명하는 것인데 디지털 서명은 이를 컴퓨터상에서 숫자 등으로 암호화하여 만든다.
쉽게 생각하면 마트에서 카드 결제를 할 때 서명하는 것을 생각
디지털 서명이란 돈을 보내는 사람의 개인 키로 암호화한 메시지를,
돈을 받는 사람이 돈을 보내는 사람의 공개키로 해석하여 돈을 보내는 사람이 맞는지 신원 확인하고 증명하는 것이다.

서명란에 실제 서명 데이터가 차지하는 크기는 크지 않지만, 서명란 자체가 차지하는 부피가 큼
세그윗은 서명 부분을 따로 Witness라는 데이터 영역으로 분리해 더 많은 거래를 처리할 수 있도록 업데이트
단순히 블록의 크기를 늘리는 것도 방법이 될 수 있지만 블록의 크기가 더 커지면 더 많은 해시파워를 요구하고, 그렇게 되면 소수의 해시파워를 가진 채굴 노드들로 인해 탈중앙화에서 점차 멀어질 수 있기 때문이다.

확장성 문제는 말 그대로, 더 많은 용도 또는 더 많은 사람들이 사용하기에 적합한 정도를 말한다. 세그윗은 블록의 불필요한 부분(ex.서명란)을 줄여 블록의 크기를 줄인다. 블록의 불필요한 부피가 줄어들면, 더 많은 트랜잭션을 블록에 담을 수 있다.

거래 가변성 문제(Transaction Malleability)

모든 비트코인 거래는 해당 거래를 식별할 수 있는 거래의 ID(TXID)를 포함
TXID가 ID라면 TXID를 따라다니는 전자서명은 비밀번호라고 할 수 있다.

거래 가변성은 실질적인 거래 내용에는 변화가 없지만 거래 ID만 변경하여 새로운 거래를 만들어 낼 수 있는 일종의 버그다.
두 개 이상의 거래 ID로 서로 다른 거래처럼 보이지만 실제 거래 내역은 동일한 거래를 가질 수 있는 것이 가변성의 문제
이러한 문제를 막기 위해 서명을 거래와 따로 분리하자는 의견이 제시되었고 이것이 바로 세그윗이다.
세그윗이 TXID를 따로 보관하고 관리함으로써 여러 개의 ID를 가지고 장난을 치거나 동일한 거래 내역 여러 개를 만드는 것을 방지할 수 있다.

버전 호환

세그윗은 하드포크가 아닌 소프트포크
비트코인 소프트웨어의 업그레이드를 하지 않아도 세그윗 이전과 세그윗 적용 버전을 모든 노드에서 사용할 수 있다.

최종정리

블록 용량 증가트랜잭션 속도 증가트랜잭션 가변성 해결
디지털 서명 데이터 분리더 많이 저장할 수 있는 블록을 통해 트랜잭션 속도 증가서명이 더 이상 트랜잭션 데이터의 일부가 아니기 때문에 해당 데이터를 변경 불가
실질 블록 크기는 1MB에서 4MB까지 증가하나의 트랜잭션에 30달러 이상에서 1달러 미만으로 절감서명 조작 불가
profile
Blockchain developer

0개의 댓글