SegWit이란 무엇인가요?

SegWit이란 무엇인가요?

2017년 당시 비트코인은 커뮤니티를 분열시킬 뻔한 심각한 문제에 직면했습니다. 네트워크는 초당 3건 정도의 거래밖에 처리할 수 없었고, 수수료는 폭등했으며, 블록은 포화 상태에 이르렀습니다. 게다가 해결책에 대한 의견도 제각각이었습니다.

최종적으로 채택된 솔루션은 세그위트(SegWit, Segregated Witness)였습니다. 비트코인 코어의 주요 개발자 중 한 명인 피터 윌리가 제안한 이 솔루션은 모든 비트코인 거래 구조를 근본적으로 바꾸어 놓았습니다. 단순한 수정이 아니라, 데이터가 블록 안에 담기는 방식을 완전히 재설계한 것입니다. 8년이 지난 지금, 전체 비트코인 거래의 약 96%가 세그위트 주소를 사용하고 있습니다. 지난 몇 년 동안 비트코인을 구매하거나 전송한 적이 있다면, 거의 확실히 자신도 모르게 세그위트를 사용했을 것입니다.

실제 문제는 무엇이었나요?

2016년의 상황을 설명해 드리겠습니다.

비트코인은 블록당 1MB의 용량 제한이 있습니다. 사토시 나카모토는 스팸 공격을 막기 위해 2010년에 이 제한을 두었고, 아무도 이를 제거하지 않았습니다. 블록은 약 10분마다 채굴됩니다. 블록당 1MB라고 하면, 블록당 약 1,650건의 거래가 처리될 수 있습니다. 계산해 보면 전체 비트코인 네트워크에서 초당 2~3건의 거래가 이루어지는 셈입니다. 전 세계 사람들이 이처럼 얇은 네트워크를 공유하는 것이죠.

참고로 비자는 초당 65,000건을 처리합니다. 그러니까, 문제가 되는 거죠.

2016년 말에 이르러 모든 블록이 1MB 용량 한계에 부딪혔습니다. 더 이상 저장할 공간이 없어지자 비트코인 사용자들은 거래 수수료를 놓고 서로 경쟁하며 채굴자들에게 뇌물을 주고 자신의 거래를 먼저 처리하도록 유도했습니다. 수수료는 천정부지로 치솟았습니다. 10달러어치의 비트코인을 보내는 데 15달러의 수수료가 부과되는 경우도 있었습니다. 도저히 이해할 수 없는 상황이었습니다.

그리고 좀 더 복잡한 문제가 있었습니다. 바로 거래 변조 가능성이죠. 최대한 간단하게 설명하겠습니다. 비트코인을 보내면 네트워크는 해당 거래에 대한 ID를 생성합니다. 세그윗 이전에는 서명을 포함한 전체 거래 정보를 바탕으로 ID가 만들어졌습니다. 문제는 무엇일까요? 누군가 미확인 거래를 가로채서 서명 인코딩을 조작(기술적으로는 유효한 상태로 유지하면서)하면, 똑같은 거래인데도 다른 ID를 얻을 수 있다는 겁니다. 보내는 사람, 받는 사람, 금액 모두 동일한데 ID 번호만 달라지는 거죠.

왜 이 문제에 관심을 가져야 할까요? 2014년에 84만 BTC를 날려버린 거래소 마운트곡스가 바로 이 버그를 악용했기 때문입니다. 더 중요한 것은 비트코인 위에 구축된 모든 2계층 시스템(예: 결제 채널)은 거래를 ID로 참조해야 한다는 점입니다. 만약 이 ID가 변경될 수 있다면 전체 시스템이 붕괴될 수 있습니다.

비트코인은 블록 크기가 너무 작고 거래 ID를 신뢰할 수 없다는 두 가지 문제에 동시에 직면해 있었습니다. 세그윗은 이 두 가지 문제를 한 번에 해결했습니다.

(컴퓨터 공학 학위 없이도) SegWit 작동 원리 이해하기

