
절반만 승인된 거래는 어떻게 될까
2-of-2 지갑에서는 모든 송금에 중간 순간이 있습니다. SSP Wallet에서 이미 승인했고, 이제 휴대폰의 SSP Key를 기다리는 상태입니다. 휴대폰이 다른 방에 있을 수도 있고, 마음이 바뀔 수도 있습니다. 절반만 승인된 거래가 어디에서 기다리는지, 얼마나 유효한지, 무엇을 할 수 있는지, 그리고 어떻게 끝나는지 정리했습니다.
요청은 어디에서 기다리나
SSP Wallet에서 송금을 확정하면 지갑은 거래를 만들고 자신의 서명을 더한 뒤, 그 결과를 서명 요청으로 SSP 릴레이에 보냅니다. 릴레이는 이를 지갑의 신원 아래에 저장하고 실시간 연결과 푸시 알림으로 SSP Key에 전달합니다. SSP Key가 나중에 연결되더라도 릴레이는 연결되는 즉시 대기 중인 요청을 넘겨줍니다.
릴레이는 지갑마다 대기 중인 요청을 하나만 보관합니다. 지갑에서 새 요청이 오면 기존에 기다리던 요청을 대체하므로, 절반만 승인된 송금이 줄줄이 쌓이지 않습니다.
SSP Wallet은 카운트다운이 있는 대기 창을 보여 줍니다. 30초 동안 응답이 없으면 SSP Key가 열려 있고 온라인인지 확인하라고 안내하고, 요청을 휴대폰에 직접 불러올 수 있도록 QR 코드(또는 복사할 텍스트)를 제공합니다.
얼마나 유효한가
요청은 15분 동안 유효합니다. 릴레이는 요청마다 생성 후 15분 뒤의 만료 시각을 기록하고, 그 시각이 지나면 데이터베이스가 기록을 자동으로 삭제합니다. 지갑의 카운트다운은 이 시간 창을 그대로 보여 줄 뿐이며, 실제로 만료를 적용하는 것은 릴레이입니다.
그 뒤로 요청은 사라집니다. SSP Key는 더 이상 요청을 가져올 수 없고, SSP Wallet은 요청이 만료되었으니 다시 시도하라고 알려 줍니다. 아무것도 전파되지 않았으므로 블록체인에서 되돌릴 것도 없습니다.
휴대폰이 오프라인일 때, 거절할 때, 끝내 응답하지 않을 때
휴대폰이 오프라인일 때. 요청은 릴레이에서 기다립니다. SSP Key가 15분 안에 다시 온라인이 되면 요청을 받아 갑니다. 그렇지 않으면 요청은 만료됩니다.
SSP Key에서 거절할 때. SSP Key는 릴레이를 통해 거절을 돌려보내고, 그 거절이 요청의 자리를 대신합니다. SSP Wallet은 "거래가 거절되었습니다"라고 표시하며, 거래가 블록체인에 올라가지 않고 자금은 모두 사용 가능하다고 확인해 줍니다.
끝내 응답하지 않을 때. 앞에서 설명한 대로 요청은 15분 뒤 만료됩니다.
SSP Wallet의 창을 닫을 때. 창을 닫아도 요청은 취소되지 않습니다. 창 자체에도 그렇게 적혀 있습니다. 요청은 만료될 때까지 SSP Key에서 대기 상태로 남고, 활동 목록에도 대기 중인 송금으로 표시됩니다.
따라서 일반 송금에는 별도의 "취소" 버튼이 없습니다. 요청은 네 가지 중 하나로 끝납니다. SSP Key가 승인하거나, SSP Key가 거절하거나, 만료되거나, 지갑에서 보낸 더 새로운 요청으로 대체됩니다. 마음이 바뀌었다면 SSP Key에서 거절하는 것이 가장 깔끔합니다.
절반만 서명된 거래를 누군가 쓸 수 있을까
쓸 수 없습니다. 자금은 2-of-2 멀티시그에 있고, 유효한 지출에는 두 서명이 모두 필요합니다. 비트코인 같은 UTXO 체인에서는 주소의 스크립트 자체가 특정한 두 키의 두 서명을 요구하며, 서명이 하나뿐인 거래는 네트워크가 거부합니다. EVM 체인에서는 스마트 계정이 두 키가 모두 있어야만 만들 수 있는 하나의 결합 서명을 검증합니다. 이를 보게 되는 누구든, 릴레이를 포함해, 어떤 네트워크도 받아들이지 않을 거래를 쥐고 있을 뿐입니다. 2-of-2 멀티시그란 무엇인가에서 원리를 설명합니다.
SSP Key도 자동으로 서명하지 않습니다. 기기에서 거래를 디코딩한 뒤 여러분의 승인을 기다립니다. 거래를 실제로 막는 것은 무엇인가에서 그 과정의 다른 확인 절차를 다룹니다.
절반만 서명된 거래로는 자금을 옮길 수 없지만, 비밀은 아닙니다. 수신자, 금액, 보내는 주소, 그리고 UTXO 체인에서는 지출되는 코인 정보가 담겨 있습니다. 릴레이는 푸시 알림 문구("Y에게 X를 보내는 거래")를 만들기 위해 이를 디코딩합니다. 이것이 SSP 릴레이가 볼 수 있는 것과 볼 수 없는 것의 일부입니다. 무엇을 보내는지는 읽을 수 있지만, 자금을 옮길 수 있게 해 주는 것은 아무것도 없습니다.
기다리는 동안의 코인과 논스
SSP Key가 서명하기 전에는 아무것도 전파되지 않으므로, 요청이 기다리는 동안 체인에서는 아무것도 바뀌지 않습니다.
UTXO 체인에서는 거래에 선택된 코인이 미사용 상태로 남습니다. SSP Wallet은 대기 중인 일반 송금을 위해 코인을 따로 잡아 두지 않습니다. 두 번째 송금을 시작하면 같은 코인이 선택될 수 있지만, 어차피 새 요청이 릴레이에서 이전 요청을 대체합니다. SSP Key는 요청에 담긴 코인 정보를 믿지 않고, 서명하기 전에 직접 코인을 조회합니다.
EVM 체인에서는 두 종류의 논스가 관련됩니다. 계정 논스는 논스: 이더리움 거래가 줄을 서는 이유에서 설명한 카운터로, 거래를 만들 때 읽히고 거래가 블록에 포함될 때만 증가합니다. 따라서 대기 중이거나 거절된 요청은 이를 소모하지 않습니다. 다른 하나는 결합 서명을 위한 일회용 서명 논스입니다. SSP Wallet은 한 번 사용한 것을 폐기하므로, 첫 거래가 거절되거나 만료되었더라도 두 번째 거래에 서명하는 일은 없습니다.
SSP Enterprise는 무엇이 다른가
SSP Enterprise 금고는 더 오래 기다리도록 설계된 M-of-N 제안을 사용합니다. 기본값은 7일이며, 금고 정책에 따라 1시간에서 30일 사이로 정할 수 있습니다. 제안을 만든 사람이나 조직의 관리자 또는 소유자는 제안을 취소할 수 있고, 그러면 제안이 확보해 둔 코인이나 논스가 풀립니다. 예를 들어 코인이 다른 곳에서 이미 지출되어 제안이 더 이상 실행될 수 없게 되면, 제안은 무효 상태로 닫히고 서명자들에게 그 이유가 전달됩니다.
솔직한 요약
절반만 승인된 SSP 거래는 릴레이에 있는 수명 15분짜리 서명 요청입니다. 승인되거나, 거절되거나, 대체되거나, 만료되면 끝납니다. 지갑 창을 닫는다고 취소되지 않고 별도의 취소 버튼도 없으므로, SSP Key에서 거절하는 것이 깔끔한 마무리 방법입니다.
기다리는 동안 그 거래로 자금이 움직이지는 않습니다. 2-of-2 멀티시그에는 두 서명이 모두 필요하고, SSP Key는 자신의 서명을 더하기 전에 반드시 여러분에게 묻습니다. 다만 수신자, 금액, 주소 같은 읽을 수 있는 정보가 들어 있고, 릴레이는 이를 볼 수 있습니다.


