엔지니어를 위한 이야기 공장 AI 기술에 인문학의 온기를

출금은 막았고 손실 한도는 두지 않았습니다 : 바이낸스가 에이전트에게 준 권한

출금은 막았고 손실 한도는 두지 않았습니다 : 바이낸스가 에이전트에게 준 권한

권한 요청 화면을 끝까지 읽는 사람은 드뭅니다. 앱을 하나 깔면서 사진에 접근해도 되는지, 위치를 항상 허용할지 묻는 창이 뜨면 대개는 목록을 훑지도 않고 허용을 누르죠. 그렇게 눌러 왔어도 큰일이 나지 않았던 이유는 사실 단순합니다. 그 목록에 돈이 없었기 때문입니다.

현지 시각 8월 20일, 바이낸스가 그 목록에 돈을 올렸습니다.

바이낸스가 에이전트 OS(Binance Agent OS)와 함께 자체 MCP 서버를 공개했습니다. MCP는 ChatGPT나 Claude 같은 생성형 AI가 외부 서비스의 데이터와 기능을 끌어다 쓸 수 있게 해 주는 표준 규격인데요. 이번에 연결된 것이 시세 조회에서 그치지 않습니다. 지원 클라이언트로 ChatGPT와 Codex, Claude와 Claude Code, Cursor가 이름을 올렸고, 이 도구들이 사용자를 대신해 현물과 마진, 선물 주문을 낼 수 있습니다. 여기에 지갑 권한을 다루는 Wallet Agentic Hub, 에이전트가 스스로 소액을 결제하도록 만든 Binance x402, 기능 단위를 모아 둔 Skill Hub가 함께 하나로 묶여 나왔습니다.

바이낸스 가입 화면입니다. 이메일로 시작하겠느냐, 아니면 다른 계정으로 계속하겠느냐고 묻는, 우리가 늘 눌러 온 그 화면이죠.
바이낸스 가입 화면입니다. 이메일로 시작하겠느냐, 아니면 다른 계정으로 계속하겠느냐고 묻는, 우리가 늘 눌러 온 그 화면이죠.

*출처: Flickr, alpha_photo*

권한 설계를 보면 바이낸스가 무엇을 겁냈는지 짐작이 됩니다. 시세나 호가처럼 공개된 데이터는 인증이 없어도 읽힙니다. 거래와 잔고 조회, 내부 이체는 사용자가 허용해야 열립니다. 그리고 외부 주소로의 출금은 기본으로 막혀 있습니다. 에이전트가 메인 계좌에서 거래용 서브계좌로 돈을 옮기는 것조차 못 하게 해 두었어요. 서브계좌에 돈을 넣는 일은 사람이 직접 해야 합니다. 주문마다 사용자 승인을 받게 할 수도 있고, 한번 권한을 준 뒤에는 알아서 거래하도록 놓아둘 수도 있습니다. 권한은 언제든 회수할 수 있죠. 바이낸스의 제품 부사장인 제프 리는 이 구조를 "완전한 자유를 주는 대신, 에이전트를 통해 무엇을 할 수 있는지에 대한 세밀한 접근 통제 권한을 사용자 손에 쥐여 주었다"고 설명했습니다.

▸ 나가는 것은 막았지만 사라지는 것은 막지 못합니다

여기까지 읽으면 꽤 촘촘해 보입니다. 그런데, 출금을 막았다는 것이 정확히 무엇을 막은 것인지 한 번 더 짚어 볼 필요가 있습니다. 자산이 계정 밖으로 나가는 경로를 닫은 것이지, 자산이 사라지는 경로를 닫은 것이 아니거든요. 거래는 원래 돈을 잃을 수 있는 행위입니다. 출금 권한 없이도, 선물 계좌에 들어앉은 에이전트는 하루면 잔고를 0으로 만들 수 있습니다.

