용어집 / 프로토콜과 업그레이드
MAST
별칭은 Merkelized Alternative Script Tree입니다.
- MAST란 무엇입니까?
- MAST는 사용하지 않는 모든 지출 조건을 머클 트리 뒤에 숨기므로, 지출할 때 가지 하나만 공개하면 나머지는 공개되지 않고 블록체인에 올라가지 않습니다.
BIP-341에 명시되어 있습니다.
이 개념은 실제 배포보다 앞서 나왔습니다. 두 제안인 BIP-114와 BIP-116이 2016년과 2017년에 이를 설명했으나 어느 쪽도 활성화되지 않았습니다. Taproot가 2021년에 이를 taptree로 탑재했는데, 스크립트 경로 지출은 잎 하나와 단계당 32바이트의 증명을 공개합니다. 복구 경로가 여러 개인 지갑이라면, 체인은 실제로 선택한 경로 하나만 알게 됩니다.
작동 방식
스크립트 트리는 하나의 해시로 축약되고, 주소는 바로 그 해시에 커밋합니다.
원하는 조건부터 정합니다. 예를 들어 네 가지를 들어 봅니다. 일상적으로 쓰는 키, 가족 3인 중 2인의 쿼럼, 1년간 사용이 없으면 쓸 수 있는 변호사의 키, 외부에 보관하는 비상용 키입니다. 각 조건은 그 자체로 작은 스크립트로 작성되고, 각각 해시되어 잎이 됩니다. 잎들은 짝지어 해시되고, 그 결과들이 다시 짝지어 해시되며, 이 과정은 32바이트의 루트 하나에서 끝납니다.
지출할 때는 사용한 잎, 그 스크립트, 그리고 그 잎에서 루트로 이어지는 경로상의 형제 해시들을 공개합니다. 트리가 두 단계라면 형제 해시가 두 개, 즉 64바이트이며, 누구나 루트를 다시 계산해 그 스크립트가 커밋되었음을 확인할 수 있습니다. 나머지 세 조건은 전혀 나타나지 않습니다. 변호사의 키가 존재한다는 사실도, 가족 쿼럼이 3인 중 2인이었다는 사실도, 외부 보관 키가 구성의 일부였다는 사실도 누구도 알지 못합니다.
비용은 조건 수의 로그에 따라 늘어나며, 바로 이 점이 이 구조를 쓸 만하게 만듭니다. 스크립트 8개로 이루어진 트리는 위트니스에 해시 3개를 더하고, 스크립트 128개로 이루어진 트리는 7개를 더하며, BIP-341은 깊이 128단계까지 허용하므로 스크립트 경로 지출에 따르는 컨트롤 블록은 최대 4,129바이트입니다.
명칭은 늘 혼란스러웠습니다. MAST는 작성자에 따라 merkelized alternative script tree로도, merkelized abstract syntax tree로도 풀립니다. 두 번째는 BIP-114에서 나왔으며, 그곳에서는 트리가 대안들의 집합이 아니라 하나의 스크립트 조각들을 담고 있었습니다. 실제로는 둘 다 같은 구조를 가리킵니다.
확인할 수 있는 곳
지출 방식이 둘 이상인 모든 Taproot 주소는 지갑이 그 단어를 쓰든 쓰지 않든 MAST를 사용하고 있습니다.
시간 잠금 상속 지갑이 가장 명확한 사례입니다. 예를 들어 Liana는 정상 지출 키와, 정해진 대기 기간이 지나면 사용할 수 있게 되는 복구 가지를 taptree에 담은 주소에 자금을 넣으며, 정상 지출은 복구 가지를 전혀 공개하지 않습니다. 라이트닝 네트워크는 최신 채널 출력에 같은 형태를 사용하여 협력적 채널 종료 중에 처벌 경로를 숨겨 둡니다.
하나를 구성하기 전에 알아 둘 만한 수수료 측면이 있습니다. 균형이 중요합니다. 자주 쓸 것으로 예상하는 잎은 트리 꼭대기 가까이에 두어야 합니다. 추가 단계마다 그 잎을 거치는 모든 지출의 위트니스에 32바이트가 더해지기 때문입니다. 트리 배치를 설정할 수 있게 해 주는 지갑은 보통 이를 대신 처리해 주지만, 모든 조건을 평평하고 균형 잡힌 트리에 몰아넣는 코디네이터 소프트웨어는 흔한 경로가 드문 경로의 비용을 치르게 만듭니다.
MAST vs Taproot
MAST는 트리이고, Taproot는 트리에 비상 출구를 더한 것입니다. 순수한 MAST 설계라면 모든 지출이 어떤 스크립트를 공개해야 하므로, 사용하지 않은 가지에 대해 아무것도 알지 못하더라도 체인은 계약이 존재했다는 사실을 늘 알게 됩니다.
Taproot는 루트에 키를 더합니다. 주소는 머클 루트로 조정(tweak)된 내부 공개 키에 커밋하며, 관련된 모두가 동의하면 조정된 키로 서명하고 서명 하나 외에는 아무것도 공개하지 않습니다. 그 지출은 한 사람의 결제와 구별되지 않습니다. 트리는 여전히 존재하고 여전히 강제 가능하며, 다만 결코 드러나지 않습니다. MAST는 가지 사이의 프라이버시를 제공하고, Taproot는 계약과 일반 결제 사이의 프라이버시를 제공합니다.