비공개 문서

암호화폐 거래에서 최소 단위를 활용한 구매자 식별 시스템 및 방법

【발명의 명칭】

암호화폐 거래에서 최소 단위를 활용한 구매자 식별 시스템 및 방법

【기술분야】

【0001】 본 발명은 암호화폐 결제 시스템에 관한 것으로, 더욱 상세하게는 거래소 입금 주소를 활용한 암호화폐 결제에서 메모(Memo) 또는 태그(Tag) 기능 없이도 각 구매자를 고유하게 식별할 수 있는 금액 기반 식별 시스템 및 방법에 관한 것이다.

【배경기술】

【0002】 최근 암호화폐가 결제 수단으로 활용되면서, 온라인 가맹점에서 암호화폐 결제를 수락하는 사례가 증가하고 있다. 그러나 대부분의 암호화폐 거래소는 입금 시 발신자의 지갑 주소는 표시하지만 해당 지갑 주소가 누구의 것인지 실질적으로 확인할 수 없어, 동일한 금액의 복수 거래가 발생할 경우 어느 고객이 결제했는지 구분하기 어려운 문제가 있다.

【0003】 종래의 해결 방법으로는 첫째, 각 거래마다 개별 지갑 주소를 생성하는 방식이 있으나, 이는 HD (Hierarchical Deterministic) 지갑 관리의 복잡도를 증가시키고 생성된 각 주소로 자금을 이동시킬 때마다 네트워크 수수료가 발생하는 문제가 있다. 둘째, 메모(Memo) 또는 태그(Tag) 기능을 활용하는 방식이 있으나, 많은 거래소가 이를 지원하지 않으며, 지원하더라도 사용자가 메모나 태그를 누락하거나 잘못 입력하여 자금이 손실되거나 복구에 시간이 소요되는 문제가 빈번하게 발생한다. 셋째, 시간 기반으로 거래를 구분하는 방식은 동시다발적 거래 처리가 불가능하고 네트워크 지연 시 오류가 발생할 수 있다.

【0004】 특히 중소 가맹점의 경우, 직접 거래소 계정을 운영하면서 암호화폐 결제를 받고자 하나 암호화폐의 가격 변동성, 기존 결제 수단 대비 차별화된 이점 부족, 그리고 구매자 식별의 어려움 등으로 인해 도입을 주저하고 있는 실정이다.

【선행기술문헌】

【특허문헌】

【0005】 해당 없음.

【비특허문헌】

【0006】 (비특허문헌 0001) Satoshi Nakamoto, "Bitcoin: A Peer-to-Peer Electronic Cash System", 2008

【발명의 내용】

【해결하고자 하는 과제】

【0007】 본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로, 거래소의 메모(Memo) 또는 태그(Tag) 기능 지원 여부와 무관하게 구매자를 정확히 식별할 수 있는 시스템을 제공하는 것을 목적으로 한다.

【0008】 또한, 본 발명은 사용자 실수를 방지하면서도 다수의 동시 거래를 처리할 수 있는 확장성 있는 식별 방법을 제공하는 것을 목적으로 한다.

【0009】 또한, 본 발명은 시세 변동에 대응하여 안정적으로 작동하는 동적 식별 체계를 제공하는 것을 목적으로 한다.

【과제의 해결 수단】

【0010】 상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 암호화폐 거래 구매자 식별 방법은, 현재 시세를 기준으로 설정된 법정화폐 한도액에 해당하는 암호화폐 최소 단위 개수를 계산하여 최대 식별번호를 동적으로 결정하는 단계; 1부터 상기 최대 식별번호 범위 내에서 사용 가능한 식별번호를 할당하는 단계; 거래 금액을 암호화폐로 환산한 후 상기 식별번호에 해당하는 최소 단위를 더하여 고유 암호화폐 금액을 생성하는 단계; 및 실제 입금된 암호화폐 금액과 상기 고유 금액을 대조하여 구매자를 식별하는 단계를 포함한다.

