Taproot가 Bitcoin에 적용됩니다: 작동 방식, 역사 및 의미 PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

Taproot가 Bitcoin에 적용됩니다: 작동 방식, 역사 및 의미

Taproot가 Bitcoin에 적용됩니다: 작동 방식, 역사 및 의미 PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

Taproot 및 Schnorr 서명은 비트코인 ​​블록 709,632에서 활성화됩니다. 이는 미래를 향해 계속해서 발전해 나가기 위한 엄청난 기초적 성과가 될 것입니다. 우리의 마지막 주요 프로토콜 업그레이드인 Segregated Witness가 네트워크에 적용된 지 XNUMX년이 지났습니다. 반감기 주기만큼 길어요!

생각해 보세요. SegWit이 출시된 후 Taproot가 출시되기까지 4년이 걸렸습니다. 천천히, 체계적인 인내심을 가져야 합니다. 그러나 Taproot/Schnorr의 역사는 그보다 훨씬 더 오래전으로 거슬러 올라갑니다.

탭루트의 역사

한동안 여기에 있었던 일부 사람들은 이것이 아이러니하다고 생각할 수도 있지만, 제가 알고 있는 Schnorr 서명에 대한 첫 번째 언급은 실제로 전 비트코인 ​​코어 개발자에서 엔터프라이즈 블록체인 빌더로 변신한 Mike Hearn의 것이었습니다. 2012년에 그는 제기 노드 검증의 계산 비용을 낮추기 위한 서명 일괄 검증과 관련된 새로운 암호화 곡선 아이디어. 궁극적으로 그가 제안한 계획은 Schnorr 서명에 의존했습니다.

Adam Back은 순진한 이야기를 하고 있었습니다. 계획들 Schnorr 서명을 활용하여 2014년에는 단일 서명 주소처럼 보였던 다중 서명 주소를 수행합니다. Gavin Andresen도 포함되었습니다. ECDSA 대신 Schnorr 그가 마술 지팡이를 흔들 수 있다면 비트코인에 적용하고 싶은 변화의 위시리스트에 있습니다.

비트코인 초창기부터 비트코인 ​​코어에 적극적으로 참여한 대부분의 개발자들은 Schnorr 서명을 원해 왔으며 ECDSA 서명보다 Schnorr 서명의 우월성에 대해 항상 확고한 합의가 있었습니다. 실제로 Schnorr 서명 체계가 특허를 받았고 특허로 인해 방해받지 않는 오픈 소스 암호화 서명 체계에 대한 엄청난 필요성이 있었기 때문에 ECDSA가 특별히 만들어졌다고 주장할 수 있습니다.

Schnorr는 ECDSA보다 훨씬 더 효율적이고 쉽게 조작할 수 있습니다(서명에서 항목을 추가하거나 뺄 수 있으며 올바르게 수행되면 사용자에게 유효한 서명이 있어야 할 때 여전히 유효한 서명을 남길 수 있음). ECDSA를 사용하는 것은 수년 동안 대부분의 암호화 응용 프로그램에서 원하는 것이 아니라 필수의 문제였습니다.

다가오는 Taproot 업그레이드의 Taproot 절반인 Merkelized Abstract Syntax Trees(MAST)도 비슷한 오랜 역사를 가지고 있습니다. 인용문을 찾을 수 없지만 2013년이나 2014년쯤에 Bitcointalk.org에서 Peter Todd 같은 사람들이 던진 문구를 본 기억이 납니다.

원래 MAST용 BIP 2016년 Johnson Lau가 제안했습니다. 이 제안은 Mark Friedenbach, BTCDrak 및 Kalle Alm이 두 개의 별도 BIP로 분할된 2017년경에 일부 활동을 보였습니다(116117) Lau의 원래 제안을 확장했습니다.

MAST는 Greg Maxwell이 최초의 Taproot 아이디어를 내놓고 출판 bitcoin-dev 메일링 리스트에 올려주세요. 그의 핵심 통찰은 그가 생각할 수 있는 여러 참가자 간의 모든 계약 사례에는 고급 스크립트 및 트랜잭션을 통해 결과를 시행하는 대신 모든 사람이 적절한 결과에 서명만 하면 계약이 체결될 수 있는 "최적의 결과"가 있다는 것이었습니다. 이는 Taproot가 기반으로 하는 기본 주장입니다. 즉, 다른 지출 조건의 머클 트리가 존재하는지 여부를 밝히지 않고 사용할 수 있는 일반 최상위 키로 MAST 트리를 조정하는 것입니다.

