153 / 736VAULT

Bitcoin Vault

자금을 구할 시간을 남기는 출금

키를 도둑맞아도 저축을 즉시 전부 빼앗기지 않는다면 어떨까요? Bitcoin Vault는 출금 시작과 완료 사이에 대응할 시간을 둡니다. 다만 누가 이 경로를 우회할 수 있고, 누가 제때 움직이느냐가 중요합니다.

Bitcoin Vault는 일반 출금이 대기 단계를 거치고, 그동안 미리 정한 복구 경로로 자금을 돌릴 수 있도록 하는 보관 방식입니다. 키 도난에 소유자가 대응할 시간을 확보하는 것이 목적입니다. 설계는 서로 다르므로 앱에 vault라고 적혀 있다는 사실만으로 보호가 보장되지는 않습니다.

안나는 저축의 일부를 비트코인으로 보관합니다. 지갑은 비트코인을 받고 보내는 앱이나 기기입니다. 여기서 서명은 비밀 숫자 값인 개인 키로 결제를 승인했다는 검증 가능한 증거를 만드는 작업입니다. 다른 사람은 그 비밀 값을 몰라도 서명을 확인할 수 있습니다. 하나의 키로 통제하는 일반 지갑에서는 도둑이 그 키를 얻으면 곧바로 자신의 주소로 보내는 결제에 서명할 수 있습니다. Bitcoin Vault는 이 순간을 바꾸려 합니다. 일상적인 출금 키는 절차만 시작하고, 안나에게는 자금을 구할 기회가 남습니다. 대기 시간과 비상 이동 경로가 있는 금고를 떠올리면 됩니다. 하지만 이 비유는 네트워크의 지출 조건이 실제로 제한을 강제할 때만 맞습니다. 앱의 타이머로는 부족합니다. 서명 키를 보호하는 장치인 Hardware Wallet도 자동으로 vault가 되지는 않습니다. 보안의 다른 부분을 담당하기 때문입니다. [1] [6]

거래 출력에는 금액과 나중에 그 금액을 쓰기 위해 충족해야 할 조건이 담깁니다. Bitcoin은 지출할 수 있는 거래 출력을 UTXO로 기록합니다. 블록은 공동 기록에 추가하는 거래 묶음입니다. 단순한 모델에서는 첫 거래가 보관된 출력을 지출하고 대기 조건이 있는 새 출력을 만듭니다. 이 첫 단계를 unvault라고 부릅니다. 최종 결제는 나중에 가능해지고, 복구 분기는 그 전에 개입할 수 있게 합니다. 중간 출력이 블록 H에서 확인되고 지연이 144블록이라면, 일반 경로는 다른 조건까지 충족했을 때 가장 빨라도 H+144에서 사용할 수 있습니다. 블록이 시간표대로 생성되지 않으므로 정확히 24시간이라는 뜻은 아닙니다. 끝난 결제를 되돌리는 것도 아닙니다. 구조 거래는 최종 지출보다 먼저 확인되어야 합니다. [1] [5] [7]

안나는 요청하지 않은 출금을 발견했습니다. 이제 작동 중인 네트워크 감시, 유효한 구조 거래, 수수료를 낼 수단이 필요합니다. Mempool은 미확인 거래를 보관하는 곳으로, 여기에 들어가는 것만으로는 충분하지 않습니다. 혼잡이나 pinning, 즉 공격자가 거래의 교체나 확인을 어렵게 만드는 행위가 대응을 늦출 수 있습니다. Revault는 CPFP를 고려합니다. 후속 거래에 수수료를 더해 채굴자가 두 거래를 함께 확인하도록 유도하는 방식입니다. 일부 구조 거래는 수수료를 낼 다른 미사용 금액을 가리키는 입력을 추가할 수 있는 서명 방식 ALL | ANYONECANPAY를 사용합니다. 이는 특정 설계의 도구일 뿐 제때 확인된다는 보장은 아닙니다. 명세의 과거 수수료도 현재 권장값은 아닙니다. [1] [4]

보호용 이체로 도둑을 막아도 안나에게 다른 문제가 남을 수 있습니다. 목적지 지갑을 나중에 실제로 사용할 수 있어야 합니다. 주소를 아는 것만으로는 부족합니다. 필요한 키와 조건 설명, 경우에 따라 미리 준비한 거래가 있어야 합니다. 보호 이체를 시작할 권한과 목적지에서 지출할 권한도 다릅니다. 감시자는 앞의 권한만 받을 수 있습니다. 다만 복구 경로를 너무 쉽게 실행할 수 있으면 누군가 정상 출금을 반복해서 방해할 수도 있습니다. 따라서 좋은 설계는 도난뿐 아니라 접근 복구와 보호 장치 자체의 악용까지 고려합니다. [1] [4]

