검수요청.png검수요청.png

세그윗

위키원
yueun970422 (토론 | 기여)님의 2019년 7월 16일 (화) 10:00 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

세그윗(SegWit)이란 Segregated Witness의 약자로서, 비트코인블록에서 디지털 서명 부분을 분리함으로써 블록당 저장 용량을 늘리는 소프트웨어 업그레이드를 말한다.

기존의 비트코인에서 서명 부분을 분리한 세그윗(Segwit)을 처음으로 활성화한 암호화폐는 그로스톨코인(Groestlcoin)이다.

2017년 8월 1일을 기준으로 전 세계 비트코인은 세그윗(SegWit)이라는 소프트포크(soft fork)를 진행하였다. 기존의 비트코인은 거래내역을 기록하는 블록 크기가 1MB에 불과하여 초당 7건, 하루 최대 60만건의 거래내역밖에 처리하지 못하는 한계가 있었다. 이 문제를 해결하기 위해 비트코인 블록에서 디지털 서명 부분을 분리하여 별도로 저장함으로써, 블록당 저장 용량을 늘릴 수 있게 되었다.

한편 세그윗을 진행할 경우 중국의 채굴업자들이 사용하던 에이식부스트(AsicBoost) 방식의 비트코인 채굴이 불가능해지게 된다. 이에 앤트풀(Antpool), 비아비티씨(viaBTC) 등 중국의 채굴업체들을 중심으로 기존 에이식(ASIC) 채굴기를 사용한 비트코인 채굴을 지속하기 위해 기존 비트코인 블록에서 분리된 비트코인캐시(BCH, Bitcoin Cash)라는 이름의 새로운 암호화폐를 생성했다.

중국의 오케이코인(OKCoin), 한국의 빗썸 등 주요 암호화폐 거래소들은 하드포크를 통해 기존 비트코인(BTC) 소유자들에게 비트코인캐시(BCH)를 1:1 비율로 무상 지급하는 에어드랍(airdrop)을 진행하였다.

배경

비트코인은 2008년 처음 사토시 나카모토의 "peer to peer electronic cash system"에서 등장했고, 사토시는 블록의 크기를 제한했던 적은 없었다. 비트코인 개발에 큰 공헌을 한 할 피니(Hal Finney)는 사토시에게 블록의 크기를 제한하지 않으면, DDoS 같은 공격에 취약하다고 말하며 그에게 1MB의 블록 크기를 제안한다. 사토시는 이를 받아들여서 현재의 비트코인 블록 크기가 되었다. 비트코인의 관심이 없던 때에는 큰 문제가 발생하지 않았으나, 시간이 점차 흐르면서 사람들은 비트코인에 관해서 관심을 가지고 어느샌가 비트코인의 가격이 생각지도 못하게 큰 폭으로 오르게 된다. 2013년에는 비트코인의 거래량이 한 블록에 담지 못할 정도로 많아지게 되었고, 비트코인은 10분당 하나의 블록을 생성하며 하나의 블록에는 약 2,100개의 거래만 입력할 수 있게 되었기 때문에 거래가 빠르게 진행이 안 된다는 문제가 생기기 시작했다. 예를 들어, 10분 거래량이 1만 번 이상 생기게 되면, 최소 5번째 블록부터 확인을 받아서 거래를 처리하게 되고 1시간 이상을 기다려야 하는 문제가 생긴다. 시간이 흐르면서 이 부분에 대한 큰 개선이 없자 비트코인은 캐시 시스템 즉, 전자화폐의 개념보다는 가치를 저장하는 금(Gold)과 같은 모습으로 변질한다. [1]

특징

거래 속도의 확장성(scalability)