비트코인 거래를 수표에 비유해 보세요. 누가 누구에게 얼마를 지불하는지 적힌 부분이 있고, 맨 아래에는 거래의 정당성을 증명하는 서명이 있습니다. 세그윗(SegWit) 이전에는 이 두 부분이 하나의 블록에 담겨 1MB 블록 크기 제한에 모두 포함되었습니다.

피터 윌레를 불편하게 했던 것은 바로 이것이었습니다. 서명 데이터가 모든 거래의 약 65%를 차지한다는 점이었습니다. 각 블록의 대부분은 실제로 무슨 일이 일어났는지 기록하는 것이 아니라, 누군가가 승인했다는 증거를 기록하는 데 쓰이고 있었습니다. 이는 낭비처럼 느껴졌습니다.

그의 아이디어는 서명을 따로 분리해서 "증인"이라는 별도의 섹션에 넣는 것이었습니다. 거래 데이터는 메인 블록에 그대로 두고, 증인 데이터는 별도로 저장하는 것입니다. 증인 데이터는 네트워크의 모든 노드에서 여전히 검증되지만, 블록의 완성도를 계산할 때 거래 데이터와는 다른 비중을 차지하게 됩니다.

실제로 어떤 변화가 있었을까요? 블록당 저장 가능한 거래량이 약 1,650건에서 2,700건으로 늘어났습니다. 비트코인의 초당 거래량은 2~3건에서 7~10건으로 급증했습니다. 비자에 비하면 여전히 적은 수치이지만, 과도한 성공으로 인해 숨이 막힐 지경이었던 네트워크에는 숨통을 트여주는 계기가 되었습니다.

세그윗

블록 가중치: 새로운 수학

여기서부터가 핵심입니다. 가장 간단한 방법은 1MB 제한을 2MB로 바꾸는 것이었겠지만, 그렇게 되면 하드 포크가 발생하게 됩니다. 비트코인 네트워크의 모든 노드가 업데이트되어야 하고, 그렇지 않으면 네트워크에서 이탈하게 됩니다. 하드 포크는 복잡하고, 뒤처지는 노드가 생기기 마련입니다.

피터 윌레는 더 스마트한 방식을 고안해냈습니다. 세그윗(SegWit)은 블록 크기를 단순히 바이트 단위로 측정하는 대신 "블록 가중치"를 사용합니다. 일반 거래 데이터는 바이트당 4 가중치 단위로 계산되고, 검증 데이터는 바이트당 1 가중치 단위로 계산됩니다. 총 가중치 단위의 상한선은 400만입니다.

실제로 어떤 의미일까요? 증인 데이터가 없는 블록은 이전과 마찬가지로 최대 1MB입니다. 기존 노드들은 아무런 이상 징후도 감지하지 못합니다. 세그윗(SegWit) 트랜잭션으로 가득 찬 블록은 이론적으로 4MB에 가까운 크기에 도달할 수 있지만, 실제로는 대부분 1.5MB에서 2MB 정도의 크기를 갖습니다.

이것의 놀라운 점은 SegWit이 소프트 포크로 출시되었다는 것입니다. 업그레이드하지 않은 노드들도 계속 작동했습니다. 단지 새로운 섹션의 Witness 데이터를 볼 수 없었을 뿐입니다. 비트코인 블록체인은 분리되지 않았습니다. "구 비트코인"과 "신 비트코인"은 존재하지 않았습니다. 하나의 체인, 하나의 네트워크, 하위 호환성. 이것만으로도 충분한 인정을 받지 못하는 엔지니어링 승리입니다.

SegWit 이전 SegWit 이후
블록 크기: 최대 1MB 블록 중량: 최대 4백만 중량 단위
블록당 약 1,650건의 거래 블록당 약 2,700건의 거래
2-3 TPS 7-10 TPS
블록 내 서명 데이터 서명 정보는 별도의 증인란에 기재됩니다.
거래 ID에는 서명이 포함되어 있습니다. 핵심 데이터만을 기반으로 한 거래 ID

거래 유연성 수정

사람들은 블록 크기 문제에 대해 끊임없이 이야기합니다. 물론, 가장 큰 논란거리였던 것은 사실입니다. 하지만 저는 거래 유연성 개선이 훨씬 더 중요한 부분이었다고 생각하며, 개발자 커뮤니티 외부의 사람들은 이 부분에 대해 거의 알지 못합니다.

