Bitcoin 사용자는 곧"Taproot "혜택. Bitcoin Core 기여자이자 전 Blockstream CTO인 Gregory Maxwell이 처음 제안한 Taproot는 Bitcoin 스마트 계약의 유연성을 확장하는 동시에 프로세스에서 더 많은 개인 정보를 제공합니다. 가장 복잡한 스마트 계약조차도 종종 블록체인의 일반 트랜잭션과 구별할 수 없습니다.
큰 프로젝트이지만 단순한 이론이 아닙니다. Pieter Wuille, Anthony Towns, Johnson Lau, Jonas Nick, Andrew Poelstra, Tim Ruffing, Rusty Russell 및 실제로 Gregory Maxwell을 포함한 몇몇 Bitcoin Core 기여자들은 Taproot를 포함하는 Schnorr 서명 제안을 작업하고 있습니다.
Taproot와 작동 방식을 살펴보겠습니다.
P2SH
기본적으로 모든 비트코인은"잠금"스크립트에서: 비트코인이 다음 트랜잭션에서 어떻게 사용되는지 결정하는 블록체인 트랜잭션에 포함된 몇 줄의 코드입니다. 일반적으로 사용되는 조건에는 코인의 소유권을 증명하는 서명 제공이 포함됩니다. 그러나 다른 잘 알려진 조건에는 타임록(동전은 특정 블록 높이 또는 날짜 이후에만 사용할 수 있음) 또는 다중서명(동전은 일부 개인 키 집합에 의해 서명된 경우에만 사용할 수 있음)이 포함됩니다.
다양한 조건을 혼합하고 일치시켜 복잡한 유형의 스마트 계약을 생성할 수 있습니다. 이러한 종류의 계약의 예를 보면 Alice와 Bob이 모두 서명하거나 Alice가 일주일 후에 혼자 서명하거나 Bob이 혼자 서명하고 암호도 제공하면 코인이 "사용"될 수 있습니다. 이 세 가지 조건 중 어느 것이 먼저 충족되느냐가 코인을 어떻게 사용하느냐에 관한 것입니다.
해결책"해결책". 그런 다음 누구나 초기 해시를 사용하여 제공된 스크립트가 실제로 코인을 잠근 원래 스크립트인지 확인하고 스크립트의 요구 사항이 충족되었다고 즉시 결론을 내릴 수 있습니다.
다만 현재 코인을 사용했을 때 충족되는 조건을 충족하지 않는 조건까지 포함해 모두 공개할 필요가 있다. 여기에는 두 가지 주요 단점이 있습니다. 하나, 특히 조건이 많을 때 많은 양의 데이터가 있습니다. 두 번째는 사생활 침해다. 모든 사람들은 자금이 사용될 수 있는 다양한 방법에 대해 알게 될 것입니다. 예를 들어 어떤 지갑이 사용되었는지 등을 알 수 있습니다.
MAST
MAST는 이러한 단점을 모두 해결하기 위해 암호학자 Ralph Merkle이 발명한 수십 년 된 압축 데이터 구조인 Merkle 트리를 사용하여 제안된 솔루션입니다. 즉, 자금을 사용할 수 있는 모든 다양한 조건은 개별적으로 해시되고(단일 해시로 결합되지 않음) Merkle 트리에 포함되어 단일 해시인 Merkle 루트가 됩니다. 이 머클 루트"잠금"이 동전들.
고유한 이점은 Merkle 트리의 데이터가 공개되면 Merkle 루트와 일부 추가 데이터(Merkle 경로라고 함)를 사용하여 특정 데이터가 Merkle 트리에 포함되었는지 확인할 수 있다는 것입니다. Merkle 트리의 나머지 부분은 해시되고 숨겨진 상태로 유지됩니다.
MAST의 경우 이는 충족된 조건만 공개해야 함을 의미합니다. 위의 원래 예에서 Alice가 일주일 후에 자금을 혼자 사용했다면 조건(및 Merkle 경로)을 공개하도록 내버려 두었습니다. 그 돈이 앨리스와 밥이 함께 썼을 수도 있고 밥이 혼자 썼을 수도 있다는 사실을 아는 사람은 아무도 없습니다(그는 비밀번호도 추가했습니다). 따라서 MAST는 프라이버시가 강화된 복잡한 P2SH 스마트 계약보다 더 데이터 효율적입니다.
그러나 Schnorr를 사용하면 Taproot는 훨씬 더 잘할 수 있습니다. 트랜잭션은 MAST와 같은 구조를 완전히 숨길 수 있습니다.
Schnorr
Schnorr 서명 체계는 많은 Bitcoin 개발자가 원했으며 현재 소프트 포크 프로토콜 업그레이드로 배포하기 위해 개발 중입니다. 많은 암호 작성자는 Schnorr 서명 체계가 수학적 속성이 강력한 정확성을 제공하고 변경 가능성에 영향을 받지 않으며 상대적으로 검증이 빠르기 때문에 해당 분야에서 최고라고 생각합니다.
비트코인 발전의 가장 유명한 특징으로 Schnorr's"선형 수학"서명 집계 허용: 동일한 트랜잭션의 여러 서명을 하나로 병합할 수 있습니다. 다중서명 트랜잭션에도 유사한 트릭을 적용할 수 있습니다. 공개 키와 서명을 결합하여"그리고"그리고"임계값 서명", 다중 서명 트랜잭션을 일반 트랜잭션과 구별할 수 없게 만들 수 있습니다.
그러나 서명 체계는 보다 흥미로운 방식으로 사용될 수도 있습니다. 예를 들어 데이터를 사용하여"조정"개인키와 공개키. 간단한 예로 개인 키와 해당 공개 키는 2에 2를 곱하여 조정할 수 있습니다."그리고"그리고"공개 키 × 2"여전히 대응할 것입니다."개인 키 × 2"여전히 서명 가능"공개 키 × 2"확인된 정보. 원래 키 쌍이 조정되었다는 사실을 모르는 사람은 어떤 차이도 느끼지 못할 것입니다. 조정된 키는 다른 키 쌍과 똑같아 보입니다.
Taproot가 들어오는 곳입니다.
Taproot
Taproot는 거의 모든 MAST 구성이 아무리 복잡하더라도 모든 참가자가 결과에 동의하고 결제 거래에 함께 서명할 수 있는 조건을 포함할 수 있다는(또는 포함해야 한다는) 인식을 기반으로 합니다. 이전 예에서 Bob이 Alice가 다음 주에 모든 자금을 스스로 돌려받을 수 있다는 것을 알고 있다면 지금 그녀와 협력하여 함께 서명하는 것이 나을 것입니다. (많은 일반적인 스마트 컨트랙트 설정에서 그렇지 않으면 불이익을 받을 수도 있습니다. 모든 사람을 정직하게 유지하는 것이 복잡합니다.)
Taproot는 MAST와 유사하며 모든 참가자가 자금을 공동으로 사용할 수 있다는 조건을 항상 포함합니다."협력 종료"。
Schnorr 서명을 활용하면 흥미로워집니다.
첫째, 파트너십 종료는 Schnorr의 임계값 트릭을 사용하여 정상적인 거래처럼 보이게 합니다. 이러한 방식으로 모든 참가자의 공개 키가 함께 추가되어"임계값 공개 키". 이 임계 공개 키에 해당하는 모든 참가자의 서명 조합---그들의"임계값 서명"---자금을 사용하게 할 수 있습니다.
지금까지는 좋았지만 정상적인 거래로 자금을 지출하는 것이 그들이 할 수 있는 유일한 일이었습니다. MAST와 같은 구조는 아직 없습니다. 이것은 또 다른 Schnorr 트릭이 작용하는 곳입니다.
자금이 사용될 수 있는 모든 대안적 방법(비협조적 결과)이 이번에는 다른 스크립트로 결합됩니다. 그런 다음 이 스크립트는 해시되어 임계값 공개 키를 조정하는 데 사용됩니다. 사용하는 대신"공개 키 × 2", 밝혀"임계값 공개 키 × 스크립트"(간체 표현). 물론, 이"임계값 공개 키 × 스크립트"에 해당"임계값 서명 × 스크립트"。
이제 자금을 공유하면 모든 참가자가 서명을 결합하여"임계값 서명", 그런 다음 스크립트로 조정하십시오. 결과"임계값 서명 × 스크립트"그들이 돈을 사용하게하십시오. 그러나 중요한 것은 이 모든 것이 여전히 외부 세계에 대한 일반적인 공개 키이자 일반적인 서명(일반적인 트랜잭션)일 뿐이라는 것입니다.
협업의 끝이 불가능하다는 것이 입증된 경우에만 임계값 공개 키가 조정된 진정한 색상을 드러냅니다.
이 경우 원래 임계값 공개 키와 스크립트가 모두 공개됩니다. 이것은 증명한다"임계값 공개 키 x 스크립트"이 특정 스크립트로 조정됩니다. 따라서 P2SH의 해시처럼 이 조정은 이 스크립트에 지정된 대안이 충족되면 자금을 사용할 수 있는지 확인합니다. (P2SH와 마찬가지로 자금이 사용되기 위해서는 물론 이러한 조건이 즉시 충족됩니다.)
또한 스크립트를 사용하여 임계값 공개 키를 조정하는 대신 자금을 사용할 수 있는 다양한 조건을 모두 포함하는 Merkle 트리의 Merkle 루트인 MAST 구조를 사용하여 임계값 공개 키를 조정할 수 있습니다. 그런 다음 자금을 사용하려면 충족된 사용 조건을 밝히기만 하면 됩니다.
따라서 Taproot는 MAST의 모든 이점을 제공하지만 정상적인 상황에서는 일반 거래가 이러한 복잡한 스마트 계약을 백업으로 숨기고 있다는 사실을 아무도 모릅니다.
