스테이블코인 발행자 되기

스테이블코인 발행자는 XRP Ledger의 토큰을 외부 세계의 자산과 연결하는 기업입니다. 기존 온라인 금융 기관은 XRP Ledger에서 스테이블코인을 발행하도록 확장할 수 있습니다. 이를 통해 기업은 여러 가지 이점을 얻을 수 있습니다:

  • 고객이 XRP Ledger에서 가치를 주고받을 수 있게 함으로써, 비즈니스는 고객에 대한 가치 제안을 늘릴 수 있습니다.

  • XRP Ledger에서 결제를 수락함으로써, 비즈니스는 고객이 해외에서도 비즈니스의 계좌에 자금을 조달할 수 있는 방법을 늘릴 수 있습니다.

  • 비즈니스는 XRP Ledger 관련 서비스를 새로운 수익원으로 사용할 수 있습니다.

이 가이드에서는 "ACME"라는 가상의 온라인 환전소와 그 고객을 예로 들어 XRP Ledger에서 스테이블코인을 발행하는 데 필요한 개념과 단계를 설명합니다.

Note:

XRP Ledger의 스테이블코인 발행자는 이전에는 "게이트웨이"라고 불렸습니다.

토큰 발행자 설명

화폐와 다른 형태의 가치가 XRP Ledger에 들어오고 나가는 방법을 제공하는 몇 가지 관련 비즈니스 모델이 있습니다. 이러한 비즈니스 모델의 대부분은 다음 범주 중 하나에 속합니다:

  • 토큰 발행자는 XRP Ledger 외부에서 화폐(또는 기타 가치 있는 자산)를 수령하고 해당 자산을 나타내는 토큰을 XRP Ledger에 발행합니다. 이는 고객이 XRP Ledger에서 직접 돈을 입출금할 수 있는 방법을 제공합니다. XRP를 제외한 XRP Ledger의 모든 화폐는 특정 발행자와 연결된 토큰입니다.

  • 개인 거래소는 XRP를 보유하고 고객이 자체 시스템에서 해당 XRP를 사고 팔 수 있도록 합니다. 대부분의 암호화폐는 암호화폐 시장을 제공하기 위해 사설 거래소에 의존하지만, XRP Ledger은 프로토콜 자체에 환전소가 내장되어 있습니다.

  • 판매자는 외부 세계에서 상품과 서비스에 대한 대가로 XRP Ledger에서 결제를 수락합니다.

이 가이드는 토큰 발행자 운영에 초점을 맞춥니다.

신뢰선 토큰

기본 암호화폐인 XRP를 제외한 XRP Ledger의 모든 자산은 토큰으로 표시되며, 토큰은 토큰의 의미를 정의하는 특정 발행자와 연결됩니다. XRP Ledger은 사용자가 원하는 토큰만 보유하고 받을 수 있도록 신뢰선이라고 하는 방향성 회계 관계 시스템을 갖추고 있습니다.

외부 시스템의 잔액으로 뒷받침되는 발행 토큰을 스테이블 코인이라고 부르기도 합니다. 여기에는 은행 계좌의 법정 화폐, 다른 블록체인의 암호화폐 또는 다른 유형의 자산과 가치 형태로 뒷받침되는 토큰이 포함됩니다. "스테이블코인"이라는 용어는 토큰과 토큰이 나타내는 자산 간의 환율이 1:1(수수료 제외)로 "안정적"이어야 한다는 개념에서 유래했습니다.

주요 기사: Trust Lines and Issuing.

XRP

XRP는 XRP Ledger의 기본 암호화폐입니다. XRP는 모든 XRP Ledger 주소에서 다른 주소로 직접 전송할 수 있습니다. 이는 XRP를 편리한 브릿지 화폐로 만드는 데 도움이 됩니다. XRP에 대한 자세한 내용은 XRP 개요를 참조하세요.

토큰 발행자는 XRP를 축적하거나 교환할 필요가 없습니다. reserve requirements을 충족하고 네트워크를 통해 트랜잭션을 전송하는 데 드는 비용을 지불하기 위해 소량의 XRP만 보유하면 됩니다. 미화 10달러에 해당하는 XRP는 바쁜 발행자의 경우 최소 1년간의 트랜잭션 비용으로 충분할 것입니다.

주요 기사: XRP.

유동성 및 환전

XRP Ledger는 탈중앙화된 자산 거래소를 포함하고 있으며, 모든 사용자가 어떤 조합으로든 XRP와 토큰을 교환하기 위해 입찰을 하고 이행할 수 있습니다. 교차 화폐 결제는 트랜잭션이 실행될 때 탈중앙화 거래소를 사용하여 원자 단위로 화폐를 교환합니다. 이러한 방식으로 탈중앙화 거래소에서 거래하는 사용자는 교차 화폐 결제를 가능하게 하는 유동성을 제공합니다.

발행자의 토큰을 보유한 트레이더는 발행자가 다양한 목적지 화폐로 대규모 reserve를 유동화할 필요 없이 다른 인기 화폐에 유동성을 제공할 수 있습니다. 또한 발행자는 다양한 토큰과 자산을 보유하는 위험을 감수할 필요가 없습니다. 그러나 발행자는 특히 해당 토큰이 거래소에 처음 상장된 토큰인 경우 기준 금리로 XRP 또는 기타 인기 토큰에 유동성을 제공하고자 할 수 있습니다. 유동성을 제공하는 경우 발행 주소와 다른 트랜잭션 주소를 사용하세요.

유동성 공급자는 HTTP/웹소켓 API, 클라이언트 라이브러리 또는 다른 애플리케이션을 사용해 분산형 거래소에 액세스할 수 있습니다. 또한 xrp-Ledger.toml 파일을 제공하면 클라이언트 애플리케이션이 비즈니스에 대한 정보를 표시하는 데 도움이 될 수 있습니다.

권장 비즈니스 관행

XRP Ledger에서 스테이블코인 발행자의 토큰 가치는 고객이 필요할 때 토큰을 상환할 수 있다는 신뢰에서 직접적으로 비롯됩니다. 비즈니스 중단의 위험을 줄이려면 다음 모범 사례를 따라야 합니다:

  • 별도의 발급 주소와 운영 주소를 사용하여 네트워크에서 위험 프로필을 제한합니다.

  • 은행비밀보호법 등 관할 지역의 자금세탁 방지 규정을 준수합니다. 여기에는 일반적으로 "고객알기제도(KYC)" 정보 수집 요건이 포함됩니다.

  • XRP Ledger 재단의 토큰 발행자 자체 평가를 완료합니다.

  • 모든 정책과 수수료를 공개합니다.