이 역사 수업의 마지막 부분은 Pieter Wiulle이 다음과 같이 발표하는 것으로 시작됩니다. 초안 BIP 6년 2019월 2020일 메일링 리스트와 함께 Schnorr 및 Taproot에 대한 내용입니다. XNUMX년 XNUMX월까지 이는 공식적으로 확정되었습니다. BIP 340, 341 및 342. 이 시점부터 구현 수준에서 많은 작은 세부 사항을 다듬고 검토 기간을 거쳐 오랜 시간이 걸렸습니다. 활성화 메커니즘을 둘러싼 싸움. 그것은 활성화가 부끄러워진 지금으로 우리를 이끈다.

Schnorr 서명의 중요성

그렇다면 Schnorr 서명의 가장 큰 장점은 무엇입니까? 글쎄, 우선 그들은 거래를 더 작게 만듭니다. ECDSA 서명의 크기는 일반적으로 트랜잭션의 단일 서명에 대해 약 72바이트입니다. Schnorr 서명은 서명당 최대 64바이트를 기록합니다. 이는 모든 Schnorr 서명에 대해 ECDSA에 비해 크기가 약 12% 절감된 것입니다. 이는 ECDSA 사용자보다 수수료를 적게 지불하는 Schnorr를 사용하는 사람에게 직접적인 이점이 될 뿐만 아니라, 다른 사람의 Schnorr를 처리하고 검증하기 위해 블록체인에 저장해야 하는 데이터의 양이 약간 적어서 Schnorr를 사용하지 않는 사람들에게도 직접적인 이점이 됩니다. 서명.

더 적은 양의 데이터를 저장하는 것은 항상 좋지만 더 좋은 점은 저장해야 하는 데이터의 유효성을 검사하는 효율성을 높이는 것입니다. Schnorr의 뛰어난 속성 중 하나인 수학의 선형성은 비트코인 ​​데이터에서 원하는 멋진 속성인 일괄 검증을 허용합니다. 노드는 네트워크로부터 블록을 수신하면 각 개별 트랜잭션을 분석하고 각 서명을 하나씩 검증합니다.

이것이 블록 검증이 많은 CPU 전력을 소비하는 이유 중 큰 부분입니다. Schnorr 서명은 모두 함께 일괄 처리하고 한 번에 수학적으로 검증할 수 있습니다. 이는 마치 여러 개별 서명을 수행하는 대신 함께 부숴서 하나의 수학 연산을 수행하는 것과 같습니다. 따라서 Schnorr 서명이 많을수록 계산 비용 절감 효과가 커집니다. 이는 네트워크의 대규모 확장 승리입니다.

Schnorr가 제공하는 또 다른 대규모 개선 사항은 다중 서명 스크립트입니다. 모든 다중서명 주소는 지출 시 다중서명 스크립트에 포함된 모든 개별 공개 키를 명시적으로 공개해야 하며, 지출 프로세스와 관련된 모든 키에 대해 서명이 제공되어야 합니다. Schnorr의 수학적 특성을 통해 다중 서명 표준인 MuSig의 문이 열립니다. 키를 함께 추가하고 모든 사람의 개인 키 공유가 새로운 서명 프로토콜을 사용하여 서명할 수 있는 단일 공개 키로 마무리할 수 있습니다. Blockstream의 조나스 닉 벤치마킹 MuSig2는 XNUMX분 정도 소요됩니다. 1 백만 서명할 다중서명 주소의 참가자. 다중 서명 스크립트의 확장성 향상은 과소평가될 수 없습니다.

다중 서명 스크립트의 이러한 큰 도약은 또한 비트코인을 기반으로 구축된 수많은 애플리케이션의 개인 정보 보호 프로필과 비용에 큰 영향을 미칩니다. MuSig 기반 라이트닝 채널은 이제 체인에 있는 Schnorr/Taproot UTXO의 전체 익명성 세트에 혼합될 수 있습니다. 왜냐하면 더 이상 둘 중 2개의 다중 서명 출력이라는 사실을 누구도 구별할 수 없기 때문입니다.

그것들은 혼합되어 단일 서명 스크립트처럼 보입니다. 일반적으로 다중서명 UTXO에도 마찬가지입니다. 이는 단일 서명 스크립트보다 더 강력한 보안 및 복구 모델로 콜드 스토리지를 더 잘 보호하기 위해 다중 서명 스크립트를 사용하는 사람들에게 많은 의미를 갖습니다.

첫째, 블록체인을 보면 다중서명 설정을 사용하고 있는지 확실하지 않으므로 Lightning의 경우처럼 다른 모든 것과 조화를 이루게 됩니다. 하지만 중요한 승리는 경제성과 관련이 있습니다. 지금 다중 서명을 사용하려면 결국 UTXO를 소비하는 데 관련된 모든 키에 대해 별도의 서명을 제공해야 합니다. Schnorr/MuSig를 사용하면 단일 결합 공개 키에 대한 단일 서명으로 모든 것이 압축됩니다. 즉, MuSig를 사용하여 다중 서명 UTXO를 지출하면 블록체인에 더 적은 데이터를 전송하므로 훨씬 저렴해집니다.

