CAPTCHA는 단순한 아이디어입니다. 사람은 풀 수 있고 기계는 풀 수 없는 task를 방문자 앞에 두고, 통과한 사람을 그대로 통과시키는 것입니다. 오랫동안 이것은 합리적인 절충이었습니다. 사람은 몇 초를 잃었고, 가장 나쁜 automation은 느려졌습니다.
세 가지가 바뀌었습니다. 기계는 task를 잘 풀게 되었고, 사람들은 그것을 푸는 데 지쳤습니다. 그리고 새로운 종류의 방문자가 등장했습니다: 실제 고객을 대신해 행동하는 AI agent, 그리고 AI assistant와 함께 일하는 사람입니다. "당신은 사람인가요?"라고 묻는 test는 이들 어느 쪽에도 좋은 답을 주지 못합니다.
Proof of Actor는 다른 접근을 취합니다. 모든 방문자를 시험하는 대신, 결론 뒤에 있는 evidence와 함께 애플리케이션에 누가 또는 무엇이 행동 중인지 알려 주고, challenge가 정말 필요한지 여부를 코드가 결정하게 합니다.
짧게 보면
| CAPTCHA | Proof of Actor | |
|---|---|---|
| 핵심 질문 | 이 방문자가 사람 test를 통과할 수 있는가? | 누가 또는 무엇이 행동 중이며, evidence는 무엇인가? |
| 비용을 부담하는 쪽 | challenge를 보는 모든 방문자 | 누구도 아닙니다. classification은 백그라운드에서 이루어집니다 |
| 가능한 답 | 통과 또는 실패 | Human, Human + AI, Agent 또는 Unknown, 그리고 basis |
| 정당한 AI agent | 멈추거나, test를 우회해야 함 | 인식되고, 적절한 경험으로 라우팅됨 |
| AI assistant를 사용하는 사람 | 다른 방문자와 동일하게 처리됨 | 구분된 class, Human + AI |
| 불확실한 traffic | 같은 test를 반드시 통과해야 함 | Unknown, route별로 선택하는 fallback 포함 |
| 적용 위치 | 배치한 page들 | 통합이 적용되는 모든 route |
| 설치 후 기본 동작 | 보이는 challenge | Observation, policy를 추가하기 전까지는 아무것도 바뀌지 않음 |
test와 evidence
CAPTCHA는 하나의 정보 비트만 생성합니다. 방문자가 통과했는지 실패했는지입니다. 방문자가 누구였는지, assistant와 함께 일했는지, 결과를 얼마나 신뢰해야 하는지는 알려 주지 않습니다. 그리고 그 비트는 방문자에게 일을 시켜서 얻습니다.
Proof of Actor는 classification과 그 evidence basis를 생성합니다. verified 결과는 공개된 key로 검증된 request signature처럼 검증 가능한 assertion이 확인되었음을 의미합니다. declared 결과는 client 또는 자체 애플리케이션이 그렇게 선언했음을 의미합니다. inferred 결과는 추론으로 표시됩니다. Unknown은 evidence가 판단을 뒷받침하지 못한다는 뜻입니다. 팀은 모든 결과를 읽고 그것이 무엇에 근거하는지 볼 수 있으며, 방문자는 아무것도 할 필요가 없습니다.
모두를 challenge하는 비용
모든 challenge는 최상의 사용자에게 마찰을 주어 최악의 사용자를 늦추는 방식입니다. 회원 가입 page에서는 전환을 깎아먹고, checkout에서는 매출을 줄이며, 접근성 측면에서는 사람들을 아예 배제할 수 있습니다. 팀이 그 비용을 감수하는 이유는 그 반대편에 누가 있는지에 대한 더 나은 signal이 없기 때문입니다.
actor context가 있으면 trade-off가 달라집니다. 사람 주도 session에는 일반적인 경험을 유지하고, evidence가 충분한 곳에서는 challenge를 건너뛰며, 여전히 가치가 있는 좁은 경우에만 남길 수 있습니다. 예를 들어 비밀번호 변경이나 고가치 action에서 Unknown 결과가 나오는 경우입니다. 대부분의 방문자는 더 이상 challenge를 보지 않습니다.
정당한 agent에는 puzzle이 아니라 경로가 필요합니다
CAPTCHA는 software를 막기 위해 만들어졌습니다. 페이지를 방문하는 software가 거의 모두 원치 않는 것이었을 때는 그럴 만했습니다. 이제는 그렇지 않습니다.
오늘날 assistant는 고객을 위해 요금제를 비교할 수 있고, agent는 애플리케이션을 통해 회의를 예약할 수 있으며, AI client는 작업을 완료하기 위해 MCP server를 호출할 수 있습니다. 이들을 막으면 고객을 막는 셈입니다. 사람을 대상으로 만든 page와 puzzle로 억지로 통과시키면, 화면이 조금만 바뀌어도 깨지는 취약한 automation이 생깁니다.
Proof of Actor는 agent를 인식하고, signed request가 있으면 그 뒤에 있는 key와 operator를 확인할 수 있습니다. 그런 다음 애플리케이션은 challenge보다 더 나은 일을 할 수 있습니다. 구조화된 API를 제공하거나, agent 친화적인 흐름을 제공하거나, automation에 맞는 rate limit을 적용할 수 있습니다. AI agent에 구조화된 content 제공하기 가이드에서 방법을 설명합니다.
verified된 identity는 permission과 같은 것이 아닙니다. 유효한 signature는 어떤 key가 request에 서명했는지 알려 줄 뿐이며, 그 agent가 action을 수행할 수 있는지는 authorization decision에 달려 있습니다. Proof of Actor는 이 두 질문을 분리해서 다룹니다.
AI와 함께 일하는 사람도 여전히 사용자입니다
assistant를 사용해 support message를 작성하거나, AI의 도움으로 form을 채우는 사람은 고객입니다. 사람 test는 그들에 대해 유용한 말을 해 주지 못합니다. 통과하거나, 행동이 특이해 보인다는 이유로 차단될 뿐입니다.
Proof of Actor는 그들에게 고유한 class인 Human + AI를 제공합니다. 이는 assistance가 declared되거나 지원되는 integration을 통해 관찰될 때 보고됩니다. 이를 통해 AI가 작성한 제출물을 적절한 팀에 표시하고, 보조를 받는 사용자가 제품을 어떻게 이동하는지 분석하며, 경험을 매끄럽게 유지할 수 있습니다. 자세한 내용은 AI-assisted interaction 용어집 항목을 참고하세요.
불확실한 경우는 의도적으로 다루세요
일부 traffic은 항상 불분명합니다. CAPTCHA는 이를 어디서나 같은 방식으로 처리합니다. 모두가 test를 치릅니다.
Proof of Actor는 Unknown을 1급 결과로 반환하며, 기본적으로 human으로도, malicious로도 취급하지 않습니다. 위험도에 맞춰 route별 fallback을 선택합니다:
- 공개 page와 문서: allow하고, 표준 경험을 유지합니다.
- 회원 가입과 문의 form: 일반적인 abuse controls와 함께 allow합니다.
- 계정 변경: 기존의 재인증 흐름을 유지합니다.
- 영향이 큰 action: review로 라우팅하거나, 여전히 원한다면 여기에서 challenge를 적용합니다.
바로 이 지점에서 challenge가 아직 자리를 가질 수 있습니다. 모든 방문자에게 부과하는 통행료가 아니라, 민감한 route에서 의도적으로 선택하는 policy outcome으로서입니다.
판단은 어디에서 이루어지나요
CAPTCHA widget은 표시되는 순간, 당신이 배치한 page에서, 한 번만 판단합니다.
Proof of Actor에서는 애플리케이션이 판단합니다. 통합이 적용되는 모든 route에서 말입니다. server middleware, Next.js, edge, 승인된 browser integration, 일반적인 HTTP API 또는 MCP server에서 동작합니다. policy는 actor class와 basis를 함께 사용합니다. allow, adapt, challenge, review 또는 rate-limit입니다. 이것들은 코드 안에, 나머지 business logic 옆에 존재하며, page를 다시 설계하지 않고도 바꿀 수 있습니다.
배포 방식
Proof of Actor는 observation mode에서 시작합니다. 설치해도 사용자가 보는 것은 아무것도 바뀌지 않습니다. 무차별 challenge에서 벗어나는 합리적인 경로는 다음과 같습니다:
- Observe. 기존 challenge를 유지한 채 Proof of Actor를 추가합니다. 각 route의 actor mix와 Unknown rate를 살펴봅니다.
- Compare. challenge가 적용된 각 route에서 human session, AI-assisted user, verified agent에 얼마나 많은 challenge가 발생하는지 확인합니다.
- Preview. evidence가 충분한 곳에서는 challenge를 건너뛰고, 민감한 action의 Unknown에는 유지하는 policy를 작성합니다. 실제 traffic으로 그 효과를 preview합니다.
- Enforce. 문서화된 fallback과 rollback switch를 함께 두고, 한 번에 하나의 route씩 policy를 활성화합니다.
actor-aware policy를 안전하게 rollout하는 방법 가이드에서 각 단계를 자세히 다룹니다.
CAPTCHA가 여전히 의미가 있는 경우
challenge는 몇몇 지점에서 여전히 유용한 도구입니다. 민감한 action을 향한 불명확한 traffic의 급증, 적극적인 abuse를 받는 form, 또는 아직 다른 signal이 없는 route가 그렇습니다. Proof of Actor는 그 도구를 버리라고 요구하지 않습니다. 도움이 되는 곳에서만 사용할 수 있는 context를 제공합니다.
시작하기
Proof of Actor는 private beta 상태입니다. 선정된 founding developer team은 합의된 usage limits 내에서 최대 12개월 동안 무료로 이용할 수 있으며, 이를 만드는 팀의 직접 지원을 받을 수 있습니다. early access 신청하기에서 지금 어떤 route에 challenge를 적용하고 있는지 알려 주세요.