핫월렛과 콜드월렛

XRP Ledger에서 금융 기관은 일반적으로 여러 개의 XRP Ledger 주소를 사용하여 손상된 비밀 키와 관련된 위험을 최소화합니다. 업계 표준은 다음과 같이 역할을 분리하는 것입니다:

  • "콜드 월렛"이라고도 하는 하나의 발급 주소. 이 주소는 Ledger에서 금융 기관의 회계 관계의 허브이지만 가능한 한 적은 수의 트랜잭션을 전송합니다.

  • "핫 지갑"이라고도 하는 하나 이상의 운영 주소. 인터넷에 연결된 자동화된 시스템은 이러한 주소의 비밀 키를 사용하여 고객 및 파트너에게 이체하는 등의 일상적인 비즈니스를 수행합니다.

  • "웜 월렛"이라고도 하는 선택적 대기 주소. 신뢰할 수 있는 사람이 이 주소를 사용하여 운영 주소로 돈을 이체합니다.

주요 기사: Issuing and Operational Addresses

수수료 및 수익원

발행자가 XRP Ledger 통합을 통해 수익을 얻을 수 있는 방법에는 여러 가지가 있습니다. 여기에는 다음이 포함될 수 있습니다:

  • 출금 및 입금 수수료. 발행자는 일반적으로 XRP Ledger에서 돈을 추가하거나 제거하는 서비스에 대해 소액의 수수료(예: 1%)를 부과합니다. 귀하는 사람들이 토큰을 통해 XRP Ledger에 돈을 이체하거나 이체할 때 지급하는 수수료를 결정할 권한이 있습니다.

  • 이체 수수료. 고객이 귀하가 발행한 토큰을 서로 보낼 때 자동으로 청구되는 수수료를 설정할 수 있습니다. 이 금액은 XRP Ledger에서 차감되며, 토큰이 바뀔 때마다 귀하의 의무가 줄어듭니다. 자세한 내용은 송금 수수료를 참조하세요.

  • 부가가치를 통한 간접 수익. XRP Ledger을 통합하면 고객에게 귀사의 비즈니스를 경쟁사와 차별화할 수 있는 가치 있는 기능을 제공할 수 있습니다.

  • XRP Ledger 지원 자금에 대한 이자. XRP Ledger에서 발행한 자금에 대한 담보를 이자를 받는 은행 계좌에 보관할 수 있습니다. 고객 인출을 처리하기에 충분한 자금을 항상 확보할 수 있는지 확인하세요.

금융 교환. 또한 XRP Ledger의 탈중앙화 거래소에서 토큰을 사고 팔 수 있는 제안을 하여 다른 화폐 간 결제에 유동성을 제공하고 수익을 창출할 수도 있습니다. (모든 금융 트랜잭션과 마찬가지로 수익은 보장되지 않습니다.)

수수료율 선택

토큰 수수료는 선택 사항입니다. 수수료가 높을수록 토큰을 사용할 때 더 많은 수익을 얻을 수 있습니다. 반면에 수수료가 높으면 고객이 서비스 사용을 꺼리게 됩니다. 다른 발행자, 특히 동일한 유형의 자산으로 뒷받침되는 토큰을 사용하는 다른 발행자가 부과하는 수수료와 전신 수수료와 같은 XRP Ledger를 벗어난 기존 결제 시스템에서 부과하는 수수료를 고려하세요. 적절한 수수료 구조를 선택하는 것은 시장의 지불 의향과 가격의 균형을 맞추는 문제입니다.

규정 준수 가이드라인

토큰 발행자는 현지 규정을 준수하고 해당 기관에 보고할 책임이 있습니다. 규정은 국가와 주마다 다르지만 다음 섹션에 설명된 보고 및 규정 준수 요건을 포함할 수 있습니다. 토큰을 발행하기 전에 관할권 및 사용 사례에 대한 요건에 대해 전문적인 법률 자문을 구해야 합니다. 다음 리소스는 유용한 배경 자료가 될 수 있습니다.

고객 알기(KYC)

고객 알기 제도(KYC)는 금융 기관이 범죄 활동에 이용되는 것을 방지하기 위해 고객의 신원을 파악하고 확인하기 위해 실시하는 실사 활동을 말합니다. 금융 관련 범죄 활동에는 자금 세탁, 테러 자금 조달, 금융 사기, 신원 도용 등이 포함될 수 있습니다. 고객은 개인, 중개자 또는 기업일 수 있습니다.

KYC 프로세스는 일반적으로 다음을 목표로 합니다:

  • 고객(조직 및 비즈니스의 경우 모든 실소유자)을 식별합니다.

  • 비즈니스 관계의 목적과 의도된 성격 이해

  • 예상되는 트랜잭션 활동 파악.

금융기관과 관련 비즈니스가 위험, 특히 법적 위험과 평판 위험을 완화하기 위해서는 KYC가 매우 중요합니다. KYC 프로그램이 부적절하거나 존재하지 않는 경우 기관 또는 직원 개인이 민형사상 처벌을 받을 수 있습니다.

참조:

  • (미국) 은행비밀보호법/자금세탁방지 검사 매뉴얼.

  • 국제자금세탁방지기구(FATF)에서 정한 미국 외 지역의 KYC 표준.

자금 세탁 방지(AML) 및 테러 자금 조달 방지(CFT)

자금 세탁은 합법적인 금융 채널과 신뢰할 수 있는 기관을 통해 합법적으로 자금에 접근하거나 유통할 수 있도록 자금의 출처, 성격 또는 소유권을 위장하여 불법 자금을 이동시키는 프로세스입니다. 간단히 말해, "더러운 돈"을 "깨끗한 돈"으로 전환하는 것입니다. 자금 세탁 방지(AML)는 자금 세탁을 막기 위해 고안된 법률과 절차를 말합니다.

