본문으로 건너뛰기
Didit, 200만 달러 투자 유치 및 Y Combinator (W26) 합류
Didit
블로그로 돌아가기
블로그 · 2026년 5월 21일

트래블 룰 데이터 교환: TRISA, TRP 및 OpenVASP (KO)

트래블 룰은 데이터 교환 문제입니다. 두 VASP는 전송이 완료되기 전에 송금인과 수취인 정보를 안전하게 교환해야 합니다. TRISA, TRP, OpenVASP가 이를 수행하는 방법과 Didit이 Transaction Monitoring 내에서 이들을 실행하는 방법을 설명합니다.

작성자: Didit업데이트됨
travel-rule-protocols-trisa-trp.png

FATF 트래블 룰의 메커니즘을 살펴보면 메시징 문제입니다. 암호화폐 전송이 완료되기 전에, 송신 VASP는 수신 VASP에 송금인과 수취인(이름, 식별자, 계정 참조)을 설명하는 구조화된 패킷을 전달해야 하며, 수신 측은 이를 확인해야 합니다. 문제는 이러한 핸드셰이크를 위한 단일 글로벌 레일이 없다는 것입니다. 대신 경쟁하는 상호 운용성 프로토콜이 있으며, 두 VASP가 그 중 하나를 사용할 수 있을 때만 전송이 성공합니다.

Didit은 이 핸드셰이크를 대신 처리합니다. 트래블 룰 데이터 교환은 거래 모니터링에 내장되어 있으며, 엔진은 VASP가 실제로 프로덕션에서 사용하는 세 가지 프로토콜(TRISA, TRP, OpenVASP)을 지원합니다. 전송을 한 번 보내면 엔진이 상대방을 확인하고, 양측이 지원하는 프로토콜을 선택하고, 송금인 및 수취인 페이로드를 교환하며, 의무를 상태로 추적합니다. 이 가이드는 프로토콜, 페이로드 및 교환이 실행되는 방식을 설명합니다.

주요 내용

  • 트래블 룰은 VASP 간 데이터 교환입니다. 발신자는 송금인 및 수취인 정보를 전송하고, 수신자는 이를 수집하고 확인합니다.
  • 세 가지 프로토콜이 이 교환을 수행합니다 — TRISA, TRP, OpenVASP — 각각 다른 신뢰 및 전송 모델을 가집니다. Didit은 세 가지 모두를 지원합니다.
  • 페이로드는 송금인 및 수취인 기록입니다 — 전송 당사자로서, 두 VASP가 동일한 필드를 읽을 수 있도록 구조화됩니다.
  • Didit은 거래 모니터링 내에서 교환을 실행합니다. 각 의무는 여섯 가지 상태(UNKNOWN, COMPLIANT, PENDING_ACTION, PENDING_COUNTERPARTY, FAILED, EXEMPT) 중 하나로 해결됩니다.
  • 하나의 /v3/ API. 암호화폐 전송은 currency_kind: "crypto"와 함께 POST https://verification.didit.me/v3/transactions/로 게시되며, 지갑 심사는 $0.02(자체 키 사용)부터 함께 실행됩니다.

프로토콜의 기능

세 가지 프로토콜 모두 동일한 두 가지 문제(상대방 VASP를 어떻게 찾고 신뢰할까?고객 데이터를 어떻게 안전하게 보낼까?)를 해결하지만, 서로 다른 절충점을 가집니다.

  • TRISA (Travel Rule Information Sharing Architecture)는 인증 기관을 기반으로 하는 P2P 모델입니다. VASP는 등록하고, 신원을 증명하고, 인증서를 받은 다음, 암호화된 채널을 통해 직접 데이터를 교환합니다. 신뢰는 검증된 회원 디렉토리에 기반합니다.
  • TRP (Travel Rule Protocol)는 대규모 기관 그룹에서 선호하는 API 우선 사양입니다. 연결을 설정한 상대방 간에 송금인 및 수취인 페이로드를 전송하기 위한 경량 REST 핸드셰이크를 정의합니다.
  • OpenVASP는 전송 전에 VASP 간 세션을 설정하기 위해 온체인 및 메시징 계층 신호를 사용하는 개방형 표준이며, 이후 고객 데이터를 오프체인으로 교환합니다.

광범위한 도달 범위를 원하는 VASP는 하나 이상의 프로토콜을 지원해야 합니다. 왜냐하면 상대방 VASP가 모두 동일한 프로토콜을 사용하지 않을 것이기 때문입니다. Didit 내에서 교환을 실행한다는 것은 하나를 선택하고 바라지 않아도 된다는 의미입니다. 엔진이 상대방이 지원하는 프로토콜을 협상합니다.

