작동 원리
개요에서 짧은 설명을 드렸습니다. 메인 지갑은 당신의 것으로 남고, 에이전트는 당신이 넣어 둔 만큼만 담긴 별도의 심부름 지갑을 갖고, 어느 한 쪽도 혼자서는 돈을 움직일 수 없습니다. 이 페이지에서는 그 구조가 왜 실제로 성립하는지를 조금 더 가까이 들여다봅니다. 무거운 기술적 세부까지는 아니지만, 그 모양을 알아보고 올바른 이유로 신뢰할 수 있을 만큼은 살펴봅니다.
두 개의 지갑, 하나의 경계
이 설계 전체는 두 개의 돈 주머니를 떼어 놓는 데에 놓여 있습니다.
당신의 메인 지갑은 진짜 자금이 사는 곳입니다. 당신은 기기를 떠나지 않는 키로 이 지갑을 통제하며, 그 어떤 소프트웨어 에이전트도 이 키를 보지 못합니다. 이 이야기에서 메인 지갑이 하는 일은 정확히 두 가지입니다. 심부름 지갑에 자금을 넣는 출발점, 그리고 남은 돈을 다시 담는 도착점입니다. 에이전트의 결제가 여기서 나가는 일은 없습니다.
심부름 지갑은 에이전트마다 하나씩 있는 별도의 계좌로, 일부러 적은 금액을 당신이 넣어 둡니다. 에이전트가 닿을 수 있는 유일한 주머니가 바로 이것입니다. 이것은 메인 지갑 안의 칸도 아니고 메인 지갑에 덧붙인 지출 한도도 아닌, 진짜로 구별되는 별개의 계좌이기 때문에, 당신이 넣어 둔 잔액이 곧 무슨 일이 잘못되어도 손실이 얼마까지일 수 있는지에 대한 실제적이고 물리적인 상한선이 됩니다. 누구도 그 상한선을 지키겠다고 약속할 필요가 없습니다. 그저 거기에 있는 돈이 그만큼일 뿐입니다.
돈의 흐름과, 그 돈이 넘을 수 없는 선은 다음과 같습니다.
flowchart TB
subgraph you["당신의 것 — 키를 당신이 쥠"]
main["메인 지갑<br/>진짜 자금"]
end
subgraph errand["심부름 지갑 — 에이전트마다 별개의 계좌"]
bal["당신이 넣어 둔 잔액<br/>= 손실의 확고한 상한선"]
rule["두 개의 서명 규칙<br/>에이전트 키 + Tidal 공동서명자"]
end
merchant["가맹점 또는 서비스<br/>대개 x402로 결제"]
main -->|"당신이 자금을 넣음<br/>(마스터 키로 서명)"| bal
bal -.->|"언제든 되돌리기<br/>(마스터 키로 서명)"| main
agent["AI 에이전트<br/>자신의 키를 쥠"] ==>|"결제의 절반을 서명"| pay(["결제"])
check{"정책·위험 심사<br/>내 한도 안인가?"}
agent --> check
check -->|"승인"| cosign["Tidal 공동서명자<br/>나머지 절반을 서명"]
check -->|"한도 초과 / 의심"| stop(["보류 — 당신이 결정"])
cosign ==> pay
pay ==>|"서명 두 개 → 정산"| merchant
main -- "에이전트는 결코 여기에 닿을 수 없음" --x errand맨 아래의 점선이 이 모든 것의 핵심입니다. 에이전트에서 당신의 메인 지갑으로 가는 길은 없습니다. 에이전트는 전적으로 심부름 지갑 안에서만 움직이며, 쓸 수 있는 최대치는 당신이 그 지갑에 넣어 둔 금액입니다.
왜 에이전트는 선을 넘을 수 없는가
심부름 지갑은, 거기서 나가는 결제가 서명 두 개 — 하나는 에이전트, 하나는 Tidal 공동서명자 — 를 담고 있을 때에만 유효하도록 설정됩니다. 이것은 XRP 원장 자체가 강제하는 규칙으로, 2-of-2 서명자 방식이라 부릅니다. 여기서 짚어 둘 만한 결과가 몇 가지 나옵니다.
- 에이전트가 혼자 행동하면 유효한 결제를 만들 수 없습니다. 한 개의 서명으로는 부족합니다.
- Tidal이 혼자 행동해도 마찬가지입니다. Tidal은 두 서명 중 하나만 쥐고 있어 혼자서는 유효한 결제를 만들 수 없습니다.
- 어쩌다 둘 다 동시에 침해당하더라도, 최악의 경우는 여전히 심부름 지갑의 잔액뿐입니다. 그것이 그 계좌에 든 전부이고, 그 계좌는 당신의 메인 자금과 벽으로 막혀 있기 때문입니다.
Tidal의 서명 절반은 자동으로 주어지지 않습니다. 공동서명자가 서명하기 전에 정책과 위험 심사가 돌아갑니다. 이 결제가 당신이 정한 한도 안에 있는가, 허용된 수신처로 가는가, 승인 유효 기간 안에 있는가? 하나라도 어긋나면 Tidal은 그저 서명을 보류하고, 그 두 번째 서명이 없으면 결제는 성사될 수 없습니다. 분명히 잘못된 것이 아니라 그저 평소와 다른 결제일 때는, Tidal이 멈춰 서서 당신에게 묻습니다. 당신이 앱에서 답하는 챌린지입니다.
한도는 실제로 어디에 있는가
한 가지를 정확히 말씀드릴 가치가 있습니다. 부주의한 지갑들이 흔히 과장하는 지점이기 때문입니다. 당신이 정한 한도 — 결제당 한도, 하루 한도 — 는 Tidal이 그것을 어기게 될 결제에 공동서명하지 않기로 선택함으로써 지켜집니다. 이 한도는 실제이고, 기록되며, 감사할 수 있습니다. 하지만 원장에 새겨진 것이 아니라 서비스가 지키는 것입니다.
원장이 그 어떤 서비스도 믿지 않고 전적으로 스스로 강제하는 것은 딱 두 가지 — 두 개의 서명 규칙과 심부름 지갑의 잔액 — 뿐입니다. 그보다 세밀한 모든 것, 하루 한도나 허용 가맹점 목록은 Tidal의 정책 계층에 있습니다. 이것은 숨겨야 할 약점이 아니라 정직한 경계입니다. 가장 바깥의 보호(확고한 상한선)는 원장 위에 있으며 누구도 믿지 않습니다. 더 세밀한 통제(한도와 목록)는 서비스가 지키며 감사할 수 있습니다. 하루 한도가 깨질 수 없는 온체인 보장이라고 말하는 지갑은 과장하는 것입니다. 우리는 그러지 않겠습니다.
왜 당신은 결코 잠겨 버리지 않는가
심부름 지갑은 당신이 당신의 마스터 키로 설정한 실제 계좌이기 때문에, 당신은 누구에게도 기대지 않는 탈출구를 계속 쥐고 있습니다. 언제든 남은 잔액을 메인 지갑으로 쓸어 담을 수 있고, 두 개의 서명 방식을 통째로 걷어낼 수 있습니다. 결정적으로, 이것은 Tidal이 사라지더라도 작동합니다. 서버가 내려가 있든, 회사에 연락이 닿지 않든, 이유가 무엇이든 말입니다. 원장은 당신의 마스터 키로 직접 서명한 거래를 인정하므로, 당신의 돈이 Tidal이 계속 살아 있어야만 하는 인질이 되는 일은 없습니다.
그래서 Tidal은 설정 과정에서, 실제 자금을 넣기 전에 복구 비밀의 오프라인 백업을 만들고 확인하도록 당신에게 요청합니다. 진정한 자기수탁이란 Tidal이 잃어버린 키를 대신 복구해 줄 수 없다는 뜻이기에, 무엇이 걸리기 전에 당신이 복구할 수 있음을 앱이 확실히 해 두는 것입니다.
무엇이 정산되고, 무엇이 최종인가
결제가 성사되면, 그것은 XRP 원장 위에서 직접적인 XRP 또는 RLUSD 결제로 정산됩니다. 흔히 "x402" 요청의 정산 단계로 이루어지는데, 이것은 서비스가 자원을 내주기 전에 에이전트에게 결제를 요청하는 표준적인 방식일 뿐입니다. 정산은 빠르고, 한 번 이루어지면 최종입니다. 그 최종성은 하나의 장점입니다. 결제를 확실히 끝난 것으로 만들어 주니까요. 하지만 그것은 동시에, 정산된 결제를 Tidal이 되돌릴 수 없다는 뜻이기도 합니다. 당신의 보호는 사후가 아니라 사전에 있습니다. 한도, 두 개의 서명 규칙, 적은 잔액이 바로 그것이며, 이것이야말로 보호가 있어야 할 자리입니다.
다음으로 읽을거리
- 모바일 앱 사용하기 또는 브라우저 확장 프로그램 — 이것을 실제로 해 보기.
- 에이전트를 만드는 쪽인가요? **개발자 개요**에서 기술 트랙이 시작됩니다.