Change Log

Version 1.5.6

Enclave

  • 데이터베이스 SSL connection을 지원하도록 수정되었습니다.

Version 1.5.5

Enclave

  • 드물게 발생하는 INVALID-FORMAT 오류가 나지 않도록 수정했습니다.

Version 1.5.4

Enclave

  • IVMS101 포맷에 법인(LegalPerson)을 위한 설립일을 기입할 수 있는 dateOfIncorporation 필드가 추가되었습니다.

  • IVMS101 포맷의 지리적 주소 항목에서 townName이 더 이상 필수 입력값이 아닙니다.

  • (버그 수정) 지리적 주소가 포함된 개인 정보를 저장할 때 buildingNumberbuildingName을 서로 바꿔서 저장하는 버그를 수정하였습니다.

Version 1.5.3

주요 변경 사항

  • 지갑 주소나 트랜잭션 ID 불일치를 최소화하기 위해 지갑 주소 및 트랜잭션 ID 표준 가이드를 제공합니다.

  • 보안을 강화하기 위해 Enclave 서버가 non-root 유저로 동작하도록 수정되었습니다.

  • PostgreSQL 사용시 public schema를 사용하지 않고 custom schema를 사용할 수 있는 옵션을 추가했습니다.

Enclave 버그 수정

  • 아주 드물게 발생하는 ivms101 파싱 오류를 수정했습니다.

  • 아주 드물게 발생하는 데이터베이스 데드락 버그를 수정했습니다.

Version 1.5.2

주요 변경 사항

Version 1.5.1

Enclave 버그 수정

  • Vasp connect 기능을 통해 다른 VASP 들과 연결 상태를 변경했을 때, 연결 상태가 바로 적용되지 않았던 버그 수정

Version 1.5.0

주요 변경 사항

Version 1.4.1

Enclave 버그 수정

  • 낮은 확률로 사용자 검증 결과가 enclave DB에 제대로 저장되지 않는 문제가 수정되었습니다.

Version 1.4.0

주요 변경 사항

  • CODE 프로토콜과 상호 운용이 가능하도록 수정되었습니다.

Enclave

  • VASP 목록 조회 API를 호출하면 CODE 프로토콜을 사용하는 VASP들도 목록에 표시되도록 수정되었습니다.

  • VASP 목록 조회 API 반환값에서 countryCode, protocol 항목이 추가되었습니다.

  • VASP 목록 조회 API 반환값에서 새로운 vaspStatus 값(INTEROPERATED)이 추가되었습니다.

Version 1.3.9

Enclave 버그 수정

  • 사용자 검증 VASP API에서 requiredBeneficiaryInfo에 없는 정보를 반환했을 때 enclave에서 해당 정보를 제거하는 로직에 있던 버그가 수정되었습니다.

Version 1.3.6

Enclave 버그 수정

  • 사용자 검증 VASP API에서 ivms101 본문을 반환하지 않았을 경우, 검증 결과가 ERROR(UNDEFINED-ERROR)로 반환되는 문제가 수정되었습니다.

Version 1.3.4

Enclave 버그 수정

  • Oracle 데이터베이스를 사용하는 경우 commands 테이블에서 에러가 발생하는 문제가 수정되었습니다.

Version 1.3.2

Enclave 버그 수정

  • VEGA_VERIFICATION_AUTHORIZATION_TOKEN 환경 변수를 설정하지 않았을 경우, authorization header가 잘못 설정되는 문제 수정

  • 검증 결과 조회 API의 response body에서 count 값이 문자열로 반환되던 문제 수정

Version 1.3.0

주요 변경점

  • 사용자 주소 검증 API가 사용자 계정 검증 API로 변경되었습니다.

    • 기존에 지갑 주소만 검증하는 것뿐만 아니라, 선택적으로 이름 매칭 검증도 수행할 수 있도록 변경되었습니다.

    • 자세한 사항은 사용자 계정 검증 API를 참고하세요.

  • Robot VASP를 상대로 좀 더 다양한 케이스를 테스트할 수 있도록 수정하였습니다.

    • 출금 검증 시 다양한 에러 케이스를 테스트할 수 있습니다.

    • 자세한 사항은 Robot VASP 활용을 참고하세요.

