비트코인 사용자들은 곧 “탭루트”라는 기술의 혜택을 누릴 수 있을 것입니다. 비트코인 코어 기여자이자 전 블록스트림 CTO인 그레고리 맥스웰이 처음 제안한 탭루트는 비트코인의 스마트 계약 유연성을 확장하고, 이를 통해 더 많은 프라이버시를 제공합니다. 가장 복잡한 스마트 계약조차 블록체인에서는 일반 거래와 구별할 수 없게 됩니다.
큰 작업이지만, 이는 단순한 이론이 아닙니다. 피터 윌레, 앤서니 타운스, 존슨 라우, 요나스 닉, 앤드류 풀스트라, 팀 러핑, 러스티 러셀, 그리고 물론 그레고리 맥스웰을 포함한 여러 비트코인 코어 기여자들이 탭루트를 포함하는 슈너 서명 제안 작업을 진행 중입니다. 모든 것이 하나의 프로토콜 업그레이드로 이루어집니다.
탭루트가 무엇인지, 어떻게 작동하는지 살펴보겠습니다.
P2SH
모든 비트코인은 본질적으로 스크립트에 “잠겨” 있습니다: 블록체인에 포함된 거래에 내장된 몇 줄의 코드로, 다음 거래에서 코인을 어떻게 사용할 수 있는지를 정의합니다. 사용 조건은 일반적으로 코인의 소유권을 증명하기 위해 서명을 제공하는 것을 포함합니다. 그러나 타임락(특정 블록 높이나 날짜 이후에만 코인을 사용할 수 있음)이나 멀티시그(일정 수의 개인 키가 서명을 제공해야만 코인을 사용할 수 있음)와 같은 잘 알려진 다른 조건도 있습니다.
다양한 조건을 혼합하여 복잡한 유형의 스마트 계약을 만들 수 있습니다. 이러한 계약의 예로는 앨리스와 밥이 모두 서명해야 코인을 사용할 수 있거나, 앨리스가 일주일 후에 혼자 서명해야 하거나, 밥이 혼자 서명하면서 비밀 번호를 제공해야 하는 경우가 있습니다. 이 세 가지 조건 중 어느 것이 먼저 충족되든 코인이 사용됩니다.
2012년 이후로, 스크립트(조건)는 처음에는 공개적으로 보이지 않는 경우가 많습니다; 오직 코인의 새로운 소유자만이 코인을 어떻게 사용할 수 있는지 알고 있습니다. 이는 P2SH(스크립트 해시로 지불)라는 트릭을 사용하여 처음에는 스크립트의 해시만 블록체인에 포함됩니다. 이 무작위로 섞인 숫자가 코인을 보유합니다. 소유자가 코인을 사용할 때, 그는 전체 스크립트와 동시에 스크립트에 대한 “해결책”을 공개합니다. 그러면 누구나 초기 해시를 사용하여 제공된 스크립트가 실제로 코인을 잠그고 있는 원래 스크립트였음을 확인할 수 있으며, 즉시 스크립트의 요구 사항이 충족되었다고 결론지을 수 있습니다.
그럼에도 불구하고 코인이 사용될 때, 현재로서는 충족되지 않은 조건을 포함하여 모든 가능한 조건을 공개해야 합니다. 이는 두 가지 주요 단점이 있습니다. 첫째, 데이터가 많아지며, 특히 조건이 많을 경우 더욱 그렇습니다. 둘째, 프라이버시가 나쁩니다. 모든 사람은 자금이 사용될 수 있었던 다양한 방법을 알게 되며, 이는 예를 들어 어떤 종류의 지갑이 사용되었는지를 드러낼 수 있습니다.
MAST
MAST(머클화된 추상 구문 트리)는 이러한 두 가지 단점을 해결하기 위해 제안된 솔루션입니다. 간단히 말해, 자금을 사용할 수 있는 다양한 조건이 개별적으로 해시되어(하나의 해시로 결합되는 것이 아니라) 머클 트리에 포함되며, 궁극적으로 하나의 해시인 머클 루트를 생성합니다. 이 머클 루트는 코인을 “잠급니다.”
독특한 이점은 머클 트리의 데이터 중 어떤 것이 공개되더라도 머클 루트와 추가 데이터(머클 경로라고 함)를 사용하여 해당 특정 데이터가 머클 트리에 포함되었음을 검증할 수 있다는 것입니다. 나머지 머클 트리는 해시된 상태로 숨겨져 있습니다.
MAST를 사용하면 충족된 조건만 공개하면 됩니다. 위의 초기 예에서 앨리스가 일주일 후에 자금을 혼자 사용한다면, 그녀는 그 조건(및 머클 경로)만 공개합니다. 아무도 돈이 앨리스와 밥이 함께 사용될 수 있었거나, 밥이 비밀 번호를 추가했을 경우 혼자 사용될 수 있었음을 알지 못합니다. 이는 MAST가 복잡한 P2SH 스마트 계약보다 데이터 효율성이 더 높고 프라이버시를 추가하는 이유입니다.
그러나 슈너와 함께 탭루트는 더 나은 성능을 발휘할 수 있습니다: 거래는 MAST 구조가 존재했음을 숨길 수 있습니다.
슈너
슈너 서명 방식은 오랫동안 많은 비트코인 개발자들의 소망 목록에 있었으며, 현재 소프트 포크 프로토콜 업그레이드로 배포될 개발 중입니다. 많은 암호학자들은 슈너 서명 방식을 이 분야에서 가장 뛰어난 것으로 간주하며, 그 수학적 특성은 강력한 정확성을 제공하고, 변조에 영향을 받지 않으며, 비교적 빠르게 검증됩니다.
비트코인 맥락에서 가장 잘 알려진 이점으로는 슈너의 “선형 수학”이 서명 집합을 가능하게 한다는 것입니다: 같은 거래 내 여러 서명을 하나로 결합할 수 있습니다. 유사한 트릭을 멀티시그 거래에 적용할 수 있습니다. 공개 키와 서명을 “임계 공개 키”와 “임계 서명”으로 결합하면, 멀티시그 거래는 일반 거래와 구별할 수 없게 됩니다.
서명 방식은 더 흥미로운 방식으로도 사용될 수 있습니다. 예를 들어, 데이터를 사용하여 개인 키와 공개 키를 “조정”하는 것이 가능합니다. 간단한 예로, 개인 키와 해당 공개 키를 모두 두 배로 곱하여 조정할 수 있습니다. “개인 키 x 2”와 “공개 키 x 2”는 여전히 일치하며, “개인 키 x 2”는 여전히 “공개 키 x 2”로 검증할 수 있는 메시지에 서명할 수 있습니다. 원래 키 쌍이 조정되었다는 사실을 모르는 사람은 아무런 차이를 느끼지 못할 것입니다; 조정된 키는 다른 키 쌍처럼 보입니다.
이것이 탭루트를 가능하게 합니다.
탭루트
탭루트는 흥미로운 인식에 기반합니다: 아무리 복잡하더라도 거의 모든 MAST 구조는 모든 참가자가 결과에 동의하고 단순히 정산 거래에 서명할 수 있는 조건을 포함할 수 있습니다. 이전 예에서 밥이 앨리스가 다음 주에 혼자 모든 자금을 청구할 수 있다는 것을 안다면, 그는 지금 그녀와 협력하여 함께 서명하는 것이 좋습니다. (많은 전형적인 스마트 계약 설정에서는 그렇게 하지 않으면 그가 처벌받을 수 있습니다. 복잡성은 사실상 모든 사람을 정직하게 유지하는 데 도움이 됩니다.)
탭루트는 MAST와 유사하며 항상 모든 참가자가 자금을 사용할 수 있도록 협력할 수 있는 조건인 “협력적 종료”를 포함합니다.
슈너 서명을 활용함으로써, 여기서 흥미로운 점이 발생합니다.
우선, 협력적 종료는 슈너의 임계값 트릭을 활용하여 일반 거래처럼 보이게 합니다. 따라서 모든 참가자의 공개 키가 함께 추가되어 “임계 공개 키”가 생성됩니다. 이 임계 공개 키에 해당하는 모든 참가자의 서명의 조합인 “임계 서명”은 그들이 자금을 사용할 수 있게 합니다.
지금까지는 좋지만, 자금을 일반 거래처럼 사용하는 것만 할 수 있습니다 — 아직 MAST와 같은 구조는 없습니다. 여기서 다른 슈너 트릭이 등장합니다.
자금을 사용할 수 있는 모든 대안적인 방법 — 비협력적 결과 — 는 이번에는 다른 스크립트로 결합됩니다. 이 스크립트는 해시되어 임계 공개 키를 조정하는 데 사용됩니다. 이전 예에서 사용된 “공개 키 x 2” 대신, 이는 “임계 공개 키 x 스크립트”를 생성합니다. (여전히 단순화하고 있습니다.) 이 “임계 공개 키 x 스크립트”는 물론 “임계 서명 x 스크립트”에 해당합니다.
이제 자금이 협력적으로 사용되면, 모든 참가자가 서명을 “임계 서명”으로 결합하고 스크립트로 조정합니다. 결과적으로 생성된 “임계 서명 x 스크립트”는 그들이 자금을 사용할 수 있게 합니다. 그러나 중요하게도, 외부 세계에는 모든 것이 여전히 일반 공개 키와 일반 서명처럼 보입니다 — 일반 거래입니다.
협력적 종료가 불가능하다는 것이 입증되면, 임계 공개 키는 실제로 무엇인지 드러낼 수 있습니다: 조정되었습니다.
이 경우, 원래 임계 공개 키와 스크립트가 공개됩니다. 이는 “임계 공개 키 x 스크립트”가 이 특정 스크립트로 조정되었음을 증명합니다. 따라서 P2SH의 해시와 마찬가지로, 조정은 세계에 자금이 이 스크립트에 명시된 대체 조건이 충족되면 사용 가능해야 함을 증명합니다. (그리고 P2SH와 마찬가지로, 이러한 조건은 물론 자금을 사용하기 위해 즉시 충족됩니다.)
대안적으로, 스크립트로 임계 공개 키를 조정하는 대신, 임계 공개 키는 자금을 사용할 수 있는 다양한 조건을 포함하는 머클 트리의 머클 루트로 조정될 수 있습니다: MAST 구조입니다. 그러면 자금을 사용하기 위해서는 충족된 사용 조건만 공개하면 됩니다.
따라서 탭루트는 MAST의 모든 이점을 제공하며, 일반적인 상황에서는 아무도 일반 거래가 이러한 복잡한 스마트 계약을 숨기고 있었다는 것을 알지 못할 것입니다.
이것은 탭루트 개념의 일반적인 개요입니다; 구현 세부 사항은 다를 수 있습니다. 더 자세한 내용은그레고리 맥스웰의 원래 탭루트 제안서를 읽거나피터 윌레의 이 프레젠테이션을 시청하세요.