테러 자금 조달이란 테러 활동에 관여하는 조직이나 테러 및 그 확산을 지원하는 조직에 자금을 모집, 수집 또는 제공하는 것을 말합니다. 테러 자금 조달 방지(CFT)는 테러 자금 조달에 사용되는 자금의 흐름을 식별, 보고 및 차단하는 프로세스를 말합니다.

참조:

  • "자금 세탁 및 테러 자금 조달 및 확산 방지에 관한 국제 기준." FATF, 2012

  • "가상 화폐: 주요 정의 및 잠재적 AML/CFT 위험." FATF, 2014

자금 출처

불법 자금이 시스템을 통과하는 것을 방지하기 위해 금융 기관은 고객 자금의 출처가 범죄 활동과 관련이 있는지 합리적인 범위 내에서 판단할 수 있어야 합니다.

모든 고객의 정확한 자금 출처를 파악하는 것은 행정적으로 불가능할 수 있습니다. 따라서 일부 규제 당국은 모든 계정에 대해 구체적인 규제나 지침을 제공하지 않을 수 있습니다. 그러나 특정 경우에는 당국이 금융 기관에 자금 출처를 파악하고 보고하도록 요구할 수 있습니다. 자금 세탁 또는 테러 자금 조달의 위험이 높은 경우("위험 기반 접근 방식"이라고도 함) 금융 기관은 고객의 자금 출처를 파악하는 것을 포함하되 이에 국한되지 않는 강화된 실사를 수행할 것을 FATF의 지침에 따라 권장하고 있습니다.

의심스러운 활동 보고

금융기관은 자금이 범죄 활동과 관련이 있다고 의심되는 경우 해당 규제 기관에 의심스러운 활동 보고서(SAR)를 제출해야 합니다. 의심스러운 활동을 신고하지 않으면 해당 기관은 처벌을 받을 수 있습니다.

참조:

  • 의심스러운 활동 보고 개요(미국 금융범죄조사국).

  • FATF 권고안 16: 의심스러운 트랜잭션 보고 및 규정 준수.

트래블룰

여행 규칙은 자금 이체 금융기관이 자금 이체 금액이 미화 3,000달러를 초과하는 경우 다음 금융기관에 특정 정보를 전달하도록 요구하는 은행비밀보호법(BSA) 규정입니다. 송금 주문에는 다음 정보가 포함되어야 합니다:

  • 송금인의 이름,

  • 송금인의 계좌 번호(사용 중인 경우),

  • 송금인의 주소,

  • 송금인의 금융기관 신원,

  • 송금 주문 금액,

  • 송금 주문의 실행 날짜, 그리고

  • 수취인의 금융기관 신원.

참조:

  • 자금 "Travel" 규정: 질문 및 답변

수수료 공개 및 자금 추적

미국의 도드 프랭크 1073 전자 자금 이체법(규정 E)에 따라 은행은 환율, 수수료, 지정된 수취인이 외국에서 수령할 금액 등 미국에서 발생하는 국제 결제의 비용 및 배송 조건에 대한 정보를 제공해야 합니다. '결제 전 공개'는 국제 전자 결제를 요청할 때 소비자에게 제공되며, '영수증 공개'는 소비자가 송금을 승인하는 시점에 소비자에게 제공됩니다. 참조:

  • 은행에 대한 규정 및 연장에 대한 소비자 금융 보호국의 설명

  • 유럽연합에서는 자금 세탁 및 테러 자금 조달을 탐지, 조사 및 방지하기 위해 송금인 은행, 수취인 은행 및 모든 중개 은행이 트랜잭션 내역에 송금인 및 수취인의 특정 세부 정보를 포함하도록 EU 자금 이체 규정에 규정하고 있습니다. 참조:

    • EU 규정(EC) 제1781/2006호 설명

    • 2017년 6월 26일부터 시행: 자금 이체에 수반되는 정보에 관한 규정 2015/847

해외자산통제국(OFAC)

해외자산통제실(OFAC)은 미국의 외교 정책 및 국가 안보 목표를 지원하기 위해 경제 및 무역 제재를 관리하고 집행하는 미국 재무부 산하 기관입니다. 모든 미국인, 미국 법인 및 그 해외 지사는 OFAC 규정을 준수해야 합니다. OFAC 규정에 따라 미국 금융기관은 OFAC가 승인하거나 법령에 의해 명시적으로 면제되지 않는 한 OFAC가 관리 및 시행하는 제재 또는 금수 프로그램에 따라 개인, 법인 또는 국가와 트랜잭션 및 기타 트랜잭션을 수행하는 것이 금지됩니다.

참조:

  • OFAC 리소스 목록

가상 화폐 및 자금 서비스업에 대한 지침

  • 미국:

    • 가상 화폐에 관한 FinCEN 지침 및 정의, 2013년 3월 18일.

    • FinCEN, 가상 화폐 채굴자 및 투자자에 대한 두 가지 판결 발표, 2014년 1월 30일.

  • 유럽:

    • 가상 화폐에 대한 유럽은행감독청 의견, 2014년 7월 4일.

  • 자금 서비스 사업자를 위한 FATF 지침:

    • 자금세탁방지 태스크포스, 2009년 7월.

XRP Ledger 통합

통합 전

예시 거래소인 ACME는 이미 일부 기존 시스템을 사용하여 고객의 출금과 입금을 받고 있으며, 자체 기록 시스템을 사용하여 각 사용자가 거래소에 얼마나 많은 잔액을 보유하고 있는지 추적합니다. 이러한 시스템은 대차 대조표로 모델링할 수 있으며 각 사용자가 ACME에 얼마나 많은 화폐를 보유하고 있는지 추적할 수 있습니다.

다음 다이어그램에서 ACME 거래소는 밥의 소유인 1유로, 찰리의 소유인 2유로, ACME 자체의 추가 자본 2유로를 포함하여 5유로에서 시작합니다. 앨리스가 5유로를 예치하면 ACME는 앨리스를 대차 대조표에 추가하여 10유로를 보유하게 됩니다.

