Blockchain-based loan management method and system

By using blockchain-based homomorphic encryption and zero-knowledge proof technology, the problem of balancing transparency and privacy of loan amount and lender information in syndicated loan management is solved, achieving transparency and privacy protection in the loan process and ensuring the accuracy and security of loan allocation.

CN115461775BActive Publication Date: 2025-11-28ANTCHAIN TECHNOLOGY PTE LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180031963.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-05-04
Filing Date
2021-02-22
Publication Date
2025-11-28
Estimated Expiration
2041-02-22

AI Technical Summary

Technical Problem

In the existing syndicated loan management process, it is difficult to balance the transparency and privacy of loan amount and lender information, which increases the risk of privacy and business information leakage for participating parties.

Method used

A blockchain-based loan management system is adopted, which uses homomorphic encryption to encrypt loan amounts and quantities, and implements loan management through blockchain contracts to ensure data privacy protection during loan requests, loan offers, and loan repayments. At the same time, zero-knowledge proofs are used to verify the range of loan amounts.

Benefits of technology

It ensures transparency and security in the syndicated loan process, protects the privacy of lenders and borrowers, ensures the accuracy and reasonableness of loan allocation, and avoids public disclosure of loan amounts.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115461775B_ABST
    Figure CN115461775B_ABST
Patent Text Reader

Abstract

A method, apparatus, system and storage medium for loan management based on blockchain are disclosed. An example method includes: receiving, by a blockchain node associated with a blockchain, a first blockchain transaction, wherein the first blockchain transaction contains an encrypted unit loan amount associated with a loan request; receiving, by the blockchain node, a plurality of second blockchain transactions, each of the second blockchain transactions including an encrypted unit number; receiving, by the blockchain node, a third blockchain transaction specifying a subset of the second blockchain transactions; and executing, by the blockchain node, a blockchain contract to determine and store an encrypted loan amount corresponding to each of the second blockchain transactions in the subset; wherein the encrypted unit loan amount, the encrypted unit number and the encrypted loan amount are generated based on a homomorphic encryption scheme.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates generally to methods and systems for managing syndicated loans using blockchain technology. BACKGROUND

[0002] Fundraising, donations, auctions, loans, and other resource collection activities can involve a process in which one party issues a request for resource donations and multiple resource owners provide a certain amount of donations in response. For example, a syndicated loan is a form of loan business in which two or more lenders jointly provide loans to one or more borrowers under the same loan conditions and with different responsibilities. Typically, one bank is designated as an agent bank that manages the loan business on behalf of the syndicate members. Syndicated loans occur when a project requires loans that are too large for a single lender, or a specialized lender with expertise in a particular asset class. Joint lending allows lenders to diversify risk and participate in financial opportunities that can be too large for their individual capital base.

[0003] Blockchain technology provides various advantages for facilitating processes involving a large number of participants. A blockchain can include a growing list of records, which are contained in linked blocks and secured by cryptography. Each block of the blockchain can contain transaction information, account information, information about one or more previous blocks, and other relevant information. The blockchain can be implemented in a peer-to-peer network that includes multiple blockchain nodes that adhere to protocols for communication between nodes, transaction or block validity confirmation, and consensus formation. SUMMARY

[0004] Embodiments in this specification can include blockchain-based loan management systems, methods, and non-transitory computer-readable media.

[0005] According to some embodiments, a blockchain-based loan management method can include receiving, by a blockchain node associated with a blockchain, a first blockchain transaction containing an encrypted unit loan amount associated with a loan request, wherein the loan request is associated with a total loan amount equal to the unit loan amount multiplied by a unit total; receiving, by the blockchain node, a plurality of second blockchain transactions each including an encrypted unit number; receiving, by the blockchain node, a third blockchain transaction specifying a subset of the second blockchain transactions; and executing, by the blockchain node, a blockchain contract associated with the blockchain to determine and store, based on the encrypted unit loan amount and the encrypted unit number in each of the second blockchain transactions in the subset, an encrypted loan amount corresponding to the second blockchain transaction; wherein the encrypted unit loan amount, the encrypted unit number, and the encrypted loan amount are generated based on a homomorphic encryption scheme.

[0006] In some embodiments, the method further comprises: the blockchain node receiving a fourth blockchain transaction containing an encrypted unit repayment amount; and the blockchain node executing the blockchain contract to update the encrypted loan amount corresponding to each second blockchain transaction in the subset based on the encrypted unit repayment amount and the encrypted number of units in the second blockchain transaction.

[0007] In some embodiments, the executing the blockchain contract to update the encrypted loan amount corresponding to each second blockchain transaction in the subset comprises, for each second blockchain transaction in the subset, the blockchain node executing the blockchain contract to: determine an encrypted difference between the encrypted unit loan amount and the encrypted unit repayment amount; and update the encrypted loan amount to a product of the encrypted difference and the encrypted number of units in the second blockchain transaction.

[0008] In some embodiments, the method further comprises: the blockchain node executing the blockchain contract to determine and store an encrypted debt amount corresponding to the first blockchain transaction, the encrypted debt amount comprising a sum of the encrypted loan amount corresponding to each second blockchain transaction in the subset.

[0009] In some embodiments, the method further comprises: the blockchain node receiving a fourth blockchain transaction containing an encrypted unit repayment amount; and the blockchain node executing the blockchain contract to update the encrypted debt amount corresponding to the first blockchain transaction based on the encrypted unit repayment amount and the encrypted number of units in each second blockchain transaction in the subset.

[0010] In some embodiments, the method further comprises: a first computing system associated with the first blockchain transaction sending the unit loan amount to one or more second computing systems associated with the plurality of second blockchain transactions through a channel other than the blockchain.

[0011] In some embodiments, the method further comprises: the blockchain node receiving a zero-knowledge range proof that purports to contain a range of the unit loan amount and a zero-knowledge range proof that the unit loan amount is within the purported range.

[0012] In some embodiments, the homomorphic encryption scheme is a class-homomorphic encryption SWHE scheme based on a public key associated with the first blockchain transaction.

[0013] In some embodiments, the first blockchain transaction further comprises a first unique identifier; and each of the plurality of second blockchain transactions further comprises the first unique identifier of the first blockchain transaction and a second unique identifier.

[0014] In some embodiments, the third blockchain transaction includes a plurality of the second unique identifiers respectively corresponding to the subset of the second blockchain transactions.

[0015] In some embodiments, the plurality of second blockchain transactions are ordered in time sequence, and the third blockchain transaction includes a number K, the K representing a number of first K second blockchain transactions in the plurality of second blockchain transactions to be included in the subset of the second blockchain transactions.

[0016] In some embodiments, for one of the second blockchain transactions in the subset of the second blockchain transactions, the third blockchain transaction further includes an encrypted number of remaining units of the second blockchain transaction, wherein the encrypted number of remaining units is less than the encrypted number of units corresponding to the second blockchain transaction.

[0017] In some embodiments, the encrypted loan amount corresponding to each of the second blockchain transactions in the subset includes a product of the encrypted unit loan amount and the encrypted number of units associated with the second blockchain transaction.

[0018] According to other embodiments, a system for blockchain-based loan management includes one or more processors and one or more non-transitory computer-readable memories coupled to the one or more processors and having stored thereon instructions executable by one or more of the processors to perform the method of any of the preceding embodiments.

[0019] In some embodiments, the system can receive a zero-knowledge range proof that the unit loan amount is contained in a range, and the range.

[0020] According to other embodiments, a non-transitory computer-readable storage medium configured with instructions executable by one or more processors to cause the one or more processors to perform the method of any of the preceding embodiments.

[0021] According to yet other embodiments, an apparatus for blockchain-based loan management includes a plurality of modules for performing the method of any of the preceding embodiments.

[0022] According to some embodiments, a blockchain-based loan management system, comprising one or more processors and one or more non-transitory computer-readable memories coupled to the one or more processors and configured with instructions executable by the one or more processors to cause the system to perform operations comprising: receiving, by a blockchain node associated with a blockchain, a first blockchain transaction from a first computing system, the first blockchain transaction containing an encrypted unit loan amount associated with a loan request, wherein the loan request is associated with a total loan amount equal to the unit loan amount multiplied by a total number of units; receiving, by the blockchain node, a plurality of second blockchain transactions from one or more second computing systems, each of the second blockchain transactions comprising an encrypted unit number; receiving, by the blockchain node, a third blockchain transaction from the first computing system specifying a subset of the second blockchain transactions; and executing, by the blockchain node, a blockchain contract associated with the blockchain to determine and store, based on the encrypted unit loan amount and the encrypted unit number in each of the second blockchain transactions in the subset, an encrypted loan amount corresponding to that second blockchain transaction; wherein the encrypted unit loan amount, the encrypted unit number, and the encrypted loan amount are generated based on a homomorphic encryption scheme.