【0011】 본 발명의 다른 실시예에 따른 암호화폐 거래 구매자 식별 시스템은, 실시간 시세를 모니터링하고 법정화폐 한도액에 해당하는 암호화폐 최소 단위 개수를 계산하여 최대 식별번호를 산출하며 시세 변동에 따라 식별번호 할당 가능 범위를 동적으로 확장 또는 축소하는 시세 및 범위 관리부; 산출된 범위 내에서 식별번호를 중복 없이 할당하는 번호 관리부; 거래 금액과 식별번호를 조합하여 고유 암호화폐 금액을 생성하는 금액 생성부; 거래소 입금을 모니터링하여 입금 금액과 고유 금액을 매칭하는 거래 매칭부; 및 거래 정보를 저장하고 관리하는 데이터베이스를 포함한다.

【발명의 효과】

【0012】 본 발명에 따르면, 거래소의 메모(Memo) 또는 태그(Tag) 기능 없이도 구매자를 자동으로 식별할 수 있어 수동 확인 작업을 크게 줄이고 운영 효율성을 향상시킬 수 있다. 특히 사용자의 입력 오류로 인한 자금 손실이나 복구 지연을 원천적으로 방지할 수 있다.

【0013】 또한, 현재 시세(2025년 6월 기준)를 기준으로 계산해보면 Bitcoin의 경우 최대 687개, Ethereum의 경우 최대 30,181개의 동시 거래를 처리할 수 있어 대규모 동시 거래 처리에 충분한 식별 능력을 제공한다.

【0014】 또한, 시세 변동에 따라 식별번호 할당 가능 범위가 자동으로 확장 또는 축소되어 999원 한도를 초과하지 않으면서도 각 시점에서 최대한의 동시 처리 용량을 유지할 수 있다. 특히 Ethereum의 경우 Bitcoin 대비 약 44배 많은 동시 거래 처리가 가능하여 다양한 규모의 비즈니스에 적합하다. 무엇보다, 식별번호가 동일한 암호화폐 금액을 구분하기 위해서만 사용되므로 시세 변동 시 동일한 상품이라도 암호화폐 환산 금액이 달라져 별도의 처리 없이 거래를 구분할 수 있고, 그 결과 효율적인 번호 관리가 가능하다.

【도면의 간단한 설명】

【0015】 도 1은 본 발명의 일 실시예에 따른 암호화폐 거래 구매자 식별 시스템의 전체 구성도이다.

【0016】 도 2는 본 발명의 일 실시예에 따른 동적 식별번호 할당 가능 범위 조정 프로세스를 나타낸 흐름도이다.

【0017】 도 3은 본 발명의 일 실시예에 따른 고유 금액 생성 및 할당 과정을 나타낸 도면이다.

【0018】 도 4는 본 발명의 일 실시예에 따른 거래 매칭 프로세스를 나타낸 흐름도이다.

【0019】 도 5는 본 발명의 일 실시예에 따른 시세 및 범위 관리부의 동작을 나타낸 도면이다.

【발명을 실시하기 위한 구체적인 내용】

【0020】 이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명을 설명함에 있어서, 관련 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.

【시스템 구성】

【0021】 도 1을 참조하면, 본 발명의 암호화폐 거래 구매자 식별 시스템(100)은 시세 및 범위 관리부(110), 번호 관리부(120), 금액 생성부(130), 거래 매칭부(140) 및 데이터베이스(160)를 포함한다.

【0022】 시세 및 범위 관리부(110)는 범위 산출 기능과 시세 관리 기능을 통합하여 수행한다. 구체적으로, 각 암호화폐의 현재 시세를 10분 주기로 모니터링하며, 복수의 거래소 API를 통해 시세를 조회하고 중간값(median)을 사용하여 극단적인 값의 영향을 최소화한다. 조회된 시세를 기반으로 999원에 해당하는 최소 단위 개수를 실시간으로 계산하여 최대 식별번호를 동적으로 결정한다. 예를 들어, 1 BTC가 145,360,000원일 때 999원은 0.00000687 BTC에 해당하며, 이는 687 Satoshi (Bitcoin의 최소 단위, 1 Satoshi = 0.00000001 BTC)이므로 Bitcoin의 최대 식별번호는 687이 된다. Ethereum의 경우 1 ETH가 3,310,000원일 때 999원은 0.000301813 ETH에 해당하고, 실용적 최소 단위인 0.00000001 ETH(10 Gwei)로 나누면 최대 30,181개의 식별번호를 사용할 수 있다.

