미니스크립트 타임락 지갑의 장단점 이해

이 기사는 기계로 번역되었습니다
원문 표시

Tom Honzik 지음

출처: https://www.unchained.com/blog/examining-the-tradeoffs-of-miniscript-timelock-wallets

타임락월렛미니스크립트

다양한 비트코인 ​​지갑 소프트웨어와 수탁 서비스들이 시간 기반 보안 모델과 복구 옵션을 모색하기 시작했습니다. 이러한 제품들은 작동 방식을 이해하고 비트코인 ​​자산을 보호하는 데 적합한 옵션인지 확인하고자 하는 일부 비트코인 ​​보유자들의 관심을 불러일으켰습니다.

이 글에서는 이러한 커스터디언의 설계 목표를 설명하고, 이를 가능하게 하는 기반 기술인 타임락(Timelock)과 미니스크립트(Miniscript)를 소개합니다. 몇 가지 실제 사례를 살펴보고 이러한 지갑의 장단점을 논의하여, 지갑 사용 여부에 대한 현명한 결정을 내리는 데 도움을 드리겠습니다.

"타임락 지갑"이란 무엇인가요?

이 글에서 "타임락 지갑"이라는 용어는 보안 모델의 일부로 타임락을 사용하는 비트코인 ​​지갑 주소 를 의미합니다. 타임락 지갑은 "경험 기반 복구 키", "지연된 키 상속", "고급 미니스크립트 보안" 또는 이와 유사한 조합을 제공하는 등 다양한 용어로 마케팅될 수 있습니다.

타임락은 비트코인 ​​사용에 필요한 조건을 결정하는 데 시간을 중요한 요소로 만듭니다. 간단한 예로, 특정 날짜나 시간 이전에는 비트코인이 사용되지 못하도록 하는 주소(혹은 블록체인에서 특정 블록 높이 이전에는 자금이 사용되지 못하도록 하는 주소)가 있습니다.

더욱 발전된 예로는 기본 지출 경로와 일정 시간이 지나야 사용 가능한 대체 지출 경로가 함께 설계된 주소가 있습니다. 이러한 구조는 키 분실이나 기기 손상으로 인해 기본 지출 경로를 사용할 수 없게 될 때 유용합니다. 주소와 자금 소유자는 대체 지출 경로가 사용 가능해질 때까지 기다려 자금을 회수할 수 있습니다. 이러한 복구 경로는 더욱 까다로운 지출 요건을 갖도록 설계되거나 완전히 다른 개인 키를 요구할 수 있습니다. 이러한 유형의 복구 메커니즘에 대한 관심은 비트코인 ​​커스터디 시장에서 시간 잠금 지갑의 등장을 촉진하는 주요 요인이었습니다.

타임락 지갑은 어떻게 작동하나요?

타임락 지갑은 두 가지 주요 도구를 사용하여 구현됩니다. 첫 번째는 비트코인 ​​프로토콜의 타임락 기능 자체로, 구현 방식과 제약이 다릅니다. 두 번째는 더욱 발전된 개발 도구인 미니스크립트(Miniscript)로 , 여러 지출 경로와 같은 복잡한 지출 조건을 더욱 안전하게 생성할 수 있는 방법을 제공합니다. 이러한 지출 조건은 비트코인 ​​주소의 전신입니다. 이러한 기술들을 자세히 살펴보겠습니다.

시간 잠금 기능

비트코인 주소에 타임락을 추가하는 방법은 두 가지가 있습니다. 하나는 "CLTV"(CheckLockTimeVerify)로, 절대 타임락을 생성합니다. 즉, 타임락이 미리 지정된 시간에 만료(해제)됩니다. 비트코인이 해당 주소에 입력되는 시간은 타임락의 잠금 해제 시간에 영향을 미치지 않습니다. 이 방식은 타임락이 있는 느슨한 복구 경로를 사용하는 지갑에 문제를 야기합니다. 미리 정해진 시간에 가까워지거나 시간이 지나면 지갑의 보안 모델이 완전히 변경되기 때문입니다. 새로운 입금에 대해 먼 미래에만 유효한 복구 경로를 적용하려면, 다른 절대 타임락을 사용하기 위해 완전히 새로운 지갑(지갑 구성이 다른 새로운 주소 세트)으로 주기적으로 마이그레이션해야 합니다.