왜 중요한가

FATF 권고 16 및 그 지역적 구현(그 중 EU 자금 이체 규정이 가장 중요함)에 따라, 송금인 및 수취인 데이터 교환은 임계값 이상에서 의무적이며, 감독 기관은 이를 검토합니다. 그러나 요구 사항은 프로토콜이 아닌 결과(데이터가 전송, 보유, 확인되어야 함)에 따라 작성됩니다. 프로토콜의 파편화는 엔지니어링 현실이며, 규칙을 통해 해결할 수 있는 문제가 아닙니다.

그렇기 때문에 프로토콜 지원은 여러분이 구축해야 할 문제가 되어서는 안 됩니다. TRISA 등록, TRP 엔드포인트, OpenVASP 신호를 구축하고 이 세 가지를 최신 상태로 유지하는 것은 제품과 관련 없는 지속적인 엔지니어링 비용입니다. 이를 이미 전송을 평가하는 동일한 모니터링 엔진에 통합하면 이 비용을 하나의 통합으로 줄일 수 있습니다.

기술적 세부 사항

전송은 통합 /v3/ API를 통해 생성됩니다. 송금인은 subject이고, 수취인은 counterparty이며, currency_kind: "crypto"는 트래블 룰 및 지갑 심사 경로를 트리거합니다.

curl -X POST https://verification.didit.me/v3/transactions/ \
  -H "x-api-key: $DIDIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "transaction_id": "txn_7b9e22",
    "category": "travel_rule",
    "amount": 12500,
    "currency": "BTC",
    "currency_kind": "crypto",
    "direction": "OUTBOUND",
    "txn_date": "2026-05-21T12:14:00Z",
    "subject": {
      "vendor_data": "user_8830",
      "role": "ORIGINATOR",
      "entity_type": "INDIVIDUAL",
      "first_name": "Marta",
      "last_name": "Ferreira"
    },
    "counterparty": {
      "role": "BENEFICIARY",
      "entity_type": "INDIVIDUAL",
      "wallet_address": "bc1q...0a7k"
    }
  }'

엔진은 상대방 VASP를 확인하고, 지원되는 프로토콜을 선택하고, 페이로드를 교환한 다음, 사용된 프로토콜과 트래블 룰 상태를 반환합니다.

{
  "transaction_id": "txn_7b9e22",
  "status": "APPROVED",
  "travel_rule_status": "COMPLIANT",
  "protocol": "TRP",
  "counterparty_vasp": "vasp_resolved",
  "wallet_screening": {
    "risk_score": 9,
    "risk_level": "LOW"
  }
}

송금인/수취인 페이로드. 각 전송은 두 당사자를 구조화된 기록(송금인(보내는 고객) 및 수취인(받는 고객))으로 전달하여, 두 VASP가 프로토콜에 관계없이 동일한 필드를 매핑할 수 있도록 합니다. 송금인 데이터는 이미 보유하고 있는 KYC에서 제공하며, 수취인 측은 교환 중에 상대방이 확인합니다.

여섯 가지 상태. 교환을 수행하는 프로토콜에 관계없이, 의무는 다음 상태 중 하나로 해결됩니다.

상태의미
UNKNOWN아직 평가되지 않았거나, 상대방 VASP를 확인할 수 없습니다.
COMPLIANT데이터가 교환 및 확인됨 — 의무 이행.
PENDING_ACTION진행을 위해 귀하 측에서 조치가 필요합니다.
PENDING_COUNTERPARTY상대방 VASP의 응답을 기다리는 중입니다.
FAILED교환을 완료할 수 없습니다 — 연결할 수 없는 상대방, 거부된 데이터 또는 프로토콜 불일치.
EXEMPT범위 외 — 임계값 미만이거나 기타 의무가 없습니다.

동시 지갑 심사. 상대방 주소는 동일한 호출에서 온체인으로 심사되며, 스크리닝당 $0.02(자체 키 사용, Crystal 또는 Merkle Science)부터 시작하므로, 프로토콜 수준의 COMPLIANT는 주소 수준의 위험을 숨기지 않습니다.

프로토콜 선택 — 그리고 선택하지 않음

