Segregated Witness(SegWit) 세그윗

민정·2023년 2월 6일
0

핀테크(Fintech)

목록 보기
6/7

세그윗(SegWit) 이란?

Segregated Witness의 약자로서, 비트코인의 블록에서 디지털 서명부분을 분리함으로써 블록당 저장 용량을 늘리는 소프트 포크

개별 거래의 디지털 서명은 각 블록에서 많은 용량을 차지한다. 따라서 블록에서 디지털 서명 부분을 분리하여 별도로 저장함으로써, 블록당 저장 용량을 늘림

전자 서명 데이터는 전체 거래 데이터의 75%의 용량을 차지하고 있음
따라서 거래 서명 데이터를 별도로 분리하여 하나의 데이터 레이어를 쌓는 방법을 사용함

  • 하나의 레이어를 블록 위에 놓고 계속해서 블록과 데이터를 주고받고 동기화 하는 방식

세그윗의 특징

실제 블록 크기를 키우지 않고 실질적인 블록 크기를 늘리는 해결책

블록 크기에 대한 변동은 없지만 블록 크기 제한이 늘어난다 ! → 이로 인해 더 많은 트랜잭션을 처리 가능

하나의 블록을 마이닝 하는 데에 동일한 시간이 소요될 수 있지만 더 많은 트랜잭션을 담을 수 있어 TPS가 증가한다. 트랜잭션 수수료가 약 30달러에서 1달러 미만으로 대폭 절감되었다.

거래 가변성(Transaction Malleability) 의 문제

악용 예시

  • 해커 B가 거래소 A에서 자신의 지갑 주소 B1으로 0.1BTC 을 출금
  • 거래소 A 는 거래소가 관리하는 지갑주소 A1에서 B1으로 0.1BTC 를 보내는 거래 번호(TXID) C1을 네트워크에 전파
  • 거래소 A는 거래번호 C1을 자신의 전산에 기록
  • 해커 B는 네트워크 전파를 확인하는 동시에 거래의 거래번호만 C2로 바꾸어 네트워크에 전파, 거래 C1과 C2는 거래번호는 다르지만 같은 거래이므로 하나가 채택되면 하나는 거부
  • 해커의 운이 좋아 C2가 블록에 포함되어 C1은 지워짐
  • 해커 B는 거래소 A에게 자신의 거래가 출금되지 않았으니 다시 0.1BTC를 출금 해줄 것을 요청
  • 거래소 A는 전산에 기록한 C1거래를 네트워크에서 찾아봐도 없으니 다시 Bdprp 0.1BTC을 송금
💡 세그윗이 적용되면 거래의 입력란에 서명이 포함되지 않으므로 이를 악용하는 방법이 차단!!

참고자료

[Blockchain] 세그윗 (SegWit)

profile
공부 기록장

0개의 댓글