또 다른 접근 방식인 "CSV(Check Sequence Verify)"는 상대적인 시간 잠금(timelock)을 설정합니다. 즉, 각 결제가 해당 주소에 입력되는 순간부터 카운트다운이 시작됩니다. 결과적으로 지갑에 있는 각 UTXO는 서로 다른 시간 잠금 만료일을 갖습니다. 이는 시간 기반 복구 메커니즘을 사용하는 지갑에 더 적합한 접근 방식입니다. 지갑의 보안 모델은 시간이 지나도 변하지 않기 때문입니다. 완전히 새로운 지갑을 만들고 백업할 필요 없이, 이전 주소에서 동일한 지갑의 새 주소로 비트코인을 이체하는 것만으로 카운트다운을 재설정할 수 있습니다.

잠금 시간 진단

- 절대 시간 잠금을 사용하는 주소와 상대 시간 잠금을 사용하는 주소를 비교하는 시각적 예시입니다. 지갑 생성 시 두 시간 잠금 모두 12개월로 설정되어 있습니다. 절대 시간 잠금을 사용하는 지갑에서는 서로 다른 주소의 시간 잠금이 동시에 만료되는 반면, 상대 시간 잠금을 사용하는 지갑에서는 각 입금에 대해 별도의 카운트다운(기간은 동일)이 적용됩니다. -

CLTV와 CSV의 또 다른 주요 차이점은 잠금 시간 범위입니다. CLTV는 비트코인을 수 세기 동안 잠그는 데 사용될 수 있으므로, 잠금 시간에 문제가 발생할 경우 치명적인 결과를 초래할 수 있습니다. 그러나 CSV의 최대 잠금 시간은 65,535 블록(약 15개월) 또는 65,535 * 512초(약 13개월)로 제한됩니다. CSV는 대부분의 경우 지갑 잠금에 사용되는 방식이기 때문에 이러한 제한은 매우 중요합니다.

미니스크립트

비트코인의 합의 규칙은 " 스크립트 "라는 간단한 스택 기반 프로그래밍 언어를 사용하여 비트코인 ​​사용 조건을 프로그래밍합니다. 그러나 스크립트는 표준 단일 및 다중 서명 지갑에서 제공하는 것보다 더 복잡한 사용 조건을 개발하려는 사용자에게는 사용하기 어려울 수 있습니다. 여러 조건부 사용 경로를 사용하는 스크립트를 결합, 검증 및 해석하는 것은 안전하고 효율적으로 구현하기 어려울 수 있습니다. 이것이 바로 BIP379 미니스크립트의 탄생 이유입니다.

Miniscript는 스크립트를 더욱 효율적으로 표현하는 방식을 사용하여 복잡한 지출 요건을 더욱 안전하게 결합하고 분석할 수 있도록 합니다. 현재의 타임락 지갑은 기술적으로는 스크립트만으로 구현할 수 있지만, Miniscript는 이러한 지갑을 더욱 실용적으로 구현할 수 있는 기반을 마련합니다. 아래는 동일한 지출 조건에 대해 스크립트와 Miniscript 코드를 비교한 예입니다. 결과 형태는 상당히 다르지만, Miniscript 코드가 더 간결합니다.

스크립트:

 <A> OP_CHECKSIG OP_IFDUP OP_NOTIF <B> OP_CHECKSIGVERIFY <50c300> OP_CHECKLOCKTIMEVERIFYOP_ENDIF

미니스크립트:

 or_d(pk(A),and_v(v:pk(B),after(50000)))

(번역자 주: 미니스크립트 도입으로 비트코인의 합의 규칙이 변경될 필요는 없습니다. 사실, 미니스크립트는 스크립트의 표현력의 일부일 뿐입니다. 미니스크립트는 단순히 스크립트 조각을 사용하기 위한 특정 구조를 사용하여 미니스크립트 수준에서 코드를 결합, 분석 및 검증할 수 있도록 합니다. 다시 말해, 비트코인 ​​자체는 변경되지 않습니다(지출 조건의 실제 표현은 여전히 ​​스크립트 코드입니다). 단지 개발자의 프로그래밍 환경만 변경합니다.)

타임락 지갑 케이스