[0023] According to other embodiments, a blockchain-based loan management non-transitory computer-readable storage medium can be configured with instructions executable by one or more processors to cause the one or more processors to perform operations comprising: receiving a first blockchain transaction from a first computing system, the first blockchain transaction containing an encrypted unit loan amount associated with a loan request, wherein the loan request is associated with a total loan amount equal to the unit loan amount multiplied by a total number of units; receiving a plurality of second blockchain transactions, each of the second blockchain transactions comprising an encrypted unit number; receiving a third blockchain transaction specifying a subset of the second blockchain transactions; and executing a blockchain contract associated with the blockchain to determine and store, based on the encrypted unit loan amount and the encrypted unit number in each of the second blockchain transactions in the subset, an encrypted loan amount corresponding to that second blockchain transaction; wherein the encrypted unit loan amount, the encrypted unit number, and the encrypted loan amount are generated based on a homomorphic encryption scheme.

[0024] According to other embodiments, an apparatus for blockchain-based loan management includes a first receiving module for receiving a first blockchain transaction containing an encrypted unit loan amount associated with a loan request, wherein the loan request is associated with a total loan amount equal to the unit loan amount multiplied by a unit total; a second receiving module for receiving a plurality of second blockchain transactions, each of the second blockchain transactions including an encrypted unit number; a third receiving module for receiving a third blockchain transaction specifying a subset of the second blockchain transactions; and an executing module for executing a blockchain contract associated with the blockchain to determine and store an encrypted loan amount corresponding to each of the second blockchain transactions in the subset based on the encrypted unit loan amount and the encrypted unit number in that second blockchain transaction.

[0025] The embodiments disclosed herein have one or more technical effects. In some embodiments, a blockchain is used to automate the management and repayment process of a syndicated loan. By preserving a permanent record available to relevant parties, the reliability and transparency of the syndicated loan process is improved. In some embodiments, data submitted to the blockchain by the borrower and lenders is homomorphically encrypted. The trustworthiness of the information can be verified by zero-knowledge proof. The homomorphically encrypted data enables the blockchain-based loan management system to track the borrower’s outstanding debt (e.g., the remaining loan amount to be repaid) and the lenders’ outstanding loan amounts based on the ciphertext of the data without publishing the underlying data to the public. In some embodiments, when the borrower makes a repayment, the blockchain-based loan management system can correctly determine how to proportionally allocate the repayment to the lenders (e.g., according to the loan amount lent by the lender to the borrower) without knowing the actual loan amount lent by each lender. This can protect the privacy and confidential business information of the participants.

[0026] These and other features of the systems, methods, and non-transitory computer-readable media disclosed herein, as well as the functions of the method operations and the elements of related structures, and the combination of parts and economies of manufacture, will become more apparent upon consideration of the following description and the appended claims with reference to the accompanying drawings. All these drawings are hereby BRIEF DESCRIPTION OF DRAWINGS

[0027] Figure 1 A network environment associated with a blockchain is shown in accordance with some embodiments.

[0028] Figure 2 A framework for implementing blockchain transactions is shown in accordance with some embodiments.

[0029] Figure 3A network environment associated with a blockchain-based loan management system is shown in accordance with some embodiments.

[0030] Figure 4 A blockchain-based loan management method is shown in accordance with some embodiments.

[0031] Figure 5A A blockchain-based loan management method with privacy protection is shown in accordance with some embodiments.

[0032] Figure 5B A blockchain-based loan management method with privacy protection is shown in accordance with some embodiments.

[0033] Figure 6 A blockchain-based loan management method with privacy protection is shown in accordance with some embodiments.

[0034] Figure 7 An example computing device that can implement any of the embodiments described herein is shown.

[0035] Figure 8 An example computing device that can implement any of the embodiments described herein is shown. DETAILED DESCRIPTION

[0036] Embodiments disclosed herein provide methods, systems, and apparatuses associated with an ecosystem for managing resource collection activities using blockchain technology. A resource collection activity can involve a process where a party issues a request seeking resource donations, and a plurality of resource owners provide a certain amount of donations in response. For example, a fundraising is a process of seeking and collecting voluntary financial donations by engaging individuals, businesses, charitable foundations, or government agencies. Some embodiments implement a fundraising platform using blockchain-based technology to improve transparency, security, and responsiveness. In such a blockchain-based fundraising platform, a fund requester can submit a blockchain transaction as a fundraising request to a blockchain network. Interested parties can monitor or be notified of the fundraising request through their respective blockchain nodes, and can then voluntarily provide donations. In some cases, the parties involved in the fundraising process can have a preference for a certain degree of privacy protection when making requests / requirements in the blockchain network (e.g., a donor can not want to disclose the amount of donation to other donors, a fundraising requester can not want to disclose the target amount). The technology disclosed herein provides a mechanism for the parties involved in the consensus process in the blockchain to effectively conduct a fundraising activity and enhance privacy protection, such as avoiding disclosure of the donation amount and / or the target amount. Other similar use cases can include donations (e.g., a charitable foundation or a church can request donations), crowdfunding (e.g., a way of raising funds by collecting financial donations from individuals), auctions (e.g., a collective purchase of auction items by some entities), and other transactions.

[0037] As another example, a syndicated loan management platform can be implemented on a blockchain network and integrate various components, such as cloud applications, client applications (including applications for borrowers and / or applications for lenders), application program interfaces, and other suitable components to implement various functionalities related to loan management. In some embodiments, the blockchain-based syndicated loan management platform disclosed herein can allow loan participants (e.g., borrowers and lenders) to efficiently conduct borrowing and repayment operations of loans without disclosing actual amounts of each loan request or loan repayment or even encrypted amounts of the loan requests or repayments. Parties involved can provide blockchain nodes to the blockchain network, participate in consensus processes of the blockchain network, and can interact with various components of the syndicated loan management platform through one or more interfaces provided by the platform.

[0038] For ease of description, embodiments of the claimed technology are described herein with respect to a blockchain-based syndicated loan management platform. It can be apparent to those skilled in the art to migrate the disclosed embodiments to other use cases, such as fundraising, crowdfunding, donation, auction, and other transactions.

[0039] In some embodiments, functionalities provided by the syndicated loan management platform can include receiving loan request transactions, loan completion transactions, and loan repayment transactions from borrowers, loan offer transactions from lenders, recording and updating outstanding debts of borrowers and remaining loan amounts to be raised by lenders, and / or transferring digital assets (e.g., if the assets involved are digital assets including cryptocurrencies) between borrowers and lenders. Each loan request transaction or loan repayment transaction can include an encrypted unit loan amount (e.g., an encrypted unit loan amount or an encrypted repayment amount) instead of a total amount to improve security and privacy. In this way, nodes of the blockchain would not know the size of the loan requested by the borrower. Similarly, each loan offer transaction can include an encrypted number of units (which can be referred to as an encrypted unit number) proposed by the corresponding lender to lend to the borrower, where each unit corresponds to the unit loan amount requested by the borrower. In this way, the lender would not be at risk of putting a total loan amount into the blockchain.

[0040] When a loan request transaction is received from the borrower, the platform can record the encrypted unit loan amount (e.g., unit loan amount) through a smart contract or a blockchain contract. The actual value of the unit loan amount can be communicated to the plurality of lenders in various ways, such as using a channel other than the blockchain, providing a zero-knowledge range proof to the lenders to understand the range of the unit loan amount, submitting a transaction containing the unit loan amount encrypted with the public key of each lender, or other suitable ways. Based on the actual value of the unit loan amount, each lender can determine the number of units to provide to the borrower, where the total loan amount provided can be calculated by the product of the unit loan amount and the number of units. When a plurality of loan offer transactions are received from the plurality of lenders, the platform can record the encrypted number of units to the blockchain through the blockchain contract. By monitoring the received offers, the borrower can select one or more offers to complete the requested loan by submitting a loan completion transaction to the platform. Upon receiving the loan completion transaction, the platform can determine various information including the outstanding debt of the borrower, the loan amount lent to the borrower by each lender, and the like. When a repayment transaction is received from the borrower, the platform can distribute the repayment proportionally to each lender that lent to the borrower.

[0041] For each lender at any time, the “loan share” refers to a fraction (expressed in percentage) whose numerator is the outstanding amount of loan borrowed by the borrower from the lender at that time, and whose denominator is the outstanding amount of all loans borrowed by the borrower from all lenders at that time. The “zero-knowledge range proof” refers to a mechanism that proves a value v in commitment or encryption is within a range without revealing the actual value of v. The “homomorphic encryption” refers to a form of encryption that allows computation on ciphertext, and the resulting encrypted result matches the result of the operation when decrypted, as if the operations are performed on plaintext. The “fully homomorphic encryption” refers to a class of homomorphic encryption that supports arbitrary number of additions and multiplications. The “somewhat homomorphic encryption” (SWHE) refers to another class of homomorphic encryption that supports limited number of additions and multiplications, which is more efficient than the fully homomorphic encryption for the use cases involved in some embodiments.