가정: XRP Ledger과 통합하기 위해 ACME와 같은 거래소가 다음 가정을 충족한다고 가정합니다:

  • ACME는 이미 일부 외부 결제 소스로부터 입출금을 수락하는 시스템을 갖추고 있습니다.

  • ACME는 입금이 청산될 때까지 기다렸다가 ACME의 기록 시스템에 입금합니다.

  • ACME는 이용 약관에 따라 필요할 때 인출금을 지급할 수 있는 충분한 자금을 항상 보유하고 있습니다.

    • ACME는 비즈니스 모델에 따라 수수료, 최소 인출액, 입금 및 출금 지연 시간을 설정할 수 있습니다.

XRP Ledger로 보내기

XRP Ledger 결제는 화폐 간 자동 연결이 가능하지만, 발행자는 일반적으로 고객에게 직접 송금하는 단일 화폐 결제만 전송합니다. 즉, 시스템에서 고객의 현재 잔액을 인출한 다음 XRP Ledger에 있는 토큰과 동일한 금액을 고객의 XRP Ledger 주소로 전송하는 것입니다.

XRP Ledger로 결제하는 흐름의 예시입니다:

  1. 앨리스가 자신의 ACME 잔고 중 3유로를 XRP LEDGER으로 송금해달라고 요청합니다.

  2. ACME는 기록 시스템에서 앨리스의 잔액 3유로를 인출합니다.

  3. ACME가 XRP LEDGER 트랜잭션을 제출하여 앨리스의 XRP LEDGER 주소로 3유로를 보냅니다. 3유로는 XRP LEDGER에 ACME가 "발행"한 것으로 표시됩니다(3 EUR.ACME).

가정:

  • 앨리스는 이미 ACME 계정과 별도로 XRP Ledger에 주소를 가지고 있습니다. 앨리스는 타사 클라이언트 애플리케이션을 사용해 XRP Ledger의 주소를 관리합니다.

XRP Ledger로 전송하기 위한 요구 사항

이 작업을 수행하기 위해 ACME가 충족해야 하는 몇 가지 전제 조건이 있습니다:

  • ACME는 XRP Ledger에서 발행된 자금을 따로 보관합니다. ACME는 언제든지 XRP Ledger을 쿼리하여 누가 토큰을 보유하고 있는지 확인할 수 있습니다. ACME가 이를 수행할 수 있는 방법에는 여러 가지가 있습니다:

    • ACME는 ACME의 기록 시스템에서 XRP Ledger 담보 계정을 생성할 수 있습니다.

    • ACME는 XRP Ledger에 할당된 자금을 별도의 은행 계좌에 저장할 수 있습니다.

    • ACME가 암호화폐 거래소인 경우, ACME는 발행자가 지급 능력이 있음을 고객에게 공개적으로 확인할 수 있는 증거로 XRP Ledger에 할당된 자금을 보유하기 위해 별도의 지갑을 만들 수 있습니다.

  • ACME는 두 개의 별도 XRP Ledger 주소를 관리해야 합니다. 자세한 내용은 발행 및 운영 주소를 참조하십시오.

    • ACME는 고객이 토큰을 주고받을 수 있도록 발행 주소에서 기본 Ripple 플래그를 활성화해야 합니다.

  • 앨리스는 자신의 XRP Ledger 주소에서 ACME의 발행 주소로 계정 관계(신뢰선)을 생성해야 합니다. 앨리스는 ACME의 발행 주소만 알고 있다면 어떤 XRP Ledger 클라이언트 애플리케이션에서든 이 작업을 수행할 수 있습니다.

    • ACME는 고객이 찾을 수 있는 웹사이트에 발행 주소를 공개해야 합니다. 또한 xrp-Ledger.toml 파일을 사용하여 자동화된 시스템에 발급 주소를 게시할 수도 있습니다.

  • ACME는 앨리스가 ACME에서 XRP Ledger로 자금을 송금할 수 있는 사용자 인터페이스를 만들어야 합니다.

    • ACME는 앨리스의 XRP Ledger 주소를 알아야 합니다. ACME는 앨리스가 인터페이스의 일부로 XRP Ledger 주소를 입력하도록 할 수도 있고, 앨리스에게 미리 XRP Ledger 주소를 입력하고 확인하도록 요구할 수도 있습니다.

XRP Ledger로 결제금을 보내는 방법의 예는 고객에게 결제금 보내기를 참조하세요.

XRP Ledger에서 송금

XRP Ledger에서의 지불은 발행자가 XRP Ledger에서 지불금을 수령하고 발행자의 기록 시스템에서 사용자에게 크레딧을 지급하는 것을 의미합니다.

다음은 XRP Ledger에서의 결제 흐름의 예시입니다:

  1. 밥이 1유로의 XRP Ledger 트랜잭션을 ACME의 발행 주소로 보냅니다.

  2. ACME의 기록 시스템에서 ACME는 밥의 잔액에 1유로를 입금합니다.

XRP Ledger에서 발행자에게 가는 결제는 단일 화폐 또는 교차 화폐 결제일 수 있습니다. 발행 주소는 XRP 또는 이전에 발행한 토큰으로만 결제를 받을 수 있습니다.

XRP Ledger에서 수령하기 위한 요건

XRP Ledger로 송금하기 위한 요건 외에도, ACME가 XRP Ledger에서 들어오는 결제를 처리하기 위해 충족해야 하는 몇 가지 전제 조건이 있습니다:

  • ACME는 들어오는 결제를 위해 XRP Ledger 주소를 모니터링해야 합니다.

  • ACME는 수신 결제에 대해 기록 시스템에서 어떤 사용자에게 크레딧을 제공할지 알고 있어야 합니다.

    • ACME는 인식할 수 없는 수신 결제를 발신자에게 반송하는 것이 좋습니다.

    • 일반적으로 수신 결제를 인식하는 데 선호되는 방법은 대상 태그를 사용하는 것입니다.

주의 사항