자, 이제 본론으로 들어가겠습니다. 세그윗(SegWit) 이전에는 비트코인 지갑에서 거래가 생성될 때, 거래 ID(TXID)는 서명을 포함한 거래의 모든 정보를 기반으로 계산되었습니다. 여기서 특이한 점은 디지털 서명이 여러 가지 유효한 형식으로 표현될 수 있다는 것입니다. 동일한 서명, 동일한 소유권 증명이지만 바이트 시퀀스가 약간씩 다를 수 있는 것이죠.

즉, 누군가가 미확인 거래를 가로채서 서명을 다른 방식이지만 동일하게 유효한 방식으로 다시 인코딩한 후 전송할 수 있다는 뜻입니다. 네트워크는 수정된 버전을 승인합니다. 송신자, 수신자, 금액은 동일하지만 거래 ID는 완전히 달라집니다.

알아요. 좀 모호하게 들릴 수도 있지만, 정말 중요한 문제예요. 단계 B가 단계 A의 ID를 참조하는 시스템을 생각해 보세요. 만약 누군가가 단계 A가 제출된 후, 하지만 승인되기 전에 단계 A의 ID를 변경할 수 있다면, 단계 B가 제대로 작동하지 않게 됩니다. 전체 논리 체계가 무너지는 거죠.

SegWit은 서명 정보 부분을 제외한 나머지 부분만을 사용하여 TXID를 계산함으로써 이 문제를 해결했습니다. 이제 서명은 ID와 별도로 서명 정보 필드에 저장됩니다. 따라서 누구도 이를 변경할 수 없습니다. 거래 ID는 한 번 생성되면 영구적으로 고정됩니다.

SegWit과 라이트닝 네트워크

이것이 바로 가변성 개선이 중요했던 이유입니다. 라이트닝 네트워크는 비트코인이 초당 수백만 건의 결제를 처리할 수 있도록 설계된 방식입니다. 당신과 저는 결제 채널을 개설하고, 메인 블록체인이 아닌 외부에서 비트코인을 주고받습니다. 거래가 완료되면 최종 순 잔액만 온체인에 기록됩니다. 수백 건의 거래가 아닌 단 하나의 거래만 비트코인 블록체인에 기록되는 것입니다.

라이트닝 네트워크는 거래 ID를 통해 서로를 참조하는 거래 체인을 구축하는 방식으로 작동합니다. 만약 누군가가 거래 도중에 ID를 변경할 수 있다면, 환불을 보장하는 거래가 무효화되어 손실을 입을 수 있습니다. 전체 결제 채널 개념은 ID의 안정성에 달려 있습니다.

세그윗(SegWit) 덕분에 라이트닝 네트워크가 안정화되었습니다. 더 이상 설명이 필요 없습니다. 세그윗이 없었다면 라이트닝 네트워크는 너무 위험해서 배포할 수 없었을 겁니다. 라이트닝 네트워크가 없었다면 비트코인은 초당 7~10건의 거래 속도에 영원히 갇혀 있었을 것입니다. 이는 결제 네트워크가 아니라, 거액 투자자들을 위한 정산 계층일 뿐입니다.

저는 이렇게 생각합니다. SegWit은 단순한 업그레이드가 아니었습니다. 그것은 기초를 다진 것이었습니다. 2021년의 Taproot, 라이트닝 네트워크, 심지어 2023년의 오디널스(Ordinals) 문자까지 모두 2017년 8월에 이루어진 구조적 변화가 없었다면 불가능했을 것입니다.

주소 형식: 레거시, 래핑, 네이티브 SegWit

비트코인 주소 중에 "1"로 시작하는 주소도 있고, "3"으로 시작하는 주소도 있고, "bc1"으로 시작하는 주소도 있다는 사실을 눈치채셨나요? 이는 지갑에 적용된 SegWit 업그레이드를 나타내는 표시입니다.

"1"로 시작하는 주소는 구형 주소입니다. 세그위트(SegWit)를 지원하지 않으며, 수수료가 가장 많이 부과됩니다. 만약 사용하시는 지갑에서 여전히 이러한 주소를 표시한다면 소프트웨어를 업데이트하세요.

"3"으로 시작하는 주소는 SegWit으로 래핑되어 있습니다. 비트코인 거래는 내부적으로 SegWit을 사용하지만, 래핑 처리되어 있어 SegWit에 대해 알지 못하는 구형 지갑에서도 비트코인을 전송할 수 있습니다. 기존 방식보다 저렴하지만 가장 저렴한 옵션은 아닙니다.

"bc1q"로 시작하는 주소는 네이티브 SegWit(Bech32라고도 함) 주소입니다. 이는 여러 장점이 있습니다. 수수료가 가장 낮고, 오류 검사 기능이 가장 뛰어납니다(주소 형식이 오타를 더 잘 잡아냅니다). 현재 전체 거래의 96%가 이 방식을 사용하고 있습니다.

"bc1p" 주소를 볼 수도 있습니다. 이는 SegWit 위에 구축된 2021년 최신 업그레이드 버전인 Taproot을 나타냅니다. 별개의 주제이지만, 이러한 주소가 있다는 것을 알아두면 좋습니다.

주소 유형 ~로 시작합니다 수수료 수준 세그윗?
레거시(P2PKH) 1 제일 높은 아니요
Wrapped SegWit(P2SH) 3 중간 네 (포장됨)
네이티브 SegWit(Bech32) bc1q 최저 예 (원어민)
주근(Bech32m) bc1p 최저 예 + 주근

실제로 수수료를 얼마나 절약할 수 있나요?

기술 분야에 익숙하지 않은 제 친구들이 실제로 알고 싶어하는 건 바로 이거예요. 얼마나 더 싼가?

Unchained는 자체적으로 계산해 본 결과, 표준 단일 서명 SegWit 거래는 기존 방식 대비 약 53%의 수수료 절감 효과를 가져온다는 사실을 확인했습니다. 수탁 자산 관리에서 흔히 사용되는 2-of-3 멀티시그 방식을 사용하면 약 64%의 절감 효과를 볼 수 있습니다. 이는 단순한 오차가 아닙니다. 기존 방식 사용자가 건당 30달러를 지불하는 바쁜 날에도 SegWit을 사용하면 15달러 미만으로 거래할 수 있습니다.

왜 그럴까요? 바로 블록 가중치 계산 때문입니다. 증인 데이터는 1바이트가 아닌 0.25바이트의 가상 바이트로 계산됩니다. 따라서 여러분의 거래는 블록에서 차지하는 공간이 줄어들고, 채굴자들은 그에 대한 수수료를 덜 받게 됩니다. 간단한 원리입니다.

만약 사용하시는 비트코인 지갑에서 여전히 "1"로 시작하는 주소가 표시된다면, 매번 송금할 때마다 돈을 낭비하고 있는 것입니다. 세그위트(SegWit)를 지원하는 지갑으로 바꾸세요. 5분이면 충분합니다. 코인베이스, 레저, 트레저, 블루월렛, 스패로우 등 모든 지갑이 세그위트를 지원합니다. 단점은 전혀 없습니다.

세그윗

논란거리: SegWit은 왜 탄생하지 못할 뻔했을까?

솔직히 이 부분이 기술적인 내용보다 훨씬 더 흥미롭습니다. 세그윗은 출시되기 직전에 거의 좌초될 뻔했습니다.

표면적으로는 싸움이 간단해 보였습니다. 한쪽 진영, 즉 "빅 블로커"들은 블록 크기 제한을 1MB에서 8MB 이상으로 늘리기를 원했습니다. 더 많은 공간은 더 많은 거래를 가능하게 하므로 간단한 해결책처럼 보였습니다. 세계 최대 비트코인 채굴업체인 비트메인은 이 진영을 강력하게 지지했습니다. 일각에서는 비트메인이 자사 채굴 칩에 내장된 비밀 기술인 ASICBOOST를 무력화시키기 위해 SegWit에 반대했다고 비난했습니다. ASICBOOST는 경쟁사보다 빠른 속도를 제공하는 기술이었습니다. 비트메인은 이를 부인했지만, 암호화폐 업계는 그들의 말을 믿지 않았습니다.