Enclave API

  • 트랜잭션 결과 리포트 API의 호출 정책이 변경되었습니다.

    • 기존에는 최종성(finality)이 확인되면 호출하도록 가이드 했지만, 이제는 트랜잭션의 ID (txHash)를 알아 내자마자 호출하도록 변경되었습니다.

  • 각 API에서 반환될 수 있는 에러 코드가 업데이트되었습니다.

VASP API

  • 사용자 검증 API 구현 정책 가이드가 업데이트되었습니다.

    • 송신 VASP에서 요청하지 않은 수신자의 개인 정보는 기입하지 않습니다. 오직 요청한 정보만 기입하여 반환합니다.

  • 사용자 검증 API의 request body에 verificationUuid가 추가되었습니다.

  • Callback API 구현 정책 가이드가 업데이트되었습니다.

    • 멱등성을 보장하도록 구현해야 합니다. (중복 데이터의 처리가 가능해야 합니다.)

  • 사용자 계정 검증 API가 변경되었습니다.

    • 기존에 주소만 검증하던 것에서, 선택적으로 법정 기준 금액 이상인 경우에는 수취인 이름 매칭 검증도 함께 수행할 수 있도록 스펙이 변경되었습니다.

Enclave

  • 주소 검증 VASP API사용자 계정 검증 VASP API로 대체됨에 따라 enclave 환경 변수 이름이 변경되었습니다.

    • 변경 전: VEGA_VERIFICATION_ADDRESS_API_PATH

    • 변경 후: VEGA_VERIFICATION_ACCOUNT_API_PATH

  • VASP API Authorization Token의 헤더 키값을 지정할 수 있는 환경 변수가 추가되었습니다.

  • Enclave DB 테이블 중에서 commands 테이블의 index가 변경되었습니다.

    • commands table의 index 중 "status"와 "fetched_at"으로 구성된 인덱스에 "created_at" 컬럼이 추가되었습니다.

    • 자세한 사항은 데이터베이스 페이지를 확인해 주세요.

IVMS101

  • IVMS101 사용자 개인정보 종류 코드에서 오타가 수정되었습니다.

    • NATURAL_PERSON_COUNTRY_OF_REGISDENCE -> NATURAL_PERSON_COUNTRY_OF_RESIDENCE

    • LEGAL_PERSON_COUNTRY_OF_REGIDENCE -> LEGAL_PERSON_COUNTRY_OF_REGISTRATION

Version 1.2.0

주요 변경점

  • 일부 enclave API의 호출 방식이 비동기 방식으로 변경되었습니다.

    • 동기 방식으로 호출할 때 받았던 response는 이제 callback VASP API로 전달됩니다.

비동기 방식 변경 배경

Travel Rule을 위한 사용자 확인 과정은 필수적으로 상대방 VASP와의 통신을 할 수밖에 없습니다. 문제는 상대방 VASP에서 사용자 검증에 대한 응답을 언제 해 줄지 알 수 없다는 것입니다.

특히나 사용자 검증 요청과 같이 시간이 약간 더 걸릴 수도 있는 작업들은 응답이 바로 온다는 보장이 없습니다. 그럴 경우 verification이 동기적으로 동작하면 상대적으로부터 응답이 올 때까지 connection을 유지해야 하는 부담이 생깁니다. 출금 요청이 특정 시점에 많이 몰릴 수 있는 경우에는 connection 유지 부담은 더욱더 커질 수 있습니다.

따라서 이 경우를 대비하여 사용자 검증 요청 API 등 몇몇 API를 비동기 방식으로 변경하게 되었습니다. 그에 따라 기존에 동기 방식으로 호출되던 사용자 검증 요청 API의 response body는 새로운 VASP API인 callback API를 통해 전달됩니다.

  • 상대방 VASP와 정보를 주고받을 때 필요한 개인 정보 종류를 지정할 수 있는 기능이 추가되었습니다.

    • 해당 기능을 위해 개인 정보 종류 코드가 추가되었습니다. 자세한 사항은 사용자 검증 요청 API 문서와, 사용자 검증 VASP API 문서를 참고하세요.