XRP Ledger를 통한 결제 처리에는 당연히 몇 가지 위험이 수반되므로 발급자는 이러한 프로세스를 구현할 때 주의해야 합니다. 다음 예방 조치를 권장합니다:

  • 가역적 예치금으로부터 자신을 보호하세요. XRP Ledger에 의한 결제는 되돌릴 수 없지만, 신용카드나 페이팔과 같은 많은 전자 화폐 시스템은 그렇지 않습니다. 사기꾼은 이를 악용하여 XRP Ledger에서 토큰을 받은 후 입금을 취소하여 명목 화폐를 되찾을 수 있습니다.

  • XRP Ledger로 송금할 때는 발행 주소를 해당 화폐의 발행자로 지정하세요. 그렇지 않으면 실수로 다른 주소에서 발행한 동일한 화폐를 전달하는 경로를 사용할 수 있습니다.

  • XRP Ledger로 송금하기 전에 결제 비용을 다시 한 번 확인하세요. 운영 주소에서 고객에게 지급하는 결제 금액은 목적지 금액에 설정한 송금 수수료를 더한 금액보다 커서는 안 됩니다.

  • XRP Ledger에서 결제를 처리하기 전에 고객의 신원을 확인해야 합니다. 이렇게 하면 익명의 공격자가 사기를 치기가 더 어려워집니다. 대부분의 자금세탁 방지 규정에서는 이를 요구합니다. XRP Ledger에서 송금하는 사용자가 처음에 XRP LEDGER에서 돈을 받은 사용자와 다를 수 있기 때문에 이는 특히 중요합니다.

  • XRP Ledger에 트랜잭션을 전송할 때 신뢰할 수 있는 트랜잭션 제출을 위한 가이드라인을 따르세요.

  • 수신되는 결제를 강력하게 모니터링하고 정확한 금액을 확인합니다. 일부만 송금한 경우 실수로 전액을 입금하지 마세요.

  • XRP Ledger에서 채무와 잔액을 추적하고 담보 계좌의 자산과 비교하세요. 일치하지 않으면 불일치를 해결할 때까지 출금과 입금 처리를 중단하세요.

  • 모호한 상황을 피하세요. 다음을 권장합니다:

    • 발급 주소와 모든 운영 주소에 대해 XRP 허용 안 함 플래그를 사용 설정하여 고객이 실수로 XRP를 보내지 않도록 하세요. (사설 거래소는 정상적으로 XRP를 트랜잭션하므로 이 플래그를 설정해서는 안 됩니다.)

    • 발급 주소와 모든 운영 주소에 RequireDest 플래그를 사용하도록 설정하여 고객이 실수로 대상 태그 없이 송금하는 일이 없도록 하여 입금 대상자를 표시합니다.

    • 실수로 화폐를 발행할 수 없도록 모든 운영 주소에 RequireAuth 플래그를 사용하도록 설정합니다.

  • 의심스럽거나 악의적인 행동을 모니터링합니다. 예를 들어, 사용자가 서비스 거부 공격을 통해 운영 주소의 잔액을 효과적으로 비우는 방식으로 반복적으로 XRP Ledger에 자금을 송금할 수 있습니다. 의심스러운 행동에 연루된 주소가 있는 고객의 XRP Ledger에 대한 결제를 처리하지 않도록 일시 정지하세요.

XRP Ledger에서 트랜잭션

토큰이 XRP Ledger에 생성된 후에는 XRP Ledger 사용자가 토큰을 자유롭게 전송하고 트랜잭션할 수 있습니다. 이 상황에는 몇 가지 결과가 있습니다:

  • 누구나 XRP Ledger에서 EUR.ACME를 구매/판매할 수 있습니다. ACME가 여러 개의 토큰을 발행하는 경우, 각각에 대해 별도의 신뢰선이 필요합니다.

    • 여기에는 ACME 거래소 시스템에 계정이 없는 XRP Ledger 사용자도 포함됩니다. ACME에서 자금을 성공적으로 인출하려면 사용자는 여전히 ACME에 등록해야 합니다.

    • 선택적으로, ACME는 승인된 신뢰선선 기능을 사용하여 XRP Ledger에서 EUR.ACME를 보유할 수 있는 사람을 제한합니다.

    • ACME가 고객이 악의적으로 행동했다고 판단하는 경우, ACME는 해당 사용자가 더 이상 발행자의 토큰을 트랜잭션할 수 없도록 XRP Ledger에서 해당 사용자와 ACME의 계정 관계를 동결할 수 있습니다.

  • XRP Ledger 사용자가 서로 EUR.ACME를 거래하고 송금하는 데는 ACME의 개입이 필요하지 않습니다.

  • XRP Ledger의 모든 트랜잭션과 잔액은 공개적으로 볼 수 있습니다.

다음 다이어그램은 앨리스가 찰리에게 2유로.ACME를 전송하는 XRP LEDGER의 지불을 보여줍니다. ACME는 트랜잭션이 발생한 후 언제든지 XRP LEDGER을 쿼리하여 잔액 업데이트를 확인할 수 있습니다:

동결

발행자는 규제 요건을 충족하기 위해 XRP Ledger의 계정 관계를 동결할 수 있습니다:

  • 발행자는 고객 주소가 의심스러운 활동을 보이거나 발행자의 이용 약관을 위반하는 경우 개별 계정 관계를 동결할 수 있습니다.

  • 발행자는 중대한 보안 침해가 발생하거나 새로운 발행 주소로 마이그레이션하는 경우 발행하는 모든 토큰을 동결할 수 있습니다.

  • 또한, 발행자는 회계 관계 동결 기능을 영구적으로 거부할 수 있습니다. 이를 통해 발급자는 고객에게 "실물 화폐와 유사한" 서비스를 계속 제공할 것임을 보장할 수 있습니다.

자세한 내용은 동결 문서를 참조하세요.

승인된 신뢰선

XRP Ledger의 승인된 신뢰선 기능(이전의 "승인된 계정"이라고 함)을 통해 발행자는 해당 발행자의 토큰을 보유할 수 있는 사람을 제한할 수 있으므로, 알 수 없는 XRP Ledger 주소는 토큰을 보유할 수 없습니다.

자세한 내용은 Authorized Trust Lines을 참조하세요.

소스 및 데스티네이션 태그

데스티네이션 태그는 XRP Ledger의 결제 기능으로, 결제의 수취인 또는 목적지를 표시하는 데 사용할 수 있습니다. 예를 들어, 발행자에 대한 XRP Ledger의 결제에는 데스티네이션 태그가 포함될 수 있으며, 이는 결제에 대해 어떤 고객에게 입금되어야 하는지를 나타냅니다. 발행자는 데스티네이션 태그와 계정의 매핑을 발행자의 기록 시스템에 보관해야 합니다.

