데이터베이스

시스템 요구 사항

  • 시스템/인프라 구성도

  • VerifyVASP에서 제공하는 Enclave 서버에서 사용하는 데이터베이스가 필요합니다.

  • 지원 가능한 DB : MySQL, PostgreSQL, MSSQL, Oracle

  • MySQL 권장합니다.

테이블 설명

  • 기본적으로 우선 4 개의 테이블이 필요합니다.

    • verifications : 사용자 검증 API에 대한 요청/응답 저장합니다.

    • counter_party_keys : 수신 VASP의 Public Key 저장합니다.

    • own_keys : 송신 VASP의 Public Key 저장합니다.

    • commands : 비동기 방식으로 호출되는 API 들의 중간 요청 저장합니다.

  • 추가적으로, 사용하려는 기능에 따라 다음의 테이블들이 필요합니다.

    • chainalysis_sanction_results : Chainalysis Sanction API 호출 이력 정보를 저장합니다.

    • chainalysis_kyt_results : Chainalysis KYT API 호출 이력 정보를 저장합니다.

    • chainalysis_kyt_alerts : Chainalysis KYT API 호출에 의해 생성된 alert 정보들을 저장합니다.

    • refinitiv_wco_results : Refinitiv World Check One API 호출 이력 정보를 저장합니다.

테이블 백업, 복원, 복구 정책

  • verifications 테이블은 Travel Rule 검증 히스토리가 저장되므로 매일 백업할 것을 권고합니다.

  • own_keys 테이블은 주기적으로 백업 바랍니다.

  • chainalysis_sanction_results, chainalysis_kyt_results, chainalysis_kyt_alerts, refinitiv_wco_results 또한 주기적으로 백업 바랍니다.

  • counter_party_keys 테이블은 Caching 용도로 사용되는 테이블로 복구할 필요가 없습니다.

  • commands 테이블은 비동기 방식으로 호출되는 API들의 일시적인 요청이 저장되는 테이블이므로 백업 및 복구가 필요 없습니다.

테이블 크기 (스토리지 사용량)

  • verifications 테이블 : 요청 당 약 4 ~ 5 KB

  • counter_party_keys 테이블 : beneficiary 주소 당 약 1 KB

  • own_keys : PerVerification 키 타입을 사용한 경우 요청 당 약 1 KB

  • commands : 비동기 API 요청 당 약 1 ~ 5 KB

  • chainalysis_sanction_results : 요청 당 약 1 ~ 2 KB

  • chainalysis_kyt_results : 요청 당 약 2 ~ 3 KB

  • chainalysis_kyt_alerts : 요청 당 약 0 ~ 3 KB

  • refinitiv_wco_results : 요청 당 약 2 ~ 3 KB

테이블 정의

verifications 테이블 (필수)

  • 출금 요청 시, Travel Rule을 통해 사전 검증에 대한 내용을 기록합니다.

  • POST /verifications API를 호출했을 때의, 요청/응답에 대한 내용을 verifications 테이블에 기록합니다.

  • 암호화되어 저장되는 컬럼은 아래와 같습니다.

    • ivms101_originator

    • ivms101_originating_vasp

    • ivms101_beneficiary

    • ivms101_beneficiary_vasp

테이블 생성

counter_party_keys 테이블 (필수)

  • 검증 과정에서 개인정보 암호화에 사용되는 beneficiary VASP의 Public Key를 저장합니다.

  • Originating VASP가 정한 Key Type에 따라, beneficiary VASP의 Public Key를 기록합니다.

  • POST /verifications API를 호출했을 때, beneficiary VASP에 대한 public key를 캐싱하고 있는지를 검사한 뒤, 없으면 자동으로 beneficiary VASP에 요청하여 이 테이블에 저장합니다.

테이블 생성

own_keys 테이블 (필수)

  • 검증 과정에서 개인정보 암호화에 사용되는 Own VASP(Enclave 자신 VASP)의 public key 와 private key를 저장합니다.

  • 상대 VASP에서 public key를 요청했을 때 Key Type에 따라 해당 테이블에 저장하고 있던 public key를 반환합니다.

  • private key는 암호화되어 저장합니다.

테이블 생성

commands 테이블 (필수)

  • 비동기 API 호출 시 임시적인 요청이 저장되는 테이블입니다.

  • enclave 내부 동작을 위해 사용되며 VASP에서는 신경 쓰지 않아도 되는 테이블입니다.

테이블 생성

chainalysis_sanction_results 테이블 (선택)

테이블 생성

chainalysis_kyt_results 테이블 (선택)

  • 트랜잭션 리포트 하기 전이라면, Chainalysis KYT API를 통해 수신인의 지갑 주소에 대한 위험 평가 결과를 저장합니다.

  • 트랜잭션 리포트를 한 후라면, Chainalysis KYT API를 통해 가상 자산 전송 트랜잭션에 대한 위험 평가 결과를 저장합니다.

테이블 생성

chainalysis_kyt_alerts 테이블 (선택)

테이블 생성

refinitiv_wco_results 테이블 (선택)

테이블 생성

Last updated