
SSP Enterprise의 역할과 권한
공동 보관이 실제로 작동하는지를 결정하는 질문은 "누가 책임자인가?"가 아닙니다. "누가 돈을 옮길 수 있는가?"입니다 — 그리고 잘 만들어진 시스템에서 이 둘은 서로 다른 질문이고 답도 다릅니다.
SSP Enterprise는 이 둘을 서로 다른 두 장소에서 답합니다. 행정 권한은 조직의 기록에 살며, 거기서는 다른 어떤 권한과 마찬가지로 부여하고 회수할 수 있습니다. 지출 권한은 볼트 주소에 살며, 거기서는 그럴 수 없습니다. 이 글은 둘 모두의 완전한 지도입니다 — 사람들이 가장 자주 놀라는 경우들까지 포함해서.
조직과 볼트가 어떻게 맞물리는지에 대한 개괄을 아직 읽지 않았다면, SSP Enterprise: 팀을 위한 멀티시그 볼트가 이 글 앞에 오는 편입니다.
두 시스템, 의도적으로
조직 역할은 작업 공간을 다스립니다. 사람을 초대하고, 볼트를 만들고, 설정을 바꾸고, 감사 로그를 읽는 일입니다. 그것은 데이터베이스 레코드입니다. 바꾸면 변경은 즉시 효력을 냅니다.
볼트 역할은 특정 볼트 하나를 다스리며, 그 세 값 중 하나 — 서명자 — 는 당신의 공개키가 그 볼트의 주소가 파생된 방식의 일부라는 뜻입니다. 그것은 무엇을 수정해서 바꿀 수 있는 것이 아닙니다. 다른 주소에 다른 볼트를 만들고 자금을 옮기는 방법으로만 바뀝니다.

