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

사용자 활성화 소프트포크

위키원
chlheewoo (토론 | 기여)님의 2019년 9월 16일 (월) 09:49 판 (개요)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
이동: 둘러보기, 검색

사용자 활성화 소프트포크 또는 UASF(User Activated Soft Fork)는 소프트포크의 활성화 시간이 사용자들이 참여하는 전체 노드에 의해 시행되는 특정 날짜(예: 2017년 8월 1일)에 발생하는 포크 메커니즘이다. 비트코인 네트워크에 연결된 모든 컴퓨터를 노드라고 하고, 모든 규칙을 완전히 적용하는 노드 비트코인은 전체 노드라고 부른다. 경제 대다수라고도 하는 개념이다. UASF는 공동체 전체로부터 많은 양의 협력을 해야 하며, 필요한 경우 하드포크(hard fork)에 대한 우수 사례로 간주하며, 지역 사회로부터 더 많은 협력과 노력이 필요하다. 과거에는 P2SH 소프트포크(BIP16)를 활성화하기 위해 UASF가 성공적으로 수행되었다. UASF 개념은 BIP148 제안에서 세그윗(SegWit) 활성화와 결합하였다.[1]

개요

사용자 활성화 소프트포크(UASF; User Activated Soft Fork)는 블록체인네트워크해시력을 제공하는 사람들이 직접 지원하지 않는 업그레이드를 추가하는 방법을 탐색하는 논란의 여지가 있는 아이디어이다. 사용자 활성화 소프트포크의 아이디어는 마이닝 풀의 지원 임계값을 기다리는 대신 소프트포크를 활성화하는 기능이 전체 노드를 실행하는 교환기, 지갑 및 비즈니스로 이동한다는 것이다.[2] UASF는 소프트포크를 활성화하기 위한 메커니즘으로 활성화 시간은 미리 지정되어 있으며 각 참가자는 결과 및 소프트웨어 업그레이드 준비를 할 수 있다. 그런데도 불구하고 UASF는 대다수의 사용자와 조직이 지원해야 한다. 이 개념은 세그윗을 구현하기 위해 BIP148 제안 활성화를 시작하려고 적용됐다.[3]

제안 배경

BIP148 : 사용자 활성화 소프트포크(UASF)는 2017년 3월, 세그윗을 탐탁지 않게 생각하는 채굴자들이 있는 상황에서 세그윗 강제 활성화를 위해 발표되었다. BIP148은 8월 1일부로 bit 1을 전송하지 않는 채굴자들의 블록을 거부한다. 이는 UASF 노드들이 bit 1을 전송하지 않는 채굴자의 블록을 받아들이지 않도록 만듦으로써 비트코인 체인을 분리할 가능성이 있다. 만약 체인 분리가 일어난다면, 그리고 세그윗 반대파의 체인이 더 길다면, 블록체인 개편은 실패로 돌아간다. 블록체인 개편은 클라이언트들이 실제로 더 긴 블록체인을 발견하고 더 짧은 기존의 블록체인을 버리게 만듦으로써 일어난다. 따라서 세그윗 체인이 세그윗 반대파의 체인보다 길어진다면, 블록체인 개편이 일어나고 세그윗 반대파가 체인 분리 과정에서 채굴한 보상은 무효로 돌아간다. 만약 BIP141이나 BIP91이 발동된다면, 세그윗은 BIP91이나 BIP141을 통해 일어나며 누군가가 하드포크를 계획하지 않는 한, 모든 체인은 세그윗 체인으로 바뀌며 체인 분리는 일어나지 않는다. 또한, UASF가 충분한 채굴 능력의 지지를 받지 못한다면, 높은 채굴능력을 가진 마이닝 풀의 리플레이 공격에 취약할 수 있다. 난이도 변경을 위해서는 최소한 15%의 채굴 능력이 UASF를 지지해야 한다.[4]

단점

UASF의 개념은 간단하지만, 그렇다고 해서 그것이 성공하기 쉽다는 것을 의미하는 것은 아니다. 해시파워가 활성화된 소프트포크에 비해 UASF는 두 가지 리스크를 증가시킨다. 그리고 하드포크처럼 일이 잘 안 풀리면 양립할 수 없는 두 개의 네트워크, 즉 블록체인통화로 분리될 수 있다.

  • 조정이 어려울 수 있다. 가장 중요한 것은 UASF가 경제에 의해 실제로 지원되고 시행될 것인지 확실히 알 수 없다는 것이다. 교환, 지갑 제공자, 결제 프로세서 등 중앙 집중식 서비스의 지원을 축적할 수 있지만, 개별 노드는 3배 이상 스푸핑 되어 있다. 그리고 경제의 소수만이 새로운 규칙을 시행하고 과반수가 원래의 규칙을 시행한다면 둘로 쪼개질 것이다.
  • 경제의 상당 부분이 소프트포크를 시행하더라도 결정된 대다수 채굴자는 여전히 업그레이드를 좌절시킬 수 있다. 만약 이 채굴자들이 오래된 체인을 채굴하는 에너지를 기꺼이 낭비할 수 있다면, 업그레이드되지 않은 어떤 사용자도 귀중한 경제 체인이 아니라 더 작은 체인을 따를 것이다. 이 사용자는 적어도 광부들이 자원 낭비를 할 용의가 있고 할 수 있는 한 이중 지불에 취약할 것이다.

세그윗

세그윗(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)을 진행하였다.

  • 세그윗의 장점
  1. 블록이 수행할 수 있는 작업 수를 증가시킨다.
  2. 거래 수수료를 줄인다.
  3. 각 프로세스의 크기를 줄인다.
  4. 대기 시간이 줄어들기 때문에 트랜잭션을 더욱 빠르게 확인할 수 있다.
  5. 비트코인의 확장성을 돕는다.
  6. 블록당 거래 수가 증가하므로 광부가 벌어들이는 총임금을 높일 수 있다.
  • 세그윗의 단점
  1. 광부는 이제 거래마다 더 낮은 거래 수수료를 받는다.
  2. 구현은 복잡하며 모든 지갑은 세그윗 자체를 구현해야 한다. 그들이 처음에 제대로 할 수 없을 가능성이 크다.
  3. 용량, 처리, 대역폭] 및 기타 모든 것이 증가함에 따라 리소스 사용률이 많이 증가한다.

실패 사례

  • UASF와 UAHF를 적용한 가장 비슷한 예로는 이더리움의 역사가 있다.[5] 2016년 6월에 이더리움 다오(DAO) 계약 플랫폼에 존재하는 취약점을 이용해 360만 개의 이더리움(ETH)이 해킹당하는 사고가 발생했다. 이 사건 때문에 이더리움의 가격은 폭락하였고, 궁극적으로 전체 이더리움의 10%에 달하는 이더리움이 해킹당하는 결과를 보였다. 이더리움 다오 플랫폼은 당연히 코드를 기반으로 작동하며 내부적으로 나누기(Split) 기능이 사용된다. splitDAO() 함수는 특정 계정의 잔액과 합계 금액을 갱신하는 함수이다. 따라서 splitDAO가 다시 호출되기 이전에 어떠한 함수의 호출이라도 발생시킬 수 있다면 무한 재귀호출(Infinite Recursion)을 발생 시켜 원하는 만큼 자금을 이동시킬 수 있다. 실제 공격자의 지갑을 살펴보면 2016년 6월에 무려 360만 개의 이더리움을 소유한 것을 알 수 있다. 그래서 다오 프로젝트의 책임 개발자는 소프트포크하드포크로 크게 두 가지 해결책을 제시했다. 소프트포크를 이용한 방법은 다오와 해당 공격자의 자식 다오 지갑의 사용을 정지하는 형태의 소프트포크이며, 하드포크는 다오 토큰 보유자들이 이더리움을 돌려받도록 하는 형태의 하드포크이다. 결과적으로 이더리움 재단이 다양한 관계자들과 협의하여 소프트 포크 기술을 적용하도록 의사결정이 이루어졌다. 하지만 네트워크 불안정 문제가 발생하여 하드포크를 수행하는 방향으로 다시 의사결정이 이루어졌다. 따라서 1,920,000번째 블록을 기준으로 하드포크가 성공적으로 진행되었다. 다만 하드포크가 진행되게 되어 기존의 기술을 따르는 [[이더리움 클래식과 새롭게 탄생한 이더리움으로 이더리움 블록체인 플랫폼이 나뉘게 되었다.[6]
  • 비트코인 시세가 확 떨어졌다. 비트코인의 경우 8월 1일에 있을 소프트포크(UASF, BIP148)와 그와 반대로 비트메인(bitmain)에서는 하드포크(UAHF)를 강행하겠다고 나서 사용자들 입장에서는 비트코인이 Core, UASF, UAHF 세 가지 버전으로 쪼개 지는 건 아닌지 불안 심리가 커졌기 때문이다. 비트코인의 가장 큰 해시파워를 가지고 있는 비트메인을 주축으로 사용자 활성화 소프트포크를 무력화 시키기 위해 자신들이 지지하는 세그윗2x(Segwit2x) 방식을 적용한 채굴 프로그램 클라이언트 소프트웨어(client software)를 전날부터 돌리기 시작했고 하루 144 블록 동안 80%가 넘는 해시파워로 인해 비트코인은 앞으로 세그윗2x로 진행하게 돼버렸다. 결국 8월1 일 있을 사용자 활성화 소프트포크는 의미가 없어졌다.[7] 2017년 8월 1일 10시 16분에 생성된 478558 블록을 기점으로 UAHF가 활성화되어 비트코인(BTC)와 비트코인 캐시(BCC, BCH) 둘로 쪼개지게 되었다. 비트코인을 가지고 있떤 이용자는 1:1 비율로 비트코인 캐시를 지급받았다.[8]

각주

  1. susueng, 〈BIP148은 무엇입니까?〉, 《네이버 블로그》, 2017-06-04
  2. 레드곰, 〈Bitcoin 포크에 대한 짧은 안내서〉, 《티스토리》, 2017-03-27
  3. User-Activated Soft And Hard Forks〉, 《Blockspoint》, 2018-02-02
  4. veritaholic, 〈비트코인 분리 사태: 숨은 의도는?(1/2)〉, 《뉴스페퍼민트》, 2017-07-26
  5. 시온성주 시온의달빛, 〈UASF VS UAHF 정의〉, 《티스토리》, 2017-07-20
  6. 안경잡이개발자, 〈이더리움(Ethereum) DAO 재귀 함수 해킹 사례〉, 《티스토리》, 2017-04-09
  7. 폐인, 〈비트코인 소프트 포크, 하드포크 관련 참고〉, 《코인톡》, 2017-06-21
  8. 흰곰s, 〈비트코인 캐시- 중국이 꽉잡고있는 코인〉, 《티스토리》, 2017-10-28

참고자료

같이 보기


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