VASP에 대한 실용적인 지침은 '선택하지 마라'입니다. 상대방은 TRISA, TRP, OpenVASP에 분산되어 있으며, 특정 전송을 COMPLIANT로 만드는 프로토콜은 해당 상대방이 지원하는 프로토콜입니다. Didit은 전송별로 프로토콜을 협상하므로, 통합은 동일합니다. 송금인 및 수취인 데이터를 한 번 보내면 엔진이 핸드셰이크를 처리합니다. 프로토콜 불일치로 인한 FAILED 상태는 스택의 간극이 아니라 상대방을 조사해야 한다는 신호입니다.

사용 사례

  • VASP 및 거래소 — 각 레일을 구축하고 유지 관리하는 대신 하나의 통합을 통해 세 가지 프로토콜 모두에서 상대방에게 도달합니다.
  • 온/오프 램프 — 수신 지갑을 동일한 호출에서 심사하면서 대상 VASP와 송금인 및 수취인 데이터를 교환합니다.
  • 수탁자 — 단일하고 일관된 상태 모델로 혼합된 프로토콜의 광범위한 상대방을 처리합니다.
  • DeFi 프런트 엔드 — 규제된 VASP가 흐름에 있는 경우 교환을 수행하고, 의무가 실제로 적용되지 않는 경우 EXEMPT로 해결합니다.

Didit과 통합하는 방법

  1. 트래블 룰 규칙 활성화. 비즈니스 콘솔에서 암호화폐 모니터링 및 암호화폐 심사와 함께 사전 설정된 트래블 룰 규칙을 켭니다.
  2. 전송 보내기. currency_kind: "crypto", 송금인을 subject로, 수취인을 counterparty로, travel_rule 카테고리와 함께 POST /v3/transactions/를 보냅니다.
  3. 프로토콜 및 상태 읽기. 응답은 교환을 수행한 프로토콜과 결과 travel_rule_status를 알려줍니다. PENDING_*FAILED 의무에 대해 조치합니다.
  4. 콘솔에서 예외 처리. 보류 중이거나 실패한 교환, 경고 및 사례 워크플로는 모니터링과 동일한 인터페이스에 있습니다.

이 모든 것은 통합 /v3/ API에서 실행되므로, KYC로 온보딩하고 AML로 심사했으며 이제 전송 서비스를 제공하는 고객은 모니터링, 지갑 심사 및 트래블 룰을 통해 연결된 동일한 신원입니다.

자주 묻는 질문

Didit은 어떤 트래블 룰 프로토콜을 지원하나요?

TRISA, TRP, OpenVASP — VASP가 프로덕션에서 사용하는 세 가지 프로토콜입니다. 엔진은 주어진 상대방이 지원하는 프로토콜을 협상합니다.

어떤 데이터가 교환되나요?

송금인 및 수취인 기록 — 전송 당사자 — 두 VASP가 동일한 필드를 읽을 수 있도록 구조화됩니다. 기존 KYC에서 송금인 정보를 제공하고, 상대방이 수취인 측을 확인합니다.

하나의 프로토콜을 선택해야 하나요?

아니요. 하나를 선택하면 다른 프로토콜을 사용하는 상대방과의 연결이 끊어집니다. Didit은 상대방이 지원하는 것에 따라 전송별로 프로토콜을 선택합니다.

상대방에게 연락이 닿지 않으면 어떻게 되나요?

의무는 FAILED(프로토콜 불일치 또는 연결할 수 없는 상대방과 같은 이유로)로 해결되거나, 기다리는 동안 PENDING_COUNTERPARTY 상태로 유지됩니다. 이 두 가지 모두 콘솔에서 확인할 수 있습니다.

이것이 거래 모니터링과 별개의 제품인가요?

아니요. 데이터 교환은 거래 모니터링에 내장되어 있으며, 모니터링 및 지갑 심사를 위해 이미 보내는 동일한 암호화폐 전송에 적용됩니다.

시작할 준비가 되셨나요?

트래블 룰 문서를 읽고, 암호화폐 트래블 룰 솔루션 페이지거래 모니터링 제품 페이지에서 전체 그림을 확인하고, 가격 페이지에서 투명한 호출당 가격을 확인하세요. 준비가 되었다면 무료로 시작하세요 — 매월 500건의 무료 KYC 확인과 모니터링에 내장된 트래블 룰 데이터 교환을 제공합니다.

신원 및 사기 방지 인프라.

KYC, KYB, 거래 모니터링, 지갑 심사를 위한 단일 API. 5분 만에 통합하세요.

AI에게 이 페이지 요약 요청
트래블 룰 프로토콜: TRISA, TRP, OpenVASP | Didit.