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

"BIP141"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글
 
(사용자 2명의 중간 판 29개는 보이지 않습니다)
1번째 줄: 1번째 줄:
'''BIP141'''SegWit 을 Bitcoin 의 소프트 포크 로 사용했습니다. 또한위한 전제 조건입니다 번개 네트워크 가 사전 segwit 트랜잭션 유형의 전성 문제를 해결한다. 특히 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'''(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)"라는 새로운 구조를 정의합니다. 이 구조에는 트랜잭션 유효성을 확인하는 데 필요한 데이터가 있지만 트랜잭션 영향을 결정하는 데 필요하지는 않습니다. 특히 스크립트와 서명이이 새로운 구조로 옮겨집니다. 목격자는이 BIP 소프트 포크를 호환 가능하게 만들기 위해 코인베이스 트랜잭션을 통해 블록의 기존 머클 루트에 중첩 된 트리에서 커밋됩니다. 미래의 하드 포크는이 트리를 자체 분기에 배치 할 수 있습니다. <ref name = "깃허브">〈[https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki 깃허브]〉, 《깃허브》</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 (Bitcoin Improvement Proposal)에서 제한된 기존 트랜잭션의 포맷을 바꾸는 소프트 포크이다.
 +
기존 방법 : [nVersion][txins][txout][nLockTime]
 +
세그윗 : [nVersion][marker][flag][txins][txout][witness][nLockTime]
 +
nVersion :  버전, txins : 입력, txouts : 출력, nLockTime : 잠금시간(블럭에 기록될 수 있는 시간)<ref> loum, 〈[https://brunch.co.kr/@loum/7 암호화폐에서 세그윗(segwit)에 대한 설명]〉, 《beta brunch》, 2017-10-20</ref>
  
== 관련 BIP ==
+
== 세그윗 ==
* [[BIP32]] : [[HD 지갑]]일반적인 형식과 HD 지갑을 구축하는 방법을 설명한 문서
+
'분리된 증인'줄임말인 [[세그윗]](SegWit; Segregated Witness)은 거래 처리 용량이 늘어나는 일종의 기술적 업그레이드를 의미한다. 비트코인 커뮤니티가 확장되면서 처리 속도가 늦어지는 등의 문제가 발생하게 되는데, 기존 블록에 서명을 분리해 처리 용량을 늘리는 것을 세그윗이라 한다. <ref> 명전선 기자, 〈[https://www.blockmedia.co.kr/archives/33180 비트코인 용어 세그윗]〉, 《block media》, 2018-02-21</ref>
* [[BIP39]] : 결정성 열쇠를 파생하기 위한 니모닉 코드(복원 규칙)의 유형 및 BIP32 시드로 전환하는 프로세스
+
 
* [[BIP43]] : 트리 구조의 목적을 나타내는 특별한 식별자로써 첫 강화된 자식 인텍스의 자용을 제안
+
=== 특징 ===
* [[BIP44]] : BIP32 지갑의 특정 형식, 목적을 44로 설정해서 나타나는 다중화폐 다계정 주고를 제안
+
* 거래 속도의 확장성(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>
* [[BIP47]] : 비트코인 개선 제안 및 결제 코드 작성 방법
+
* 거래 가변성(Transaction Malleability) : 가변성의 문제를 세그윗이 이 txid를 따로 보관하고 관리함으로써 여러 개의 ID를 가지고 장난을 치거나 동일한 거래 내역 여러 개를 만드는 것을 막을 수 있다.<ref name = "easyblockchain"></ref>
* [[BIP49]] : P2WPKH가 중첩 된 P2SH 기반 계정의 유도 스키마
+
* 버전 호환 : 세그윗은 하드 포크가 아닌 소프트포크이므로 비트코인 소프트웨어의 업그레이드를 하지 않아도 세그윗 이전과 세그윗 적용 버전을 모든 노드에서 사용할 수 있다.<ref> misskiwi, 〈[https://cryptokiwi.kr/currency?id=btc&category=2&content_id=217 세그윗(Segwit)이란 무엇인가?]〉, 《CRYPTOHIWI》, 2018-07</ref>
* [[BIP63]] : 스텔스 주소
 
* [[BIP70]] : SSL/TLS 통신을 이용하여 비트코인의 결제를 안전하게 함(지불 요청 프로토콜)
 
* [[BIP84]] : P2WPKH 기반 계정의 유도 스키마
 
* [[BIP141]] : 분리된 증인(Consensus layer)
 
  
 
{{각주}}
 
{{각주}}
24번째 줄: 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 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.