또한, 시세 변동에 따른 최대 식별번호의 변화를 지속적으로 추적하면서 시스템 전체의 식별번호 할당 정책을 관리한다. 시세 상승으로 최대 식별번호가 감소한 경우에는 신규 할당 가능한 식별번호 범위를 축소하되 이미 할당된 번호들은 만료 시까지 유효하도록 유지하여 기존 거래의 안정성을 보장한다. 시세 하락으로 최대 식별번호가 증가한 경우에는 할당 가능 범위를 즉시 확장하여 시스템의 동시 처리 용량을 늘린다. 급격한 시세 변동 시에는 안전 마진을 적용하여 999원 한도를 초과하지 않도록 범위를 조정하는 등 시스템 안정성을 위한 정책 결정을 수행한다.

【0023】 번호 관리부(120)는 시세 및 범위 관리부(110)로부터 전달받은 최대 식별번호와 할당 가능 범위 정보를 기반으로 실제 사용 가능한 식별번호를 관리한다. 중요한 점은 식별번호가 동일한 암호화폐 금액에 대해서만 구분 기능을 수행한다는 것이다. 예를 들어 50,000원짜리 상품이라도 시세가 변동하면 암호화폐 환산액이 달라지므로(예: 0.00034394 BTC → 0.00034500 BTC) 기본 암호화폐 금액 자체가 달라져 식별번호 없이도 해당 거래들을 구분할 수 있다. 따라서 식별번호는 오직 동일한 시점에 동일한 암호화폐 환산 금액을 가지는 거래들만 구분하기 위해 사용된다. 분산 환경에서의 동시성 제어를 위해 Redis 등의 분산 락(Distributed Lock) 메커니즘을 구현하여 동일한 암호화폐 금액에 대해 동일한 식별번호가 중복 할당되지 않도록 한다. 할당된 식별번호는 타임스탬프와 함께 데이터베이스(160)에 저장되며, 설정된 시간(예: 기본값 1시간)이 경과하면 자동으로 회수되어 재사용 가능한 상태가 된다.

【0024】 금액 생성부(130)는 거래 금액과 할당된 식별번호를 조합하여 고유한 암호화폐 금액을 생성한다. 구체적으로, 거래 금액(원)을 현재 시세로 나누어 기본 암호화폐 금액으로 환산한 후, 동일한 기본 암호화폐 금액이 현재 활성 상태로 존재하는지 확인한다. 만약 존재한다면 번호 관리부(120)로부터 새로운 식별번호를 추가 할당받아 그 식별번호에 해당하는 최소 단위 값을 기본 금액에 더하여 고유 암호화폐 금액을 생성한다. 예를 들어 Bitcoin의 경우 식별번호로 받은 값 × 0.00000001 BTC를 기본 금액에 더해준다. 여기서 중요한 점은 식별번호가 동일한 기본 암호화폐 금액(예: 0.00034394 BTC)을 가지는 거래들을 서로 구분하기 위해서만 사용된다는 것이다. 서로 다른 시세이거나 원화 금액이 달라서 기본 암호화폐 금액이 달라진 경우(예: 0.00034394 BTC vs 0.00034500 BTC) 식별번호를 사용하지 않아도 자연스럽게 구분된다.

【0025】 거래 매칭부(140)는 거래소의 API를 통해 입금 내역을 실시간으로 모니터링하며, 입금된 암호화폐 금액과 데이터베이스에 저장된 고유 암호화폐 금액을 대조하여 구매자를 식별한다. 구체적으로, 입금이 감지되면 사전에 생성된 고유 금액과 정확히 일치하는지 확인하고, 일치할 경우 해당 거래를 매칭하여 거래를 확정짓는다. 매칭에 성공하면 사용된 식별번호를 번호 관리부(120)에 반환하여 재사용 가능 상태로 전환한다. 반면 정확히 일치하는 금액이 없는 경우에는 해당 거래를 수동 확인 대상으로 분류한다.

【0026】 데이터베이스(160)는 시스템의 모든 거래 정보, 식별번호 할당 상태, 고유 금액 인덱스, 시세 정보 등을 저장하고 관리한다. 특히 고유 암호화폐 금액에 대한 인덱스를 통해 중복 검사와 매칭 과정을 빠르게 수행할 수 있다.