[0042] Figure 1A network environment associated with a blockchain is shown in accordance with some embodiments. As shown, in environment 100, client 111 can be coupled to server side 118, which and node B can be coupled to blockchain network 112 (also referred to as a blockchain system) through various communication networks. Similarly, server side 118 can optionally be coupled to additional blockchain systems similar to blockchain system 112, such as blockchain system 113, blockchain system 114, etc. Each blockchain system can maintain one or more blockchains.

[0043] In some embodiments, client 111 can include one or more servers (e.g., node C) and one or more other computing devices (e.g., node Al, node A2, node A3). Node Al, node A2, and node A3 can be coupled to node C. In some embodiments, node C can be implemented by an entity (e.g., a website, a mobile phone application, an organization, a company, a business) that has various local accounts (e.g., local accounts accessed from node Al, node A2, node A3). For example, a mobile phone application can have millions of end users accessing the server of the application through respective user accounts. The server of the application can accordingly store millions of user accounts. The components of client 111 and their arrangement can have many other configurations.

[0044] In some embodiments, node B can include a lightweight node. A lightweight node can not download a complete blockchain, but can only download block headers to verify the authenticity of blockchain transactions. A lightweight node can be served by and effectively rely on a full node (e.g., a blockchain node in blockchain system 112) to access more functionalities of the blockchain. A lightweight node can be implemented in an electronic device such as a laptop, a mobile phone, etc. by installing appropriate software.

[0045] In some embodiments, there can be more clients similar to client 111 coupled to server 118. Server 118 can provide a Blockchain-as-a-Service (BaaS) and is referred to as a BaaS cloud. In one embodiment, BaaS is a cloud service model in which customers or developers outsource the behind-the-scenes of a web or mobile application. BaaS can provide pre-written software for activities that occur on a blockchain, such as user authentication, database management, and remote updates. The BaaS cloud can be implemented in a server, a cluster of servers, or other devices. In one embodiment, the BaaS cloud can provide enterprise-grade platform services based on blockchain technology. The service can help customers build a secure and stable blockchain environment and help customers easily manage the deployment, operation, maintenance, and development of the blockchain. Based on the rich security policies and multi-tenant isolation of the cloud, the BaaS cloud can provide advanced security protection using chip encryption technology. Based on highly reliable data storage, the service can provide end-to-end high availability services that can be quickly scaled without interruption. The BaaS cloud can provide native support for standard blockchain applications and data.

[0046] In some embodiments, blockchain system 112 can include a plurality of blockchain nodes (e.g., blockchain node 1, blockchain node 2, blockchain node 3, blockchain node 4, blockchain node i, etc.) that maintain one or more blockchains (e.g., public blockchains, private blockchains, consortium blockchains). Other blockchain systems (e.g., blockchain system 113, blockchain system 114) can include similar arrangements of blockchain nodes that maintain other blockchains. Each blockchain node can be found in one or more blockchain systems. The blockchain nodes of each blockchain system can maintain one or more blockchains. The blockchain nodes can include full nodes. A full node can download each block and blockchain transaction and check against consensus rules of the blockchain. The blockchain nodes can form a network (e.g., a peer-to-peer network) in which the blockchain nodes communicate with each other. The order and number of blockchain nodes shown is merely an example. The blockchain nodes can be implemented in servers, computers, etc. For example, each blockchain node can be implemented in a server or a cluster of servers. The cluster of servers can employ load balancing. Each blockchain node can correspond to one or more physical hardware devices or virtual devices that are coupled together via various types of communication methods such as TCP / IP. Depending on the classification, the blockchain nodes can also be referred to as full nodes, Geth (Go-Etherum, Ethereum based on Go language) nodes, consensus nodes, etc.

[0047] In the environment 100, each node and device can be installed with appropriate software (e.g., application programming interfaces) and / or hardware (e.g., wired, wireless connections) to access other devices of the environment 100. Generally, the nodes and devices are capable of communicating with each other over one or more wired or wireless networks (e.g., the Internet) through which data can be communicated. Each of the nodes and devices can include one or more processors and one or more memories coupled to the one or more processors. The memories can be non-transitory and computer-readable and configured with instructions executable by the one or more processors to cause the one or more processors to perform the operations described herein. The instructions can be stored in the memories or downloaded over the communication network, without necessarily being stored in the memories. Although the nodes and devices are shown as separate components in this figure, it should be understood that these nodes and devices can be implemented as a single device or multiple devices coupled together. For example, the node B can optionally be integrated into the blockchain node 2.

[0048] Devices such as the node Al, the node A2, the node A3, the node B, and the node C can be installed with appropriate blockchain software to create blockchain accounts and initiate, forward, or access blockchain transactions. The term “blockchain transaction” can refer to a unit of work performed in a blockchain system and recorded in a blockchain. For example, the node Al can access the blockchain through communications with the node C, the server end 118, and the blockchain node 1, and the node B can access the blockchain through communications with the blockchain node 2. In some embodiments, the node Al can submit a blockchain account creation request to the node C. The node C can forward this request and other similar requests to the server end 118. The server end 118 can create a blockchain account accordingly.

[0049] In some embodiments, upon receiving a blockchain transaction request for an unconfirmed blockchain transaction, a receiving blockchain node can perform preliminary validation on the blockchain transaction. For example, the blockchain node 1 can perform preliminary validation upon receiving a blockchain transaction from the node C. Once validated, the blockchain transaction can be stored in a database of the receiving blockchain node (e.g., the blockchain node 1), which can also forward the blockchain transaction to one or more other blockchain nodes (e.g., the blockchain node 3, the blockchain node 4). As each blockchain node can include or be coupled to a memory, the database can be stored in the memory of the blockchain node, respectively. The database can store a pool of blockchain transactions submitted by one or more client devices. Upon receiving a blockchain transaction, one or more other blockchain nodes can repeat the processing done by the receiving blockchain node.

[0050] Each blockchain node can select some blockchain transactions from the transaction pool according to its preference and compose a proposed new block of the blockchain. If the blockchain transaction involves a blockchain contract, the blockchain node can execute the blockchain contract locally in a corresponding virtual machine (VM). A blockchain contract can include instructions, code, or programs that are executed automatically by the blockchain system when one or more preset triggering conditions are met. To process the blockchain contract, each blockchain node of the blockchain network can run a corresponding virtual machine and execute the same instructions in the blockchain contract. A virtual machine is a software simulation of a computer system based on computer architecture and provides the functionality of a physical computer. A virtual machine in the blockchain environment can be understood as a system designed to serve as a runtime environment for blockchain contracts.

[0051] A particular blockchain node that successfully mines the proposed new block of blockchain transactions according to the consensus rule can package the new block into its local copy of the blockchain and multicast the result to other blockchain nodes. The particular blockchain node can be the one that first successfully completes the verification, has the privilege of verification, or has been selected based on another consensus rule, etc. Then, other blockchain nodes can follow the same execution order as the particular node, execute the blockchain transactions in the new block locally, verify the execution results with each other (e.g., by performing a hash calculation), and synchronize their copies of the blockchain with the copy of the particular blockchain node. By updating their local copies of the blockchain, other blockchain nodes can similarly write such information in the blockchain transactions to the corresponding local storage. Thus, a blockchain contract can be deployed on the blockchain. If the verification fails at some point, the blockchain transaction is rejected.

[0052] A deployed blockchain contract can have an address according to which the deployed contract can be accessed. A blockchain node can invoke the deployed blockchain contract by inputting certain parameters to the blockchain contract. In one embodiment, node C or node B can request to invoke the deployed blockchain contract to perform various operations. For example, data stored in the deployed blockchain contract can be retrieved. For another example, data can be added to the deployed blockchain contract. For yet another example, a financial transaction specified in the deployed blockchain contract can be executed. Nonetheless, other types of blockchain systems and related consensus rules can be applied to the disclosed blockchain system.

[0053] Figure 2A framework for implementing blockchain transactions is shown in accordance with some embodiments. In some embodiments, a client 111 can send information (e.g., a request with relevant information for creating a blockchain account) to a server 118 for the server 118 to create a blockchain account. To do so, the server 118 can generate an encryption key, compile the request with other account creation requests, and / or perform other operations. The server 118 can then send a blockchain transaction (e.g., blockchain transaction A) containing the compiled account creation request to one or more blockchain nodes for execution.

