세그윗 (Segregated Witness, SegWit)

중급블록체인수정일

세그윗(SegWit)은 트랜잭션의 서명 데이터(위트니스)를 트랜잭션 본문에서 분리한 비트코인 소프트 포크로, 2017년 8월 활성화되어 블록 용량을 늘리고 트랜잭션 가변성 문제를 해결했습니다.

자세히 알아보기

세그윗 이전 비트코인 트랜잭션은 서명(scriptSig)이 트랜잭션 데이터 안에 들어 있었고, 트랜잭션 ID(txid)도 서명을 포함한 전체를 해시해 만들었습니다. 그런데 서명은 의미를 바꾸지 않고도 인코딩을 살짝 바꿀 수 있어서, 제3자가 txid를 바꿔 버리는 트랜잭션 가변성(malleability) 문제가 있었습니다. 이 때문에 아직 확인되지 않은 트랜잭션의 txid에 의존하는 기술(예: 결제 채널)을 안전하게 만들기 어려웠습니다.

세그윗(BIP141 등)은 서명과 공개 키 같은 위트니스(witness) 데이터를 별도 구조로 옮기고, txid 계산에서 제외했습니다. 동시에 블록 크기 제한을 1MB에서 블록 무게(weight) 400만 단위 기준으로 바꾸었습니다. 위트니스 바이트는 일반 데이터보다 4분의 1만큼만 무게로 계산되므로, 같은 블록에 더 많은 트랜잭션이 들어가고 수수료도 가상 바이트(vbyte) 기준으로 낮아집니다. 구 버전 노드도 새 블록을 유효하다고 보는 소프트 포크 방식이라 네트워크 분리 없이 도입되었습니다.

세그윗은 2017년 8월 24일 블록 481,824에서 활성화되었습니다. 활성화 직전 7월에는 채굴자 신호를 모으는 BIP91이 먼저 잠겼는데, 일부 자료가 이 날짜를 세그윗 활성화일로 잘못 적기도 합니다.

블록체인·암호화폐에서는

세그윗 주소는 bc1q로 시작하는 Bech32 형식(네이티브 세그윗)이나, 호환을 위해 P2SH로 감싼 3으로 시작하는 형식이 있습니다. 가변성이 해결되면서 라이트닝 네트워크가 가능해졌고, 2021년 탭루트(bc1p 주소)도 세그윗의 버전 체계 위에서 도입되었습니다. 라이트코인 등 일부 알트코인도 세그윗을 채택했습니다.

세그윗 도입 과정

세그윗은 블록 크기 논쟁 한가운데서 도입되었습니다. 블록 크기를 직접 키우자는 측과, 소프트 포크로 용량을 늘리고 2계층 확장을 추구하자는 측이 대립했습니다. 채굴자 신호가 오랫동안 활성화 기준(95%)에 못 미치자, 사용자 주도 소프트 포크(UASF, BIP148) 움직임과 채굴자 합의안이 맞물리며 BIP91이 먼저 활성화되었고, 이어 세그윗이 잠기고 활성화되었습니다. 같은 시기인 2017년 8월 1일, 블록 크기를 키우는 쪽은 하드 포크로 비트코인 캐시(BCH)를 분리해 나갔습니다.

세그윗 출력을 쓰는 트랜잭션은 서명이 txid 계산에서 빠지므로, 서명 해시 방식도 BIP143으로 개선되어 입력 금액을 서명에 포함하게 되었습니다. 이 덕분에 하드웨어 지갑이 수수료를 더 안전하게 확인할 수 있습니다.

쉽게 말하면

서류 봉투에서 부피가 큰 서명 확인서를 따로 빼서 별첨으로 묶은 덕분에, 같은 상자에 서류를 더 많이 넣을 수 있게 된 것입니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.