【동적 범위 조정 프로세스】

【0027】 도 2를 참조하면, 동적 식별번호 범위 산출 프로세스는 다음과 같이 진행된다.

  • S210 (시세 조회): 현재 시세 정보를 조회한다. 이때 업비트, 빗썸, 코인원 등의 복수 거래소 API를 통해 시세를 가져오고, 극단값을 배제한 중간값을 사용하여 일시적 급등락의 영향을 완화한다.

  • S220 (최대 식별번호 계산): 조회된 시세 정보를 기반으로 최대 식별번호를 계산한다. 계산식은 다음과 같다.
    최대 식별번호 = ⌊ 999원 ÷ 현재시세(원/암호화폐) ÷ 최소단위 ⌋
    (위 계산에서 ⌊ ⌋는 소수점 이하는 버림을 의미한다.)

  • S230 (변화 비교): 새로 계산된 최대 식별번호가 이전 값에 비해 증가했는지 감소했는지 확인한다.

  • S240 (범위 조정): 시세 하락으로 최대 식별번호가 증가한 경우 할당 가능 범위를 즉시 확장하고, 시세 상승으로 최대 식별번호가 감소한 경우 이미 할당된 번호들의 유효성을 유지하면서 신규 할당만 제한하기 위해 할당 가능 범위를 축소한다.

【0028】 구체적인 계산 예시는 다음과 같다 (2025년 6월 기준).

Bitcoin (BTC)

  • 현재 시세: 145,360,000원/BTC

  • 최소 단위: 1 Satoshi = 0.00000001 BTC

  • 계산: 999원 ÷ 145,360,000원/BTC = 약 0.00000687 BTC

  • 최대 식별번호: 0.00000687 BTC ÷ 0.00000001 BTC = 687

Ethereum (ETH)

  • 현재 시세: 3,310,000원/ETH

  • 실용적 최소 단위: 0.00000001 ETH (10 Gwei)

  • 계산: 999원 ÷ 3,310,000원/ETH = 약 0.000301813 ETH

  • 최대 식별번호: 0.000301813 ETH ÷ 0.00000001 ETH ≈ 30,181

USDT/USDC (스테이블코인)

  • 현재 시세: 1,350원/USD

  • 최소 단위: 0.01 USD (거래소 기준 최소 단위)

  • 계산: 999원 ÷ 1,350원/USD ≈ 0.74 USD

  • 최대 식별번호: 0.74 USD ÷ 0.01 USD = 74

【0029】 도 3을 참조하면, Bitcoin의 경우 50,000원짜리 상품에 대한 고유 금액 생성 과정은 다음과 같다.

기본 금액 변환: 50,000원 ÷ 145,360,000원/BTC = 0.00034394 BTC

식별번호별 고유 금액 생성:

  • 식별번호 1: 0.00034394 BTC + 0.00000001 BTC = 0.00034395 BTC

  • 식별번호 2: 0.00034394 BTC + 0.00000002 BTC = 0.00034396 BTC

  • 식별번호 3: 0.00034394 BTC + 0.00000003 BTC = 0.00034397 BTC

  • ...

  • 식별번호 687: 0.00034394 BTC + 0.00000687 BTC = 0.00035081 BTC

Ethereum의 경우 동일한 50,000원 상품에 대해:
기본 금액 변환: 50,000원 ÷ 3,310,000원/ETH ≈ 0.015105740 ETH
Ethereum은 최대 30,181개의 식별번호를 사용할 수 있어, Bitcoin보다 훨씬 많은 동시 거래 처리가 가능하다.

각 식별번호별 금액은 정확히 최소 단위(예: BTC의 1 Satoshi)만큼 차이가 나므로, 암호화폐 네트워크 상에서 구분 가능한 서로 다른 금액이 된다.

중요한 점: 식별번호는 동일한 암호화폐 환산 금액이 발생할 때만 부여되며, 그 외의 경우에는 부여할 필요가 없다. 예를 들어:

  • 시세 변동 전: 50,000원 → 0.00034394 BTC

  • 시세 변동 후: 50,000원 → 0.00034500 BTC
    위 두 경우 기본 암호화폐 금액이 서로 다르므로 식별번호 없이도 서로 다른 거래로 구분된다.