[0054] In some embodiments, a node B can construct and send a signed blockchain transaction to one or more blockchain nodes for execution. In an embodiment, the node B can construct a blockchain transaction B. The blockchain transaction B can include a blockchain contract B for deployment or a call to a deployed blockchain contract. For example, the blockchain transaction B can include a blockchain contract for creating a blockchain account or a call to a deployed blockchain contract A. The blockchain contract B can be programmed in source code at the user-side application 221. For example, a user or a machine can program the blockchain contract B. The node B can compile the source code using a corresponding compiler that converts the source code to bytecode. The blockchain transaction B can include information such as a nonce (e.g., a blockchain transaction sequence number), a from (e.g., a blockchain address of the node B or another blockchain address), a to (e.g., empty if deploying a blockchain contract), a transaction fee, a value (e.g., a transaction amount), a signature (e.g., a signature of the node B), data (e.g., a message to a contract account), and / or the like. The node B can send the blockchain transaction B to one or more blockchain nodes for execution via a Remote Procedure Call (RPC) interface 223. An RPC is a protocol that a first program (e.g., a user-side application) can use to request a service from a second program in another computer (e.g., a blockchain node) located on a network without having to understand the network details. When the first program causes a process to execute in a different address space, it appears to be a normal (local) process call without the programmer explicitly coding the details of the remote interaction.

[0055] In some embodiments, upon receiving a blockchain transaction (e.g., blockchain transaction A or B), the receiving blockchain can verify whether the blockchain transaction is valid. For example, the signature and other formats can be verified. If the verification is successful, the receiving blockchain node can broadcast the received blockchain transaction (e.g., blockchain transaction A or B) to the blockchain network, which includes various other blockchain nodes. The blockchain transaction can be picked by a certain blockchain node for consensus verification, so as to be packaged into a new block. If the blockchain transaction involves a blockchain contract, the blockchain node can create a contract account of the blockchain contract associated with the blockchain account address. If the blockchain transaction involves invoking a deployed blockchain contract, the blockchain node can trigger its local virtual machine to execute the received blockchain transaction, so as to invoke the deployed blockchain contract from the local copy of the blockchain and update the account state in the blockchain. If the blockchain node successfully mines a new block, the blockchain node can broadcast the new block to other blockchain nodes. The other blockchain nodes can verify that the new block is mined by the blockchain node. If consensus is reached, the blockchain transaction B is packaged into the blockchain local copy maintained by the blockchain node, respectively. The blockchain node can similarly trigger its local virtual machine to execute the blockchain transaction B, so as to invoke the blockchain contract A deployed on the local copy of the blockchain and make corresponding updates.

[0056] Upon receiving the new block, the other blockchain nodes can perform verification. If consensus is reached that the new block is valid, the new block is packaged into the blockchain local copy maintained by the blockchain node, respectively. The blockchain nodes can similarly trigger their local virtual machines (e.g., local virtual machine 1, local virtual machine i, local virtual machine 2) to execute the blockchain transactions in the new block, so as to invoke the local copy of the blockchain (e.g., local blockchain copy 1, local blockchain copy i, local blockchain copy 2) and make corresponding updates. The hardware machine of each blockchain node can access one or more virtual machines, which can be part of or coupled to the respective blockchain node. The respective local virtual machine can be triggered each time to execute the blockchain transaction. Likewise, all other blockchain transactions in the new block will be executed. The light node can also be synchronized with the updated blockchain.

[0057] Figure 3A network environment 300 associated with a blockchain-based loan management system is shown in accordance with some embodiments. As shown, the network environment 300 can include a blockchain network 330 that provides one or more services to a plurality of users, such as loan borrowers 310 and lenders 320. The blockchain network 330 can include a plurality of blockchain nodes 331, each of which maintains a copy of a blockchain hosted by the blockchain network 330 (e.g., a ledger including various data associated with the blockchain). The blockchain can include one or more blockchain contracts 332. The blockchain network 330 can be configured to operate one or more virtual machines and execute the one or more blockchain contracts 332 to implement the one or more services. Once the one or more blockchain contracts are validated and deployed, each of the plurality of blockchain nodes can store a copy of the contract.

[0058] In practice, an individual or entity can be both a loan borrower 310 and a loan lender 320. Each user, such as the loan borrowers 310 and the loan lenders 320, can interact with the blockchain network 330 through one or more client or server systems. Here, the loan borrowers 310 and the loan lenders 320 also refer to computing systems corresponding to the users, respectively. The computing systems associated with the users can interact with the blockchain network 330 through one or more service applications or interfaces. The service applications or interfaces are referred to individually or collectively herein as “service applications.” In some embodiments, the service applications can be installed on one or more client devices associated with one or more of the users 310 and 320. The service applications can provide one or more user interfaces to interact with the one or more services provided by the blockchain network 330. For example, the service applications can allow the loan borrowers 310 to submit a loan request blockchain transaction (e.g., a blockchain transaction to request a loan), a loan completion blockchain transaction (e.g., a blockchain transaction to select one or more loan offers to complete a loan request), or a loan repayment blockchain transaction (e.g., a blockchain transaction to record a loan repayment), and allow the loan lenders 320 to submit a loan offer blockchain transaction (e.g., a blockchain transaction to make an offer in response to a loan request).

[0059] In some embodiments, the blockchain network 330 can include one or more blockchain contracts 332 (e.g., smart contracts) that implement various functionalities to serve the borrower 310 and the lenders 320. One or more blockchain contracts 332 can be executed to run various functionalities related to loan management. The blockchain contract 332 can be executed to process blockchain transactions for requesting a loan, for committing to provide a loan, for selecting a lender, for recording a repayment for a loan, other operations, or any combination thereof. The blockchain contract 332 can also be executed to record and update various information, such as an outstanding debt of a borrower, an outstanding loan amount of each lender, a repayment amount, other suitable information, or any combination thereof. The blockchain contract 332 can be executed to create one or more blockchain transactions that include return values of operations of the blockchain contract 332.

[0060] Figure 4 A blockchain-based loan management method is shown according to some embodiments. As shown, the borrower 310 and the plurality of lenders 320a, 320b can participate in a syndicated loan transaction. The blockchain network 330 can provide necessary services to the borrower 310 and the plurality of lenders (e.g., the lenders 320a, 320b) to implement a syndicated loan management system. Figure 4

[0061] Generally, a syndicated loan can involve two stages: a loan request stage 402 and a loan repayment stage 404. During the loan request stage 402, the borrower 310 can send a loan request to the blockchain network 330 at step 412 to request a loan. The loan request can specify a loan amount in the form of “N times of a unit loan amount v”. The unit loan amount v can refer to a minimum amount of a loan share. For example, a loan request of $10 million can be expressed as one thousand times of a unit loan amount of $1000. In the context of a syndicated loan, the unit loan amount can be referred to as a share or a unit. The borrower 310 can generate a blockchain transaction that contains information associated with the loan request and submit the blockchain transaction to the blockchain network 330 for addition to the blockchain.

[0062] Subsequently, the blockchain network 330 can store the loan request at step 422. For example, the loan request blockchain transaction can specify a blockchain contract (e.g., a smart contract) associated with the blockchain network 330. The blockchain network 330 can consensus-validate the blockchain transaction and add the blockchain transaction to the blockchain. The lenders 320 can continuously or periodically watch the blockchain, and thus can obtain information associated with the loan request from the blockchain.

[0063] ​Once the lender understands the loan request and the corresponding unit loan amount, it can offer a certain number of units as a response to the loan request. For example, in step 423, lender 1 320a can send a loan offer blockchain transaction to blockchain network 330 including a share (e.g., unit) of s1. This share s1 can indicate that lender 1 320a is offering a loan amount of s1*v to fulfill the loan request. Similarly, in step 425, lender k 320b can send a loan offer blockchain transaction to blockchain network 330 including a share of s1*v. k Another loan offer blockchain transaction indicates that the loan amount offered is s% of the unit loan amount. k The borrower 310 or the blockchain network 330 can determine which offers from the lender to fulfill the loan request (not shown).

[0064] During the loan repayment phase 404, in step 413, borrower 310 may send a loan repayment blockchain transaction to blockchain network 330. The loan repayment blockchain transaction may include information about partial repayment in the form of “N times the unit repayment amount a”, where the unit repayment amount “a” is less than or equal to the unit loan amount v in the loan request blockchain transaction. Accordingly, in step 427, blockchain network 330 may update the information stored in the blockchain based on the repayment (e.g., reducing the borrower’s debt and the outstanding loan amount for each lender). Blockchain network 330 may then extract the unit repayment amount a and proportionally distribute the partial repayment to the lenders whose offers were selected to complete the loan. For example, if an offer from lender 1320a with a share (or unit) of s1 is part of the loan, then in step 428, blockchain network 330 may distribute the repayment amount of s1*a to lender 1320a; similarly, if an offer from lender k320b with s1*a is part of the loan, then in step 428, blockchain network 330 may distribute the repayment amount of s1*a to lender 1320a; similarly, if an offer from lender k320b with a share of s1*a is part of the loan, then in step 428, blockchain network 330 may distribute the repayment amount of s1*a to lender 1320a; k If the offer for the share is part of the loan, then in step 429, the blockchain network 330 can... k The repayment amount for *a* is allocated to lender k 320b. In some embodiments, blockchain network 330 may directly allocate the repayment to the lender. In other embodiments, blockchain network 330 may record the loan repayment in response to confirmation that a repayment has occurred.