마찬가지로 소스 태그는 결제의 발신자 또는 출처를 나타냅니다. 일반적으로 소스 태그는 결제 수취인이 결제를 반송할 위치를 알 수 있도록 포함되는 경우가 가장 많습니다. 수신 결제를 반송할 때는 수신 결제의 소스 태그를 발신(반송) 결제의 데스티네이션 태그로 사용합니다.

고객이 송금하려는 경우 필요에 따라 데스티네이션 태그를 생성할 수 있습니다. 고객 개인정보 보호를 강화하려면 해당 데스티네이션 태그는 예상 금액이 포함된 해당 결제에만 유효한 것으로 간주하고 동일한 데스티네이션 태그를 재사용하는 다른 트랜잭션은 반송하거나 무시해야 합니다.

발급 및 운영 주소에서 데스티네이션 태그 필요 설정을 사용하도록 설정하여 고객이 결제 금액을 송금할 때 반드시 데스티네이션 태그를 사용하여 자금이 입금되어야 하는 위치를 표시하도록 하세요.

자세한 내용은 출처 및 데스티네이션 태그를 참조하세요.

기술 세부 정보

인프라

자체 보안과 네트워크의 안정성을 위해 각 XRP Ledger 비즈니스는 하나의 검증자를 포함한 자체 XRP Ledger 서버를 운영해야 합니다.

API 및 미들웨어

사용자의 필요와 기존 소프트웨어에 따라 XRP Ledger에 연결하는 데 사용할 수 있는 몇 가지 인터페이스가 있습니다:

  • HTTP/웹소켓 API는 모든 핵심 XRP Ledger 기능에 대한 로우 레벨 인터페이스로 사용할 수 있습니다.

  • 클라이언트 라이브러리는 여러 프로그래밍 언어로 제공되어 XRP Ledger에 액세스하기 위한 편리한 유틸리티를 제공합니다.

  • xApp과 같은 다른 도구도 사용할 수 있습니다.

도구 보안

XRP Ledger 트랜잭션을 제출할 때마다 비밀 키를 사용해 서명해야 합니다. 비밀 키는 XRP Ledger 주소를 완전히 제어할 수 있게 해줍니다. 다른 사람이 운영하는 서버로 비밀 키를 보내지 마세요. 자체 rippled 서버를 사용하거나 rippled 서버로 보내기 전에 트랜잭션에 로컬로 서명하세요.

이 문서의 예시에서는 비밀키를 포함하는 API 메소드를 보여줍니다. 이 방법은 rippled 서버를 직접 제어하고 외부 리스너로부터 안전한 연결을 통해 rippled 서버에 연결하는 경우에만 안전합니다. 다른 보안 구성에 대한 지침과 예시는 보안 서명 설정을 참조하세요.

기본 Ripple

기본 Ripple 플래그는 신뢰 회선의 잔액이 기본적으로 Ripple을 허용할지 여부를 제어합니다. Ripple은 고객이 서로 토큰을 보내고 트랜잭션할 수 있게 해주는 기능이므로 발급자는 발급 주소로 가는 모든 신뢰선에서 Ripple을 허용해야 합니다.

고객에게 발행 주소로 신뢰선을 생성하도록 요청하기 전에 발행자는 해당 주소에서 기본 Ripple 플래그를 활성화해야 합니다. 그렇지 않으면 발급자는 다른 주소에서 생성한 각 신뢰선에 대해 개별적으로 Ripple 없음 플래그를 비활성화해야 합니다.

이 설정을 구성하는 방법에 대한 예시는 대체 가능한 토큰 발행 튜토리얼을 참조하세요.

XRP 허용 안 함

XRP 허용 안 함 설정은 XRP Ledger 사용자가 실수로 주소로 XRP를 보내지 못하도록 하기 위해 고안되었습니다. 이렇게 하면 XRP를 수령하고 보유할 의도가 없는 주소에서 원치 않는 결제를 반송하는 데 드는 비용과 노력을 줄일 수 있습니다. XRP 허용 안 함 플래그는 엄격하게 적용되지 않는데, 그렇게 하면 주소에 XRP가 부족해져 영구적으로 사용할 수 없게 될 수 있기 때문입니다. 클라이언트 애플리케이션은 기본적으로 XRP 허용 안 함 플래그를 준수해야 합니다.

발급 주소와 운영 주소에서 XRP 트랜잭션에도 해당 주소를 사용하지 않는 한 XRP 허용 안 함 플래그를 활성화해야 합니다. XRP 출금이나 입금에 동일한 주소를 사용하는 경우에는 이 플래그를 비활성화한 상태로 두어야 합니다.

이 설정을 구성하는 방법에 대한 예는 대체 가능한 토큰 발행 튜토리얼을 참조하세요.

인증 필요

인증 필요 설정은 해당 주소가 트랜잭션 상대방과의 계정 관계를 특별히 승인하지 않는 한 모든 트랜잭션 상대방이 해당 주소에서 발행한 잔액을 보유하지 못하도록 합니다. 자세한 내용은 승인된 Trust Lines에서 확인하세요.

승인된 신뢰선

승인된 신뢰선 기능을 사용하는 경우, 고객이 먼저 XRP Ledger에서 트랜잭션 상대방의 계정 관계를 승인하지 않으면 고객이 발행한 잔액을 보유할 수 없습니다.

계정 관계를 승인하려면 발행 주소에서 신탁할 사용자를 LimitAmount의 발행자로 지정하여 TrustSet 트랜잭션을 제출합니다. 값(신탁할 금액)을 0으로 설정하고 트랜잭션에 대해 tfSetfAuth 플래그를 활성화합니다.

결제에 대한 강력한 모니터링