일부 vault는 현재 규칙과 사전 서명 거래를 사용합니다. 설정할 때 필요한 서명을 만들고, 이후 보안을 일회용 키 삭제나 다른 경로를 거부하는 독립된 공동 서명자에게 의존시키는 방식입니다. 네트워크는 누군가 키의 모든 사본을 정말 지웠는지 확인할 수 없습니다. 숨겨 둔 사본이 보호를 우회할 수 있습니다. 백업에도 지갑 키를 도출하는 단어인 Seed Phrase 이상의 자료가 필요할 수 있습니다. 이미 삭제한 일회용 키의 서명을 잃었다면 그 단어로 다시 만들 수 있다는 보장이 없습니다. 사전 서명 거래와 관련 데이터는 복구에 필수적인 자료가 될 수 있습니다. [1] [4]

Revault에서는 누가 키를 갖고 있는지가 질문의 시작일 뿐입니다. Stakeholders가 주요 권한을 갖고, managers가 일상 출금을 관리하며, cosigning servers가 함께 서명합니다. 예치 출력에는 N-of-N, 즉 지정된 stakeholders 전원의 서명이 필요합니다. 여러 키로 공동 승인하는 Multisig입니다. 중간 출력은 stakeholders 경로로 지출하거나, X블록 후 managers와 서버가 함께 지출할 수 있습니다. Cancel은 원래 예치 조건으로 되돌리고, 비상 이체는 Emergency Deep Vault로 보냅니다. Stakeholders에게는 직접 이동하는 bypass 경로도 있습니다. 모든 키를 얻은 사람은 기다릴 필요가 없습니다. 이는 한 명세의 설계이지 모든 vault의 공통 설명은 아닙니다. [4]

BIP는 Bitcoin 제안이나 표준을 설명하는 문서입니다. 번호가 있다고 활성화된 것은 아닙니다. 확인일인 2026년10월17일 기준 BIP 345는 Closed이며 Proposed-Replacement에 BIP 443을 명시합니다. 원래 제안은 OP_VAULT와 OP_VAULT_RECOVER를 OP_CHECKTEMPLATEVERIFY와 결합해 출금 경로를 제한했습니다. BIP 443은 더 일반적인 OP_CHECKCONTRACTVERIFY, 줄여서 OP_CCV를 제안하며 여전히 Draft입니다. 활성화 방식은 정해지지 않았습니다. OP_CHECKTEMPLATEVERIFY에 관한 BIP 119도 Draft입니다. 이들은 출력의 이후 사용을 제한하는 Covenants 논의의 일부입니다. 공개 코드나 시연만으로 mainnet, 즉 Bitcoin 주 네트워크가 그 보호를 강제한다고 볼 수는 없습니다. [1] [2] [3]

안나가 저축을 맡기기 전에는 정상 출금, 구조, 모든 bypass 경로를 이해해야 합니다. 실습은 별도의 테스트 환경에서 해야 합니다. 정상 출금, 기한 전 시도, 예상하지 못한 unvault, 감시 중단, 수수료 자금 부족을 시험합니다. 유효한 서명, mempool 수락, 블록 확인은 서로 다릅니다. 한 번의 성공적인 시연이 다른 분기까지 검증하지는 않습니다. 초보자가 알아둘 핵심은 vault가 대응 시간을 늘리는 대신 누군가가 확실하게 수행해야 할 일도 늘린다는 점입니다. 이 글은 실험적인 스크립트에 실제 돈을 넣는 절차를 안내하지 않습니다. [1] [4]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Covenants, OP_CHECKTEMPLATEVERIFY, Timelock, Multisig, Bitcoin Inheritance Plan, 자기 수탁. 다음 항목에서도 이 글을 참조합니다 Dead Man’s Switch.

DOC · 001BIP 345 — OP_VAULT명세 DOC · 002BIP 443 — OP_CHECKCONTRACTVERIFY명세 DOC · 003BIP 119 — CHECKTEMPLATEVERIFY명세 DOC · 004Revault — Transaction specification명세 DOC · 005BIP 112 — CHECKSEQUENCEVERIFY명세 DOC · 006Bitcoin Developer Guide — Wallets문서 DOC · 007Bitcoin Developer Guide — Block Chain문서
개정일: 1차 출처 우선 · 투자 조언이 아닙니다