[0065] exist Figure 4 In the method shown, the blockchain network 330 can store the total amount of loan requests (e.g., N*v), the total loan amount from each lender (e.g., s1*v), the amount of partial repayments (e.g., N*a), and the outstanding loan amount for each lender (e.g., after each repayment).

[0066] Figure 5AA privacy-preserving blockchain-based loan management method is illustrated according to some embodiments. Method 500A in Figure 5 can be applied to… Figure 4 The loan request phase 402 shown may include several steps.

[0067] In some embodiments, in step 512, borrower 310 may submit a loan request blockchain transaction (e.g., a first blockchain transaction) to the blockchain network. Each of the plurality of blockchain nodes 331 associated with the blockchain network may receive the blockchain transaction. The loan request blockchain transaction may include an encrypted unit loan amount. The unit loan amount may be encrypted using one or more homomorphic encryption methods. The loan request may be associated with a total loan amount equal to the unit loan amount multiplied by the total number of units. For example, if borrower 310 wants to request a loan amount that is N (e.g., N = 1000) times the unit loan amount v (e.g., v = $1000), the corresponding loan request blockchain transaction may include a homomorphically encrypted version of v, denoted as ctx. v express.

[0068] In some embodiments, homomorphic encryption schemes may refer to fully homomorphic encryption or homomorphic encryption-like encryption, which support addition or multiplication operations based on ciphertext without decryption. For example, given values ​​x1,…,x u Homomorphic encryption C1,…,C u , where C i =Encrypt(Pk,x i ), i = 1, ..., u, Pk can refer to the public key (e.g., the borrower's public key), x1, ..., x u The homomorphic encryption of the function is represented as F(x1,…,x) u ), can be used with ciphertext C i i = 1, ..., u instead of plaintext x i The calculation is performed for i = 1, ..., u. For example, Encrypt(Pk, F(x1, ..., x...) u )) can be obtained from F(C1,…,C u )Sure.

[0069] In some embodiments, borrower 310 may submit a loan request blockchain transaction with the following payload to a blockchain contract on the blockchain network:

[0070] T request ={#ID a ,ctx v =Encrypt(Pk,v)}

[0071] where Pk can refer to the public key of the borrower, v can refer to the loan amount per share (e.g., per unit or minimum unit), ctx v may refer to a homomorphically encrypted version of v, #ID a may refer to a unique identifier associated with the loan request, Encrypt can refer to a homomorphic encryption operation.

[0072] The plurality of lenders 320 can receive notification of the loan request blockchain transaction in various ways. For example, each lender can watch the blockchain and detect the loan request blockchain transaction. As another example, upon receiving the loan request blockchain transaction, the blockchain contract can submit a plurality of blockchain transactions to the blockchain, and the plurality of lenders can monitor the blockchain and detect the blockchain transactions submitted by the blockchain contract.

[0073] To enable lenders to respond to the loan request with an offer, the lenders can need to know the actual unit loan amount v, or a rough range of the unit loan amount v. In some embodiments, v can be communicated to the lenders by the borrower 310 through a communication channel outside of the blockchain. In other embodiments, the borrower 310 can choose to not disclose v at all, but instead provide a zero-knowledge range proof that v is within a range. Based on the zero-knowledge range proof, the lenders can have a rough idea of the range of the per-share loan amount. The borrower 310 can disclose v to the lenders after the loan is finalized (e.g., after the borrower 310 selects a loan offer from a lender). In some embodiments, the zero-knowledge range proof can be submitted to the blockchain contract as part of the loan request transaction. The blockchain contract can verify the zero-knowledge range proof and add the loan request to the blockchain in step 522.

[0074] In some embodiments, if a lender (e.g., lender i) decides to provide a loan amount in response to the loan request, it can submit a loan offer blockchain transaction (e.g., a second blockchain transaction) to the blockchain network 330. Each of the plurality of blockchain nodes 331 associated with the blockchain network can receive the plurality of loan offer blockchain transactions. Each loan offer blockchain transaction can include an encrypted unit number. In some embodiments, the loan offer blockchain transaction can include the following payload:

[0075]

[0076] where Pk can refer to the public key of the borrower, s i may refer to the number of shares (e.g., units) offered by lender i to the borrower 310, ctx i may refer to a homomorphically encrypted s i , #ID a may refer to a unique identifier associated with the loan request, It can refer to a unique identifier associated with the offer, and Encrypt can refer to a homomorphic encryption operation. For example, as... Figure 5A As shown, in step 523, lender 1 320a can submit a blockchain transaction (e.g., a third blockchain transaction) to blockchain network 330, which contains a loan offer 1 with ctx1. This blockchain transaction can invoke a blockchain contract on blockchain network 330. In step 524, the blockchain contract can store the loan offer 1 in the blockchain on blockchain network 330. For syndicated loans, multiple lenders can participate in jointly providing the requested loan amount. Therefore, in step 525, another lender k 320b can similarly submit a loan offer 1 containing ctx1 to a blockchain contract on blockchain network 330. k The blockchain transaction of the loan offer k, and in step 526, the blockchain network 330 can record such loan offer k on the blockchain.

[0077] In some embodiments, a subset of loan offers from the lender can be selected to complete a loan request. This subset may include some or all of the loan offers from the lender. Each of the plurality of blockchain nodes 331 associated with the blockchain network may receive a loan completion blockchain transaction from the borrower 310. The loan completion blockchain transaction can identify a subset of the loan offers specified by the loan offer transaction. In some embodiments, in step 514, the borrower 310 may make a selection by submitting a loan completion blockchain transaction to the blockchain network 330. In some embodiments, because the amount of the requested unit loan amount may not be submitted to the blockchain network 330 or may be submitted in encrypted form, one or more blockchain contracts 332 associated with the blockchain network 330 may not be configured to select loan offers and may rely on a loan completion blockchain transaction from the borrower 310 for selection.

[0078] Here, borrower 310 can read loan offers from the blockchain associated with blockchain network 330. Since the loan amount in the loan offer is encrypted with the borrower's public key, borrower 310 can decrypt the share quantity in each loan offer using their private key to make a selection. The loan offer selection process can be implemented in various ways. For example, the loan offers can be arranged in chronological order. If a first-come, first-served basis is required for selecting loan offers, the loan completion blockchain transaction can include a number K representing the selection of the first K loan offers. The corresponding payload can be represented as follows:

[0079] T finalizing ={#ID a ,K}

[0080] Among them #ID amay refer to a unique identifier associated with the loan request.

[0081] In some cases, the loan completion blockchain transaction can further include an encrypted number of remaining units for one of the selected subset of second blockchain transactions (e.g., loan offer blockchain transactions), where the encrypted number of remaining units is less than the corresponding encrypted number of units of the second blockchain transaction.

[0082] For example, T finalizing It can be required to partially select one or more loan offers (e.g., only a portion of a loan offer is required). For example, if the borrower 310 requests N units of a loan amount v, and and (e.g., the first k-1 loan offers are not enough to satisfy the loan request, but the first k loan offers exceed the requested loan amount), the borrower 310 can specify one loan offer and a corresponding number of shares to be selected from the loan offer. For example, the corresponding payload can be expressed as follows:

[0083] T finalizing = {#ID a , K-1, ctx k}

[0084] where #ID a may refer to a unique identifier associated with the loan request, K-1 can indicate that the first K-1 loan offers are selected in their entirety, and the Kth offer can be selected in part. Specifically, ctx k refers to a homomorphic encryption version of a number of shares (e.g., number of remaining units) to be selected from the corresponding Kth offer.

[0085] In some embodiments, if the loan offers are not required to be selected based on a first-come-first-serve approach, the borrower 310 can select the loan offers using a corresponding identifier. In this case, T finalizing the payload can include a list of identifiers of the blockchain transactions of the selected loan offers. In some embodiments, one or more of the selected loan offers can be selected in part.

[0086] In some embodiments, after selecting loan offers based on the loan completion blockchain transaction, the blockchain network 330 can execute the blockchain contract to determine and store the encrypted loan amount corresponding to each selected loan offer based on the encrypted unit loan amount and the encrypted unit number in each selected loan offer, and determine and store the encrypted debt amount corresponding to the loan borrowing blockchain transaction. The encrypted debt amount can include the sum of the encrypted loan amounts corresponding to each selected loan offer. For example, at step 527, the blockchain contract can read the selected loan offers from the blockchain and record a table of homomorphically encrypted debt of the borrower and homomorphically encrypted outstanding loan amount of the lender on the blockchain. For simplicity, assume that the top K lenders (e.g., top K loan offers) are selected, and the table can be created as Table 1. Here, the table is used as an exemplary data structure for the purpose of description. The information related to the loan can be stored in the blockchain in any suitable data structure.

[0087]

[0088] Table 1

[0089] For lender i, i = 1,... k, the encrypted outstanding loan amount Encrypt(Pk, vs i ) can be calculated as the product of the encrypted unit loan amount (e.g., ctx request in the loan request blockchain transaction T v ) and the corresponding encrypted unit number (e.g., ctx in the loan offer blockchain transaction i from lender i). For the borrower 310, the debt (e.g., loan amount) can be calculated directly based on the encrypted outstanding loan amount of each lender.

[0090] In some embodiments, after the loan is finally completed, the blockchain network 330 can submit multiple blockchain transactions to update the account balances of the borrower and each lender to reflect the asset transfer corresponding to the loan transaction.

[0091] Figure 5B A blockchain-based loan management method with privacy protection is shown according to some embodiments. Figure 5B The method 500B in Figure 4 can be applicable to the loan repayment phase 404 in

[0092] As Figure 5BAs shown, in step 516, the borrower 310 can submit a repayment blockchain transaction (e.g., a fourth blockchain transaction) to the blockchain network 330. Each of the plurality of blockchain nodes associated with the blockchain network can receive the repayment blockchain transaction including the encrypted unit repayment amount. In some embodiments, the repayment blockchain transaction can include a homomorphically encrypted version of the repayment amount (e.g., a minimum fraction or unit of repayment). For example, the payload of the repayment blockchain transaction can be represented as follows:

[0093]

[0094] where Pkmay refer to the public key of the borrower, may refer to the first repayment blockchain transaction submitted by the borrower 310, #ID a may refer to a unique identifier associated with the loan request, a1may refer to the repayment amount that the borrower 310 is paying, may refer to the homomorphically encrypted a1, Encryptmay refer to the homomorphic encryption operation. In some embodiments, the repayment blockchain transaction can also include a zero-knowledge range proof that v-a1> 0.

[0095] In some embodiments, after the blockchain contract on the blockchain network 330 receives the first repayment blockchain transaction, the blockchain network 330 can execute through the blockchain contract to update the encrypted loan amount corresponding to each selected loan offer (e.g., loan offer blockchain transaction) based on the encrypted unit repayment amount and the encrypted unit number in each selected loan offer, and update the encrypted debt amount, the encrypted unit repayment amount, and the encrypted unit number in each selected loan offer corresponding to the loan request blockchain transaction. In some embodiments, updating the encrypted loan amount can include determining an encrypted sum of the encrypted unit number in each selected loan offer blockchain transaction, determining an encrypted difference between the encrypted unit loan amount and the encrypted unit repayment amount, and updating the encrypted loan amount as a product of the encrypted difference and the encrypted sum.

[0096] For example, the blockchain contract can update the table in Table 1 to Table 2, still assuming that the top K lenders (e.g., the top K loan offers) are selected.

[0097]

[0098] Table 2

[0099] With the homomorphic property of the adopted encryption scheme, the blockchain contract can directly compute the debt or loan amount of the borrower from the ciphertexts ctx v , and ctx i , i = 1,... k (e.g., (encryption). For example, the borrower's debt in Table 2 is represented as... In this context, the borrower's public key Pk is known, and Encrypt(v) corresponds to ctx. v And it refers to the encrypted unit loan amount, Encrypt(a1) corresponds to And this refers to the encrypted repayment amount. Corresponding to ctx i , i = 1, ..., k and refers to the cryptographic sum of the number of cryptographic units (e.g., the number of shares) in each second blockchain transaction (e.g., a loan offer).

[0100] Blockchain contracts can also use encrypted ctx v , The encrypted outstanding loan amount for lender 1 in the ctx1 table is updated (e.g., Encrypt(Pk, (v-a1)s1), encrypted (v-a1)*s1), as in step 528. Similarly, blockchain contracts can also use ciphertext ctx. v , and ctx k Update the encrypted outstanding loan amount of lender k (e.g., (v-a1)*s) k The encrypted outstanding loan amount in the updated table can be represented as the blockchain network 330 distributing repayments to the lender, for example... Figure 5B Steps 529a and 529b in the text.

[0101] After submitting m repayment blockchain transactions to the blockchain contract, the table on the blockchain may become Table 3.

[0102]

[0103] Table 3

[0104] Where j represents the index of the repayment blockchain transaction, This represents the outstanding debt of the borrower after m repayments. This represents the outstanding loan amount for the i-th lender after m repayments.

[0105] It is understandable that the formulas in Table 3 are exemplary, and encrypted debt and encrypted outstanding loan amounts can be determined in various other ways. For example, upon receiving a repayment blockchain transaction, the blockchain contract can update the table based on the most recently updated table, thus only considering the current repayment blockchain transaction.

[0106] Figure 6A blockchain-based loan management method with privacy protection is shown according to some embodiments. The method 600 can be performed by a device, apparatus, or system for providing personalized services for a user. The method 600 can be performed by one or more components of the illustrated arrangement, such as the computing system 102 and the computing device 220. According to embodiments, the method 600 can include additional, fewer, or alternative steps performed in various orders or in parallel. Figure 1 The method 600 can be performed by one or more components of the illustrated arrangement, such as the computing system 102 and the computing device 220. According to embodiments, the method 600 can include additional, fewer, or alternative steps performed in various orders or in parallel.

[0107] Block 610 includes a blockchain node associated with a blockchain receiving a first blockchain transaction, the first blockchain transaction containing an encrypted unit loan amount associated with a loan request, wherein the loan request is associated with a total loan amount, the total loan amount being equal to the unit loan amount multiplied by a unit total number.

[0108] Block 620 includes the blockchain node receiving a plurality of second blockchain transactions, each second blockchain transaction including an encrypted unit number. In some embodiments, the first blockchain transaction further includes a first unique identifier; each second blockchain transaction further includes the first unique identifier of the first blockchain transaction and a second unique identifier.

[0109] Block 630 includes the blockchain node receiving a third blockchain transaction specifying a subset of the second blockchain transactions. In some embodiments, the third blockchain transaction further includes an encrypted remaining unit number of one of the subset of the second blockchain transactions, wherein the encrypted remaining unit number is less than the encrypted unit number corresponding to the second blockchain transaction. In some embodiments, the third blockchain transaction includes a plurality of second unique identifiers respectively corresponding to the subset of the second blockchain transactions. In some embodiments, the second blockchain transactions are ordered in a chronological order, and the third blockchain transaction includes a number K representing that the first K second blockchain transactions are included in the subset of the second blockchain transactions.

[0110] Block 640 includes the blockchain node executing a blockchain contract associated with the blockchain to determine and store an encrypted loan amount corresponding to each of the second blockchain transactions in the subset based on the encrypted unit loan amount and the encrypted unit number in the second blockchain transaction. In some embodiments, the encrypted loan amount corresponding to each of the second blockchain transactions in the subset includes a product of the encrypted unit loan amount and the encrypted unit number associated with the second blockchain transaction.

[0111] In some embodiments, the encrypted unit loan amount, the encrypted unit number, and the encrypted loan amount are generated based on a homomorphic encryption scheme. In some embodiments, the homomorphic encryption scheme is a quasi-homomorphic encryption scheme based on a public key associated with the first computing system.

[0112] In some embodiments, the method 600 can further include: the blockchain node receiving a fourth blockchain transaction containing an encrypted unit repayment amount; and the blockchain node executing the blockchain contract to update the encrypted loan amount corresponding to each second blockchain transaction in the subset based on the encrypted unit repayment amount and the encrypted number of units in the second blockchain transaction. In some embodiments, executing the blockchain contract to update the encrypted loan amount corresponding to each second blockchain transaction in the subset includes, for each of the second blockchain transactions in the subset, the blockchain node executing the blockchain contract to: determine an encrypted difference between the encrypted unit loan amount and the encrypted unit repayment amount; and update the encrypted loan amount to be a product of the encrypted difference and the encrypted number of units in the second blockchain transaction.

[0113] In some embodiments, the method 600 can further include: the blockchain node executing the blockchain contract to determine and store an encrypted debt amount corresponding to the first blockchain transaction, the encrypted debt amount comprising a sum of the encrypted loan amount corresponding to each second blockchain transaction in the subset.

[0114] In some embodiments, the method 600 can further include: the blockchain node receiving a fourth blockchain transaction containing an encrypted unit repayment amount; and the blockchain node executing the blockchain contract to update the encrypted debt amount corresponding to the first blockchain transaction based on the encrypted unit loan amount, the encrypted unit repayment amount, and the encrypted number of units in each second blockchain transaction in the subset.

[0115] In some embodiments, the method 600 can further include: the first computing system associated with the first blockchain transaction sending the unit loan amount to one or more second computing systems associated with the plurality of second blockchain transactions through a channel other than the blockchain.

[0116] In some embodiments, the method 600 can further include: the blockchain node receiving a zero-knowledge range proof that purports to contain a range of the unit loan amount and a range within which the unit loan amount lies.

[0117] Figure 7 A block diagram of a blockchain-based loan management computer system is shown in accordance with some embodiments. The computer system 700 can be an example of the implementation of one or more modules in the blockchain network 330, or an example of the implementation of one or more modules in the computing system 100. Figure 3 A block diagram of a blockchain-based loan management computer system is shown in accordance with some embodiments. The computer system 700 can be an example of the implementation of one or more modules in the blockchain network 330, or an example of the implementation of one or more modules in the computing system 100. Figures 1-2One or more other components shown in FIG. 1 can be included. The method 600 can be implemented by the computer system 700. The computer system 700 can include one or more processors and one or more non-transitory computer-readable storage media (e.g., one or more memories) coupled to the one or more processors and configured with instructions executable by the one or more processors to cause a system or device (e.g., a processor) to perform the methods described above, such as the method 600. The computer system 700 can include various units / modules corresponding to the instructions (e.g., software instructions).

[0118] In some embodiments, the computer system 700 can be referred to as an apparatus that manages loan transactions in a blockchain environment. The apparatus can include a first receiving module 710 for receiving, by a blockchain node associated with a blockchain, a first blockchain transaction containing an encrypted unit loan amount associated with a loan request, wherein the loan request is associated with a total loan amount equal to a unit total multiplied by a unit loan amount; a second receiving module 720 for receiving, by the blockchain node, a plurality of second blockchain transactions, each second blockchain transaction including an encrypted unit number; a third receiving module 730 for receiving, by the blockchain node, a third blockchain transaction specifying a subset of the second blockchain transactions; and an executing module 740 for executing, by the blockchain node, a blockchain contract associated with the blockchain to determine and store, based on the encrypted unit loan amount and the encrypted unit number in each second blockchain transaction in the subset, an encrypted loan amount corresponding to the second blockchain transaction.

[0119] The techniques described herein are implemented by one or more special purpose computing devices. The special purpose computing devices can be a desktop computer system, a server computer system, a portable computer system, a handheld device, a network device, or any other device or combination of devices that implements the techniques in conjunction with hard-wired and / or programmatic logic. The special purpose computing device can be implemented as a personal computer, a laptop computer, a cellular telephone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination thereof. The computing device generally can be controlled and coordinated by operating system software. Conventional operating systems control and schedule computer processes for execution, perform memory management, provide file system, networking, I / O services, and provide a user interface functionality, such as a graphical user interface (“GUI”), among other things. The various systems, apparatus, storage media, modules, and units described herein can be implemented in a special purpose computing device or one or more computing chips of one or more special purpose computing devices. In some embodiments, the instructions described herein can be implemented in a virtual machine on the special purpose computing device. When executed, the instructions can cause the special purpose computing device to perform the various methods described herein. The virtual machine can include software, hardware, or a combination thereof.

[0120] Figure 8 An example computer device that can implement any of the embodiments described herein is shown. The computing device 800 can be used to implement one or more components of the methods and systems shown. The computing device 800 can include a bus 802 or other communication mechanism for communicating information, and a one or more hardware processors 804 coupled with the bus 802 for processing information. The hardware processor(s) 804 can be one or more general purpose microprocessors. Figures 1-7

[0121] The computing device 800 also can include a main memory 808, such as a random access memory (RAM), cache and / or other dynamic storage, coupled with the bus 802 for storing information and instructions to be executed by the processor(s) 804. The main memory 808 also can be used for storing temporary variables or other intermediate information during execution of instructions to be executed by the processor(s) 804. Such instructions can be stored or carried on a storage medium 809, such as a magnetic disk, magnetic tape, optical disk, solid state memory, or any other storage medium, which can be external to the computing device 800. The storage medium 809 can be removable and / or non-removable.

[0122] The computing device 800 can implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and / or program logic which in combination with the computer system causes or programs the computing device 800 to be a special-purpose machine. According to one embodiment, the operations, methods, and processes described herein are performed by the computing device 800 in response to the processor(s) 804 executing one or more sequences of one or more instructions contained in the main memory 808. Such instructions can be read into the main memory 808 from another storage medium, such as the storage device 809. Execution of the sequences of instructions contained in the main memory 808 causes the processor(s) 804 to perform the process steps described herein. One or more sequences of instructions can be implemented using firmware, for example, one or more ASICs or FPGAs, discrete hardware components, or using program logic which in combination with the computer system causes or programs the computing device 800 to be a special-purpose machine. The instructions can be stored in the main memory 808 and / or the storage device 809. The instructions represented by program logic or code can be implemented using one or more software modules, which can be stored on the storage device 809 and / or the main memory 808. When executed by the processor(s) 804, the instructions cause the computing device 800 to perform the steps necessary to provide the functions and processes described herein. The one or more sequences of instructions represented by the program logic or code can be stored as a software routine, a program, a routine, a method, or the like, which can be executed by the processor(s) 804. The software routine, program, routine, method, or the like, can be implemented in any desired computer language (including machine, object, interpreted, or other languages) using any desired computer readable medium.

[0123] ​The computing device 800 also includes a communication interface 810 coupled to bus 802. The communication interface 810 provides a two-way data communication coupling to one or more network links that are connected to one or more local networks. As another example, the communication interface 810 can be a local area network (LAN) card to provide data communication connection to a compatible LAN (or WAN component to have WAN communication). Wireless links can also be implemented.

[0124] The performance of certain of the operations can be distributed among the processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processors or processor-implemented engines can be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the processors or processor-implemented engines can be distributed across a number of geographic locations.

[0125] Each of the processes, methods, and algorithms described in the preceding sections can be embodied in, and fully or partially automated by, code modules executed by one or more computer systems or computer processors comprising computer hardware. The processes and algorithms can be implemented partially or wholly in dedicated circuits or hardware that the processes or algorithms are built into.

[0126] When the functions disclosed herein are implemented in the form of software function units and sold or used as independent products, they can be stored in a non-volatile computer readable storage medium that can be executed by a processor. The specific technical solutions disclosed herein (all or part) or aspects that facilitate the current technology can be embodied in the form of a software product. The software product can be stored in a storage medium, including a number of instructions to make a computing device (which can be a personal computer, a server, a network device, etc.) execute all or part of the steps of the methods in the embodiments of the present application. The storage medium can include a flash drive, a portable hard drive, a ROM, a RAM, a magnetic disk, an optical disk, another medium that can be used to store program codes, or any combination thereof.

[0127] The specific embodiments also provide a system including a processor and a non-transitory computer-readable storage medium having stored instructions executable by the processor to cause the system to perform operations corresponding to the steps in any of the methods of the above-described embodiments. The specific embodiments also provide a non-transitory computer-readable storage medium configured with instructions executable by one or more processors to cause the one or more processors to perform operations corresponding to the steps in any of the methods of the above-described embodiments.

[0128] The embodiments disclosed herein can be implemented by a cloud platform, a server or a group of servers (hereinafter collectively referred to as a “service system”) that interact with a client. The client can be a terminal device or a client registered by a user on the platform, wherein the terminal device can be a mobile terminal, a personal computer (PC), and any device that can install a platform application.

[0129] The various features and processes described herein can be used independently of one another or can be combined in various ways. All possible combinations and subcombinations are intended to fall within the scope of the present disclosure. In addition, some of the method or process blocks described herein can be omitted in some implementations. The methods and processes described herein are also not limited to any particular order or sequence, and the blocks or states relating thereto can be performed in other suitable orders or sequences. For example, blocks or states described as following other blocks or states can be performed prior to those other blocks or states. Blocks or states can be added to or removed from the example embodiments disclosed, and the example embodiments described herein can be combined with one another in various ways. The example systems and components described herein can be configured differently than described. For example, elements can be added to, removed from, or rearranged compared to the disclosed example embodiments.

[0130] The various operations of example methods described herein can be performed, at least partially, by an algorithm. The algorithm can be embodied in program code or instructions stored in memory (e.g., the non-transitory computer-readable storage medium described above). Such an algorithm can include a machine learning algorithm. In some embodiments, a machine learning algorithm can not explicitly program a computer to perform a function, but can learn from training data to make a predictive model that performs the function.

[0131] The various operations of example methods described herein can be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors can constitute processor-implemented engines that run to execute one or more operations described herein.

[0132] Similarly, the methods described herein can be at least partially processor- implemented, with a particular processor or processors being an example of hardware. For example, at least some of the operations of a method can be performed by one or more processors or processor-implemented engines. Also, one or more processors can operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations can be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., an application program interface (API)).

[0133] The performance of certain of the operations can be distributed among the processors not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processors or processor- implemented engines can be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the processors or processor-implemented engines can be distributed across a number of geographic locations.

[0134] Throughout this specification, plural instances can implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations can be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations can be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component can be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter of this document.

[0135] Although the subject matter has been described in language specific to structural features, methodological acts, or computer symbolic representations, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific ordering of acts or specific programming of features illustrated. Specific examples of components and procedures are described herein, including the interpretation of diagrams and the interpretation of diagrams that represent signal flow among other powered devices and computing machines. These components and procedures can have different manifestations. For example, specific shapes and dimensions of the particular hardware can be more or less desirable for a given application or rendering, and the specific sequences of the various features of the flow in the diagrams can have different sequences within particular applications. Further, the use of terms such as "include," "include

[0136] The embodiments described herein are described in sufficient detail to enable those skilled in the art to practice the disclosed subject matter. Other embodiments can be utilized and derived therefrom, such that structural and logical substitutions and changes can be made without departing from the scope of the disclosure. The preceding description, therefore, is not to be taken in a limiting sense, and the scope of each individual embodiment is defined by the appended claims, along with the full range of equivalents to which such claims are entitled.

[0137] Any process descriptions, elements, or blocks in the flow diagrams described herein and / or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process. Alternate implementations are included within the scope of the embodiments described herein in which elements or functions can be deleted, executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those skilled in the art.

[0138] As used herein, "or" is inclusive and not exclusive, unless expressly indicated otherwise or understood by context. Therefore, herein, "A, B, or C" means "A, B, A and B, A and C, B and C, or A and B and C" unless otherwise expressly specified or understood by context. Moreover, "and" is both conjunctive and disjunctive unless otherwise expressly stated or understood by context. Therefore, herein, "A and B" means "A and B, either conjunctively or disjunctively" unless otherwise expressly stated or understood by context. Additionally, multiple instances of a resource, operation, or structure described herein as a single instance can be provided. Moreover, the separation of various resources, operations, engines, and data stores is arbitrary insofar as a particular operational arrangement is described in the context of a particular illustrative configuration. Other allocations of functionality are possible and can be made in accordance with various embodiments of the disclosure. In general, structures and functionality presented as separate resources in the example configurations can be implemented as a combined structure or resource. Similarly, structures and functionality presented as a single resource can be implemented as separate resources. These and other variations, modifications, additions, and improvements fall within the scope of the embodiments of the present disclosure as represented by the appended claims. The specification and drawings should be regarded as illustrative rather than restrictive. The foregoing description details certain embodiments of the disclosure. It will be appreciated, however, that no matter how detailed the above appears in text, the embodiments can be practiced in many ways, and that the disclosure is not limited to the disclosed embodiments. It should be noted that the use of particular terminology when describing certain features or aspects of the disclosure should not be taken to indicate that such terminology is being redefined herein to be restricted to include any specific characteristics of the features or aspects of the disclosure with which that terminology is associated.

[0139] The terms "comprise" or "comprising" are used in the sense of "including" rather than other terminology (e.g., "consisting of") to mean that other items can also be present. Conditional language, such as "can," "could," "might," or "may," unless specifically stated otherwise, or otherwise understood within the context as used, is generally intended to convey that a certain embodiment includes, while other embodiments do not include, certain features, elements, and / or steps. Thus, such conditional language is not generally intended to imply that features, elements, and / or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, elements, and / or steps are included or are to be performed in any specific embodiment.

Claims

1. A computer-executed blockchain-based loan management method, comprising: A blockchain node associated with the blockchain receives a first blockchain transaction containing an encrypted unit loan amount associated with a loan request, wherein the loan request is associated with a total loan amount equal to the unit loan amount multiplied by the total number of units. The blockchain node receives multiple second blockchain transactions, each of which includes a number of encrypted units; The blockchain node receives third blockchain transactions that specify a subset of the second blockchain transactions; and The blockchain node executes a blockchain contract associated with the blockchain to determine and store the encrypted loan amount corresponding to the second blockchain transaction based on the encrypted unit loan amount and the number of encrypted units in each second blockchain transaction in the subset. The encrypted unit loan amount, the encrypted number of units, and the encrypted loan amount are generated based on a homomorphic encryption scheme.

2. The method according to claim 1, further comprising: The blockchain node receives a fourth blockchain transaction containing an encrypted unit repayment amount; as well as The blockchain node executes the blockchain contract to update the encrypted loan amount corresponding to the second blockchain transaction based on the encrypted unit repayment amount and the number of encrypted units in each second blockchain transaction in the subset.

3. The method according to claim 2, wherein, The execution of the blockchain contract to update the encrypted loan amount corresponding to the second blockchain transaction includes, for each of the second blockchain transactions in the subset, the blockchain node executing the blockchain contract to: Determine the encrypted difference between the encrypted unit loan amount and the encrypted unit repayment amount; as well as The encrypted loan amount is updated to the product of the encrypted difference and the encrypted number of units in the second blockchain transaction.

4. The method according to claim 1, further comprising: The blockchain node executes the blockchain contract to determine and store the encrypted debt amount corresponding to the first blockchain transaction, the encrypted debt amount including the sum of the encrypted loan amounts corresponding to each of the second blockchain transactions in the subset.

5. The method according to claim 4, further comprising: The blockchain node receives a fourth blockchain transaction containing an encrypted unit repayment amount; as well as The blockchain node executes the blockchain contract to update the encrypted debt amount corresponding to the first blockchain transaction based on the encrypted unit repayment amount and the number of encrypted units in each of the second blockchain transactions in the subset.

6. The method according to claim 1, further comprising: A first computing system associated with the first blockchain transaction sends the unit loan amount to one or more second computing systems associated with the plurality of second blockchain transactions through a channel outside the blockchain.

7. The method according to claim 1, further comprising: The blockchain node receives a zero-knowledge range proof that claims to include the range of the unit loan amount, and that the unit loan amount is within the claimed range.

8. The method according to claim 1, wherein, The homomorphic encryption scheme is a similar homomorphic encryption scheme SWHE based on the public key associated with the first blockchain transaction.

9. The method according to claim 1, wherein, The first blockchain transaction also includes a first unique identifier; and Each of the plurality of second blockchain transactions also includes the first unique identifier and the second unique identifier of the first blockchain transaction.

10. The method according to claim 9, wherein, The third blockchain transaction includes a plurality of second unique identifiers, each corresponding to a different second blockchain transaction in the subset.

11. The method according to claim 9, wherein, The multiple second blockchain transactions are ordered in chronological order, and The third blockchain transaction includes a number K, where K represents the first K second blockchain transactions among the plurality of second blockchain transactions to be included in the subset of the second blockchain transactions.

12. The method according to claim 1, wherein, For a second blockchain transaction within the subset of the second blockchain transactions, the third blockchain transaction further includes the encrypted remaining units of the second blockchain transaction, wherein the encrypted remaining units are less than the encrypted units corresponding to the second blockchain transaction.

13. The method according to claim 1, wherein, The encrypted loan amount corresponding to each second blockchain transaction in the subset includes: the product of the encrypted unit loan amount and the number of encrypted units associated with the second blockchain transaction.

14. A non-transitory computer-readable storage medium configured with instructions executable by one or more processors to cause the one or more processors to perform the method as claimed in any one of claims 1 to 13.

15. A blockchain-based loan management apparatus comprising a plurality of modules for performing the method as described in any one of claims 1 to 13.

16. A blockchain-based loan management system, comprising one or more processors and one or more non-transitory computer-readable storage devices, the storage devices being coupled to the one or more processors and configured with instructions executable by the one or more processors to cause the system to perform operations including: Receive a first blockchain transaction, the first blockchain transaction containing an encrypted unit loan amount associated with the loan request, wherein, The loan request is associated with a total loan amount, which is equal to the unit loan amount multiplied by the total number of units; Receive multiple second blockchain transactions, each of which includes a number of encrypted units; Receive third blockchain transactions that specify a subset of the second blockchain transactions; as well as Execute the blockchain contract associated with the blockchain to determine and store the encrypted loan amount corresponding to the second blockchain transaction based on the encrypted unit loan amount and the number of encrypted units in each second blockchain transaction in the subset; The encrypted unit loan amount, the encrypted number of units, and the encrypted loan amount are generated based on a homomorphic encryption scheme.

17. The system of claim 16, further comprising: Receive fourth-chain transactions containing encrypted unit repayment amounts; as well as Execute the blockchain contract to update the encrypted loan amount corresponding to the second blockchain transaction based on the encrypted unit repayment amount and the number of encrypted units in each second blockchain transaction in the subset.

18. The system of claim 16, further comprising: The blockchain contract is executed to determine and store the encrypted debt amount corresponding to the first blockchain transaction, the encrypted debt amount including the sum of the encrypted loan amounts corresponding to each of the second blockchain transactions in the subset.

19. The system of claim 18, further comprising: Receive fourth-chain transactions containing encrypted unit repayment amounts; as well as The blockchain contract is executed to update the encrypted debt amount corresponding to the first blockchain transaction based on the encrypted unit repayment amount and the number of encrypted units in each of the second blockchain transactions in the subset.

20. The system of claim 16, further comprising: Receive a zero-knowledge range proof that claims to include the range of the unit loan amount, and that the unit loan amount is within the claimed range.

Citation Information

Patent Citations

  • Block chain-based loan information processing method and device, equipment and storage medium

    CN110634065A

  • Fund business processing method and device based on block chain, equipment and medium

    CN110969524A