"BIP141"의 두 판 사이의 차이
yueun970422 (토론 | 기여) |
잔글 |
||
(사용자 2명의 중간 판 29개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | '''BIP141''' | + | '''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)"라는 새로운 구조를 | + | 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> | ||
− | == | + | == 세그윗 == |
− | + | '분리된 증인'의 줄임말인 [[세그윗]](SegWit; Segregated Witness)은 거래 처리 용량이 늘어나는 일종의 기술적 업그레이드를 의미한다. 비트코인 커뮤니티가 확장되면서 처리 속도가 늦어지는 등의 문제가 발생하게 되는데, 기존 블록에 서명을 분리해 처리 용량을 늘리는 것을 세그윗이라 한다. <ref> 명전선 기자, 〈[https://www.blockmedia.co.kr/archives/33180 비트코인 용어 세그윗]〉, 《block media》, 2018-02-21</ref> | |
− | + | ||
− | + | === 특징 === | |
− | * | + | * 거래 속도의 확장성(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> |
− | + | * 거래 가변성(Transaction Malleability) : 가변성의 문제를 세그윗이 이 txid를 따로 보관하고 관리함으로써 여러 개의 ID를 가지고 장난을 치거나 동일한 거래 내역 여러 개를 만드는 것을 막을 수 있다.<ref name = "easyblockchain"></ref> | |
− | + | * 버전 호환 : 세그윗은 하드 포크가 아닌 소프트포크이므로 비트코인 소프트웨어의 업그레이드를 하지 않아도 세그윗 이전과 세그윗 적용 버전을 모든 노드에서 사용할 수 있다.<ref> misskiwi, 〈[https://cryptokiwi.kr/currency?id=btc&category=2&content_id=217 세그윗(Segwit)이란 무엇인가?]〉, 《CRYPTOHIWI》, 2018-07</ref> | |
− | |||
− | * | ||
− | * | ||
− | |||
{{각주}} | {{각주}} | ||
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]
각주[편집]
- ↑ 에이미 캐스터, 〈CoinDesk Explainer : Bitcoin 분할을 피하면서 BIP 91이 SegWit을 실행하는 방법〉, 《coindesk》, 2017-07-18
- ↑ Eastinny, 〈[hhttps://www.clien.net/service/board/cm_vcoin/10984851]〉, 《clien》, 2017-07-18
- ↑ 〈깃허브〉, 《깃허브》
- ↑ 〈Cryptocurrency 표준〉, 《trezor wiki》
- ↑ loum, 〈암호화폐에서 세그윗(segwit)에 대한 설명〉, 《beta brunch》, 2017-10-20
- ↑ 명전선 기자, 〈비트코인 용어 세그윗〉, 《block media》, 2018-02-21
- ↑ 7.0 7.1 easyblockchain, 〈쉽게 설명하는 블록체인:세그윗이란?〉, 《bank salad》, 2018-06-01
- ↑ misskiwi, 〈세그윗(Segwit)이란 무엇인가?〉, 《CRYPTOHIWI》, 2018-07
참고자료[편집]
- 〈Cryptocurrency 표준〉, 《trezor wiki》
- 〈깃허브〉, 《깃허브》
- Eastinny, 〈[hhttps://www.clien.net/service/board/cm_vcoin/10984851]〉, 《clien》, 2017-07-18
- loum, 〈암호화폐에서 세그윗(segwit)에 대한 설명〉, 《beta brunch》, 2017-10-20
- 명전선 기자, 〈비트코인 용어 세그윗〉, 《block media》, 2018-02-21
- easyblockchain, 〈쉽게 설명하는 블록체인:세그윗이란?〉, 《bank salad》, 2018-06-01
- misskiwi, 〈세그윗(Segwit)이란 무엇인가?〉, 《CRYPTOHIWI》, 2018-07
같이 보기[편집]