타임락 지갑의 기본 원리와 구성 방식을 살펴보았으니, 이제 타임락 지갑의 활용 방안을 살펴보겠습니다. 타임락 지갑은 사용자 정의가 가능하지만, 일반적으로 기본 지출 경로(종종 다중 서명 메커니즘)와 타임락으로 제한되는 복구 지출 경로를 갖습니다. 복구 경로에는 감소형 다중 서명, 확장형 다중 서명, 그리고 대체 키가 있습니다.

다중 서명 감소

다중 서명 감소는 시간이 지남에 따라 잠금 해제되는 다중 서명 지갑 의 지출 경로를 더욱 자유롭게 만드는 방법입니다. k-of-n 다중 서명이 주어졌을 때, 다중 서명을 감소시키면 시간이 지남에 따라 "k"가 감소하여 출금 승인에 필요한 키 수가 줄어듭니다. 예를 들어, 3-of-3 다중 서명으로 관리되는 비트코인 ​​지갑을 설정했지만, 해당 주소에 있는 비트코인이 한동안 이동하지 않았다면 2-of-3 다중 서명으로 줄일 수 있습니다. 이는 키 분실 시 유용할 수 있습니다.

확장된 다중 서명

확장 다중 서명은 시간 잠금 복구 경로를 구성하는 또 다른 방법입니다. k-of-n 다중 서명 체계가 주어지면, 확장 다중 서명은 시간이 지남에 따라 "n" 값을 점진적으로 증가시켜 추가적인 공개 키가 비트코인 ​​출금에 유효한 서명을 제공할 수 있도록 합니다. 예를 들어, 2-of-2 다중 서명 체계를 설정한 후 일정 시간 동안 활동이 없으면 2-of-3 다중 서명 체계를 활성화하여 비트코인을 출금할 수 있습니다. 원래 두 키 중 하나가 손실되면 추가 키가 비트코인에 대한 최신 접근 권한을 제공합니다.

대체 키

복구 경로는 완전히 다른 키를 사용하여 기본 지출 경로와 더욱 차별화될 수 있습니다. 예를 들어, 처음에는 공개 키 A, B, C로 구성된 2/3 다중 서명 설정을 생성했지만, 시간 잠금이 만료된 후에는 공개 키 D, E, F로 구성된 다중 서명 설정을 사용하여 자금을 지출할 수 있습니다. 또한, 복구 키에는 공개 키 D만 필요하거나 원하는 다른 구조가 필요할 수 있습니다. 이러한 접근 방식은 상속 계획에 유용할 수 있습니다. 집행자 키는 시간 잠금이 만료된 후에야 사용할 수 있기 때문입니다.

시간 잠금 지갑에 대한 우려

언뜻 보기에 시간 잠금 만료 시 복구 메커니즘을 활성화하는 것은 매우 매력적입니다. 하지만 즉시 드러나지는 않지만 고려해 볼 만한 몇 가지 단점이 있습니다.

예를 들어, 타임락 지갑을 한 소프트웨어에서 다른 소프트웨어로 이전하는 데에는 선택 사항이 매우 제한적이어서 지갑 복구가 전반적으로 더 어려울 수 있습니다. 타임락 지갑 사용자는 거래 규모가 크고, 수수료 조건이 불리한 상황에서 비트코인을 이동할 가능성이 높아 상당히 높은 거래 수수료를 부담할 수도 있습니다. 비트코인을 정기적으로 이체하고 타임락을 갱신해야 하는 부담은 키 관리에 어려움을 초래할 수 있습니다. 비트코인을 이동하지 않으면 보안이 손상될 수 있으므로 반드시 기억해야 합니다. 아래에서 이러한 문제에 대해 더 자세히 살펴보겠습니다.

제한된 지갑 마이그레이션 옵션

비트코인 커스터디 생태계에는 일반적인 단일 서명 및 다중 서명 지갑이 널리 사용됩니다. 수십 개의 유명 지갑 소프트웨어 프로그램이 이러한 표준화된 지갑 유형을 지원하고 상호 운용성이 뛰어나 사용자가 한 프로그램에서 다른 프로그램으로 쉽게 마이그레이션할 수 있습니다. 즉, 지갑 소프트웨어 인터페이스(비트코인 잔액 확인하고 관리하는 인터페이스)에 문제가 발생하면 지갑 구성 정보 ( 중국어 )를 다른 인터페이스로 가져오기만 하면 문제를 해결하고 비트코인을 계속 사용할 수 있습니다.