수신 결제를 강력하게 확인하려면 발급자는 다음을 수행해야 합니다:

  • 가장 최근에 처리된 트랜잭션과 Ledger을 기록해 두세요. 이렇게 하면 일시적으로 연결이 끊어지더라도 어디까지 되돌아가야 하는지 알 수 있습니다.

  • 들어오는 모든 결제의 결과 코드를 확인하세요. 일부 결제는 실패했음에도 불구하고 스팸 방지 수수료를 부과하기 위해 Ledger으로 이동합니다. 결과 코드가 tesSUCCESS인 트랜잭션만 비XRP 잔액을 변경할 수 있습니다. 검증된 Ledger의 트랜잭션만 최종 트랜잭션입니다.

  • 부분 결제를 주의하세요. 부분 결제 플래그가 활성화된 결제는 적은 금액이라도 0이 아닌 금액이 전달되면 "성공"으로 간주할 수 있습니다.

    • 트랜잭션에서 delivered_amount 필드를 확인합니다. 이 필드가 있으면 실제로 목적지 주소로 전달된 금액을 나타냅니다.

    • xrpl.js에서 xrpl.getBalanceChanges() 메소드를 사용하여 각 주소가 받은 금액을 확인할 수 있습니다. 경우에 따라 이는 서로 다른 신뢰선에서 여러 부분으로 나눌 수 있습니다.

  • 일부 트랜잭션은 주소 중 하나에서 직접 송금되지 않고 잔액을 변경합니다. 예를 들어 ACME에서 이체 수수료를 0이 아닌 금액으로 설정하면 밥과 찰리가 ACME의 토큰을 교환할 때마다 ACME의 발행 주소의 미결제 채권이 감소합니다. 자세한 내용은 전송 수수료를 참조하십시오.

고객의 편의를 위해 운영 주소와 발급 주소 모두로 결제를 수락하는 것이 좋습니다.

추가 예방 조치로, 새로운 XRP 레저 Ledger 버전이 나올 때마다 발행 주소의 잔액과 내부 회계 시스템의 담보 자금을 비교하는 것이 좋습니다. 발급 주소의 마이너스 잔액은 네트워크 외부의 XRP Ledger에 할당된 자산과 일치해야 합니다. 두 가지가 일치하지 않으면 불일치가 해결될 때까지 XRP Ledger에 대한 지불 처리를 일시 중단해야 합니다.

  • gateway_balances 메소드를 사용하여 잔액을 확인합니다.

  • 전송 수수료를 설정한 경우, 다른 XRP Ledger 주소에서 토큰을 서로 전송할 때마다 XRP Ledger 내 의무가 약간 감소합니다.

들어오는 트랜잭션의 세부 정보를 읽는 방법에 대한 자세한 내용은 트랜잭션 결과 조회를 참조하세요.

전송 수수료

전송 수수료 설정은 한 XRP Ledger 주소에서 다른 주소로 토큰을 전송할 때 부과하는 수수료를 정의합니다. 자세한 내용은 전송 수수료를 참조하세요.

이 설정을 구성하는 방법에 대한 예시는 대체 가능한 토큰 발행 튜토리얼을 참조하세요.

Operational 주소와 Standby 주소의 전송 수수료

운영 주소와 대기 주소를 포함한 모든 XRP Ledger 주소는 토큰을 전송할 때 발행자의 전송 수수료가 적용됩니다. 송금 수수료를 0이 아닌 값으로 설정한 경우, 운영 주소 또는 대기 주소에서 결제할 때 (송금 수수료를 지불하기 위해) 추가 금액을 보내야 합니다. 즉, 결제할 때마다 운영 주소에서 발행 주소에서 생성한 잔액의 일부를 상환해야 합니다.

송금 속도 설정에 따라 SendMax 트랜잭션 매개변수를 대상 금액 매개변수보다 백분율만큼 높게 설정합니다.

Note:

토큰을 발급 주소로 직접 송금할 때는 송금 수수료가 적용되지 않습니다. 발행 주소는 항상 XRP Ledger에서 액면가로 토큰을 수락해야 합니다. 즉, 고객이 발행 주소로 직접 송금할 때는 송금 수수료를 지불할 필요가 없지만 운영 주소로 송금할 때는 송금 수수료를 지불해야 합니다. 두 주소 모두에서 결제를 수락하는 경우, 고객이 운영 주소로 결제를 보낼 때 고객이 지불하는 송금 수수료를 보상하기 위해 기록 시스템에서 고객에게 크레딧을 지급하는 금액을 조정할 수 있습니다.

예를 들어 ACME가 송금 수수료를 1%로 설정한 경우, 고객 주소에서 ACME의 발행 주소로 5 EUR.ACME를 송금하기 위한 XRP Ledger 결제는 정확히 5 EUR.ACME가 소요됩니다. 그러나 고객은 5 EUR.ACME를 ACME의 운영 주소로 전달하기 위해 5.05 EUR.ACME를 전송해야 합니다. (XRP Ledger에서 발행 주소의 총 의무는 0.05 EUR.ACME씩 감소합니다.) 고객이 ACME의 운영 주소로 지불한 금액에 대해 고객에게 크레딧을 제공하면, ACME는 운영 주소로 전달된 금액과 송금 수수료에 대해 고객에게 크레딧을 제공하여 고객에게 5,05유로를 ACME의 시스템에 제공합니다.

고객에게 결제금 보내기

고객을 위해 XRP Ledger에 결제를 전송하는 자동화 시스템을 구축할 때는 결제를 신중하게 구성해야 합니다. 악의적인 공격자들은 시스템을 속여 실제보다 더 많은 돈을 지불하도록 하는 방법을 끊임없이 찾고 있습니다.

일반적인 함정 중 하나는 XRP Ledger에서 고객에게 결제를 전송하기 전에 경로 찾기를 수행하는 것입니다. 발행자를 올바르게 지정하면 기본 경로를 통해 의도한 대로 화폐를 전달할 수 있습니다.

다음은 로컬에서 호스팅되는 rippled의 제출 방법을 사용하여 운영 주소 rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn에서 고객 주소 raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n으로 지불을 전송하고 발행 주소 rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW에서 발행된 자금을 전송하고 전달하는 예시입니다.

요청:

{
    "method": "submit",
    "params": [{
        "secret": "sn3nxiW7v8KXzPzAqzyHXbSSKNuN9",
        "tx_json": {
            "TransactionType": "Payment",
            "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
            "Destination": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n",
            "Amount": {
                "currency": "USD",
                "value": "0.13",
                "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW"
            },
            "SendMax": {
                "currency": "USD",
                "value": "0.13065",
                "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW"
            },
            "Fee": "10000"
        }
    }]
}

알림: 사용자가 제어하지 않는 서버로 비밀 정보를 보내지 마세요.

응답:

