ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 비트코인의 segwit 업데이트와 히스토리
    블록체인/비트코인 2024. 3. 29. 17:03

    비트코인 탄생 후 두가지 논란에 직면했다. 

     

    1) 느리다.

    2) 할 수 있는게 별거 없다. 

     

     

    이번에는 1번 확장성 이슈를 살펴보자. 

     

     

    비트코인은 느리다. 

     

     

    비트코인 블록체인의 확장성(Scalability)이 떨어진다 즉, 속도가 느리다는 이슈가 계속해서 제기되고 있다. 확장성이란 거래를 검증하고 처리하는 속도를 말한다. 비트코인은 1초에 7건 거래 처리가 가능하다. (Visa 의 경우 24,000건 처리가 가능하다.) 

     

     

    가장 태초에는 디도스 공격을 막기 위해서 블록 크기를 제한했던 것이 시작이다. 사토시는 본래 블록 사이즈를 제한할 생각이 없었다. 하지만 할 핀니의 아이디어를 받아들여서 디도스 및 스팸 공격을 막기위해 블록체인에 기록되는 블록의 크기를 1MB로 제한하였다.  당시 1MB 는 통상적으로 2,100건 정도의 거래를 수용할 수 있는 크기였다. 

     

     

    (할 핀니는 사토시와 여러 가지 지적인 비트코인 프로토콜과 관련한 여러 가지 논의를 통해서 비트코인을 발전시켰던 사람이다.)

     

     

    문제는 2013년 부터이다. 이 때 부터 이용량이 급격히 늘어나기 시작하였다. 이 때부터 블록 사이즈를 늘려야 한다는 등의 주제로 커뮤니티 내부적으로는 많은 제안들이 있었다.

     

     

    (이러한 제안을 BIP, Bitcoin Improvement Proposal 이라 한다.)

     

     

    https://github.com/bitcoin/bips

     

     

     

    확장성 증가에 관련한 논의 방향은 크게 두 가지로 대립했었다.

     

    1) 블록의 용량을 1mb -> 8mb 로 늘려야 한다는 주장

    2) 블록의 크기를 증가시키는 것은 끝이 없다. 블록의 헤더와 바디를 분리하여 서로 포함되는 데이터들을 달리하여 데이터 정렬을 효율화하자는 주장 (이를 Segwit 방식이라 한다.)

     

    Segwit = Segregate + witness data (서명 데이터의 준말)

     

    Segwit 은 서명 데이터를 분리해서 헤더에 담고, 거래 부분은 바디에 기록하자는 주장이다. 

     

    결굴 2017년 5월에 중국 채굴자, 비트코인 스타트업 등의 네트워크들이 뉴욕에 모여 Segwit2x 라는 것을 합의했다. 채굴자들이 모인 이유는 풀노드 업데이트를 해야 하는 대상이 채굴자이고 데이터 권한이 모두 채굴자에게 있기 때문이다.

     

     

    Segwit2x 란, 블록의 헤더와 바디를 구분하는 효율화 작업 후 용량은 2배로 올리는 작업이다. 

     

     

    헤더와 바디를 구분하는 시스템이 17년 8월 1일로 정해졌으며 Segwit 이라는 블록 효율화가 진행되었다. 여기서 '뉴욕합의'에 동의하지 않은 채굴자들은 하드포크를 진행하게된다. 즉 비트코인 Segwit 을 하지 않는 집단들은 채굴풀을 독립적으로 형성하여 '비트코인 캐시' 라는 코인을 만들게 되었다. 

     

     

    2017년 11월에 예정되어 있던 용량을 2배로 늘리는 2x 작업도 결국 무산되었다. 

     

     

    이 때가 비트코인 역사상 처음으로 채굴 풀들이 분리되는 하나의 기점이었다. 다시 말해 2017년 08월 01일 10시 16분 478,558번째 블록을 기점으로 이 전까지는 동일하게 채굴을 하다가 이후부터 독립적으로 채굴 풀을 구성하게 되는 것이다. 그리고 블록체인은 segwit 을 진행한 반면 독립적으로 채굴 풀을 만든 채굴자들은 비트코인 캐시를 만들고 용량을 8MB로 만들게 되었다.

     

     

    비트코인과 비트코인 캐시는 478,558 번째 블록까지는 동일한 장부를 가지고 있고 478,559번째 부터 서로 다른 장부를 갖게 되는 것이다. 여기서 특이점은 478,558 번째 이전에 비트코인을 가지고 있던 사람들은 개수의 1:1 비율로 비트코인 캐시를 가지게 된다. 비트코인 캐시도 비트코인에서 똑같이 복사해서 나온 것이기 때문에 비밀키, 개인키, 지갑등 암호화 프로토콜이나 개인키 동작 방식이 모두 동일하다. 그렇기에 비트코인 캐시 블록체인 네트워크에 내 지갑 주소를 쳐보면 거기에 예전에 비트코인을 가지고 있었던 것과 동일한 비트코인 캐시가 들어 있다. (장부가 복사됨)

     

     

     

    포크(Fork)는 블록체인의 프로토콜을 수정(업데이트)하는 것을 말한다. (기술적인 업데이트) 포크는 크게 두가지로 나뉜다. 

     

     

    1) 소프트 포크

    - 업데이트를 하는데 있어서 채굴풀이 전부 합의하는 경우이다. 즉 기술적인 업데이트를 다 수용하고 받아들이기 때문에 채굴 장비에 업데이트된 내역들을 반영시키는 것을 의미한다.

    - 이 경우에는 모두가 계속 쓰는 장부에 붙여서 블록체인을 구성하기 때문에 한 채굴풀이 한 장부를 계속 공유하고 채굴을 이어나간다. 


    2) 하드 포크

    - 채굴풀들이 서로 대립하면서 일정 블록을 기점으로 나누어진다. 전 블록까지는 동일한 장부를 공유하다가 그 다음부터는 장부가 두 개로 나눠진다. 

     

     

     

     

    정리

     

    1) 비트코인 블록사이즈는 1mb 이다. 디도스, 스팸 공격을 막기 위해 사이즈를 제한했었다.

     

    2) 2013년 이후 이용량이 많아지며 확장성 문제가 거론되었다. 블록 사이즈에 대한 논의가 시작되었다. 

     

    3) 서명 데이터는 헤더에 담고, 거래 데이터는 바디에 담아 데이터 정렬을 효율화하는 segwit 업데이트와 블록 사이즈를 늘리는 업데이트 두 안건이 여러 차례 논의되었다.

     

    4) 결국 2017년, 헤더와 바디를 분리시키고, 블록 사이즈도 두배 올리는 'segwit2x' 업데이트로 채굴자들은 합의하였다.

     

    5) segwit 을 먼저 진행하였으나 일부 반대 세력은 하드포크를 진행하였고 그것이 비트코인 캐시다.

     

    6) 이후 2x 업데이트, 즉 블록 크기를 2배 올리는 업데이트는 진행되지 않았다.

     

    7) 소프트 포크란 기술적인 업데이트를 모두 수용하여 채굴 장비에 업데이트 내역을 모두 반영시키는 작업을 뜻한다. 

     

    8) 하드포크는 기술 업데이트 등에 동의하지 않는 세력이 생기면서 일정 블록을 기점으로 장부가 두 개로 나뉘는 것을 말한다.

     

     

     

     

     

    '블록체인 > 비트코인' 카테고리의 다른 글

    비트코인 인스크립션  (2) 2024.03.31
    비트코인 오디널즈  (1) 2024.03.31
    비트코인 네트워크 규칙  (0) 2024.03.28
    채굴 실습  (1) 2024.03.27
    비트코인 거래와 채굴  (0) 2024.03.26
Designed by Tistory.