충돌 방지 예시: 만약 서로 다른 상품 A, B가 우연히 동일한 암호화폐 금액으로 환산되는 경우:

  • A 상품 (50,000원) → 0.00034394 BTC (식별번호 1 이미 사용 중)

  • B 상품 (51,500원) → 0.00034394 BTC (시세 변동으로 환산 결과 일치)
    시스템은 B의 경우 기존에 동일 금액이 사용 중임을 감지하고 자동으로 다음 식별번호인 2를 할당하여 0.00034396 BTC로 금액을 조정한다. 이로써 두 거래는 고유 금액으로 구분된다.

【거래 매칭 프로세스】

【0030】 도 4를 참조하면, 거래 매칭은 다음과 같이 진행된다:

  • 정확한 금액 매칭: 입금된 암호화폐 금액과 데이터베이스에 저장된 고유 암호화폐 금액이 정확히 일치하는지 확인한다. 일치하는 경우 해당 거래를 매칭 성공으로 처리하고 구매자를 식별한다. 매칭 성공 시 사용된 식별번호를 회수하여 번호 관리부(120)가 재사용 가능하도록 한다.

  • 수동 확인: 일치하는 고유 금액이 없을 경우 매칭 실패로 간주하여 수동 확인 대상으로 분류한다. 이때 관리자에게 알림을 전송하고, 입금 시간, 금액 및 후보 거래 목록 등 관련 정보를 함께 제공하여 추후 수동으로 대조 확인할 수 있도록 한다.

【0031】 매칭 성공률을 높이기 위해 다음과 같은 추가 로직을 적용할 수 있다:

  • 시간 윈도우: 주문 생성 후 설정된 시간 이내에 입금된 거래를 우선 매칭하여 처리

  • 패턴 분석: 동일 지갑 주소에서 반복적으로 입금되는 거래의 경우 과거 패턴을 참조하여 식별에 활용

  • 거래 이력: 특정 구매자의 과거 거래 금액, 빈도 등의 이력을 바탕으로 의심 거래를 식별하고 우선 검토

【시세 변동 대응 메커니즘】

【0032】 도 5를 참조하면, 시세 및 범위 관리부(110)의 동작은 다음과 같다:

시세 모니터링

  • 10분 주기로 주요 거래소(업비트, 빗썸, 코인원 등)의 시세를 조회하여 최신 가격 정보를 확보

  • 극단적인 값은 제외하고 중간값을 산출함으로써 일시적 급등락의 영향을 완화

  • 이전 시세 대비 0.5% 이상의 변동이 감지되면 즉시 최대 식별번호를 재계산하여 반영

시세 상승 시 (최대 식별번호 감소)

  • 신규 할당 가능한 식별번호 범위를 즉시 축소하여 변경된 최대값을 반영

  • 이미 할당된 식별번호는 설정된 유효 기간 동안 계속 사용 가능하도록 유지

  • 동시 거래 수에 일시적 제한이 발생할 수 있음을 시스템 관리자나 사용자에게 안내 (예: 알림 메시지 표시)

시세 하락 시 (최대 식별번호 증가)

  • 신규 할당 가능한 식별번호 범위를 즉시 확장하여 증가된 최대값을 반영

  • 확대된 범위의 식별번호를 식별번호 풀에 추가하여 바로 활용 가능

  • 시세 하락으로 인한 처리 용량 증가를 자동으로 시스템에 반영

【0033】 또한, 안전 마진을 설정하여 999원 한도 초과를 방지한다:

  • 설정된 경고 임계값에 도달 시 경고 알림을 발생시켜 관리자에게 잠재적 위험을 알림

  • 설정된 중지 임계값에 도달 시 해당 식별번호의 신규 할당을 중지하여 999원 초과 가능성을 사전에 차단

  • 시세 급변 등으로 999원 초과가 예상될 경우 모든 신규 식별번호 할당을 긴급 중단하고 관리자에게 통보

특히 Ethereum과 같은 암호화폐의 경우 이 시스템을 통해 30,000개 이상의 식별번호를 활용한 동시 거래 처리가 가능하므로, 대규모 이벤트나 프로모션에서도 안정적인 서비스 운영이 가능하다.

【구현 상세】

【0034】 본 시스템의 핵심 알고리즘은 다음과 같이 구현될 수 있다:

