타프루트: 그것이 무엇이며 비트코인에 어떻게 도움이 될 것인가

저자:선함, 2019-02-12 09:33:46, 업데이트:

비트코인 사용자는 곧 타프루트 (Taproot) 라는 트릭을 활용할 수 있을 것이다. 처음 제안된 것은 비트코인 코어 기여자이자 전 블록스트림 CTO인 그레고리 맥스웰 (Gregory Maxwell) 이다.

큰 사업이지만, 이것은 단지 이론이 아닙니다. 피터 위일, 앤서니 타운스, 존슨 라우, 조나스 닉, 앤드류 폴스트라, 팀 러핑, 러시 러셀, 그리고 실제로 그레고리 맥스웰 등 가장 생산적인 비트코인 코어 기여자 중 몇몇은 하나의 프로토콜 업그레이드에서 모든 Taproot을 포함하는 노어 서명 제안에 노력하고 있습니다.

여기 Taproot가 무엇이고 어떻게 작동하는지 설명합니다.

P2SH

모든 비트코인은 기본적으로 스크립트 (scripts) 로 locked up) 됩니다. 이는 블록체인에 포함된 트랜잭션에 임베디드된 몇 줄의 코드이며, 다음 트랜잭션에서 코인이 어떻게 지출될 수 있는지 정의합니다. 지출 조건은 일반적으로 코인의 소유권을 증명하기 위해 서명 (signature) 을 제공하는 것을 포함한다. 그러나 다른 잘 알려진 조건은 예를 들어 타임 로크 (특정 블록 높이나 날짜 후에만 코인을 사용할 수 있다) 또는 멀티시그 (특정 키의 일부에서 몇 개의 개인 키가 서명 (signature) 을 제공하는 경우에만 코인을 사용할 수 있다).

다양한 조건이 혼합되고 일치하여 복잡한 유형의 스마트 계약을 만들 수 있습니다. 그러한 계약의 예로는 앨리스와 밥이 모두 서명하거나 일주일 후에 앨리스만 서명하거나 비밀 번호를 제공하면서 밥만 서명하면 동전을 지출 할 수 있습니다. 이 세 가지 조건 중 어느 것이 먼저 충족되면 동전이 어떻게 지출되는지입니다.

2012년 이후 스크립트 (조건) 는 처음에는 공개적으로 보이지 않는 경우가 많으며, 코인의 새로운 소유자만이 그것을 어떻게 쓸 수 있는지 알고 있다. 이것은 P2SH (pay to script hash) 라는 트릭을 통해 이루어진다. 처음에는 스크립트의 해시만 블록체인에 포함된다. 이 겉으로 보기에는 무작위로 겨진 숫자는 코인을 보유하고 있다. 소유자가 코인을 쓸 때 전체 스크립트와 동시에 스크립트에 대한 솔루션을 공개한다. 그 다음 누구나 초기 해시를 사용하여 제공된 스크립트가 실제로 코인을 잠금하는 원래 스크립트인지 확인하고 즉시 스크립트의 요구 사항이 충족되었다는 결론을 내릴 수 있다.

그러나, 동전이 소비될 때, 현재는 충족되지 않은 조건을 포함하여 충족될 수 있는 모든 가능한 조건을 공개할 필요가 있다. 이것은 두 가지 주요 단점이 있다. 첫째, 많은 조건이 있을 경우 특히 데이터가 많이 사용된다. 둘째, 개인 정보 보호에 해롭다. 모든 사람들은 자금이 사용될 수 있는 다양한 방법을 알게 된다. 예를 들어, 어떤 지갑이 사용되었는지, 어쩌면 더 많은 것을 공개할 수 있다.

MAST

MAST (Merkelized Abstract Syntax Tree) 는 이 두 가지 단점을 극복하기 위해 머클레 트리 (암호학자 랄프 머클에 의해 발명된 수십 년 된 컴팩트 데이터 구조) 를 사용하는 제안 솔루션이다. 간단히 말해서, 자금을 지출할 수 있는 모든 다른 조건은 개별적으로 해시 (하나의 해시로 결합하는 것과 달리) 되어 머클레 트리에 포함되며, 궁극적으로 하나의 해시: 머클레 루트를 생성한다. 이 머클레 루트 (lock up the coins) 는 동전을 잠금한다.

독특한 장점은 Merkle 트리 내의 데이터가 드러나면 Merkle 루트와 일부 추가 데이터 (Merkle 경로라고 불리는) 를 사용하여 특정 데이터가 Merkle 트리에 포함되었는지 확인할 수 있다는 것입니다. Merkle 트리의 나머지 부분은 해시되어 숨겨져 있습니다.

MAST의 경우, 이는 충족된 조건만 공개되어야 함을 의미합니다. 위의 초기 예제에서, 앨리스가 혼자 한 주 후에 자금을 지출하면, 그녀는 그 조건 (그리고 Merkle 경로) 을 공개합니다. 아무도 돈이 앨리스와 밥이 함께 사용했을 수도 있다는 것을 배우지 않습니다. 또는 비밀 번호를 추가하면 밥 혼자. 이것은 MAST를 복잡한 P2SH 스마트 계약보다 데이터 효율성을 높이고 개인 정보를 추가합니다.

그러나 러와 함께, Taproot는 더 나은 일을 할 수 있습니다: 거래는 MAST 구조가 실제로 존재한다는 것을 숨길 수 있습니다.