Schnorr 서명이 수행하는 마지막 멋진 기능 중 하나는 어댑터 서명 구현을 대폭 단순화한다는 것입니다. 유효한 서명에 추가되거나 뺀 값으로 "암호화된" 어댑터 서명을 생각해 보십시오. 해당 수학적 연산을 뒤집거나 조작에 사용된 "키"로 "해독"할 때까지는 유효하지 않습니다. 이는 ECDSA를 사용하면 가능하지만 Schnorr에 비해 수학이 비선형이기 때문에 상대적으로 복잡하고 구현 시 고려해야 할 보안 문제가 많습니다.

그러나 Schnorr의 선형 속성으로 인해 어댑터 서명은 단일(예: 숫자 9,300,030)을 취하고 그 값에서 값(예: 30)을 빼는 것만큼 간단합니다. 어댑터 서명을 보유한 당사자가 차감된 값을 알게 되면 간단히 다시 추가하고 짜잔, 그들은 다시 유효한 서명을 가지고 있습니다.

Taproot의 의미

위에서 조금 논의한 것처럼 실제로 Taproot는 본질적으로 MAST입니다. 단, P2SH처럼 작동하는 대신(스크립트를 해시하거나 MAST의 경우 스크립트 트리 상단의 Merkle 루트), Merkle 트리의 루트에 있는 Schnorr 공개 키.

조정은 Schnorr의 선형 속성으로 인해 작동합니다. Merkle 루트를 사용하여 공개 키를 "조정"하면(해당 Merkle 루트를 공개 키에 추가) 간단히 원래 개인 키에 Merkle 루트를 추가하고 지출 키를 생성할 수 있습니다. 새로 조정된 공개 키. 즉, 공개 키와 개인 키에 동일한 것을 추가해도 여전히 유효한 키 쌍입니다. 이는 분기를 사용하지 않는 한 MAST 트리의 존재를 숨기지만 기본적으로는 여전히 MAST 트리일 뿐이며 더 효율적이고 비공개적인 방식으로 커밋된 트리일 뿐입니다.

머클 트리에서 다양한 지출 스크립트를 커밋하고 사용된 스크립트만 공개하는 기능은 비트코인 ​​기반으로 구축할 수 있는 스마트 계약 복잡성 측면에서 엄청난 확장성 승리입니다.

블록 크기가 블록당 트랜잭션 수를 제한하는 것과 마찬가지로 트랜잭션 크기 제한 제한은 100KB입니다. 유일한 차이점은 합의 규칙이 아니라 정책 규칙이라는 것입니다. 즉, 채굴자는 100KB보다 큰 거래를 채굴할 수 있지만 기본적으로 네트워크의 어떤 노드도 애초에 그보다 큰 거래를 채굴자에게 전달하지 않습니다.

이는 본질적으로 비트코인 ​​UTXO를 잠그는 데 사용되는 스크립트의 크기를 제한합니다. UTXO가 스크립트 해시에 잠겨 있고 이를 사용할 때까지 공개되지 않는 P2SH를 사용하더라도 결국에는 지출 시간에 전체 스크립트를 공개해야 합니다. Taproot는 스크립트를 사용할 때 전체 스크립트를 공개할 것을 요구하지 않음으로써 스크립트의 확장성 한계를 높입니다. UTXO를 사용할 수 있는 모든 방법의 총 크기가 거래 크기 제한으로 제한되는 대신, Taproot UTXO를 사용할 수 있는 모든 방법이 이 제한을 준수하는지 확인하기만 하면 됩니다.

Taproot와 함께 제공되는 많은 개인 정보 보호 이점도 있습니다. MAST 트리의 가장 큰 장점 중 하나는 다른 당사자가 코인을 사용할 수 있는 모든 종류의 조건부 상황을 생성할 수 있다는 것입니다.

1년 정도 후에 귀하의 자녀가 귀하의 동전을 사용할 수 있거나 귀하가 서명을 거부하는 경우 귀하의 아내와 변호사가 동전을 회수할 수 있는 잠재적인 경로가 있는 상속 계획과 같은 것을 상상해 보십시오. 이러한 지출 조건은 실제로 사용되지 않는 한 대중에게 공개되지 않습니다. 이 2중 프로세스는 귀하가 구성한 다양한 지출 분야에 관련된 다른 당사자들에게 해당 UTXO에 대한 관여에 대해 그럴듯한 거부성을 제공할 뿐만 아니라 그들이 어느 정도 통제권을 가지고 있다는 것을 알고 그들을 선제적으로 표적으로 삼는 도둑이나 공격자로부터 그들을 보호합니다. 대상의 UTXO.

