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

"BIP141"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
잔글
 
(사용자 2명의 중간 판 25개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''BIP141'''(Bitcoin Improvement Proposal 141)에서 제한된 기존 트랜잭션의 포멧을 바꾸는 Soft Fork이다.은  SegWit을 활성화하기위한 원래 계획이며, 2016 년 11 월에 도입되었다.<ref> 에이미 캐스터, 〈[https://www.coindesk.com/coindesk-explainer-bitcoin-bip-91-implements-segwit-avoiding-split CoinDesk Explainer : Bitcoin 분할을 피하면서 BIP 91이 SegWit을 실행하는 방법]〉, 《coindesk》, 2017-07-18</ref> 분리 된 증인 (Consensus layer)라고 하며 찬성률이 95%일 때 Segwit이 자동 업데이트 된다. <ref> Eastinny, 〈[hhttps://www.clien.net/service/board/cm_vcoin/10984851]〉, 《clien》, 2017-07-18</ref>
+
'''BIP141'''(Bitcoin Improvement Proposal 141)에서 제한된 기존 트랜잭션의 포맷을 바꾸는 [[소프트포크]](soft fork)이다. BIP141은 [[세그윗]](SegWit)을 활성화하기 위한 원래 계획이며, 2016년 11월에 도입되었다.<ref>에이미 캐스터, 〈[https://www.coindesk.com/coindesk-explainer-bitcoin-bip-91-implements-segwit-avoiding-split CoinDesk Explainer : Bitcoin 분할을 피하면서 BIP 91이 SegWit을 실행하는 방법]〉, 《coindesk》, 2017-07-18</ref> 분리된 증인(Consensus layer)이라고 하며 찬성률이 95%일 때 세그윗(Segwit)이 자동 업데이트된다.<ref>Eastinny, 〈[hhttps://www.clien.net/service/board/cm_vcoin/10984851]〉, 《clien》, 2017-07-18</ref>
  
 
== 개요 ==
 
== 개요 ==
BIP141은 트랜잭션 병합 트리와 별도로 블록에 커밋되는 "감시(witness)"라는 새로운 구조를 정의한다. 이 구조에는 트랜잭션 유효성을 확인하는 데 필요한 데이터가 있지만 트랜잭션 영향을 결정하는 데 필요하지는 않다. 특히 스크립트와 서명이 새로운 구조로 옮겨진다. 목격자는이 SegWit을 Bitcoin의 소프트포크(soft-fork)를 호환 가능하게 만들기 위해 코인베이스 트랜잭션을 통해 블록의 기존 머클 루트(merkle root)에 중첩 된 트리에서 커밋된다. 선점 거래형태의 악성 문제를 해결하기 때문에 번개 네트워크의 전제조건이기도 하다. 미래의 하드 포크(hard fork)는 이 트리를 자체 분기에 배치 할 수 있다.<ref name = "깃허브">〈[https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki 깃허브]〉, 《깃허브》</ref>특히 BIP141은 다음과 같은 새로운 트랜잭션 유형을 정의합니다. P2WPKH , P2WPKH-in-P2SH , P2WSH , P2WSH-in-P2SH . 처음 두 가지 유형만 현재 Trezor 에서 지원한다.<ref>〈[https://wiki.trezor.io/Cryptocurrency_standards#BIP43_-_Purpose_field_for_deterministic_wallets Cryptocurrency 표준]〉, 《trezor wiki》</ref>
+
BIP141은 트랜잭션 병합 트리와 별도로 블록에 커밋되는 "감시(witness)"라는 새로운 구조를 정의한다. 이 구조에는 트랜잭션 유효성을 확인하는 데 필요한 데이터가 있지만 트랜잭션 영향을 결정하는 데 필요하지는 않다. 특히 스크립트와 서명이 새로운 구조로 옮겨진다. 목격자는 이 SegWit을 Bitcoin의 소프트포크(soft-fork)를 호환할 수 있게 만들기 위해 코인베이스 트랜잭션을 통해 블록의 기존 머클 루트(merkle root)에 중첩된 트리에서 커밋된다. 선점 거래 형태의 악성 문제를 해결하기 때문에 번개 네트워크의 전제조건이기도 하다. 미래의 하드 포크(hard fork)는 이 트리를 자체 분기에 배치 할 수 있다.<ref name = "깃허브">〈[https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki 깃허브]〉, 《깃허브》</ref>특히 BIP141은 다음과 같은 새로운 트랜잭션 유형을 정의한다. P2WPKH , P2WPKH-in-P2SH , P2WSH , P2WSH-in-P2SH. 처음 두 가지 유형만 현재 Trezor 에서 지원한다.<ref>〈[https://wiki.trezor.io/Cryptocurrency_standards#BIP43_-_Purpose_field_for_deterministic_wallets Cryptocurrency 표준]〉, 《trezor wiki》</ref>
  
 
== 트랜잭션 구조 ==
 
== 트랜잭션 구조 ==
BIP 141 (Bitcoin Improvement Proposal)에서 제한된 기존 트랜잭션의 포멧을 바꾸는 소프트 포크이다.
+
BIP141 (Bitcoin Improvement Proposal)에서 제한된 기존 트랜잭션의 포맷을 바꾸는 소프트 포크이다.
 
  기존 방법 : [nVersion][txins][txout][nLockTime]
 
  기존 방법 : [nVersion][txins][txout][nLockTime]
  시그윗 : [nVersion][marker][flag][txins][txout][witness][nLockTime]
+
  세그윗 : [nVersion][marker][flag][txins][txout][witness][nLockTime]
nVersion :  버전, txins : 입력, txouts : 출력, nLockTime : 잠금시간(블럭에 기록될 수 있는 시간)
+
nVersion :  버전, txins : 입력, txouts : 출력, nLockTime : 잠금시간(블럭에 기록될 수 있는 시간)<ref> loum, 〈[https://brunch.co.kr/@loum/7 암호화폐에서 세그윗(segwit)에 대한 설명]〉, 《beta brunch》, 2017-10-20</ref>
  
== SegWit(Segregated Witness) ==
+
== 세그윗 ==
'분리된 증인'의 줄임말인 세그윗은 거래 처리 용량이 늘어나는 일종의 기술적 업그레이드를 의미한다. 비트코인 커뮤니티가 확장되면서 처리 속도가 늦어지는 등의 문제가 발생하게 되는데, 기존 블록에 서명을 분리해 처리 용량을 늘리는 것을 세그윗이라 한다. 비트코인 블록체인의 블록을 두 칸으로 분류해 살펴보면 거래내용 부분은 내용이 빡빡하게 채워지지만, 서명은 공간만 클 뿐, 실제 서명의 크기는 작다. 하지만 서명 부분은 생각지도 못한 공간을 점령하고 있어서 이 부분은 분리하여 이 공간을 세그윗 업그레이드를 통해 확보해 처리 속도를 개선시키는 것이다.<ref> 명전선 기자, 〈[https://www.blockmedia.co.kr/archives/33180 비트코인 용어 세그윗]〉, 《block media》, 2018-02-21</ref>
+
'분리된 증인'의 줄임말인 [[세그윗]](SegWit; Segregated Witness)은 거래 처리 용량이 늘어나는 일종의 기술적 업그레이드를 의미한다. 비트코인 커뮤니티가 확장되면서 처리 속도가 늦어지는 등의 문제가 발생하게 되는데, 기존 블록에 서명을 분리해 처리 용량을 늘리는 것을 세그윗이라 한다. <ref> 명전선 기자, 〈[https://www.blockmedia.co.kr/archives/33180 비트코인 용어 세그윗]〉, 《block media》, 2018-02-21</ref>
  
== 관련 BIP ==
+
=== 특징 ===
* [[BIP32]] : [[HD 지갑]]의 일반적인 형식과 HD 지갑을 구축하는 방법을 설명한 문서
+
* 거래 속도의 확장성(scalability) : 블록의 크기를 1MB 내외로 유지하면서 거래를 처리할 수 있는 속도를 더 빨리할 수 있는 방법이 세그윗이다. 세그윗은 서명 부분을 따로 Witness라는 데이터 영역으로 분리해 더 많은 거래를 처리할 수 있도록 업데이트하는 것이다. 단순히 블록의 크기를 키우는 것도 방법이 될 수 있지만 그것을 감당할 수 있는 해시파워가 전 세계적으로 많지 않아 탈중앙화라는 블록체인의 특성에 맞지 않게 된다. 따라서 블록 크기를 유지하면서 블록 내부의 내용을 업데이트하는 것이다. <ref name = "easyblockchain"> easyblockchain, [https://banksalad.com/contents/%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%98%EB%8A%94-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%EC%84%B8%EA%B7%B8%EC%9C%97-Segwit-%EC%9D%B4%EB%9E%80-9gjVA 쉽게 설명하는 블록체인:세그윗이란?]〉, 《bank salad》, 2018-06-01</ref>
* [[BIP39]] : 결정성 열쇠를 파생하기 위한 니모닉 코드(복원 규칙)의 유형 및 BIP32 시드로 전환하는 프로세스
+
* 거래 가변성(Transaction Malleability) : 가변성의 문제를 세그윗이 이 txid를 따로 보관하고 관리함으로써 여러 개의 ID를 가지고 장난을 치거나 동일한 거래 내역 여러 개를 만드는 것을 막을 수 있다.<ref name = "easyblockchain"></ref>
* [[BIP43]] : 트리 구조의 목적을 나타내는 특별한 식별자로써 첫 강화된 자식 인텍스의 자용을 제안
+
* 버전 호환 : 세그윗은 하드 포크가 아닌 소프트포크이므로 비트코인 소프트웨어의 업그레이드를 하지 않아도 세그윗 이전과 세그윗 적용 버전을 모든 노드에서 사용할 수 있다.<ref> misskiwi, 〈[https://cryptokiwi.kr/currency?id=btc&category=2&content_id=217 세그윗(Segwit)이란 무엇인가?]〉, 《CRYPTOHIWI》, 2018-07</ref>
* [[BIP44]] : BIP32 지갑의 특정 형식, 목적을 44로 설정해서 나타나는 다중화폐 다계정 주고를 제안
 
* [[BIP47]] : 비트코인 개선 제안 및 결제 코드 작성 방법
 
* [[BIP49]] : P2WPKH가 중첩 된 P2SH 기반 계정의 유도 스키마
 
* [[BIP63]] : 스텔스 주소
 
* [[BIP70]] : SSL/TLS 통신을 이용하여 비트코인의 결제를 안전하게 함(지불 요청 프로토콜)
 
* [[BIP84]] : P2WPKH 기반 계정의 유도 스키마
 
* [[BIP141]] : 분리된 증인(Consensus layer)
 
  
 
{{각주}}
 
{{각주}}
30번째 줄: 23번째 줄:
 
* 〈[https://wiki.trezor.io/Cryptocurrency_standards#BIP43_-_Purpose_field_for_deterministic_wallets Cryptocurrency 표준]〉, 《trezor wiki》
 
* 〈[https://wiki.trezor.io/Cryptocurrency_standards#BIP43_-_Purpose_field_for_deterministic_wallets Cryptocurrency 표준]〉, 《trezor wiki》
 
* 〈[https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki 깃허브]〉, 《깃허브》
 
* 〈[https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki 깃허브]〉, 《깃허브》
 +
* Eastinny, 〈[hhttps://www.clien.net/service/board/cm_vcoin/10984851]〉, 《clien》, 2017-07-18
 +
* loum, 〈[https://brunch.co.kr/@loum/7 암호화폐에서 세그윗(segwit)에 대한 설명]〉, 《beta brunch》, 2017-10-20
 +
* 명전선 기자, 〈[https://www.blockmedia.co.kr/archives/33180 비트코인 용어 세그윗]〉, 《block media》, 2018-02-21
 +
* easyblockchain, 〈[https://banksalad.com/contents/%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85%ED%95%98%EB%8A%94-%EB%B8%94%EB%A1%9D%EC%B2%B4%EC%9D%B8-%EC%84%B8%EA%B7%B8%EC%9C%97-Segwit-%EC%9D%B4%EB%9E%80-9gjVA 쉽게 설명하는 블록체인:세그윗이란?]〉, 《bank salad》, 2018-06-01
 +
* misskiwi, 〈[https://cryptokiwi.kr/currency?id=btc&category=2&content_id=217 세그윗(Segwit)이란 무엇인가?]〉, 《CRYPTOHIWI》, 2018-07
 +
 +
== 같이 보기 ==
 +
* [[세그윗]]
 +
* [[BIP]]
  
 
{{블록체인 기술|검토 필요}}
 
{{블록체인 기술|검토 필요}}

2019년 7월 28일 (일) 21:56 기준 최신판

BIP141(Bitcoin Improvement Proposal 141)에서 제한된 기존 트랜잭션의 포맷을 바꾸는 소프트포크(soft fork)이다. BIP141은 세그윗(SegWit)을 활성화하기 위한 원래 계획이며, 2016년 11월에 도입되었다.[1] 분리된 증인(Consensus layer)이라고 하며 찬성률이 95%일 때 세그윗(Segwit)이 자동 업데이트된다.[2]

개요[편집]

BIP141은 트랜잭션 병합 트리와 별도로 블록에 커밋되는 "감시(witness)"라는 새로운 구조를 정의한다. 이 구조에는 트랜잭션 유효성을 확인하는 데 필요한 데이터가 있지만 트랜잭션 영향을 결정하는 데 필요하지는 않다. 특히 스크립트와 서명이 새로운 구조로 옮겨진다. 목격자는 이 SegWit을 Bitcoin의 소프트포크(soft-fork)를 호환할 수 있게 만들기 위해 코인베이스 트랜잭션을 통해 블록의 기존 머클 루트(merkle root)에 중첩된 트리에서 커밋된다. 선점 거래 형태의 악성 문제를 해결하기 때문에 번개 네트워크의 전제조건이기도 하다. 미래의 하드 포크(hard fork)는 이 트리를 자체 분기에 배치 할 수 있다.[3]특히 BIP141은 다음과 같은 새로운 트랜잭션 유형을 정의한다. P2WPKH , P2WPKH-in-P2SH , P2WSH , P2WSH-in-P2SH. 처음 두 가지 유형만 현재 Trezor 에서 지원한다.[4]

트랜잭션 구조[편집]

BIP141 (Bitcoin Improvement Proposal)에서 제한된 기존 트랜잭션의 포맷을 바꾸는 소프트 포크이다.

기존 방법 : [nVersion][txins][txout][nLockTime]
세그윗 : [nVersion][marker][flag][txins][txout][witness][nLockTime]

nVersion : 버전, txins : 입력, txouts : 출력, nLockTime : 잠금시간(블럭에 기록될 수 있는 시간)[5]

세그윗[편집]

'분리된 증인'의 줄임말인 세그윗(SegWit; Segregated Witness)은 거래 처리 용량이 늘어나는 일종의 기술적 업그레이드를 의미한다. 비트코인 커뮤니티가 확장되면서 처리 속도가 늦어지는 등의 문제가 발생하게 되는데, 기존 블록에 서명을 분리해 처리 용량을 늘리는 것을 세그윗이라 한다. [6]

특징[편집]

  • 거래 속도의 확장성(scalability) : 블록의 크기를 1MB 내외로 유지하면서 거래를 처리할 수 있는 속도를 더 빨리할 수 있는 방법이 세그윗이다. 세그윗은 서명 부분을 따로 Witness라는 데이터 영역으로 분리해 더 많은 거래를 처리할 수 있도록 업데이트하는 것이다. 단순히 블록의 크기를 키우는 것도 방법이 될 수 있지만 그것을 감당할 수 있는 해시파워가 전 세계적으로 많지 않아 탈중앙화라는 블록체인의 특성에 맞지 않게 된다. 따라서 블록 크기를 유지하면서 블록 내부의 내용을 업데이트하는 것이다. [7]
  • 거래 가변성(Transaction Malleability) : 가변성의 문제를 세그윗이 이 txid를 따로 보관하고 관리함으로써 여러 개의 ID를 가지고 장난을 치거나 동일한 거래 내역 여러 개를 만드는 것을 막을 수 있다.[7]
  • 버전 호환 : 세그윗은 하드 포크가 아닌 소프트포크이므로 비트코인 소프트웨어의 업그레이드를 하지 않아도 세그윗 이전과 세그윗 적용 버전을 모든 노드에서 사용할 수 있다.[8]

각주[편집]

  1. 에이미 캐스터, 〈CoinDesk Explainer : Bitcoin 분할을 피하면서 BIP 91이 SegWit을 실행하는 방법〉, 《coindesk》, 2017-07-18
  2. Eastinny, 〈[hhttps://www.clien.net/service/board/cm_vcoin/10984851]〉, 《clien》, 2017-07-18
  3. 깃허브〉, 《깃허브》
  4. Cryptocurrency 표준〉, 《trezor wiki》
  5. loum, 〈암호화폐에서 세그윗(segwit)에 대한 설명〉, 《beta brunch》, 2017-10-20
  6. 명전선 기자, 〈비트코인 용어 세그윗〉, 《block media》, 2018-02-21
  7. 7.0 7.1 easyblockchain, 〈쉽게 설명하는 블록체인:세그윗이란?〉, 《bank salad》, 2018-06-01
  8. misskiwi, 〈세그윗(Segwit)이란 무엇인가?〉, 《CRYPTOHIWI》, 2018-07

참고자료[편집]

같이 보기[편집]


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