
이 시리즈를 따라왔다면, multisig를 지출 규칙으로 보는 그림을 쌓아왔을 것이다: m개의 n 키가 서명하고, 체인이 임계값을 강제하고, 돈이 움직인다. 프로토콜, 파생 경로, Schnorr 집계의 지평선에 대해 얘기했다. 매번 답하던 질문은: 돈이 움직이려면 누가 서명해야 하는가?
이 글은 다른 질문에 관한 것이다: 그 서명자 중 한 명이 영원히 사라지면 어떻게 되는가? Multisig에는 하나의 답이 있다. **소셜 복구(social recovery)**에는 또 다른 답이 있다. 마케팅 용어로는 비슷해 보인다 — 둘 다 "한 명 이상"을 포함한다 — 그러나 다른 문제를 해결한다. 이 글은 나란히 놓고 보는 비교다. 그래서 더 이상 둘을 혼동하지 않게.
TL;DR
- Multisig는 지금 누가 지출할 수 있는가에 답한다. 모든 트랜잭션이 cosigner의 임계값 서명을 필요로 한다. 블록체인 자체가 이를 강제한다.
- 소셜 복구는 내 키를 잃었을 때 누가 다시 들어가도록 도와주는가에 답한다. 지갑은 정상 운영 시 한 명의 서명자(너)를 둔다. 별개의 "가디언" 그룹이 집단적으로 복구 트랜잭션을 승인할 수 있고, 이는 지갑을 새 키에 다시 가리킨다.
- Multisig는 모든 지출에서 활성이다. 소셜 복구는 네가 호출하기 전까지 수동이고 — 호출한다 해도 하는 일은 지출 키를 교체하는 것이지, 너의 지출에 공동 서명하는 것이 아니다.
- 둘 다 너를 접근 상실로부터 보호한다. 오직 multisig만이 공격자가 접근을 얻는 것으로부터 진정으로 보호한다. 정상 지출에 여러 서명을 요구하는 것은 multisig뿐이기 때문이다.
- 둘은 상호 배타적이지 않다. 가장 회복력 있는 실제 셋업은 multisig 지출 규칙을 — 공동 서명 키 중 하나가 분실되었을 때 회전하는 — 소셜 복구 스타일의 방식과 결합한다.
"소셜 복구"가 정말 의미하는 것
소셜 복구, Ethereum 생태계가 유명하게 만든 의미에서는, 스마트 컨트랙트 지갑에서 비롯되었다 — Argent가 초기 개념 증명이었고, Safe와 ERC-4337 생태계가 그것을 주류로 만들었다. 기계적으로: 너의 지갑은 스마트 컨트랙트이고, 정상 운영에서는 한 개의 서명 키로 제어된다. 컨트랙트에는 또한 너가 지갑을 설정할 때 지명한 가디언 정족수에 의해서만 호출 가능한 내장된 recoverWallet(newKey) 함수가 있다.
가디언들은 너의 일상 트랜잭션에 공동 서명하지 않는다. 그들은 너 대신 지출할 수 없다. 그들의 권한은 더 좁다: 만약 네가 어느 날 "내 서명 키를 잃었어, 재설정 도와줘"라고 말한다면, 그들은 집단적으로 복구 트랜잭션에 서명할 수 있고, 이는 지갑의 제어 키를 잃어버린 것에서 새 것으로 바꾼다. 그 후 너는 새 키로 정상 지출에 복귀한다.
전형적 셋업은 5명의 가디언과 복구에 대한 3-of-5 임계값을 가질 수 있다. 3-of-5는 복구 임계값이지 지출 임계값이 아니다. 일상 지출에는 여전히 자신의 키 하나만 필요하다.
소셜 복구의 원죄는 스마트 컨트랙트가 필요하다는 것이다 — 이는 Ethereum과 EVM 체인에서는 (특히 account abstraction / ERC-4337을 통해) 기본적으로 작동하지만, Bitcoin이나 다른 UTXO 체인으로 쉽게 이식되지 않는다는 의미다. Bitcoin의 가장 가까운 유사물은 cosigner 중 하나가 너 자신의 기기가 아니라 "복구 서비스나 신뢰할 만한 사람"인 multisig다. 구조적으로 유사하지만 개념적으로는 다르다 — 신뢰할 만한 사람은 Bitcoin 버전에서 복구뿐 아니라 모든 지출에 서명하고 있다.
메커니즘: 각각이 "키를 잃었다"를 어떻게 다루는가
최악의 경우를 구체적으로 상상해 보라: 너는 폰을 바다에 빠뜨렸고, 그 폰의 seed 종이는 너의 지갑 안에 있었으며 (역시 바다에), 잃어버린 키의 작동하는 백업이 없다.
2-of-2 multisig 하에서(SSP 기본값): 지갑은 얼어붙는다. 모든 지출에 두 서명이 요구되고, 너에게는 하나의 서명자만 남았다. 이를 구할 스마트 컨트랙트 트릭은 없다; 체인 위의 지출 규칙은 2-of-2, 끝이다. 너의 복구 경로는 두 번째 seed다 — self-custody 체크리스트가 이 정확한 시나리오를 위해 두 seed 모두를 짐을 진 것으로 만든다.
2-of-3 multisig 하에서(선택기 글의 단독 사용자용 이중화 셋업): 지갑은 여전히 작동한다. 너는 세 키 중 두 개를 가지고 있다; 체인은 그것을 유효한 정족수로 받아들인다. 너는 지출할 수 있고, 새로운 세 번째 키를 가진 새 2-of-3 지갑으로 자금을 옮길 수 있고, 잃어버린 옛 키는 무관해진다.
소셜 복구 지갑 하에서: 지갑은 역시 작동한다, 그러나 다른 경로를 통해. 너는 서명 키의 정족수를 가지지 않는다 — 너는 한 개의 서명 키(잃어버린 것)를 가지고 있다. 대신, 너는 가디언들에게 연락해 복구 트랜잭션에 서명해 달라고 요청한다. 그들의 임계값이 승인한 후, 지갑은 너가 제어하는 새 지출 키에 다시 묶인다. 그 다음 너는 한 키 지출로 돌아간다.
두 복구는 표면적으로 비슷해 보인다 — "신뢰할 만한 당사자들의 정족수에게 나를 위해 보증해 달라고 요청한다" — 그러나 그들은 다른 일을 하고 있다. Multisig 복구는 항상 그곳에 있던 기존 정족수를 사용한다. 소셜 복구는 정확히 이 경우를 다루기 위해서만 존재하는 잠재된 정족수를 활성화한다.
그들은 무엇을 방어하는가 (그리고 무엇을 방어하지 않는가)
두 아키텍처 모두 접근 상실을 방어한다: 키를 잃으면 너는 복구할 수 있다.
그들이 날카롭게 갈라지는 곳은 무단 지출에 대한 보호다.
Multisig는 어떤 단일 키 도난에 대해서도 방어한다. 만약 공격자가 너의 노트북을 피싱하고, 핫 월렛을 비우고, 또는 너의 하드웨어 기기를 훔친다면 — 그는 n 키 중 하나를 가지고 있고 돈을 움직일 수 없다. 완전한 지출 임계값이 충족되지 않는다. 이전 시리즈의 일곱 가지 실패 모드 글은 이것이 실제로 얼마나 자주 중요한지 묘사한다: 단일 키 손상은 리테일 self-custody에서의 지배적 공격 벡터이고, multisig가 답이다.
소셜 복구는 단일 키 도난을 전혀 방어하지 않는다. 표준 소셜 복구 모델에서 너의 하나의 서명 키가 모든 트랜잭션에 서명한다. 만약 그 키가 손상되면, 공격자는 즉시 너의 지갑을 비운다 — 그리고 소셜 복구 프로세스는 도움이 되지 않는다. 가디언들이 개입할 수 있기 전에 자금이 이미 사라져 있기 때문이다. 복구는 상실을 위한 도구이지, 도난을 위한 도구가 아니다.
너는 그것들을 층으로 쌓을 수 있다: 스마트 컨트랙트 지갑은 multisig 지출 규칙 그리고 소셜 복구 회전 메커니즘을 둘 다 구현할 수 있다. 현대 ERC-4337 스택(프로토콜 맥락은 account abstraction 설명을 보라)이 이를 조합 가능하게 만든다. 그러나 순수 소셜 복구 그 자체는 복구 이야기이지, 보안 이야기가 아니다.
실용적 비교
| 속성 | Multisig (2-of-2 / 2-of-3) | 소셜 복구 |
|---|---|---|
| 일상 UX | 각 공동 서명 기기에서 서명 | 한 기기에서 서명 |
| 단일 키 도난에 저항 | 예 | 아니오 |
| 단일 키 상실에 저항 | 2-of-2: 아니오; 2-of-3: 예 | 예 (가디언 통해) |
| Bitcoin에서 작동 | 예 | 아니오 (스마트 컨트랙트 필요) |
| Ethereum / EVM에서 작동 | 예 (BIP48 / Safe) | 예 (Argent, Safe, ERC-4337) |
| 복구 시간 | 즉시 (생존 정족수로 서명) | 시간-에서-일 (가디언 조율) |
| 신뢰 가정 | 공동 서명 키를 가진 기기/사람 | 가디언, 악의적으로 결탁하지 않을 것이라 신뢰 |
| 온체인 가시성 | multisig 출력으로 보임 (Schnorr 집계되지 않는 한) | 대부분의 시간 단일 키 지갑처럼 보임 |
그 표에서 주목할 두 가지 패턴:
첫째, multisig는 더 넓은 도구다. 더 많은 체인에서 작동하고, 더 많은 공격 유형에 저항하며, 현재 프로토콜 수준에서 더 잘 감사되었다. 소셜 복구는 선택지일 때 더 UX 친화적이지만, 더 좁다.
둘째, 신뢰 가정이 다르다. Multisig는 너의 공동 서명 키를 가진 기기들이 동시에 모두 손상되지 않는다고 신뢰한다. 소셜 복구는 충분한 수의 너의 가디언들이 너의 자금을 훔치기 위해 결탁하지 않을 것이라 신뢰한다. 올바른 사용자에 대해 둘 다 합리적인 신뢰 모델이지만, 같은 신뢰 모델은 아니다.
언제 어느 것을 원하나
- 너가 한 기기를 가진 솔로 사용자이고 나머지 세계는 UX 황무지다. 소셜 복구가 이긴다. Argent / Safe / smart-account 흐름은 진정으로 가장 마찰이 적은 self-custody 옵션이고, 키 상실 시나리오는 대부분의 초보자가 실제로 경험하는 것이다. 단점 — 도난에 대한 보호 없음 — 은 너가 의식적으로 받아들이는 것, 이상적으로는 다섯 자리 미만 잔액과 교환으로.
- 너가 무시할 수 없는 보유물을 가진 솔로 사용자다. Multisig가 이긴다. SSP의 2-of-2 기본값은 도난에 대한 임계값을 올리고, 2-of-3 변형은 키 상실 회복력을 더하며, 둘 다 특정 스마트 컨트랙트 플랫폼이 아니라 열린 표준 위에 놓여 있다. 마찰은 실재하지만 판돈에 비례한다.
- 너가 조직, 파트너십, 또는 family office다. Multisig는 필수; 소셜 복구는 인체공학적 부가물이다. 너는 모든 지출에 대한 진정한 공동 제어를 원한다, 복구만이 아니라. 대부분의 조직은 서명자가 떠날 때를 위한 별도의, 주의 깊은 키 회전 절차와 함께 multisig 지출 규칙에 도달한다.
- 너가 그 사이 어딘가, Ethereum 위에 있다. 둘 다 층으로 쌓아라. Safe 스타일의 스마트 컨트랙트 지갑은 2-of-3 multisig 지출 규칙 그리고 그 위에 소셜 복구 회전 흐름을 운영할 수 있다. account abstraction 생태계가 향하는 방향이다.
이 시리즈 대부분의 독자가 사용하는 특정 SSP 2-of-2 셋업의 경우, 소셜 복구는 오늘 기능이 아니다 — 의도적으로. 두 cosigner 모두 네 것이고, 복구 이야기는 "두 번째 seed를 사용하라"이며, 가치는 저렴하게 얻는 도난 저항에 있다. 소셜 복구는 다른 문제를 해결한다 — "나는 custody에 편안해, 이제 더 쉽게 만들어 줘" 다음에 오는 문제.
이것이 너에게 의미하는 것
보관할 세 가지 결론:
- 그들은 대체품이 아니다. 만약 지갑이 "우리는 소셜 복구가 있으니, multisig는 필요 없다"고 판매한다면, 그것은 마케팅이지 엔지니어링이 아니다. 복구는 상실로부터 보호하고; multisig는 도난으로부터 보호한다. 그들이 답하는 질문은 겹치지 않는다.
- 너의 SSP 2-of-2 셋업은 지출 규칙 제품이다. 한 기기 상실은 너의 두 번째 seed로부터 복구되지, 가디언 정족수로부터가 아니다. 이 시리즈의 마무리 글 — Multisig 실패 모드와 SSP가 어떻게 완화하는가 — 가 그 복구가 실패 모드별로 정확히 어떻게 펼쳐지는지를 걷는다.
- 앞으로 지어라, 옆으로가 아니라. 너의 스택이 진정으로 2-of-2를 넘어 자라날 때, 다음 단계는 보통 multisig 대신 소셜 복구가 아니라, 지리적으로 분리된 키를 가진 2-of-3 multisig다. 이 시리즈의 2-of-3 글(선택기)은 그 이주를 준비한다; 다음으로 오는 single-signer multisig 글은 SSP가 그 미래 셋업이 어떻게 여전히 한 지갑처럼 느껴지게 유지하는지 설명한다.