{
    "result": {
        "engine_result": "tesSUCCESS",
        "engine_result_code": 0,
        "engine_result_message": "The transaction was applied. Only final in a validated ledger.",
        "status": "success",
        "tx_blob": "1200002280000000240000016561D4449E57D63540000000000000000000000000005553440000000000204288D2E47F8EF6C99BCC457966320D1240971168400000000000271069D444A4413C6628000000000000000000000000005553440000000000204288D2E47F8EF6C99BCC457966320D12409711732103AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB7446304402207B75D91DC0EEE613A94E05FD5D031568D8A763E99697FF6328745BD226DA7D4E022005C75D7215FD62CB8E46C55B29FCA8E3FC62FDC55DF300597089DD29863BD3CD81144B4E9C06F24296074F7BC48F92A97916C6DC5EA983143A4C02EA95AD6AC3BED92FA036E0BBFB712C030C",
        "tx_json": {
            "Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
            "Amount": {
                "currency": "USD",
                "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
                "value": "0.13"
            },
            "Destination": "raKEEVSGnKSD9Zyvxu4z6Pqpm4ABH8FS6n",
            "Fee": "10000",
            "Flags": 2147483648,
            "SendMax": {
                "currency": "USD",
                "issuer": "rsA2LpzuawewSBQXkiju3YQTMzW13pAAdW",
                "value": "0.13065"
            },
            "Sequence": 357,
            "SigningPubKey": "03AB40A0490F9B7ED8DF29D246BF2D6269820A0EE7742ACDD457BEA7C7D0931EDB",
            "TransactionType": "Payment",
            "TxnSignature": "304402207B75D91DC0EEE613A94E05FD5D031568D8A763E99697FF6328745BD226DA7D4E022005C75D7215FD62CB8E46C55B29FCA8E3FC62FDC55DF300597089DD29863BD3CD",
            "hash": "37B4AA5C77A8EB889164CA012E6F064A46B6B7B51677003FC3617F614608C60B"
        }
    }
}

특히 결제 트랜잭션의 다음 기능에 유의하세요:

  • 경로 없음 필드. 기본 경로를 사용할 수 있는 경우에만 결제가 성공하며, 이 경로를 사용하는 것이 바람직합니다. 직접 경로를 덜 사용하면 훨씬 더 많은 비용이 발생할 수 있습니다.

  • SendMax와 금액의 발행자는 모두 발행 주소입니다. 이렇게 하면 트랜잭션이 동일한 화폐 코드를 사용하는 다른 발행자가 아닌 의도한 발행자로부터 토큰을 전송하고 전달할 수 있습니다.

  • 송금 수수료를 보상하기 위해 SendMax 금액의 값은 목적지 금액보다 약간 높습니다. 이 경우 송금 수수료는 0.5%이므로 SendMax 금액은 정확히 목적지 금액의 1.005배가 됩니다.

반송 결제

주소 중 하나에 용도가 불분명한 금액이 입금된 경우, 해당 금액을 발신자에게 반환하는 것이 좋습니다. 이렇게 하면 돈을 가로채는 것보다 수고가 더 많이 들지만 고객에 대한 선의를 보여줄 수 있습니다. 운영자가 수동으로 결제를 반송하도록 하거나 자동으로 반송하는 시스템을 만들 수 있습니다.

지불 거절의 첫 번째 요건은 들어오는 결제를 강력하게 모니터링하는 것입니다. 실수로 고객이 보낸 금액보다 더 많은 금액을 환불해서는 안 됩니다! (반송 프로세스가 자동화된 경우 특히 중요합니다.) 악의적인 사용자는 부분 결제를 전송하여 순진한 통합 기능을 악용할 수 있습니다.

둘째, 반송된 결제는 부분 결제로 보내야 합니다. 제3자가 주소 간 경로 비용을 조작할 수 있기 때문에 부분 결제를 사용하면 XRP Ledger의 환율을 신경 쓰지 않고 전체 금액을 분배할 수 있습니다. 반송된 결제 정책을 이용약관의 일부로 공개해야 합니다. 운영 주소 또는 대기 주소에서 반송된 결제를 보내세요.

부분 결제를 보내려면 트랜잭션에서 tfPartialPayment 플래그를 활성화합니다. 금액 필드를 수령한 금액으로 설정하고 SendMax 필드는 생략합니다. 수신 결제의 SourceTag 값을 반환 결제의 데스티네이션 태그 값으로 사용해야 합니다.

두 시스템에서 결제가 무기한 반송되는 것을 방지하려면 나가는 반품 결제에 대해 새 소스 태그를 설정할 수 있습니다. 데스티네이션 태그가 전송한 반품의 소스 태그와 일치하는 예기치 않은 결제를 받으면 다시 반송하지 마세요.

안정적인 트랜잭션 제출

트랜잭션을 안정적으로 전송하는 목표는 한정된 시간 내에 다음 두 가지 속성을 달성하는 것입니다:

  • 비동시성 - 트랜잭션은 한 번만 처리되거나 전혀 처리되지 않아야 합니다.

  • 검증 가능성 - 애플리케이션이 트랜잭션의 최종 결과를 결정할 수 있습니다.

트랜잭션을 안정적으로 제출하려면 다음 지침을 따르세요:

  • 트랜잭션을 제출하기 전에 트랜잭션의 세부 정보를 보존합니다.

  • LastLedgerSequence 매개변수를 사용합니다. (대부분의 클라이언트 라이브러리가 기본적으로 이 작업을 수행합니다.)

  • 트랜잭션의 Ledger 인덱스가 트랜잭션의 LastLedgerSequence 매개변수보다 작거나 같은 검증된 Ledger에 트랜잭션이 나타나지 않은 경우 트랜잭션을 다시 제출합니다.

자세한 내용은 신뢰할 수 있는 트랜잭션 제출을 참조하세요.

xrp-Ledger.toml 파일

사기꾼이나 혼동을 방지하기 위해 어떤 화폐를 발행하고 어떤 XRP Ledger를 관리하는지에 대한 정보를 게시할 수 있는 xrp-Ledger.toml 파일을 사용할 수 있습니다. 기계 판독이 가능한 이 형식은 클라이언트 애플리케이션이 처리하기에 편리합니다. XRP Ledger 유효성 검사기를 실행하는 경우 동일한 파일에 키를 게시할 수도 있습니다.

Last updated