php복사편집알고리즘 1: 최대 식별번호 계산 (시세  범위 관리부)
────────────────────────────────
function calculateMaxId(cryptoType, currentPrice):
    LIMIT = 999  // 법정화폐 한도액 (원 단위)
    minUnit = getMinimumUnit(cryptoType)
    maxId = floor(LIMIT / currentPrice / minUnit)
    return maxId  // 시세에 따라 동적으로 변하는 최대 식별번호

알고리즘 2: 식별번호 할당 (번호 관리부)
────────────────────────────────
function allocateId(cryptoType, baseAmount):
    // 시세 및 범위 관리부로부터 현재 할당 가능 범위 조회
    allowedRange = getCurrentAllowedRange(cryptoType)
    usedIds = database.queryUsedIds(cryptoType, baseAmount)
    
    // 분산 락 획득 (동일 암호화폐 금액에 대한 동시 요청 제어)
    lock = acquireDistributedLock(cryptoType + baseAmount)
    try:
        for i from 1 to allowedRange.max:  // 할당 가능 범위 내에서 탐색
            if i not in usedIds:
                database.saveIdentifier(cryptoType, baseAmount, i)
                return i
        throw Exception("No available ID")
    finally:
        lock.release()

알고리즘 3: 고유 금액 생성 (금액 생성부)
────────────────────────────────
function generateUniqueAmount(transactionAmount, cryptoType):
    currentPrice = getCurrentPrice(cryptoType)
    minUnit = getMinimumUnit(cryptoType)
    baseAmount = transactionAmount / currentPrice  // 원화를 암호화폐로 변환하여 기본 금액 산출
    
    id = 0
    while true:
        uniqueAmount = baseAmount + (id * minUnit)
        if not database.existsActiveTransaction(uniqueAmount):
            return uniqueAmount
        // 충돌 발생 시 다음 식별번호 시도
        id = allocateId(cryptoType, baseAmount)
        if id is None:
            throw Exception("No unique amount available")

알고리즘 4: 거래 매칭 (거래 매칭부)
────────────────────────────────
function matchTransaction(depositAmount, cryptoType):
    record = database.findByUniqueAmount(depositAmount, cryptoType)
    if record is not None:
        return record.transactionId  // 매칭 성공, 거래 ID 반환
    // 매칭되는 거래가 없을 경우
    addToManualReviewQueue(depositAmount, cryptoType)
    return None

알고리즘 5: 시세 변동 대응 (시세  범위 관리부)
────────────────────────────────
function adjustIdentifierRange(cryptoType):
    currentMax = calculateMaxId(cryptoType, getCurrentPrice(cryptoType))
    previousMax = database.getPreviousMaxId(cryptoType)
    
    if currentMax > previousMax:
        // 범위 확장
        database.updateAllowedRange(cryptoType, previousMax + 1, currentMax)
    else if currentMax < previousMax:
        // 범위 축소 (기존 할당은 유지하고 신규 할당만 제한)
        database.updateAllowedRange(cryptoType, 1, currentMax)
    
    database.savePreviousMaxId(cryptoType, currentMax)

【데이터 구조】

【0035】 시스템에서 활용되는 주요 데이터 구조는 다음과 같다:

yaml복사편집거래 레코드 (Transaction Record)
{
    id: 거래 고유 식별자,
    cryptoType: 암호화폐 종류,
    originalAmount: 원화 거래 금액,
    identifierId: 할당된 식별번호,
    uniqueAmount: 고유 암호화폐 금액,
    status: 거래 상태 (대기 / 매칭완료 / 만료),
    createdAt: 거래 생성 시간,
    expiresAt: 만료 예정 시간,
    matchedAt: 매칭 완료 시간 (매칭 전에는 null),
    depositTxId: 입금 트랜잭션 ID 또는 해시 (매칭 전에는 null),
    priceAtCreation: 거래 생성 시점의 암호화폐 시세
}

고유 금액 인덱스 (Unique Amount Index)
{
    uniqueAmount: 고유 암호화폐 금액 (PRIMARY KEY),
    transactionId: 거래 레코드 ID,
    status: 활성 여부 (활성 / 비활성),
    lastUpdated: 마지막 갱신 시각
}