비트코인은 현재 기술력으로 1초에 7개의 거래를 성사시킨다. 이는 master card와 같은 금융기관이 1초에 수백만 건의 거래를 처리할 수 있는 것에 비해 현저히 속도가 떨어지는 것이다. 이를 거래 속도의 확장성 문제라고 하는데, 이이 확장성 문제를 해결하지 못해 초당 7개의 거래를 처리한다면 전 세계 사람들이 이용하는 경우 하나의 거래를 처리하는 데 몇 년이 걸릴 수 있기 때문에 이를 반드시 해결하지 않고선 비트코인의 대중화는 어렵다. 이 확장성 문제를 해결하기 위해 세그윗을 사용한다. 거래하기 위해서는 거래를 하는 당사자의 서명이 필요하다. 서명은 신원을 증명하는 것인데, 디지털 서명은 서명을 컴퓨터상에서 숫자 등으로 암호화하여 만드는 것이다. 디지털 서명이란 돈을 보내는 사람의 개인 키로 암호화한 메세지들 돈을 받는 사람이 돈을 보내는 사람의 공개키로 해석하여 돈을 보내는 사람이 맞는지 신원을 확인하고 증명하는 것이다. 블록의 구조를 보면 디지털 서명란과 거래 내역이 하나로 뭉쳐 있다. 서명란에 서명이 실제로 차지하는 크기는 크지 않지만, 서명란 자체가 차지하는 부피가 크다. 이런 문제를 확장성 문제라고 하고 블록의 크기를 1MB 내외로 유지하면서 거래를 처리할 수 있는 속도를 더 빨리할 수 있는 방법이 세그윗이다. 세그윗은 서명 부분을 따로 Witness라는 데이터 영역으로 분리해 더 많은 거래를 처리할 수 있도록 업데이트하는 것이다. 단순히 블록의 크기를 키우는 것도 방법이 될 수 있지만 그것을 감당할 수 있는 해시파워가 전 세계적으로 많지 않아 탈중앙화라는 블록체인의 특성에 맞지 않게 된다. 따라서 블록 크기를 유지하면서 블록 내부의 내용을 업데이트하는 것이다. [2]

거래 가변성(Transaction Malleability)

모든 비트코인 거래에는 해당 거래를 식별할 수 있는 거래의 ID(transaction ID : txid)를 포함한다. txid가 'ID'라면 txid를 따라다니는 전자서명은 '비밀번호'라고 할 수 있다. 거래 가변성은 실질적인 거래 내용에는 변화가 없지만, 거래 ID(txid)만 변경하여 새로운 거래를 만들어 낼 수 있는 일종의 버그를 말한다. 즉, 거래 ID는 한 사람에게 하나만 주어지는 것이 원칙이지만, 두 개 이상의 거래 ID로 서로 다른 거래처럼 보이지만 실제 거래 내역은 동일한 거래를 가질 수 있는 것이 가변성의 문제이다. 이런 거래 가변성 문제는 거래 내역을 검증하는 것이 노드들의 역할이어서 근본적 문제라고 할 수 없고, 신중하다면 일어나지 않는 문제이다. 하지만 발생했을 때 비트코인의 가치는 하락한다. 가변성의 문제를 세그윗이 이 txid를 따로 보관하고 관리함으로써 여러 개의 ID를 가지고 장난을 치거나 동일한 거래 내역 여러 개를 만드는 것을 막을 수 있다.[2]

버전 호환

세그윗은 하드 포크가 아닌 소프트포크이므로 비트코인 소프트웨어의 업그레이드를 하지 않아도 세그윗 이전과 세그윗 적용 버전을 모든 노드에서 사용할 수 있다. 세그윗 미적용 노드 비트코인 코어 기준 0.13.1 이전은 1MB 이상의 블록은 읽을 수 없다. 하지만 거래의 중요한 입출력 내용은 1MB 이내에 들어 있기 때문에 호환이 가능하다. 서명 부분이 빠져있기 때문에 구버전의 노드는 이를 검증하지 않고 그냥 받아들이지만, 세그윗이 가능한 버전의 노드들이 이를 증명해주기 때문에 문제가 되지 않는다.[3]

각주

  1. 스틸스타크, 〈블록체인 강의 - 세그윗(SEGWIT) 이란?〉, 《flatinum》, 2018-09-04
  2. 2.0 2.1 easyblockchain, 〈쉽게 설명하는 블록체인:세그윗이란?〉, 《bank salad》, 2018-06-01
  3. misskiwi, 〈세그윗(Segwit)이란 무엇인가?〉, 《CRYPTOHIWI》, 2018-07

참고자료

같이 보기


  검수요청.png검수요청.png 이 세그윗 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.