한편, 타임락 지갑은 더 복잡한 지갑 구성 정보(일반적으로 설명자 형식으로 표현됨)를 가지고 있으며, 여기에는 타임락 및 다양한 지출 경로에 대한 미니스크립트 세부 정보가 포함됩니다. 이 글을 쓰는 시점을 기준으로 이러한 설명자를 가져오는 기능을 구현한 지갑 소프트웨어는 거의 없습니다. 특정 소프트웨어(또는 협업 서비스)에서 타임락 지갑을 구성했는데 계정에 문제가 발생하면 지갑을 복원하는 소프트웨어 옵션이 제한될 수 있습니다. 비트코인 ​​코어와 같은 옵션도 있지만, 기술 지식이 부족한 사용자에게는 어려울 수 있습니다.

더 신뢰할 수 있는 지갑 소프트웨어가 설명자와 미니스크립트를 채택한다면, 마이그레이션 옵션 부족 문제는 시간이 지남에 따라 덜 중요해질 것입니다. 반면, 고유하고 심도 있게 맞춤 설정된 미니스크립트 지갑(예: 타임락 지갑)을 가져오는 것은 어려울 수 있습니다. 이상적으로는 지갑 소프트웨어가 가져온 지갑의 설계를 이해하고 각 UTXO의 타임락 상태와 같은 유용한 정보를 인터페이스에 표시할 수 있어야 합니다. 이를 위해서는 개발자가 대부분의 인기 지갑 소프트웨어에 상당한 개선 사항을 적용해야 하는데, 현재 이러한 소프트웨어는 이러한 정보를 해석하고 표시하도록 설계되지 않았기 때문입니다.

더 높은 거래 수수료

비트코인 거래 수수료를 결정하는 주요 변수 중 하나는 거래 데이터의 크기입니다. 거래 데이터에는 이체되는 자금에 대한 기본 정보가 포함되어 있지만, 거래가 유효하려면 반드시 충족해야 하는 지출 조건을 설명하는 스크립트도 포함되어야 합니다. 지출 조건이 복잡할수록 스크립트의 크기가 커지므로, 더 많은 거래 데이터와 더 높은 수수료가 요구되는 경향이 있습니다.

여러 지출 경로를 가진 타임락 지갑이 그러한 예 중 하나입니다. 다중 지출 경로 장치와 표준 비트코인 ​​지갑의 차이점을 조사하기 위해 표준 2/3 다중 서명 지갑과 다양한 타임락 지갑(모두 P2WSH 스크립트 유형 사용)을 비교했습니다. 하나의 다중 타임락 지갑은 2/2 다중 서명 아키텍처를 기반으로 설계되었고 15개월 후 2/3 다중 서명 아키텍처로 확장되었습니다. 지갑에서 자금을 인출할 때 추가 입력(추가 UTXO 지출)이 있을 때마다 타임락 지갑의 거래 크기(vB로 측정)가 표준 다중 서명 지갑 거래에 비해 13% 증가하는 것을 발견했습니다. 두 번째 타임락 지갑은 3/3 다중 서명 아키텍처를 기반으로 설계되었고 15개월 후 2/3 다중 서명 아키텍처로 전환되었습니다. 이 지갑의 경우 추가 입력이 있을 때마다 데이터 크기가 38% 증가했습니다.

거래 데이터의 차이는 타임락 지갑 구조의 세부 사항과 높은 상관관계를 가질 가능성이 높습니다(탭루트를 사용하는 지갑은 이러한 거래 데이터 감소로 이득을 볼 것입니다). 이러한 차이는 UTXO 관리 결정, 예를 들어 지갑의 UTXO 최소 단위를 더 높게 설정하는 데 영향을 미칠 수 있습니다. 더 큰 거래량 외에도, 타임락 지갑은 수수료가 높은 환경에서 거래를 시작해야 할 필요성이 더 커질 수 있으며, 이는 곧 논의할 또 다른 문제입니다.

비트코인을 정기적으로 이동하라는 압력

