KR20210089682A - 블록 체인을 사용한 영지식 증명 결제 - Google Patents

블록 체인을 사용한 영지식 증명 결제 Download PDF

Info

Publication number
KR20210089682A
KR20210089682A KR1020217015728A KR20217015728A KR20210089682A KR 20210089682 A KR20210089682 A KR 20210089682A KR 1020217015728 A KR1020217015728 A KR 1020217015728A KR 20217015728 A KR20217015728 A KR 20217015728A KR 20210089682 A KR20210089682 A KR 20210089682A
Authority
KR
South Korea
Prior art keywords
customer
merchant
hash
zkp
proof
Prior art date
Application number
KR1020217015728A
Other languages
English (en)
Other versions
KR102526384B1 (ko
Inventor
안드라스 엘. 페렌크지
달라스 엘. 게일
닐레쉬 와이. 자드하브
해리쉬 알. 나이크
Original Assignee
아메리칸 익스프레스 트레블 릴레이티드 서비스즈 컴퍼니, 아이엔씨.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아메리칸 익스프레스 트레블 릴레이티드 서비스즈 컴퍼니, 아이엔씨. filed Critical 아메리칸 익스프레스 트레블 릴레이티드 서비스즈 컴퍼니, 아이엔씨.
Publication of KR20210089682A publication Critical patent/KR20210089682A/ko
Application granted granted Critical
Publication of KR102526384B1 publication Critical patent/KR102526384B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/18Payment architectures involving self-service terminals [SST], vending machines, kiosks or multimedia terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

블록 체인을 사용하는 영지식 증명 구매 시스템 및 프로세스가 개시된다. 시스템은 고객 디바이스, 상인 시스템, 발행자 시스템, 및 영지식 증명(zero-knowledge proof; ZKP) 스마트 계약을 갖는 블록 체인 네트워크를 포함할 수 있다. 시스템은 키 생성기 기능, 증명 기능, 및 검증 기능을 갖는 영지식 증명 알고리즘을 구현할 수 있다. 각각의 함수는 영지식 증명 구매들을 지원하고 가능하게 하기 위해 시스템에서 다양한 태스크들(tasks)을 수행하도록 구성될 수 있다.

Description

블록 체인을 사용한 영지식 증명 결제
관련 출원들에 대한 교차 참조
본 출원은 발명의 명칭이 "ZERO-KNOWLEDGE PROOF PAYMENTS USING BLOCKCHAIN"이고 2018년 12월 12일자로 출원된 미국 특허 출원 번호 제16/217,734호에 대한 우선권, 및 이에 대한 이익을 주장한다.
본 개시는 일반적으로 결제 시스템에 관한 것으로서, 보다 구체적으로는 분산 원장을 사용하는 영지식 증명(zero-knowledge proof) 결제 시스템들 및 프로세스들에 관한 것이다.
소비자들은 다양한 방법들을 사용하여 상인과 거래들(transactions)을 개시하기를 원할 수 있다. 예를 들어, 소비자는 벽돌 및 모르타르 상점을 방문하거나, 상인의 웹사이트를 통해 온라인으로, 또는 임의의 다른 적합한 수단을 통해 상인과 직접 거래를 개시할 수 있다. 거래를 완료하기 위해, 소비자는 거래 계좌 번호, 소비자의 이름, 소비자의 연락처 정보 등등을 포함할 수 있는 민감한 정보를 제출할 수 있다. 상인은 거래 계좌 번호, 유효 기간, 카드 검증 값(card verification value; CVV) 등등을 발행자 시스템 또는 결제 프로세서에 전송함으로써 거래의 인가를 요청할 수 있다. 발행자 시스템 또는 결제 프로세서는 거래 계좌 데이터를 검증하고, 소비자가 결제를 완료하기에 충분한 자금들을 갖고 있다는 것을 보장하고, 인가 승인 또는 거부를 다시 전송할 수 있다. 기술적 문제는 전형적인 거래 프로세스가, 불안전할 수도 있는 다수의 채널들에 걸쳐, 거래 계좌 데이터 및 고객 데이터를 포함하는 민감한 데이터를 노출시킨다는 점이다. 전형적인 거래 프로세스들에서 민감한 데이터를 노출시킴으로써, 민감한 데이터는 제3자에 의해 인터셉트되거나 달리 도난될 수 있다.
블록 체인을 사용한 시스템들, 방법들, 및 컴퓨터 판독가능 매체들(집합적으로, "시스템")이 개시된다. 시스템은 결제 프로세스 동안 상인 시스템에 의해 호출되는 것에 응답하여 검증 기능(validate function)을 실행하고 - 상인 시스템은 증명(proof), 고객 해시(hash), 상인 해시, 및 구매 금액을 ZKP 스마트 계약에 전송함으로써 ZKP 스마트 계약을 호출하고, 검증 기능은 검증 키, 증명, 및 고객 해시를 검증 기능에 입력함으로써 실행되고, 검증 기능은 영지식 증명 알고리즘과 연관됨 -; 검증 기능 통과에 응답하여 고객 해시와 연관되는 고객 계좌 잔액을 조정하고 - 고객 계좌 잔액은 구매 금액에 기초하여 조정되고, 고객 계좌 잔액은 블록 체인 상에 유지됨 -; 상인 해시와 연관되는 상인 계좌 잔액을 조정하고 - 상인 계좌 잔액은 구매 금액에 기초하여 조정되고, 상인 계좌 잔액은 블록 체인 상에 유지됨 -; 성공 통지를 블록 체인에 기록하도록 - 성공 통지는 결제 프로세스가 성공적으로 완료되었다는 것을 나타내는 데이터를 포함함 -구성되는 영지식 증명(zero-knowledge proof; ZKP) 스마트 계약서를 포함할 수 있다.
다양한 실시예들에서, 상인 시스템은 고객 디바이스로부터 증명 및 고객 해시를 수신하는 것에 응답하여 ZKP 스마트 계약을 호출할 수 있다. 고객 디바이스는 영지식 증명 알고리즘과 연관되는 증명 기능을 실행함으로써 상기 증명을 생성할 수 있다. 증명 기능은 증명 키, 고객 해시, 및 결제 해시를 증명 알고리즘에 입력시킴으로써 실행될 수 있다. 고객 디바이스는 상인 시스템과 결제 구매를 개시하는 것에 응답하여 증명을 생성할 수 있다. 결제 해시는 고객 식별 데이터 및 고객 넌스(nonce)를 해싱 알고리즘에 입력함으로써 생성될 수 있다.
다양한 실시예들에서, 발행자 시스템은 영지식 증명 알고리즘을 생성할 수 있다. 영지식 증명 알고리즘은 키 생성기 기능, 증명 기능, 및 검증 기능을 포함할 수 있다. 발행자 시스템은 키 생성기 기능을 실행함으로써 증명 키 및 검증 키를 생성할 수 있다. 키 생성기 기능은 난수를 키 생성기 기능으로 입력함으로써 실행될 수 있다. 발행자 시스템은 검증 기능을 포함하는 ZKP 스마트 계약을 생성할 수 있다.
다양한 실시예들에서, 발행자 시스템은 상인 시스템으로부터 상인 등록 요청을 수신하는 것에 응답하여 상인 해시를 생성할 수 있다. 상인 해시는 상인 식별 데이터 및 상인 넌스(nonce)를 해싱 알고리즘에 입력함으로써 생성될 수 있다. ZKP 스마트 계약은 상인 해시 및 상인 계좌 잔액을 블록 체인에 기록할 수 있다. ZKP 스마트 계약이 기록을 완료하였다는 것에 응답하여, 발행자 시스템은 상인 해시 및 상인 넌스를 상인 시스템에 전송할 수 있다. 다양한 실시예들에서, 발행자 시스템은 고객 디바이스로부터 고객 등록 요청을 수신하는 것에 응답하여 고객 해시를 생성할 수 있다. 고객 해시는 고객 식별 데이터 및 고객 넌스를 해싱 알고리즘에 입력함으로써 생성될 수 있다. ZKP 스마트 계약은 고객 해시 및 고객 계좌 잔액을 블록 체인에 기록할 수 있다. ZKP 스마트 계약이 기록을 완료하는 것에 응답하여, 발행자 시스템은 고객 해시 및 고객 넌스를 고객 디바이스에 전송할 수 있다.
전술한 특징들 및 요소들은 달리 본원에 명백하게 표시되지 않는 한, 배타성 없이 다양한 조합들로 결합될 수 있다. 개시된 실시예들의 동작 뿐만 아니라 이들 특징들 및 요소들은 다음 설명 및 첨부 도면들을 고려하여 보다 명백하게 될 것이다.
본 개시의 발명 대상은 명세서의 결론 부분에서 특히 지적되고 명확하게 주장된다. 그러나, 본 개시의 더 완전한 이해는 도면 특징들과 함께 고려될 때 상세 설명 및 청구항들을 참조함으로써 획득될 수 있으며, 여기서 유사 번호들은 유사 요소들을 나타낸다.
도 1은 다양한 실시예들에 따른, 영지식 증명 결제 시스템을 예시하는 예시적 블록 다이어그램이다.
도 2는 다양한 실시예들에 따른,영지식 증명 알고리즘을 개시하기 위한 예시적 프로세스 흐름을 예시한다.
도 3은 다양한 실시예들에 따른, 영지식 증명 결제들을 위한 상인 등록의 예시적 프로세스 흐름을 예시한다.
도 4는 다양한 실시예들에 따른, 영지식 증명 결제들을 위한 고객 등록의 예시적 프로세스 흐름을 예시한다.
도 5는 다양한 실시예들에 따른, 영지식 증명 결제들을 위한 예시적 프로세스 흐름을 예시한다.
본원의 다양한 실시예들의 상세 설명은 첨부 도면들 및 사진들을 참조하며, 이는 예시로서 다양한 실시예들을 도시한다. 이들 다양한 실시예들은 당업자가 본 개시를 실시할 수 있도록 충분히 상세하게 설명되지만, 다른 실시예들이 실현될 수 있고 논리적 및 기계적 변경들이 본 개시의 사상 및 범위로부터 벗어나는 것 없이 이루어질 수 있다는 점이 이해되어야 한다. 따라서, 본원의 상세 설명은 제한이 아닌 예시만의 목적들을 위해 제시된다. 예를 들어, 방법 또는 프로세스 설명들 중 임의의 것에 인용되는 단계들은 임의의 순서로 실행될 수 있고 제시된 순서에 제한되지 않는다. 더욱이, 기능들 및 단계들 중 임의의 것은 하나 이상의 제3자에게 아웃소싱되거나 이에 의해 수행될 수 있다. 수정들, 추가들, 또는 생략들은 본 개시의 범위로부터 벗어나는 것 없이 본원에 설명되는 시스템들, 장치들, 및 방법들에 이루어질 수 있다. 예를 들어, 시스템들 및 장치들의 구성요소들은 통합되거나 분리될 수 있다. 더욱이, 본원에 개시되는 시스템들 및 장치들의 동작들은 더 많은, 더 적은, 또는 다른 구성요소들에 의해 수행될 수 있거나 설명되는 방법들은 더 많은, 더 적은, 또는 다른 단계들을 포함할 수 있다. 추가적으로, 단계들은 임의의 적합한 순서로 수행될 수 있다. 본원에 사용되는 바와 같이, "각각(each)"은 세트의 각각의 수 또는 세트의 서브세트의 각각의 수를 언급한다. 더욱이, 단수에 대한 임의의 참조는 복수의 실시예들을 포함하고, 하나보다 많은 구성요소에 대한 임의의 참조는 단수의 실시예를 포함할 수 있다. 특정 장점들이 본원에 열거되었지만, 다양한 실시예들은 열거된 장점들 중 일부를 포함하거나, 전혀 포함하지 않거나, 전부를 포함할 수 있다.
영지식 증명 결제 시스템 및 프로세스는 고객이 거래 계좌 데이터를 포함하는 민감한 데이터를 노출시킬 필요없이 고객과 상인 사이의 거래들을 완료하기 위해 사용될 수 있다. 시스템은 예를 들어, zk-SNARK들과 같은 영지식 증명 알고리즘을 구현할 수 있다. 알고리즘은 실제 정보가 당사자들 사이에서 개시되거나 교환될 필요없이, 고객이 특정 정보(예를 들어, 거래 계좌 데이터)의 지식 또는 소유를 증명할 수 있게 하고, 상인이 정보의 지식 또는 소유를 검증할 수 있게 한다. 발행자 시스템은 영지식 증명 알고리즘을 설정할 수 있고 상인들 및 고객들이 영지식 증명 결제들에 등록하기 위해 발행자 시스템으로 등록하는 것을 허용할 수 있다. 고객 계좌 잔액들, 상인 계좌 잔액들, 및 거래 데이터는 블록 체인 상에 유지될 수 있다. 스마트 계약은 영지식 증명 결제 프로세스 동안 엔드 투 엔드(end-to-end) 데이터 흐름을 제어하고, 성공적인 인가 및/또는 거래에 응답하여, 고객 계좌 잔액들 및 상인 계좌 잔액들을 갱신하기 위해 사용될 수 있다.
이러한 시스템은 컴퓨터의 기능을 더 개선한다. 예를 들어, 본원에 설명되는 프로세스들을 사용하여 데이터를 전송, 저장, 및 액세스함으로써, 데이터의 보안은 개선되며, 이는 컴퓨터, 네트워크, 및/또는 민감한 데이터가 손상되는 위험을 감소시킨다. 예를 들어, 본원에 제공되는 영지식 증명 방법을 사용함으로써, 고객들의 개인 정보는 발행자 시스템으로만 저장된다. 개인 정보가 상인들과 공유되지 않으므로, 거래 계좌 번호를 포함하는 크리덴셜들 및 기밀 정보는 결제 프로세스 동안 노출되지 않는다. 더욱이, 상인이 개인 정보를 수신하지 않기 때문에, 상인들은 결제 카드 산업 데이터 보안 표준(Payment Card Industry Data Security Standard; PCI DSS) 준수를 증명할 필요가 없을 수 있다.
본원에 설명되는 시스템들, 방법들, 및 컴퓨터 판독가능 매체들 (집합적으로, "시스템")은, 다양한 실시예들에 따라, 피어 투 피어(peer-to-peer) 네트워크를 통해 복수의 컴퓨팅 디바이스들(예를 들어, 노드들)에 의해 유지되는 분산 원장(distributed ledger)을 사용할 수 있다. 각각의 컴퓨팅 디바이스는 분산 원장의 사본(copy) 및/또는 부분 사본을 유지하고 데이터를 검증하고 이를 분산 원장에 기록하기 위해 네트워크 내의 하나 이상의 다른 컴퓨팅 디바이스들과 통신한다. 분산 원장은 예를 들어, 데이터의 합의 기반 검증, 불변성, 및 암호학적으로 체인화된 블록들을 포함하는 블록 체인 기술의 특징들 및 기능을 사용할 수 있다. 블록 체인은 데이터를 포함하는 상호연결된 블록들의 원장을 포함할 수 있다. 블록 체인은 개별 거래들 및 임의의 블록 체인 실행파일들(executables)의 결과들을 보유할 수 있기 때문에 증강된 보안을 제공할 수 있다. 각각의 블록은 이전 블록에 링크될 수 있고 타임스탬프를 포함할 수 있다. 블록들은 각각의 블록이 블록 체인에서 이전 블록의 해시(hash)를 포함할 수 있기 때문에 링크될 수 있다. 링크된 블록들은 체인을 형성하며, 하나의 후속 블록만이 단일 체인을 위해 하나의 다른 이전 블록에 링크하는 것이 허용된다. 포크들(Forks)은 분기 체인들(divergent chains)이 이전의 균일 블록 체인으로부터 설정되는 경우 가능할 수 있지만, 전형적으로 분기 체인들 중 하나만이 합의 체인으로서 유지될 것이다. 다양한 실시예들에서, 블록 체인은 데이터 워크플로우들을 분산(decentralized) 방식으로 강제하는 스마트 계약들(smart contracts)을 구현할 수 있다. 시스템은 또한 사용자 디바이스들 예컨대, 예를 들어, 컴퓨터들, 태블릿들, 스마트폰들, 사물 인터넷 디바이스들("IoT" 디바이스들) 등에 대해 전개되는 애플리케이션들을 포함할 수 있다. 애플리케이션들은 데이터를 전송 및 검색하기 위해 (예를 들어 직접적으로 또는 블록 체인 노드를 통해) 블록 체인과 통신할 수 있다. 다양한 실시예들에서, 정부 조직 및 컨소시엄은 블록 체인 상에 저장되는 데이터에 대한 액세스를 제어할 수 있다. 관리 조직(들)과의 등록은 블록 체인 네트워크에서 참여(participation)를 가능하게 할 수 있다.
시스템을 통해 수행되는 데이터 전송들은 특정 블록 체인 기술이 구현되는 블록 생성 기간에 의해 결정될 수 있는 기간(duration) 내에서 블록 체인 네트워크 내의 연결된 피어들(peers)로 전파될 수 있다. 예를 들어, ETHEREUM®-기반 네트워크 상에서, 새로운 데이터 엔트리는 기록 시 약 13 내지 20초 내에서 이용가능하게 될 수 있다. Hyperledger® Fabric 1.0 기반 플랫폼 상에서, 기간은 선택된 특정 합의 알고리즘에 의해 구동되고, 몇 초 이내에 수행될 수 있다. 그러한 측면에서, 시스템에서 데이터를 전송하고, 구매들을 개시하고, 구매들을 완료하는 전파 시간들 및 속도는 기존 시스템들과 비교하여 향상될 수 있고, 마켓에 대한 구현 비용들 및 시간이 또한 대폭 감소될 수 있다. 시스템은 또한 적어도 부분적으로 블록 체인에 저장되는 데이터의 불변성(immutable nature)으로 인해 증가된 보안을 제공하여, 다양한 데이터 입력들 및 출력들을 탬퍼링하는 확률을 감소시킨다. 더욱이, 시스템은 또한 블록 체인 상에 데이터를 저장하기 전에 데이터에 대한 암호화 프로세스들을 수행함으로써 구매 요청들 및 구매들의 증가된 보안을 제공할 수 있다. 따라서, 본원에 설명되는 시스템을 사용하여 데이터를 전송, 저장, 및 액세스함으로써, 데이터의 보안은 향상되며, 이는 컴퓨터 또는 네트워크가 손상되는 위험을 감소시킨다.
다양한 실시예들에서, 시스템은 또한 공통 데이터 구조를 제공함으로써 데이터베이스 동기화 에러들을 감소시킬 수 있으며, 따라서 적어도 부분적으로 저장된 데이터의 무결성(integrity)을 향상시킨다. 또한, 데이터를 관련된 당사자과 실시간(또는 거의 실시간)으로 동기화시킴으로써, 시스템은 데이터 무결성, 데이터 기밀성, 및 데이터 보안을 향상시킬 수 있으며, 이는 또한 비즈니스 프로세스의 속도를 향상시킬 수 있다. 시스템은 또한 각각의 노드가 저장된 데이터의 전체 사본으로 동작할 수 있음에 따라 전통적인 데이터베이스들(예를 들어, 관계형 데이터베이스들, 분산형 데이터베이스들 등) 비해 증가된 신뢰도 및 장애 허용(fault tolerance)을 제공하며, 따라서 적어도 부분적으로 로컬화된 네트워크 장애들 및 하드웨어 고장들로 인한 정지시간(downtime)을 감소시킨다. 시스템은 또한 각각의 노드가 메시지들을 전체 연결된 피어들에 브로트캐스트함에 따라, 신뢰할 수 있는 및 신뢰할 수 없는 피어들을 갖는 네트워크 환경에서 데이터 전송들의 신뢰도를 향상시킬 수 있고, 각각의 블록이 이전 블록에 대한 링크를 포함함에 따라, 노드는 신속하게 누락(missing) 블록을 검출하고 누락 블록에 대한 요청을 블록 체인 네트워크 내의 다른 노드들에 전파시킬 수 있다.
도 1을 참조하면, 영지식 증명 결제 시스템(100)이 다양한 실시예들에 따라 도시된다. 시스템(100)은 서로 통신하는 다양한 컴퓨팅 디바이스들, 소프트웨어 모듈들, 네트워크들, 및 데이터 구조들을 포함할 수 있다. 시스템(100)은 또한 웹 서비스들, 유틸리티 컴퓨팅, 편재형 및 개별화된 컴퓨팅, 보안 및 신원(identity) 솔루션들, 자율 컴퓨팅, 클라우드 컴퓨팅, 상품 컴퓨팅, 모빌리티 및 무선 솔루션들, 오픈 소스, 생체인식, 그리드 컴퓨팅 및/또는 메쉬 컴퓨팅과 연관하여 사용들을 고려할 수 있다. 블록 체인에 기초한 시스템(100)은, 본원에 설명되는 바와 같이, 블록 체인을 분산 및 탬퍼-방지(tamper-proof) 데이터 저장소로서 사용함으로써 결제 프로세스 및 관련 프로세스들을 단순화하고 자동화할 수 있다. 투명성(Transparency)은 검증이 예를 들어, 특정 금융 기관 대신 분산형 자치 단체(decentralized autonomous organization: DAO)에 의해 저장되는 데이터를 사용하여 수행되므로 연방 또는 공공 블록 체인을 사용하는 다양한 실시예들에 대해 매우 높다.
다양한 실시예들에서, 시스템(100)은 고객 디바이스(110), 상인 시스템(120), 발행자 시스템(130), 및/또는 블록 체인 네트워크(140) 중 하나 이상을 포함할 수 있다. 블록 체인 네트워크(140)는 본원에서 더 논의되는 바와 같이, 하나 이상의 블록 체인 노드들, API들 등등을 통해 발행자 시스템(130)과 전자 통신할 수 있다. 블록 체인 네트워크(140)는 또한 본원에서 더 논의되는 바와 같이, 상인 시스템(120)이 스마트 계약(smart contract)(예를 들어, 영지식 증명 스마트 계약(145))을 호출하는 것에 응답하여 상인 시스템(120)에 의해 액세스가능할 수 있다. 블록 체인 네트워크(140)는 본질적으로 사설, 컨소시엄 및/또는 공용(public)인 블록 체인 네트워크 또는 피어 투 피어 네트워크(예를 들어, ETHEREUM®, Bitcoin, Hyperledger® Fabric 등)일 수 있다. 컨소시엄 및 사설 네트워크는 블록 체인의 콘텐츠에 대해 향상된 제어를 제공할 수 있고 공용 네트워크들은 보안을 향상시키기 위해 네트워크의 누적 컴퓨팅 파워를 이용할 수 있다. 블록 체인 네트워크(140)는 본원에서 더 논의되는 바와 같이, 서로 전자 통신하는 다양한 블록 체인 노드들을 포함할 수 있다.
블록 체인 네트워크(140)는 블록 체인을 유지하고 블록 체인에 대한 기록들에 동의하도록 구성되는 복수의 블록 체인 노드들을 포함할 수 있다. 블록 체인은 레코드들(records)을 판독가능한 방식으로 유지하고 탬퍼링에 대해 저항하는 분산 원장(distributed ledger)일 수 있다. 블록 체인은 예를 들어, ETHEREUM®, Open Chain, Chain Open Standard, Hyperledger® Fabric, CORDA CONNECT®, INTEL® Sawtooth 등과 같은 블록 체인 기술들에 기초할 수 있다. 블록 체인은 데이터를 포함하는 상호연결된 블록들의 원장을 포함할 수 있다. 각각의 블록은 이전 블록에 링크될 수 있고 타임스탬프를 포함할 수 있다. 시스템(100)의 지원으로 구현될 때, 블록 체인은 시스템(100)에서 영지식 증명 결제들의 불변 로그의 역할을 할 수 있다. 블록 체인은 본원에서 더 논의되는 바와 같이, 블록 체인의 사본들 또는 부분 사본들의 형태로 다양한 블록 체인 노드들 상에 유지될 수 있다. 블록들은 블록 체인 노드들 사이에 합의(consensus)를 설정함으로써 블록 체인에 기록될 수 있다. 예를 들어, 합의는 작업 증명, 스테이크 증명, 실용적인 비잔티움 장애 허용, 위임된 스테이크 증명, 또는 다른 적합한 합의 알고리즘들에 기초하여 설정될 수 있다.
다양한 실시예들에서, 블록 체인 네트워크(101)는 하나 이상의 스마트 계약들을 호스팅하고/하거나 구현할 수 있다. 스마트 계약들은 시스템(100)에서 엔드 투 엔드 데이터 흐름을 제어할 수 있고 다양한 거래 데이터의 실행 및 기록을 지원함으로써 결제 프로세스를 자율적으로 관리할 수 있다. 예를 들어, 그리고 다양한 실시예들에 따라, 블록 체인 네트워크(140)는 하나 이상의 영지식 증명(ZKP) 스마트 계약들(145)을 호스팅할 수 있다. ZKP 스마트 계약(145)은 본원에서 더 논의되는 바와 같이, API 호출(call) 등등에 의해 통과되는 미리결정된 함수 파라미터들에 기초하여 데이터를 블록 체인에 기록하는 실행파일들(executables)을 포함할 수 있다. ZKP 스마트 계약(145)은 예를 들어, 솔리디티(Solidity), 또는 임의의 다른 적합한 스마트 계약 프로그래밍 언어와 같은 프로그래밍 언어로 기록되는 프로그램을 포함할 수 있다.
ZKP 스마트 계약(145)은 본원에서 더 논의되는 바와 같이, 다양한 영지식 증명 기능들 및 능력들을 제공하도록 구성되는 스마트 계약을 포함할 수 있다. 예를 들어, 그리고 다양한 실시예들에 따라, ZKP 스마트 계약(145)은 본원에서 더 논의되는 바와 같이, 영지식 증명 구매 워크플로우를 제어하고/하거나, 데이터를 블록 체인에 기록하고/하거나, 통지들을 하나 이상 엔티티들에 전송하는 등으로 구성될 수 있다. 예를 들어, 그리고 본원에서 더 논의되는 바와 같이, ZKP 스마트 계약(145)은 본원에서 더 논의되는 바와 같이, 거래 동안 상인 시스템(120)으로부터 데이터를 수신하고, 상인과 거래하는 고객의 신원을 검증하기 위해 검증 기능을 실행하고, 거래에 기초하여 블록 체인 상에 유지되는 고객 계좌 잔액들 및 상인 계좌 잔액들을 조정하고, 계좌 잔액들을 성공적으로 조정하는 것에 응답하여 성공 통지를 기록 및 전송하도록 구성될 수 있다.
다양한 실시예들에서, 고객(115)은 상인(125)으로부터 하나 이상의 상품들 또는 서비스들을 구매하기를 원할 수 있다. 예를 들어, 고객(115)은 상품들 또는 서비스들을 구매하기 위해 상인(125)과 연관되는 벽돌 및 모르타르 상점에 갈 수 있다. 고객(115)은 상인(125)과 구매를 완료하기 위해 고객 디바이스(110)를 사용할 수 있다. 고객 디바이스(110)는 본원에서 더 논의되는 바와 같이, 구매에 대한 데이터를 전송하기 위해 상인 시스템(120)과 상호작용할 수 있다. 추가의 예로서, 고객(115)은 웹 브라우저, 모바일 애플리케이션 등등을 통해 온라인으로 상인(125)으로부터 상품들 또는 서비스들을 구매할 수 있다. 그러한 측면에서, 고객(115)은 구매를 완료하기 위해 고객 디바이스(110)와 상호작용할 수 있다. 고객 디바이스(110)는 본원에서 더 논의되는 바와 같이, 제품 또는 서비스 데이터를 검색하고 구매를 완료하기 위해 상인 시스템(120)과 전자적으로 통신할 수 있다.
다양한 실시예들에서, 고객 디바이스(110)는 상인 시스템(120) 및/또는 발행자 시스템(130)과 전자 통신할 수 있다. 고객 디바이스(110)는 데이터를 송신, 수신, 및/또는 저장할 수 있는 임의의 적합한 하드웨어, 소프트웨어, 및/또는 데이터베이스 또는 메모리 구성요소들을 포함할 수 있다. 고객 디바이스(110)는 하나 이상의 컴퓨팅 디바이스들, 예컨대, 예를 들어 컴퓨터 또는 프로세서, 또는 한 세트의 컴퓨터들 및/또는 프로세서들을 포함할 수 있지만, 다른 유형들의 컴퓨팅 유닛들 또는 시스템들이 또한 사용될 수 있다. 예를 들어, 고객 디바이스(110)는 로직을 구현할 수 있는 프로세서 및 하나 이상의 유형의, 비-일시적 메모리들을 포함할 수 있다. 프로세서는 본원에서 더 논의되는 바와 같이, 명령들, 예를 들어, 비-일시적, 유형의, 컴퓨터-판독가능 매체 상에 저장되는 명령들의 실행에 응답하여 다양한 논리적 연산들을 구현하도록 구성될 수 있다. 고객 디바이스(110)는 랩탑, 태블릿, 핸드헬드 컴퓨터, 개인 정보 단말기, 셀룰라 폰, 스마트폰(예를 들어, IPHONE®, BLACKBERRY®, 및/또는 유사한 것), IoT 디바이스, 및/또는 유사한 것을 포함할 수 있다. 고객 디바이스(110)는 운영 체제, 예컨대, 예를 들어, WINDOWS® 모바일 운영 체제, ANDROID® 운영 체제, APPLE® IOS®, BLACKBERRY® 운영 체제, LINUX® 운영 체제 등을 포함할 수 있다. 고객 디바이스(110)는 또한 고객 디바이스(110) 상에 설치되고 고객 디바이스(110)가 상인 시스템(120) 및/또는 발행자 시스템(130)에 액세스하고/하거나 이와 상호작용하는 것을 허용하도록 구성되는 소프트웨어 구성요소들을 포함할 수 있다. 예를 들어, 고객 디바이스(110)는 고객 디바이스(110)가 상인 시스템(120) 및/또는 발행자 시스템(130)에 액세스하고 이와 상호작용하는 것을 허용하도록 구성되는, 웹 브라우저(예를 들어, MICROSOFT INTERNET EXPLORER®, GOOGLE CHROME® 등), 애플리케이션, 마이크로-앱 또는 모바일 애플리케이션, 또는 유사한 것을 포함할 수 있다.
다양한 실시예들에서, 상인 시스템(120)은 고객 디바이스(110) 및/또는 발행자 시스템(130)과 전자 통신할 수 있다. 다양한 실시예들에서, 상인 시스템(120)은 또한 본원에서 더 논의되는 바와 같이, 영지식 증명 구매를 완료하기 위해, 블록 체인 네트워크(140)를 통해, ZKP 스마트 계약(145)을 호출하도록 구성될 수 있다. 상인 시스템(120)은 하나 이상의 상인(125)의 벽돌 및 모르타르 상점들, 온라인 상점들 등과 연관될 수 있다. 상인 시스템(120)은 하드웨어, 소프트웨어, 및/또는 데이터베이스 구성요소들의 임의의 적합한 조합을 포함할 수 있다. 예를 들어, 상인 시스템(120)은 하나 이상의 네트워크 환경들, 서버들, 컴퓨터-기반 시스템들, 프로세서들, 데이터베이스들, 데이터센터들, 및/또는 유사한 것을 포함할 수 있다. 상인 시스템(120)은 고객(115)이, 고객 디바이스(110)를 통해, 상인 시스템(120)에 액세스하게 할 수 있도록 구성되는, 그래픽 사용자 인터페이스("GUI"), 소프트웨어 모듈들, 논리 엔진들, 다양한 데이터베이스들, 및/또는 유사한 것을 포함할 수 있다. 다양한 실시예들에서, 상인 시스템(120)은 컴퓨터 기반일 수 있고, 다른 적합한 시스템 소프트웨어 및 하드웨어 구성요소들과 함께, 프로세서, 유형의 비-일시적 컴퓨터-판독가능 메모리, 및/또는 네트워크 인터페이스를 포함할 수 있다. 유형의 비-일시적 메모리 상에 저장되는 명령들은 본원에 설명되는 바와 같이, 상인 시스템(120)이 다양한 동작들을 수행하는 것을 허용한다.
다양한 실시예들에서, 상인 시스템(120)은 또한 거래를 수행하기 위한 메커니즘으로서 구성되는 매장(point of sale) 단말기를 포함할 수 있다. 예를 들어, 매장은 출납원 스테이션, 신용 및/또는 직불 카드 판독기, EMV 카드 판독기, 및/또는 유사한 것을 포함할 수 있다. 매장은 근거리 통신(NFC) 단말기, 또는 데이터의 무선 전송(예를 들어, BLUETOOTH®, Wi-Fi 등)을 가능하게 하는 임의의 다른 적합한 단말기를 포함할 수 있다. NFC 단말기는 사용자 디바이스, 예컨대, 예를 들어, 고객 디바이스(110)를 가능하게 하는 NFC로부터 정보의 전송을 허용한다.
다양한 실시예들에서, 발행자 시스템(130)은 고객 디바이스(110), 상인 시스템(120), 및/또는 블록 체인 네트워크(140)와 전자 통신할 수 있다. 발행자 시스템(130)은 하드웨어, 소프트웨어, 및/또는 데이터베이스 구성요소들의 임의의 적합한 조합을 포함할 수 있다. 예를 들어, 발행자 시스템(130)은 하나 이상의 네트워크 환경들, 서버들, 컴퓨터-기반 시스템들, 프로세서들, 데이터베이스들, 및/또는 유사한 것을 포함할 수 있다. 발행자 시스템(130)은 컴퓨터 또는 프로세서, 또는 한 세트의 컴퓨터들/프로세서들의 형태로 적어도 하나의 컴퓨팅 디바이스를 포함할 수 있지만, 다른 유형들의 컴퓨팅 유닛들 또는 시스템들은 예를 들어, 서버, 웹 서버, 풀링된 서버들 등등과 같이 사용될 수 있다. 발행자 시스템(130)은 또한 하나 이상의 데이터 센터들, 클라우드 스토리지들 등등을 포함할 수 있고, 본원에 논의되는 다양한 동작들을 수행하도록 구성되는, API들과 같은, 소프트웨어를 포함할 수 있다. 발행자 시스템(130)은 또한 발행자 시스템(130)이 블록 체인 네트워크(140)와 상호작용하고, 데이터를 검색하고 이를 블록 체인에 기록하고, 하나 이상의 ZKP 스마트 계약들(145)을 전개하는 것을 허용하도록 구성되는 하나 이상의 블록 체인 노드들, 애플리케이션 프로그래밍 인터페이스들(APIs), 소프트웨어 개발 키트들(software development kits; SDKs) 등등을 포함할 수 있다. 다양한 실시예들에서, 발행자 시스템(130)은 하나 이상의 프로세서들 및/또는 하나 이상의 유형의, 비-일시적 메모리들을 포함할 수 있고 로직을 구현할 수 있다. 프로세서는 본원에서 더 논의되는 바와 같이, 명령들, 예를 들어, 비-일시적, 유형의, 컴퓨터-판독가능 매체 상에 저장되는 명령들의 실행에 응답하여 다양한 논리 연산들을 구현하도록 구성될 수 있다.
다양한 실시예들에서, 발행자 시스템(130)은 구매들 및 결제들을 용이하게 하고, 거래들을 인가하고, 거래들을 결제하는 것 등을 위해 전통적인 결제 네트워크 또는 거래 네트워크를 포함하거나 이와 상호작용한다. 예를 들어, 발행자 시스템(130)은 신용 카드들, 직불 카드들, 및/또는 다른 유형들의 거래 계좌들 또는 거래 도구들에 대한 거래들을 현재 수용하는 기존 독점 네트워크들을 나타낼 수 있다. 발행자 시스템(130)은 도청자들(eavesdroppers)로부터 안전한 폐쇄형 네트워크일 수 있다. 다양한 실시예들에서, 발행자 시스템(130)은 예시적 거래 네트워크 예컨대 AMERICAN EXPRESS®, VISANET®, MASTERCARD®, DISCOVER®, INTERAC®, Cartes Bancaires, JCB®, 사설 네트워크(예를 들어, 백화점 상점 네트워크들), 및/또는 임의의 다른 결제 네트워크, 거래 네트워크, 발행자 시스템 등등을 포함할 수 있다. 발행자 시스템(130)은 금융 및/또는 거래 시스템들 및 프로세스들, 예컨대, 예를 들어, 하나 이상의 인가 엔진들, 인증 엔진들 및 데이터베이스들, 결제 엔진들 및 데이터베이스들, 계좌 수신가능 시스템들 및 데이터베이스들, 계좌 결제가능 시스템들 및 데이터베이스들, 및/또는 유사한 것과 관련되는 시스템들 및 데이터베이스들을 포함할 수 있다. 다양한 실시예들에서, 발행자 시스템(130)은 또한 본원에서 더 논의되는 바와 같이, 거래들을 인가할 수 있는 거래 계좌 발행자의 신용 인가 시스템(Credit Authorization System)("CAS")을 포함할 수 있다. 발행자 시스템(130)은 거래들을 인가 및 결제하고, 거래 계좌 번호 데이터베이스들, 계좌 수신가능 데이터베이스들, 계좌 결제가능 데이터베이스들 등등을 유지하도록 구성될 수 있다.
본 개시는 발행자 시스템(130)을 참조하지만, 본 개시의 원리들은 임의의 적합한 수의 발행자 시스템들을 갖는 영지식 증명 결제 시스템에 적용될 수 있다는 점이 이해되어야 한다. 예를 들어, 시스템(100)은 상이한 발행자 시스템 또는 네트워크에 각각 대응하거나 이와 연관되는 하나 이상의 발행자 시스템들(130)을 포함할 수 있다. 다양한 실시예들에서, 각각의 발행자 시스템은 또한 연관된 블록 체인 네트워크를 포함하거나 이와 상호작용할 수 있다.
본원에 사용되는 바와 같이, "전송하다"는 하나의 시스템(100) 구성요소로부터 다른 것으로 전자 데이터의 적어도 일 부분을 전송하는 것을 포함한다. 추가적으로, 본원에 사용되는 바와 같이, "데이터," "정보" 등등은 디지털 또는 임의의 다른 형태에서 커맨드들, 질의들, 파일들, 메시지들, 저장 용 데이터 등과 같은 정보를 망라하는 것을 포함할 수 있다.
본원에 사용되는 바와 같이, "전자 통신"은 시스템(100) 구성요소들이 데이터를 송신 및 수신하게 할 수 있는 물리적 커플링 및/또는 비-물리적 커플링을 포함할 수 있다. 예를 들어, "전자 통신"은 유선 또는 무선 프로토콜 예컨대 CAN 버스 프로토콜, 이더넷(Ethernet) 물리 계층 프로토콜(예를 들어, 10BASE-T, 100BASE-T, 1000BASE-T 등을 사용하는 것들), IEEE 1394 인터페이스(예를 들어, FireWire), 디지털 네트워크 용 통합 서비스들(ISDN), 디지털 가입자 회선(DSL), 802.11a/b/g/n/ac 신호(예를 들어, Wi-Fi), 단파장 UHF 라디오 파들을 사용하고 IEEE 802.15.1에 의해 적어도 부분적으로 정의되는 무선 통신 프로토콜(예를 들어, Bluetooth Special Interest Group에 의해 유지되는 BLUETOOTH® 프로토콜), IEEE 802.15.4에 의해 적어도 부분적으로 정의되는 무선 통신 프로토콜(예를 들어, ZigBee 얼라이언스에 의해 유지되는 ZigBee® 프로토콜), 셀룰러 프로토콜, 적외선 프로토콜, 광학 프로토콜, 또는 유선 또는 무선 연결을 통해 정보를 전송할 수 있는 임의의 다른 프로토콜을 언급할 수 있다.
시스템(100) 구성요소들 중 하나 이상은 네트워크를 통해 전자 통신할 수 있다. 본원에 사용되는 바와 같이, 용어 "네트워크"는 하드웨어 및/또는 소프트웨어 구성요소들을 통합하는 임의의 클라우드, 클라우드 컴퓨팅 시스템, 또는 전자 통신 시스템 또는 방법을 더 포함할 수 있다. 노드들 사이의 통신은 임의의 적합한 통신 채널들, 예컨대, 예를 들어, 전화 네트워크, 익스트라넷, 인트라넷, 인터넷, 상호작용 포인트 디바이스(개인 정보 단말기, 셀룰라 폰, 키오스크, 태블릿 등), 온라인 통신들, 위성 통신들, 오프-라인 통신들, 무선 통신들, 트랜스폰더 통신들, 근거리 통신망(LAN), 광역 통신망(WAN), 가상 사설 네트워크(VPN), 네트워크된 또는 링크된 디바이스들, 키보드, 마우스 및/또는 임의의 적합한 통신 또는 데이터 입력 모달리티(modality)를 통해 달성될 수 있다. 더욱이, 시스템은 종종 TCP/IP 통신 프로토콜들로 구현되는 것으로서 본원에 설명되지만, 시스템은 또한 인터넷워크 패킷 교환(Internetwork Packet Exchange; IPX), APPLETALK®프로그램, IP-6, NetBIOS, OSI, 임의의 터널링 프로토콜(예를 들어, IPsec, SSH 등), 또는 임의의 수의 기존 또는 미래 프로토콜들을 사용하여 구현될 수 있다. 네트워크가 공공 네트워크, 예컨대 인터넷의 성질이 있으면, 그것은 네트워크가 도청자들에게 안전하지 않고 개방적이라고 가정하는 것이 유리하다. 인터넷과 함께 이용되는 프로토콜들, 표준들, 및 애플리케이션 소프트웨어와 관련된 특정 정보는 일반적으로 당업자에게 공지되어 있고, 따라서, 본원에서 상세화될 필요가 없다.
"클라우드" 또는 "클라우드 컴퓨팅"은 최소 관리 노력 및 서비스 제공자 상호작용으로 신속하게 프로비저닝되고 릴리스될 수 있는 구성가능한 컴퓨팅 자원들(예를 들어, 네트워크들, 서버들, 스토리지, 애플리케이션들, 및 서비스들)의 공유 풀에 대한 편리한, 온-디맨드(on-demand) 네트워크 액세스를 가능하게 하기 위한 모델을 포함한다. 클라우드 컴퓨팅은 위치-독립형 컴퓨팅을 포함할 수 있으며, 그것에 의해 공유 서버들은 자원들, 소프트웨어, 및 데이터를 온-디맨드로 컴퓨터들 및 다른 디바이스들에 제공한다. 클라우드 컴퓨팅에 관한 더 많은 정보에 대해, 클라우드 컴퓨팅의 NIST(National Institute of Standards and Technology) 정의를 참조한다.
다양한 시스템 구성요소들은 예를 들어, 표준 모뎀 통신, 케이블 모뎀, Dish Networks®, ISDN, DSL, 또는 다양한 무선 통신 방법들과 연결하여 전형적으로 사용되는 바와 같은 로컬 루프를 통한 인터넷 서비스 제공자(ISP)에 대한 연결을 포함하는 데이터 링크들을 경유하여 네트워크에 독립적으로, 개별적으로 또는 연결적으로 적절하게 결합될 수 있다. 네트워크는 다른 유형들의 네트워크들, 예컨대 대화형 텔레비전(interactive television; ITV) 네트워크로서 구현될 수 있다는 점이 주목된다. 더욱이, 시스템은 본원에 설명되는 유사한 기능을 갖는 임의의 네트워크를 통해 임의의 상품들, 서비스들 또는 정보의 사용, 판매 또는 분배를 고려한다.
네트워크는 불안전할 수 있다. 따라서, 네트워크를 통한 통신은 데이터 암호화를 이용할 수 있다. 암호화는 현재 기술 분야에서 이용가능하거나 이용가능하게 될 수 있는 기술들―예를 들어, Twofish, RSA, El Gamal, Schorr signature, DSA, PGP, PKI, GPG (GnuPG), HPE Format-Preserving Encryption(FPE), Voltage, Triple DES, Blowfish, AES, MD5, HMAC, IDEA, RC6, 및 대칭 및 비대칭 암호시스템들 중 임의의 것에 의해 수행될 수 있다. 네트워크 통신들은 또한 SHA 시리즈 암호 방법들, 타원-곡선 암호(예를 들어, ECC, ECDH, ECDSA 등), 및/또는 개발 중인 다른 포스트-양자 암호 알고리즘들을 통합할 수 있다.
간결성을 위해, 시스템(100)의 종래의 데이터 네트워킹, 애플리케이션 개발, 및 다른 기능적 양태들은 본원에서 상세히 설명되지 않을 수 있다. 더욱이, 본원에 포함되는 다양한 도면들에 도시되는 연결 라인들은 다양한 요소들 사이의 예시적 기능 관계들 및/또는 전자 통신들을 나타내도록 의도된다. 많은 대안적인 또는 추가적인 기능 관계들 또는 전자 통신들이 실제 시스템에 존재할 수 있다는 점이 주목되어야 한다.
이제 도 2 내지 도 5를 참조하면, 프로세스 흐름들 및 도시된 스크린샷들은 단지 실시예들이고 본 개시의 범위를 제한하도록 의도되지 않는다. 예를 들어, 방법 또는 프로세스 설명들 중 임의의 것에 인용되는 단계들은 임의의 순서로 실행될 수 있지만 제시된 순서에 제한되지 않는다. 다음 설명은 도 2 내지 도 5에 도시되는 단계들 및 사용자 인터페이스 요소들 뿐만 아니라, 도 1을 참조하여 위에 설명된 바와 같은 다양한 시스템 구성요소들을 적절하게 참조하였다는 것이 인식될 것이다. 예시적 실시예들이 도면들에 예시되고 아래에 설명되지만, 본 개시의 원리들은 현재 공지되어 있든 아니든, 임의의 수의 기술들을 사용하여 구현될 수 있다는 점이 처음에 이해되어야 한다. 본 개시는 도면들에 예시되고 아래에 설명되는 예시적 구현들 및 기술들에 제한되지 않아야 한다. 달리 구체적으로 언급되지 않는 한, 도면들에 도시되는 물품들은 반드시 축척에 따라 도시되는 것은 아니다.
도 2를 특히 참조하면, 영지식 증명 알고리즘을 초기화하기 위한 프로세스(201)가 다양한 실시예들에 따라 개시된다. 발행자 시스템(130)은 고객들 및 상인들이 영지식 증명 결제들에 참여하는 것을 허용하기 위해 영지식 증명 알고리즘(zero-knowledge proof algorithm)을 초기화할 수 있다.
발행자 시스템(130)은 영지식 증명 알고리즘을 검색한다(단계 202). 영지식 증명 알고리즘은 각각의 고객이 거래들 동안 임의의 개인 정보를 제공할 필요없이 고객들이 그들의 개인 정보(예를 들어, 거래 계좌 데이터, 고객 데이터 등)를 소유한다는 것을 상인들이 확인하게 할 수 있는 임의의 적합한 알고리즘을 포함할 수 있다. 예를 들어, 영지식 증명 알고리즘은 zk-SNARK들, 또는 임의의 다른 유사한 영지식 증명 알고리즘일 수 있다. 영지식 증명 알고리즘은 하나 이상의 함수들, 프로그램들, 또는 알고리즘들 예컨대, 예를 들어, 키 생성기 기능, 증명 기능, 및 검증 기능을 포함할 수 있다. 키 생성 기능은 본원에서 더 논의되는 바와 같이, 증명 키(pk) 및 검증 키(vk)를 생성하도록 구성될 수 있다. 증명 기능은 본원에서 더 논의되는 바와 같이, 증명(예를 들어, 증명 블롭(proof blob))을 생성하도록 구성될 수 있다. 검증 기능은 본원에서 더 논의되는 바와 같이, 영지식 증명 결제 프로세스 동안 고객을 인가하는 그러한 증명을 검증하도록 구성될 수 있다. 다양한 기능들은 JAVASCRIPT®, 또는 임의의 다른 적합한 프로그래밍 언어를 사용하여 프로그래밍될 수 있다.
발행자 시스템(130)은 영지식 증명 알고리즘으로부터 키 생성기 기능을 사용하여 증명 키(proving key; pk) 및 검증 키(verification key; vk)를 생성한다(단계 204). 예를 들어, 발행자 시스템(130)은 난수(예를 들어, 비밀 파라미터 람다)를 생성하고 난수를 키 생성기 기능으로 입력하여 증명 키(pk) 및 검증 키(vk)를 생성할 수 있다. 다양한 실시예들에서, 키들을 성공적으로 생성하는 것에 응답하여, 발행자 시스템(130)은 생성된 키들의 보안을 증가시키기 위해 난수를 삭제할 수 있다. 다양한 실시예들에서, 발행자 시스템(130)은 상이한 결제 유형들(예를 들어, 신용 카드, 직불 카드, 기프트 카드, 충성 포인트들, 제3자 결제 제공자 등)에 기초하여 상이한 키들을 생성할 수 있다. 발행자 시스템(130)은 증명 키(pk) 및 검증 키(vk)를 발행한다(단계 206). 다양한 실시예들에서, 발행자 시스템(130)은 공개적으로-액세스가능한 웹 서버, 웹사이트 등등 상에서 키들을 이용가능하게 함으로써 키들을 발행할 수 있다. 다양한 실시예들에서, 발행자 시스템(130)은 키들을 영지식 증명 결제들에 대해 등록된 상인들 및 사용자들에게 전송함으로써(예를 들어, 검증 키(vk)를 상인 시스템(120)에 전송하고 증명 키(pk)를 고객 디바이스(110)에 전송함으로써) 키들을 발행할 수 있다. 다양한 실시예들에서, 발행자 시스템(130)은 영지식 증명 결제 프로세스 동안 키들의 보안을 증가시키기 위해 임의의 원하는 간격(예를 들어, 주, 월 등)에서 새로운 키들을 생성할 수 있다.
발행자 시스템(130)은 영지식 증명(ZKP) 스마트 계약(145)을 블록 체인 네트워크(140)에 전개한다(단계 208). ZKP 스마트 계약(145)은 영지식 증명 알고리즘으로부터 검증 기능을 포함하기 위해 발행자 시스템(130)에 의해 생성될 수 있다. 발행자 시스템(130)은 (블록 체인 노드, API 등등을 통해) 블록 체인 기록(write)을 블록 체인 네트워크(140) 내의 적어도 제2 블록 체인 노드에 전파시킴으로써 ZKP 스마트 계약(145)을 블록 체인 네트워크(140)에 전개시킬 수 있다. 블록 체인 노드들은 임의의 적합한 기술 및 합의 알고리즘을 사용하여 기록에 동의할 수 있다.
도 3을 특히 참조하면, 영지식 증명 결제들을 위한 상인 등록의 프로세스(301)가 다양한 실시예들에 따라 개시된다. 상인 시스템(120)은 웹 브라우저, 모바일 애플리케이션 등등을 통해 발행자 시스템(130)에 액세스한다(단계 302). 발행자 시스템(130)에 대한 액세스는 임의의 적합한 액세스 제어, 예컨대, 예를 들어, 상인 크리덴셜들(예를 들어, 사용자명 또는 상인 식별자, 패스워드, 생체인식 입력 등)을 사용하여 제어될 수 있다. 다양한 실시예들에서, 상인 시스템(120)은 또한 초기 상인 등록의 일부로서 발행자 시스템(130)에 액세스할 수 있고, 향후 액세스를 위해 상인 크리덴셜들을 수신할 수 있다. 상인 시스템(120)은 발행자 시스템(130)으로 영지식 증명 결제들을 위한 등록을 요청할 수 있다(단계 304). 발행자 시스템(130)은 상인(125) 신원(identity)을 검증한다(단계 306). 예를 들어, 상인 시스템(120)은 상인 식별 정보 예컨대 상인 ID, 상인 어드레스, 상인 이름 등등을 제공하도록 프롬프트될 수 있다. 발행자 시스템(130)은 저장된 상인 데이터에 대해 제공된 상인 식별 정보를 비교함으로써 상인(125) 신원을 검증할 수 있다.
다양한 실시예들에서, 발행자 시스템(130)은 상인 해시(hash)를 생성한다(단계 308). 상인 해시는 상인(125)(및 상인 시스템(120))의 고유 식별자로서 기능하도록 생성될 수 있다. 발행자 시스템(130)은 하나 이상의 상인 데이터 요소들에 기초하여 상인 해시를 생성할 수 있다. 예를 들어, 상인 해시는 상인 사업명, 상인 소유자명, 상인 ID, 상인 넌스(nonce) 등등 중 하나 이상의 일방향(one-way) 암호화 해시를 포함할 수 있다. 상인 넌스는 하나 이상의 영숫자 문자들을 포함할 수 있고 상인(125)에 대해 고유하도록 무작위로 생성될 수 있다(예를 들어, 암호화 넌스는 다양한 임의의 영숫자 문자들, 예컨대 "c9La5"를 포함함). 발행자 시스템(130)은 임의의 적합한 해싱 알고리즘, 예컨대 SHA-2 일련의 암호화 방법들(예를 들어, SHA 256, SHA 512 등)로부터의 암호화 알고리즘 등등을 사용하여 상인 해시를 생성할 수 있다. 발행자 시스템(130)은 또한 브루트 포스 공격들(brute force attacks), 레인보우 테이블 공격들(rainbow table attacks) 등등으로부터 상인 해시의 보안을 증가시키기 위해 주요 스트레칭 기술 및 또는 임의의 다른 기술을 사용하여 상인 해시를 생성할 수 있다. 다양한 실시예들에서, 상인 해시는 또한 무작위로 생성된 스트링, 블록 체인 어드레스, 및/또는 임의의 다른 적합한 고유 식별자를 포함하도록 생성될 수 있다.
다양한 실시예들에서, 발행자 시스템(130)은 상인 해시를 ZKP 스마트 계약(145)에 패스함으로써 ZKP 스마트 계약(145)을 호출할 수 있다(단계 310). 호출되는 것에 응답하여, ZKP 스마트 계약(145)은 상인 해시를 블록 체인에 기록하고, 블록 체인 상에 상인 해시와 상인 계좌 잔액 엔트리를 연관시킨다. ZKP 스마트 계약(145)은 블록 체인 기록을 블록 체인 네트워크(140) 내의 적어도 제2 블록 체인 노드에 전파시킬 수 있다. 블록 체인 노드들은 임의의 적합한 기술 및 합의 알고리즘을 사용하여 기록에 동의할 수 있다. 블록 체인 기록을 완료하는 것에 응답하여, ZKP 스마트 계약(145)은 기록 통지를 발행자 시스템(130)에 반환할 수 있다.
발행자 시스템(130)은 상인 시스템(120)이 ZKP 스마트 계약(145)을 호출하는 것을 인가한다(단계 312). 예를 들어, 블록 체인이 허가된 블록 체인인 경우, 발행자 시스템(130)은 상인 시스템(120)을 허가된 블록 체인 네트워크에 추가할 수 있다. 다양한 실시예들에서, 발행자 시스템은 상인 시스템(120)이 ZKP 스마트 계약(145)을 호출하도록 인가된 것을 지정하기 위해 고유 식별자 및/또는 디지털 인증서를 블록 체인 구성에 추가할 수 있다. 그것과 관련하여, 상인 시스템에 의한 ZKP 스마트 계약(145)의 호출은 특정 상인 시스템의 서명(signature)을 포함할 수 있다. 발행자 시스템(130)은 상인 해시 및 상인 넌스를 상인 시스템(120)에 전송한다(단계 314). 상인 시스템(120)은 상인 해시 및 상인 넌스를 안전한 로컬 저장소에 저장할 수 있다. 상인 시스템(120)은 검증 키(vk)를 검색한다(단계 316). 다양한 실시예들에서, 상인 시스템(120)은 영지식 증명 결제 등록 프로세스 동안 발행자 시스템(130)으로부터 검증 키(vk)를 검색할 수 있다. 다양한 실시예들에서, 발행자 시스템(130)은 또한 상인 해시 및 상인 넌스와 함께 검증 키(vk)를 상인 시스템(120)에 전송할 수 있다.
도 4를 특히 참조하면, 영지식 증명 결제들을 위한 고객 등록의 프로세스(401)가 다양한 실시예들에 따라 개시된다. 고객 디바이스(110)는 웹 브라우저, 모바일 애플리케이션 등등을 통해 발행자 시스템(130)에 액세스한다(단계 402). 발행자 시스템(130)에 대한 액세스는 임의의 적합한 액세스 제어, 예컨대, 예를 들어, 고객 크리덴셜들(예를 들어, 사용자명, 패스워드, 생체인식 입력 등)을 사용하여 제어될 수 있다. 다양한 실시예들에서, 고객 디바이스(110)는 또한 초기 고객 등록(예를 들어, 웹사이트 상의 등록, 거래 계좌에 대한 신청 등)의 일부로서 발행자 시스템(130)에 액세스할 수 있고, 향후 액세스를 위해 고객 크리덴셜들을 수신할 수 있다. 고객 디바이스(110)는 발행자 시스템(130)으로 영지식 증명 결제들을 위해 등록을 요청한다(단계 404). 다양한 실시예들에서, 등록 요청은 고객(115)이 영지식 증명 결제들을 위해 사용하기를 원하는 계좌(예를 들어, 거래 계좌, 키프트 카드, 충성 포인트 계좌, 암호화폐 계좌 등)를 포함할 수 있다. 등록 요청은 또한 고객(115)이 영지식 증명 결제들을 위해 사용할 수 있기를 원하는 계좌의 계좌 잔액을 포함할 수 있다.
발행자 시스템(130)은 고객(115) 신원을 검증한다(단계 406). 예를 들어, 고객 디바이스(110)는 고객 식별 정보 예컨대 고객 이름, 고객 어드레스, 거래 계좌 번호, 거래 계좌 만료 데이터, 거래 계좌 카드 검증 값(CVV) 등등을 제공하도록 프롬프트될 수 있다. 발행자 시스템(130)은 저장된 고객 데이터에 대해 제공된 거래 식별 정보를 비교함으로써 고객(115) 신원을 검증할 수 있다.
다양한 실시예들에서, 발행자 시스템(130)은 고객 해시를 생성한다(단계 408). 고객 해시는 고객(115)(및/또는 고객 디바이스(110))의 고유 식별자로서 기능하도록 생성될 수 있다. 발행자 시스템(130)은 하나 이상의 고객 데이터 요소들에 기초하여 고객 해시를 생성할 수 있다. 예를 들어, 고객 해시는 고객 이름, 고객 어드레스, 거래 계좌 번호, 고객 넌스 등등 중 하나 이상의 일방향 암호화 해시를 포함할 수 있다. 고객 넌스는 하나 이상의 영숫자 문자들을 포함할 수 있고 고객(115)에 대해 고유하도록 무작위로 생성될 수 있다(예를 들어, 암호화 넌스는 다양한 임의의 영숫자 문자들, 예컨대 "a8Kn4"를 포함함). 발행자 시스템(130)은 임의의 적합한 해싱 알고리즘, 예컨대 SHA-2 일련의 암호화 방법들(예를 들어, SHA 256, SHA 512 등)로부터의 암호화 알고리즘 등등을 사용하여 고객 해시를 생성할 수 있다. 발행자 시스템(130)은 또한 브루트 포스 공격들, 레인보우 테이블 공격들 등등으로부터 고객 해시의 보안을 증가시키기 위해 키 스트레칭 기술 및 또는 임의의 다른 기술을 사용하여 고객 해시를 생성할 수 있다. 다양한 실시예들에서, 고객 해시는 또한 무작위로 생성된 스트링, 블록 체인 어드레스, 및/또는 임의의 다른 적합한 고유 식별자를 포함하도록 생성될 수 있다.
발행자 시스템(130)은 고객 해시를 ZKP 스마트 계약(145)에 패스함으로써 ZKP 스마트 계약(145)을 호출한다(단계 410). 다양한 실시예들에서, 발행자 시스템(130)은 또한 등록 요청에서 고객(115)에 의해 정의되는 계좌 잔액을 패스할 수 있다. 호출되는 것에 응답하여, ZKP 스마트 계약(145)은 고객 해시를 블록 체인에 기록하고, 블록 체인 상에서 고객 해시와 고객 계좌 잔액 엔트리를 연관시킨다. 고객 계좌 잔액은 등록 요청에서 고객(115)에 의해 정의되는 계좌 잔액에 의해 정의될 수 있다. ZKP 스마트 계약(145)은 블록 체인 기록을 블록 체인 네트워크(140) 내의 적어도 제2 블록체인 노드에 전파시킬 수 있다. 블록 체인 노드들은 임의의 적합한 기술 및 합의 알고리즘을 사용하여 기록에 동의할 수 있다. 블록 체인 기록을 완료하는 것에 응답하여, ZKP 스마트 계약(145)은 기록 통지를 발행자 시스템(130)에 반환할 수 있다.
발행자 시스템(130)은 고객 해시 및 고객 넌스를 고객 디바이스(110)에 전송한다(단계 412). 고객 디바이스(110)는 고객 해시 및 고객 넌스를 로컬적으로 안전한 디바이스 저장소에 저장할 수 있다. 고객 디바이스(110)는 발행자 시스템(130)에 의해 전개되는 위치로부터 증명 키(pk)를 검색한다(단계 414). 예를 들어, 그리고 다양한 실시예들에 따라, 증명 키(pk)는 상인(125)으로부터 상품들 또는 서비스들을 구매하는 고객에 의해 사용되는 모바일 애플리케이션, 웹사이트 등등으로 통합될 수 있다. 다양한 실시예들에서, 발행자 시스템(130)은 또한 증명 기능을 고객 디바이스(110)에 전송하고/하거나, 고객 디바이스(110) 내의 소프트웨어가 영지식 증명 결제 프로세스 동안 증명 기능을 실행하게 할 수 있다. 다양한 실시예들에서, 고객 디바이스(110)는 네이티브(native) 애플리케이션을 다운로드하고/하거나 설치하게 할 수 있거나, 영지식 증명 결제 프로세스 동안 증명 기능을 실행하도록 구성되는, 브라우저-기반 애플리케이션을 사용할 수 있다.
도 5를 특히 참조하면, 영지식 증명 결제를 위한 프로세스(501)가 다양한 실시예들에 따라 개시된다. 고객(115)은 상인(125)에 대해 쇼핑한다(단계 502). 예를 들어, 고객(115)은 상인(125)과 연관되는 벽돌 및 모르타르 상점을 방문하거나, 고객 디바이스(110)를 통해 온라인 상점을 방문하는 등등에 의해 상인(125)에 대해 쇼핑할 수 있다. 고객(115)이 하나 이상의 상품들 및/또는 서비스들을 구매하기를 원하는 것에 응답하여, 고객(115)은 상인(125)과 거래를 개시한다(단계 504). 예를 들어, 상인(125)(및/또는 상인 시스템(120))은 고객(115)(및/또는 고객 디바이스(110))에게 결제 방법을 선택하도록 프롬프트할 수 있다. 고객(115)은 거래를 개시하기 위해 영지식 증명 결제 방법을 선택할 수 있다.
다양한 실시예들에서, 고객 디바이스(110)는 구매 해시를 생성한다(단계 506). 구매 해시는 고객 이름, 고객 어드레스, 거래 계좌 번호, 고객 넌스 등등 중 하나 이상의 일방향 암호화 해시를 포함할 수 있다. 고객 디바이스(110)는 임의의 적합한 해싱 알고리즘, 예컨대 SHA-2 일련의 암호화 방법들(예를 들어, SHA 256, SHA 512 등)로부터의 암호화 알고리즘 등등을 사용하여 고객 해시를 생성할 수 있다. 고객 디바이스(110)는 또한 브루트 포스 공격들, 레인보우 테이블 공격들 등등으로부터 고객 해시의 보안을 증가시키기 위해 키 스트레칭 기술 및 또는 임의의 다른 기술을 사용하여 고객 해시를 생성할 수 있다.
고객 디바이스(110)는 영지식 증명 알고리즘으로부터 증명 기능을 사용하여 증명을 생성한다(단계 508). 증명은 BLOB(binary large object) 파일을 포함하도록 생성될 수 있다. 고객 디바이스(110)는 증명 키(pk), 고객 해시, 및 구매 해시를 증명 기능으로 입력하여 증명을 생성할 수 있다. 고객 디바이스(110)는 증명 및 고객 해시를 상인 시스템(120)에 전송한다(단계 510).
증명 및 고객 해시를 수신하는 것에 응답하여, 상인 시스템(120)은 증명, 고객 해시, 구매 금액, 검증 키(vk), 및 상인 해시를 패스함으로써 ZKP 스마트 계약(145)을 호출한다(단계 512). 호출되는 것에 응답하여, ZKP 스마트 계약(145)은 영지식 증명 알고리즘으로부터 검증 기능을 실행한다(단계 514). ZKP 스마트 계약(145)은 검증 키(vk), 고객 해시, 및 증명을 입력함으로써 검증 기능을 실행할 수 있다. 실행되는 것에 응답하여, 검증 기능은 검증이 패스하였는지를 나타내는 불값(Boolean value)을 반환할 수 있다. 예를 들어, 1의 불값(예를 들어, "참")은 검증이 패스된 것을 나타내고, 0의 불값(예를 들어, "거짓")은 검증이 실패했다는 것을 나타낸다. 다양한 실시예들에서, 상인 시스템(120)은 검증 기능을 실행하도록 구성될 수 있고, 검증 기능 결과를 ZKP 스마트 계약(145)에 전송할 수 있다. 검증이 실패한 것에 응답하여, ZKP 스마트 계약(145)은 검증 실패 통지를 상인 시스템(120)에 반환할 수 있다. 검증이 패스한 것에 응답하여, ZKP 스마트 계약(145)은 결제를 처리하도록 진행할 수 있다.
예를 들어, 그리고 다양한 실시예들에 따르면, ZKP 스마트 계약(145)은 고객(115)의 계좌 잔액을 결정한다(단계 516). 예를 들어, ZKP 스마트 계약(145)은 고객 해시와 연관되는 고객 계좌 잔액을 결정하기 위해 고객 해시에 기초하여 블록 체인에 질의할 수 있다. ZKP 스마트 계약(145)은 고객(115)이 영지식 증명 거래를 완료하기에 충분한 자금들을 가지고 있는지를 판단하기 위해 고객 계좌 잔액과 구매 금액을 비교할 수 있다. 고객(115)이 구매를 완료하기에 불충분한 자금들을 갖고 있다고 판단하는 것에 응답하여, ZKP 스마트 계약(145)은 불충분한 자금 통지를 상인 시스템(120)에 반환할 수 있다. 고객(115)이 구매를 완료하기에 충분한 자금들을 갖고 있다고 판단하는 것에 응답하여, ZKP 스마트 계약(145)은 구매 금액에 기초하여 고객(115)의 계좌 잔액을 조정한다(단계 518). 예를 들어, ZKP 스마트 계약(145)은 구매 금액과 동일한 양만큼 계좌 잔액을 감소시킴으로써 고객 계좌 잔액을 조정할 수 있다. ZKP 스마트 계약(145)은 구매 금액에 기초하여 상인(125)의 계좌 잔액을 조정한다(단계 520). ZKP 스마트 계약(145)은 상인 해시와 연관되는 상인 계좌 잔액을 찾아내기 위해 상인 해시에 기초하여 블록 체인에 질의할 수 있다. ZKP 스마트 계약(145)은 임의의 적용 거래 수수료들을 차감한, 구매 금액만큼 계좌 잔액을 증가시킴으로써 상인 계좌 잔액을 조정할 수 있다.
다양한 실시예들에서, ZKP 스마트 계약(145)은 고객(115) 및 상인(125)의 성공적으로 조정된 계좌 잔액에 응답하여 성공 통지를 블록 체인에 기록한다(단계 522). ZKP 스마트 계약(145)은 블록 체인 기록을 블록 체인 네트워크(140) 내의 적어도 제2 블록 체인 노드에 전파시킬 수 있다. 블록 체인 노드들은 임의의 적합한 기술 및 합의 알고리즘을 사용하여 기록에 동의할 수 있다. 블록 체인 기록을 완료하는 것에 응답하여, ZKP 스마트 계약(145)은 성공 통지를 상인 시스템(120)에 반환한다(단계 524). 성공 통지를 수신하는 것에 응답하여, 상인(125)은 고객(115)과 거래를 완료한다(단계 526). 예를 들어, 상인(125)은 상품들 및/또는 서비스들을 고객(115)에게 제공함으로써 거래를 완료할 수 있다.
다양한 실시예들에서, 완료된 영지식 증명 결제 프로세스에 기초한 상인(125)에 대한 결제는 (예를 들어, 배치 프로세스 등에서, 실시간, 거의 실시간으로) 프로세스 완료 후 임의의 적합한 시간에서 발행자 시스템(130)에 의해 완료될 수 있다. 예를 들어, 발행자 시스템(130)은 전형적인 결제 프로세스들에 따라, (예를 들어, 상인 해시에 기초하여 블록 체인을 질의함으로써) 상인 계좌 잔액을 결정할 수 있고, 상인 계좌 잔액과 동일한 자금들을 상인(125)에게 전송할 수 있다.
시스템들, 방법들 및 컴퓨터 프로그램 제품들이 제공된다. 본원의 상세 설명에서, "다양한 실시예들", "하나의 실시예", "일 실시예", "예시적 실시예" 등에 대한 참조들은 설명되는 실시예가 특정 특징, 구조, 또는 특성을 포함할 수 있지만, 모든 실시예가 반드시 특정 특징, 구조, 또는 특성을 포함할 수 있는 것은 아니라는 것을 나타낸다. 더욱이, 그러한 어구들(phrases)이 반드시 동일한 실시예를 언급하는 것은 아니다. 또한, 특정 특징, 구조, 또는 특성이 실시예와 연결하여 설명될 때, 명시적으로 설명되든 아니든 다른 실시예들과 관련하여 그러한 특징, 구조, 또는 특성에 영향을 미치는 것은 당업자의 지식 내에 있다고 진술된다. 설명을 판독한 후, 본 개시를 대안적인 실시예들로 구현하는 방법은 당업자에게 명백해질 것이다.
본원에 사용되는 바와 같이, "만족시키다", "충족시키다", "일치하다", "~와 연관된" 또는 유사한 어구들은 동일한 일치, 부분 일치, 특정 기준 충족, 데이터의 서브세트 일치, 상관, 특정 기준 만족, 대응, 연관, 알고리즘적 관계 및/또는 유사한 것을 포함할 수 있다. 유사하게, 본원에 사용되는 바와 같이, "인증하다" 또는 유사한 용어들은 정확한 인증, 부분 인증, 데이터의 서브세트 인증, 대응, 특정 기준 만족, 연관, 알고리즘적 관계 및/또는 유사한 것을 포함할 수 있다.
"연관시키다" 및/또는 "연관시키는"과 유사한 용어들 및 어구들은 요소들, 예컨대, 예를 들어, (i) 거래 계좌 및 (ii) 아이템(예를 들어, 제공, 보상 포인트들, 할인) 및/또는 디지털 채널 사이의 관계를 표시하거나 생성하기 위해 룩업 테이블 또는 임의의 다른 방법 또는 시스템을 사용하는, 태깅(tagging), 플래깅(flagging), 상관(correlating)을 포함할 수 있다. 더욱이, 연관(associating)은 임의의 적합한 액션, 이벤트, 또는 기간에 응답하여 임의의 포인트에서 발생할 수 있다. 연관은 미리-결정된 간격들, 주기적, 무작위로, 한 번, 한 번 이상에서, 또는 적합한 요청 또는 액션에 응답하여 발생할 수 있다. 정보 중 임의의 것은 소프트웨어 인에이블드 링크를 통해 분배되고/되거나 액세스될 수 있으며, 여기서 링크는 이메일, 텍스트, 포스트, 소셜 네트워크 입력, 및/또는 기술 분야에 공지된 임의의 다른 방법을 통해 전송될 수 있다.
"아이템"과 유사한 어구들 및 용어들은 임의의 상품, 서비스, 정보, 경험, 엔터테인먼트, 데이터, 제공, 할인, 리베이트, 포인트들, 가상 통화, 콘텐츠, 액세스, 렌탈, 리스, 기부(contribution), 계좌, 신용, 데빗(debit), 이익, 권리, 보상, 포인트들, 쿠폰들, 신용들, 금전적 등가물, 가치 있는 것, 최소 또는 가치 없는 것, 금전적 가치, 비-금전적 가치 및/또는 유사한 것을 포함할 수 있다. 더욱이, 본원에 논의되는 "거래들" 또는 "구매들"은 아이템과 연관될 수 있다. 더욱이, "보상은" 아이템일 수 있다.
어구들 "고객", "사용자", "거래 계좌 보유자", "거래 계좌 수익자", "거래 계좌 제휴자", "소비자", "고객", "카드멤버" 등등은 물리적 카드가 거래 계좌와 연관되는지 여부와 관계없이, 임의의 사람, 엔티티, 사업, 정부 조직, 사업, 소프트웨어, 하드웨어, 또는 거래 계좌와 연관되는 머신, 거래 계좌를 사용하여 하나 이상의 상인들에 의해 제공되는 상인 상품들을 사는 사람, 및/또는 거래 계좌 상에서 거래들을 수행하도록 법률적으로 지정된 사람을 포함할 것이다. 예를 들어, 사용자는 거래 계좌 소유자, 거래 계좌 사용자, 계좌 제휴자, 아동 계좌 사용자, 보조 계좌 사용자, 계좌의 수익자, 계좌의 관리인, 및/또는 거래 계좌와 제휴되거나 연관되는 임의의 다른 사람 또는 엔티티를 포함할 수 있다.
본원에 사용되는 바와 같은 "거래 계좌", "계좌 번호", "계좌 코드", 또는 "소비자 계좌"와 유사한 어구들 및 용어들은 임의의 디바이스, 코드(예를 들어, 인가/액세스 코드, 개인 식별 번호("PIN"), 인터넷 코드, 다른 식별 코드, 및/또는 유사한 것 중 하나 이상), 번호, 문자, 심볼, 디지털 인증서, 스마트 칩, 디지털 신호, 아날로그 신호, 생체인식, 또는 소비자가 시스템에 액세스하거나, 이와 상호작용하거나 통신하는 것을 허용하도록 적합하게 구성되는 다른 식별자/표시를 포함할 수 있다. 거래 계좌 번호는 선택적으로 보상 계좌, 요금 계좌, 신용 계좌, 직불 계좌, 선불 계좌, 전화 카드, 엠보싱 카드, 스마트 카드, 자기 스트립 카드, 바 코드 카드, 트랜스폰더, 라디오 주파수 카드, 또는 연관된 계좌 상에 위치되거나 이와 연관될 수 있다.
거래 계좌 번호는 데이터를 자체로부터 제2 디바이스로 전송 또는 다운로드할 수 있는 임의의 형태의 플라스틱, 전자, 자기, 라디오 주파수, 무선, 오디오, 및/또는 광 디바이스에 분배 및 저장될 수 있다. 거래 계좌 번호는 예를 들어, 16자리(sixteen-digit) 계좌 번호일 수 있지만, 각각의 거래 계좌 발행자는 그 자신의 넘버링 시스템, 예컨대 AMERICAN EXPRESS® 컴퍼니에 의해 사용되는 15자리 넘버링 시스템을 갖는다. 그러한 측면에서, 거래 계좌 발행자의 거래 계좌 번호들 각각은 거래 계좌 발행자의 표준화된 형식(format)을 준수할 수 있음으로써, 15자리 형식을 사용하는 거래 계좌 발행자는 일반적으로 번호 "0000 000000 00000"에 의해 표현되는 바와 같은, 3-공간 세트들의 번호들을 사용할 것이다. 처음 5 내지 7 숫자들은 처리 목적들을 위해 예약되고 거래 계좌 발행자, 계좌 유형 등을 식별할 수 있다. 이러한 예에서, 최종 (15번째) 숫자는 15 자리 숫자에 대한 합계 검사(sum check)로서 사용되고, 중간의 8 내지 15 숫자들은 사용자를 고유하게 식별하기 위해 사용된다. 상인 식별자는 예를 들어, 계좌 수락, 계좌 조정, 보고 등등의 목적들을 위해 특정 상인을 식별하는 임의의 번호 또는 영숫자 문자들일 수 있다.
"금융 기관", "발행자 시스템", 또는 "거래 계좌 발행자"와 유사한 어구들 및 용어들은 거래 계좌 서비스들을 제공하는 임의의 엔티티를 포함할 수 있다. "금융 기관"으로서 종종 언급되지만, 금융 기관은 임의의 유형의 은행, 대출기관(lender), 또는 다른 유형의 계좌 발행 기관, 예컨대 신용 카드 회사들, 카드 스폰서 회사들, 또는 금융 기관들과 계약 하의 제3자 발행자들을 나타낼 수 있다. 다른 참가자들, 예컨대 중개 결제 기관이 거래의 일부 단계들에서 수반될 수 있다는 점이 더 주목된다.
"상인", "사업", "판매자", 또는 "제공자"와 유사한 어구들 및 용어들은 서로 교환가능하게 사용될 수 있고 상품들 또는 서비스들의 유통 체인(distribution chain)에서 제공자, 브로커, 및/또는 임의의 다른 엔티티인 임의의 사람, 엔티티, 배급사 시스템, 소프트웨어, 및/또는 하드웨어를 의미할 것이다. 예를 들어, 상인은 식료품점, 소매점, 여행사, 서비스 제공자, 온-라인 상인 등등일 수 있다. 상인은 거래 계좌 발행자와 거래 계좌를 보유하는 사용자에게 판매되는 상품들 또는 서비스들에 대해 결제를 요청할 수 있다.
다양한 실시예들에서, 고객 디바이스(110)는 하나 이상의 스마트 디지털 보조 기술들과 통합될 수 있다. 예를 들어, 예시적 스마트 디지털 보조 기술들 AMAZON® 회사에 의해 개발되는 ALEXA® 시스템, Alphabet, Inc.에 의해 개발되는 GOOGLE HOME® 시스템, APPLE® 회사의 HOMEPOD® 시스템, 및/또는 유사한 디지털 보조 기술들을 포함할 수 있다. ALEXA® 시스템, GOOGLE HOME® 시스템, 및 HOMEPOD® 시스템은 태스크들, 엔터테인먼트, 일반 정보, 및 그 이상을 도울 수 있는 클라우드-기반 음성 활성화 서비스들을 각각 제공할 수 있다. 모든 ALEXA® 디바이스들, 예컨대AMAZON ECHO®, AMAZON ECHO DOT®, AMAZON TAP®, 및 AMAZON FIRE® TV는 ALEXA® 시스템에 대한 액세스를 갖는다. ALEXA® 시스템, GOOGLE HOME® 시스템, 및 HOMEPOD® 시스템은 그것의 음성 활성화 기술을 통해 음성 커맨드들을 수신하고/하거나, 다른 기능들을 활성화하고/하거나, 스마트 디바이스들을 제어하고/하거나, 정보를 수집할 수 있다. 예를 들어, 스마트 디지털 보조 기술들은 음악, 이메일들, 텍스트들, 전화 호출들, 질문 응답, 홈 개선 정보, 스마트 홈 통신/활성화, 게임들, 쇼핑, 해야할 리스트 만들기, 알람들 설정, 스트리밍 팝캐스트들, 오디오북들 재생, 및 날씨, 교통, 및 다른 실시간 정보, 예컨대 뉴스 제공과 상호작용하기 위해 사용될 수 있다. ALEXA®, GOOGLE HOME®, 및 HOMEPOD® 시스템들은 또한 사용자가 모든 디지털 보조-인에이블드 디바이스들에 걸쳐 온라인 계좌에 링크되는 적격 거래 계좌들에 대한 정보를 액세스하는 것을 허용할 수 있다.
본원에 논의되는 임의의 통신, 전송 및/또는 채널은 콘텐츠(예를 들어 데이터, 정보, 메타데이터 등), 및/또는 콘텐츠 자체를 전달하기 위한 임의의 시스템 또는 방법을 포함할 수 있다. 콘텐츠는 임의의 형태 또는 매체로 제시될 수 있고, 다양한 실시예들에서, 콘텐츠는 전자적으로 전달될 수 있고/있거나 전자적으로 제시될 수 있다. 예를 들어, 채널은 웹사이트 또는 디바이스(예를 들어, Facebook, YOUTUBE®, APPLE®TV®, PANDORA®, XBOX®, SONY® PLAYSTATION®), 균일 자원 로케이터(uniform resource locator)("URL"), 문서(예를 들어, MICROSOFT® Word® 문서, a MICROSOFT® Excel® 문서, an ADOBE®.pdf 문서 등), "이북", "이매거진", 애플리케이션 또는 마이크로애플리케이션(본원에 설명되는 바와 같음), SMS 또는 다른 유형의 텍스트 메시지, 이메일, FACEBOOK® 메시지, TWITTER® 트윗, MMS 및/또는 다른 유형의 통신 기술을 포함할 수 있다. 다양한 실시예들에서, 채널은 데이터 파트너에 의해 호스팅되거나 제공될 수 있다. 다양한 실시예들에서, 유통 채널(distribution channel)은 상인 웹사이트, 소셜 미디어 웹사이트, 제휴자 또는 파트너 웹사이트들, 외부 벤더, 모바일 디바이스 통신, 소셜 미디어 네트워크 및/또는 위치 기반 서비스 중 적어도 하나를 포함할 수 있다. 유통 채널들은 상인 웹사이트, 소셜 미디어 사이트, 제휴자 또는 파트너 웹사이트들, 외부 벤더, 및 모바일 디바이스 통신 중 적어도 하나를 포함할 수 있다. 소셜 미디어 사이트들의 예들은 FACEBOOK®, FOURSQUARE®, TWITTER®, MYSPACE®, LINKEDIN® 등을 포함한다. 제휴자 또는 파트너 웹사이트들의 예들은 AMERICAN EXPRESS®, GROUPON®, LIVINGSOCIAL® 등을 포함한다. 더욱이, 모바일 디바이스 통신들의 예들은 스마트폰들을 위한 텍스팅, 이메일, 및 모바일 애플리케이션들을 포함한다.
다양한 실시예들에서, 본원에 설명되는 방법들은 본원에 설명되는 다양한 특정 머신들을 사용하여 구현된다. 본원에 설명되는 방법들은 당업자에 의해 즉시 이해되는 바와 같은, 임의의 적합한 조합으로, 아래의 특정 머신들, 및 이하에 개발되는 것들을 사용하여 구현될 수 있다. 또한, 본 개시로부터 명백한 바와 같이, 본원에 설명되는 방법들은 특정 물품들의 다양한 변형들을 초래할 수 있다.
간략화를 위해, 시스템들의 종래의 데이터 네트워킹, 애플리케이션 개발 및 다른 기능적 양태들(및 시스템들의 개별 동작 구성요소들의 구성요소들)은 본원에서 상세히 설명되지 않을 수 있다. 더욱이, 본원에 포함되는 다양한 도면들에 도시되는 연결 라인들은 다양한 요소들 사이의 예시적 기능 관계들 및/또는 물리적 커플링들을 표현하도록 의도된다. 많은 대안적 또는 추가적 기능 관계들 또는 물리적 연결들이 실제 시스템에 존재할 수 있다는 점이 주목되어야 한다.
본원에 논의되는 다양한 시스템 구성요소들은 다음 중 하나 이상을 포함할 수 있다: 디지털 데이터를 처리하기 위한 프로세서를 포함하는 호스트 서버 또는 다른 컴퓨팅 시스템들; 디지털 데이터를 저장하기 위해 프로세서에 결합되는 메모리; 디지털 데이터를 입력하기 위해 프로세서에 커플링되는 입력 디지타이저; 프로세서에 의한 디지털 데이터의 처리를 지시하기 위해 메모리에 저장되고 프로세서에 의해 액세스가능한 응용 프로그램; 프로세서에 의해 처리되는 디지털 데이터로부터 유도되는 정보를 디스플레이하기 위해 프로세서 및 메모리에 커플링되는 디스플레이 디바이스; 및 복수의 데이터베이스들. 본원에 사용되는 다양한 데이터베이스들은: 시스템의 동작에 유용한 클라이언트 데이터; 상인 데이터; 금융 기관 데이터; 및/또는 유사한 데이터를 포함할 수 있다. 당업자가 인식하는 바와 같이, 사용자 컴퓨터는 전형적으로 컴퓨터들과 연관되는 다양한 종래의 지원 소프트웨어 및 드라이버들 뿐만 아니라 운영 체제(예를 들어, WINDOWS®, OS2, UNIX®, LINUX®, SOLARIS®, MacOS 등)를 포함할 수 있다.
본 시스템 또는 그 임의의 부분(들) 또는 기능(들)은 하드웨어, 소프트웨어 또는 그 조합을 사용하여 구현될 수 있고 하나 이상의 컴퓨터 시스템들 또는 다른 처리 시스템들에서 구현될 수 있다. 그러나, 실시예들에 의해 수행되는 조작들은 종종 통상적으로 인간 오퍼레이터에 의해 수행되는 정신 동작들과 연관되는, 일치(matching) 또는 선택(selecting)과 같은, 용어들에서 언급될 수 있다. 인간 오퍼레이터의 그러한 능력은 본원에 설명되는 임의의 것에서, 대부분의 경우들에서 필요하거나 바람직하지 않다. 오히려, 동작들은 머신 동작들일 수 있거나 동작들 중 임의의 것은 인공 지능(Artificial Intelligence)(AI) 또는 머신 학습에 의해 수행되거나 증강될 수 있다. 다양한 실시예들을 수행하기 위한 유용한 머신들은 범용 디지털 컴퓨터들 또는 유사한 디바이스들을 포함한다.
사실, 그리고 다양한 실시예들에 따르면, 실시예들은 본원에 설명되는 기능을 수행할 수 있는 하나 이상의 컴퓨터 시스템들에 관한 것이다. 컴퓨터 시스템은 하나 이상의 프로세서들, 예컨대 프로세서를 포함한다. 프로세서는 통신 기반구조(예를 들어, 통신 바들, 크로스 오버 바, 또는 네트워크)에 연결된다. 다양한 소프트웨어 실시예들은 이러한 예시적 컴퓨터 시스템의 관점에서 설명된다. 본 설명을 판독한 후, 다른 컴퓨터 시스템들 및/또는 아키텍처들을 사용하여 다양한 실시예들을 구현하기 위한 방법이 당업자에게 명백하게 될 것이다. 컴퓨터 시스템은 통신 기반구조로부터(또는 미도시된 프레임 버퍼로부터)의 그래픽, 텍스트, 및 다른 데이터를 디스플레이를 위해 디스플레이 유닛 상에 포워딩하는 디스플레이 인터페이스를 포함할 수 있다.
컴퓨터 시스템은 또한 메인 메모리, 예컨대 예를 들어 랜덤 액세스 메모리(RAM)를 포함하고, 또한 보조 메모리 또는 인-메모리 (non-spinning) 하드 드라이브들을 포함할 수 있다. 보조 메모리는 예를 들어, 플로피 디스크 드라이브, 자기 테이프 드라이브, 광 디스크 드라이브 등을 나타내는, 하드 디스크 드라이브 및/또는 제거가능 저장 디바이스를 포함할 수 있다. 제거가능 저장 디바이스는 잘-알려진 방식으로 제거가능 저장 유닛으로부터 판독하고/하거나 이에 기록한다. 제거가능 저장 유닛은 제거가능 저장 디바이스에 의해 판독되고 이에 의해 기록되는 플로피 디스크, 자기 테이프, 광 디스크 등을 나타낸다. 이해되는 바와 같이, 제거가능 저장 유닛은 컴퓨터 소프트웨어 및/또는 데이터를 저장하는 컴퓨터 사용가능 저장 매체를 포함한다.
다양한 실시예들에서, 보조 메모리는 컴퓨터 프로그램들 또는 다른 명령들이 컴퓨터 시스템으로 로딩되는 것을 허용하기 위한 다른 유사한 디바이스들을 포함할 수 있다. 그러한 디바이스들은 예를 들어, 제거가능 저장 유닛 및 인터페이스를 포함할 수 있다. 그러한 것의 예들은 프로그램 카트리지 및 카트리지 인터페이스(예컨대 비디오 게임 디바이스들에서 발견되는 것), 제거가능 메모리 칩(예컨대 EPROM(erasable programmable read only memory), 또는 PROM(programmable read only memory)) 및 연관된 소켓, 및 다른 제거가능 저장 유닛들 및 인터페이스들을 포함할 수 있으며, 이는 소프트웨어 및 데이터가 제거가능 저장 유닛으로부터 컴퓨터 시스템으로 전달되는 것을 허용한다.
컴퓨터 시스템은 또한 통신 인터페이스를 포함할 수 있다. 통신 인터페이스는 소프트웨어 및 데이터가 컴퓨터 시스템과 외부 디바이스들 사이에서 전달되는 것을 허용한다. 통신 인터페이스의 예들은 모뎀, 네트워크 인터페이스(예컨대 이더넷 카드), 통신 포트, 퍼스널 컴퓨터 메모리 카드 국제 협회(Personal Computer Memory Card International Association; PCMCIA) 슬롯 및 카드 등을 포함할 수 있다. 통신 인터페이스를 통해 전달되는 소프트웨어 및 데이터 파일들은 통신 인터페이스에 의해 수신될 수 있는 전자, 전자기, 광 또는 다른 신호들일 수 있는 신호들의 형태이다. 이들 신호들은 통신 경로(예를 들어, 채널)를 통해 통신 인터페이스에 제공된다. 이러한 채널은 신호들을 반송하고 와이어, 케이블, 광섬유, 전화선, 셀룰러 링크, 라디오 주파수(RF) 링크, 무선 및 다른 통신 채널들을 사용하여 구현될 수 있다.
용어들 "컴퓨터 프로그램 매체" 및 "컴퓨터 사용가능 매체" 및 "컴퓨터 판독가능 매체"는 일반적으로 제거가능 저장 디바이스 및 하드 디스크 드라이브에 설치되는 하드 디스크와 같은 매체를 언급하기 위해 사용된다. 이들 컴퓨터 프로그램 제품들은 소프트웨어를 컴퓨터 시스템에 제공한다.
컴퓨터 프로그램들(또한 컴퓨터 제어 로직으로 언급됨)은 메인 메모리 및/또는 보조 메모리에 저장된다. 컴퓨터 프로그램들은 또한 통신 인터페이스를 통해 수신될 수 있다. 그러한 컴퓨터 프로그램들은, 실행될 때, 컴퓨터 시스템이 본원에 논의되는 바와 같은 특징들을 수행하게 할 수 있다. 특히, 컴퓨터 프로그램들은, 실행될 때, 프로세서가 다양한 실시예들의 특징들을 수행하게 할 수 있다. 따라서, 그러한 컴퓨터 프로그램들은 컴퓨터 시스템의 컨트롤러들을 나타낸다.
다양한 실시예들에서, 소프트웨어는 제거가능 저장 디바이스, 하드 디스크 드라이브 또는 통신 인터페이스를 사용하여 컴퓨터 프로그램 제품에 저장되고 컴퓨터 시스템으로 로딩될 수 있다. 제어 로직(소프트웨어)은, 프로세서에 의해 실행될 때, 프로세서가 본원에 설명되는 바와 같은 다양한 실시예들의 기능을 수행하게 한다. 다양한 실시예들에서, 하드웨어는 예컨대 응용 주문형 집적 회로들(ASICs)을 구성하고 있다. 본원에 설명되는 기능들을 수행하기 위한 하드웨어 상태 머신의 구현은 당업자에게 명백할 것이다.
다양한 실시예들에서, 서버는 응용 서버들(예를 들어 WEBSPHERE®, WEBLOGIC®, JBOSS®, EDB® Postgres Plus Advanced Server®(PPAS) 등)을 포함할 수 있다. 다양한 실시예들에서, 서버는 웹 서버들(예를 들어 APACHE®, IIS, GWS, SUN JAVA® SYSTEM WEB SERVER, LINUX® 상에서 실행되는 JAVA® Virtual Machine 또는 WINDOWS®)을 포함할 수 있다.
웹 클라이언트는 임의의 네트워크, 예를 들어 예컨대 본원에 논의되는 것들을 통해 통신하는 임의의 디바이스(예를 들어, 퍼스널 컴퓨터)를 포함한다. 그러한 브라우저 애플리케이션들은 온라인 거래들 및/또는 통신들을 수행하기 위해 컴퓨팅 유닛 또는 시스템 내에 설치되는 인터넷 브라우징 소프트웨어를 포함한다. 이들 컴퓨팅 유닛들 또는 시스템들은 컴퓨터 또는 컴퓨터들의 세트의 형태를 취할 수 있지만, 다른 유형들의 컴퓨팅 유닛들 또는 시스템들이 사용될 수 있으며, 랩탑들, 노트북들, 태블릿들, 핸드헬드 컴퓨터들, 개인 정보 단말기들, 셋톱 박스들, 워크스테이션들, 컴퓨터-서버들, 메인 프레임 컴퓨터들, 미니-컴퓨터들, PC 서버들, 편재형 컴퓨터들, 컴퓨터들의 네트워크 세트들, 퍼스널 컴퓨터들, 예컨대 IPADS®, IMACS®, 및 MACBOOKS®, 키오스크들, 단말기들, 매장(POS) 디바이스들 및/또는 단말기들, 텔레비전들, 또는 네트워크를 통해 데이터를 수신할 수 있는 임의의 다른 디바이스를 포함한다. 웹-클라이언트는 MICROSOFT® INTERNET EXPLORER®, MOZILLA® FIREFOX®, GOOGLE® CHROME®, APPLE® Safari, 또는 인터넷을 브라우징하기 위해 이용가능한 임의의 다른 무수한 소프트웨어 패키지들을 실행할 수 있다.
당업자는 웹 클라이언트가 응용 서버와 직접 접촉할 수 있거나 접촉하지 않을 수 있다는 것을 인식할 것이다. 예를 들어, 웹 클라이언트는 다른 서버 및/또는 하드웨어 구성요소를 통해 응용 서버의 서비스들에 액세스 할 수 있으며, 이는 인터넷 서버에 대한 직접 또는 간접 연결을 가질 수 있다. 예를 들어, 웹 클라이언트는 로드 밸런서를 통해 응용 서버와 통신할 수 있다. 다양한 실시예들에서, 액세스는 상업적으로-이용가능한 웹-브라우저 소프트웨어 패키지를 통한 네트워크 또는 인터넷을 통해 이루어진다.
당업자가 인식하는 바와 같이, 웹 클라이언트는 전형적으로 컴퓨터들과 연관되는 다양한 종래의 지원 소프트웨어 및 드라이버들 뿐만 아니라 운영 체제(예를 들어, WINDOWS® OS, OS2, UNIX® OS, LINUX® OS, SOLARIS®, MacOS, 및/또는 유사한 것)를 포함한다. 웹 클라이언트는 임의의 적합한 퍼스널 컴퓨터, 네트워크 컴퓨터, 워크스테이션, 개인 정보 단말기, 셀룰라 폰, 스마트폰, 미니컴퓨터, 메인프레임 등등을 포함할 수 있다. 웹 클라이언트는 네트워크에 대한 액세스를 갖는 홈 또는 사업 환경에 있을 수 있다. 다양한 실시예들에서, 액세스는 상업적으로 이용가능한 웹-브라우저 소프트웨어 패키지를 통한 네트워크 또는 인터넷을 통해 이루어진다. 웹 클라이언트는 보안 프로토콜들 예컨대 안전 소켓 계층(Secure Sockets Layer; SSL) 및 전송 계층 보안(Transport Layer Security; TLS)을 구현할 수 있다. 웹 클라이언트는 http, https, ftp, 및 sftp를 포함하는 수개의 응용 계층 프로토콜들을 구현할 수 있다.
다양한 실시예들에서, 시스템(100)의 구성요소들, 모듈들, 및/또는 엔진들은 마이크로-애플리케이션들 또는 마이크로-앱들로서 구현될 수 있다. 마이크로-앱들은 전형적으로 예를 들어, WINDOWS® 모바일 운영 체제, ANDROID® 운영 체제, APPLE® IOS®, BLACKBERRY® 운영 체제 등을 포함하는 모바일 운영 체제의 맥락에서 전개된다. 마이크로-앱은 다양한 운영 체제들 및 하드웨어 자원들의 동작들을 관리하는 한 세트의 미리 결정된 규칙들을 통해 더 큰 운영 체제 및 연관된 하드웨어의 자원들을 이용하도록 구성될 수 있다. 예를 들어, 마이크로-앱이 모바일 디바이스 또는 모바일 운영 체제 이외의 디바이스 또는 네트워크와 통신하기를 원하는 경우, 마이크로-앱은 모바일 운영 체제의 미리결정된 규칙들 하에서 운영 체제 및 연관된 디바이스 하드웨어의 통신 프로토콜을 이용할 수 있다. 더욱이, 마이크로-앱이 사용자로부터 입력을 원하는 경우, 마이크로-앱은 다양한 하드웨어 구성요소들을 모니터링하고 그 다음 원하는 입력을 하드웨어로부터 마이크로-앱으로 통신하는 운영 체제로부터 응답을 요청하도록 구성될 수 있다.
본원에 사용되는 바와 같이 "식별자"는 아이템을 고유하게 식별하는 임의의 적합한 식별자일 수 있다. 예를 들어, 식별자는 전세계적 고유 식별자("GUID")일 수 있다. GUID는 범용 고유 식별자 표준 하에서 생성되고/되거나 구현되는 식별자일 수 있다. 더욱이, GUID는 32개의 십육진 숫자들로서 디스플레이될 수 있는 128-비트 값으로 저장될 수 있다. 식별자는 또한 주수(major number), 및 부수(minor number)를 포함할 수 있다. 주수 및 부수는 각각 16 비트 정수일 수 있다.
본원에 논의되는 임의의 데이터베이스들은 관계형, 계층형, 그래픽형, 블록 체인, 또는 객체-지향 구조 및/또는 임의의 다른 데이터베이스 구성들을 포함할 수 있다. 임의의 데이터베이스는 또한 플랫 파일 구조를 포함할 수 있으며 여기서 데이터는 인덱싱을 위한 구조 및 레코드들 사이의 구조적 관계들이 없는, 행열의 형태로 단일 파일에 저장될 수 있다. 예를 들어, 플랫 파일 구조는 구획된 텍스트 파일, CSV(comma-separated values) 파일, 및/또는 임의의 다른 적합한 플랫 파일 구조를 포함할 수 있다. 데이터베이스들을 구현하기 위해 사용될 수 있는 공통 데이터베이스 제품들은 IBM®(Armonk, NY)에 의한 DB2, ORACLE® Corporation(Redwood Shores, CA)로부터 이용가능한 다양한 데이터베이스 제품들, MICROSOFT® Corporation(Redmond, Washington)에 의한 MICROSOFT Access® 또는 MICROSOFT SQL Server®, MySQL AB(Uppsala, Sweden)에 의한 MySQL, MongoDB®, Redis®, Apache Cassandra®, APACHE®에 의한 HBase, MapR-DB, 또는 임의의 다른 적합한 데이터베이스 제품을 포함한다. 더욱이, 데이터베이스들은 예를 들어, 데이터 테이블들 또는 룩업 테이블들과 같은 임의의 적합한 방식으로 조직될 수 있다. 각각의 레코드는 단일 파일, 일련의 파일들, 링크된 일련의 데이터 파일들 또는 임의의 다른 데이터 구조일 수 있다.
특정 데이터의 연관은 기술 분야에 공지되고 실시되는 것들과 같은 임의의 원하는 데이터 연관 기술을 통해 달성될 수 있다. 예를 들어, 연관은 수동으로 또는 자동으로 달성될 수 있다. 자동 연관 기술들은 예를 들어, 데이터베이스 검색, 데이터베이스 병합, GREP, AGREP, SQL을 포함할 수 있으며, 테이블들 내의 키 필드를 사용하여 검색들을 가속화하고, 모든 테이블들 및 파일들을 통해 순차 검색하고, 공지된 순서에 따라 파일 내의 레코드들을 소팅하여 룩업, 및/또는 유사한 것을 단순화한다. 연관 단계는 데이터베이스 병합 기능에 의해, 예를 들어, 미리-선택된 데이터베이스들 또는 데이터 섹터들에서의 "키 필드"를 사용함으로써 달성될 수 있다. 다양한 데이터베이스 튜닝 단계들은 데이터베이스 성능을 최적화하기 위해 고려된다. 예를 들어, 자주 사용되는 파일들 예컨대 인덱스들은 In/Out("I/O") 병목현상들을 감소시키기 위해 별도의 파일 시스템들 상에 배치될 수 있다.
더 구체적으로, "키 필드"는 키 필드에 의해 정의되는 객체들의 하이-레벨 클래스에 따라 데이터베이스를 분할할 수 있다. 예를 들어, 특정 유형들의 데이터는 복수의 관련된 데이터 테이블들에서 키 필드로서 지정될 수 있고 데이터 테이블들은 그 다음 키 필드에서 데이터의 타입에 기초하여 링크될 수 있다. 링크된 데이터 테이블들 각각의 키 필드에 대응하는 데이터는 바람직하게는 동일하거나 동일한 유형이다. 그러나, 키 필드들에서 동일하지 않지만, 유사한 데이터를 갖는 데이터 테이블들은 또한 예를 들어, AGREP를 사용하여 링크될 수 있다. 일 실시예에 따르면, 임의의 적합한 데이터 저장 기술은 표준 형식 없이 데이터를 저장하기 위해 이용될 수 있다. 데이터 세트들은 임의의 적합한 기술을 사용하여 저장될 수 있으며, 예를 들어, ISO/IEC 7816-4 파일 구조를 사용하여 개별 파일들을 저장하는 것; 도메인을 구현하여 그것에 의해 하나 이상의 데이터 세트들을 포함하는 하나 이상의 기본 파일들을 노출시키는 전용 파일이 선택되는 것; 계층형 파일링 시스템을 사용하여 개별 파일들에 저장되는 데이터 세트들을 사용하는 것; (하나 이상의 키들, 숫자, 제1 튜플에 의한 알파벳 등을 통해 해시되는, 압축, 액세스 가능한 SQL을 포함하는) 단일 파일에 레코드들로서 저장되는 데이터 세트들; 이진 대형 객체(Binary Large Object; BLOB); ISO/IEC 7816-6 데이터 요소들을 사용하여 인코딩되는 비그룹화된 데이터 요소들로서 저장되는 것; ISO/IEC 8824 및 8825에서와 같은 ISO/IEC 추상 구문 기법(Abstract Syntax Notation)(ASN.1)을 사용하여 인코딩되는 비그룹화된 데이터 요소들로서 저장되는 것; 및/또는 프랙털 압축 방법들, 이미지 압축 방법들 등을 포함할 수 있는 다른 독점 기술들을 포함한다.
다양한 실시예들에서, 매우 다양한 정보를 상이한 형식들로 저장하는 능력은 블롭(BLOB)으로서 정보를 저장함으로써 용이하게 된다. 따라서, 임의의 이진 정보는 데이터 세트와 연관되는 저장 공간에 저장될 수 있다. 위에 논의된 바와 같이, 이진 정보는 시스템과 연관되거나 시스템 외부에 있지만 이와 제휴되어 저장될 수 있다. 블롭(BLOB) 방법은 메모리 관리(예를 들어, 적어도 최근에 사용된, 페이지드 메모리 등)에 대해 고정 저장 할당, 원형 큐 기술들, 또는 모범 사례들을 사용하여 고정 메모리 오프셋을 통해 이진의 블록으로서 포맷되는 비그룹화된 데이터 요소들로서 데이터 세트들을 저장할 수 있다. 블롭(BLOB) 방법들을 사용함으로써, 상이한 형식들을 갖는 다양한 데이터 세트들을 저장하는 능력은 데이터 세트들의 다수의 및 비관련된 소유자들에 의해, 데이터베이스 또는 시스템과 연관되는, 데이터의 저장을 용이하게 한다. 예를 들어, 저장될 수 있는 제1 데이터 세트는 제1 당사자에 의해 제공될 수 있고, 저장될 수 있는 제2 데이터 세트는 비관련된 제2 당사자에 의해 제공될 수 있고, 그렇지만 저장될 수 있는 제3 데이터 세트는 제1 및 제2 당사자와 비관련된 제3자에 의해 제공될 수 있다. 이들 3개의 예시적 데이터 세트들 각각은 상이한 데이터 저장 형식들 및/또는 기술들을 사용하여 저장되는 상이한 정보를 포함할 수 있다. 또한, 각각의 데이터 세트는 또한 다른 서브세트들과 구별될 수 있는 데이터의 서브세트들을 포함할 수 있다.
위에 언급된 바와 같이, 다양한 실시예들에서, 데이터는 공통 형식에 관계없이 저장될 수 있다. 그러나, 데이터 세트(예를 들어, 블롭(BLOB))는 데이터베이스 또는 시스템에서 데이터를 조작하기 위해 제공될 때 표준 방식으로 주석이 달릴 수 있다. 주석(annotation)은 다양한 데이터 세트들을 관리할 시에 유용한 정보를 전달하도록 구성되는 각각의 데이터 세트와 관련되는 쇼트 헤더, 트레일러, 또는 다른 적절한 인디케이터(indicator)를 포함할 수 있다. 예를 들어, 주석은 본원에서, "조건 헤더", "헤더", "트레일러", 또는 "상태"로서 칭하여질 수 있고, 데이터 세트의 상태의 표시를 포함할 수 있거나 데이터의 특정 발행자 또는 소유자와 상관되는 식별자를 포함할 수 있다. 일 예에서, 각각의 데이터 세트 블롭(BLOB)의 첫 번째 3 바이트들은 그러한 특정 데이터 세트의 상태를 나타내도록 구성될 수 있거나 구성가능할 수 있다: 예를 들어, LOADED, INITIALIZED, READY, BLOCKED, REMOVABLE, 또는 DELETED. 데이터의 후속 바이트들은 예를 들어, 발행자, 사용자, 거래/회원 계좌 식별자 등의 신원을 나타내기 위해 사용될 수 있다. 이들 조건 주석들 각각은 본원에서 더 논의된다.
데이터 세트 주석은 또한 다양한 다른 목적들 뿐만 아니라 다른 유형들의 상태 정보에 대해 사용될 수 있다. 예를 들어, 데이터 세트 주석은 액세스 레벨들을 설정하는 보안 정보를 포함할 수 있다. 액세스 레벨들은 예를 들어, 특정 개인들, 레벨들의 직원들, 회사들, 또는 다른 엔티티들만이 데이터 세트들에 액세스하는 것을 허용하거나, 거래, 상인, 발행자, 사용자 등등에 기초하여 특정 데이터 세트들에 액세스하는 것을 허용하도록 구성될 수 있다. 더욱이, 보안 정보는 데이터 세트들에 액세스하고/하거나, 이를 수정하고/하거나 이를 삭제하는 것과 같은 특정 액션들만을 제한/허락할 수 있다. 일 예에서, 데이터 세트 주석은 데이터 세트 소유자 또는 사용자만이 데이터 세트를 삭제하도록 허용되고, 다양한 식별된 사용자들이 판독을 위해 데이터 세트에 액세스하도록 허용될 수 있고, 다른 사용자들이 데이터 세트에 액세스하는 것으로부터 모두 배제된다는 것을 나타낸다. 그러나, 다른 액세스 제한 파라미터들은 또한 다양한 엔티티들이 다양한 허가 레벨들(permission levels)을 갖는 데이터 세트에 적절한 바와 같이 액세스하는 것을 허용하도록 사용될 수 있다.
헤더 또는 트레일러를 포함하는 데이터는 헤더 또는 트레일러에 따라 데이터를 추가, 삭제, 수정, 또는 증강하도록 구성되는 독립 상호작용 디바이스에 의해 수신될 수 있다. 그와 같이, 일 실시예에서, 헤더 또는 트레일러는 연관된 발행자-소유의 데이터와 함께 거래 디바이스 상에 저장되지 않지만 그 대신 적절한 액션은 사용자에게 독립 디바이스에서, 취해질 액션에 대한 적절한 옵션을 제공함으로써 취해질 수 있다. 시스템은 데이터 저장 배열을 고려할 수 있으며 여기서 데이터의 헤더 또는 트레일러, 또는 헤더 또는 트레일러 이력은 적절한 데이터와 관련하여 시스템, 디바이스, 또는 거래 도구 상에 저장된다.
당업자는 또한 보안상의 이유들로, 시스템의 임의의 데이터베이스들, 시스템들, 디바이스들, 서버들 또는 다른 구성요소들이 단일 위치에서 또는 다수의 위치들에서 그 임의의 조합으로 구성될 수 있으며, 여기서 각각의 데이터베이스 또는 시스템은 방화벽들, 액세스 코드들, 암호화, 복호화, 압축, 압축해제, 및/또는 유사한 것과 같은, 다양한 적합한 보안 특징들 중 임의의 것을 포함한다는 것을 인식할 것이다.
암호화는 현재 기술 분야에서 이용가능하거나 이용가능하게 될 수 있는 기술들―예를 들어, Twofish, RSA, El Gamal, Schorr signature, DSA, PGP, PKI, GPG (GnuPG), HPE FPE(Format-Preserving Encryption), Voltage, 및 대칭 및 비대칭 암호시스템들 중 임의의 것에 의해 수행될 수 있다. 시스템들 및 방법들은 ECC(Elliptic Curve Cryptography) 및 개발 중인 다른 양자 판독가능 암호 알고리즘들 뿐만 아니라 SHA 시리즈 암호화 방법들을 통합할 수 있다.
웹 클라이언트의 컴퓨팅 유닛은 기술 분야에 공지된 표준 다이얼-업, 케이블, DSL 또는 임의의 다른 인터넷 프로토콜을 사용하여 인터넷 또는 인트라넷에 연결되는 인터넷 브라우저를 더 장착할 수 있다. 웹 클라이언트에서 비롯되는 거래들은 다른 네트워크들의 사용자들로부터의 비인가 액세스를 방지하기 위해 방화벽을 통해 패스될 수 있다. 또한, 추가적인 방화벽들은 보안을 더 증강시키기 위해 CMS의 다양한 구성요소들 사이에 전개될 수 있다.
방화벽은 다른 네트워크들의 사용자들로부터 CMS 구성요소들 및/또는 엔터프라이즈 컴퓨팅 자원들을 보호하도록 적합하게 구성되는 임의의 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 또한, 방화벽은 웹 클라이언트들이 웹 서버를 통해 연결하도록 방화벽 뒤의 다양한 시스템들 및 구성요소들에 대한 액세스를 한정 또는 제한하도록 구성될 수 있다. 방화벽은 다른 것들 중에서 상태 검사(Stateful Inspection), 프록시 기반, 액세스 제어 리스트들, 및 패킷 필터링(Packet Filtering)을 포함하는 다양한 구성들에 상주할 수 있다. 방화벽은 웹 서버 또는 임의의 다른 CMS 구성요소들 내에 통합될 수 있거나 별개의 엔티티로서 더 상주할 수 있다. 방화벽은 네트워크 어드레스 변환("NAT") 및/또는 네트워크 어드레스 포트 변환("NAPT")을 구현할 수 있다. 방화벽은 보안 통신들, 예컨대 가상 사설 네트워킹에서 사용되는 것들을 용이하게 하기 위해 다양한 터널링 프로토콜들을 수용할 수 있다. 방화벽은 인터넷과 같은 공공 네트워크와의 통신을 용이하게 하기 위해 비무장 지대("DMZ")를 구현할 수 있다. 방화벽은 인터넷 서버, 임의의 다른 응용 서버 구성요소들 내에 소프트웨어로서 통합될 수 있거나 다른 컴퓨팅 디바이스 내에 상주할 수 있거나 독립 하드웨어 구성요소의 형태를 취할 수 있다.
본원에 논의되는 컴퓨터들은 사용자들에 의해 액세스가능한 적합한 웹사이트 또는 다른 인터넷-기반 그래픽 사용자 인터페이스를 제공할 수 있다. 일 실시예에서, MICROSOFT® INTERNET INFORMATION SERVICES®(IIS), MICROSOFT® Transaction Server(MTS), 및 MICROSOFT® SQL Server는 MICROSOFT® 운영 체제, MICROSOFT® NT 웹 서버 소프트웨어, MICROSOFT® SQL Server 데이터베이스 시스템, 및 MICROSOFT® Commerce Server와 함께 사용된다. 추가적으로, 구성요소들 예컨대 Access 또는 MICROSOFT® SQL Server, ORACLE®, Sybase, Informix MySQL, Interbase 등은 활성 데이터 객체(Active Data Object)(ADO) 준수 데이터베이스 관리 시스템을 제공하기 위해 사용될 수 있다. 일 실시예에서, Apache 웹 서버는 Linux 운영 체제, MySQL 데이터베이스, 및 Perl, PHP, Ruby, 및/또는 Python 프로그래밍 언어들과 함께 사용된다.
본원에 논의되는 통신들, 입력들, 스토리지, 데이터베이스들 또는 디스플레이들 중 임의의 것은 웹 페이지들을 갖는 웹사이트를 통해 용이하게 될 수 있다. 용어 "웹 페이지"는 그것이 본원에 사용되는 바와 같이 사용자와 상호작용하기 위해 사용될 수도 있는 문서들 및 애플리케이션들의 타입을 제한하는 것으로 의미되지 않는다. 예를 들어, 전형적인 웹사이트는, 표준 HTML 문서들에 더하여, 다양한 형태들, JAVA® 애플릿들, JAVASCRIPT®, 액티브 서버 페이지들(ASP), 공통 게이트웨이 인터페이스 스크립트들(CGI), 확장성 생성 언어(XML), 동적 HTML, 캐스케이팅 스타일 시트들(cascading style sheets; CSS), AJAX(Asynchronous JAVASCRIPT® And XML), 헬퍼 애플리케이션들, 플러그-인들 등을 포함할 수도 있다. 서버는 웹 서버로부터 요청을 수신하는 웹 서비스를 포함할 수 있으며, 요청은 URL 및 IP 어드레스(예를 들어, 10.0.0.2)를 포함한다. 웹 서버는 적절한 웹 페이지들 검색하고 웹 페이지들에 대한 데이터 또는 애플리케이션들을 IP 어드레스에 송신한다. 웹 서비스들은 통신 수단, 예컨대 인터넷을 통해 다른 애플리케이션들과 상호작용할 수 있는 애플리케이션들이다. 웹 서비스들은 전형적으로 XML, SOAP, AJAX, WSDL 및 UDDI와 같은 표준들 또는 프로토콜들에 기초한다. 웹 서비스들 방법들은 기술 분야에 잘 알려져 있고, 많은 표준 텍스트들에서 커버된다. 예를 들어, REST(representational state transfer), 또는 RESTful, 웹 서비스들은 애플리케이션들 사이의 상호운용성(interoperability)을 가능하게 하는 하나의 방법을 제공할 수 있다.
미들웨어는 다른 컴퓨팅 시스템들 사이의 통신 및/또는 프로세스 거래들을 용이하게 하도록 적합하게 구성되는 임의의 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 미들웨어 구성요소들은 상업적으로 이용가능하고 기술 분야에 알려져 있다. 미들웨어는 상업적으로 이용가능한 하드웨어 및/또는 소프트웨어를 통해, 맞춤형 하드웨어 및/또는 소프트웨어 구성요소들을 통해, 또는 이 조합을 통해 구현될 수 있다. 미들웨어는 다양한 구성들에 상주할 수 있고 독립 시스템으로서 존재할 수 있거나 인터넷 서버 상에 상주하는 소프트웨어 구성요소일 수 있다. 미들웨어는 본원에 개시되는 목적들 중 임의의 것을 위해 응용 서버 및 임의의 수의 내부 또는 외부 시스템들의 다양한 구성요소들 사이의 거래들을 처리하도록 구성될 수 있다. IBM®, Inc.(Armonk, NY)에 의한 WEBSPHERE® MQTM(이전에 MQSeries)은 상업적으로 이용가능한 미들웨어 제품의 일 예이다. 엔터프라이즈 서비스 버스(Enterprise Service Bus)("ESB") 애플리케이션은 미들웨어의 다른 예이다.
실행자들(Practitioners)은 또한 브라우저-기반 문서 내에 데이터를 디스플레이하기 위한 다수의 방법들이 있다는 것을 인식할 것이다. 데이터는 표준 텍스트로서 또는 고정 리스트, 스크롤가능 리스트, 드롭-다운 리스트, 편집가능 텍스트 필드, 고정 텍스트 필드, 팝-업 윈도우 등 내에 표현될 수 있다. 마찬가지로, 웹 페이지에서 데이터를 수정하기 위해 이용가능한 다수의 방법들 예컨대, 예를 들어, 키보드를 사용한 프리 텍스트 엔트리, 메뉴 아이템들의 선택, 체크 박스들, 옵션 박스들 등이 있다.
시스템 및 방법은 기능 블록 구성요소들, 스크린 샷들, 옵션 선택들 및 다양한 처리 단계들의 관점에서 본원에 설명될 수 있다. 그러한 기능 블록들은 특정된 기능들을 수행하도록 구성되는 임의의 수의 하드웨어 및/또는 소프트웨어 구성요소들에 의해 실현될 수 있다는 점이 인식되어야 한다. 예를 들어, 시스템은 다양한 집적 회로 구성요소들, 예를 들어, 메모리 요소들, 처리 요소들, 로직 요소들, 룩업 테이블들 등을 이용할 수 있으며, 이는 하나 이상의 마이크로프로세서들 또는 다른 제어 디바이스들의 제어 하에 다양한 기능들을 수행할 수 있다. 유사하게, 시스템의 소프트웨어 요소들은 다양한 알고리즘들이 데이터 구조들, 객체들, 프로세스들, 루틴들 또는 다른 프로그래밍 요소들의 임의의 조합으로 구현되는 임의의 프로그래밍 또는 스크립팅 언어들 예컨대 C, C++, C#, JAVA®, JAVASCRIPT, JAVASCRIPT Object Notation(JSON), VBScript, Macromedia Cold Fusion, COBOL, MICROSOFT® Active Server Pages, assembly, PERL, PHP, awk, Python, Visual Basic, SQL stored Procedures, PL/SQL, 임의의 UNIX shell script, 및 XML(extensible markup language)으로 구현될 수 있으며 다양한 알고리즘들이 데이터 구조들, 객체들, 프로세스들, 루틴들 또는 다른 프로그래밍 요소들의 임의의 조합으로 구현될 수 있다. 또한, 데이터 전송, 시그널링, 데이터 처리, 네트워크 제어 등을 위해 임의의 수의 종래의 기술들을 이용할 수 있다는 점이 주목되어야 한다. 또한 더, 시스템은 클라이언트-측 스크립팅 언어, 예컨대 JAVASCRIPT, VBScript 등등으로 보안 문제들을 검출하거나 방지하기 위해 사용될 수도 있다. 암호 및 네트워크 보안 방법들은 기술 분야에 잘 알려져 있고, 많은 표준 텍스트들에서 커버된다.
다양한 실시예들에서, 시스템의 소프트웨어 요소들은 또한 Node.js®을 사용하여 구현될 수 있다. Node.js®은 다양한 핵심 기능들을 처리하기 위해 수개의 모듈들을 구현할 수 있다. 예를 들어, 패키지 관리 모듈, 예컨대 npm®은 제3자 Node.js® 프로그램들의 설치 및 관리를 조직화하는 데 보조하기 위해 오픈 소스 라이브러리로서 구현될 수 있다. Node.js®은 또한 프로세스 관리자, 예컨대, 예를 들어, 병렬 다중 스레디드 머신(Parallel Multi threaded Machine)("PM2"); 자원 및 성능 모니터링 툴, 예컨대, 예를 들어, 노드 애플리케이션 메트릭스(Node Application Metrics)("appmetrics"); 사용자 인터페이스들을 구축하기 위한 라이브러리 모듈, 예컨대 예를 들어 ReachJS®; 및/또는 임의의 다른 적합한 및/또는 원하는 모듈을 구현할 수 있다.
당업자에 의해 이해되는 바와 같이, 시스템은 기존 시스템, 애드-온(add-on) 제품, 갱신 소프트웨어를 실행하는 처리 장치, 독립 시스템, 분산 시스템, 방법, 데이터 처리 시스템, 데이터 처리용 디바이스, 및/또는 컴퓨터 프로그램 제품의 맞춤화(customization)로서 구현될 수 있다. 따라서, 시스템 또는 모듈의 임의의 부분은 코드 실행 처리 장치, 인터넷 기반 실시예, 전적으로 하드웨어 실시예, 또는 인터넷, 소프트웨어 및 하드웨어의 양태들을 조합하는 실시예의 형태를 취할 수 있다. 더욱이, 시스템은 저장 매체에 구현되는 컴퓨터-판독가능 프로그램 코드 수단을 갖는 컴퓨터-판독가능 저장 매체 상에서 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 임의의 적합한 컴퓨터-판독가능 저장 매체가 이용될 수 있으며, 하드 디스크들, CD-ROM, BLU-RAY, 광학 저장 디바이스들, 자기 저장 디바이스들, 및/또는 유사한 것을 포함한다.
시스템 및 방법은 다양한 실시예들에 따른 스크린 샷들, 방법들의 블록 다이어그램들 및 흐름도 예시들, 장치(예를 들어, 시스템들), 및 컴퓨터 프로그램 제품들을 참조하여 본원에 설명된다. 블록 다이어그램들 및 흐름도 예시들의 각각의 기능 블록, 및 블록 다이어그램들 및 흐름도 예시들에서 기능 블록들의 조합들은 각각 컴퓨터 프로그램 명령들에 의해 구현될 수 있다는 것이 이해될 것이다.
이제 도 2 내지 도 5를 참조하면, 도시되는 프로세스 흐름들 및 스크린샷들은 단지 실시예들이고 본 개시의 범위를 제한하도록 의도되지 않는다. 예를 들어, 방법 또는 프로세스 설명들 중 임의의 것에서 인용되는 단계들은 임의의 순서로 실행될 수 있고 제시되는 순서에 제한되지 않는다.
이들 컴퓨터 프로그램 명령들은 머신을 생산하기 위해 일반 목적 컴퓨터, 특수 목적 컴퓨터, 또는 다른 프로그램가능 데이터 처리 장치 상으로 로딩될 수 있음으로써, 컴퓨터 또는 다른 프로그램가능 데이터 처리 장치 상에서 실행되는 명령들은 흐름도 블록 또는 블록들에 지정되는 기능들을 구현하기 위한 수단들을 생성한다. 이들 컴퓨터 프로그램 명령들은 또한 컴퓨터 또는 다른 프로그램가능 데이터 처리 장치가 특정 방식으로 기능하도록 지시할 수 있는 컴퓨터-판독가능 메모리에 저장될 수 있음으로써, 컴퓨터-판독가능 메모리에 저장되는 명령들은 흐름도 블록 또는 블록들에 지정되는 기능을 구현하는 명령 수단들을 포함하는 제조 물품을 생산한다. 컴퓨터 프로그램 명령들은 또한 컴퓨터 또는 다른 프로그램가능 장치 상에서 실행되는 명령들이 흐름도 블록 또는 블록들에 지정되는 기능들을 구현하기 위한 단계들을 제공하도록 컴퓨터-구현 프로세스를 생산하기 위해 일련의 동작 단계들이 컴퓨터 또는 다른 프로그램가능 장치 상에서 수행되도록 하기 위해 컴퓨터 또는 다른 프로그램가능 데이터 처리 장치 상으로 로딩될 수 있다.
따라서, 블록 다이어그램들 및 흐름도 예시들의 기능 블록들은 특정 기능들을 수행하기 위한 수단들의 조합들, 특정 기능들을 수행하기 위한 단계들의 조합들, 및 특정 기능들을 수행하기 위한 프로그램 명령 수단들을 지원한다. 또한, 블록 다이어그램들 및 흐름도 예시들의 각각의 기능 블록, 및 블록 다이어그램들 및 흐름도 예시들 내의 기능 블록들의 조합들은 특정 기능들 또는 단계들을 수행하는 특수 목적 하드웨어-기반 컴퓨터 시스템들, 또는 특수 목적 하드웨어 및 컴퓨터 명령들의 적합한 조합들에 의해 구현될 수 있다는 점이 이해될 것이다. 또한, 프로세스 흐름들 및 그 설명들의 예시들은 사용자 WINDOWS®, 웹페이지들, 웹사이트들, 웹 형태들, 프롬프트들 등을 참조할 수 있다. 실행자들은 본원에 설명되는 예시적 단계들이 WINDOWS®, 웹 페이지들, 웹 형태들, 팝업 WINDOWS®, 프롬프트들 등의 사용을 포함하는 임의의 수의 구성들을 포함할 수 있다는 점을 인식할 것이다. 예시되고 설명된 바와 같은 다수의 단계들이 단일 웹 페이지들 및/또는 WINDOWS®로 결합될 수 있지만 단순화를 위해 확장되었다는 점이 더 인식되어야 한다. 다른 경우들에서, 단일 프로세스 단계들로서 예시되고 설명되는 단계들은 다수의 웹 페이지들 및/또는 WINDOWS® 로 분리될 수 있지만 단순화를 위해 결합되었을 수 있다.
용어 "비-일시적"은 청구 범위로부터 전파하는 일시적 신호들 그 자체만을 제거하고 전파하는 일시적 신호들 그 자체만이 아닌 모든 표준 컴퓨터-판독가능 매체에 대한 권리를 포기하지 않는 것으로 이해되어야 한다. 다른 방식으로 진술되면, 용어 "비-일시적 컴퓨터-판독가능 매체" 및 "비-일시적 컴퓨터-판독가능 저장 매체"의 의미는 35 U.S.C. § 101 하의 특허가능한 발명 대상의 범위 외부에 있는 In re Nuijten에서 발견된 일시적인 컴퓨터-판독가능 매체의 그들 유형들만을 배제하도록 해석되어야 한다.
이득들, 다른 장점들, 및 문제들에 대한 해결책들은 특정 실시예들에 관하여 본원에서 설명되었다. 그러나, 임의의 이득, 장점, 또는 해결책이 발생하게 하거나 보다 명백하게 되도록 할 수 있는 이득들, 다른 장점들, 문제들에 대한 해결책들, 및 임의의 요소들은 본 개시의 중요한, 필수의, 또는 본질적인 특징들 또는 요소들로서 해석되지 않는다. 따라서, 본 개시의 범위는 단지 첨부된 청구항에 의해 제한되며, 단수에서 요소에 대한 참조는 명시적으로 그렇게 진술되지 않는 한 "하나 및 단지 하나"를 의미하도록 의도되지 않고, 오히려 "하나 이상의"를 의미하도록 의도된다. 더욱이, 'A, B, 및 C 중 적어도 하나' 또는 'A, B, 또는 C 중 적어도 하나'와 유사한 어구가 청구범위 또는 명세서에 사용되는 경우, 어구는 A만이 실시예에 존재할 수 있고, B만이 실시예에 존재할 수 있고, C만이 실시예에 존재할 수 있거나, 요소들 A, B 및 C의 임의의 조합이 단일 실시예; 예를 들어, A 및 B, A 및 C, B 및 C, 또는 A 및 B 및 C로 존재할 수 있다는 것을 의미하는 것으로 해석되도록 의도된다. 본 개시는 방법을 포함하지만, 그것은 자기 또는 광학 메모리 또는 자기 또는 광 디스크와 같은, 유형의 컴퓨터-판독가능 캐리어 상에 컴퓨터 프로그램 명령들로서 구현될 수 있다.
더욱이, 디바이스 또는 방법은 그것이 본 청구항들에 의해 포함되기 때문에 본 개시에 의해 해결되도록 추구되는 각각의 및 모든 문제를 해결할 필요가 없다. 더욱이, 본 개시의 요소, 구성요소, 또는 방법 단계는 요소, 구성요소, 또는 방법 단계가 청구항들에 명시적으로 인용되는지 여부와 관계없이 대중에게 전용되는 것으로 의도되지 않는다. 본원에 사용되는 바와 같이, 용어들 "포함하다", "포함하는", 또는 그 임의의 다른 변형은 비-배타적 포함을 커버하도록 의도됨으로써, 요소들의 리스트를 포함하는 프로세스, 방법, 물품, 또는 장치는 그들 요소들만을 포함하는 것이 아니고 그러한 프로세스, 방법, 물품, 또는 장치에 대해 명시적으로 나열되지 않거나 이에 본질적인 다른 요소들을 포함할 수 있다.
다양한 실시예들의 예들은 다음 단락들에서 진술된다. 다음 실시예들은 다양한 예시적 구현들을 예시하도록 의도되지만, 그들은 본 개시의 가능한 실시예들만을 식별하지 않는다. 본 개시의 다른 실시예들은 또한 예시적 목적들을 위해 제공되는 것들을 너머 계류중인 출원에 의해 포함된다.
실시예 1 - 1. 방법으로서, 영지식 증명(zero-knowledge proof; ZKP) 스마트 계약에 의해, 결제 프로세스 동안 상인 시스템에 의해 호출되는 것에 응답하여 검증 기능(validate function)을 실행하는 단계 - 상기 상인 시스템은 증명, 고객 해시, 상인 해시, 및 구매 금액을 상기 ZKP 스마트 계약에 전송함으로써 상기 ZKP 스마트 계약을 호출하고, 상기 검증 기능은 검증 키, 상기 증명, 및 상기 고객 해시를 상기 검증 기능에 입력함으로써 실행되고, 상기 검증 기능은 영지식 증명 알고리즘과 연관됨 -; 상기 ZKP 스마트 계약에 의해, 상기 검증 기능 통과에 응답하여 상기 고객 해시와 연관되는 고객 계좌 잔액을 조정하는 단계 - 상기 고객 계좌 잔액은 상기 구매 금액에 기초하여 조정되고, 상기 고객 계좌 잔액은 블록 체인 상에 유지됨 -; 상기 ZKP 스마트 계약에 의해, 상기 상인 해시와 연관되는 상인 계좌 잔액을 조정하는 단계 - 상기 상인 계좌 잔액은 상기 구매 금액에 기초하여 조정되고, 상기 상인 계좌 잔액은 블록 체인 상에 유지됨 -; 및 상기 ZKP 스마트 계약에 의해, 성공 통지를 상기 블록 체인에 기록하는 단계 - 상기 성공 통지는 상기 결제 프로세스가 성공적으로 완료되었다는 것을 나타내는 데이터를 포함함 -를 포함하는, 방법.
실시예 2 - 실시예 1에 있어서, 상기 상인 시스템은 고객 디바이스로부터 상기 증명 및 상기 고객 해시를 수신하는 것에 응답하여 상기 ZKP 스마트 계약을 호출하고, 상기 고객 디바이스는 상기 영지식 증명 알고리즘과 연관되는 증명 기능을 실행함으로써 상기 증명을 생성하고, 상기 증명 기능은 증명 키, 상기 고객 해시, 및 결제 해시를 상기 증명 알고리즘에 입력시킴으로써 실행되는, 방법.
실시예 3 - 실시예 2에 있어서, 상기 고객 디바이스는 상기 상인 시스템과 상기 결제 구매를 개시하는 것에 응답하여 상기 증명을 생성하고, 상기 결제 해시는 고객 식별 데이터 및 고객 넌스(nonce)를 해싱 알고리즘에 입력함으로써 생성되는, 방법.
실시예 4 - 실시예들 1 내지 실시예 3 중 어느 한 실시예에 있어서, 발행자 시스템은 상기 영지식 증명 알고리즘을 생성하고, 상기 영지식 증명 알고리즘은 키 생성기 기능, 상기 증명 기능, 및 상기 검증 기능을 포함하고;
상기 발행자 시스템은 상기 키 생성기 기능을 실행함으로써 상기 증명 키 및 상기 검증 키를 생성하고, 상기 키 생성기 기능은 난수를 상기 키 생성기 기능으로 입력함으로써 실행되고, 상기 발행자 시스템은 상기 검증 기능을 포함하는 상기 ZKP 스마트 계약을 생성하는, 방법.
실시예 5 - 실시예들 1 내지 실시예 4 중 어느 한 실시예에 있어서, 상기 발행자 시스템은 상기 상인 시스템으로부터 상인 등록 요청을 수신하는 것에 응답하여 상기 상인 해시를 생성하고, 상기 상인 해시는 상인 식별 데이터 및 상기 상인 넌스를 해싱 알고리즘에 입력함으로써 생성되는, 방법.
실시예 6 - 실시예 5에 있어서, 상기 ZKP 스마트 계약에 의해, 상기 상인 해시 및 상기 상인 계좌 잔액을 상기 블록 체인에 기록하는 단계를 더 포함하며, 상기 ZKP 스마트 계약이 상기 기록을 완료하는 것에 응답하여, 상기 발행자 시스템은 상기 상인 해시 및 상기 상인 넌스를 상기 상인 시스템에 전송하는, 방법.
실시예 7 - 실시예들 1 내지 실시예 4 중 어느 한 실시예에 있어서, 상기 발행자 시스템은 상기 고객 디바이스로부터 고객 등록 요청을 수신하는 것에 응답하여 상기 고객 해시를 생성하고, 상기 고객 해시는 상기 고객 식별 데이터 및 상기 고객 넌스를 상기 해싱 알고리즘에 입력함으로써 생성되는, 방법.
실시예 8 - 실시예 7에 있어서, 상기 ZKP 스마트 계약에 의해, 상기 고객 해시 및 상기 고객 계좌 잔액을 상기 블록 체인에 기록하는 단계를 더 포함하며, 상기 ZKP 스마트 계약이 상기 기록을 완료하는 것에 응답하여, 상기 발행자 시스템은 상기 고객 해시 및 상기 고객 넌스를 상기 고객 디바이스에 전송하는, 방법.
실시예 9 -- 컴퓨터-기반 시스템으로서, 컴퓨터-기반 시스템으로서, 프로세서; 및 상기 프로세서와 통신하도록 구성되는 유형의, 비-일시적 메모리를 포함하며, 상기 유형의, 비-일시적 메모리는, 상기 프로세서에 의한 실행에 응답하여, 영지식 증명(ZKP) 스마트 계약이: 상기 영지식 증명(zero-knowledge proof; ZKP) 스마트 계약에 의해, 결제 프로세스 동안 상인 시스템에 의해 호출되는 것에 응답하여 검증 기능(validate function)을 실행하게 하고 - 상기 상인 시스템은 증명, 고객 해시, 상인 해시, 및 구매 금액을 상기 ZKP 스마트 계약에 전송함으로써 상기 ZKP 스마트 계약을 호출하고, 상기 검증 기능은 검증 키, 상기 증명, 및 상기 고객 해시를 상기 검증 기능에 입력함으로써 실행되고, 상기 검증 기능은 영지식 증명 알고리즘과 연관됨 -; 상기 ZKP 스마트 계약에 의해, 상기 검증 기능 통과에 응답하여 상기 고객 해시와 연관되는 고객 계좌 잔액을 조정하고 - 상기 고객 계좌 잔액은 상기 구매 금액에 기초하여 조정되고, 상기 고객 계좌 잔액은 블록 체인 상에 유지됨 -; 상기 ZKP 스마트 계약에 의해, 상기 상인 해시와 연관되는 상인 계좌 잔액을 조정하고 - 상기 상인 계좌 잔액은 상기 구매 금액에 기초하여 조정되고, 상기 상인 계좌 잔액은 블록 체인 상에 유지됨 -; 및 상기 ZKP 스마트 계약에 의해, 성공 통지를 상기 블록 체인에 기록하는 - 상기 성공 통지는 상기 결제 프로세스가 성공적으로 완료되었다는 것을 나타내는 데이터를 포함함 - 동작들을 수행하게 하는 명령들을 저장하는, 컴퓨터-기반 시스템.
실시예 10 - 실시예 9에 있어서, 상기 상인 시스템은 고객 디바이스로부터 상기 증명 및 상기 고객 해시를 수신하는 것에 응답하여 상기 ZKP 스마트 계약을 호출하도록 구성되고, 상기 고객 디바이스는 상기 영지식 증명 알고리즘과 연관되는 증명 기능을 실행함으로써 상기 증명을 생성하도록 구성되고, 상기 증명 기능은 증명 키, 상기 고객 해시, 및 결제 해시를 상기 증명 알고리즘에 입력시킴으로써 실행되도록 구성되는, 컴퓨터-기반 시스템.
실시예 11 - 실시예 10에 있어서, 상기 고객 디바이스는 상기 상인 시스템과 상기 결제 구매를 개시하는 것에 응답하여 상기 증명을 생성하도록 구성되고, 상기 결제 해시는 고객 식별 데이터 및 고객 넌스(nonce)를 해싱 알고리즘에 입력함으로써 생성되는, 컴퓨터-기반 시스템.
실시예 12 - 실시예 9 내지 실시예 11 중 어느 한 실시예에 있어서, 발행자 시스템은 상기 영지식 증명 알고리즘을 생성하도록 구성되고, 상기 영지식 증명 알고리즘은 키 생성기 기능, 상기 증명 기능, 및 상기 검증 기능을 포함하도록 구성되고; 상기 발행자 시스템은 상기 키 생성기 기능을 실행함으로써 상기 증명 키 및 상기 검증 키를 생성하도록 구성되고, 상기 키 생성기 기능은 난수를 상기 키 생성기 기능으로 입력함으로써 실행되도록 구성되고, 상기 발행자 시스템은 상기 검증 기능을 포함하는 상기 ZKP 스마트 계약을 생성하도록 구성되는, 컴퓨터-기반 시스템.
실시예 13 - 실시예 9 내지 실시예 12 중 어느 한 실시예에 있어서, 상기 발행자 시스템은 상기 상인 시스템으로부터 상인 등록 요청을 수신하는 것에 응답하여 상기 상인 해시를 생성하도록 구성되고, 상기 상인 해시는 상인 식별 데이터 및 상기 상인 넌스를 해싱 알고리즘에 입력함으로써 생성되는, 컴퓨터-기반 시스템.
실시예 14 - 실시예 13에 있어서, 상기 ZKP 스마트 계약에 의해, 상기 상인 해시 및 상기 상인 계좌 잔액을 상기 블록 체인에 기록하는 것을 더 포함하며, 상기 ZKP 스마트 계약이 상기 기록을 완료하는 것에 응답하여, 상기 발행자 시스템은 상기 상인 해시 및 상기 상인 넌스를 상기 상인 시스템에 전송하도록 구성되는, 컴퓨터-기반 시스템.
실시예 15 - 실시예 9 내지 실시예 14 중 어느 한 실시예에 있어서, 상기 발행자 시스템은 상기 고객 디바이스로부터 고객 등록 요청을 수신하는 것에 응답하여 상기 고객 해시를 생성하도록 구성되고, 상기 고객 해시는 상기 고객 식별 데이터 및 상기 고객 넌스를 상기 해싱 알고리즘에 입력함으로써 생성되는, 컴퓨터-기반 시스템.
실시예 16 - 실시예 15에 있어서, 상기 ZKP 스마트 계약에 의해, 상기 고객 해시 및 상기 고객 계좌 잔액을 상기 블록 체인에 기록하는 것을 더 포함하며, 상기 ZKP 스마트 계약이 상기 기록을 완료하는 것에 응답하여, 상기 발행자 시스템은 상기 고객 해시 및 상기 고객 넌스를 상기 고객 디바이스에 전송하도록 구성되는, 컴퓨터-기반 시스템.
실시예 17 - 명령들이 저장된 비-일시적, 유형의 컴퓨터 판독가능 저장 매체를 포함하는 제조 물품으로서, 상기 명령들은, 컴퓨터 기반 시스템에 의한 실행에 응답하여, 영지식 증명(zero-knowledge proof ZKP) 스마트 계약이: 상기 영지식 증명 스마트 계약에 의해, 결제 프로세스 동안 상인 시스템에 의해 호출되는 것에 응답하여 검증 기능(validate function)을 실행하게 하고 - 상기 상인 시스템은 증명, 고객 해시, 상인 해시, 및 구매 금액을 상기 ZKP 스마트 계약에 전송함으로써 상기 ZKP 스마트 계약을 호출하고, 상기 검증 기능은 검증 키, 상기 증명, 및 상기 고객 해시를 상기 검증 기능에 입력함으로써 실행되고, 상기 검증 기능은 영지식 증명 알고리즘과 연관됨 -; 상기 ZKP 스마트 계약에 의해, 상기 검증 기능 통과에 응답하여 상기 고객 해시와 연관되는 고객 계좌 잔액을 조정하고 - 상기 고객 계좌 잔액은 상기 구매 금액에 기초하여 조정되고, 상기 고객 계좌 잔액은 블록 체인 상에 유지됨 -; 상기 ZKP 스마트 계약에 의해, 상기 상인 해시와 연관되는 상인 계좌 잔액을 조정하고 - 상기 상인 계좌 잔액은 상기 구매 금액에 기초하여 조정되고, 상기 상인 계좌 잔액은 블록 체인 상에 유지됨 -; 및 상기 ZKP 스마트 계약에 의해, 성공 통지를 상기 블록 체인에 기록하는 것- 상기 성공 통지는 상기 결제 프로세스가 성공적으로 완료되었다는 것을 나타내는 데이터를 포함함 -을 포함하는 동작들을 수행하게 하는, 제조 물품.
실시예 18 - 실시예 17에 있어서, 상기 상인 시스템은 고객 디바이스로부터 상기 증명 및 상기 고객 해시를 수신하는 것에 응답하여 상기 ZKP 스마트 계약을 호출하도록 구성되고, 상기 고객 디바이스는 상기 영지식 증명 알고리즘과 연관되는 증명 기능을 실행함으로써 상기 증명을 생성하도록 구성되고, 상기 증명 기능은 증명 키, 상기 고객 해시, 및 결제 해시를 상기 증명 알고리즘에 입력시킴으로써 실행되도록 구성되고, 상기 고객 디바이스는 상기 상인 시스템과 상기 결제 구매를 개시하는 것에 응답하여 상기 증명을 생성하도록 구성되고, 상기 결제 해시는 고객 식별 데이터 및 고객 넌스(nonce)를 해싱 알고리즘에 입력함으로써 생성되는, 제조 물품.
실시예 19 - 실시예 17 또는 실시예 18에 있어서, 발행자 시스템은 상기 영지식 증명 알고리즘을 생성하도록 구성되고, 상기 영지식 증명 알고리즘은 키 생성기 기능, 상기 증명 기능, 및 상기 검증 기능을 포함하고; 상기 발행자 시스템은 상기 키 생성기 기능을 실행함으로써 상기 증명 키 및 상기 검증 키를 생성하도록 구성되고, 상기 키 생성기 기능은 난수를 상기 키 생성기 기능으로 입력함으로써 실행되도록 구성되고, 상기 발행자 시스템은 상기 검증 기능을 포함하는 상기 ZKP 스마트 계약을 생성하도록 구성되는, 제조 물품.
실시예 20 - 실시예들 17 내지 실시예 19 중 어느 한 실시예에 있어서,
상기 발행자 시스템은 상기 상인 시스템으로부터 상인 등록 요청을 수신하는 것에 응답하여 상기 상인 해시를 생성하도록 구성되고, 상기 상인 해시는 상인 식별 데이터 및 상기 상인 넌스를 해싱 알고리즘에 입력함으로써 생성되고, 상기 발행자 시스템은 상기 고객 디바이스로부터 고객 등록 요청을 수신하는 것에 응답하여 상기 고객 해시를 생성하도록 구성되고, 상기 고객 해시는 상기 고객 식별 데이터 및 상기 고객 넌스를 상기 해싱 알고리즘에 입력함으로써 생성되는, 제조 물품.

Claims (15)

  1. 방법으로서,
    영지식 증명(zero-knowledge proof; ZKP) 스마트 계약에 의해, 결제 프로세스 동안 상인 시스템에 의해 호출되는 것에 응답하여 검증 기능(validate function)을 실행하는 단계 - 상기 상인 시스템은 증명, 고객 해시, 상인 해시, 및 구매 금액을 상기 ZKP 스마트 계약에 전송함으로써 상기 ZKP 스마트 계약을 호출하고, 상기 검증 기능은 검증 키, 상기 증명, 및 상기 고객 해시를 상기 검증 기능에 입력함으로써 실행되고, 상기 검증 기능은 영지식 증명 알고리즘과 연관됨 -;
    상기 ZKP 스마트 계약에 의해, 상기 검증 기능 통과에 응답하여 상기 고객 해시와 연관되는 고객 계좌 잔액을 조정하는 단계 - 상기 고객 계좌 잔액은 상기 구매 금액에 기초하여 조정되고, 상기 고객 계좌 잔액은 블록 체인 상에 유지됨 -;
    상기 ZKP 스마트 계약에 의해, 상기 상인 해시와 연관되는 상인 계좌 잔액을 조정하는 단계 - 상기 상인 계좌 잔액은 상기 구매 금액에 기초하여 조정되고, 상기 상인 계좌 잔액은 블록 체인 상에 유지됨 -; 및
    상기 ZKP 스마트 계약에 의해, 성공 통지를 상기 블록 체인에 기록하는 단계 - 상기 성공 통지는 상기 결제 프로세스가 성공적으로 완료되었다는 것을 나타내는 데이터를 포함함 -를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 상인 시스템은 고객 디바이스로부터 상기 증명 및 상기 고객 해시를 수신하는 것에 응답하여 상기 ZKP 스마트 계약을 호출하고,
    상기 고객 디바이스는 상기 영지식 증명 알고리즘과 연관되는 증명 기능을 실행함으로써 상기 증명을 생성하고,
    상기 증명 기능은 증명 키, 상기 고객 해시, 및 결제 해시를 상기 증명 알고리즘에 입력시킴으로써 실행되는, 방법.
  3. 제2항에 있어서,
    상기 고객 디바이스는 상기 상인 시스템과 상기 결제 구매를 개시하는 것에 응답하여 상기 증명을 생성하고,
    상기 결제 해시는 고객 식별 데이터 및 고객 넌스(nonce)를 해싱 알고리즘에 입력함으로써 생성되는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    발행자 시스템은 상기 영지식 증명 알고리즘을 생성하고,
    상기 영지식 증명 알고리즘은 키 생성기 기능, 상기 증명 기능, 및 상기 검증 기능을 포함하고;
    상기 발행자 시스템은 상기 키 생성기 기능을 실행함으로써 상기 증명 키 및 상기 검증 키를 생성하고,
    상기 키 생성기 기능은 난수를 상기 키 생성기 기능으로 입력함으로써 실행되고,
    상기 발행자 시스템은 상기 검증 기능을 포함하는 상기 ZKP 스마트 계약을 생성하는, 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 발행자 시스템은 상기 상인 시스템으로부터 상인 등록 요청을 수신하는 것에 응답하여 상기 상인 해시를 생성하고,
    상기 상인 해시는 상인 식별 데이터 및 상기 상인 넌스를 해싱 알고리즘에 입력함으로써 생성되는, 방법.
  6. 제5항에 있어서,
    상기 ZKP 스마트 계약에 의해, 상기 상인 해시 및 상기 상인 계좌 잔액을 상기 블록 체인에 기록하는 단계를 더 포함하며, 상기 ZKP 스마트 계약이 상기 기록을 완료하는 것에 응답하여, 상기 발행자 시스템은 상기 상인 해시 및 상기 상인 넌스를 상기 상인 시스템에 전송하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 발행자 시스템은 상기 고객 디바이스로부터 고객 등록 요청을 수신하는 것에 응답하여 상기 고객 해시를 생성하고,
    상기 고객 해시는 상기 고객 식별 데이터 및 상기 고객 넌스를 상기 해싱 알고리즘에 입력함으로써 생성되는, 방법.
  8. 제7항에 있어서,
    상기 ZKP 스마트 계약에 의해, 상기 고객 해시 및 상기 고객 계좌 잔액을 상기 블록 체인에 기록하는 단계를 더 포함하며, 상기 ZKP 스마트 계약이 상기 기록을 완료하는 것에 응답하여, 상기 발행자 시스템은 상기 고객 해시 및 상기 고객 넌스를 상기 고객 디바이스에 전송하는, 방법.
  9. 컴퓨터-기반 시스템으로서,
    프로세서; 및
    상기 프로세서와 통신하도록 구성되는 유형의, 비-일시적 메모리를 포함하며, 상기 유형의, 비-일시적 메모리는, 상기 프로세서에 의한 실행에 응답하여, 영지식 증명(ZKP) 스마트 계약이:
    상기 영지식 증명(zero-knowledge proof; ZKP) 스마트 계약에 의해, 결제 프로세스 동안 상인 시스템에 의해 호출되는 것에 응답하여 검증 기능(validate function)을 실행하게 하고 - 상기 상인 시스템은 증명, 고객 해시, 상인 해시, 및 구매 금액을 상기 ZKP 스마트 계약에 전송함으로써 상기 ZKP 스마트 계약을 호출하고, 상기 검증 기능은 검증 키, 상기 증명, 및 상기 고객 해시를 상기 검증 기능에 입력함으로써 실행되고, 상기 검증 기능은 영지식 증명 알고리즘과 연관됨 -;
    상기 ZKP 스마트 계약에 의해, 상기 검증 기능 통과에 응답하여 상기 고객 해시와 연관되는 고객 계좌 잔액을 조정하고 - 상기 고객 계좌 잔액은 상기 구매 금액에 기초하여 조정되고, 상기 고객 계좌 잔액은 블록 체인 상에 유지됨 -;
    상기 ZKP 스마트 계약에 의해, 상기 상인 해시와 연관되는 상인 계좌 잔액을 조정하고 - 상기 상인 계좌 잔액은 상기 구매 금액에 기초하여 조정되고, 상기 상인 계좌 잔액은 블록 체인 상에 유지됨 -; 및
    상기 ZKP 스마트 계약에 의해, 성공 통지를 상기 블록 체인에 기록하는 - 상기 성공 통지는 상기 결제 프로세스가 성공적으로 완료되었다는 것을 나타내는 데이터를 포함함 - 동작들을 수행하게 하는 명령들을 저장하는, 컴퓨터-기반 시스템.
  10. 제9항에 있어서,
    상기 상인 시스템은 고객 디바이스로부터 상기 증명 및 상기 고객 해시를 수신하는 것에 응답하여 상기 ZKP 스마트 계약을 호출하도록 구성되고,
    상기 고객 디바이스는 상기 영지식 증명 알고리즘과 연관되는 증명 기능을 실행함으로써 상기 증명을 생성하도록 구성되고,
    상기 증명 기능은 증명 키, 상기 고객 해시, 및 결제 해시를 상기 증명 알고리즘에 입력시킴으로써 실행되도록 구성되는, 컴퓨터-기반 시스템.
  11. 제10항에 있어서,
    상기 고객 디바이스는 상기 상인 시스템과 상기 결제 구매를 개시하는 것에 응답하여 상기 증명을 생성하도록 구성되고,
    상기 결제 해시는 고객 식별 데이터 및 고객 넌스(nonce)를 해싱 알고리즘에 입력함으로써 생성되는, 컴퓨터-기반 시스템.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    발행자 시스템은 상기 영지식 증명 알고리즘을 생성하도록 구성되고,
    상기 영지식 증명 알고리즘은 키 생성기 기능, 상기 증명 기능, 및 상기 검증 기능을 포함하도록 구성되고;
    상기 발행자 시스템은 상기 키 생성기 기능을 실행함으로써 상기 증명 키 및 상기 검증 키를 생성하도록 구성되고,
    상기 키 생성기 기능은 난수를 상기 키 생성기 기능으로 입력함으로써 실행되도록 구성되고,
    상기 발행자 시스템은 상기 검증 기능을 포함하는 상기 ZKP 스마트 계약을 생성하도록 구성되는, 컴퓨터-기반 시스템.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서,
    상기 발행자 시스템은 상기 상인 시스템으로부터 상인 등록 요청을 수신하는 것에 응답하여 상기 상인 해시를 생성하도록 구성되고,
    상기 상인 해시는 상인 식별 데이터 및 상기 상인 넌스를 해싱 알고리즘에 입력함으로써 생성되는, 컴퓨터-기반 시스템.
  14. 제13항에 있어서,
    상기 ZKP 스마트 계약에 의해, 상기 상인 해시 및 상기 상인 계좌 잔액을 상기 블록 체인에 기록하는 것을 더 포함하며, 상기 ZKP 스마트 계약이 상기 기록을 완료하는 것에 응답하여, 상기 발행자 시스템은 상기 상인 해시 및 상기 상인 넌스를 상기 상인 시스템에 전송하도록 구성되는, 컴퓨터-기반 시스템.
  15. 제9항 내지 제14항 중 어느 한 항에 있어서,
    상기 발행자 시스템은 상기 고객 디바이스로부터 고객 등록 요청을 수신하는 것에 응답하여 상기 고객 해시를 생성하도록 구성되고,
    상기 고객 해시는 상기 고객 식별 데이터 및 상기 고객 넌스를 상기 해싱 알고리즘에 입력함으로써 생성되는, 컴퓨터-기반 시스템.
KR1020217015728A 2018-12-12 2019-12-11 블록 체인을 사용한 영지식 증명 결제 KR102526384B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/217,734 US11151558B2 (en) 2018-12-12 2018-12-12 Zero-knowledge proof payments using blockchain
US16/217,734 2018-12-12
PCT/US2019/065621 WO2020123591A1 (en) 2018-12-12 2019-12-11 Zero-knowledge proof payments using blockchain

Publications (2)

Publication Number Publication Date
KR20210089682A true KR20210089682A (ko) 2021-07-16
KR102526384B1 KR102526384B1 (ko) 2023-04-28

Family

ID=71072732

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217015728A KR102526384B1 (ko) 2018-12-12 2019-12-11 블록 체인을 사용한 영지식 증명 결제

Country Status (7)

Country Link
US (3) US11151558B2 (ko)
EP (1) EP3895366A4 (ko)
JP (1) JP7166453B2 (ko)
KR (1) KR102526384B1 (ko)
CN (1) CN113243094B (ko)
SG (1) SG11202104984YA (ko)
WO (1) WO2020123591A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115051807A (zh) * 2022-06-02 2022-09-13 昆明理工大学 一种基于超级账本Fabric的零知识身份认证方法
KR20230117975A (ko) * 2022-02-03 2023-08-10 충남대학교산학협력단 스마트 컨트랙트 개인정보보호 방법 및 이를 이용한 시스템
KR102595354B1 (ko) 2023-02-07 2023-10-30 주식회사 지크립토 영지식증명을 갖는 블록체인 기반의 전자투표시스템 및 방법

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11049104B2 (en) * 2017-04-05 2021-06-29 Samsung Sds Co., Ltd. Method of processing payment based on blockchain and apparatus thereof
JP7361706B2 (ja) 2018-03-23 2023-10-16 エヌチェーン ライセンシング アーゲー ゼロ知識証明を可能にするためのコンピュータ実装されたシステム及び方法
US10721069B2 (en) 2018-08-18 2020-07-21 Eygs Llp Methods and systems for enhancing privacy and efficiency on distributed ledger-based networks
US11182379B2 (en) 2018-08-24 2021-11-23 Oracle International Corporation DAG based methods and systems of transaction processing in a distributed ledger
CN111899001A (zh) * 2018-08-30 2020-11-06 创新先进技术有限公司 基于区块链的汇款方法及装置
US10389708B1 (en) * 2019-01-03 2019-08-20 Capital One Services, Llc Secure authentication of a user associated with communication with a service representative
US20200311695A1 (en) * 2019-03-27 2020-10-01 International Business Machines Corporation Privacy-preserving gridlock resolution
US11323243B2 (en) * 2019-04-05 2022-05-03 International Business Machines Corporation Zero-knowledge proof for blockchain endorsement
US11502838B2 (en) 2019-04-15 2022-11-15 Eygs Llp Methods and systems for tracking and recovering assets stolen on distributed ledger-based networks
US11677563B2 (en) 2019-04-15 2023-06-13 Eygs Llp Systems, apparatus and methods for local state storage of distributed ledger data without cloning
US11943358B2 (en) * 2019-04-15 2024-03-26 Eygs Llp Methods and systems for identifying anonymized participants of distributed ledger-based networks using zero-knowledge proofs
US12010236B2 (en) * 2019-04-24 2024-06-11 Sony Group Corporation Blockchain-based crowdsourcing
GB201907396D0 (en) * 2019-05-24 2019-07-10 Nchain Holdings Ltd Hash function attacks
GB2584154A (en) 2019-05-24 2020-11-25 Nchain Holdings Ltd Knowledge proof
EP3754899B1 (en) * 2019-06-20 2022-03-02 Telefónica Iot & Big Data Tech, S.A. Method and system for inter-dlt networks trust enhancement
JP2023513576A (ja) * 2020-02-11 2023-03-31 コーニンクレッカ フィリップス エヌ ヴェ 信頼できるプライバシーが保護されたゲノムデータベース発見のためのプロトコル
US11922278B1 (en) * 2020-02-26 2024-03-05 American Express Travel Related Services Company, Inc. Distributed ledger based feature set tracking
US20210295283A1 (en) * 2020-03-17 2021-09-23 Visa International Service Association Methods and systems for blockchain digital currency stake delegation
CN111861480B (zh) * 2020-09-21 2020-12-18 浙江大学 一种流量检测模型交易方法、装置、电子设备及存储介质
US11822538B2 (en) * 2020-11-05 2023-11-21 Oracle International Corporation Systems and methods of transaction identification generation for transaction-based environment
CN112738177B (zh) * 2020-12-22 2022-08-05 网易(杭州)网络有限公司 基于区块链的证明系统、方法、装置、电子设备及介质
EP4030327A1 (en) * 2021-01-14 2022-07-20 ABB Schweiz AG Method and system for validating a transaction against service level agreement conditions in a distributed ledger
US20220337424A1 (en) * 2021-04-16 2022-10-20 Portable Data Corp Apparatuses And Methods For Facilitating Cryptographically Mediated Organizations And Tokens And Related Interactions
CN113592469B (zh) * 2021-08-02 2024-09-24 南京呗茵特互联网科技有限公司 基于零知识证明的红包处理方法、计算机设备和存储介质
CN113592478A (zh) * 2021-08-02 2021-11-02 杭州复杂美科技有限公司 数字商品交易方法、计算机设备和存储介质
TW202345545A (zh) * 2021-12-17 2023-11-16 瑞士商區塊鏈授權股份有限公司 用於證明與驗證子金鑰真實性之技術
US12052375B2 (en) * 2022-04-06 2024-07-30 Western Digital Technologies, Inc. Hiding proof-of-space in blockchain systems
US20240037556A1 (en) * 2022-07-28 2024-02-01 Mastercard International Incorporated Method and system for payment processing using distributed digitized surrogates
JP2024022339A (ja) 2022-08-05 2024-02-16 富士通株式会社 対価分配プログラム、対価分配方法及び対価分配装置
JP2024024554A (ja) 2022-08-09 2024-02-22 富士通株式会社 対価分配プログラム、対価分配方法及び情報管理装置
KR102636987B1 (ko) * 2022-10-12 2024-02-16 주식회사 씨피랩스 영지식증명을 이용한 블록체인 네트워크의 오라클 서비스를 제공하는 방법 및 이를 이용한 어그리게이터 단말
US11869105B1 (en) * 2022-11-12 2024-01-09 Mike McCarthy Systems and methods for bypassing intermediation using living arrangements
CN116091049B (zh) * 2023-04-12 2023-07-07 中科商用(临沂)技术有限公司 一种基于大数据与区块链的支付方法、装置及云平台
US12086220B1 (en) * 2024-02-22 2024-09-10 Stanley Kevin Miles Systems and methods for remote server authentication of physical access tokens

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294183A1 (en) * 2006-05-24 2007-12-20 Camenisch Jan L Method for automatically validating a transaction, electronic payment system and computer program
US20160253663A1 (en) * 2015-02-27 2016-09-01 Adam Clark Transaction signing utilizing asymmetric cryptography
US20170132620A1 (en) * 2015-11-06 2017-05-11 SWFL, Inc., d/b/a "Filament" Systems and methods for autonomous device transacting
US20170132626A1 (en) * 2015-11-05 2017-05-11 Mastercard International Incorporated Method and system for processing of a blockchain transaction in a transaction processing network
US20180331832A1 (en) * 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2655026C (en) 2006-06-15 2016-08-02 Microvention, Inc. Embolization device constructed from expansible polymer
US20130117087A1 (en) 2011-11-07 2013-05-09 Apriva, Llc System and method for authenticating electronic transaction instruments
US10497037B2 (en) 2014-03-31 2019-12-03 Monticello Enterprises LLC System and method for managing cryptocurrency payments via the payment request API
WO2016155804A1 (en) 2015-03-31 2016-10-06 Nec Europe Ltd. Method for verifying information
JP6704985B2 (ja) 2015-04-05 2020-06-03 デジタル・アセット・ホールディングス・エルエルシー デジタル資産仲介電子決済プラットフォーム
US20160342989A1 (en) 2015-05-21 2016-11-24 Mastercard International Incorporated Method and system for processing blockchain-based transactions on existing payment networks
US20170048209A1 (en) 2015-07-14 2017-02-16 Fmr Llc Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20170109735A1 (en) 2015-07-14 2017-04-20 Fmr Llc Computationally Efficient Transfer Processing and Auditing Apparatuses, Methods and Systems
JP6288022B2 (ja) 2015-09-24 2018-03-07 カシオ計算機株式会社 売上データ処理装置及びプログラム
US9849364B2 (en) 2016-02-02 2017-12-26 Bao Tran Smart device
US20170228726A1 (en) * 2016-02-04 2017-08-10 American Express Travel Related Services Company, Inc. Systems and methods for secure transactions
EP3411824B1 (en) 2016-02-04 2019-10-30 Nasdaq Technology AB Systems and methods for storing and sharing transactional data using distributed computer systems
US10715531B2 (en) * 2016-02-12 2020-07-14 Visa International Service Association Network topology
US11108566B2 (en) * 2016-02-12 2021-08-31 Visa International Service Association Methods and systems for using digital signatures to create trusted digital asset transfers
CN107438002B (zh) * 2016-05-27 2022-02-11 索尼公司 基于区块链的系统以及系统中的电子设备和方法
US10108954B2 (en) 2016-06-24 2018-10-23 PokitDok, Inc. System and method for cryptographically verified data driven contracts
US10411905B2 (en) 2016-07-01 2019-09-10 Intel Corporation Public key infrastructure using blockchains
JP6663809B2 (ja) 2016-07-07 2020-03-13 株式会社日立製作所 監査装置、監査機能付匿名送金方法及びプログラム
US10832247B2 (en) 2016-09-15 2020-11-10 American Express Travel Related Services Company, Inc. Systems and methods for blockchain based payment networks
US20180216946A1 (en) 2016-09-30 2018-08-02 Mamadou Mande Gueye Method and system for facilitating provisioning of social activity data to a mobile device based on user preferences
CN109791591B (zh) 2016-10-06 2023-07-07 万事达卡国际公司 经由区块链进行身份和凭证保护及核实的方法和系统
CN110945549A (zh) 2017-03-15 2020-03-31 努Id公司 用于对用于跨机构数字认证的用户拥有的凭证的通用存储和访问的方法和系统
CN108418783B (zh) 2017-09-01 2021-03-19 矩阵元技术(深圳)有限公司 一种保护区块链智能合约隐私的方法、介质
CN111316615B (zh) * 2017-11-09 2024-02-13 区块链控股有限公司 使用调解器计算机系统确保计算机程序正确执行的系统和方法
CN108009441B (zh) * 2017-11-23 2023-05-30 创新先进技术有限公司 资源转移和资金转移的方法和装置
US11257077B2 (en) * 2017-11-30 2022-02-22 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
CN108418689B (zh) * 2017-11-30 2020-07-10 矩阵元技术(深圳)有限公司 一种适合区块链隐私保护的零知识证明方法和介质
CN108389046B (zh) * 2018-02-07 2020-08-28 西安交通大学 一种电子商务中基于区块链技术的隐私保护交易方法
US10929842B1 (en) * 2018-03-05 2021-02-23 Winklevoss Ip, Llc System, method and program product for depositing and withdrawing stable value digital assets in exchange for fiat
GB201806112D0 (en) * 2018-04-13 2018-05-30 Nchain Holdings Ltd Computer-implemented system and method
CN108898490A (zh) * 2018-06-25 2018-11-27 北京奇虎科技有限公司 智能合约的执行方法、节点、系统、电子设备及存储介质
BR112019008168A2 (pt) * 2018-11-07 2019-09-10 Alibaba Group Holding Ltd métodos implementados por computador, meio de armazenamento legível por computador e sistema

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070294183A1 (en) * 2006-05-24 2007-12-20 Camenisch Jan L Method for automatically validating a transaction, electronic payment system and computer program
US20160253663A1 (en) * 2015-02-27 2016-09-01 Adam Clark Transaction signing utilizing asymmetric cryptography
US20170132626A1 (en) * 2015-11-05 2017-05-11 Mastercard International Incorporated Method and system for processing of a blockchain transaction in a transaction processing network
US20180331832A1 (en) * 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System
US20170132620A1 (en) * 2015-11-06 2017-05-11 SWFL, Inc., d/b/a "Filament" Systems and methods for autonomous device transacting

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Alberto Sonnino et al., "Coconut: Threshold Issuance Selective Disclosure Credentials with Applications to Distributed Ledgers", ARXIV.ORG (2018.02.20.)* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230117975A (ko) * 2022-02-03 2023-08-10 충남대학교산학협력단 스마트 컨트랙트 개인정보보호 방법 및 이를 이용한 시스템
CN115051807A (zh) * 2022-06-02 2022-09-13 昆明理工大学 一种基于超级账本Fabric的零知识身份认证方法
KR102595354B1 (ko) 2023-02-07 2023-10-30 주식회사 지크립토 영지식증명을 갖는 블록체인 기반의 전자투표시스템 및 방법

Also Published As

Publication number Publication date
US20210406878A1 (en) 2021-12-30
US20200193425A1 (en) 2020-06-18
CN113243094A (zh) 2021-08-10
US12093948B2 (en) 2024-09-17
JP2022510790A (ja) 2022-01-28
US20230410103A1 (en) 2023-12-21
KR102526384B1 (ko) 2023-04-28
WO2020123591A1 (en) 2020-06-18
CN113243094B (zh) 2024-09-10
EP3895366A4 (en) 2022-08-31
US11151558B2 (en) 2021-10-19
JP7166453B2 (ja) 2022-11-07
US11748750B2 (en) 2023-09-05
EP3895366A1 (en) 2021-10-20
SG11202104984YA (en) 2021-06-29

Similar Documents

Publication Publication Date Title
KR102526384B1 (ko) 블록 체인을 사용한 영지식 증명 결제
US11282076B2 (en) Transaction account data maintenance using blockchain
US20230353375A1 (en) Reward point transfers using blockchain
US11699166B2 (en) Multi-merchant loyalty point partnership
US11410136B2 (en) Procurement system using blockchain
US20230401555A1 (en) System and method for transaction account based micro-payments
US10783545B2 (en) Reward point redemption for cryptocurrency
US11687907B2 (en) Secure mobile checkout system
KR102685699B1 (ko) 피어 투 피어 송금
KR102695504B1 (ko) 원격 emv 지불 애플리케이션
US11941654B2 (en) Automated transactional offers using a browser extension

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant