초보자를 위한 세그윗(SegWit) 설명

공유
Copied to clipboard!
초보자를 위한 세그윗(SegWit) 설명
아티클 듣기
00:00 / 00:00

목차


세그윗이란 무엇인가요?

세그윗(Segregated Witness, SegWit)은 2015년에 개발된 프로토콜 업그레이드입니다. 해당 개념은 블록체인 네트워크가 여전히 직면하고 있는 확장성 문제를 해결하기 위해 도입되었습니다.

평균적으로 비트코인 네트워크는 10분마다 새로운 블록을 검증하는데, 각 블록은 다수의 트랜잭션을 포함하고 있습니다. 이때, 블록의 크기는 한 블록에서 승인될 수 있는 트랜잭션 수에 영향을 미칩니다. 현재 비트코인 블록체인은 초당 약 7개의 트랜잭션을 처리할 수 있습니다.

세그윗의 주된 아이디어는 트랜잭션 데이터와 함께 더 이상 서명이 배치되지 않게 블록 데이터를 재구성하는 것입니다. 즉, 세그윗 업그레이드는 트랜잭션 데이터에서 서명을 분리하는 것입니다. 이는 한 블록에 더 많은 트랜잭션이 저장될 수 있게 하며, 이를 통해 네트워크 트랜잭션 처리량이 늘어나게 됩니다.

초당 7개의 트랜잭션을 처리할 수 있기 때문에, 때로 비트코인 트랜잭션에는 오랜 시간이 걸리기도 합니다. 이는 전통적인 지불 솔루션과 금융 네트워크가 초당 수천 개의 트랜잭션을 처리할 수 있는 것과 비교할 때 상당히 느린 수준입니다.

세그윗은 2015년 비트코인 개발자 Pieter Wuille와 다른 비트코인 코어 기여자들이 함께 개발했습니다. 2017년 8월, 소프트 포크를 통해 세그윗 업그레이드가 비트코인 네트워크에 구현되었습니다.

현재 비트코인과 라이트코인을 포함해 세그윗을 사용하는 여러 암호화폐 프로젝트가 있습니다. 프로토콜 업그레이드를 통해 트랜잭션 속도가 향상되고, 블록 용량이 증가하는 등 많은 이점이 생겼습니다. 또한, 세그윗은 트랜잭션 가변성 버그라 하는 문제(아래에서 설명)도 해결했습니다.


세그윗의 주된 장점은 무엇인가요?

용량 증가

세그윗의 가장 큰 장점 중 하나는 블록 용량 증가입니다. 트랜잭션 입력값에서 서명 데이터를 제거함으로써, 더 많은 트랜잭션이 단일 블록에 저장될 수 있게 되었습니다.

트랜잭션은 입력값과 출력값이라는 두 가지 주요 요소로 구성됩니다. 기본적으로, 입력값에는 전송자의 공개 주소가 포함되는 반면, 출력값에는 수신자의 공개 주소가 포함됩니다. 그러나 전송자는 반드시 전송하려는 자금이 있다는 것을 디지털 서명을 통해 증명해야 합니다.

세그윗이 없다면 서명 데이터가 단일 블록의 65%까지 차지할 수 있습니다. 세그윗을 사용하면 트랜잭션 입력값으로부터 서명 데이터가 분리됩니다. 이로 인해 실질 블록 크기는 1MB에서 4MB까지 증가합니다.

주목할 것은 세그윗을 통해 실제 블록 크기가 증가하는 것은 아니라는 것입니다. 세그윗은 블록 크기 제한(하드 포크가 필요함)을 늘리지 않고, 실질 블록 크기를 늘리는 기술적 해결책입니다. 보다 명확하게 말하자면, 실제 블록 크기는 여전히 1MB이지만, 유효한 블록 크기 제한은 4MB입니다.

세그윗은 또한 블록 무게라는 개념을 도입했습니다. 우리는 블록 무게를 블록 크기라는 개념을 대체하는 개념으로 간주할 수 있습니다. 기본적으로 블록 무게는 모든 블록 데이터를 포함한 것으로, 트랜잭션 데이터(1MB)와 더는 입력 영역의 일부가 아닌 서명 데이터(최대 3MB)가 포함합니다.


트랜잭션 속도 증가

더 많은 트랜잭션을 저장할 수 있는 블록을 통해 세그윗은 트랜잭션 속도를 증가시킵니다. 더 많은 트랜잭션이 블록체인에서 진행될 수 있기 때문입니다. 하나의 블록을 마이닝 하는 데는 동일한 시간이 소요될 수 있지만, 하나의 블록 안에서 더 많은 트랜잭션이 처리될 수 있으며, 따라서 TPS가 증가합니다.

트랜잭션 속도가 증가하면 비트코인 네트워크 트랜잭션 수수료 절감에도 도움이 됩니다. 세그윗 전에는 하나의 트랜잭션에 30달러 이상을 지출하곤 했습니다. 그러나 세그윗은 트랜잭션당 수수료를 1달러 미만으로 대폭 절감시켰습니다.


트랜잭션 가변성 해결

비트코인의 주된 문제는 잠재적으로 트랜잭션 서명을 조작할 수 있다는 것이었습니다. 서명이 변경되면 두 당사자 간의 트랜잭션에 오류가 생길 수 있습니다. 블록체인에 저장된 데이터는 사실상 불변하는 것이기 때문에, 유효하지 않은 트랜잭션이 블록체인에 영구적으로 저장될 수 있었습니다.

세그윗을 사용하면 서명이 더 이상 트랜잭션 데이터의 일부가 아니기 때문에 해당 데이터를 변경할 수 없습니다. 이러한 해결책은 블록체인 커뮤니티 내에서 세컨드 레이어 프로토콜과 스마트 콘트랙트와 같은 추가적인 혁신이 이뤄질 수 있게 했습니다.


세그윗과 라이트닝 네트워크

세컨드 레이어 프로토콜은 트랜잭션 가변성 버그를 고침으로써 부분적으로 개발되었습니다. 간단히 말해, 세컨드 레이어 프로토콜은 비트코인과 같은 블록체인 위에 구축된 새로운 플랫폼 또는 제품입니다. 가장 잘 알려진 세컨드 레이어 프로토콜은 오프체인 소액 결제 네트워크인 라이트닝 네트워크입니다.

라이트닝 네트워크는 비트코인 네트워크 위에서 작동하는 세컨드 레이어 프로토콜입니다. 라이트닝 네트워크의 주된 목적은 트랜잭션에 걸리는 시간을 단축하여, 사용자들에게 더 빠른 트랜잭션 결과를 전달하는 것입니다. 트랜잭션은 최종 처리를 위해 오프체인에서 종합되며 비트코인 네트워크를 위해 효과적으로 버퍼링 됩니다.

라이트닝 네트워크는 본래 비트코인을 위해 개발된 것입니다. 그러나 몇몇 다른 암호화폐와 블록체인 프로젝트는 자신들의 네트워크에 해당 기술을 사용하고 있습니다. 이는 트랜잭션 시간을 단축시킬 뿐만 아니라, 확장성 문제에 대한 새로운 해결책 개발을 이끌어낼 것입니다.


세그윗 vs. 세그윗2x

세그윗은 소프트 포크 업그레이드이며, 이는 이전 버전과 호환이 가능함을 의미합니다. 즉, 세그윗을 포함하도록 업데이트 되지 않은 비트코인 노드도 여전히 트랜잭션을 처리할 수 있습니다. 그러나 하드포크가 필요한 세그윗2x(S2X)라는 또 다른 세그윗이 제안되었습니다.

세그윗과 세그윗2x의 주된 차이점은 세그윗2x는 단지 트랜잭션을 일괄 처리하는 방식을 변화시킬 뿐만 아니라, 블록 크기를 증가(1MB에서 2MB로)시킨다는 것입니다. 그러나 블록 크기가 커지면 더 많은 데이터를 처리해야 하기 때문에 노드 운영자와 마이너의 부담이 증가할 수 있습니다.

또 한 가지 주목할 만한 차이점은 세그윗 제안은 비트코인 커뮤니티의 지지를 얻고 시행되었다는 것입니다. 해당 에피소드는 UASF(user-activated soft fork)의 개념을 만들어 냈는데, 이는 사용자 활성 소프트 포크를 뜻합니다.

반면, 세그윗2x는 비트코인 거버넌스의 기본 규칙 중 하나에 실질적인 변화를 제안했습니다. 그러나 개발자들이 채택과 이행에 대한 합의를 달성하지 못했기 때문에, 세그윗2x 움직임은 결국 중단되었습니다.


마치며

비트코인에 세그윗을 구현한 것은 가장 큰 프로토콜 업그레이드였습니다. 흥미로운 점은 이것이 탈중앙화된 커뮤니티에 의해 지지를 받고, 시행되었다는 점입니다.

세그윗의 도입은 비트코인과 다른 블록체인 네트워크와 관련된 문제, 특별히 확장성과 관련된 문제들을 해결하는 데 중요한 역할을 했습니다. 세그윗과 세컨드 레이어 프로토콜을 조합하여, 블록체인 네트워크는 더 높은 효율성과 더 낮은 비용으로 더 많은 트랜잭션을 처리할 수 있습니다.

세그윗은 강력하고 혁신적인 해결책임에도 불구하고, 완전히 채택되지는 않았습니다. 현재 세그윗을 사용하는 비트코인 주소는 약 53% 정도입니다.

Loading