CN113243094A - 使用区块链的零知识证明支付 - Google Patents
使用区块链的零知识证明支付 Download PDFInfo
- Publication number
- CN113243094A CN113243094A CN201980081904.2A CN201980081904A CN113243094A CN 113243094 A CN113243094 A CN 113243094A CN 201980081904 A CN201980081904 A CN 201980081904A CN 113243094 A CN113243094 A CN 113243094A
- Authority
- CN
- China
- Prior art keywords
- merchant
- customer
- hash
- zkp
- function
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 147
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 81
- 230000008569 process Effects 0.000 claims abstract description 53
- 238000010200 validation analysis Methods 0.000 claims abstract description 40
- 230000006870 function Effects 0.000 claims description 121
- 230000004044 response Effects 0.000 claims description 72
- 238000012795 verification Methods 0.000 claims description 38
- 230000015654 memory Effects 0.000 claims description 29
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 56
- 238000003860 storage Methods 0.000 description 25
- 238000004590 computer program Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 17
- 230000008901 benefit Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 238000013475 authorization Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 239000004570 mortar (masonry) Substances 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000001902 propagating effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000003340 mental effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- VZSRBBMJRBPUNF-UHFFFAOYSA-N 2-(2,3-dihydro-1H-inden-2-ylamino)-N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]pyrimidine-5-carboxamide Chemical compound C1C(CC2=CC=CC=C12)NC1=NC=C(C=N1)C(=O)NCCC(N1CC2=C(CC1)NN=N2)=O VZSRBBMJRBPUNF-UHFFFAOYSA-N 0.000 description 1
- TVZRAEYQIKYCPH-UHFFFAOYSA-N 3-(trimethylsilyl)propane-1-sulfonic acid Chemical compound C[Si](C)(C)CCCS(O)(=O)=O TVZRAEYQIKYCPH-UHFFFAOYSA-N 0.000 description 1
- 240000005020 Acaciella glauca Species 0.000 description 1
- 241001441724 Tetraodontidae Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000002567 autonomic effect Effects 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- UAJUXJSXCLUTNU-UHFFFAOYSA-N pranlukast Chemical compound C=1C=C(OCCCCC=2C=CC=CC=2)C=CC=1C(=O)NC(C=1)=CC=C(C(C=2)=O)C=1OC=2C=1N=NNN=1 UAJUXJSXCLUTNU-UHFFFAOYSA-N 0.000 description 1
- 229960004583 pranlukast Drugs 0.000 description 1
- 235000003499 redwood Nutrition 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000344 soap Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/18—Payment architectures involving self-service terminals [SST], vending machines, kiosks or multimedia terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3218—Cryptographic 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/3221—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial 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
公开了使用区块链的零知识证明购买***和过程。该***可以包括具有零知识证明(ZKP)智能合约的客户装置、商家***、发行方***和合约区块链网络。该***可以实施零知识证明算法,该零知识证明算法具有密钥生成器功能、证明功能和验证功能。每个功能可以被配置为在***中执行各种任务,以支持和实现零知识证明购买。
Description
相关申请的交叉引用
本申请要求在2018年12月12日提交的题为“ZERO-KNOWLEDGE PROOF PAYMENTSUSING BLOCKCHAIN(使用区块链的零知识证明支付)”的美国专利申请第16/217,734号的优先权。
技术领域
本公开总体上涉及一种支付***,并且更具体地,涉及使用分布式账本的零知识证明支付***和过程。
背景技术
消费者可能期望使用各种方法来发起与商家的交易。例如,消费者可以通过访问实体店、通过商家的网站在线、或经由任何其它合适的手段来亲自发起与商家的交易。为了完成交易,消费者可以提交敏感信息,该敏感信息可以包括交易账号、消费者姓名、消费者联系信息等。商家可以通过将交易账号、有效期、卡验证值(CVV)等传输到发行方***或支付处理器来请求交易的授权。发行方***或支付处理器可以验证交易账户数据,确保消费者具有足够的资金来完成支付,并且将授权批准或拒绝传输回来。一个技术问题是,典型的交易过程会跨可能不安全的多个通道暴露敏感数据,包括交易帐户数据和客户数据。通过在典型交易过程中暴露敏感数据,敏感数据可能被第三方拦截或以其它方式窃取。
发明内容
公开了用于使用区块链的零知识证明支付的***、方法和计算机可读介质(统称为“***”)。该***可以包括零知识证明(ZKP)智能合约,其被配置为响应于在支付过程期间被商家***调用而执行验证功能(function),其中,商家***通过将证明、客户散列(hash)、商家散列和购买金额(purchase amount)传输到ZKP智能合约来调用ZKP智能合约,其中,通过将验证密钥、证明和客户散列输入到验证功能中来执行验证功能,并且其中,验证功能与零知识证明算法相关联;响应于验证功能通过,调整与客户散列相关联的客户账户余额,其中,客户账户余额基于购买金额进行调整,并且其中,在区块链上维护客户账户余额;调整与商家散列相关联的商家账户余额,其中,商家账户余额基于购买金额而调整,并且其中,在区块链上对商家账户余额进行维护;以及将成功通知写入区块链,其中,成功通知包括指示支付过程成功完成的数据。
在各种实施例中,商家***可以响应于从客户装置接收到证明和客户散列而调用ZKP智能合约。客户装置可以通过执行与零知识证明算法相关联的证明功能来生成证明。可以通过将证明密钥、客户散列和支付散列输入到证明算法中来执行证明功能。客户装置可以响应于发起向商家***的支付购买而生成证明。可以通过将客户标识数据和客户一次性随机数输入到散列算法中来生成支付散列。
在各种实施例中,发行方***可以创建零知识证明算法。零知识证明算法可以包括密钥生成器功能、证明功能和验证功能。发行方***可以通过执行密钥生成器功能来生成证明密钥和验证密钥。密钥生成器功能可以通过将随机数输入到密钥生成器功能中来执行。发行方***可以生成ZKP智能合约以包括验证功能。
在各种实施例中,发行方***可以响应于从商家***接收到商家注册请求而生成商家散列。可以通过将商家标识数据和商家一次性随机数输入到散列算法中来生成商家散列。ZKP智能合约可以将商家散列和商家账户余额写入到区块链。响应于ZKP智能合约完成写入,发行方***可以将商家散列和商家一次性随机数传输到商家***。在各种实施例中,发行方***可以响应于从客户装置接收到客户注册请求而生成客户散列。可以通过将客户标识数据和客户一次性随机数输入到散列算法中来生成客户散列。ZKP智能合约可以将客户散列和客户账户余额写入到区块链。响应于ZKP智能合约完成写入,发行方***可以将客户散列和客户一次性随机数传输到客户装置。
除非本文另外明确指出,否则前述特征和元素可以以各种组合进行组合而没有排他性。根据以下描述和附图,所公开的实施例的这些特征和元素以及操作将变得更加显而易见。
附图说明
本公开的主题在说明书的结论部分中被特别指出并明确要求保护。然而,当结合所绘附图考虑时,通过参照具体实施方式和权利要求书可以获得对本公开的更完整的理解,其中,相同的标号表示相同的元素。
图1为示出了根据各种实施例的零知识证明支付***的示意性框图;
图2示出了根据各种实施例的用于发起零知识证明算法的示例性处理流程;
图3示出了根据各种实施例的用于零知识证明支付的商家注册的示例性处理流程;
图4示出了根据各种实施例的用于零知识证明支付的客户注册的示例性处理流程;和
图5示出了根据各种实施例的用于零知识证明支付过程的示例性处理流程。
具体实施方式
本文参照附图和图片对各种实施例进行了详细描述,附图和图片通过说明而示出了各种实施例。尽管足够详细地描述了这些各种实施例以使本领域技术人员能够实践本公开,但是应该理解,在不脱离本公开的精神和范围的情况下,可以实现其它实施例并且可以做出逻辑改变和机械改变。因此,本文的详细描述仅出于说明而非限制的目的来呈现。例如,在任何方法或过程描述中阐述的步骤可以按照任何顺序执行,而不限于所呈现的顺序。此外,任何功能或步骤均可外包给一个或多个第三方或由一个或多个第三方执行。在不脱离本公开的范围的情况下,可以对本文所述的***、设备和方法进行修改、添加或省略。例如,***和设备的组件可以是集成的或分开的。此外,本文公开的***和设备的操作可以通过更多、更少或其它的组件来执行,并且所描述的方法可以包括更多、更少或其它的步骤。另外,可以以任何合适的顺序执行步骤。如在本文中所使用的,“每个”是指集合的每个成员或集合的子集的每个成员。此外,任何对于单数的提及包括复数个实施例,并且任何对于多于一个组件的提及可以包括单数个实施例。尽管本文已列举了具体优点,但是各种实施例可以包括所列举优点中的一些、不包括所列举优点或者包括全部的所列举优点。
零知识证明支付***和过程可以用于在无需客户暴露包括交易帐户数据的敏感数据的情况下完成客户与商家之间的交易。该***可以实施零知识证明算法,例如zk-SNARK。该算法使客户能够证明知道或拥有特定信息(例如,交易帐户数据),并且使商家能够在无需在各方之间公开或交换实际信息的情况下验证知道或拥有该信息。发行方***可以建立零知识证明算法,并且可以允许商家和客户向发行方***注册以参与零知识证明支付。可以在区块链上对客户账户余额、商家账户余额和交易数据进行维护。智能合约可以被用于在零知识证明支付过程期间控制端到端(end-to-end)数据流,并且响应于成功的授权和/或交易来更新客户账户余额和商家账户余额。
该***进一步改进了计算机的功能。例如,通过使用本文所述的过程来传输、存储和访问数据,数据的安全性得到改善,这降低了计算机、网络和/或敏感数据受到损害的风险。例如,通过使用本文提供的零知识证明方法,仅发行方***存储客户的个人信息。由于不会与商家共享个人信息,所以在支付过程期间不会暴露包括交易账号的机密信息和凭证。此外,由于商家不接收个人信息,所以商家可能不需要核证支付卡行业数据安全标准(Payment Card Industry Data Security Standard,PCI DSS)的合规性。
根据各种实施例,本文所述的***、方法和计算机可读介质(统称为“***”)可以使用由多个计算装置(例如,节点)通过对等网络维护的分布式账本。每个计算装置维护分布式账本的副本和/或部分副本,并且与网络中的一个或多个其它计算装置通信以验证数据并将数据写入到分布式账本。分布式账本可以使用区块链技术的特征和功能,包括例如,基于共识的验证、不可变性和加密的链式数据块。区块链可以包括包含有数据的互连块的账本。区块链可以提供增强的安全性,这是因为每个区块可以保存单独的交易和任何区块链可执行文件的结果。每个区块可以链接到前一区块并且可以包括时间戳。由于每个区块可以包括区块链中的前一区块的散列,因此各区块可链接起来。链接的区块形成链,其中对于单链仅允许一个后继区块链接到一个其他前任区块。在从先前统一的区块链建立发散链的情况下,分叉是可能的,尽管通常仅有一个发散链将被维护为共识链。在各种实施例中,区块链可以实施以去中心化方式强化数据工作流的智能合约。该***还可以包括部署在用户装置(例如,计算机、平板电脑、智能电话、物联网装置(“IoT”装置)等)上的应用程序。应用程序可以与区块链进行通信(例如,直接地或经由区块链节点)以传输和检索数据。在各种实施例中,管理组织或联盟可以控制对存储在区块链上的数据的访问。向(一个或多个)管理组织注册可以实现参与到区块链网络中。
通过该***执行的数据传输可以在一段持续时间内传播到区块链网络内所连接的对等方,该持续时间可以由所实施的特定区块链技术的区块创建时间来确定。例如,在基于的网络上,在自写入起的大约13-20秒内,新数据录入可以变得可用。在基于架构1.0的平台上,持续时间由所选的特定共识算法驱动,并且可以在几秒内执行。在这方面,与现有***相比,可以改善在***中传输数据、发起购买和完成购买的传播时间以及速度,并且实施成本和进入市场时间也可以显著减少。该***还提供了提高的安全性,这至少部分地是由于存储在区块链中的数据的不变性,从而降低了篡改各种数据输入和输出的概率。此外,通过在将数据存储于区块链上之前对数据执行加密处理,该***还可以提供购物请求和购买的提高的安全性。因此,通过使用本文所述的***来传输、存储和访问数据,提高了数据的安全性,这降低了计算机或网络受到损害的风险。
在各种实施例中,该***还可以通过提供公用的数据结构来减少数据库同步误差,从而至少部分地改善存储的数据的完整性。此外,通过与有关方面实时(或接近实时)同步数据,该***可以改善数据完整性、数据机密性和数据安全性,这也可以提高业务处理的速度。该***还提供了优于传统数据库(例如,关系数据库、分布式数据库等)的提高的可靠性和容错性,因为每个节点可以利用所存储数据的完整副本进行操作,因此至少部分地减少了由于局部性网络中断和硬件故障而导致的停机时间。因为每个节点向所有连接的对等方广播消息,并且每个区块包括到前一区块的链路,所以该***还可以提高具有可靠和不可靠的对等方的网络环境中的数据传输的可靠性,因此节点可以快速检测丢失的区块并向区块链网络中的其它节点传播对丢失的区块的请求。
参照图1,根据各种实施例描绘了零知识证明支付***100。***100可以包括彼此通信的各种计算装置、软件模块、网络和数据结构。***100还可以考虑到与网络服务、实用计算、普遍和个性化计算、安全和身份解决方案、自主计算、云计算、商品计算、移动性和无线解决方案、开放源码、生物识别、网格计算和/或网点计算(mesh computing)相关联的用途。如本文所述,基于区块链的***100可以通过将区块链用作分布式和防篡改数据存储来简化和自动化支付过程和相关过程。对于使用联合或公共区块链的各种实施例,透明度非常高,这是由于例如使用由去中心化自治组织(DAO)而非特定金融机构所存储的数据来执行验证。
在各种实施例中,***100可以包括客户装置110、商家***120、发行方***130和/或区块链网络140中的一个或多个。如本文进一步讨论的,区块链网络140可以经由一个或多个区块链节点、API等与发行方***130电子通信。如本文进一步讨论的,响应于商家***120调用智能合约(例如,零知识证明智能合约145),区块链网络140还可以由商家***120访问。区块链网络140可以是区块链网络或者本质上是私人的、联盟的和/或公共的对等网络(例如,Bitcoin、架构等)。联盟和私人网络可以提供对区块链内容的改进的控制,并且公共网络可以利用网络的累积计算能力来提高安全性。区块链网络140可以包括彼此电子通信的各种区块链节点,如本文进一步讨论的。
区块链网络140可以包括多个区块链节点,这些区块链节点被配置为维护区块链并准许写入到区块链。区块链可以是以可读方式维护记录并且抵制篡改的分布式账本。该区块链可以基于区块链技术,例如,Open Chain、Chain Open Standard、架构、CORDASawtooth等。区块链可以包括包含有数据的互连区块的账本。每个区块可以链接到前一区块并且可以包括时间戳。当在***100的支持下实施时,区块链可以用作***100中的零知识证明支付的不可变日志。如本文进一步讨论的,可以以区块链的副本或部分副本的形式在各种区块链节点上对区块链进行维护。可以通过在区块链节点之间建立共识来将区块写入到区块链。例如,可以基于工作量证明、权益证明、实用拜占庭容错性、权益委托证明或其它合适的共识算法来建立共识。
在各种实施例中,区块链网络101可以托管和/或实施一个或多个智能合约。智能合约可以控制***100中的端到端数据流,并且可以通过支持各种交易数据的执行和记录来自主地管理支付过程。例如,并且根据各种实施例,区块链网络140可以托管一个或多个零知识证明(ZKP)智能合约145。ZKP智能合约145可以包括可执行文件,其基于由API调用等传递的预定功能参数以预定格式将数据写入区块链,如本文进一步讨论的。ZKP智能合约145可以包括以例如Solidity的编程语言或任何其它合适的智能合约编程语言编写的程序。
ZKP智能合约145可以包括被配置为提供各种零知识证明功能和能力的智能合约,如本文进一步讨论的。例如,并且根据各种实施例,ZKP智能合约145可以被配置为控制零知识证明购买工作流程、将数据写入区块链、将通知传输给一个或多个实体等,如本文进一步讨论的。例如,并且如本文进一步讨论的,ZKP智能合约145可以被配置为在交易期间从商家***120接收数据,执行验证功能以验证与商家交易的客户的身份,基于交易来调整在区块链上维护的客户账户余额和商家账户余额,以及响应于成功调整账户余额而写入和传送成功通知,如本文进一步讨论的。
在各种实施例中,客户115可能期望从商家125购买一个或多个商品或服务。例如,客户115可以去与商家125相关联的实体店购买商品或服务。客户115可以使用客户装置110来完成向商家125的购买。如本文进一步讨论的,客户装置110可以与商家***120交互以传输用于购买的数据。作为另一示例,客户115可以经由网络浏览器、移动应用等从商家125在线购买商品或服务。在这方面,客户115可以与客户装置110交互以完成购买。客户装置110可以与商家***120进行电子通信,以检索产品或服务数据并完成购买,如本文进一步讨论的。
在各种实施例中,客户装置110可以与商家***120和/或发行方***130进行电子通信。客户装置110可以包括能够传输、接收和/或存储数据的任何合适的硬件、软件和/或数据库或存储器组件。客户装置110可以包括一个或多个计算装置,例如计算机或处理器,或者一组计算机和/或处理器,尽管也可以使用其它类型的计算单元或***。例如,客户装置110可以包括处理器和能够实施逻辑的一个或多个有形非暂时性存储器。处理器可以被配置为响应于指令的执行来实施各种逻辑操作,这些指令例如存储在非暂时性有形计算机可读介质上的指令,如本文进一步讨论的。客户装置110可以包括膝上型计算机、平板电脑、手持式计算机、个人数字助理、蜂窝电话、智能电话(例如,等)、IoT装置等等。客户装置110可以包括操作***,例如移动操作***、操作***、操作***、操作***等。客户装置110还可以包括安装在客户装置110上并且被配置为允许客户装置110访问商家***120和/或发行方***130以及/或者与之进行交互的软件组件。例如,客户装置110可以包括网络浏览器(例如,MICROSOFT INTERNETGOOGLE等)、应用程序、微应用程序或移动应用程序等,它们被配置为允许客户装置110访问商家***120和/或发行方***130并与之交互。
在各种实施例中,商家***120可以与客户装置110和/或发行方***130进行电子通信。在各种实施例中,商家***120还可以被配置为经由区块链网络140调用ZKP智能合约145,以完成零知识证明购买,如本文进一步讨论的。商家***120可以与一个或多个商家125实体店、在线商店等相关联。商家***120可以包括硬件、软件和/或数据库组件的任意合适组合。例如,商家***120可以包括一个或多个网络环境、服务器、基于计算机的***、处理器、数据库、数据中心等。商家***120可以包括被配置为使客户115能够经由客户装置110访问商家***120的图形用户界面(“GUI”)、软件模块、逻辑引擎、各种数据库等。在各种实施例中,商家***120可以是基于计算机的,并且可以包括处理器、有形非暂时性计算机可读存储器和/或网络接口,连同其它合适的***软件和硬件组件。存储在有形非暂时性存储器上的指令可以允许商家***120执行各种操作,如本文所述。
在各种实施例中,商家***120还可以包括销售点终端,其被配置为进行交易的机构。例如,销售点可以包括收银台、***和/或借记卡读取器、EMV卡读取器等。销售点可以包括近场通信(NFC)终端,或者能够进行数据的无线传输的任何其它合适的终端(例如,Wi-Fi等)。NFC终端可以允许从NFC使能用户装置(例如用户装置110)传输信息。
在各种实施例中,发行方***130可以与客户装置110、商家***120和/或区块链网络140进行电子通信。发行方***130可以包括硬件、软件和/或数据库组件的任何合适组合。例如,发行方***130可以包括一个或多个网络环境、服务器、基于计算机的***、处理器、数据库等。发行方***130可以包括形式为计算机或处理器或者一组计算机/处理器的至少一个计算装置,尽管可以使用其它类型的计算单元或***,例如,服务器、网络服务器、连接池服务器等。发行方***130还可以包括一个或多个数据中心、云存储装置等,并且可以包括被配置为执行本文讨论的各种操作的软件,诸如API。发行方***130还可以包括一个或多个区块链节点、应用编程接口(API)、软件开发工具包(SDK)等,它们被配置为允许发行方***130与区块链网络140交互、检索数据并将数据写入区块链、以及部署一个或多个ZKP智能合约145。在各种实施例中,发行方***130可以包括一个或多个处理器和/或一个或多个有形非暂时性存储器,并且能够实施逻辑。处理器可以被配置为响应于指令的执行来实施各种逻辑操作,指令例如存储在非暂时性有形计算机可读介质上的指令,如本文进一步讨论的。
在各种实施例中,发行方***130包括传统支付网络或交易网络或与传统支付网络或交易网络交互,以促进购买和支付、授权交易、结算交易等。例如,发行方***130可以表示现有的专有网络,其目前供应***、借记卡和/或其它类型的交易账户或交易工具的交易。发行方***130可以是免受窃听的封闭网络。在各种实施例中,发行方***130可以包括示例***易网络,诸如AMERICAN Cartes Bancaires、私人网络(例如,百货商店网络)和/或任何其它支付网络、交易网络、发行方***等。发行方***130可以包括与金融和/或交易***和过程相关的***和数据库,例如,一个或多个授权引擎、认证引擎和数据库、结算引擎和数据库、应收账款***和数据库、应付账款***和数据库等。在各种实施例中,发行方***130还可以包括能够授权交易的交易账户发行方的信用授权***(“CAS”),如本文进一步讨论的。发行方***130可以被配置为授权和结算交易,并且维护交易帐户成员数据库、应收帐款数据库、应付帐款数据库等。
尽管本公开参照了发行方***130,但是应该理解,本公开的原理可以应用于具有任何合适数量的发行方***的零知识证明支付***。例如,***100可以包括一个或多个发行方***130,每个发行方***与不同的发行方***或网络相对应或相关联。在各种实施例中,每个发行方***还可以包括相关联的区块链网络或者与相关联的区块链网络交互。
如本文所使用的,“传输”可以包括将电子数据的至少一部分从一个***100组件发送到另一***组件。另外地,如本文所使用的,“数据”、“信息”等可以包括涵盖处于数字或任何其它形式的信息,诸如命令、查询、文件、消息、用于存储的数据等。
如本文所使用的,“电子通信”可以包括能够使***100组件传输和接收数据的物理耦接和/或非物理耦接。例如,“电子通信”可以指有线或无线协议,诸如CAN总线协议、以太网物理层协议(例如,使用10BASE-T、100BASE-T、1000BASE-T等的那些以太网物理层协议)、IEEE 1394接口(例如,FireWire)、综合业务数字网络(ISDN)、数字用户线(DSL)、802.11a/b/g/n/ac信号(例如,Wi-Fi)、使用短波长UHF无线电波并且至少部分地由IEEE802.15.1定义的无线通信协议(例如,由蓝牙特别兴趣小组维护的协议)、至少部分地由IEEE 802.15.4定义的无线通信协议(例如,由ZigBee联盟维护的协议)、蜂窝协议、红外协议、光学协议、或能够经由有线或无线连接传输信息的任何其它协议。
一个或多个***100组件可以经由网络进行电子通信。如本文所使用的,术语“网络”还可以包括并入了硬件和/或软件组件的任何云、云计算***或电子通信***或方法。节点之间的通信可以通过任何适合的通信通道来实现,例如,电话网络、外联网、内联网、互联网、交互点装置(个人数字助理、蜂窝电话、电话亭、平板电脑等)、在线通信、卫星通信、离线通信、无线通信、应答器通信、局域网(LAN)、广域网(WAN)、虚拟专用网络(VPN)、联网或链接装置、键盘、鼠标和/或任何适合的通信或数据输入形式。此外,尽管本文频繁地将***描述为利用TCP/IP通信协议来实施,但***也可以使用互联网分组交换(IPX)、程序、IP-6、NetBIOS、OSI、任何隧道协议(例如,IPsec、SSH等)或任何数量的现有或未来协议来实施。如果网络在本质上为诸如互联网的公共网络,则假定网络不安全并且对窃听者开放可能有利的。与结合互联网使用的协议、标准和应用软件相关的特定信息通常是本领域技术人员已知的,并且因此不需要在本文中详述。
“云”或“云计算”包括用于实现对可配置计算资源(例如,网络、服务器、存储装置、应用程序和服务)的共享池进行方便、按需的网络访问的模型,这些可配置计算资源可以在最不费力的管理或与服务提供商的最少交互的情况下迅速提供并释放。云计算可以包括与位置无关的计算,由此共享服务器按需向计算机和其它装置提供资源、软件和数据。关于云计算的更多信息参见NIST(国家标准技术局)对云计算的定义。
各种***组件可以独立地、单独地或集体地经由数据链路而适合地耦接到网络,该数据链路包括例如通过本地环路到互联网服务提供商(ISP)的连接,因为它通常结合标准调制解调器通信、电缆调制解调器、DISHISDN、DSL或各种无线通信方法来使用。应该注意,网络可以被实施为其它类型的网络,诸如交互式电视(ITV)网络。此外,该***考虑到通过具有本文所述的类似功能的任何网络进行的任何商品、服务或信息的使用、销售或分配。
网络可能是不安全的。因此,通过网络的通信可以利用数据加密。加密可以通过本领域现在可用或可能变得可用的任何技术来执行,例如,Twofish、RSA、El Gamal、Schorr签名、DSA、PGP、PKI、GPG(GnuPG)、HPE格式保留加密(FPE)、电压、三元组DES、Blowfish、AES、MD5、HMAC、IDEA、RC6以及对称和非对称的密码***。网络通信还可以并入SHA系列密码方法、椭圆曲线密码(例如,ECC、ECDH、ECDSA等)和/或其它正在开发的后量子密码算法。
为了简洁起见,本文中可能没有详细描述***100的常规数据联网、应用程序开发和其它功能方面。此外,本文包含的各个附图中示出的连接线旨在表示各个元素之间的示例性功能关系和/或电子通信。应该注意,在实际***中可能存在许多替代或额外的功能关系或电子通信。
现参照图2-5,所描绘的处理流程和屏幕截图仅仅是实施例,并不旨在限制本公开的范围。例如,在任何方法或过程描述中叙述的步骤可以以任何顺序执行,而不限于所呈现的顺序。应该理解,以下描述不仅对图2-5中描绘的步骤和用户界面元素进行适当的参照,而且对如以上参照图1描述的各种***组件进行适当的参照。首先应该理解,尽管在附图中示出并在下面描述示例性实施例,但本公开的原理可使用任何数量的技术来实施,无论其当前是否已知。本公开决不应限于附图中示出和以下描述的示例性实施和技术。除非另外具体指出,否则附图中描绘的条目不一定按比例绘制。
具体参照图2,公开了根据各种实施例的用于初始化零知识证明算法的过程201。发行方***130可以初始化零知识证明算法,以允许客户和商家参与零知识证明支付。
发行方***130检索零知识证明算法(步骤202)。零知识证明算法可以包括使商家能够确认客户持有他们的个人信息(例如,交易账户数据、客户数据等)而不需要每个客户在交易期间提供任何个人信息的任何合适的算法。例如,零知识证明算法可以是zk-SNARK,或任何其它类似的零知识证明算法。零知识证明算法可以包括一个或多个功能、程序或算法,例如密钥生成器功能、证明功能和验证功能。如本文进一步讨论的,密钥生成功能可以被配置为生成证明密钥pk和验证密钥vk。如本文进一步讨论的,证明功能可以被配置为生成证明(例如,证明blob(二进制大对象))。如本文进一步讨论的,验证功能可以被配置为验证在零知识证明支付过程期间授权客户的证明。可以使用或任何其它合适的编程语言来编写各种功能。
发行方***130使用来自零知识证明算法的密钥生成器功能来生成证明密钥pk和验证密钥vk(步骤204)。例如,发行方***130可以生成随机数(例如,秘密参数兰布达(lambda))并且将随机数输入到密钥生成器功能中以生成证明密钥pk和验证密钥vk。在各种实施例中,响应于成功地生成密钥,发行方***130可以删除随机数以增大所生成的密钥的安全性。在各种实施例中,发行方***130可以基于不同的支付类型(例如,***、借记卡、礼品卡、忠诚点、第三方支付提供者等)来生成不同的密钥。发行方***130公布(publish)证明密钥pk和验证密钥vk(步骤206)。
在各种实施例中,发行方***130可以通过使密钥在公共可访问的网络服务器、网站等上可用来公布密钥。在各种实施例中,发行方***130可以通过将密钥传输到注册零知识证明支付的商家和用户来公布密钥(例如,将验证密钥vk传输到商家***120并且将证明密钥pk传输到客户装置110)。
在各种实施例中,发行方***130可以以任何期望的间隔(例如,每周、每月等)生成新密钥,以增大在零知识证明支付过程期间密钥的安全性。
发行方***130将零知识证明(ZKP)智能合约145部署(步骤208)到区块链网络140。ZKP智能合约145可以由发行方***130生成为包括来自零知识证明算法的验证功能。发行方***130(经由区块链节点、API等)可以通过将区块链写入传播到区块链网络140中的至少第二区块链节点来将ZKP智能合约145部署到区块链网络140。区块链节点可以使用任何合适的技术和共识算法来同意写入。
具体参照图3,公开了根据各种实施例的用于零知识证明支付的商家注册的过程301。商家***120经由网络浏览器、移动应用程序等访问发行方***130(步骤302)。可以使用任何合适的访问控制来控制对发行方***130的访问,例如商家凭证(例如,用户名或商家标识符、密码、生物识别输入等)。在各种实施例中,作为初始商家注册的一部分商家***120还可以访问发行方***130,并且可以接收商家凭证以供未来访问。商家***120向发行方***130请求注册零知识证明支付(步骤304)。发行方***130验证商家125身份(步骤306)。例如,可以提示商家***120提供商家标识信息,诸如商家ID、商家地址、商家名称等。发行方***130可以通过将所提供的商家身份信息与所存储的商家数据进行比较来验证商家125身份。
在各种实施例中,发行方***130生成商家散列(步骤308)。可以生成商家散列以用作商家125(和商家***120)的唯一标识符。发行方***130可以基于一个或多个商家数据元素生成商家散列。例如,商家散列可以包括商家业务名称(merchant business name)、商家所有者名称、商家ID、商家一次性随机数等中的一个或多个的单向加密散列。商家一次性随机数可以包括一个或多个字母数字字符并且可以被随机地生成为对于商家125来说是唯一的(例如,包括各种任意字母数字字符的加密一次性随机数,诸如“c9La5”)。发行方***130可以使用任何合适的散列算法(诸如来自SHA-2系列密码方法(例如,SHA 256、SHA512等)的加密算法等)来生成商家散列。发行方***130还可以使用密钥扩展技术(keystretching technique)和/或任何其它技术来生成商家散列,以增大商家散列的安全性,以免受到强力程序攻击(brute force attack)、彩虹表攻击等。在各种实施例中,商家散列还可以被生成为包括随机生成的字符串、区块链地址和/或任何其它合适的唯一标识符。
在各种实施例中,发行方***130通过将商家散列传递到ZKP智能合约145来调用ZKP智能合约145(步骤310)。响应于被调用,ZKP智能合约145将商家散列写入区块链,并将商家散列与区块链上的商家账户余额条目相关联。ZKP智能合约145可以将区块链写入传播到区块链网络140中的至少第二区块链节点。区块链节点可以使用任何合适的技术和共识算法来同意写入。响应于完成区块链写入,ZKP智能合约145可以向发行方***130返回写入通知。
发行方***130授权商家***120调用ZKP智能合约145(步骤312)。例如,其中,区块链是许可的区块链,发行方***130可以将商家***120添加到许可的区块链网络。在各种实施例中,发行方***可以将唯一标识符和/或数字证书添加到区块链配置,以指定商家***120被授权调用ZKP智能合约145。在这方面,由商家***对ZKP智能合约145的调用可以包括特定商家***的签名。发行方***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(和/或客户装置10)的唯一标识符。发行方***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中的至少第二区块链节点。区块链节点可以使用任何合适的技术和共识算法来同意写入。响应于完成区块链写入,ZKP智能合约145可以向发行方***130返回写入通知。
发行方***130将客户散列和客户一次性随机数传输到客户装置110(步骤412)。客户装置110可以将客户散列和客户一次性随机数本地存储在安全装置储存库中。客户装置110从发行方***130部署的位置检索证明密钥pk(步骤414)。例如,根据各种实施例,证明密钥pk可以被集成到客户115用来从商家125购买商品或服务的移动应用程序、网站等中。在各种实施例中,发行方***130还可以将证明功能传输到客户装置110,和/或使客户装置110中的软件能够在零知识证明支付过程期间执行证明功能。在各种实施例中,客户装置110可以下载和/或安装本机应用程序,或者可以使用基于浏览器的应用程序,其被配置为在零知识证明支付过程期间执行证明功能。
具体参照图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)文件。客户装置110可以将证明密钥pk、客户散列和购买散列输入到证明功能中以生成证明。客户装置110将证明和客户散列传输到商家***120(步骤510)。
响应于接收到证明和客户散列,商家***120通过传递证明、客户散列、购买金额、验证密钥vk和商家散列来调用ZKP智能合约145(步骤512)。响应于被调用,ZKP智能合约145执行来自零知识证明算法的验证功能(步骤514)。ZKP智能合约145可以通过输入验证密钥vk、客户散列和证明来执行验证功能。响应于被执行,验证功能可以返回指示验证是否通过验证的布尔值。例如,布尔值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中的至少第二区块链节点。区块链节点可以使用任何合适的技术和共识算法来同意写入。响应于完成区块链写入,ZKP智能合约145将成功通知返回给商家***120(步骤524)。响应于接收到成功通知,商家125完成与客户115的交易(步骤526)。例如,商家125可以通过向客户115提供商品和/或服务来完成交易。
在各种实施例中,基于完成的零知识证明支付过程向商家125的支付可以由发行方***130在过程完成之后的任何合适的时间(例如,实时、接近实时、批处理等)完成。例如,发行方***130可以确定商家账户余额(例如,通过基于商家散列查询区块链)并且可以根据典型的结算过程将等于商家账户余额的资金传输到商家125。
提供了***、方法和计算机程序产品。在本文的详细描述中,对“各种实施例”、“一个实施例”、“实施例”、“示例实施例”等的提及指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可能不一定包括该特定特征、结构或特性。此外,这样的短语不一定是指相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,认为结合无论是否明确描述的其它实施例而影响这种特征、结构或特性是在本领域技术人员的知识范围内的。在阅读了本说明书之后,如何在替代实施例中实施本公开,对于相关领域的技术人员而言将是显而易见的。
如本文中所使用的,“满足(satisfy)”、“符合(meet)”、“匹配(match)”、“与...相关联(associated with)”或类似短语可以包括完全匹配、部分匹配、符合特定标准、与数据的子集匹配、相关性、满足特定标准、对应性、关联性、算法关系等。类似地,如本文中所使用的,“认证(authenticate)”或类似术语可以包括精确认证、部分认证、认证数据的子集、对应性、满足特定标准、关联性、算法关系等。
类似于“关联(associate)”和/或“关联(associating)”的术语和短语可以包括标记、标识、相关、使用查找表、或用于指示或创建元素(例如,(i)交易账户和(ii)项目(item)(例如,特价优惠、奖励点、折扣)和/或数字通道)之间的关系的任何其它方法或***。此外,响应于任何合适的动作、事件或时间段,关联可以出现在任何点。关联可以以预定的间隔、周期性地、随机地、一次、多于一次或响应于合适的请求或动作而出现。任何信息都可以经由软件使能的链路来分配和/或访问,其中,链路可以经由电子邮件、文本、发帖(post)、社交网络输入和/或本领域已知的任何其它方法来发送。
类似于“项目”的短语和术语可以包括任何商品、服务、信息、体验、娱乐、数据、特价优惠、折扣、返利、积分、虚拟货币、内容、访问、租赁、租用、捐赠、账户、信用、借记、利益、权利、奖励、点数、优惠券、积分、货币等同物、任何价值、价值极低或没有价值的东西、货币价值、非货币价值等。此外,本文讨论的“交易”或“购买”可以与项目相关联。此外,“奖励”可以是项目。
短语“客户”、“用户”、“交易账户持有者”、“交易账户受益人”、“交易账户附属账户”、“消费者”、“客户”、“卡成员”等应包括与交易账户相关联的任何人、实体、企业、政府组织、业务、软件、硬件或机器,其购买由一个或多个商家使用交易账户提供的商家出售物,和/或其被合法地指定用于在交易账户上执行交易,而不管实体卡是否与交易账户相关联。例如,用户可以包括交易账户所有者、交易账户用户、账户附属、子账户用户、从属账户用户、账户的受益人、账户的保管人和/或附属于或关联于交易账户的任何其它个人或实体。
本文使用的类似于“交易账户”、“账号”、“账户代码”或“消费者账户”的短语和术语可以包括适当地配置为允许消费者访问***、与***交互或通信的任何装置、代码(例如,授权/访问代码、个人识别号(“PIN”)、互联网代码、其它识别代码等中的一个或多个)、数字、字母、符号、数字证书、智能芯片、数字信号、模拟信号、生物识别或其它标识符/标记。交易账号可以可选地位于奖励账户、赊账账户、信用账户、借记账户、预付账户、电话卡、凸形卡、智能卡、磁条卡、条码卡、应答器、射频卡或相关联账户上或与之相关联。
交易账号可以在能够从其自身向第二装置传输或下载数据的任何形式的塑料、电子、磁、射频、无线、音频和/或光学装置中被分布和存储。交易账号可以是例如十六位数字账号,尽管每个交易账户发行方具有其自己的编号***,诸如由AMERICAN公司使用的十五位数字编号***。在这方面,交易账户发行方的交易账号中的每一个均可以符合该交易账户发行方的标准化格式,使得使用十五位数字格式的交易账户发行方将大体上使用如数字“0000 000000 00000”所表示的三组间隔开的数字。前五至七个数字可以被保留用于处理目的并且标识交易账户发行方、账户类型等。在该示例中,最后一个数字(第十五个数字)用于对十五位数字进行总和校验,并且中间的第八至第十一个数字用于唯一地标识用户。商家标识符可以是例如出于账户承兑、账户对账、报告等目的而标识特定商家的任何数字或字母数字字符。
类似于“金融机构”、“发行方***”或“交易账户发行方”的短语和术语可以包括提供交易账户服务的任何实体。尽管通常称为“金融机构”,但金融机构可以表示任何类型的银行、出借方或其它类型的账户发行机构,诸如***公司、卡担保公司或与金融机构签订合约的第三方发行方。还应该注意,在交易的一些阶段中可能涉及其它参与者,诸如中间结算机构。
类似于“商家”、“业务”、“卖方”或“供应商”的短语和术语可以彼此互换地使用,并且应该意指作为商品或服务的分配链中的提供商、经纪人和/或任何其它实体的任何人、实体、销售商***、软件和/或硬件。例如,商家可以是杂货店、零售店、旅行社、服务提供商、在线商家等。商家可以请求对向交易账户发行方持有交易账户的用户出售的商品或服务进行支付。
在各种实施例中,客户装置110可以与一个或多个智能数字助理技术集成。例如,示例性智能数字助理技术可以包括由公司开发的***、由Alphabet公司开发的GOOGLE***、公司的***和/或类似的数字助理技术。***、GOOGLE***和***中的每一个可以提供基于云的语音激活服务,其可以在任务、娱乐、常规信息等方面提供帮助。所有装置,诸如AMAZONAMAZONAMAZON和AMAZONTV都可以访问***。***、GOOGLE***和***可以经由其语音激活技术接收语音命令、激活其它功能、控制智能装置和/或收集信息。例如,智能数字助理技术可以用于与音乐、电子邮件、文本、电话呼叫、问题回答、家居改善信息、智能家居通信/激活、游戏、购物、制作待办事项清单、设置警报、串流式播客、播放有声读物以及提供天气、交通和诸如新闻的其它实时信息进行交互。GOOGLE和***还可以允许用户访问关于跨所有数字助理使能的装置链接到在线账户的合格交易账户的信息。
本文讨论的任何通信、传输和/或通道可以包括用于传递内容(例如,数据、信息、元数据等)的任何***或方法和/或内容本身。内容可以以任何形式或介质呈现,并且在各种实施例中,内容可以电子地传递和/或能够电子地呈现。例如,通道可以包括网站或装置(例如,FACEBOOK、APPLE )、统一资源定位符(“URL”)、文档(例如,文档、文档、pdf文档等)、“电子书”、“电子杂志”、应用程序或微应用程序(如本文所述)、SMS或其它类型的文本消息、电子邮件、消息、推送、MMS和/或其它类型的通信技术。在各种实施例中,通道可以由数据伙伴托管或提供。在各种实施例中,分配通道可以包括商家网站、社交媒体网站、附属或伙伴网站、外部供应商、移动装置通信、社交媒体网络和/或基于位置的服务中的至少一个。分配通道可以包括商家网站、社交媒体站点、附属或伙伴网站、外部供应商和移动装置通信中的至少一个。社交媒体站点的示例包括 等。附属或伙伴网站的示例包括AMERICAN等。此外,移动装置通信的示例包括发短信、电子邮件和用于智能电话的移动应用程序。
在各种实施例中,使用本文所述的各种特定机器来实施本文所述的方法。如本领域技术人员将立即理解的,可以使用以下特定机器以及以后开发的那些机器以任何合适的组合来实施本文所述的方法。此外,如从本公开中明确的,本文所述的方法可以得到某些物品的各种变换。
为了简洁起见,本文中可能没有详细描述***的常规数据联网、应用程序开发和其它功能方面(以及***的单个操作组件的组件)。此外,本文包含的各个附图中示出的连接线旨在表示在各个元素之间的示例性功能关系和/或物理耦接。应该注意,在实际***中可能存在许多替代或附加的功能关系或物理连接。
本文讨论的各种***组件可以包括以下中的一个或多个:主机服务器或其它计算***,其包括用于处理数字数据的处理器;存储器,其耦接到处理器以用于存储数字数据;输入数字转换器(digitizer),其耦接到处理器以用于输入数字数据;应用程序,其被存储在存储器中并可由处理器访问,以用于指导处理器对数字数据的处理;显示装置,其耦接到处理器和存储器,以用于显示从由处理器处理的数字数据得出的信息;以及多个数据库。本文使用的各种数据库可以包括:客户端数据;商家数据;金融机构数据;和/或在***操作中有用的类似数据。如本领域技术人员将理解的,用户计算机可以包括操作***(例如,OS2、 MacOS等)以及通常与计算机相关联的各种常规支持软件和驱动器。
本***或其(一个或多个)任何部分或功能可以使用硬件、软件或其组合来实施,并且可以在一个或多个计算机***或其它处理***中实施。然而,通常在诸如匹配或选择的术语中提及由实施例执行的操纵,这些术语通常与由人类操作者执行的智力操作(mental operation)相关联。在本文所述的任何操作中,大多数情况下,人类操作者的这种能力不是必需的或期望的。相反地,操作可以是机器操作,或者任何操作都可以通过人工智能(AI)或机器学习来进行或增强。用于执行各种实施例的有用机器包括通用数字计算机或类似装置。
实际上,并且根据各种实施例,实施例针对能够执行本文所述的功能的一个或多个计算机***。计算机***包括一个或多个处理器,诸如处理器。处理器连接到通信基础设施(例如,通信总线、交叉条或网络)。根据该示例性计算机***描述了各种软件实施例。在阅读本说明书之后,对于相关领域的技术人员来说,如何使用其它计算机***和/或架构来实施各种实施例将变得显而易见。计算机***可以包括显示接口,该显示接口转发来自通信基础设施(或来自未示出的帧缓冲器)的图形、文本和其它数据,以用于在显示单元上显示。
计算机***还包括主存储器,例如随机存取存储器(RAM),并且还可以包括次级存储器或存储器中(非旋转)硬盘驱动器。次级存储器可以包括例如硬盘驱动器和/或可移动存储驱动器,表示软盘驱动器、磁带驱动器、光盘驱动器等。可移动存储驱动器以众所周知的方式从可移动存储单元读取和/或向可移动存储单元写入。可移动存储单元表示由可移动存储驱动器读取和写入的软盘、磁带、光盘等。如将理解的,可移动存储单元包括其中存储有计算机软件和/或数据的计算机可用存储介质。
在各种实施例中,次级存储器可以包括用于允许将计算机程序或其它指令加载到计算机***中的其它类似装置。这样的装置可以包括例如可移动存储单元和接口。这样的示例可以包括程序盒式存储器和盒式接口(例如在视频游戏装置中找到的)、可动除存储器芯片(例如可擦除可编程只读存储器(EPROM)或可编程只读存储器(PROM))和相关插槽、以及允许将软件和数据从可移动存储单元传送到计算机***的其它可移动存储单元和接口。
计算机***还可以包括通信接口。通信接口允许软件和数据在计算机***与外部装置之间传输。通信接口的示例可以包括调制解调器、网络接口(诸如以太网卡)、通信端口、个人计算机存储卡国际协会(PCMCIA)插槽和卡等。经由通信接口传输的软件和数据文件具有信号的形式,该信号可以是电子的、电磁的、光学的或能够由通信接口接收的其它信号。经由通信路径(例如,信道)将这些信号提供给通信接口。该信道承载信号,并且可以使用电线、电缆、光纤、电话线、蜂窝链路、射频(RF)链路、无线和其它通信信道来实施。
术语“计算机程序介质”和“计算机可用介质”和“计算机可读介质”大体上用于指代诸如可移动存储驱动器和安装在硬盘驱动器中的硬盘之类的介质。这些计算机程序产品向计算机***提供软件。
计算机程序(也称为计算机控制逻辑)被存储在主存储器和/或次级存储器中。计算机程序也可以经由通信接口来接收。当执行这样的计算机程序时,其使得计算机***能够执行如本文所讨论的特征。特别地,当执行计算机程序时,其使得处理器能够执行各种实施例的特征。因此,这样的计算机程序代表计算机***的控制器。
在各种实施例中,可以使用可移动存储驱动器、硬盘驱动器或通信接口将软件存储在计算机程序产品中并加载到计算机***中。控制逻辑(软件)在由处理器执行时使处理器执行如本文所述的各种实施例的功能。在各种实施例中,硬件组件诸如专用集成电路(ASIC)。实施硬件状态机器以便执行本文所述的功能对于相关领域的技术人员来说将是显而易见的。
在各种实施例中,服务器可以包括应用服务器(例如,POSTGRES PLUSADVANCED(PPAS)等)。在各种实施例中,服务器可以包括网络服务器(例如,IIS、GWS、SUNSYSTEM WEB SERVER、在或上运行的虚拟机)。
网络客户端包括经由任何网络(例如,本文所讨论的那些网络)通信的任何装置(例如,个人计算机)。这样的浏览器应用程序包括安装在计算单元或***内的互联网浏览软件,以进行在线交易和/或通信。这些计算单元或***可以采用计算机或计算机组的形式,尽管可以使用其它类型的计算单元或***,包括膝上型计算机、笔记本电脑、平板电脑、手持式计算机、个人数字助理、机顶盒、工作站、计算机服务器、大型机、迷你计算机、PC服务器、普及型计算机、网络计算机组、个人计算机(诸如和)、电话亭、终端、销售点(POS)装置和/或终端、电视或能够通过网络接收数据的任何其它装置。网络客户端可以运行INTERNET Safari或可以用于浏览互联网的无数软件包中的任何其它软件包。
如本领域技术人员将理解的,网络客户端可以与应用服务器直接联系或不直接联系。例如,网络客户端可以通过另一服务器和/或硬件组件访问应用服务器的服务,该另一服务器和/或硬件组件可以具有到互联网服务器的直接或间接连接。例如,网络客户端可以经由负载平衡器与应用服务器进行通信。在各种实施例中,访问是通过网络或互联网通过可商购的网络浏览器软件包进行的。
如本领域技术人员将理解的,网络客户端包括操作***(例如,OS、OS2、OS、OS、MacOS等)以及通常与计算机关联的各种常规支持软件和驱动器。网络客户端可以包括任何合适的个人计算机、网络计算机、工作站、个人数字助理、蜂窝电话、智能电话、迷你计算机以及大型机等。网络客户端可以处于访问网络的家庭或商业环境中。在各种实施例中,访问是通过网络或互联网经过可商购的网络浏览器软件包进行的。网络客户端可以实施安全协议,诸如安全套接字层(Secure SocketsLayer,SSL)和传输层安全(Transport Layer Security,TLS)。网络客户端可以实施若干应用层协议,包括http、https、ftp和sftp。
在各种实施例中,***100的组件、模块和/或引擎可以被实施为微型应用程序(micro-application)或微应用程序(micro-app)。微应用程序通常部署在移动操作***的背景下,该移动操作***包括例如移动操作***、操作***、操作***等。微应用程序可以被配置为经由管理各种操作***和硬件资源的操作的一组预定规则来利用较大操作***和相关联的硬件的资源。例如,在微应用程序期望与除移动装置或移动操作***之外的装置或网络通信的情况下,微应用程序可以在移动操作***的预定规则下利用操作***和相关联的装置硬件的通信协议。此外,在微应用程序期望来自用户的输入时,微应用程序可以被配置为从操作***请求响应,该操作***监测各种硬件组件并且随后将检测到的输入从硬件传输到微应用程序。
如本文所使用的,“标识符”可以是唯一地标识项目的任何合适的标识符。例如,标识符可以是全局唯一标识符(“GUID”)。GUID可以是在通用唯一标识符标准下创建和/或实施的标识符。此外,GUID可以被存储为128比特值,其可以被显示为32个十六进制数字。标识符还可以包括主设备号和次设备号。主设备号和次设备号可以分别是16比特整数。
本文讨论的任何数据库可以包括关系数据库、分级数据库、图形数据库、区块链数据库或面向对象的结构数据库和/或任何其它数据库配置。任何数据库还可以包括平面文件结构,其中,数据可以以行和列的形式存储在单个文件中,而没有用于索引的结构并且在记录之间没有结构关系。例如,平面文件结构可以包括定界的文本文件、CSV(逗号分隔值)文件和/或任何其它合适的平面文件结构。可以用于实施数据库的常用数据库产品包括由(纽约州阿蒙克市)提供的DB2,可从公司(加利福尼亚州红木海岸)获得的各种数据库产品,由公司(华盛顿州雷德蒙德市)提供的MICROSOFT或MICROSOFT SQL由MySQL AB(瑞典乌普萨拉)提供的MYSQL,由提供的APACHEHBase,MapR-DB、或任何其它合适的数据库产品。此外,数据库可以以任何合适的方式组织,例如,作为数据表或查找表。每个记录可以是单个文件、一系列文件、一系列链接的数据字段或任何其它数据结构。
某些数据的关联可以通过任何期望的数据关联技术(诸如本领域中已知或实践的那些数据关联技术)来实现。例如,关联可以人工或自动实现。自动关联技术可以包括例如数据库搜索、数据库合并、GREP、AGREP、SQL、使用表中的关键字段来加速搜索、顺序搜索所有表和文件、根据已知的顺序对文件中的记录进行排序以简化查找等。关联步骤可以通过数据库合并功能来完成,例如,使用预选数据库或数据扇区中的“关键字段”。各种数据库调整步骤都被考虑以优化数据库性能。例如,频繁使用的文件(诸如索引)可以被放置在单独的文件***上以降低输入/输出(“I/O”)瓶颈。
更具体地,“关键字段”根据由关键字段定义的对象的高级类别来对数据库进行分区。例如,可以将某些类型的数据指定为多个相关数据表中的关键字段,并且随后可以基于关键字段中的数据类型来链接数据表。与每个链接的数据表中的关键字段相对应的数据优选地是相同的或相同类型的。然而,例如,也可以通过使用AGREP来链接关键字段中具有类似但不相同的数据的数据表。根据一个实施例,可以利用任何合适的数据存储技术来存储不具有标准格式的数据。数据集可以使用任何合适的技术来存储,包括例如使用ISO/IEC7816-4文件结构存储各个文件;实现域,由此选择专用文件,其暴露包含一个或多个数据集的一个或多个基本文件;使用数据集,这些数据集使用分级文件归档***存储在单个文件中;作为记录存储在单个文件中的数据集(包括压缩、SQL可访问的、经由一个或多个密钥散列处理的、数字的、通过第一元组按字母顺序的等);二进制大对象(BLOB);作为使用ISO/IEC 7816-6数据元素编码的未分组的数据元素存储的;作为使用如ISO/IEC 8824和8825中的ISO/IEC抽象语法标记(ASN.1)编码的未分组数据元素存储的;和/或可以包括分形压缩方法、图像压缩方法等的其它专有技术。
在各种实施例中,通过将信息存储为BLOB来促进以不同格式存储各种信息的能力。因此,任何二进制信息可以存储在与数据集相关联的存储空间中。如上所述,二进制信息可以与***相关联地存储或者在***外部但附属于***。BLOB方法可以使用固定存储分配、循环队列技术或关于存储器管理的最佳实践(例如,分页存储器、最近最少使用等)而经由固定存储器偏移将数据集存储为未分组数据元素(其被格式化为二进制块)。通过使用BLOB方法,存储具有不同格式的各种数据集的能力有助于数据集的多个且不相关的所有者将数据存储在数据库中或与***相关联。例如,可以存储的第一数据集可以由第一方提供,可以存储的第二数据集可以由不相关的第二方提供,并且可以存储的第三数据集可以由与第一方和第二方不相关的第三方提供。这三个示例性数据集中的每一个可以包含使用不同的数据存储格式和/或技术存储的不同信息。此外,每个数据集可以包含也可与其它子集不同的数据子集。
如上所述,在各种实施例中,可以不考虑通用格式来存储数据。然而,在被提供以用于操纵数据库或***中的数据时,数据集(例如,BLOB)可以以标准方式来注释。注释可以包括短报头(header)、尾标(trailer)或与被配置为传达在管理各种数据集中有用的信息的每个数据集相关的其它适当的指示符。例如,注释在本文中可以被称为“条件报头”、“报头”、“尾标”或“状态”,并且可以包括对数据集的状态的指示或者可以包括与数据的特定发行方或所有者相关的标识符。在一个示例中,每个数据集BLOB的前三个字节可以被配置或可配置为指示该特定数据集的状态;例如,LOADED(已加载)、INITIALIZED(已初始化)、READY(准备就绪)、BLOCKED(已阻止)、REMOVABLE(可移除)或DELETED(已删除)。后续的数据字节可以用于指示例如发行方的身份、用户、交易/成员账户标识符等。这些条件注释的每一个在本文中进一步讨论。
数据集注释还可以用于其它类型的状态信息以及各种其它目的。例如,数据集注释可以包括建立访问级别的安全信息。例如,访问级别可以被配置为仅允许某些个人、员工级别、公司或其它实体访问数据集,或者允许基于交易、商家、发行方、用户等访问特定数据集。此外,安全信息可以仅限制/仅允许某些动作,诸如访问、修改和/或删除数据集。在一个示例中,数据集注释指示仅允许数据集所有者或用户删除数据集,可以允许各种标识的用户访问数据集以读取,而完全排除其它人访问数据集。然而,也可以使用其它访问限制参数,以允许各种实体以各种允许级别适当地访问数据集。
包括报头或尾标的数据可以由独立交互装置接收,该独立交互装置被配置为根据报头或尾标来添加、删除、修改或扩充数据。这样,在一个实施例中,没有将报头或尾标与关联的发行方拥有的数据一起存储在交易装置上,而是可以通过在独立装置处向用户提供针对要采取的动作的适当选项来采取适当的动作。该***可以考虑一种数据存储布置,在其中,数据的报头或尾标、或者报头或尾标历史被存储在与适当数据相关的***、装置或交易工具上。
本领域技术人员还将理解,出于安全原因,任何数据库、***、装置、服务器或***的其它组件可以在单个位置或多个位置处由其任何组合组成,其中,每个数据库或***包括各种合适的安全特征中的任何一种,诸如防火墙、访问代码、加密、解密、压缩、解压缩等。
加密可以通过本领域现在可用的任何技术来执行,或者加密可以通过可能变得可用的任何技术来执行,例如,Twofish、RSA、El Gamal、Schorr签名、DSA、PGP、PKI、GPG(GnuPG)、HPE格式保留加密(FPE)、电压以及对称和非对称的密码***。这些***和方法还可以并入SHA系列密码方法以及椭圆曲线密码(Elliptic Curve Cryptography,ECC)和其它正在开发的量子可读密码算法。
网络客户端的计算单元还可以配备有使用标准拨号、电缆、DSL或本领域已知的任何其它互联网协议而连接到互联网或内联网的互联网浏览器。起源于网络客户端的交易可以经过防火墙,以防止来自其它网络的用户的未授权访问。此外,可以在CMS的不同组件之间部署额外的防火墙,以进一步增强安全性。
防火墙可以包括被适当地配置为保护CMS组件和/或企业计算资源不受其它网络的用户影响的任何硬件和/或软件。此外,防火墙可以被配置为限制或约束通过网络服务器连接的网络客户端对防火墙后面的各种***和组件的访问。防火墙可能驻留在各种配置中,包括状态检查、基于代理、访问控制列表和分组过滤等。防火墙可以集成在网络服务器或任何其它CMS组件中,或者可以进一步作为单独的实体驻留。防火墙可以实施网络地址转换(“NAT”)和/或网络地址端口转换(“NAPT”)。防火墙可以容纳各种隧道协议以促进安全通信,诸如在虚拟专用联网中使用的那些协议。防火墙可以实施非军事区(“DMZ”),以促进与诸如互联网的公共网络的通信。防火墙可以作为软件集成在互联网服务器、任何其它应用服务器组件内,或者可以驻留在另一计算装置内,或者可以采取独立的硬件组件的形式。
本文讨论的计算机可以提供用户可访问的合适的网站或其它基于互联网的图形用户界面。在一个实施例中,将INTERNET INFORMATION(IIS)、交易服务器(MTS)和SQL Server与操作***、NT网络服务器软件、SQLServer数据库***和商业服务器结合使用。另外,诸如Access或SQL服务器、Sybase、英孚美MySQL、Interbase等组件可以用于提供符合活动数据对象(Active Data Object,ADO)的数据库管理***。在一个实施例中,结合Linux操作***、MYSQL数据库以及Perl、PHP、Ruby和/或Python编程语言使用Apache网络服务器。
可以通过具有网页的网站来促进本文讨论的通信、输入、存储、数据库或显示中的任何一个。本文所使用的术语“网页”并不意味着限制可能用于与用户交互的文档和应用程序的类型。例如,除了标准的HTML文档之外,典型的网站可以包括各种形式、小程序、动态服务器页面(ASP)、常用网关接口脚本(CGI)、可扩展标记语言(XML)、动态HTML、级联样式表(CSS)、AJAX(异步和XML)、辅助应用程序、插件等。服务器可以包括从网络服务器接收请求的网络服务,该请求包括URL和IP地址(例如,10.0.0.2)。网络服务器检索适当的网页并将网页的数据或应用程序发送到该IP地址。网络服务是能够通过诸如互联网的通信手段与其它应用程序进行交互的应用程序。网络服务通常基于诸如XML、SOAP、AJAX、WSDL和UDDI的标准或协议。网络服务方法在本领域中是众所周知的,并且涵盖在许多标准文本中。例如,代表性状态转移(REST)或RESTful网络服务可以提供一种启用应用程序之间的互操作性的方式。
中间件(middleware)可以包括被是适当地配置为促进全异计算***之间的通信和/或过程交易的任意硬件和/或软件。中间件组件是可商购的并且是本领域已知的。中间件可以通过可商购的硬件和/或软件、通过定制的硬件和/或软件组件、或者通过其组合来实施。中间件可以驻留在各种配置中,并且可以作为独立***存在,或者可以是驻留在互联网服务器上的软件组件。出于本文所公开的任何目的,中间件可以被配置为处理应用服务器的各种组件与任何数量的内部***或外部***之间的交易。公司(纽约州阿蒙克)生产的MQTM(以前的MQSeries)是可商购的中间件产品的示例。企业服务总线(“ESB”)应用程序是中间件的另一示例。
从业者还将理解,存在用于在基于浏览器的文档内显示数据的多种方法。数据可以被表示为标准文本或者可以被表示在固定列表、可滚动列表、下拉列表、可编辑文本字段、固定文本字段、弹出窗口等内。同样,存在可以用于修改网页中的数据的多种方法,例如,使用键盘的自由文本录入、菜单项的选择、复选框、选项框等。
本文中可以根据功能块组件、屏幕截图、可选选择和各种处理步骤来描述***和方法。应该理解,这样的功能块可以通过被配置为执行指定功能的任何数量的硬件和/或软件组件来实现。例如,***可以采用各种集成电路组件,例如存储器元件、处理元件、逻辑元件、查找表等,其可以在一个或多个微处理器或其它控制装置的控制下执行各种功能。类似地,***的软件元素可以使用任何编程或脚本语言来实现,诸如C、C++、C#、JAVASCRIPT、JAVASCRIPT、对象注释(JSON)、VBScript、Macromedia冷融合、COBOL、动态服务器页面、汇编、PERL、PHP、awk、Python、Visual Basic、SQL存储的程序(SQL Stored Procedures)、PL/SQL、任何UNIX外壳脚本和可扩展标记语言(XML),其中各种算法利用数据结构、对象、过程、例程或其它编程元素的任何组合来实施。此外,应该注意,***可以采用任何数量的常规技术来进行数据传输、信令发送、数据处理、网络控制等。更进一步,***可以用于检测或防止诸如JAVASCRIPT、VBScript等的客户端侧脚本语言的安全问题。密码学和网络安全方法在本领域中是公知的,并且涵盖在许多标准文本中。
在各种实施例中,***的软件元素也可以使用来实施。可以实施若干模块来处理各种核心功能。例如,诸如的包管理模块可以被实施为开源库,以帮助组织第三方程序的安装和管理。还可以实施过程管理器,例如,并行多线程机(Parallel Multithreaded Machine,“PM2”);资源和性能监测工具,例如节点应用程序度量(“appmetrics”);用于构建用户界面的库模块,例如和/或任何其它合适和/或期望的模块。
如本领域普通技术人员将理解的,该***可被体现为现有***的定制、附加产品、执行升级软件的处理设备、独立***、分布式***、方法、数据处理***、用于数据处理的装置和/或计算机程序产品。因此,***或模块的任何部分可以采取执行代码的处理装置、基于互联网的实施例、完全硬件的实施例、或组合互联网、软件和硬件的各方面的实施例的形式。此外,该***可以采取计算机可读存储介质上的计算机程序产品的形式,该计算机可读存储介质具有以该存储介质体现的计算机可读程序代码方法。可以利用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、BLU-RAY、光学存储装置、磁性存储装置等。
本文参照根据各种实施例的方法、设备(例如,***)和计算机程序产品的屏幕截图、框图和流程图来描述该***和方法。应该理解,框图和流程图的每个功能块以及框图和流程图中的功能块的组合分别可以通过计算机程序指令来实施。
现参照图2至5,所描绘的处理流程和屏幕截图仅仅是实施例,并不旨在限制本公开的范围。例如,在任何方法或过程描述中叙述的步骤可以以任何顺序执行,而不限于所呈现的顺序。
这些计算机程序指令可以被加载到通用计算机、专用计算机或其它可编程数据处理设备上以生产机器,以使得在计算机或其它可编程数据处理装置上执行的指令创建用于实施流程图的一个或多个框中指定的功能的手段。这些计算机程序指令还可以存储在计算机可读存储器中,其可以引导计算机或其它可编程数据处理装置以特定方式运行,使得存储在计算机可读存储器中的指令产生包括实现流程图的一个或多个框中指定的功能的指令手段的制品。计算机程序指令还可以被加载到计算机或其它可编程数据处理设备上,以使得在计算机或其它可编程装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程设备上执行的指令提供用于实施流程图的一个或多个框中指定的功能的步骤。
因此,框图和流程图的功能块支持用于执行指定功能的手段的组合、用于执行指定功能的步骤的组合、以及用于执行指定功能的程序指令手段。还将理解,框图和流程图的每个功能块以及框图和流程图中的功能块的组合可以由执行指定功能或步骤的基于专用硬件的计算机***或者专用硬件和计算机指令的适当组合来实施。此外,处理流程的图示及其描述可以参照用户网页、网站、网络表单、提示等。从业者将理解,本文所述的例举的步骤可以包括任何数量的配置,包括使用网页、网络表单、弹出提示等。还应该理解,所示和所述的多个步骤可以被组合到单个网页和/或中,但是为了简单起见已经被扩展。在其它情况下,作为单个过程步骤示出和描述的步骤可以被分成多个网页和/或但是为了简单起见已经被组合。
术语“非暂时性”应被理解为仅从权利要求范围中除去传播暂时性信号本身,而不放弃对不是仅传播暂时性信号本身的所有标准计算机可读介质的权利。换句话说,术语“非暂时性计算机可读介质”和“非暂时性计算机可读存储介质”的含义应被解释为仅排除在Inre Nuijten中发现的那些不属于35 U.S.C.§101规定的可专利性主题范围的暂时性计算机可读介质。
本文已关于特定实施例描述了益处、其它优点和问题的解决方案。然而,这些益处、优点、问题的解决方案、以及可以使任何益处、优点或解决方案出现或变得更加明显的任何元素不应被解释为本公开的关键的、必需或必要的特征或元素。因此,本公开的范围将仅受所附权利要求的限制,在所附权利要求中,除非明确地如此陈述,否则以单数形式对元素的提及并不旨在表示“一个且仅一个”,而是表示“一个或多个”。此外,在权利要求书或说明书中使用与‘A、B和C中的至少一个’或‘A、B或C中的至少一个’类似的短语的情况下,意图将该短语解释为意味着在实施例中可以单独存在A,在实施例中可以单独存在B,在实施例中可以单独存在C,或者在单个实施例中可以存在元素A、B和C的任意组合;例如,A和B、A和C、B和C、或A和B和C。尽管本公开包括方法,但是应该理解,其可以体现为有形计算机可读载体(诸如磁或光存储器或磁盘或光盘)上的计算机程序指令。
此外,装置或方法不是必须解决本公开力求解决的每一个问题,由于本公开将被本权利要求书所涵盖。此外,无论在权利要求书中是否明确叙述了本公开的元素、组件或方法步骤,都不旨在将这些元素、组件或方法步骤贡献给公众。如本文所使用的,术语“包括”、“包含(comprising)”或其任何其它变型,旨在涵盖非排他性的包括,使得包括所列元素的过程、方法、物品或设备不仅包括那些元素,而且可以包括未明确列出的或这样的过程、方法、物品或设备固有的其它元素。
在以下段落中阐述各种实施例的示例。尽管以下实施例旨在说明各种示例实施,但是它们不标识本公开的仅有可能实施例。本公开的超出出于说明性目的而提供的其它实施例也被未决申请所包含。
实施例1–1.一种方法,包括:响应于在支付过程期间商家***调用零知识证明(ZKP)智能合约,由所述零知识证明(ZKP)智能合约来执行验证功能,其中,所述商家***通过将证明、客户散列、商家散列和购买金额传输到所述ZKP智能合约来调用所述ZKP智能合约,其中,通过将验证密钥、所述证明和所述客户散列输入到所述验证功能中来执行所述验证功能,并且其中,所述验证功能与零知识证明算法相关联;响应于所述验证功能通过,由所述ZKP智能合约来调整与所述客户散列相关联的客户账户余额,其中,所述客户账户余额是基于所述购买金额来调整的,并且其中,在区块链上对所述客户账户余额进行维护;由所述ZKP智能合约来调整与所述商家散列相关联的商家账户余额,其中,所述商家账户余额是基于所述购买金额来调整的,并且其中,在区块链上对所述商家账户余额进行维护;以及由所述ZKP智能合约将成功通知写入所述区块链,其中,所述成功通知包括指示成功完成所述支付过程的数据。
实施例2-根据实施例1所述的方法,其中,所述商家***响应于从客户装置接收到所述证明和所述客户散列而调用所述ZKP智能合约,其中,所述客户装置通过执行与所述零知识证明算法相关联的证明功能来生成所述证明,并且其中,通过将证明密钥、所述客户散列和支付散列输入到所述证明算法中来执行所述证明功能。
实施例3-根据实施例2所述的方法,其中,所述客户装置响应于发起与所述商家***的支付购买而生成所述证明,并且其中,通过将客户标识数据和客户一次性随机数输入到散列算法中来生成所述支付散列。
实施例4-根据实施例1-3中任一项所述的方法,其中,发行方***创建所述零知识证明算法,其中,所述零知识证明算法包括密钥生成器功能、所述证明功能和所述验证功能;其中,所述发行方***通过执行所述密钥生成器功能来生成所述证明密钥和所述验证密钥,其中,所述密钥生成器功能是通过将随机数输入到所述密钥生成器功能中而执行的,并且其中,所述发行方***生成所述ZKP智能合约以包括所述验证功能。
实施例5-根据实施例1-4中任一项所述的方法,其中,所述发行方***响应于从所述商家***接收到商家注册请求而生成所述商家散列,并且其中,通过将商家标识数据和所述商家一次性随机数输入到散列算法中来生成所述商家散列。
实施例6-根据实施例5所述的方法,还包括由所述ZKP智能合约将所述商家散列和所述商家账户余额写入所述区块链,其中,响应于所述ZKP智能合约完成所述写入,所述发行方***将所述商家散列和所述商家一次性随机数传输到所述商家***。
实施例7-根据实施例1-6中任一项所述的方法,其中,所述发行方***响应于从所述客户装置接收到客户注册请求而生成所述客户散列,并且其中,通过将所述客户标识数据和所述客户一次性随机数输入到所述散列算法中来生成所述客户散列。
实施例8-根据实施例7所述的方法,还包括由所述ZKP智能合约将所述客户散列和所述客户账户余额写入所述区块链,其中,响应于所述ZKP智能合约完成所述写入,所述发行方***将所述客户散列和所述客户一次性随机数传输到所述客户装置。
实施例9-一种基于计算机的***,包括:处理器;以及有形非暂时性存储器,其被配置为与所述处理器进行通信,所述有形非暂时性存储器上存储有指令,所述指令响应于由所述处理器执行而促使零知识证明(ZKP)智能合约执行操作,所述操作包括:响应于在支付过程期间商家***调用ZKP智能合约来由所述ZKP智能合约执行验证功能,其中,所述商家***被配置为通过将证明、客户散列、商家散列和购买金额传输到所述ZKP智能合约来调用所述ZKP智能合约,其中,所述验证功能被配置为通过将验证密钥、所述证明和所述客户散列输入到所述验证功能中而执行,并且其中,所述验证功能与零知识证明算法相关联;响应于所述验证功能通过,由所述ZKP智能合约调整与所述客户散列相关联的客户账户余额,其中,基于所述购买金额来调整所述客户账户余额,并且其中,在区块链上对所述客户账户余额进行维护;由所述ZKP智能合约调整与所述商家散列相关联的商家账户余额,其中,所述商家账户余额是基于所述购买金额来调整的,并且其中,所述商家账户余额在区块链上被维护;并且由所述ZKP智能合约向所述区块链写入成功通知,其中,所述成功通知包括指示成功完成所述支付过程的数据。
实施例10-根据实施例9所述的基于计算机的***,其中,所述商家***被配置为响应于从客户装置接收到所述证明和所述客户散列而调用所述ZKP智能合约,其中,所述客户装置被配置为通过执行与所述零知识证明算法相关联的证明功能来生成所述证明,并且其中,所述证明功能被配置为通过将证明密钥、所述客户散列和支付散列输入到所述证明算法中而执行。
实施例11-根据实施例10所述的基于计算机的***,其中,所述客户装置被配置为响应于发起与所述商家***的支付购买而生成所述证明,并且其中,通过将客户标识数据和客户一次性随机数输入到散列算法中来生成所述支付散列。
实施例12-根据实施例9-11中任一项所述的基于计算机的***,其中,发行方***被配置为创建所述零知识证明算法,其中,所述零知识证明算法包括密钥生成器功能、所述证明功能和所述验证功能;其中,所述发行方***被配置为通过执行所述密钥生成器功能来生成所述证明密钥和所述验证密钥,其中,所述密钥生成器功能被配置为通过将随机数输入到所述密钥生成器功能中而执行,并且其中,所述发行方***被配置为生成所述ZKP智能合约以包括所述验证功能。
实施例13-根据实施例9-12中任一项所述的基于计算机的***,其中,所述发行方***被配置为响应于从所述商家***接收到商家注册请求而生成所述商家散列,并且其中,通过将商家标识数据和所述商家一次性随机数输入到所述散列算法中来生成所述商家散列。
实施例14-根据实施例13所述的基于计算机的***,还包括由所述ZKP智能合约将所述商家散列和所述商家账户余额写入所述区块链,其中,响应于所述ZKP智能合约完成所述写入,所述发行方***被配置为将所述商家散列和所述商家一次性随机数传输到所述商家***。
实施例15-根据实施例9-14中任一项所述的基于计算机的***,其中,所述发行方***被配置为响应于从所述客户装置接收到客户注册请求而生成所述客户散列,并且其中,通过将所述客户标识数据和所述客户一次性随机数输入到所述散列算法中来生成所述客户散列。
实施例16-根据实施例15所述的基于计算机的***,还包括由所述ZKP智能合约将所述客户散列和所述客户账户余额写入所述区块链,其中,响应于所述ZKP智能合约完成所述写入,所述发行方***将所述客户散列和所述客户一次性随机数传输到所述客户装置。
实施例17-一种制造物品,包括其上存储有指令的非暂时性有形计算机可读存储介质,所述指令响应于被基于计算机的***执行而促使零知识证明(ZKP)智能合约执行包括以下各项的操作:响应于在支付过程期间商家***调用ZKP智能合约,由所述ZKP智能合约执行验证功能,其中,所述商家***被配置为通过将证明、客户散列、商家散列和购买金额传输到所述ZKP智能合约来调用所述ZKP智能合约,其中,所述验证功能被配置为通过将验证密钥、所述证明和所述客户散列输入到所述验证功能中而执行,并且其中,所述验证功能被配置为与零知识证明算法相关联;响应于所述验证功能通过,由所述ZKP智能合约调整与所述客户散列相关联的客户账户余额,其中,所述客户账户余额基于所述购买金额而被调整,所述客户账户余额在区块链上被维护;由所述ZKP智能合约调整与所述商家散列相关联的商家账户余额,其中,所述商家账户余额基于所述购买金额而被调整,并且其中,所述商家账户余额在区块链上被维护;并且由所述ZKP智能合约将成功通知写入所述区块链,其中,所述成功通知包括指示成功完成所述支付过程的数据。
实施例18–根据实施例17所述的制造物品,其中,所述商家***被配置为响应于从客户装置接收到所述证明和所述客户散列而调用所述ZKP智能合约,其中,所述客户装置被配置为通过执行与所述零知识证明算法相关联的证明功能来生成所述证明,其中,所述证明功能被配置为通过将证明密钥、所述客户散列和支付散列输入到所述证明算法中而执行,其中,所述客户装置被配置为响应于发起与所述商家***的支付购买而生成所述证明,并且其中,通过将客户标识数据和客户一次性随机数输入到散列算法中来生成所述支付散列。
实施例19-根据实施例17或18所述的制造物品,其中,发行方***被配置为创建所述零知识证明算法,其中,所述零知识证明算法包括密钥生成器功能、所述证明功能和所述验证功能;其中,所述发行方***被配置为通过执行所述密钥生成器功能来生成所述证明密钥和所述验证密钥,其中,所述密钥生成器功能被配置为通过将随机数输入到所述密钥生成器功能中而执行,并且其中,所述发行方***被配置为生成所述ZKP智能合约以包括所述验证功能。
实施例20-根据实施例17-19中任一项所述的制造物品,其中,所述发行方***被配置为响应于从所述商家***接收到商家注册请求而生成所述商家散列,其中,通过将商家标识数据和所述商家一次性随机数输入到散列算法中来生成所述商家散列,其中,所述发行方***被配置为响应于从所述客户装置接收到客户注册请求而生成所述客户散列,并且其中,通过将所述客户标识数据和所述客户一次性随机数输入到所述散列算法中来生成所述客户散列。
Claims (15)
1.一种方法,包括:
响应于在支付过程期间由商家***调用零知识证明(ZKP)智能合约,由所述零知识证明(ZKP)智能合约来执行验证功能,其中,所述商家***通过将证明、客户散列、商家散列和购买金额传输到所述ZKP智能合约来调用所述ZKP智能合约,其中,通过将验证密钥、所述证明和所述客户散列输入到所述验证功能中来执行所述验证功能,并且其中,所述验证功能与零知识证明算法相关联;
响应于所述验证功能通过,由所述ZKP智能合约调整与所述客户散列相关联的客户账户余额,其中,基于所述购买金额来调整所述客户账户余额,并且其中,在区块链上对所述客户账户余额进行维护;
由所述ZKP智能合约调整与所述商家散列相关联的商家账户余额,其中,基于所述购买金额来调整所述商家账户余额,并且其中,在区块链上对所述商家账户余额进行维护;以及
由所述ZKP智能合约将成功通知写入所述区块链,其中,所述成功通知包括指示成功完成所述支付过程的数据。
2.根据权利要求1所述的方法,
其中,所述商家***响应于从客户装置接收到所述证明和所述客户散列而调用所述ZKP智能合约,
其中,所述客户装置通过执行与所述零知识证明算法相关联的证明功能来生成所述证明,以及
其中,通过将证明密钥、所述客户散列和支付散列输入到所述证明算法中来执行所述证明功能。
3.根据权利要求2所述的方法,
其中,所述客户装置响应于发起与所述商家***的支付购买而生成所述证明,以及
其中,通过将客户标识数据和客户一次性随机数输入到散列算法中来生成所述支付散列。
4.根据权利要求1至3中任一项所述的方法,
其中,发行方***创建所述零知识证明算法,
其中,所述零知识证明算法包括密钥生成器功能、所述证明功能和所述验证功能;
其中,所述发行方***通过执行所述密钥生成器功能来生成所述证明密钥和所述验证密钥,
其中,通过将随机数输入到所述密钥生成器功能中来执行所述密钥生成器功能,以及
其中,所述发行方***生成所述ZKP智能合约以包括所述验证功能。
5.根据权利要求1至4中任一项所述的方法,
其中,所述发行方***响应于从所述商家***接收到商家注册请求而生成所述商家散列,以及
其中,通过将商家标识数据和所述商家一次性随机数输入到所述散列算法中来生成所述商家散列。
6.根据权利要求5所述的方法,还包括由所述ZKP智能合约将所述商家散列和所述商家账户余额写入所述区块链,其中,响应于所述ZKP智能合约完成所述写入,所述发行方***将所述商家散列和所述商家一次性随机数传输到所述商家***。
7.根据权利要求1至6中任一项所述的方法,
其中,所述发行方***响应于从所述客户装置接收到客户注册请求而生成所述客户散列,以及
其中,通过将所述客户标识数据和所述客户一次性随机数输入到所述散列算法中来生成所述客户散列。
8.根据权利要求7所述的方法,还包括由所述ZKP智能合约将所述客户散列和所述客户账户余额写入所述区块链,其中,响应于所述ZKP智能合约完成所述写入,所述发行方***将所述客户散列和所述客户一次性随机数传输到所述客户装置。
9.一种基于计算机的***,包括:
处理器;以及
有形非暂时性存储器,其被配置为与所述处理器进行通信,所述有形非暂时性存储器具有存储于其上的指令,所述指令响应于被所述处理器执行而使零知识证明(ZKP)智能合约执行操作,所述操作包括:
响应于在支付过程期间由商家***调用所述ZKP智能合约,由所述ZKP智能合约执行验证功能,其中,所述商家***被配置为通过将证明、客户散列、商家散列和购买金额传输到所述ZKP智能合约来调用所述ZKP智能合约,其中,所述验证功能被配置为通过将验证密钥、所述证明和所述客户散列输入到所述验证功能中而执行,并且其中,所述验证功能与零知识证明算法相关联;
响应于所述验证功能通过,由所述ZKP智能合约调整与所述客户散列相关联的客户账户余额,其中,基于所述购买金额来调整所述客户账户余额,并且其中,在区块链上对所述客户账户余额进行维护;
由所述ZKP智能合约调整与所述商家散列相关联的商家账户余额,其中,基于所述购买金额来调整所述商家账户余额,并且其中,在区块链上对所述商家账户余额进行维护;以及
由所述ZKP智能合约向所述区块链写入成功通知,其中,所述成功通知包括指示成功完成所述支付过程的数据。
10.根据权利要求9所述的基于计算机的***,
其中,所述商家***被配置为响应于从客户装置接收到所述证明和所述客户散列而调用所述ZKP智能合约,
其中,所述客户装置被配置为通过执行与所述零知识证明算法相关联的证明功能来生成所述证明,以及
其中,所述证明功能被配置为通过将证明密钥、所述客户散列和支付散列输入到所述证明算法中而执行。
11.根据权利要求10所述的基于计算机的***,
其中,所述客户装置被配置为响应于发起与所述商家***的支付购买而生成所述证明,以及
其中,通过将客户标识数据和客户一次性随机数输入到散列算法中来生成所述支付散列。
12.根据权利要求9至11中任一项所述的基于计算机的***,其中,
其中,发行方***被配置为创建所述零知识证明算法,
其中,所述零知识证明算法包括密钥生成器功能、所述证明功能和所述验证功能;
其中,所述发行方***被配置为通过执行所述密钥生成器功能来生成所述证明密钥和所述验证密钥,
其中,所述密钥生成器功能被配置为通过将随机数输入到所述密钥生成器功能中而执行,以及
其中,所述发行方***被配置为生成所述ZKP智能合约以包括所述验证功能。
13.根据权利要求9至12中任一项所述的基于计算机的***,
其中,所述发行方***被配置为响应于从所述商家***接收到商家注册请求而生成所述商家散列,以及
其中,通过将商家标识数据和所述商家一次性随机数输入到所述散列算法中来生成所述商家散列。
14.根据权利要求13所述的基于计算机的***,还包括由所述ZKP智能合约将所述商家散列和所述商家账户余额写入所述区块链,其中,响应于所述ZKP智能合约完成所述写入,所述发行方***被配置为将所述商家散列和所述商家一次性随机数传输到所述商家***。
15.根据权利要求9至14中任一项所述的基于计算机的***,
其中,所述发行方***被配置为响应于从所述客户装置接收到客户注册请求而生成所述客户散列,以及
其中,通过将所述客户标识数据和所述客户一次性随机数输入到所述散列算法中来生成所述客户散列。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/217,734 | 2018-12-12 | ||
US16/217,734 US11151558B2 (en) | 2018-12-12 | 2018-12-12 | Zero-knowledge proof payments using blockchain |
PCT/US2019/065621 WO2020123591A1 (en) | 2018-12-12 | 2019-12-11 | Zero-knowledge proof payments using blockchain |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113243094A true CN113243094A (zh) | 2021-08-10 |
Family
ID=71072732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980081904.2A Pending CN113243094A (zh) | 2018-12-12 | 2019-12-11 | 使用区块链的零知识证明支付 |
Country Status (7)
Country | Link |
---|---|
US (3) | US11151558B2 (zh) |
EP (1) | EP3895366A4 (zh) |
JP (1) | JP7166453B2 (zh) |
KR (1) | KR102526384B1 (zh) |
CN (1) | CN113243094A (zh) |
SG (1) | SG11202104984YA (zh) |
WO (1) | WO2020123591A1 (zh) |
Families Citing this family (33)
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 |
JP2021518685A (ja) * | 2018-03-23 | 2021-08-02 | エヌチェーン ホールディングス リミテッドNchain Holdings Limited | データの交換のためのコンピュータ実装されたシステム及び方法 |
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 |
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 |
US11677563B2 (en) | 2019-04-15 | 2023-06-13 | Eygs Llp | Systems, apparatus and methods for local state storage of distributed ledger data without cloning |
EP3959637A1 (en) * | 2019-04-24 | 2022-03-02 | 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 |
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 |
CN113592478A (zh) * | 2021-08-02 | 2021-11-02 | 杭州复杂美科技有限公司 | 数字商品交易方法、计算机设备和存储介质 |
CN113592469A (zh) * | 2021-08-02 | 2021-11-02 | 杭州复杂美科技有限公司 | 基于零知识证明的红包处理方法、计算机设备和存储介质 |
TW202345545A (zh) * | 2021-12-17 | 2023-11-16 | 瑞士商區塊鏈授權股份有限公司 | 用於證明與驗證子金鑰真實性之技術 |
KR102670647B1 (ko) * | 2022-02-03 | 2024-05-31 | 충남대학교 산학협력단 | 스마트 컨트랙트 개인정보보호 방법 및 이를 이용한 시스템 |
US20230327890A1 (en) * | 2022-04-06 | 2023-10-12 | Western Digital Technologies, Inc. | Hiding Proof-of-Space in Blockchain Systems |
CN115051807B (zh) * | 2022-06-02 | 2024-05-24 | 昆明理工大学 | 一种基于超级账本Fabric的零知识身份认证方法 |
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 |
KR102595354B1 (ko) | 2023-02-07 | 2023-10-30 | 주식회사 지크립토 | 영지식증명을 갖는 블록체인 기반의 전자투표시스템 및 방법 |
CN116091049B (zh) * | 2023-04-12 | 2023-07-07 | 中科商用(临沂)技术有限公司 | 一种基于大数据与区块链的支付方法、装置及云平台 |
Citations (11)
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 |
US20170132621A1 (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 |
US20170228726A1 (en) * | 2016-02-04 | 2017-08-10 | American Express Travel Related Services Company, Inc. | Systems and methods for secure transactions |
CN107438002A (zh) * | 2016-05-27 | 2017-12-05 | 索尼公司 | 基于区块链的***以及***中的电子设备和方法 |
CN108009441A (zh) * | 2017-11-23 | 2018-05-08 | 阿里巴巴集团控股有限公司 | 资源转移和资金转移的方法和装置 |
CN108389046A (zh) * | 2018-02-07 | 2018-08-10 | 西安交通大学 | 一种电子商务中基于区块链技术的隐私保护交易方法 |
CN108418689A (zh) * | 2017-11-30 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种适合区块链隐私保护的零知识证明方法和介质 |
US20180331832A1 (en) * | 2015-11-05 | 2018-11-15 | Allen Pulsifer | Cryptographic Transactions System |
CN108898490A (zh) * | 2018-06-25 | 2018-11-27 | 北京奇虎科技有限公司 | 智能合约的执行方法、节点、***、电子设备及存储介质 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2027729A2 (en) | 2006-06-15 | 2009-02-25 | 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 |
CN107683488B (zh) | 2015-04-05 | 2023-09-05 | 数字资产(瑞士)股份有限公司 | 数字资产中介电子结算平台 |
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 |
AU2017216289A1 (en) | 2016-02-04 | 2018-09-27 | Nasdaq Technology Ab | Systems and methods for storing and sharing transactional data using distributed computer systems |
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 |
US10715531B2 (en) * | 2016-02-12 | 2020-07-14 | Visa International Service Association | Network topology |
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 |
AU2017340266B2 (en) | 2016-10-06 | 2020-06-18 | Mastercard International Incorporated | Method and system for identity and credential protection and verification via blockchain |
EP3596680A4 (en) * | 2017-03-15 | 2020-12-30 | Nuid, Inc. | PROCEDURES AND SYSTEMS FOR UNIVERSAL STORAGE AND ACCESS TO USER-DEFINED ACCESS DATA FOR TRANSINSTITUTIONAL DIGITAL AUTHENTICATION |
CN108418783B (zh) | 2017-09-01 | 2021-03-19 | 矩阵元技术(深圳)有限公司 | 一种保护区块链智能合约隐私的方法、介质 |
WO2019092552A1 (en) * | 2017-11-09 | 2019-05-16 | nChain Holdings Limited | Systems and methods for ensuring correct execution of computer program using a mediator computer system |
US11257077B2 (en) * | 2017-11-30 | 2022-02-22 | Visa International Service Association | Blockchain system for confidential and anonymous smart contracts |
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 |
KR102208891B1 (ko) * | 2018-11-07 | 2021-01-29 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | 블록체인 기밀 트랜잭션에서 암호화된 트랜잭션 정보 복구 |
-
2018
- 2018-12-12 US US16/217,734 patent/US11151558B2/en active Active
-
2019
- 2019-12-11 KR KR1020217015728A patent/KR102526384B1/ko active IP Right Grant
- 2019-12-11 EP EP19894538.8A patent/EP3895366A4/en active Pending
- 2019-12-11 CN CN201980081904.2A patent/CN113243094A/zh active Pending
- 2019-12-11 SG SG11202104984YA patent/SG11202104984YA/en unknown
- 2019-12-11 JP JP2021525733A patent/JP7166453B2/ja active Active
- 2019-12-11 WO PCT/US2019/065621 patent/WO2020123591A1/en unknown
-
2021
- 2021-09-13 US US17/473,074 patent/US11748750B2/en active Active
-
2023
- 2023-07-17 US US18/222,600 patent/US20230410103A1/en active Pending
Patent Citations (11)
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 |
US20170132621A1 (en) * | 2015-11-06 | 2017-05-11 | SWFL, Inc., d/b/a "Filament" | Systems and methods for autonomous device transacting |
US20170228726A1 (en) * | 2016-02-04 | 2017-08-10 | American Express Travel Related Services Company, Inc. | Systems and methods for secure transactions |
CN107438002A (zh) * | 2016-05-27 | 2017-12-05 | 索尼公司 | 基于区块链的***以及***中的电子设备和方法 |
CN108009441A (zh) * | 2017-11-23 | 2018-05-08 | 阿里巴巴集团控股有限公司 | 资源转移和资金转移的方法和装置 |
CN108418689A (zh) * | 2017-11-30 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种适合区块链隐私保护的零知识证明方法和介质 |
CN108389046A (zh) * | 2018-02-07 | 2018-08-10 | 西安交通大学 | 一种电子商务中基于区块链技术的隐私保护交易方法 |
CN108898490A (zh) * | 2018-06-25 | 2018-11-27 | 北京奇虎科技有限公司 | 智能合约的执行方法、节点、***、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3895366A1 (en) | 2021-10-20 |
EP3895366A4 (en) | 2022-08-31 |
JP7166453B2 (ja) | 2022-11-07 |
US20210406878A1 (en) | 2021-12-30 |
KR102526384B1 (ko) | 2023-04-28 |
US11151558B2 (en) | 2021-10-19 |
SG11202104984YA (en) | 2021-06-29 |
US11748750B2 (en) | 2023-09-05 |
KR20210089682A (ko) | 2021-07-16 |
US20230410103A1 (en) | 2023-12-21 |
US20200193425A1 (en) | 2020-06-18 |
JP2022510790A (ja) | 2022-01-28 |
WO2020123591A1 (en) | 2020-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102526384B1 (ko) | 블록 체인을 사용한 영지식 증명 결제 | |
US20220270089A1 (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 | |
US11687907B2 (en) | Secure mobile checkout system | |
US20200311734A1 (en) | Dynamic trust score | |
CN113168637A (zh) | 交易验证期间的次级欺诈检测 | |
CN113678155A (zh) | 支付转账处理*** | |
AU2022279532A1 (en) | Peer-to-peer money transfers | |
US11941654B2 (en) | Automated transactional offers using a browser extension | |
CN112513902A (zh) | 远程emv支付应用程序 | |
US20200259914A1 (en) | Balancing and control framework for real-time processing | |
US20210256511A1 (en) | Systems and methods for facilitating transactions | |
WO2020086654A1 (en) | Multi-merchant loyalty point partnership | |
US20230237491A1 (en) | Dynamic trust score |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40048922 Country of ref document: HK |