실무적 결론이자 이 글에서 가장 중요한 한 문장: 어떤 볼트의 서명자가 아닌 조직 소유자는 그 볼트에서 지출할 수 없습니다. 대시보드 접근으로도 안 되고, 데이터베이스 접근으로도 안 되고, SSP의 협조로도 안 됩니다. 주소는 소유자가 무엇인지 알지 못합니다.
조직 역할, 정확하게
네 가지 역할, 엄격한 서열로.
| 할 수 있는 일 | 소유자 | 관리자 | 구성원 | 열람자 |
|---|---|---|---|---|
| 볼트, 활동, 감사 로그 읽기 | 예 | 예 | 예 | 예 |
| 새 사람 초대 | 예 | 예 | 조직이 허용할 때만 | 아니오 |
| 구성원이나 열람자의 역할 변경 | 예 | 예 | 아니오 | 아니오 |
| 다른 관리자의 역할 변경 | 예 | 아니오 | 아니오 | 아니오 |
| 조직 설정 변경 | 예 | 예 | 아니오 | 아니오 |
| 소유권 이전, 조직 삭제 | 예 | 아니오 | 아니오 | 아니오 |
| 조직 떠나기 | 아니오 — 먼저 이전 | 예 | 예 | 예 |
그 표에서 세 가지 세부는 따로 끌어낼 만합니다.
관리자는 다른 관리자를 건드릴 수 없습니다. 관리자는 구성원과 열람자를 승격하고, 강등하고, 제거할 수 있지만, 대상이 다른 관리자가 되는 순간 작업이 거부됩니다. 이는 의도된 것입니다. 침해된 관리자 계정 하나가 나머지 행정 계층을 조용히 해체할 수 없다는 뜻입니다.
구성원 초대는 조직 수준의 스위치입니다. 기본적으로 초대는 관리자의 권능입니다. 조직은 구성원에게도 허용하기로 선택할 수 있습니다 — 온보딩이 두 사람 뒤에 줄 서지 않아야 하는 큰 팀에 유용하고, 경계를 좁게 유지하고 싶다면 꺼 둘 만합니다.
소유자는 떠날 수 없습니다. 소유자는 정확히 한 명이며, 나가는 길은 먼저 소유권을 다른 사람에게 넘기는 것입니다. 이는 조직에 소유자 전용 작업을 수행할 수 있는 사람이 아무도 남지 않는 실패 양상을 막습니다.
볼트 역할, 정확하게
세 가지 역할이며, 그 범위는 조직이 아니라 볼트 하나입니다.
볼트 관리자는 볼트를 관리합니다. 정책, 알림 설정, 열람자를요. 볼트 관리자가 반드시 서명자인 것은 아니며, 서명자가 아닌 볼트 관리자는 제안을 승인할 수 없습니다.
서명자는 볼트의 M-of-N에 든 키 하나를 쥡니다. 서명자는 제안을 초안하고 승인합니다. 그들의 공개키가 주소 안에 있습니다.
볼트 열람자는 잔액, 제안, 이력을 보되 무엇도 초안하거나 승인할 수 없습니다. 감사인, 회계 담당자, 그리고 권한 없이 가시성만 필요한 모두에게 유용합니다.
볼트 역할은 볼트별이므로, 같은 사람이 운영 볼트에서는 서명자이고 금고 볼트에서는 열람자일 수 있습니다. 그것은 정상적이고 건강한 배치입니다. 필요한 사람에게 일상적 지출 권한을 주면서, 준비금은 더 작은 다른 위원회 뒤에 둡니다.
초대는 받은편지함이 아니라 아이덴티티로 간다
SSP Enterprise의 초대는 이메일 주소가 아니라 WK 아이덴티티 — 누군가의 SSP Wallet과 SSP Key에서 파생된 2-of-2 멀티시그 아이덴티티 — 로 보내집니다.
이는 불편이 아니라 보안 속성입니다. 이메일 주소는 침해되거나, 전달되거나, 오타로 남의 손에 들어갈 수 있습니다. WK 아이덴티티는 그 사람의 두 기기를 모두 쥔 사람만 제시할 수 있으니, 초대는 우연히 메시지를 읽은 사람이 수락할 수 없습니다.
두 가지 결과가 따라옵니다. 첫째, 초대하는 사람은 합류하기 전에 SSP가 설정되어 있어야 합니다. 설계상 "초대 메일에서 가입하기" 경로는 없습니다. 둘째, 초대는 이메일 초대에는 없는 방식으로 감사 가능합니다. 수락이 서명된 행위이기 때문입니다.
만료된 초대는 삭제되지 않습니다. 무기한 보관됩니다. "누가 초대받았고 끝내 합류하지 않았는가"는 바로 감사가 몇 달 뒤에 묻는 종류의 질문이기 때문입니다. 감사 기록의 어느 것에도 수명이 없습니다.
무엇이 재서명을 요구하는가
일부 작업은 세션 쿠키로 승인하기에는 결과가 너무 큽니다. 그중 열세 가지는 당신이 행동하는 그 순간 두 기기로 다시 서명하도록 요구합니다. 예를 들면 다음과 같습니다.
- 조직의 소유권 이전
- 조직 삭제
- 구성원 제거
- 계정의 기업 이메일 변경
여기서는 방식이 중요합니다. 서명할 챌린지는 서버가 생성하며 — 결코 클라이언트가 아닙니다 — 그 챌린지는 특정 작업, 특정 대상, 그리고 타임스탬프에 묶여 있습니다. 어느 작업에서 확보한 서명을 다른 작업에 재생할 수 없습니다.
모든 시도가, 실패한 것까지 포함해 영구적으로 기록됩니다. 실패한 중요 작업 시도가 이어지는 패턴 자체가 기록에 남겨 둘 만한 신호입니다.
역할 변경은 어디에 기록되는가
모든 권한 변경은 조직의 감사 로그에 기록됩니다. 역할 부여와 회수, 발송·수락·거절·철회된 초대, 구성원의 합류와 이탈, 제거, 그리고 소유권 이전. 볼트 수준의 변경은 자체 이벤트를 갖습니다 — 서명자와 열람자의 추가 또는 제거, 정책 수정, 볼트 상태 변경.
감사 기록은 영구적입니다. 만료도 정리 작업도 없습니다. 감사 기록의 가치는 아무도 필요할 줄 예상하지 못했던 부분에 전부 있기 때문입니다. 11월에 문제를 발견한 조직은 3월의 기록을 원합니다.
자신의 역할 배치 설계하기
실무에서 버티는 몇 가지 패턴.
관리자를 서명자와 분리하세요. 운영 책임자에게 조직 관리자를 주어 사람과 볼트 설정을 관리하게 하면서, 그 키는 금고 주소에 넣지 마세요. 그러면 행정적 편의가 보관 위험을 지지 않습니다.
재무 기능에는 열람자 역할을 넉넉히 주세요. 읽기 권한은 값싸고, 지출할 수 있는 사람의 집합을 넓히지 않고도 대조를 가능하게 합니다. 회계 담당자가 서명자여야 할 이유는 없습니다.
금고 위원회를 운영 위원회보다 작게 유지하세요. 3-of-5 준비금과 2-of-3 운영 볼트는 흔하고 합리적인 분할입니다. 매일 만지는 돈은 1년에 한 번 만지는 돈보다 승인 문턱이 낮아도 됩니다. 2-of-2 대 2-of-3 대 m-of-n이 숫자를 어떻게 따질지 다룹니다.
누군가 떠나기 전에 이탈 절차를 정하세요. 누군가를 조직에서 제거하는 것은 역할 변경입니다. 서명자에서 제거하는 것은 새 볼트와 자금 이전입니다. 어느 쪽을 할지 적어 두고, 남은 서명자 집합이 여전히 임계값을 넘는지 확인하세요. 키 하나가 유출되면 어떻게 되는가가 인접한 시나리오를 훑습니다.
정책을 권한으로 취급하지 마세요. 허용 목록, 시간 잠금, 승인 규칙은 무엇이 제안되는지를 빚지만, 체인이 강제하는 것은 임계값뿐입니다. 정책 엔진이 없는 것처럼 역할을 설계하고, 그다음에 정책을 프로세스 개선으로 위에 얹으세요.
역할 서열은 한 가지 질문을 앞에 두면 제대로 잡기 쉽습니다. 이 변경들 가운데 어느 것이 새 주소를 요구하고, 어느 것이 단지 기록인가? 조직 계층의 모든 것은 기록입니다. 주소인 것은 서명자 집합뿐입니다.