슈노어 서명 시스템은 오랫동안 많은 비트코인 개발자들의 희망 목록에 있으며 현재 소프트 포크 프로토콜 업그레이드로 배포될 개발 중입니다. 많은 암호학자들은 스노어 서명 시스템을 수학적 특성이 높은 수준의 정확성을 제공하므로 비교적 빠르게 검증 할 수 있습니다.

비트코인의 맥락에서 가장 잘 알려진 이점으로, 노어선형 수학은 서명 집합을 가능하게 한다: 동일한 거래의 여러 서명들이 하나로 결합될 수 있다. 이와 유사한 트릭은 멀티시그 거래에도 적용될 수 있다. 공공 키와 서명 모두를 최고 공개 키최고 서명으로 결합함으로써, 멀티시그 트랜잭션은 모든 일반 트랜잭션과 구별할 수 없게 된다.

그리고 서명 스키마는 더욱 흥미로운 방법으로 사용될 수 있다. 예를 들어, 개인 키와 공개 키를 모두 tweak하기 위해 데이터를 사용할 수 있다. 단순화된 예로, 개인 키와 그에 상응하는 공개 키는 둘을 둘로 곱하여 tweak할 수 있다. private key x 2public key x 2는 여전히 일치할 것이고, private key x 2는 여전히 public key x 2로 검증될 수 있는 메시지를 서명할 수 있다.

이것이 태프루트를 가능하게 합니다.

타프로트

태프루트는 흥미로운 깨달음에 기반을 두고 있다. 아무리 복잡하더라도 거의 모든 MAST-건설에는 모든 참가자가 결과에 동의하고 단순히 합의 거래를 함께 서명할 수 있는 조건이 포함될 수 있다. 이전 예제에서, 밥이 앨리스가 다음 주에 모든 자금을 스스로 청구할 수 있다는 것을 알고 있다면, 그는 지금 그녀와 협력하여 함께 서명할 수도 있다. (많은 전형적인 스마트 계약 설정에서는 그렇지 않으면 처벌을 받을 수도 있다. 복잡성은 실제로 모든 사람을 정직하게 유지하는 데만 도움이 된다.)

타프루트 (taproot) 는 MAST와 비슷하며 항상 모든 참가자가 자금을 지출하기 위해 협력할 수 있는 조건을 포함합니다.

슈노어 서명을 이용하면 흥미로운 부분입니다.

첫째, 협동조합 폐쇄는 Schnorr의 문턱 트릭을 사용하여 한 사람에서 다른 사람에게 일반 거래처럼 보이게합니다. 따라서 모든 참가자의 공개 키가 함께 추가되어 문턱 공개 키가 발생합니다. 이 문턱 공개 키에 대응하여 모든 참가자의 조합 서명 그들의 문턱 서명 자금을 지출 할 수 있습니다.

지금까지는 잘됐지만 보통 거래처럼 자금을 지출하는 것만이 그들이 할 수 있는 유일한 방법입니다. 아직 MAST 같은 구조가 없습니다.

자금을 지출할 수 있는 모든 대안적인 방법들 (비협력적 결과) 은 이번에는 다른 스크립트로 결합된다. 이 스크립트는 그 다음 해시되어 문턱 공개 키를 조정하는 데 사용됩니다. 이전 예제에서 사용된 것처럼 공개 키 x 2보다, 이것은 문턱 공개 키 x 스크립트로 이어집니다. (우리는 여전히 단순화하고 있습니다.) 이 문턱 공개 키 x 스크립트는 물론 문턱 서명 x 스크립트와 일치합니다.

자금이 협력적으로 사용된다면, 모든 참가자는 그들의 서명들을 Threshold Signature로 결합하고 스크립트로 조정합니다. 그 결과 Threshold Signature x Script은 자금을 지출할 수 있게 합니다. 하지만, 그리고 중요한 것은, 외부 세계에선 이 모든 것은 여전히 일반 공개 키와 일반 서명 일반 거래처럼 보일 것입니다.

협동 폐쇄가 불가능한 경우에만, 문턱 공개 키가 실제로 있는 것처럼 표시될 수 있습니다.

이 경우, 원래의 문턱 공개 키와 스크립트가 모두 공개됩니다. 이것은 threshold 공개 키 x 스크립트이이 특정 스크립트로 조정되었다는 것을 증명합니다. 따라서, P2SH의 해시와 마찬가지로, 트위크는이 스크립트에서 지정된 대안 조건이 충족되면 자금이 지출 가능해야한다는 것을 세계에 증명합니다. (그리고, P2SH와 마찬가지로, 이러한 조건은 물론 즉시 자금을 지출 할 수 있습니다.)

대안적으로, 스크립트로 문턱 공개 키를 조정하는 대신, MAST 구조로 자금을 지출할 수 있는 모든 다른 조건을 포함하는 Merkle 트리의 Merkle 루트로 문턱 공개 키를 조정할 수 있다. 자금을 지출하려면 충족된 지출 조건만 공개해야 한다.

따라서, Taproot는 MAST의 모든 이점을 제공하지만, 정상적인 상황에서는 아무도 정상적인 거래가 재발로 이렇게 복잡한 스마트 계약을 숨기고 있다는 것을 알지 못할 것입니다.

이것은 Taproot 개념의 일반적인 개요입니다. 구현 특성은 다를 수 있습니다. 자세한 내용은 Gregory Maxwell의 원래 Taproot 제안서를 읽거나 Pieter Wuille의 이 발표를 참조하십시오.


더 많은