시세 정보 (Price Info)
{
    cryptoType: 암호화폐 종류,
    price: 현재 시세 (/암호화폐),
    maxIdentifierId: 현재 시세 기준 최대 식별번호,
    allowedRange: 현재 할당 가능 범위 (1 ~ maxIdentifierId),
    updatedAt: 시세 정보 갱신 시간,
    source: 시세 출처 (API 제공 거래소 )
}

【보안 및 예외 처리】

【0036】 시스템의 안정성과 보안을 확보하기 위해 다음과 같은 조치를 구현한다:

동시성 제어

  • Redis 기반의 분산 락을 이용하여 동일한 암호화폐 기본 금액에 대해 중복된 식별번호가 할당되지 않도록 보장

  • 낙관적 락(Optimistic Lock)을 통한 데이터베이스 레벨의 동시성 보호로 경합 상태에서의 무결성 유지

충돌 방지

  • 고유 암호화폐 금액 생성 시 모든 활성 거래의 금액과 대조하여 중복 여부를 검사

  • 시세 변동으로 서로 다른 거래가 우연히 동일한 암호화폐 금액을 갖게 되는 경우 자동으로 다음 식별번호를 할당하여 충돌 해결

  • 모든 활성 거래의 고유 금액을 데이터베이스 인덱스로 관리하여 신속한 중복 검사를 지원

장애 대응

  • 거래소 API 장애 발생 시 최근 조회한 시세 정보를 일정 기간 캐싱하여 응답 지연이나 실패에 대비

  • 데이터베이스 장애 시 거래 정보를 메모리 큐 등에 임시 저장하고, 복구 후 일괄 반영하여 데이터 유실을 방지

부정 거래 방지

  • 동일 IP에서 단시간에 과도한 결제가 시도될 경우 해당 사용자의 거래를 일시 보류하거나 차단

  • 이상 패턴(예: 동일 금액 반복 결제, 잦은 실패 등) 감지 시 해당 사용자를 자동 차단하고 관리자 검토 대상으로 지정

【산업상 이용가능성】

【0037】 본 발명은 암호화폐를 결제 수단으로 활용하는 모든 온라인 가맹점에서 적용 가능하며, 특히 거래소 계정을 직접 활용하는 중소 규모 가맹점에 유용하다. Ethereum과 같이 동시 처리 가능 건수가 많은 암호화폐의 경우 3만 건 이상의 동시 결제를 식별할 수 있으므로 대규모 프로모션이나 이벤트에서도 안정적으로 활용될 수 있다. 이 시스템은 나아가 P2P 거래 플랫폼, 암호화폐 ATM, 국제 송금 서비스 등 구매자 식별이 필요한 다양한 분야에도 응용 가능하다.

【부호의 설명】

【0038】
100: 암호화폐 거래 구매자 식별 시스템
110: 시세 및 범위 관리부 (범위 산출 기능 + 시세 관리 기능 통합)
120: 번호 관리부
130: 금액 생성부
140: 거래 매칭부
160: 데이터베이스

【특허청구범위】

청구항 1. 암호화폐 거래에서 구매자를 식별하는 방법에 있어서,
현재 시세를 기준으로 설정된 법정화폐 한도액에 해당하는 암호화폐 최소 단위 개수를 계산하여 최대 식별번호를 동적으로 결정하는 단계;
1부터 상기 최대 식별번호 범위 내에서 사용 가능한 식별번호를 할당하는 단계;
거래 금액을 암호화폐로 환산한 후 상기 식별번호에 해당하는 최소 단위를 더하여 고유 암호화폐 금액을 생성하는 단계; 및
실제 입금된 암호화폐 금액과 상기 고유 금액을 대조하여 구매자를 식별하는 단계를 포함하는 것을 특징으로 하는 암호화폐 거래 구매자 식별 방법.

청구항 2. 제1항에 있어서,
상기 법정화폐 한도액은 999원이며,
상기 최대 식별번호는 999원을 현재 시세에 따라 암호화폐로 환산한 금액을 해당 암호화폐의 최소 단위로 나눈 몫인 것을 특징으로 하는 암호화폐 거래 구매자 식별 방법.

