본문으로 건너뛰기
buybitcoinsmart

용어집 / 프로토콜과 업그레이드

Taproot

별칭은 BIP341입니다.

Taproot란 무엇입니까?
Taproot는 2021년 소프트 포크로, 비트코인에 Schnorr 서명과 협력적 지출 경로가 일반적인 단일 키 지불과 동일하게 보이는 새로운 출력 유형을 도입했습니다.

BIP-341에 명시되어 있습니다.

세 가지 명세가 함께 배포되었습니다. Schnorr 서명을 위한 BIP-340, 출력 유형을 위한 BIP-341, 조정된 스크립트 언어를 위한 BIP-342입니다. 활성화는 2021년 11월 14일 블록 709,632에서 이루어졌으며, 이는 이전 업그레이드로부터 4년 후입니다. 실질적인 효과는 복잡한 구성, 다중 서명 금고, 에스크로, 채널 종료가 다른 사람의 결제와 똑같아 보이면서 정산될 수 있다는 점입니다.

작동 방식

이 설계는 계약이 실제로 어떻게 끝나는지에 대한 관찰에서 출발합니다. 거의 모든 계약은 합의로 끝납니다.

Taproot 출력은 32바이트 값 하나 안에 두 가지를 동시에 확정합니다. 하나는 협력하는 당사자들이 보유한 공개 키입니다. 다른 하나는 잎이 대체 스크립트인 머클 트리이며, 이는 협력이 실패할 때 적용되는 대체 경로입니다. 공개되는 키는 협력 키를 그 키 자신과 트리 루트의 해시로 조정한 것이며, 이는 출력이 존재 여부를 드러내지 않으면서 모든 대체 경로를 확정한다는 뜻입니다.

그다음 지출은 두 경로 중 하나를 택합니다. 키 경로는 서명 하나를 생성하고 트리에 관해서는 아무것도 공개하지 않으므로, 트랜잭션은 한 사람의 결제와 구분되지 않습니다. 스크립트 경로는 잎 하나와 그 잎이 확정된 루트에 속함을 증명하는 데 필요한 형제 해시만 공개하며, 다른 모든 분기는 영구히 비밀로 남습니다. 3개 중 2개 정족수, 시간 지연 복구 키, 비상 조항을 갖춘 금고는 사용된 조항만 노출합니다.

BIP-342는 그 잎들을 위한 스크립트 언어를 조정했습니다. OP_CHECKMULTISIG는 Taproot 잎 안에서 사용할 수 없으며 OP_CHECKSIGADD가 이를 대체합니다. 이는 한 번에 묶음을 소비하는 대신 스택에서 성공한 서명을 세므로, 임계값 검사를 예전의 어색함 없이 작성할 수 있습니다. 10,000바이트 스크립트 크기 상한과 201 옵코드 제한은 사라졌고, 위트니스 크기에 비례하는 서명 연산 예산으로 대체되었습니다. 알려지지 않은 공개 키 유형과 알려지지 않은 잎 버전은 유효한 것으로 정의되어, 또 다른 주소 형식 없이 다음 업그레이드를 위한 여지를 남깁니다.

Taproot가 위트니스 버전 1을 차지하므로, 그 주소는 원래의 bech32가 아니라 BIP-350의 bech32m 체크섬을 사용합니다. 그래서 소프트웨어가 bc1q를 받아들이면서도 bc1p는 거부할 수 있습니다.

비트코인을 구매할 때 이것이 중요한 이유

프라이버시 논거는 스크립트를 결코 작성하지 않을 사람을 포함해 거의 모든 사람에게 적용되는 논거입니다.

비트코인을 보호하는 이전의 모든 방식은 스스로를 드러냈습니다. 2-of-3 다중 서명 입금은 온체인에서 2-of-3 다중 서명 입금으로 읽혔고, 이는 체인 분석 기업과 그들에게서 데이터를 산 모든 이에게 그 주소가 신경 쓸 만큼 충분히 보유한 누군가의 것임을 알렸습니다. 같은 구성에서의 협력적 Taproot 지출은 키 하나에 대한 서명 하나만 공개합니다. 보안은 그대로이고 신호는 사라집니다.

비용도 같은 방향으로 움직입니다. Taproot 키 경로 입력은 비트코인에서 가장 저렴한 입력 유형이며, 구성이 복잡해질수록 격차는 커집니다. 사용하지 않는 대체 분기는 비용이 들지 않기 때문입니다. 이 사이트의 하드웨어 지갑 리뷰가 설명하는 상속이나 다중 서명 구성 같은 것을 만드는 사람에게는 이것이 키를 몇 개나 두는 것이 좋은지에 대한 계산을 바꿉니다.