숫자를 보면 이 간극이 더 분명해집니다. 바이낸스가 정해 둔 일일 한도가 있는데요. 지갑 쪽 일반 스왑은 하루 5만 달러(약 7,000만 원), DeFi 거래는 기본값이 하루 10만 달러(약 1억 4,000만 원), x402 결제는 하루 20달러(약 3만 원)까지입니다. 20달러는 특히 신중하게 잡은 숫자인데요. 에이전트가 API 호출값을 스스로 결제하는 용도이니, 무한 루프에 빠졌을 때 청구서가 어디까지 갈지 계산해 본 흔적이죠.

그런데, 현물과 선물을 거래하는 서브계좌에는 그런 한도가 없습니다. 바이낸스가 별도의 손실 상한을 두지 않았기 때문에, 사용자가 그 계좌에 넣어 둔 금액이 곧 한도입니다. 스왑 5만 달러는 막아 주면서 거래 손실 5만 달러는 막지 않는 셈인데, 이것이 설계 실수라고는 생각하지 않습니다. 거래에 손실 상한을 두는 순간 거래소가 사용자의 투자 판단을 대신 제한하는 일이 되니까요. 다만 결과적으로 남는 사실은 하나입니다. 권한 목록을 아무리 잘게 나눠도 실제 피해 규모를 정하는 것은 목록이 아니라, 그 목록이 닿을 수 있는 자산의 크기입니다.

MCP 서버를 만들어 보신 분들은 이 지점이 익숙하실 겁니다. 도구를 정의할 때 우리가 시간을 쏟는 곳은 대개 스키마와 권한 범위입니다. 읽기와 쓰기를 나누고, 위험한 동작에는 확인 절차를 붙이고, 인자를 검증하죠. 그런데 정작 사고의 크기를 결정하는 것은 그 도구 뒤에 연결해 둔 데이터베이스가 스테이징인지 운영인지입니다. (실은 이것 때문에 글을 쓰기 시작했습니다.) 바이낸스가 만든 서브계좌는 잘 만든 샌드박스입니다. 그리고 샌드박스의 안전성은 언제나 그 안에 무엇을 넣었느냐로 결정되죠.

▸ 봇은 로그를 남겼지만 에이전트는 이유를 남기지 않습니다

거래소 API에 프로그램을 붙여 자동으로 매매하는 일 자체는 새롭지 않습니다. 오히려 오래된 일이죠.

오픈소스 자동매매 봇 freqtrade가 바이낸스 API를 호출하며 남긴 로그입니다. 몇 초 단위로 어떤 판단을 했고 어디서 실패해 몇 번 재시도했는지가 전부 적혀 있습니다.
오픈소스 자동매매 봇 freqtrade가 바이낸스 API를 호출하며 남긴 로그입니다. 몇 초 단위로 어떤 판단을 했고 어디서 실패해 몇 번 재시도했는지가 전부 적혀 있습니다.

*출처: Wikimedia Commons*

이런 봇의 미덕은 정확도가 아니라 설명 가능성이었습니다. 저 로그를 보면 봇이 몇 시 몇 분에 무엇을 확인했고, 어떤 조건에서 주문을 보류했고, 어디서 타임아웃이 나서 재시도했는지가 다 남습니다. 판단의 근거가 코드에 적혀 있으니 사후에 따라가 볼 수 있고, 같은 입력을 주면 같은 결정이 나옵니다. 손실이 났을 때 무엇을 고쳐야 하는지 알 수 있다는 뜻입니다.

LLM 에이전트는 그 성질을 갖고 있지 않습니다. 제프 리 부사장이 같은 인터뷰에서 덧붙인 말이 그래서 더 눈에 걸립니다. "우리는 사용자의 행위가 어떤 판단에서 나온 것인지 정말로 볼 수 없다." 거래소는 주문 하나하나를 기록하지만, 그 주문을 내기로 한 이유는 모델 안에 있고 거기까지는 닿지 않습니다. 조작이 있었는지도 탐지하기 어렵죠. 실제로 기자가 프롬프트 인젝션으로 에이전트가 조작되면 어떻게 되느냐고 물었을 때, 리 부사장이 내놓은 답은 서브계좌였습니다.