개인 정보 종류 코드의 추가 배경

VASP 간에 사용자 개인 정보를 주고받을 때, VASP마다 또는 관할 국가마다 필요로 하는 상대방 사용자의 개인 정보가 다를 수 있습니다.

가령, 어떤 VASP에서는 Sanction screening을 위해 상대방 사용자의 생년월일이 추가적으로 필요할 수도 있고, 어떤 국가에서는 Travel Rule 적용 시 법적 규제로 인해 지리적 주소를 필수로 받아야 할 수도 있습니다.

그런 경우를 위해 사용자 검증 요청 API를 호출할 때에나 사용자 검증 결과를 반환할 때에, '추가적으로 필요한' 상대방 사용자의 개인 정보 항목을 상대방 VASP에 전달할 수 있습니다. 각 VASP는 상대방이 요구한 개인 정보를 채워서 건네주어야 하며, 만약 채울 수 없을 경우에는 DENIED 결과를 반환해야 합니다.

  • VASP API 구현 정책이 업데이트되었습니다.

    • 각 VASP API reference 페이지에 구현 정책이 추가되었습니다.

VASP API 구현 정책 업데이트 배경

VerifyVASP는 Travel Rule 솔루션으로서 VASP 단독으로 일을 처리할 수 없고, 상대 VASP와의 통신을 통해서만 요청을 처리할 수 있습니다.

각 VASP마다 내부 개발 정책이나 구현 방법 등이 모두 다르므로 서로 연동하여 동작하는데 많은 어려움이 있을 수 있습니다.

따라서 각 VASP에서 구현해야 하는 API에 대해 어느 정도 구현 정책을 설정해야 상대 VASP에서도 어떻게 동작할지 예측할 수 있고, 그에 따라 에러 처리와 요청 처리 로직을 구현함에 있어 좀 더 수월하게 연동할 수 있습니다.

  • 동일 VASP끼리의 거래도 지원합니다. 즉, 수신 VASP가 송신 VASP와 같은 경우에도 지원합니다.

동일 VASP끼리의 거래 지원 배경

같은 VASP 내에서 서로 다른 사용자끼리 가상 자산을 주고받는 경우 반드시 VerifyVASP를 통해야 하는 것은 아닙니다.

하지만 법규 규제에 의해 VASP 내부에서 별도로 동일 VASP 거래에 대한 검증 이력을 관리해야 하는 번거로움이 생기므로, 가급적이면 동일 VASP 내의 거래에 대해서도 VerifyVASP를 통해 검증 이력을 관리하는 것을 권장합니다.

Enclave API

VASP API

  • Callback API가 추가되었습니다.

    • 일부 API의 비동기 호출 방식 지원에 따라 처리 결과를 비동기적으로 전달받을 수 있는 Callback API를 추가했습니다.

    • 구현하지 않아도 enclave 동작에는 문제가 없으나, 구현하지 않았을 경우에는 사용자 검증 결과나 트랜잭션 결과를 알기 위해서 지속적으로 폴링 해야 하는 부담이 생기므로 구현하는 것을 강력히 권장합니다.

  • 각 VASP API의 구현 정책이 추가되었습니다.

  • 사용자 검증 결과에 대한 에러 코드가 추가되었습니다.

Enclave

  • 데이터베이스에 테이블이 추가 / 변경되었습니다.

    • 추가 : commands table

    • 변경 : verifications table

      • message 컬럼 추가

  • 실행 환경 변수가 추가되었습니다.

    • VEGA_VERIFICATION_CALLBACK_API_PATH : callback API endpoint 설정

IVMS101

  • 정보 기입 가이드가 업데이트되었습니다.

    • XRP나 EOS처럼 "부모 주소" 이외의 별도 주소가 필요한 경우

    • 법인의 주소 기입할 때 본점과 사업장의 주소를 모두 기입하도록 정책 추가

