최신판 |
당신의 편집 |
1번째 줄: |
1번째 줄: |
− | '''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'''은 분리 된 증인 (Consensus layer)라고 하며 찬성률이 95%일 때 Segwit이 자동 업데이트 된다. |
− | | + | |
| == 개요 == | | == 개요 == |
− | 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> |
| | | |
− | == 트랜잭션 구조 == | + | == 배경 == |
− | 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 == |
− | '분리된 증인'의 줄임말인 [[세그윗]](SegWit; Segregated Witness)은 거래 처리 용량이 늘어나는 일종의 기술적 업그레이드를 의미한다. 비트코인 커뮤니티가 확장되면서 처리 속도가 늦어지는 등의 문제가 발생하게 되는데, 기존 블록에 서명을 분리해 처리 용량을 늘리는 것을 세그윗이라 한다. <ref> 명전선 기자, 〈[https://www.blockmedia.co.kr/archives/33180 비트코인 용어 세그윗]〉, 《block media》, 2018-02-21</ref>
| |
| | | |
− | === 특징 === | + | == 관련 BIP == |
− | * 거래 속도의 확장성(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> | + | * [[BIP32]] : [[HD 지갑]]의 일반적인 형식과 HD 지갑을 구축하는 방법을 설명한 문서 |
− | * 거래 가변성(Transaction Malleability) : 가변성의 문제를 세그윗이 이 txid를 따로 보관하고 관리함으로써 여러 개의 ID를 가지고 장난을 치거나 동일한 거래 내역 여러 개를 만드는 것을 막을 수 있다.<ref name = "easyblockchain"></ref> | + | * [[BIP39]] : 결정성 열쇠를 파생하기 위한 니모닉 코드(복원 규칙)의 유형 및 BIP32 시드로 전환하는 프로세스 |
− | * 버전 호환 : 세그윗은 하드 포크가 아닌 소프트포크이므로 비트코인 소프트웨어의 업그레이드를 하지 않아도 세그윗 이전과 세그윗 적용 버전을 모든 노드에서 사용할 수 있다.<ref> misskiwi, 〈[https://cryptokiwi.kr/currency?id=btc&category=2&content_id=217 세그윗(Segwit)이란 무엇인가?]〉, 《CRYPTOHIWI》, 2018-07</ref> | + | * [[BIP43]] : 트리 구조의 목적을 나타내는 특별한 식별자로써 첫 강화된 자식 인텍스의 자용을 제안 |
| + | * [[BIP44]] : BIP32 지갑의 특정 형식, 목적을 44로 설정해서 나타나는 다중화폐 다계정 주고를 제안 |
| + | * [[BIP47]] : 비트코인 개선 제안 및 결제 코드 작성 방법 |
| + | * [[BIP49]] : P2WPKH가 중첩 된 P2SH 기반 계정의 유도 스키마 |
| + | * [[BIP63]] : 스텔스 주소 |
| + | * [[BIP70]] : SSL/TLS 통신을 이용하여 비트코인의 결제를 안전하게 함(지불 요청 프로토콜) |
| + | * [[BIP84]] : P2WPKH 기반 계정의 유도 스키마 |
| + | * [[BIP141]] : 분리된 증인(Consensus layer) |
| | | |
| {{각주}} | | {{각주}} |
23번째 줄: |
25번째 줄: |
| * 〈[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]]
| |
| | | |
| {{블록체인 기술|검토 필요}} | | {{블록체인 기술|검토 필요}} |