서명 키와 보안 키
Vela 지갑은 Safe이고, Safe에는 소유자가 있습니다. 당신의 지갑은 최대 일곱 명까지
가질 수 있고 임계값은 1입니다. 어떤 서명 키든 혼자서 거래를 승인할 수 있습니다.
이를 1-of-n이라고 씁니다.
무엇이 서명 키가 될 수 있나
세 가지가 있고, 자유롭게 섞을 수 있습니다.
| 방식 | 무엇인가 | 대표적인 예 |
|---|---|---|
| 플랫폼 | 지금 쓰는 기기에 내장된 인증기 | 이 휴대폰이나 노트북의 Face ID / Touch ID. iCloud 키체인이나 Google 비밀번호 관리자가 동기화 |
| 가까운 기기 | 코드를 찍어 연결하는 다른 기기 | 데스크톱을 위해 휴대폰이 서명하는 WebAuthn 하이브리드 전송 |
| 보안 키 | USB나 NFC의 분리형 인증기 | YubiKey 등 FIDO2 키 |
셋 다 P-256 곡선 위의 WebAuthn 자격 증명입니다. Safe가 보기에는 구분이 없습니다. 모두 소유자이고, 온체인 WebAuthn 검증기가 같은 방식으로 서명을 확인합니다.
보안 키는 예비가 아니라 첫 번째 서명 키가 될 수도 있습니다. 지갑이 애플이나 구글 계정에 전혀 기대지 않기를 바란다면, 그렇게 만드는 설정이 바로 이것입니다. 생성 시 YubiKey를 등록하고 그것으로 서명하면 됩니다.
왜 생성할 때 정하는가
여기서 많이들 놀라므로, 변명 대신 구조를 적습니다.
지갑 주소는 소유자 집합에서 유도됩니다. Vela는 Safe 셋업 데이터 — 각 서명 키의
공개 키가 들어 있습니다 — 에서 CREATE2로 주소를 계산합니다. 그것도 온체인에
아무것도 배포되기 전에요. 그래서 아직 존재하지 않는 주소로 자금을 받을 수 있습니다.
여기서 따라오는 것은 정책이 아니라 산술입니다. 키 집합이 다르면 주소도 다릅니다. 나중에 여덟 번째 키를 더해도 지금 지갑이 확장되지 않습니다. 새 주소에, 당신 돈이 한 푼도 없는 새 지갑이 계산될 뿐입니다.
그래서 “나중에 키를 추가할 수 있나요?”에는 솔직한 답이 둘입니다.
- 자금을 넣기 전이라면: 가능합니다 — 그 주소는 아직 아무것과도 묶여 있지 않으니, 원하는 키 구성으로 지갑을 다시 만드세요.
- 자금을 넣은 뒤라면: 그 주소가 곧 돈이 있는 자리입니다. 배포된 Safe의 소유자를 바꾸는 것은 Safe의 기능이고, Vela는 현재 그것을 노출하지 않습니다. 키 구성은 생성 시점에 계획하세요.
이것이 실제로 막아 주는 것
기기 분실. 서명 키가 둘 이상이면 휴대폰을 잃어도 번거로움에 그칩니다. 다른 키가 서명하니까요. 키가 하나뿐이고 OS 동기화도 꺼져 있다면, 분실은 곧 지갑의 상실입니다. 그래서 “패스키는 자동으로 동기화됩니다”는 당신이 통제하는 설정에 대한 설명이지, 우리가 대신 해 줄 수 있는 보장이 아닙니다.
더는 믿지 않는 플랫폼 계정. 패스키가 iCloud 키체인이나 Google 비밀번호 관리자에 있다면, 그 계정을 쥔 사람이 쓸 가능성이 있습니다. 보안 키는 당신 손에 있고 어디에도 동기화되지 않습니다.
그리고 1-of-n은 양날이므로 막아 주지 못하는 것도 있습니다. 키를 하나 더하는
것은 두 번째 자물쇠가 아니라 두 번째 입구를 더하는 일입니다. 당신의 서명 키 중
하나라도 손에 넣은 사람은 혼자 서명할 수 있습니다. 키가 많을수록 분실에는 강해지고
도난에는 면이 넓어집니다. 그것이 거래이고, 결정하는 사람은 당신입니다.
복구와 추가는 다릅니다
이 둘은 다른 일이고, 문서에서도 나누어 둡니다.
- 복구와 로그인 — 이미 가진 키로, 새 기기에서 기존 지갑으로 돌아가는 일.
- 이 페이지 — 애초에 어떤 키가 존재할지를 미리 정하는 일.