시간 기반 복구 경로를 사용하는 지갑은 이러한 지출 조건이 처음에는 비활성화되었다가 주소에 있는 비트코인이 일정 시간 동안 유휴 상태가 된 후에야 활성화되도록 의도적으로 설계되었습니다. 처음부터 사용 가능한 대체 경로를 제공하기 위한 것이 아닙니다. 복구 경로를 활성화하면 자금 접근성이 향상되어 키 분실 위협에 대처하는 데 매우 유용하지만, 도난 방지 기능도 약화됩니다. 따라서 시간 잠금 지갑 사용자는 실제로 필요할 때까지 복구 경로가 항상 시간 잠금 상태로 유지되도록 해야 합니다.

이 글의 서두에서 언급했듯이, 대부분의 타임락 지갑은 최대 15개월의 타임락을 갖는 CSV를 사용합니다. 따라서 타임락이 만료되지 않도록 하려면 최소 15개월마다 타임락을 재설정해야 합니다. CSV 타임락을 재설정하는 것은 어렵지 않습니다. 동일한 지갑 내의 새 주소로 비트코인을 전송하기만 하면 됩니다. 그러나 이를 위해서는 필요한 개인 키에 접근하고, 보안 저장소에서 해당 키를 제거하고, 전체 지갑 잔액 옮기기 위해 하나 이상의 거래에 서명해야 합니다. 시간적 압박 속에서 이러한 민감한 작업을 수행하는 것은 스트레스가 많고 답답할 수 있습니다. 또한, 개인 정보 보호가 중요한 경우, 개인 정보 를 침해할 수 있는 주소 연결을 피하기 위해 더 자주 트랜잭션을 재설정(각 UTXO를 개별적으로 처리)해야 할 수도 있습니다.

또 다른 중요한 고려 사항은 거래 수수료의 변동성입니다.거래 수수료는 거래 데이터(이전 섹션에서 논의한 대로)뿐만 아니라 수수료 환경, 즉 비트코인을 빠르게 이동시키려는 글로벌 수요에도 따라 달라집니다.이러한 수수료 환경은 비트코인 ​​가격이 크게 변동하는 동안 상당한 변동을 일으킬 수 있습니다.타임락 지갑을 설정하고 14개월마다(15개월 카운트다운 한 달 전) 재설정되도록 예약하면 이 마지막 달에 수수료율이 매우 높을 수 있습니다.이로 인해 불편한 선택이 제시됩니다.추가로 더 높은 수수료( 아마도 낮은 수수료율의 수백 배 )를 지불하거나 수수료율이 낮아질 때까지 기다릴 수 있습니다.기다리고 수수료율이 계속 상승 구석에 몰리게 됩니다.타임락이 만료될 때 지갑의 보안이 약화되도록 두거나 수수료를 충당하기 위해 상당한 양의 비트코인을 지불해야 합니다.

결론: Timelock 지갑이 더 안전한가?

미니스크립트를 활용하는 타임락 지갑은 비트코인 ​​자금의 보안 모델을 더욱 복잡하게 만들 수 있습니다. 몇 가지 기발한 구조를 구현하도록 사용자 정의가 가능하지만, 여기에는 단점이 따릅니다. 거래 수수료, UTXO 관리, 외부 지갑 마이그레이션 옵션 등은 사용자에게 더 큰 어려움을 줄 수 있습니다. 또한, 타임락 지갑의 지속적인 작동 방식은 비트코인 ​​보유액을 수년간 직접 잠그는 많은 표준 다중 서명 지갑 사용자의 보관 전략과도 다릅니다.

타임락은 키 분실 및 도난 리스크 독창적으로 해결하며, 시간이 지남에 따라 제한을 자동으로 해제하여 키 분실 가능성을 줄임으로써 도난으로부터 추가적인 보호를 제공합니다. 이러한 창의적인 복잡성이 타임락의 주요 매력 요소입니다. 그러나 표준 다중 서명 지갑은 이미 분실 및 도난 리스크 에 대한 강력한 솔루션으로 널리 인정받고 있습니다. 키 프록시가 보유한 백업 키를 사용하는 공동 관리형 다중 서명 지갑을 사용하면 확장형 다중 서명 타임락 지갑과 매우 유사한 기능을 제공하지만, 지갑 마이그레이션 및 적시 조치에 대한 우려는 적습니다. 따라서 타임락 지갑이 불필요하게 복잡하다고 보는 데에는 어느 정도 일리가 있습니다.

(위에)

출처
면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
즐겨찾기에 추가
코멘트