이 성질이 왜 유독 거래에서 문제가 되는지는 생각해 보면 자명합니다. 시장 데이터는 숫자만으로 오지 않습니다. 코인 이름, 프로젝트 설명, 공지문, 소셜 미디어의 문장이 함께 들어옵니다. 예전의 봇은 그 문자열을 숫자로 파싱할 뿐이어서 문장의 뜻에 반응하지 않았죠. 그런데 LLM은 그것을 문장으로 읽습니다. 읽으라고 준 데이터가 시키는 말이 될 수 있는 구조입니다. 거래소가 볼 수 없는 것은 판단 근거인데, 공격자가 노리는 곳이 바로 그 판단 근거입니다.

▸ 국내에서는 이미 사전예약이 열려 있습니다

이 흐름을 바이낸스가 시작한 것도 아닙니다. OKX가 앞서 오픈소스 MCP 툴킷을 냈고, 크라켄이 3월에 MCP 서버를 품은 오픈소스 CLI 도구를 공개했으며, 코인베이스가 6월에 Coinbase for Agents를 열었습니다. 거래소들이 AI 에이전트 시대의 금융 인프라 자리를 두고 경쟁하는 국면인데요. 바이낸스의 차별점은 서브계좌로 울타리를 친 방식이라고 볼 수 있겠습니다.

그리고 이 이야기는 이미 국내에도 와 있습니다. 다올투자증권이 지난 7월 27일부터 MCP 트레이딩 서비스의 사전예약을 받기 시작했습니다. ChatGPT나 Claude 같은 생성형 AI의 대화창에서 국내주식 시세와 보유종목, 계좌잔고, 주문가능금액을 확인하고 주문까지 요청할 수 있는 서비스로, 8월 중 사전예약 고객에게 먼저 열린다고 합니다. 금융위원회도 AI 에이전트 확산을 염두에 두고 망분리 규제를 추가로 완화하고, AI 학습에 쓰이는 개인신용정보 동의 제도와 가명처리·결합 규제를 정비하는 방향을 잡고 있습니다.

암호화폐 거래소와 국내 증권사는 무게가 다릅니다. 국내는 자본시장법의 영역이고, 투자자 보호 의무와 설명 의무가 붙습니다. 그런데 에이전트가 낸 주문에 대해 그 의무를 누가 어떻게 이행하는지는 아직 정리된 문법이 없습니다. 손실이 났을 때 사용자가 판단한 것인지, 모델이 판단한 것인지, 프롬프트를 심은 제3자가 판단한 것인지를 구분할 방법이 필요한데, 방금 본 것처럼 거래소도 증권사도 그 근거를 들여다볼 수 없습니다.

물론 이 기술이 열어 주는 편의는 실제로 큽니다. 대화창에서 잔고를 확인하고 조건을 걸어 두는 일은 앱을 여러 번 열어 메뉴를 찾아 들어가는 것보다 분명히 편하죠. 그런데, 그 편의가 권한을 훑어보지도 않고 허용을 누르는 습관과 만나면 이야기가 달라집니다. 사진 접근을 허용하던 손과 선물 계좌 접근을 허용하는 손이 같은 손이라는 점이 이 구조의 진짜 약한 고리입니다.

권한 화면을 끝까지 읽는 습관이 갑자기 생기지는 않겠죠. 그렇다면 순서를 바꿔 두는 편이 낫습니다. 어떤 권한을 줄지 고르기 전에, 그 계좌에 얼마를 넣어 둘지를 먼저 정하는 고민이 필요합니다.

#바이낸스 #MCP #AI에이전트 #권한설계 #프롬프트인젝션 #자동매매