반대 진영은 주로 비트코인 코어 개발자와 개인 노드를 운영하는 사람들이었습니다. 그들의 주장은 다음과 같았습니다. 블록 크기를 8배로 늘리면 노드를 운영하는 데 필요한 대역폭, 저장 공간, 처리 능력이 8배로 증가한다는 것입니다. 몇 년 후에는 데이터 센터와 채굴장만이 비트코인 블록체인을 검증할 여력이 생길 것이고, 탈중앙화는 조용히 사라질 것이라는 겁니다.

저는 이 상황을 실시간으로 지켜보고 있었는데, 비트코인이 이번 논쟁에서 살아남지 못할 수도 있다는 생각이 진심으로 들었습니다. 트위터, 레딧, 그리고 각종 컨퍼런스에서 사람들이 서로에게 맹렬하게 비난을 퍼부었습니다. 심지어 뉴욕에서는 여러 회사가 SegWit과 추후 블록 크기 증가를 결합하는 방안을 논의하기 위해 비공개 회의(일명 "뉴욕 합의")까지 열렸습니다. 하지만 그 합의 역시 무산되었습니다.

실제 발생한 일: 세그윗(SegWit)은 2017년 8월 1일 사용자 활성화 소프트 포크로 도입되었습니다. 이에 반대한 비트코인 채굴자들은 같은 날 별도의 포크를 통해 비트코인 캐시(BCH)를 만들었습니다. BCH는 8MB 블록(현재는 32MB)을 사용하며 세그윗을 적용하지 않았습니다. BCH는 현재까지 존재하며 비트코인 가격의 극히 일부에 불과한 가격으로 거래되고 있습니다.

일부에서는 8월 1일을 "비트코인 독립 기념일"이라고 부릅니다. 핵심은 채굴 회사가 아닌 노드 운영자가 비트코인 규칙에 대한 최종 결정권을 갖게 되었다는 점입니다. 이러한 선례는 세그윗 업그레이드 코드 자체의 어떤 한 줄보다도 더 중요합니다.

오늘날의 SegWit 도입

논쟁은 끝났습니다. 2025년까지 비트코인 거래의 96%가 SegWit을 사용할 것입니다. 모든 주요 지갑과 거래소가 SegWit을 지원합니다. 만약 아직도 기존 주소를 사용하고 있다면, 그 이유는 소프트웨어를 수년 동안 업데이트하지 않았기 때문일 것입니다.

SegWit 업그레이드는 이후 모든 기술의 발전을 위한 발판을 마련했습니다. Taproot는 2021년 11월에 출시되어 SegWit 구조 위에 Schnorr 서명을 추가했습니다. Ordinal은 2023년에 등장하여 SegWit이 만든 증인 데이터 공간에 JPEG 이미지를 채워 넣기 시작했습니다. 마지막 기술에 대해서는 의견이 분분하지만, 중요한 점은 SegWit이 증인 데이터 공간을 만들었고 개발자들이 그 공간을 채웠다는 것입니다.

그렇다면 SegWit은 개인적으로 당신에게 중요한가요? 비트코인을 사용한다면 당연히 중요합니다. 지갑 설정에서 주소 형식을 확인해 보세요. 주소가 "bc1q"로 시작하면 괜찮습니다. 하지만 "1"로 시작한다면 지금 바로 SegWit으로 전환하는 것이 좋습니다. 수수료가 낮아지고, 거래소 혼잡 시에도 거래 확인 속도가 빨라지며, 라이트닝 결제를 완벽하게 이용할 수 있습니다.

일상생활에서 세그윗에 대해 생각할 일은 없을 겁니다. 마치 바닥 아래 배관처럼 자연스럽게 녹아들어 있죠. 하지만 만약 누군가 2017년에 세그윗을 설치하지 않았더라면, 지금쯤 집 전체가 물에 잠겼을 겁니다.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.