버그 수정 및 문서 수정

  • Enclave에 데이터베이스 포트 번호를 설정해도 설정값이 적용되지 않던 문제가 수정되었습니다.

  • Enclave 부팅 시 사용자 검증 API endpoint뿐만 아니라 주소 검증 API, 트랜잭션 처리 상태 조회 API의 endpoint도 접속 여부를 검사하도록 변경되었습니다.

  • 트랜잭션 상태 문의 API reference에 transaction state diagram이 추가되었습니다.

  • 검증 결과 조회 API의 query parameter 이름이 정정되었습니다.

    • fromAccount -> originatorAccountNumber, toAccount -> beneficiaryAccountNumber

Version 1.1.0

콘솔 사이트

  • 한국 사이트가 오픈하였습니다.

    • staging 환경 및 사이트만 오픈하였고, production 환경 및 사이트는 추후 오픈 예정입니다.

  • VerifyVASP 콘솔 사이트의 주소가 한국 리전에 맞게 변경되었습니다. (https://kr.verifyvasp.xyz)

  • 한국 리전에 연동하고자 하는 VASP들은 한국 콘솔 사이트에 새롭게 회원 가입을 해야 합니다.

Central Server

  • Central 서버의 API 주소가 한국 리전에 맞게 변경되었습니다.

Enclave Server

  • enclave 서버의 버전이 업그레이드되었습니다. (verifyvasp/enclave:v1.1.0 다운로드)

  • enclave 데이터베이스의 다음 테이블의 테이블 정의가 변경되었습니다.

    • verifications

  • enclave 데이터베이스의 다음 테이블이 추가되었습니다.

    • counter_party_keys

    • own_keys

  • enclave 데이터베이스에서 특정 컬럼을 암호화하여 저장합니다.

  • 다음 환경 변수가 추가되었습니다.

    • VEGA_ENCLAVE_PUBLIC_ENDPOINT

    • VEGA_VERIFICATION_ADDRESS_API_PATH

    • VEGA_VERIFICATION_TRANSACTION_API_PATH

    • VEGA_VERIFICATION_AUTHORIZATION_TOKEN

    • VEGA_ENCRYPTION_KEY_BASE64

    • VEGA_DECRYPT_API_ENDPOINT

    • VEGA_PUBLIC_KEY_TTL

    • VEGA_LOG_LEVEL

VASP API

  • VASP에서 구현해야 하는 VASP API가 추가되었습니다.

    • 사용자 address를 검증하는 API를 추가 구현해야 합니다.

    • Transaction 처리 상태를 반환하는 API를 추가 구현해야 합니다.

    • 데이터베이스 암호화에 사용된 encryption key를 복호화 하는 API를 추가 구현해야 합니다.(필수는 아니지만 권장 사항)

  • 사용자 검증 API의 request body가 변경되었습니다.

    • symbol, amount 값이 assetInfo 객체 안으로 들어갔습니다. (자세한 내용은 API Spec 문서 참조)

Enclave API

  • API path에 API version이 추가되었습니다. (/v1)

  • 다음 API가 수정되었습니다.

    • VASP 목록 조회 API

      • 기본적으로 VerifyVASP에 가입한 VASP 목록만 보이도록 수정하였습니다.

      • includesAll query parameter를 설정할 수 있도록 수정하였습니다.

      • VASP의 health 정보를 포함하여 좀 더 상세한 정보가 반환되도록 수정하였습니다.

    • 사용자 검증 요청 API

      • request body가 수정되었습니다.

  • 다음 API가 추가되었습니다.

    • 주소 검증 API가 추가되었습니다.

    • Error report API가 추가되었습니다.

    • Transaction 처리 상태 조회 API가 추가되었습니다.

기타

  • 보안 가이드 문서가 추가되었습니다.

  • IVMS101 포맷 가이드 문서가 추가되었습니다.

  • IVMS101 정보 기입 가이드 문서가 추가되었습니다.

Last updated