청구항 3. 제1항에 있어서,
상기 최대 식별번호 결정 단계는 시세 변동을 실시간으로 모니터링하여 주기적으로 재계산하되,
시세 상승으로 최대 식별번호가 감소한 경우 할당 가능한 식별번호 범위를 축소하고,
시세 하락으로 최대 식별번호가 증가한 경우 할당 가능한 식별번호 범위를 확장하는 것을 특징으로 하는 암호화폐 거래 구매자 식별 방법.

청구항 4. 제1항에 있어서,
상기 식별번호 할당 단계는 분산 락(Distributed Lock) 메커니즘을 이용하여 동시에 복수의 요청이 발생하더라도 동일한 식별번호가 중복 할당되지 않도록 하는 것을 특징으로 하는 암호화폐 거래 구매자 식별 방법.

청구항 5. 제1항에 있어서,
상기 구매자 식별 단계는,
실제 입금액과 상기 고유 금액이 정확히 일치하는지 확인하는 단계; 및
일치하지 않을 경우 수동 확인 대상으로 분류하는 단계를 포함하는 것을 특징으로 하는 암호화폐 거래 구매자 식별 방법.

청구항 6. 암호화폐 거래에서 구매자를 식별하는 시스템에 있어서,
실시간 시세를 모니터링하고 법정화폐 한도액에 해당하는 암호화폐 최소 단위 개수를 계산하여 최대 식별번호를 산출하며 시세 변동에 따라 식별번호 할당 가능 범위를 동적으로 확장 또는 축소하는 시세 및 범위 관리부;
상기 최대 식별번호 범위 내에서 사용되지 않은 식별번호를 선택하여 할당하는 번호 관리부;
거래 금액과 할당된 식별번호를 이용하여 고유 암호화폐 금액을 생성하는 금액 생성부;
거래소로부터 입금 정보를 수신하여 상기 고유 암호화폐 금액과 매칭하는 거래 매칭부; 및
거래 정보를 저장하고 관리하는 데이터베이스를 포함하는 것을 특징으로 하는 암호화폐 거래 구매자 식별 시스템.

청구항 7. 제6항에 있어서,
상기 번호 관리부는,
각 암호화폐별 기본 암호화폐 금액별로 사용 중인 식별번호를 관리하고,
설정된 시간이 경과한 미사용 식별번호를 자동으로 회수하여 재할당 가능한 상태로 전환하는 것을 특징으로 하는 암호화폐 거래 구매자 식별 시스템.

청구항 8. 제6항에 있어서,
상기 거래 매칭부는,
입금된 암호화폐 금액과 정확히 일치하는 고유 금액을 매칭하고,
정확한 매칭이 이루어지지 않은 경우 수동 확인 대기열에 추가하는 것을 특징으로 하는 암호화폐 거래 구매자 식별 시스템.

청구항 9. 제6항에 있어서,
상기 시세 및 범위 관리부는,
식별번호에 해당하는 법정화폐 금액이 설정된 임계값에 도달하면 경고를 발생시키고,
상기 법정화폐 한도액의 일정 비율에 도달하면 해당 식별번호의 신규 할당을 중지하는 것을 특징으로 하는 암호화폐 거래 구매자 식별 시스템.

청구항 10. 제6항에 있어서,
상기 금액 생성부는,
생성된 고유 암호화폐 금액이 기존 활성 거래의 금액과 중복되는지 확인하고,
중복이 발생한 경우 다른 식별번호를 사용하여 새로운 고유 금액을 생성하는 것을 특징으로 하는 암호화폐 거래 구매자 식별 시스템.

청구항 11. 제1항 내지 제5항 중 어느 한 항에 따른 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.

문의사항이 있으신가요?

르젯

대표: 장준하
06236 서울특별시 강남구 테헤란로 152, 41층 (역삼동)

contact@rzet.com

070-8984-4977

© RZet Inc. All Rights Reserved.

문의사항이 있으신가요?

르젯

대표: 장준하
06236 서울특별시 강남구 테헤란로 152, 41층 (역삼동)

contact@rzet.com

070-8984-4977

© RZet Inc. All Rights Reserved.

문의사항이 있으신가요?

르젯

대표: 장준하
06236 서울특별시 강남구 테헤란로 152, 41층 (역삼동)

contact@rzet.com

070-8984-4977

© RZet Inc. All Rights Reserved.