SegWit과 Hard/Soft Fork

in #segwit6 years ago

 

SegWit :: Segregated Witness (격리된 목격자)

 비트코인의 거래 데이터와 전자서명 데이터를 분리시키고 

  전자서명 데이터를 witness라는 새로운 데이터 필드를 블록에 추가..

 

 SegWit이 해결하려는 문제:: 거래가변성, 확장성

    거래가변성

확장성을 해결하려고 함..

  

  

Transaction Malleability (거래 가변성???)

 거래 ID (TXID) 가 있는데, 거래 내용의 변화는 없지만 거래ID만 변경하여 새로운 거래를 만들어 낼 수 있는 버그...

 비트코인 버그...

 똑같은 거래인데도 여러 거래ID를 가질 수 있는 상황..

 전달자와 송금자 정보가 같은데도 거래ID가 달라지는..

 현재 비트코인 네트워크에서도 가능한 상황..

 

 2014년 마운트 곡스의 파산 원인이 되기도 함

  

  

확장성 


비트코인은 초당 3.3개 정도. VISA는 최대 5.6만개까지..

비트코인의 블록체인은 1M로 제한되어 있고, 평균 약 10분마다 한개 블록 생성...

 처음에는 1M 이상이었는데,, DDoS 공격도 해보고, 51%공격도 해보고... DDoS 공격을 막고 다음 DDoS공격을 막을 수 있는 정도의 크기..

 블록의 크기가 2배가 되면 거래 검증은 2^2배로 증가할 것 같음.

 

거래처리용량을 증가시키는 방법은 2가지 방법이 있음

  On-chain Scaling / Off-chain scaling..


 on-chain scaling은 당연히... 블록의 크기를 1M --> 더 크게 증가시키는 방법.. 기술적인 고려 사항이 많이 있음...

                           또는 블록를 조금 더 컴팩트하게 해서..

 off-chain scaling.. : side chain이 대표적인 기법..

   신규 data layer를 깔아서 지속적으로 블록 체인과 정보를 주고 받으면 거래 내용을 동기화함...

   체인은 그대로..

   

   

Segregated Witness ..

 

블록에는 블록정보+ 거래리스트...

 이중 전자 서명이 전체 거래의 60~75%를 차지...

 locktime은 특정 시간 이후에 거래가 시작되도록 설정할 수 있음.

 seg wit은 거래내에서 input 전자서명을 거래에서 분리하는 것..


 

UTXO::: 사용하지 않은 거래 (unspent transaction output)

 다른사람이 (내게) 보낸 비트코인 거래 중에 아직 사용하지 않은 거래... 총 BTC가 아니라 거래의 수..


 

전세계 비트코인 네트워크의 UTXO의 총량은?? 현재까지 채굴된 비트코인 총량..


거래의 내용 중에서

전자서명만 malleability가 생길 가능성이 있어서..

  격리(segregated)하여 witness라는 별도의데이터 구조로..

  full node(검증하는 노드)들은 witness까지 검증이 필요하나 일반노드는 witness까지는 확인할 필요는 없음


SegWit을 하게 될 경우,

 개별 블록의 더 많은 내용을 담을 수 있음.

 기존과 호환성이 깨지는 것이므로 변경 합의가 필요..

 

SegWit은 soft fork / hard fork 둘다 가능한데, 

 SegWit의 대부분의 지지자들은 soft port를 지지하고 있음.

 

 Q) segwit은 hard fork로만 가능하지 않을까요?

  soft fork로 가능하게 하려면,, OP code 수정 등 script형태로 처리해야 하는 건가요?

 Q)

 그럼 on chain scaling / off-chain scaling은 모두 soft/hard fork가 가능한건가요???

  얼핏 보기에 on-chain scaling은 hard fork만 가능하고 soft fork는 불가능.

  off-chain scaling은 .. 모르겠네요..이것도 hard fork만 가능해 보이는데..

 

  

 SegWit을 하게 되면 프로그램 적인 실수 등으로 보안 이슈가 생길 가능성이 높아짐.

  

 

 hard fork는 chain tree가 2개.

 soft fork는 chain tree가 1개.

 

 하지만 실제로는 hard fork는 시스템 업그레이드 수준이고, soft fork는 마이너 패치라고 이해하면 됨


Segregated witness 장단점..

 장점 

 - SegWit의 장점은 더많은 거래 처리 가능. 현재에 비해서 약 1.6배.

 - 거래 가변성 해결.. off chain scaling solution 구현 용이.

 - bitcoin에서 Script 언어 업그레이드가 용이, bitcoin으로 side chain 등,, smart contract등 구현이 용이.

 

 단점

 - 장기적인 확장성 증대 솔루션이 아님. (단기 처방, 임시 방편)

 - 코드 복잡성 증가. :: 차후 문제가 더 생길 수 있음.. technical debt....

 - 검증에 추가 시간이 필요하여 full node 들이 더 많이 해야함...

 - soft pork를 사용할 경우, fungibility (같은 100원이라도 A가 가진 100원과 B가 가진 100원의 가치가 다름..)에 문제가 생길 수 있음. 

 


 BTC/BTU (bitcoin unlimited)

 

 - bitcoin core : 1MB의 블록크기는 유지하고 segwit지지하고,lightening network를 중심으로..

 - bitcoin unlimited : 채굴자들이 지지.. 블록크기 제한을 두지 않음... 사용자가 제한을 두는 건데,, 초기에는 블록크기를 2MB로 증가...

 

Bitcoin Roudtable (2016/02): hard pork를 하고 2MB로 하고 segwi하고.. 근데 잘 안되었음..

Coin Marketplace

STEEM 0.29
TRX 0.11
JST 0.033
BTC 63945.57
ETH 3135.76
USDT 1.00
SBD 4.00