기술적인 측면에서도 Taproot는 상대적으로 잘 설계되었습니다. 깊은 수준에서 분리된 증인에 대해 잘 알고 있는 독자라면 누구나 증인 버전에 익숙할 것입니다.

분리된 증인이 구현되었을 때 서명 데이터가 이동된 거래의 새로운 "증인" 섹션이 생성되었습니다. 증인 데이터에는 새로운 기능을 위해 기본 레이어에서 정의되지 않은 OP_CODE를 사용하지 않고도 새로운 기능으로 업그레이드할 수 있도록 버전 플래그가 있습니다.

이것이 실제로 Taproot/Schnorr가 구현된 방식입니다. 분리된 감시 트랜잭션은 감시 버전 0을 사용합니다. Taproot/Schnorr가 곧 활성화되면 새로운 감시 버전 1을 사용하여 이전 Segregated Witness 트랜잭션과 구별됩니다. SegWit이 감시 버전을 도입한 것과 마찬가지로 Taproot는 Taproot를 사용하는 UTXO용 MAST 트리에 사용되는 탭스크립트에 대한 "tapleaf 버전"을 도입합니다. 이를 통해 기본 계층에서 새 OP_CODE를 사용하지 않고 MAST에 묻혀 있는 스크립트를 업그레이드할 수 있을 뿐만 아니라 감시 버전도 업그레이드하지 않고도 업그레이드할 수 있습니다! 따라서 Taproot는 프로토콜과 관련 없는 다른 업그레이드를 제한하지 않고 향후 업그레이드에 최대한 효율적으로 설계되었습니다.

Taproot는 다양한 사용 사례를 가져올 것입니다. 시작하려면 페널티 키 또는 사용을 허용하는 타임록과 같은 라이트닝 채널의 모든 비협조 조항을 Taproot를 사용하여 MAST 아래에 묻을 수 있습니다. 사용해야 하는 경우가 아니면 그 존재를 아무도 알 수 없으므로 어떤 UTXO가 실제로 라이트닝 채널인지 아닌지는 더욱 모호해집니다.

상속 체계는 또 다른 사용 사례입니다. 6개월 동안 돈을 옮기지 않으면 온 가족이 함께 모여 원하는 대로 UTXO를 쓸 수 있도록 구성된 탭루트 트리를 상상해 보세요. 그런 다음 6개월 후에는 한 사람을 제외한 모든 사람이 이 돈을 쓸 수 있습니다. (그러므로 아내, 두 자녀, 부모님이 열쇠 보유자라고 가정하고, 추가 6개월 후에는 아내, 한 자녀, 부모님이 서명할 수 있다고 상상해 보세요. , 또는 두 자녀와 부모가 아내 없이 서명할 수 있습니다. 등).

그러면 6개월이 지나면 2명을 제외한 모든 사람이 그 돈을 쓸 수 있습니다. 결국 변호사의 도움을 받아 단 한 사람만이 UTXO를 사용할 수 있게 됩니다.

또는 다중 서명을 사용하여 콜드 스토리지를 보호하지만 장기적으로 안전하고 예측 가능하다고 생각하는 장소가 한 곳뿐이라면 어떻게 될까요? 결국 몇 년 후에 다른 키가 분실되거나 파손된 경우를 대비해 안전한 위치에 있는 키가 해당 코인을 단독으로 사용할 수 있는 MAST를 생성할 수 있습니다. 키 하나가 손상되었습니다.

이는 실제 구현 세부 사항이 해결되고 구현된 지난 몇 년이 아니라 비트코인 ​​자체가 탄생한 이후 거의 틀림없이 작업에 있었던 비트코인에 대한 놀랍고 포괄적인 업그레이드입니다.

비트코인 프로토콜의 확장성과 유용성에 대한 여러 면에서 정말 승리인데, 그 중 일부가 얼마나 미묘하고 "섹시하지 않은"지 때문에 전달하기 어렵습니다. 그러나 그것이 승리를 방해하지는 않습니다. Taproot가 출시되기 때문에 모두가 곧 사용해야 할 새로운 장난감을 가지고 놀 준비를 하세요!

Shinobi님의 게스트 게시물입니다. 표현된 의견은 전적으로 자신의 것이며 BTC Inc 또는 Bitcoin Magazine.

출처: https://bitcoinmagazine.com/technical/bitcoin-taproot-explainer

타임 스탬프 :

더보기 Bitcoin Magazine