마찰은 실재하며 계획에 반영할 만합니다. 일부 거래소는 여전히 bc1p를 출금 목적지로 거부하며, 오래된 하드웨어 지갑 펌웨어는 Taproot 주소를 아예 파생하지 못할 수 있습니다. 우회 방법은 지루합니다. 같은 시드 문구로 bc1q 주소로 수신하고, 사용하는 지갑과 서비스 전체가 지원할 때 Taproot로 옮기면 됩니다. 두 주소 유형 모두 하나의 백업에서 나오므로 기다린다고 해서 잃는 것은 없습니다.

부작용에 관한 솔직한 언급이 하나 있습니다. Taproot의 저렴한 위트니스 데이터가 인스크립션이 경제성을 갖게 만든 원인이며, 그로 인한 수요가 수수료율을 일반 결제가 수년간 보지 못한 수준으로 끌어올렸습니다. 그것은 할인의 결과였지 설계의 목표가 아니며, 그것을 근거로 비판하는 것은 타당합니다.

Speedy Trial, Taproot를 활성화한 타협안

2021년 초에 코드는 논란이 없었지만, 활성화 방식이 그런데도 그것을 거의 무산시킬 뻔했습니다.

논쟁은 BIP-8과 그 lockinontimeout 플래그에 관한 것이었습니다. 한쪽은 LOT를 true로 설정해 채굴업자가 신호를 보내든 보내지 않든 타임아웃 시점에 활성화를 강제하기를 원했으며, 그 근거는 2017년에 채굴업자들이 무기한으로 지연시킬 수 있음이 드러났다는 원칙이었습니다. 다른 쪽은 false를 원했으며, 그 근거는 지지가 약한 강제 활성화가 피하려는 분열을 초래할 위험이 있다는 원칙이었습니다. 어느 쪽도 몇 달 동안 움직이지 않았습니다.

Speedy Trial은 질문을 더 작게 만들어 교착을 끝냈습니다. BIP-9의 버전 비트 집계를 유지하고, 임계값을 2,016개 블록 중 1,815개로 낮추고, 약 3개월의 기간을 열고, 고정된 최소 활성화 높이를 709,632로 정해 잠금과 시행 사이에 길고 예측 가능한 간격이 생기게 했습니다. 채굴업자가 신호를 보냈을 때 분기는 알려진 날짜에 일어났습니다. 신호를 보내지 않았다면 시도는 빠르게 만료되었을 것이고 더 어려운 논쟁은 아무것도 잃지 않은 채 재개될 수 있었을 것입니다.

코드는 2021년 5월 1일에 Bitcoin Core 0.21.1로 배포되었습니다. 채굴업자들은 2021년 6월 12일에 끝난 난이도 조정 기간에 임계값을 넘겼고, 이로써 네트워크는 규칙이 바뀌기 전 5개월의 사전 통지를 받았습니다. 이는 비트코인이 사용한 활성화 방식 중 주로 값싸게 실패하도록 설계된 유일한 방식으로 남아 있습니다.

Taproot vs Schnorr 서명

Taproot는 묶음이고 Schnorr 서명은 그 일부입니다. BIP-340은 1980년대부터 암호학에 존재해 온 서명 방식을 정의하며 원칙적으로 어디에나 사용할 수 있는 반면, BIP-341은 비트코인 출력이 어떤 모습인지 정의하고 BIP-342는 그 안에서 무엇이 실행되는지 정의합니다. 비트코인에서 이 셋은 실제로 분리할 수 없습니다. BIP-340 서명은 위트니스 버전 1 지출에서만 유효하기 때문입니다. 그러나 이들은 서로 다른 문제를 해결하는 별개의 문서이며, 사람들이 가장 흥미로워하는 키 집계는 Taproot 자체가 아니라 서명 방식의 속성입니다.

혼동하기 쉬운 용어

자주 묻는 질문

Taproot 주소가 필요합니까?

급하게 필요하지는 않습니다. bc1p 주소는 사용 시 가장 저렴하고 다중 서명(multisig)에서 프라이버시 보호가 가장 잘 되지만, 거래소의 지원은 아직 고르지 않습니다. bc1p를 거부하는 플랫폼을 위해 같은 시드 문구로 만든 bc1q 주소를 보관하십시오.

오래된 지갑도 Taproot 주소로 송금할 수 있습니까?

위트니스 버전 1을 위해 도입된 체크섬인 bech32m을 이해하는 경우에만 가능합니다. Taproot 이전에 작성된 소프트웨어는 bc1p 주소를 유효하지 않은 것으로 거부하는데, 이는 프로토콜이 막는 것이 아니라 클라이언트 측의 한계입니다.

수수료가 오른 이유가 Taproot입니까?

간접적으로 그렇습니다. 위트니스 할인 덕분에 Taproot 스크립트 경로에 임의의 데이터를 삽입하는 것이 저렴해졌고, 이것이 인스크립션(inscription)이 하는 일이며, 그로 인한 수요가 블록 공간을 두고 결제와 경쟁했습니다. 이 할인은 Taproot보다 먼저 있었고 SegWit과 함께 도입되었습니다.

다음에 읽을 글

관련 용어

프로토콜과 업그레이드 분야의 다른 용어

이 페이지를 영어로 읽기