읽는 데 8분
활성, 비활성, 삭제: 각 신원 상태의 의미
CardanoWall 신원을 비활성화하거나 삭제하면 계정이 그 신원을 사용하는 방식이 바뀌지만, 이미 Cardano에 게시된 레코드의 암호학적 유효성은 결코 바뀌지 않습니다.

CardanoWall은 계정 안의 각 신원에 그 신원을 어떻게 사용할 수 있는지를 제어하는 수명 주기 상태를 부여합니다. 활성은 모든 기능을 사용할 수 있다는 뜻입니다. 비활성은 신원이 목록에 그대로 남고 복호화도 여전히 할 수 있지만, 계정에서 새로운 서명, 게시, 발신이 차단된다는 뜻입니다. 삭제는 상태가 아니라 동작입니다. 신원을 계정에서 연결 해제하고 암호화된 볼트에서 해당 항목을 제거하는 것이며, 저장해 둔 신원 시드(Identity Seed)를 다시 가져오면 접근 권한이 복원됩니다.
이러한 계정 수준의 동작은 어느 것도 블록체인을 다시 쓰지 않습니다. 이미 게시한 증명은 게시한 신원이 어떤 상태이든 영원히 유효하고 검증 가능한 상태로 남습니다.
신원에 수명 주기가 있는 이유는 무엇입니까?
암호와 계정이 서로 다른 두 계층이며, 그중 영구적인 것은 하나뿐이기 때문입니다.
CardanoWall 신원은 Label 309 표준 위에 구축됩니다. 이 표준에서 신원은 정확히 한 가지, 즉 32바이트 신원 시드와 거기서 파생된 키들입니다. 이 결합은 불변입니다. 하나의 시드가 곧 하나의 신원이며, 그 신원이 존재하는 동안 그러합니다. "같은 신원 아래에서 키를 교체한다"는 것은 없습니다. (이 개념이 처음이라면 신원은 곧 시드입니다부터 읽어 보십시오.)
하지만 호스팅형 제품은 암호가 답하지 않는 일상적인 계정 질문들에도 여전히 답해야 합니다.
- 이 신원을 새 레코드에 사용할 수 있어야 합니까?
- 이전 레코드를 위해 계속 보이도록 두어야 합니까?
- 들어오는 봉인된 레코드를 계속 복호화해야 합니까?
- 이 계정에 계속 연결된 상태로 두어야 합니까?
- 오래된 신원에 의존하기 전에 사용자에게 경고해야 합니까?
수명 주기 상태는 시드를 건드리지 않고 이러한 제품 차원의 질문에 답합니다. 이는 결코 움직이지 않는 암호학적 사실 위에 얹힌 계정 장부 기록입니다.
활성 신원은 무엇을 할 수 있습니까?
활성은 일반적인 사용 상태입니다. 활성 신원은 다음을 할 수 있습니다.
- 새 레코드에 서명합니다.
- 증명을 게시합니다.
- 봉인된 레코드를 발신합니다.
- 자신에게 향한 봉인된 레코드를 복호화합니다.
- 신원 전환기에 나타납니다.
- 받은편지함 상태를 동기화합니다.
- 컴포저에서 선택됩니다.
대부분의 신원은 생애의 대부분을 활성 상태로 보냅니다. 나머지 두 상태는 특정 신원에 대해 사용자가 의도적으로 내리는 선택입니다.
신원을 비활성화하면 어떻게 됩니까?
비활성화는 이런 뜻입니다. 이 신원을 이 계정에서 새 작성에 사용하지 않습니다.
비활성화된 신원은 계정에 그대로 남고 읽기 권한을 유지합니다. 봉인된 레코드를 여전히 복호화할 수 있으며, 비활성화한 이후에 도착하는 레코드도 마찬가지입니다. 다만 다시 활성화하기 전까지는 그 계정에서 서명, 게시, 발신을 할 수 없습니다. 이는 단지 버튼을 흐리게 표시하는 차원이 아니라 서버에서 강제됩니다. 게시 경로는 어떤 작업이든 수행하기 전에 신원의 상태를 확인합니다.
비활성화는 다음과 같은 경우에 알맞은 수단입니다.
- 팀이 대체 신원으로 전환하는 경우;
- 키가 오래되었을 수는 있으나 유출이 확인되지는 않은 경우;
- 신원을 한동안 읽기 전용으로 두어야 하는 경우;
- 워크플로가 일시 중지된 경우;
- 공유 신원이 특정 계정에서의 게시를 멈춰야 하는 경우.
비활성화는 완전히 되돌릴 수 있습니다. 다시 활성화하면 같은 스위치가 원래대로 돌아오고 모든 기능이 복원됩니다.
비활성화된 신원이 여전히 복호화할 수 있는 이유는 무엇입니까?
비활성화는 사용자의 계정만 아는 사실이고 발신자는 모르기 때문입니다.
이 상태는 CardanoWall의 레코드 안에만 존재하며, 블록체인에도 Label 309 와이어 포맷에도 결코 담기지 않습니다. 이미 사용자의 수신 주소를 가진 발신자는 그 주소로 봉인된 레코드를 계속 암호화할 수 있고, 그 밖의 형식만 올바르면 Cardano는 그 레코드를 받아들입니다. 발신자에게 멈추라고 알려 줄 온체인 신호는 없습니다.
따라서 계정이 여전히 시드를 보유하고 있다면 도착한 것을 여전히 열 수 있습니다. 복호화를 막는 것은 수신자에게 불이익을 주고 정말로 중요한, 들어오는 증거를 잃을 위험을 키우면서도, 발신자를 멈추는 데에는 아무 효과가 없습니다. 그래서 비활성화는 유용한 지점에 선을 긋습니다. 새 작성은 차단하되 읽기 권한은 그대로 둡니다.
신원을 삭제하면 어떻게 됩니까?
삭제는 이 계정에서 신원을 제거합니다. 그 이상은 없습니다.
신원을 삭제하면 두 가지 일이 함께 일어납니다. 계정과 신원의 연결이 제거되고, 신원의 시드 항목이 계정의 암호화된 볼트에서 제거되며, 볼트는 남은 신원들에게 다시 암호화됩니다. 연결이 먼저 끊어지므로, 볼트 재작성에 재시도가 필요하더라도 목록 멤버십과 게시 게이트는 즉시 전환됩니다. 받쳐 줄 연결이 없는 볼트 항목은 아무 역할도 하지 못합니다.
그 이후로 이 계정은 더 이상 그 신원을 잠금 해제하거나 사용할 수 없습니다. 사용자가 저장해 둔 신원 시드를 다시 가져오는 경우는 예외입니다.
삭제가 의도적으로 건드리지 않는 것은 다음과 같습니다.
- 같은 신원에 대한 다른 계정의 연결은 건드리지 않습니다. 그 신원을 보유한 각 계정은 자신의 독립적인 사본을 유지하므로, 동료와 공유하는 신원은 그들의 계정에서 계속 작동합니다.
- 블록체인에서는 아무것도 삭제하지 않습니다.
- 그 신원이 이미 게시한 레코드는 삭제하지 않습니다.
삭제는 그 신원에 대한 이 계정의 보관이 끝났음을 뜻합니다. "이 신원을 모든 곳에서 파기" 버튼은 없으며, 있을 수도 없습니다. 시드를 가진 모든 보유자는 그 신원에 대한 완전한 권한을 유지하고, Cardano에 서명된 증명은 영구적입니다.
삭제를 되돌릴 수 있습니까?
예 — 시드를 저장해 두었다면 가능합니다.
신원 시드가 곧 신원이므로, 같은 시드를 다시 가져오면 똑같은 공개 키와 비밀 키가 그대로 재구성됩니다. 그러면 계정은 그 신원에 다시 연결할 수 있습니다. CardanoWall은 이 단계에서 누구에게나 보이는 공개 키를 안다는 것만으로는 부족하며, 사용자가 실제로 시드를 보유하고 있음을 증명하도록 요구합니다(시드에서 파생된 키로 일회성 챌린지에 서명하는 방식). 이 증명이 통과되면 연결이 복원됩니다.
시드를 저장하지 않았다면 삭제로 인해 봉인된 콘텐츠를 그 계정에서 영구히 읽을 수 없게 될 수 있습니다. 그래서 삭제 경고는 단도직입적이어야 합니다. 시드가 사용자가 통제하는 어딘가에 백업되어 있거나, 이 계정에서의 향후 접근을 잃어도 진심으로 괜찮은 경우에만 삭제하십시오. (신원 시드가 여전히 중요한 이유에서 이 점을 더 깊이 다룹니다.)
수명 주기 상태가 이미 게시한 증명에 영향을 줍니까?
아니요. 바로 이것이 핵심입니다.
게시된 증명은 공개 체인 데이터만으로 검증됩니다. 어떤 레코드가 특정 신원으로 서명되었다면, 그 서명은 바이트에 관한 수학적 사실이며, 어떤 CardanoWall 계정 상태도 그것을 사라지게 할 수 없습니다. 검증기는 트랜잭션 메타데이터에서 서명자의 공개 키를 곧바로 가져와 공개 자료와 대조해 확인합니다. 어떤 CardanoWall 서버도 조회되지 않으므로 어떤 계정 상태도 조회될 수 없습니다.
이는 존재 증명에 필수적입니다. 게시된 레코드는 서비스 상태, 계정 상태, 심지어 벤더보다도 오래 살아남는다는 것이 그 약속입니다. 검증하기 위해 CardanoWall의 서버나 도메인, 또는 지속적인 존재를 신뢰할 필요가 없습니다. 사용자의 인터페이스는 어떤 신원이 계정에서 비활성화되거나 삭제되었다고 표시할 수 있지만, 검증기는 그와 무관하게 온체인 레코드를 정확히 동일하게 취급합니다. (증명에는 여전히 이해해 둘 만한 한계가 있습니다 — 증명이 증명하지 못하는 것을 참고하십시오.)
시드가 유출되면 어떻게 합니까?
새 신원을 생성하십시오. 비활성화에만 의존하지 마십시오.
비활성화는 서비스 계층의 통제이지 암호학적 폐기가 아닙니다. 누군가 시드를 가지고 있다면, 그 신원을 사용자의 계정 밖에서, 나아가 CardanoWall 전체 밖에서도 여전히 사용할 수 있습니다. 시드는 어떤 적합한 도구에서든 어떤 서비스도 끼어들지 않고 작동합니다. 계정에서 상태를 전환해도 그 문제는 전혀 해결되지 않습니다.
시드 유출이 의심되는 경우에는 다음과 같이 하십시오.
- 새 신원을 생성하고 새 시드를 저장합니다.
- 계정에서 이전 신원을 비활성화합니다.
- 공개된 곳에서 이전 수신 주소를 더 이상 알리지 않습니다.
- 사람들이 사용자에게 연락할 때 신뢰하는 채널을 통해 새 공개 키를 다시 게시합니다.
- 필요한 경우, 영향을 받은 레코드를 대체하는 새 레코드를 새 신원으로 서명해 게시합니다.
이전 신원은 유출되지 않은 상태로 되돌릴 수 없습니다. 그 신원에 대한 통제권을 부여한 것은 시드뿐이었고, 유출된 비밀은 유출된 채로 남습니다. 이는 제거된 패스키가 소급되지 않는 것과 같은 이치입니다. 서비스 계층의 동작은 향후 접근을 끊을 수 있지만, 이미 일어난 노출을 되돌려 없앨 수는 없습니다.
팀은 이 상태들을 어떻게 사용해야 합니까?
수명 주기 상태를 시드 보관의 대체물이 아니라 정책으로 다루십시오.
팀은 신원이 다음 상태가 되는 시점을 미리 정해 두어야 합니다.
- 일상 업무를 위해 활성;
- 프로젝트가 끝난 후 비활성;
- 유출 조사 중 비활성;
- 구성원이 떠난 후 그 계정에서 삭제;
- 시드가 노출된 후 새 신원으로 교체.
이 상태들이 할 수 없는 단 한 가지는 시드에 대한 지식을 폐기하는 것입니다. 떠난 구성원이 여전히 그 32바이트를 보유하고 있다면, 어떤 계정이 무엇을 하든 공유 신원에 대한 완전한 권한을 유지합니다. 그들을 배제한다는 것은 이전 신원을 비활성화하는 것이 아니라 신원을 교체하는 것, 즉 남은 사람들에게만 공유한 새 시드를 의미합니다. 공유 팀 신원에서 하나의 신원을 여러 사람이 함께 운영할 때의 절충점을 다룹니다.
가장 안전한 기본값은 무엇입니까?
삭제하기 전에 비활성화하십시오.
확신이 서지 않을 때는 비활성화가 더 부드러운 선택입니다. 신원은 계속 보이고 복호화를 유지하지만 새 사용은 차단되며, 언제든 다시 활성화할 수 있습니다. 잃는 것은 없습니다.
삭제는 다음 중 적어도 하나가 성립한다고 확신할 때만 하십시오.
- 시드가 CardanoWall 외부 어딘가에 백업되어 있다; 또는
- 그 신원이 정말로 더 이상 필요하지 않다; 또는
- 이 계정이 더 이상 그 신원에 접근해서는 안 된다.
시드 백업 없이 삭제하는 것은 사람들이 자신의 봉인된 콘텐츠에서 스스로를 잠가 버리는 가장 흔한 방식입니다.
짧게 정리하면
활성은 일반적인 사용을 뜻합니다. 비활성은 이 계정에서 읽기 전용을 뜻합니다. 여전히 복호화하지만 서명, 게시, 발신은 할 수 없습니다. 삭제는 이 계정에서 연결이 끊기고 볼트에서 제거되었음을 뜻하며, 시드를 다시 가져와야만 복구할 수 있습니다.
이 상태들은 CardanoWall 안에서 신원을 관리하는 데 도움을 줍니다. 이미 Cardano에 기록된 암호학적 사실은 바꾸지 않습니다. 신원 시드는 최후의 복구 경로로 남습니다. 그러니 무언가를 삭제하기 전에 시드를 저장해 두십시오.
더 읽을거리
- 신원은 곧 시드입니다 — 계정이 아니라 32바이트 시드가 진짜 신원인 이유.
- 신원 시드가 여전히 중요한 이유 — 백업, 복구, 그리고 손실이 실제로 치르게 하는 대가.
- 패스키를 제거하면 어떻게 됩니까 — 볼트 요소에 대한 "서비스 계층 통제이지 소급되지 않음"이라는 같은 맥락의 이야기.
- 공유 팀 신원 — 하나의 신원을 여러 사람이 함께 운영하기, 그리고 구성원 제거하기.
- 증명이 증명하지 못하는 것 — 존재 증명의 한계.
- Label 309 표준과 github.com/cardanowall에 있는 오픈 소스 참조 코드.