Block chain transaction processing method and device, electronic equipment and storage medium

By generating temporary public and private keys and using obfuscation contracts to transfer resources to the target address, the problem of privacy exposure of commonly used account addresses is solved, and efficient privacy protection is achieved.

CN120655294APending Publication Date: 2025-09-16TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410286215.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-03-13
Publication Date
2025-09-16

AI Technical Summary

Technical Problem

In the existing technology, commonly used account addresses easily expose relevant information of the resource owner, cannot effectively protect the privacy of the resource source, and have low privacy protection efficiency.

Method used

By generating a temporary public key and a temporary private key, generating a target address, and controlling the target private key, virtual resource transfer is performed. The obfuscated contract is used to transfer the resources to the target address, avoiding direct association with the resource owner.

Benefits of technology

It improves the privacy of blockchain transactions, protects the privacy of resource sources, and improves the efficiency of privacy protection by only initiating a single transaction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120655294A_ABST
    Figure CN120655294A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a block chain transaction processing method and device, electronic equipment and a storage medium, a confusion agent generates a temporary public key and a temporary private key corresponding to a first transaction, and then generates a target address according to the first public key and the temporary private key corresponding to the first transaction; after the confusion contract receives the second virtual resource of the second object, the second virtual resource is transferred to the target address controlled by the first object, and the first transaction is used for transferring the first virtual resource of the first object to the confusion contract, so that the subsequent first object can transfer the second virtual resource in the target address, and the user experience is improved. The target address cannot be directly associated with the first object, so that the privacy of the resource source can be protected in the block chain transaction of the first object, the privacy of the block chain transaction is improved, and the method can be widely applied to scenes such as cloud technology, block chains and smart traffic.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to a blockchain transaction processing method, device, electronic device, and storage medium. Background Art

[0002] With the continuous development of blockchain technology, the need for privacy in virtual resources has become increasingly prominent. Currently, resource owners typically use commonly used account addresses to transfer virtual resources. However, these commonly used account addresses easily expose relevant information about the resource owner and fail to protect the privacy of the resource source. Related technologies can protect the privacy of resource sources by hiding account addresses. However, these technologies often require the initiator of a transaction to perform multiple operations, reducing the effectiveness of privacy protection. Summary of the Invention

[0003] The following is an overview of the subject matter described in detail in this application. This overview is not intended to limit the scope of protection of the claims.

[0004] The embodiments of the present application provide a blockchain transaction processing method, device, electronic device, and storage medium, which can protect the privacy of resource sources and improve the efficiency of privacy protection.

[0005] In one aspect, an embodiment of the present application provides a blockchain transaction processing method, which is applied to an obfuscation proxy. The blockchain transaction processing method includes:

[0006] Generate a temporary public key and a temporary private key corresponding to a first transaction, wherein the first transaction is used to transfer a first virtual resource of a first object to an obfuscation contract;

[0007] Obtaining a first public key corresponding to the first transaction, and generating a target address based on the first public key and the temporary private key, wherein the target address is controlled by a target private key, and the target private key is determined by the first object based on the temporary public key and a first private key corresponding to the first public key;

[0008] The target address is sent to the obfuscation contract, so that the obfuscation contract transfers the second virtual resource to the target address after receiving the second virtual resource of the second object, wherein the value of the second virtual resource is the same as the value of the first virtual resource.

[0009] On the other hand, an embodiment of the present application further provides a blockchain transaction processing method, which is applied to an obfuscated contract. The blockchain transaction processing method includes:

[0010] Obtaining a target address sent by the obfuscation agent, wherein the target address is generated by the obfuscation agent based on a first public key and a temporary private key corresponding to a first transaction, the first transaction being used to transfer a first virtual resource of a first object to an obfuscation contract, the target address being controlled by a target private key, and the target private key being determined by the first object based on the temporary public key and a first private key corresponding to the first public key;

[0011] After receiving a second virtual resource of a second object, the second virtual resource is transferred to the target address, wherein a value of the second virtual resource is the same as a value of the first virtual resource.

[0012] On the other hand, an embodiment of the present application further provides a blockchain transaction processing device, the blockchain transaction processing device comprising:

[0013] A first generation module, configured to generate a temporary public key and a temporary private key corresponding to a first transaction, wherein the first transaction is used to transfer a first virtual resource of a first object to an obfuscation contract;

[0014] a second generation module, configured to obtain a first public key corresponding to the first transaction, and generate a target address based on the first public key and the temporary private key, wherein the target address is controlled by a target private key, and the target private key is determined by the first object based on the temporary public key and a first private key corresponding to the first public key;

[0015] The first sending module is configured to send the target address to the obfuscation contract, so that the obfuscation contract transfers the second virtual resource to the target address after receiving the second virtual resource of the second object, wherein the value of the second virtual resource is the same as the value of the first virtual resource.

[0016] Furthermore, before generating the temporary public key and temporary private key corresponding to the first transaction, the blockchain transaction processing apparatus further includes:

[0017] A second acquisition module is used to obtain the proxy account address of the obfuscation agent and the contract address of the obfuscation contract;

[0018] A construction module is used to construct a second transaction based on the proxy account address and the contract address, wherein the second transaction is used to transfer a third virtual resource of the proxy account address to the obfuscation contract, and the value of the third virtual resource is greater than or equal to the value of the first virtual resource.

[0019] Furthermore, the number of the first transactions is multiple, and the blockchain transaction processing device further includes:

[0020] a third acquisition module, configured to acquire a third transaction initiated by the first object, wherein the third transaction is used to send the first public key to the obfuscation contract and transfer the fourth virtual resource of the first object to the obfuscation contract;

[0021] The second sending module is used to obtain the first public key from the third transaction, and send the first public key and the temporary private key to the obfuscation contract, so that the obfuscation contract generates a verification address according to the first public key and the temporary private key, and transfers the third virtual resource or the fourth virtual resource based on the consistency between the verification address and the target address.

[0022] Furthermore, the second sending module is specifically configured to:

[0023] determining a transaction identifier of the first transaction based on the first public key;

[0024] Retrieving a verification tuple corresponding to the first transaction based on the transaction identifier, wherein the verification tuple is constructed based on the transaction identifier, the temporary public key, and the temporary private key after generating a temporary public key and a temporary private key corresponding to the first transaction;

[0025] Extract the temporary private key from the verification tuple, and send the first public key and the temporary private key to the obfuscation contract.

[0026] Furthermore, the value of the third virtual resource is greater than or equal to the total value of N first virtual resources, where N is an integer and N≥2, and the first sending module is specifically configured to:

[0027] Determining the cumulative number of generated target addresses;

[0028] When the cumulative generated quantity reaches N, N target addresses are sent to the obfuscation contract.

[0029] Furthermore, the second generation module is specifically configured to:

[0030] determining a first password according to a dot product of the first public key and the temporary private key;

[0031] Calling a preset hash function to perform a hash operation on the first password to obtain a second private key, and generating a second public key corresponding to the second private key;

[0032] A target public key is determined according to the sum of the first public key and the second public key, and the target public key is input into a preset address generation function to generate a target address.

[0033] Furthermore, after generating the temporary public key and the temporary private key corresponding to the first transaction, the blockchain transaction processing apparatus further includes:

[0034] a first receiving module, configured to receive a public key acquisition request sent by the first object, wherein the public key acquisition request carries a target signature;

[0035] A verification module is used to verify the target signature according to the first public key. When the target signature passes the verification, the temporary public key is sent to the first object, so that the first object can determine the target private key based on the temporary public key and the first private key corresponding to the first public key.

[0036] Furthermore, the public key acquisition request includes request content, the target signature includes a first signature value and a second signature value, the first signature value is determined based on a random number, the second signature value is determined based on the random number, the first signature value, the request content, and the first private key, the first public key is a point on a preset curve, and the verification module is specifically configured to:

[0037] determining a first coefficient according to the request content and the second signature value, adjusting a preset generation point based on the first coefficient, and determining a first reference point on the curve, wherein the generation point is a point on the curve;

[0038] determining a second coefficient according to the first signature value and the second signature value, adjusting the first public key based on the second coefficient, and determining a second reference point on the curve;

[0039] Obtaining a third reference point on the curve according to the sum of the first reference point and the second reference point;

[0040] The target signature is verified based on the consistency between the horizontal coordinate of the third reference point and the first signature value.

[0041] On the other hand, an embodiment of the present application further provides a blockchain transaction processing device, the blockchain transaction processing device comprising:

[0042] a first acquisition module, configured to acquire a target address sent by the obfuscation agent, wherein the target address is generated by the obfuscation agent based on a first public key and a temporary private key corresponding to a first transaction, wherein the first transaction is used to transfer a first virtual resource of a first object to an obfuscation contract, and the target address is controlled by a target private key, which is determined by the first object based on the temporary public key and a first private key corresponding to the first public key;

[0043] The first transfer module is configured to transfer the second virtual resource of the second object to the target address after receiving the second virtual resource, wherein the value of the second virtual resource is the same as the value of the first virtual resource.

[0044] Furthermore, the blockchain transaction processing device further includes:

[0045] a fourth acquisition module, configured to acquire a third transaction initiated by the first object, wherein the third transaction is used to send the first public key to the obfuscation contract and transfer a fourth virtual resource of the first object to the obfuscation contract;

[0046] A third generating module is configured to receive the first public key and the temporary private key sent by the obfuscation agent, and generate a verification address according to the first public key and the temporary private key;

[0047] A second transfer module is used to transfer the third virtual resource or the fourth virtual resource based on the consistency between the verification address and the target address, wherein the third virtual resource is transferred from the obfuscation agent to the obfuscation contract, and the value of the third virtual resource is greater than or equal to the value of the first virtual resource.

[0048] Furthermore, the second transfer module is specifically configured to:

[0049] When the verification address is consistent with the target address, transferring the fourth virtual resource to the obfuscation agent;

[0050] Alternatively, when the check address is inconsistent with the target address, a fifth virtual resource is divided from the third virtual resource and the fifth virtual resource is transferred to the first object, wherein the value of the fifth virtual resource is the same as that of the first virtual resource.

[0051] Furthermore, the number of the target addresses is multiple, and the first transfer module is specifically configured to:

[0052] Building an address pool based on the plurality of target addresses;

[0053] After receiving the second virtual resource of the second object, extracting one of the unused target addresses from the address pool, and transferring the second virtual resource to the extracted target address;

[0054] A target identifier is added to the extracted target address, wherein the target identifier is used to indicate that the target address has been used.

[0055] On the other hand, an embodiment of the present application also provides an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor implements the above-mentioned blockchain transaction processing method when executing the computer program.

[0056] On the other hand, an embodiment of the present application further provides a computer-readable storage medium, which stores a computer program, and the computer program is executed by a processor to implement the above-mentioned blockchain transaction processing method.

[0057] In another aspect, embodiments of the present application further provide a computer program product, comprising a computer program stored in a computer-readable storage medium. A processor of a computer device reads the computer program from the computer-readable storage medium and executes the computer program, causing the computer device to implement the aforementioned blockchain transaction processing method.

[0058] The embodiments of the present application include at least the following beneficial effects: the obfuscation agent generates a temporary public key and a temporary private key corresponding to the first transaction, and then generates a target address based on the first public key and the temporary private key corresponding to the first transaction. The first object can control the target address through the target private key determined by the temporary public key and the first private key. At this time, the target address cannot be directly associated with the first object. After receiving the second virtual resource of the second object, the obfuscation contract transfers the second virtual resource to the target address controlled by the first object. Since the first transaction is used to transfer the first virtual resource of the first object to the obfuscation contract, and the value of the second virtual resource is the same as the value of the first virtual resource, it is equivalent to obfuscating the resources of the first object to the target address. Subsequently, the first object can transfer the second virtual resource in the target address. Since the target address cannot be directly associated with the first object, the privacy of the resource source can be protected in the blockchain transaction of the first object, thereby improving the privacy of the blockchain transaction. On this basis, in the above process, the first object only needs to initiate a first transaction, which can improve the efficiency of privacy protection.

[0059] Other features and advantages of the present application will be set forth in the following description, and in part will be apparent from the description, or may be understood by practicing the present application. BRIEF DESCRIPTION OF THE DRAWINGS

[0060] The accompanying drawings are used to provide a further understanding of the technical solution of the present application and constitute a part of the specification. Together with the embodiments of the present application, they are used to explain the technical solution of the present application and do not constitute a limitation on the technical solution of the present application.

[0061] Figure 1 A schematic diagram of an optional implementation environment provided for an embodiment of the present application;

[0062] Figure 2 An optional flowchart of the blockchain transaction processing method provided in the embodiment of the present application;

[0063] Figure 3A schematic diagram of an optional process for determining a target address and a target private key provided in an embodiment of the present application;

[0064] Figure 4 An optional flowchart of the query process provided in the embodiment of the present application;

[0065] Figure 5 An optional flowchart of the obfuscation process provided in an embodiment of the present application;

[0066] Figure 6 A schematic diagram of another optional architecture of the blockchain transaction processing method provided in the embodiment of the present application;

[0067] Figure 7 A flowchart of the first part of the blockchain transaction processing method provided in an embodiment of the present application;

[0068] Figure 8 This is a flowchart of the second part of the blockchain transaction processing method provided in an embodiment of the present application;

[0069] Figure 9 This is a flowchart of the third part of the blockchain transaction processing method provided in an embodiment of the present application;

[0070] Figure 10 This is a flowchart of the fourth part of the blockchain transaction processing method provided in an embodiment of the present application;

[0071] Figure 11 A schematic diagram of an optional structure of the blockchain transaction processing device provided in an embodiment of the present application;

[0072] Figure 12 A schematic diagram of another optional structure of the blockchain transaction processing device provided in an embodiment of the present application;

[0073] Figure 13 A partial structural block diagram of a terminal provided in an embodiment of the present application;

[0074] Figure 14 A partial structural block diagram of the server provided in an embodiment of the present application. DETAILED DESCRIPTION

[0075] In order to make the purpose, technical solutions and advantages of this application more clear, the following further describes this application in detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain this application and are not intended to limit this application.

[0076] It should be noted that, in each specific embodiment of the present application, when it comes to the need to perform relevant processing based on data related to the characteristics of the target object such as target object attribute information or attribute information set, the permission or consent of the target object will be obtained first, and the collection, use and processing of these data will comply with relevant laws, regulations and standards. Among them, the target object can be a user. In addition, when the embodiment of the present application needs to obtain target object attribute information, the target object's separate permission or separate consent will be obtained by means of a pop-up window or jumping to a confirmation page. After clearly obtaining the target object's separate permission or separate consent, the necessary target object-related data for enabling the normal operation of the embodiment of the present application will be obtained.

[0077] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program that has a predetermined function and works together with other related parts to achieve a predetermined goal, and can be implemented in whole or in part by using software, hardware (such as processing circuits or memories) or a combination thereof. Similarly, a processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be part of an overall module or unit that includes the function of the module or unit.

[0078] To facilitate understanding of the technical solutions provided in the embodiments of the present application, some key terms used in the embodiments of the present application are explained here:

[0079] Cloud technology refers to a managed technology that unifies hardware, software, and network resources within a wide or local area network (WAN) to enable data computing, storage, processing, and sharing. Cloud technology is a general term for network, information technology, integration technology, management platform technology, and application technology, all based on the cloud computing business model. It can form a resource pool for on-demand, flexible, and convenient use. Cloud computing will become a crucial support. Backend services for technical network systems, such as those for video sites, image sites, and more portals, require significant computing and storage resources. With the rapid development and application of the internet industry, every item will likely have its own unique identifier, requiring transmission to backend systems for logical processing. Data of varying levels will be processed separately, and data from all industries will require robust system support, which can only be achieved through cloud computing.

[0080] Blockchain is a new application model for computer technologies, including distributed data storage, peer-to-peer transmission, consensus mechanisms, and encryption algorithms. Essentially, a blockchain is a decentralized database, a series of data blocks linked using cryptographic methods. Each block contains information about a batch of online transactions, used to verify the validity of this information (to prevent counterfeiting) and generate the next block. Blockchain can include the underlying blockchain platform, the platform product and service layer, and the application service layer.

[0081] The underlying blockchain platform can include processing modules such as user management, basic services, smart contracts, and operational testing. Among them, the user management module is responsible for the identity information management of all blockchain participants, including maintaining public and private key generation (account management), key management, and maintaining the corresponding relationship between the user's real identity and the blockchain address (authority management), etc., and under authorization, it supervises and audits the transactions of certain real identities and provides risk control rule configuration (risk control audit); the basic service module is deployed on all blockchain node devices to verify the validity of business requests, and records valid requests to storage after consensus is reached. For a new business request, the basic service first adapts the interface for parsing and authentication (interface adaptation), and then encrypts the business information through the consensus algorithm (consensus management). The smart contract module is responsible for the registration, issuance, triggering and execution of contracts. Developers can define the contract logic in a programming language and publish it to the blockchain (contract registration). According to the logic of the contract terms, the contract logic is triggered by calling keys or other events to trigger execution. The contract logic is completed, and the contract upgrade and cancellation functions are also provided. The operation detection module is mainly responsible for the deployment, configuration modification, contract setting, cloud adaptation and real-time status visualization output of the product during the product release process, such as alarms, network status detection, node device health status detection, etc.

[0082] The platform's product service layer provides the basic capabilities and implementation framework for typical applications. Developers can build on these basic capabilities, overlay business features, and complete the blockchain implementation of business logic. The application service layer provides application services based on blockchain solutions for business participants to use.

[0083] With the continuous development of blockchain technology, the need for privacy in virtual resources has become increasingly prominent. Currently, resource owners typically use commonly used account addresses to transfer virtual resources. However, these commonly used account addresses easily expose relevant information about the resource owner and fail to protect the privacy of the resource source. Related technologies can protect the privacy of resource sources by hiding account addresses. However, these technologies often require the initiator of a transaction to perform multiple operations, reducing the effectiveness of privacy protection.

[0084] Based on this, the embodiments of the present application provide a blockchain transaction processing method, device, electronic device and storage medium, which can protect the privacy of resource sources and improve the efficiency of privacy protection.

[0085] Reference Figure 1 , Figure 1 A schematic diagram of an optional implementation environment provided for an embodiment of the present application, wherein the implementation environment includes a terminal 110, a server 120 and a blockchain network 130, wherein the terminal 110 and the server 120 are connected via a communication network, the blockchain network 130 includes multiple nodes 131, the terminal 110 can be connected to at least one node 131 via a communication network, and the server 120 can be connected to at least one node 131 via a communication network.

[0086] Exemplarily, the first object can initiate a first transaction to the node 131 in the blockchain network 130 through the terminal 110; the server 120 generates a temporary public key and a temporary private key corresponding to the first transaction, wherein the first transaction is used to transfer the first virtual resource of the first object to the obfuscation contract, and the obfuscation contract is deployed in the blockchain network 130; the server 120 obtains the first public key corresponding to the first transaction, and generates a target address based on the first public key and the temporary private key, wherein the target address is controlled by the target private key, and the target private key is determined by the first object based on the temporary public key and the first private key corresponding to the first public key; the server 120 sends the target address to the obfuscation contract, that is, the server 120 sends the target address to the node 131 in the blockchain network 130, so that the obfuscation contract can transfer the second virtual resource to the target address after receiving the second virtual resource of the second object, wherein the value of the second virtual resource is the same as the value of the first virtual resource.

[0087] The server 120 generates a temporary public key and a temporary private key corresponding to the first object, and then generates a target address based on the first public key and the temporary private key corresponding to the first transaction. The first object can control the target address through the target private key determined by the temporary public key and the first private key. The first object and the second object are both obfuscation initiators. The first object can initiate a first transaction for transferring the first virtual resource to the obfuscation contract. After receiving the first virtual resource transferred by the first object, the obfuscation contract transfers the second virtual resource of the second object to the target address controlled by the first object through an internal transaction. Subsequently, the first object can transfer the second virtual resource in the target address. Since the second virtual resource of the second object cannot be directly associated with the first object, the privacy of the resource source can be protected in the blockchain transaction of the first object, thereby improving the privacy of the blockchain transaction. Moreover, during the obfuscation process, the first object only needs to send one transaction, which can reduce the obfuscation cost.

[0088] Server 120 can be a standalone physical server, a server cluster or distributed system consisting of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network), and big data and artificial intelligence platforms. Furthermore, server 120 can be a node server in a blockchain network.

[0089] The terminal 110 may be a mobile phone, a computer, an intelligent voice interaction device, a smart home appliance, a vehicle-mounted terminal, etc., but is not limited thereto. The terminal 110 and the server 120 may be connected directly or indirectly via wired or wireless communication, which is not limited in this embodiment of the present application.

[0090] Node 131 is a blockchain node, also known as a consensus node. A blockchain node can be a server in a blockchain network or a terminal connected to a blockchain network. The specific form of the blockchain node is not limited here.

[0091] The method provided in the embodiments of the present application can be applied to various scenarios, including but not limited to cloud technology, blockchain, smart transportation, assisted driving and other scenarios.

[0092] Reference Figure 2 , Figure 2 This is an optional flow chart of a blockchain transaction processing method provided in an embodiment of the present application. The blockchain transaction processing method can be executed by an obfuscation agent. The obfuscation agent is a role specially set up to implement the blockchain transaction processing method. The obfuscation agent can be configured on a server or a terminal. The blockchain transaction processing method includes but is not limited to the following steps 201 to 203.

[0093] Step 201: Generate a temporary public key and a temporary private key corresponding to the first transaction.

[0094] Among them, the first transaction is used to transfer the first virtual resource of the first object to the obfuscation contract; the obfuscation contract is a smart contract that aggregates the virtual resources of various obfuscation initiators, records the target address provided by the obfuscation agent, and realizes resource transfer; the smart contract is a piece of code written on the blockchain. Once the terms of the obfuscation contract are triggered in the blockchain at a certain time, the code will be automatically executed. That is, a smart contract refers to a computer program that can automatically execute the terms of the contract, with characteristics such as event-driven, value transfer, and automatic execution.

[0095] Among them, in blockchain technology, blockchain transactions may involve aspects such as virtual resource transfer, smart contract execution and data transmission. The first transaction is a blockchain transaction for transferring the first virtual resource. The first virtual resource is the virtual resource to be obfuscated. Therefore, the transaction content of the first transaction may specifically be transferring the first virtual resource located at the initiator's address to the recipient's address. The initiator's address may be regarded as the initial account address of the first transaction. The first virtual resource was originally stored at the initial account address. The initiator's address is usually obtained by hashing the public key. The public key corresponding to the initiator's address may be used as the first public key, and the private key corresponding to the first public key may be used as the first private key. The first public key and the first private key may form an asymmetric key pair. The first object is the object holding the first private key. The first object holding the first private key may control the initial account address.

[0096] Generally, in order to ensure the security of the transaction process, in each blockchain transaction, the initiator needs to use the corresponding private key to sign the transaction content, so the first transaction is usually created by the first object holding the first private key. Therefore, the first object is equivalent to confusing the initiator, and then the first object can initiate the first transaction to the node in the blockchain network. The number of first objects can be one or more, and the number of first transactions can be one or more. For example, the first object can create the first transaction through the client and initiate the first transaction to the node in the blockchain network. Then the node in the blockchain network can package the first transaction with other transactions in the transaction pool into a new block, and then the block will be broadcast to the entire blockchain network. After receiving the block, the nodes in the blockchain network will verify it to ensure that the transactions in the block comply with relevant rules, etc. Once consensus is reached, the block will be added to the end of the blockchain, that is, after the first transaction is successfully executed and passes the verification and consensus of the blockchain network, it will be recorded on the blockchain.

[0097] Specifically, each complete node in the blockchain network stores a copy of the entire blockchain and maintains data consistency through a consensus algorithm. The complete nodes in the blockchain network are equal and distributed, with no centralized node. Any server or terminal running a complete node or connected to the blockchain network has the ability to obtain transaction information on the blockchain; the obfuscation agent is connected to the blockchain network through a communication network, or the obfuscation agent runs at least one complete node. The obfuscation agent can obtain the first transaction from the blockchain and then generate a temporary public key and a temporary private key corresponding to the first transaction.

[0098] The following describes in detail the process of the obfuscation agent obtaining the first transaction.

[0099] In one possible implementation, a first object initiates a first transaction to a node in a blockchain network through a client, and at the same time, the first object sends a transaction notification to an obfuscation agent through the client; in response to the transaction notification, the obfuscation agent detects the blockchain. For example, the obfuscation agent can determine whether a new block is added to the blockchain by detecting the blockchain; whenever a new block is added to the blockchain, the obfuscation agent obtains the new block and parses the block to obtain all blockchain transactions contained in the block, wherein the blockchain transaction generally includes an initiator address, a recipient address, and a target virtual resource transferred by the transaction; the obfuscation agent determines whether the parsed blockchain transaction meets a first input condition; when the obfuscation agent determines that any blockchain transaction meets the first input condition, the obfuscation agent generates a temporary public key and a temporary private key corresponding to the blockchain transaction that meets the first input condition. Since the first input condition can specifically include: the initiator's address of the blockchain transaction is the address corresponding to the first object, the recipient's address of the blockchain transaction is the contract address of the obfuscation contract, and the value of the target virtual resource of the blockchain transaction is the same as a preset target value, where the target value is the value of the first virtual resource; therefore, the first transaction initiated by the first object meets the first input condition, and the obfuscation agent can obtain the first transaction through the blockchain and then generate a temporary public key and temporary private key corresponding to the first transaction. In addition, when the obfuscation agent determines that all blockchain transactions do not meet the obfuscation input condition, the obfuscation agent will re-check the blockchain to determine whether a new block has been added to the blockchain, until it is determined that any blockchain transaction meets the obfuscation input condition.

[0100] In another possible implementation, the obfuscation agent continuously monitors the blockchain to determine whether new blocks have been added. Whenever a new block is added, the obfuscation agent retrieves the new block and parses it to obtain all blockchain transactions contained in the block. The obfuscation agent then determines whether the parsed blockchain transactions meet a second input condition. When the obfuscation agent determines the second input condition, it generates a temporary public key and a temporary private key corresponding to the blockchain transaction that meets the second input condition. Since the second input condition can specifically include: the recipient address of the blockchain transaction is the contract address of the obfuscation contract, and the value of the target virtual resource of the blockchain transaction is the same as a preset target value; therefore, the first transaction initiated by the first party meets the second input condition. After the block containing the first transaction is added to the blockchain, the obfuscation agent can retrieve the first transaction through the blockchain and generate a temporary public key and a temporary private key corresponding to the first transaction.

[0101] Among them, the temporary public key and temporary private key can be generated by a preset public-private key generation function. Whenever the first transaction is added to the blockchain, the public-private key generation function is called to generate the public key and private key corresponding to the first transaction. The public key currently generated by the public-private key generation function is used as the temporary public key, and the private key currently generated by the public-private key generation function is used as the temporary private key. The temporary public key and the temporary private key can form an asymmetric key pair.

[0102] For example, a public-private key generation function is called to randomly generate a private key, and then the public key corresponding to the private key is determined based on the elliptic curve encryption algorithm, and the private key and the public key are used as the generation results of the public-private key generation function; it can be seen that the temporary public key and the temporary private key are randomly generated, and the temporary public key and the temporary private key are generated independently, and the generation process does not depend on the first transaction.

[0103] Based on this, the first transaction is specifically used to transfer the first virtual resource held by the first object in the blockchain network to the obfuscation contract. The first transaction is equivalent to a blockchain transaction for obfuscating virtual resources. When the obfuscation initiator needs to obfuscate certain virtual resources, the obfuscation initiator can initiate a corresponding blockchain transaction for obfuscating virtual resources. For each newly added blockchain transaction for obfuscating virtual resources on the blockchain, a temporary public key and a temporary private key corresponding to the blockchain transaction can be generated, and then a target address that cannot be directly associated with the obfuscation initiator can be generated subsequently.

[0104] Step 202: Obtain the first public key corresponding to the first transaction, and generate a target address based on the first public key and the temporary private key.

[0105] Among them, since blockchain transactions usually include unlocking scripts and locking scripts, the locking script is used to specify the conditions for transaction output, that is, the conditions that must be met for transferring the output in the future, and the unlocking script satisfies the conditions for transaction output specified by the locking script to prove that the initiator of the blockchain transaction has the authority to transfer the corresponding output; the unlocking script usually includes a signature and the public key of the initiator, so the public key of the initiator included in the first transaction can be used as the first public key. After the block where the first transaction is located is added to the blockchain, the first public key corresponding to the first transaction can be obtained from the blockchain; for example, the block where the first transaction is located is first obtained from the blockchain, and then the first transaction is determined in each blockchain transaction parsed from the block. Since the length of various data in the first transaction is usually fixed, and the various data in the first transaction are sorted according to preset specifications, the unlocking script can be determined in a specific position of the first transaction, and then the first public key can be determined in a specific position of the unlocking script.

[0106] Among them, the target address is controlled by the target private key, and the target private key is determined by the first object based on the temporary public key and the first private key corresponding to the first public key. The target address is generated according to the first public key and the temporary private key. Since the target address is generated according to the first public key and the temporary private key, and the temporary private key is randomly generated, the target address cannot be directly associated with the first object; for example, the target public key is determined according to the first public key and the temporary private key, and then the target public key is input into the address generation function to generate the target address.

[0107] Based on this, although the target address is generated based on the first public key and the temporary private key, the target private key of the target address is determined based on the temporary public key and the first private key, and the target private key and the target public key constitute an asymmetric key pair; in blockchain technology, the ability of an object to control an account address usually means that the object holds the private key of the account address. Since the first object can determine the target private key based on the temporary public key and the first private key, it is equivalent to the first object holding the target private key of the target address. Therefore, the first object can control the target address, and since the first private key is usually only held by the first object, the target private key determined based on the temporary public key and the first private key is also only held by the first object, so that the target address is only controlled by the first object.

[0108] Specifically, after generating a temporary public key and a temporary private key corresponding to the first transaction, the temporary public key may be sent to the first object, so that the first object can determine the target private key based on the temporary public key and the first private key.

[0109] In one possible implementation, a target address is generated based on a first public key and a temporary private key. Specifically, a first password is determined based on the dot product of the first public key and the temporary private key; a preset hash function is called to perform a hash operation on the first password to obtain a second private key, and a second public key corresponding to the second private key is generated; a target public key is determined based on the sum of the first public key and the second public key, and the target public key is input into a preset address generation function to generate a target address.

[0110] Specifically, refer to Figure 3 , Figure 3 An optional flowchart for determining a target address and a target private key is provided in an embodiment of the present application.

[0111] The following describes in detail the relevant formulas involved in the process of generating the target address based on the first public key and the temporary private key.

[0112] The calculation formula for the first password is as follows:

[0113] S=PriT·PubA

[0114] Where S is the first password, PriT is the temporary private key, and PubA is the first public key;

[0115] The formula for determining the second private key is as follows:

[0116] PriS=h(S)

[0117] Where PriS is the second private key, h() is the hash function, and S is the first password;

[0118] The formula for generating the second public key is as follows:

[0119] PubS=PriS·G

[0120] Wherein, PubS is the second public key, PriS is the second private key, G is a preset generation point, which is a point on the elliptic curve. The second private key can be regarded as a private key randomly generated by the elliptic curve encryption algorithm. PubS is generated by the elliptic curve encryption algorithm. The second public key is specifically obtained by multiplication of the generation point on the elliptic curve. The second public key is also a point on the elliptic curve. The second public key can be generated more efficiently in terms of computation while maintaining sufficient security. The second public key and the second private key can form an asymmetric key pair.

[0121] The formula for determining the target public key is as follows:

[0122] PubM=PubA+PubS

[0123] Where PubM is the target public key, PubA is the first public key, and PubS is the second public key. Since in the same encryption system, the first public key and the second public key are obtained by multiplying the generator point on the same elliptic curve, the first public key and the second public key are points on the same elliptic curve. Based on the properties of the elliptic curve, the target public key obtained by adding the first and second public keys is also a point on the elliptic curve.

[0124] An optional formula for determining the target address is as follows:

[0125] AddrTarget=RIPEMD160(SHA256(PubM))

[0126] Where AddrTarget is the target address, PubM is the target public key, SHA256() is the SHA256 hash algorithm, and RIPEMD160() is the RIPEMD160 hash algorithm. That is, the address generation function includes the SHA256 hash algorithm and the RIPEMD160 hash algorithm.

[0127] Therefore, the target address generation formula can be simplified to:

[0128] AddrTarget=Addrgen(PubA,PriT)

[0129] Wherein, AddrTarget is the target address, PubA is the first public key, PriT is the temporary private key, and Addrgen() is the target generation function used to generate the target address based on the first public key and the temporary private key.

[0130] On this basis, the principle by which the target private key and the target public key can form an asymmetric key pair is explained in detail below.

[0131] First, after obtaining the temporary public key, the first object determines the second password based on the dot product of the temporary public key and the first private key. The calculation formula of the second password is as follows:

[0132] S′=PubT·PriA

[0133] Among them, S′ is the second password, PubT is the temporary public key, PriA is the first private key. Since the generation formula of the temporary public key in the encryption system is PubT=PriT·G, the calculation formula of the second password can be converted to: S′=PriT·G·PriA, and further converted to: S′=PriT·(PRI·G), where PriA·G=PubA, that is, S′=PriT·PubA. Referring to the calculation formula of the first password mentioned above, it can be seen that S=PriA·PubA, so the second password is the same as the first password. It can be seen that the first password and the second password are equivalent to being shared between the first object and the obfuscation agent, that is, the first password and the second password are the same shared password, which can only be determined by the first object and the obfuscation agent. In order to unify with the relevant formulas involved in the process of determining the target address above, S is used to represent the second password in the following.

[0134] Then, the first object calls a hash function to perform a hash operation on the second password to obtain a second private key. The hash function here is the same hash function used in the formula for determining the second private key above. Since the second password is the same as the first password, calling the hash function to perform a hash operation on the second password can also obtain the second private key.

[0135] Then, the first object determines the target private key based on the sum of the first private key and the second private key. The formula for determining the target private key is as follows:

[0136] Pria=Pria+PriS

[0137] Among them, PriM is the target private key, PriA is the first private key, and PriS is the second private key. As can be seen from the above, in the same encryption system, PubA=PriA·G, and PubS=PriS·G, that is, the formula for determining the target public key is PubA=PubA+PubS=PriA·G+priS·G=(PriA+PriS)·S, that is, PubM=PriM·G. It can be seen that the target private key can be regarded as a private key randomly generated by the elliptic curve encryption algorithm, and the target public key is generated by the elliptic curve encryption algorithm. The target public key is specifically obtained by multiplication of the generating points on the elliptic curve. Therefore, the target public key and the target private key can form an asymmetric key pair, so the first object holding the target private key can control the target address generated by the target public key.

[0138] Step 203: Send the target address to the obfuscation contract, so that the obfuscation contract transfers the second virtual resource to the target address after receiving the second virtual resource of the second object.

[0139] The obfuscation contract receives the second virtual resource from the second object, which means that the second object initiates a transaction through the blockchain network to transfer its own second virtual resource to the obfuscation contract. The value of the second virtual resource is the same as the value of the first virtual resource. Both the first virtual resource and the second virtual resource can be virtual assets. The first virtual resource and the second virtual resource are homogeneous. Therefore, the same value of the two virtual resources can refer to the same amount of the two virtual resources. Assuming that the amount of the second virtual resource is X and the amount of the first virtual resource is also X, the value of the second virtual resource is the same as the value of the first virtual resource. The amount of the virtual resource can refer to the number of units of the asset. For example, an amount of 10 for the first virtual resource means that the first virtual resource is 10 units of the asset.

[0140] Based on this, the obfuscation agent generates a temporary public key and a temporary private key corresponding to the first transaction, and then generates a target address based on the first public key and the temporary private key corresponding to the first transaction. The first object can control the target address through the target private key determined by the temporary public key and the first private key. At this time, the target address cannot be directly associated with the first object. When the obfuscation contract receives the second virtual resource of the second object, it transfers the second virtual resource to the target address controlled by the first object. Since the first transaction is used to transfer the first virtual resource of the first object to the obfuscation contract, and the value of the second virtual resource is the same as the value of the first virtual resource, it is equivalent to obfuscating the resources of the first object to the target address. Subsequently, the first object can transfer the second virtual resource in the target address. Since the target address cannot be directly associated with the first object, the privacy of the resource source can be protected in the blockchain transaction of the first object, thereby improving the privacy of the blockchain transaction. On this basis, in the above process, the first object only needs to initiate one first transaction, which can improve the efficiency of privacy protection. Since each transaction usually requires a certain handling fee, compared with the prior art where the object initiating the transaction needs to initiate multiple transactions, the blockchain transaction processing method provided in the embodiment of the present application only needs to initiate one transaction, which can reduce the cost of the first object.

[0141] It can be seen that the first object and the second object are both obfuscation initiators. Assuming that the first object is the obfuscation initiator of the previous obfuscation round, the second object is the obfuscation initiator of the next obfuscation round. The target address controlled by the first object is equivalent to the target address received by the obfuscation contract in the previous obfuscation round. The second virtual resource transferred by the second object to the obfuscation contract is equivalent to the virtual resource transferred in the next obfuscation round. The obfuscation contract can transfer the virtual resource transferred in the next obfuscation round to the target address that was not used in the previous obfuscation round.

[0142] In one possible implementation, before generating the temporary public key and temporary private key corresponding to the first transaction, the blockchain transaction processing method further includes: obtaining a proxy account address of the obfuscation proxy and a contract address of the obfuscation contract; constructing a second transaction based on the proxy account address and the contract address, wherein the second transaction is used to transfer a third virtual resource of the proxy account address to the obfuscation contract, and the value of the third virtual resource is greater than or equal to the value of the first virtual resource.

[0143] Among them, the proxy account address of the obfuscation proxy is the location where the virtual resources are stored on the blockchain. The proxy account address is usually generated by the proxy public key corresponding to the obfuscation proxy. The obfuscation proxy holds the proxy private key corresponding to the proxy public key. The obfuscation proxy can construct a second transaction and initiate the second transaction to the blockchain network.

[0144] Based on this, before generating the temporary public key and temporary private key corresponding to the first transaction, that is, before the first object initiates the first transaction, the obfuscation agent needs to construct a second transaction and submit the second transaction to the blockchain network. When the second transaction is successfully executed and passes the verification and consensus of the blockchain network, the third virtual resource held by the obfuscation agent in the blockchain network will be transferred to the obfuscation contract. The third virtual resource is equivalent to the agency deposit provided by the obfuscation agent to the obfuscation contract. The value of the third virtual resource is greater than or equal to the value of the first virtual resource. The significance of this is that when the obfuscation agent fails to submit the correct address, resulting in the first object being unable to control the address submitted by the obfuscation agent, the obfuscation contract can allocate a portion of equal value from the agency deposit provided in advance by the obfuscation agent to the first object, so that the first virtual resource of the first object can be protected.

[0145] For example, the second transaction is as follows:

[0146] TX Stake =<AddrAgent,ContractAddr,Stake>

[0147] Among them, TX Stake For the second transaction, AddrAgent is the agent account address, ContractAddr is the contract address, and Stake is the third virtual resource.

[0148] Specifically, the significance of the value of the third virtual resource being greater than the value of the first virtual resource lies in that, when the obfuscation agent fails to submit the correct address, resulting in the first object being unable to control the address submitted by the obfuscation agent, the obfuscation contract can allocate a portion of equal value from the proxy deposit pre-provided by the obfuscation agent to the first object. At the same time, the obfuscation contract can also perform other processing on the remaining portion of the proxy deposit pre-provided by the obfuscation agent in accordance with the agreement, such as allocating the remaining portion as compensation equally to each obfuscation initiator, which can constrain the obfuscation agent to submit the correct address.

[0149] In one possible implementation, the number of first transactions is multiple, and the blockchain transaction processing method also includes: obtaining a third transaction initiated by the first object, wherein the third transaction is used to send the first public key to the obfuscation contract and transfer the fourth virtual resource of the first object to the obfuscation contract; obtaining the first public key from the third transaction, sending the first public key and the temporary private key to the obfuscation contract, so that the obfuscation contract generates a verification address based on the first public key and the temporary private key, and transferring the third virtual resource or the fourth virtual resource based on the consistency between the verification address and the target address.

[0150] Specifically, refer to Figure 4 , Figure 4 An optional flowchart of the query process provided in an embodiment of the present application.

[0151] Among them, the first object can determine the target address generated by the obfuscation agent through the target private key. Since there is a possibility that the obfuscation agent fails to submit the correct target address to the obfuscation contract, the first object can initiate a third transaction for questioning whether the obfuscation agent has submitted the correct address to the obfuscation contract. The third transaction is specifically a blockchain transaction for transmitting the first public key and transferring the fourth virtual resource to the obfuscation contract.

[0152] For example, the first object creates a third transaction, and the first object is equivalent to the question initiator. The question initiator and the confusion initiator can be the same object. Then the first object can initiate the third transaction to the node in the blockchain network. Then the node in the blockchain network can package the third transaction and other transactions in the transaction pool into a new block, and then the block will be broadcast to the entire blockchain network. After receiving the block, the nodes in the blockchain network will verify it to ensure that the transactions in the block comply with relevant rules, etc. Once a consensus is reached, the block will be added to the end of the blockchain, that is, after the third transaction is successfully executed and passes the verification and consensus of the blockchain network, it will be recorded on the blockchain, thereby transferring the first public key and the fourth virtual resource to the contract address of the confusion contract. The fourth virtual resource is equivalent to the questioning deposit submitted by the first object to the confusion contract. By attaching the questioning deposit, the questioning initiator can be prevented from conducting a distributed denial of service (DDoS) attack.

[0153] Based on this, after the third transaction is recorded on the blockchain, the obfuscation agent can obtain the third transaction from the blockchain, and then obtain the first public key from the third transaction, and then send the first public key and the temporary private key to the obfuscation contract, and then generate a verification address based on the first public key and the temporary private key by calling the obfuscation contract, and then determine whether the verification address and the target address are consistent, and transfer the third virtual resource or the fourth virtual resource based on the consistency between the verification address and the target address. When the verification address is consistent with the target address, it means that the obfuscation agent has submitted the correct address, and the question initiator fails to question. The obfuscation contract will transfer the fourth virtual resource to the obfuscation agent in accordance with the agreement, that is, transfer the fourth virtual resource to the proxy account address controlled by the obfuscation agent. Conversely, when the verification address is inconsistent with the target address, it means that the obfuscation agent has not submitted the correct address, and the question initiator succeeds in questioning. The obfuscation contract will transfer the part of the third virtual resource with the same value as the first virtual resource to the first object in accordance with the agreement.

[0154] Specifically, the first party typically queries the target address some time after initiating the first transaction. If the query reveals that no virtual resources of equal value have been transferred to the target address, the first party will initiate a third transaction to challenge the obfuscation agent for failing to submit the correct address to the obfuscation contract. The third transaction may include a challenge field, and the obfuscation contract can use the challenge field and pre-set field rules to determine whether to initiate the challenge process. For example, the challenge field may be set to "Challenge." In an optional challenge process, the obfuscation contract may first determine whether the challenge initiator is the initiator of the previous obfuscation round. If the challenge initiator is the initiator of the previous obfuscation round, the obfuscation contract will initiate a proof notification to the obfuscation agent, prompting the obfuscation agent to submit proof. Upon receiving the proof notification, the obfuscation agent obtains the third transaction initiated by the first party in response to the proof notification, then obtains the first public key from the third transaction. The obfuscation agent uses the first public key and the temporary private key as proof content and sends the proof content to the obfuscation contract. Alternatively, if the challenge initiator is not the initiator of the previous obfuscation round, the obfuscation agent does not need to submit proof, thereby ensuring the security of the agent deposit.

[0155] For example, the third transaction is as follows:

[0156] TX Challenge =<"Challenge",PubA,K>

[0157] Among them, TX Challenge This is the third transaction, "Challenge" is the challenge field, PubA is the first public key, and K is the fourth virtual resource.

[0158] In one possible implementation, the first public key and the temporary private key are sent to the obfuscation contract. Specifically, the transaction identifier of the first transaction can be determined based on the first public key; a verification tuple corresponding to the first transaction is retrieved based on the transaction identifier, wherein the verification tuple is constructed based on the transaction identifier, the temporary public key, and the temporary private key after generating the temporary public key and the temporary private key corresponding to the first transaction; the temporary private key is extracted from the verification tuple, and the first public key and the temporary private key are sent to the obfuscation contract.

[0159] Among them, the transaction identifier is used to indicate the first transaction. Each blockchain transaction used to obfuscate virtual resources has a corresponding transaction identifier. For example, the transaction identifier of the first blockchain transaction used to obfuscate virtual resources can be set to 1, and the transaction identifier of the second blockchain transaction used to obfuscate virtual resources can be set to 2. For another example, the blockchain transaction used to obfuscate virtual resources is directly used as the corresponding transaction identifier.

[0160] Based on this, each time the obfuscation agent generates a temporary public key and a temporary private key corresponding to a blockchain transaction, it constructs a verification tuple based on the transaction identifier, temporary public key, and temporary private key of the blockchain transaction. For example, the verification tuple can be in the form of: <TX A ,PubT,PriT>, where TX A is the transaction identifier, PubT is the temporary public key, and PriT is the temporary private key; subsequently in the questioning process, the verification tuple corresponding to the transaction identifier can be retrieved from the constructed verification tuples. Therefore, after determining the transaction identifier of the first transaction based on the first public key, the verification tuple corresponding to the first transaction can be retrieved based on the transaction identifier of the first transaction, and then the temporary private key can be extracted from the verification tuple, and then the first public key and the temporary private key can be sent to the obfuscation contract, which can effectively complete the questioning process.

[0161] Specifically, the obfuscation agent can first construct a proof transaction based on the first public key and the temporary private key, and then initiate the proof transaction to the obfuscation contract. The proof transaction can include a proof field. The obfuscation contract can know that the proof transaction is used to submit proof through the proof field and the preset field rules, and then obtain the first public key and the temporary private key from the proof transaction, and continue to execute subsequent steps. For example, the proof field can be set to "Proof".

[0162] For example, the proof transaction is as follows:

[0163] TX Proof =<"Proof",PubA,PriT>

[0164] Among them, TX Proof To prove the transaction, "Proof" is the challenge field, PubA is the first public key, and PriT is the temporary private key.

[0165] In one possible implementation, the transaction identifier of the first transaction is determined based on the first public key. Specifically, the first public key can be input into an address generation function to generate a target initiator address. The obfuscation agent can obtain multiple blockchain transactions for obfuscating virtual resources. The initiator address of each blockchain transaction for obfuscating virtual resources is used as a candidate initiator address. Based on the target initiator address, each candidate initiator address can be queried, and the blockchain transaction corresponding to the candidate initiator address that is the same as the target initiator address is determined as the first transaction, thereby determining the transaction identifier of the first transaction.

[0166] Specifically, the formula for querying each candidate initiator address based on the target initiator address is:

[0167] Addr(PubA)=TX.from

[0168] Among them, Addr() is the address generation function, PubA is the first public key, and TX.from is the candidate initiator address.

[0169] In one possible implementation, the value of the third virtual resource is greater than or equal to the total value of N first virtual resources, where N is an integer and N ≥ 2, and the target address is sent to the obfuscation contract. Specifically, the cumulative generation quantity of the target address can be determined; when the cumulative generation quantity reaches N, the N target addresses are sent to the obfuscation contract.

[0170] Among them, the N first virtual resources can be virtual resources to be confused corresponding to N confusion initiators respectively, the value of each virtual resource to be confused is equal to the value of the first virtual resource, and multiple confusion initiators can be the same object. For example, two of the 10 confusion initiators are object A.

[0171] Among them, the third virtual resource is equivalent to the deposit provided by the obfuscation agent to the obfuscation contract. The significance of the value of the third virtual resource being greater than or equal to the total value of N first virtual resources is that in a confusion round consisting of N obfuscation initiators, when the obfuscation agent fails to submit the correct address, resulting in each obfuscation initiator being unable to control the address submitted by the obfuscation agent, the obfuscation contract can allocate virtual resources of equal value from the deposit provided in advance by the obfuscation agent to each obfuscation initiator, so that the virtual resources to be obfuscated corresponding to the N obfuscation initiators can be guaranteed. Therefore, the obfuscation contract records at most N unused target addresses at any point in time.

[0172] Based on this, since the value of the third virtual resource is greater than or equal to the total value of the N first virtual resources, in a confusion round consisting of N confusion initiators, the confusion agent can send the cumulatively generated N target addresses to the confusion contract. Specifically, the cumulatively generated N target addresses can be formed into an address set, and then the address set is sent to the confusion contract. When the confusion contract completes the transfer of virtual resources of the N target addresses, the confusion agent will send the next batch of cumulatively generated N target addresses; in addition, the confusion agent can also send less than N target addresses to the confusion contract in each batch, which is not limited in this embodiment of the present application.

[0173] Specifically, during the initialization phase of the obfuscation contract, relevant personnel need to submit N initial addresses to the obfuscation contract to ensure that in the first obfuscation round consisting of N obfuscation initiators, the obfuscation contract can transfer the virtual resources transferred in the current obfuscation round to the unused initial addresses to ensure the effective implementation of the obfuscation process.

[0174] In one possible implementation, after generating a temporary public key and a temporary private key corresponding to the first transaction, the blockchain transaction processing method further includes: receiving a public key acquisition request sent by the first object, wherein the public key acquisition request carries a target signature; verifying the target signature according to the first public key, and when the target signature verification passes, sending the temporary public key to the first object, so that the first object can determine the target private key based on the temporary public key and the first private key corresponding to the first public key.

[0175] Based on this, the first public key and the first private key can form an asymmetric key pair, and the target signature is generated by the first object using the first private key to sign the data. Therefore, the obfuscation agent can use the first public key to verify the target signature, thereby ensuring that the received data is generated by the first object that owns the first private key and has not been tampered with during the transmission process. When the target signature verification passes, the obfuscation agent returns the temporary public key to the first object, which is equivalent to obtaining the temporary public key only after the identity of the public key requester is confirmed, ensuring that only the public key requester with a legitimate identity can obtain the temporary public key, which can improve the confidentiality and security of the temporary public key, thereby improving the confidentiality and security of the target private key determined by the temporary public key and the first private key.

[0176] In one possible implementation, the public key acquisition request includes request content, the target signature includes a first signature value and a second signature value, the first signature value is determined based on a random number, the second signature value is determined based on the random number, the first signature value, the request content and the first private key, the first public key is a point on a preset curve, and the target signature is verified according to the first public key. Specifically, the first coefficient can be determined according to the request content and the second signature value, the preset generation point is adjusted based on the first coefficient, and a first reference point is determined on the curve, wherein the generation point is a point on the curve; the second coefficient is determined according to the first signature value and the second signature value, the first public key is adjusted based on the second coefficient, and a second reference point is determined on the curve; a third reference point is obtained on the curve based on the sum of the first reference point and the second reference point; and the target signature is verified based on the consistency between the horizontal coordinate of the third reference point and the first signature value.

[0177] Among them, the first public key and the first private key can be generated by an elliptic curve encryption algorithm, and the preset curve is an elliptic curve; the request content can include a request field. When the target signature verification passes, the obfuscation agent can know through the request field and the preset field rules that a temporary public key needs to be sent to the first object. For example, the request field can be set to "RequestPub".

[0178] Specifically, the obfuscation agent may generate multiple pairs of temporary public keys and temporary private keys, each pair of temporary public keys and temporary private keys has a corresponding blockchain transaction for obfuscating virtual resources. The obfuscation agent can determine the corresponding blockchain transaction in each blockchain transaction for obfuscating virtual resources based on the initiator address of the public key acquisition request, that is, determine the first transaction in each blockchain transaction for obfuscating virtual resources based on the address corresponding to the first object, and then obtain the first public key for verifying the target signature in the first transaction, and determine the temporary public key corresponding to the first transaction. When the target signature verification passes, the temporary public key is returned to the first object.

[0179] The following describes in detail the process of generating a target signature for the first object.

[0180] First, call the hash function to perform hash operation on the request content to obtain the content summary m;

[0181] Then, based on the elliptic curve encryption algorithm, a random number k is taken from [1,n-1], where n is the order of the elliptic curve, and the random number k is used as the signature private key;

[0182] Then, generate a signature public key R = k·G corresponding to the signature private key, and use the horizontal coordinate of the signature public key as the first signature value r;

[0183] Then, by s=k -1 (m+r·PriA) mod n is used to calculate the second signature value s, where k -1 is the multiplicative inverse of k mod n, where k is a random number, m is the content digest, r is the first signature value, PriA is the first private key, mod is the modulo operation, and n is the order of the elliptic curve;

[0184] Then, the (r,s) pair is used as the target signature.

[0185] The following describes in detail the process of verifying the target signature by the obfuscation proxy.

[0186] First, call the hash function to perform hash operation on the request content to obtain the content summary m;

[0187] Then, through u1 = m·s -1 mod n calculates the first coefficient u1, where s -1 It is the multiplicative inverse of s mod n, where s is the second signature value, m is the content summary, mod is the modulo operation, and n is the order of the elliptic curve;

[0188] Then, through u2 = r·s -1 mod n calculates the second coefficient u2, where s -1is the multiplicative inverse of s mod n, where s is the second signature value, r is the first signature value, mod is the modulo operation, and n is the order of the elliptic curve;

[0189] Then, the third reference point P is calculated by P = u1·G + u2·PubA, where G is the generator point, u1·G is the first reference point, Pub is the first public key, and u2·PubA is the second reference point.

[0190] Then, determine whether the horizontal coordinate of the third reference point P is consistent with the first signature value r. When the horizontal coordinate of the third reference point is consistent with the first signature value, the target signature verification passes. Otherwise, when the horizontal coordinate of the third reference point is inconsistent with the first signature value, the target signature verification fails.

[0191] Based on this, the public key requester can initiate a public key acquisition request to the obfuscation agent. The public key requester and the obfuscation initiator can be the same object. For example, the first object can be both the obfuscation initiator and the public key requester. The obfuscation agent will verify the target signature carried by the public key acquisition request. When the target signature verification passes, the obfuscation agent will return the temporary public key to the first object. This is equivalent to the public key requester's identity being confirmed before the temporary public key can be obtained, ensuring that only the public key requester with a legitimate identity can obtain the temporary public key, which can improve the confidentiality and security of the temporary public key, thereby improving the confidentiality and security of the target private key determined by the temporary public key and the first private key.

[0192] Specifically, refer to Figure 5 , Figure 5 An optional flowchart of the obfuscation process provided in an embodiment of the present application.

[0193] First, after the obfuscation initiator A (the first object) initiates the first transaction, the first virtual resource of the first object is transferred to the obfuscation contract, which is equivalent to inputting the virtual resource into the obfuscation contract; then, the obfuscation agent can generate a temporary public key PubT and a temporary private key Pr iT corresponding to the first transaction; then, the first object can send a public key acquisition request to the obfuscation agent, and the obfuscation agent sends the temporary public key to the first object, which is equivalent to returning the temporary public key; then, the obfuscation agent generates a target address based on the first public key and the temporary private key, and sends the target address to the obfuscation contract; then, after the obfuscation initiator B (the second object) initiates another blockchain transaction, the second virtual resource of the second object is transferred to the obfuscation contract, which is equivalent to inputting the virtual resource into the obfuscation contract; then, the obfuscation contract transfers the second virtual resource to the target address, which is equivalent to outputting the virtual resource to the target address.

[0194] Reference Figure 6 , Figure 6Another optional flow chart of the blockchain transaction processing method provided in an embodiment of the present application is provided. The blockchain transaction processing method is applied to an obfuscated contract. Specifically, the blockchain transaction processing method can be executed by a server or terminal running at least one node in a blockchain network, and the blockchain network is deployed with an obfuscated contract. The blockchain transaction processing method includes but is not limited to the following steps 601 to 602.

[0195] Step 601: Obtain a target address sent by the obfuscation agent, where the target address is generated by the obfuscation agent based on a first public key and a temporary private key corresponding to a first transaction. The first transaction is used to transfer a first virtual resource of a first object to an obfuscation contract. The target address is controlled by a target private key, which is determined by the first object based on the temporary public key and a first private key corresponding to the first public key.

[0196] Step 602: After receiving the second virtual resource of the second object, transfer the second virtual resource to the target address, wherein the value of the second virtual resource is the same as the value of the first virtual resource.

[0197] In the above-mentioned blockchain transaction processing method, the obfuscation agent generates a temporary public key and a temporary private key corresponding to the first transaction, and then generates a target address based on the first public key and the temporary private key corresponding to the first transaction. The first object can control the target address using the target private key determined by the temporary public key and the first private key. At this time, the target address cannot be directly associated with the first object. When the obfuscation contract receives the second virtual resource of the second object, it transfers the second virtual resource to the target address controlled by the first object. Since the first transaction is used to transfer the first virtual resource of the first object to the obfuscation contract, and the value of the second virtual resource is the same as the value of the first virtual resource, it is equivalent to obfuscating the first object's resource to the target address. The first object can subsequently transfer the second virtual resource within the target address. Since the target address cannot be directly associated with the first object, the privacy of the resource source can be protected in the blockchain transaction of the first object, thereby improving the privacy of the blockchain transaction. On this basis, in the above-mentioned process, the first object only needs to initiate one first transaction, which can improve the efficiency of privacy protection. Since each transaction generally requires a certain handling fee, compared with the prior art where the object initiating the transaction needs to initiate multiple transactions, the blockchain transaction processing method provided by the embodiment of the present application only requires the first object to initiate one transaction, which can reduce the cost of the first object.

[0198] The detailed principles of the above steps 601 to 602 can be found in the above explanations of steps 201 to 203 and will not be repeated here.

[0199] In one possible implementation, the blockchain transaction processing method also includes: obtaining a third transaction initiated by the first object, wherein the third transaction is used to send the first public key to the obfuscation contract and transfer the fourth virtual resource of the first object to the obfuscation contract; receiving the first public key and temporary private key sent by the obfuscation agent, and generating a verification address based on the first public key and the temporary private key; transferring the third virtual resource or the fourth virtual resource based on the consistency between the verification address and the target address, wherein the third virtual resource is transferred from the obfuscation agent to the obfuscation contract, and the value of the third virtual resource is greater than or equal to the value of the first virtual resource.

[0200] Among them, the first object can determine the target address generated by the obfuscation agent through the target private key. Since there is a possibility that the obfuscation agent fails to submit the correct target address to the obfuscation contract, the first object can initiate a third transaction for questioning whether the obfuscation agent has submitted the correct address to the obfuscation contract. The third transaction is specifically a blockchain transaction for transmitting the first public key and transferring the fourth virtual resource to the obfuscation contract.

[0201] For example, after the first object creates the third transaction, the nodes on the blockchain network can obtain the third transaction, and then the nodes in the blockchain network can package the third transaction and other transactions in the transaction pool into a new block, which will then be broadcast to the entire blockchain network. After receiving the block, the nodes in the blockchain network will verify it to ensure that the transactions in the block comply with relevant rules, etc. Once a consensus is reached, the block will be added to the end of the blockchain, that is, after the third transaction is successfully executed and passes the verification and consensus of the blockchain network, it will be recorded on the blockchain, thereby transferring the first public key and the fourth virtual resource to the contract address of the obfuscation contract. The fourth virtual resource is equivalent to the questioning deposit submitted by the first object to the obfuscation contract. By attaching the questioning deposit, the questioning initiator can avoid a distributed denial of service (DDoS) attack.

[0202] Among them, before generating the temporary public key and temporary private key corresponding to the first transaction, that is, before the first object initiates the first transaction, the obfuscation agent needs to construct a second transaction and submit the second transaction to the blockchain network. When the second transaction is successfully executed and passes the verification and consensus of the blockchain network, the third virtual resource held by the obfuscation agent in the blockchain network will be transferred to the obfuscation contract. The third virtual resource is equivalent to the agency deposit provided by the obfuscation agent to the obfuscation contract. The value of the third virtual resource is greater than or equal to the value of the first virtual resource. The significance of this is that when the obfuscation agent fails to submit the correct address, resulting in the first object being unable to control the address submitted by the obfuscation agent, the obfuscation contract can allocate a portion of equal value from the agency deposit provided in advance by the obfuscation agent to the first object, so that the first virtual resource of the first object can be protected.

[0203] Based on this, the third transaction record on the blockchain represents the start of the questioning process. The nodes in the blockchain network can receive the first public key and temporary private key sent by the obfuscation agent, and then generate a verification address based on the first public key and temporary private key by calling the obfuscation contract, and then determine whether the verification address and the target address are consistent. Based on the consistency between the verification address and the target address, the third virtual resource or the fourth virtual resource is transferred, so that the first virtual resource of the first object can be protected.

[0204] Specifically, the obfuscation contract generates the verification address through the target generation function used by the obfuscation agent. The generation formula of the verification address is as follows:

[0205] AddrTarget′=Addrgen(PubA,PriT)

[0206] Wherein, AddrTar get′ is the verification address, PubA is the first public key, PriT is the temporary private key, and Addrgen() is the target generation function for generating the verification address according to the first public key and the temporary private key.

[0207] In one possible implementation, the third virtual resource or the fourth virtual resource is transferred based on the consistency of the verification address and the target address. Specifically, when the verification address is consistent with the target address, the fourth virtual resource is transferred to the obfuscation agent; or, when the verification address is inconsistent with the target address, the fifth virtual resource is divided from the third virtual resource and the fifth virtual resource is transferred to the first object, wherein the value of the fifth virtual resource is the same as that of the first virtual resource.

[0208] Based on this, when the verification address is consistent with the target address, it means that the obfuscation agent has submitted the correct address, and the question initiator fails to question. The obfuscation contract will transfer the fourth virtual resource to the obfuscation agent in accordance with the agreement, that is, transfer the fourth virtual resource to the proxy account address controlled by the obfuscation agent. Conversely, when the verification address is inconsistent with the target address, it means that the obfuscation agent has not submitted the correct address, and the question initiator succeeds in questioning. The obfuscation contract will divide the fifth virtual resource with the same value as the first virtual resource from the third virtual resource in accordance with the agreement, and then transfer the fifth virtual resource to the first object, that is, transfer the fifth virtual resource to the initial account address controlled by the first object. The initial account address is the account address where the first object originally stored the first virtual resource, so that the first virtual resource of the first object can be protected.

[0209] Specifically, when the verification address is consistent with the target address, the agreement of the obfuscation contract may stipulate that in addition to transferring the fourth virtual resource to the obfuscation agent, it may also stipulate that other processing of the fourth virtual resource be performed, which is not limited in the embodiment of the present application.

[0210] Taking a confusion round consisting of N confusion initiators as an example, the target address normally exists in the address set received by the confusion contract in the previous confusion round. By inputting the verification address into the consistency judgment function, the consistency result is obtained. The consistency judgment function is as follows:

[0211] Valid=AddrTarget′∈AddrTargets

[0212] Among them, Valid is the consistency result, AddrTarget′ is the verification address, and AddrTargets is the address set. When Valid is true, it means that the verification address is in the address set, that is, the obfuscation contract has a verification address in the address set received in the previous obfuscation round, and the verification address is inconsistent with the target address. Conversely, when Valid is false, it means that the verification address is not in the address set, that is, the obfuscation contract has no verification address in the address set received in the previous obfuscation round, and the verification address is consistent with the target address.

[0213] Specifically, the obfuscated contract can adopt a specific adjustment strategy to avoid repeated compensation. The configuration methods of the two adjustment strategies are described in detail below.

[0214] In the first method, the adjustment strategy can be configured as follows: when the initiator of the questioning is successful, the obfuscation contract will add the corresponding address to the address set received in the previous obfuscation round, and perform consistency judgment based on the updated address set in the subsequent questioning process. For example, the address set received by the obfuscation contract in the previous obfuscation round includes address 2 and address 3, and the target address and retrieval address of object A are both address 1. After the object A successfully questions, address 1 is added to the address set and marked as used. The address set is updated to address 1, address 2 and address 3. When object A questions again, since address 1 exists in the updated address set, that is, the verification address and the target address are consistent, the initiator of the questioning fails. The obfuscation contract can transfer the fourth virtual resource to the obfuscation agent in accordance with the agreement, which can avoid repeated compensation for the same blockchain transaction used to obfuscate virtual resources.

[0215] In the second method, the adjustment strategy can be configured as follows: when the questioning initiator initiates a third transaction to question whether the obfuscation agent has not submitted the correct address to the obfuscation contract, the obfuscation contract will first determine whether the questioning initiator is the obfuscation initiator of the previous obfuscation round. When the questioning initiator is the obfuscation initiator of the previous obfuscation round and the questioning is successful, the corresponding obfuscation initiator in the previous obfuscation round will not participate in the judgment again in the subsequent questioning process. For example, the obfuscation initiators of the previous obfuscation round include object A, object B and object C. After object A initiates the third transaction and the questioning is successful, the corresponding blockchain transaction for obfuscating virtual resources in the previous obfuscation round will be deemed an invalid transaction, that is, the obfuscation initiator of the previous obfuscation round is adjusted to include object B and object C. When object A initiates the third transaction again, it can be determined that object A is not the obfuscation initiator of the previous obfuscation round. The obfuscation agent does not need to submit proof. The obfuscation contract can transfer the fourth virtual resource to the obfuscation agent in accordance with the agreement, thereby avoiding repeated compensation for the same blockchain transaction for obfuscating virtual resources.

[0216] In one possible implementation, there are multiple target addresses. After receiving the second virtual resource of the second object, the second virtual resource is transferred to the target address. Specifically, an address pool can be constructed based on multiple target addresses. After receiving the second virtual resource of the second object, one of the unused target addresses is extracted from the address pool, and the second virtual resource is transferred to the extracted target address. A target identifier is added to the extracted target address, wherein the target identifier is used to indicate that the target address has been used.

[0217] Based on this, in the address pool record in the obfuscation contract, the obfuscation contract adds each received target address to the address pool. When the target address is used, that is, when the target address receives the virtual resource output of the obfuscation contract, the target identifier needs to be added to the target address. When the obfuscation contract receives the virtual resource output of a new obfuscation initiator, it needs to extract a target address without a target identifier from the address pool, and then transfer the currently received virtual resource to the currently extracted target address. Therefore, after the obfuscation contract receives the second virtual resource of the second object, it will extract an unused target address from the address pool, and then transfer the second virtual resource to the currently extracted target address, which can prevent the target address from repeatedly receiving the resource output of other obfuscation initiators.

[0218] The complete process of blockchain transaction processing method is described in detail below.

[0219] Reference Figures 7 to 10 , Figure 7 This is a flowchart of the first part of the blockchain transaction processing method provided in an embodiment of the present application. Figure 8This is a flow chart of the second part of the blockchain transaction processing method provided in the embodiment of the present application. Figure 9 This is a flow chart of the third part of the blockchain transaction processing method provided in the embodiment of this application. Figure 10 This is a flowchart of the fourth part of the blockchain transaction processing method provided in an embodiment of the present application.

[0220] Step 701: The obfuscation agent obtains the obfuscation agent's proxy account address and the obfuscation contract address.

[0221] In step 702, the obfuscation agent constructs a second transaction based on the proxy account address and the contract address.

[0222] In step 703, the obfuscation agent initiates a second transaction to the blockchain network to transfer the third virtual resource at the proxy account address to the obfuscation contract, wherein the value of the third virtual resource is greater than or equal to the total value of N first virtual resources, where N is an integer and N≥2.

[0223] In step 704 , the first object initiates a first transaction to the blockchain network to transfer the first virtual resource of the first object to the obfuscation contract.

[0224] Step 705: The obfuscation agent generates a temporary public key and a temporary private key corresponding to the first transaction.

[0225] Step 706: The obfuscation agent receives a public key acquisition request sent by the first object, wherein the public key acquisition request carries a target signature.

[0226] In step 707 , the obfuscation agent determines a first coefficient according to the request content and the second signature value, adjusts a preset generation point based on the first coefficient, and determines a first reference point on the curve, where the generation point is a point on the curve.

[0227] In step 708 , the obfuscation agent determines a second coefficient according to the first signature value and the second signature value, adjusts the first public key based on the second coefficient, and determines a second reference point on the curve.

[0228] Step 709 : The obfuscation agent obtains a third reference point on the curve according to the sum of the first reference point and the second reference point.

[0229] Step 710: The obfuscation agent verifies the target signature based on the consistency between the horizontal coordinate of the third reference point and the first signature value.

[0230] Step 711: When the target signature verification passes, the obfuscation agent sends the temporary public key to the first object.

[0231] Step 712: The first object determines a target private key based on the temporary public key and the first private key corresponding to the first public key.

[0232] In step 713, the obfuscation agent obtains the first public key corresponding to the first transaction, and generates a target address based on the first public key and the temporary private key, wherein the target address is controlled by the target private key, and the target private key is determined by the first object based on the temporary public key and the first private key corresponding to the first public key.

[0233] In step 714 , the obfuscation agent determines the cumulative number of target addresses generated.

[0234] Step 715: When the cumulative generated quantity reaches N, the obfuscation agent sends N target addresses to the obfuscation contract.

[0235] In step 716, the obfuscation contract constructs an address pool based on multiple target addresses.

[0236] In step 717, after receiving the second virtual resource of the second object, the obfuscation contract extracts one of the unused target addresses from the address pool and transfers the second virtual resource to the extracted target address, wherein the value of the second virtual resource is the same as the value of the first virtual resource.

[0237] In step 718, the obfuscation contract adds a target identifier to the extracted target address, where the target identifier is used to indicate that the target address has been used.

[0238] In step 719 , the first object initiates a third transaction to the blockchain network to send the first public key to the obfuscation contract and transfer the fourth virtual resource of the first object to the obfuscation contract.

[0239] Step 720: The obfuscation agent obtains the third transaction initiated by the first object.

[0240] In step 721, the obfuscation agent obtains the first public key from the third transaction and sends the first public key and the temporary private key to the obfuscation contract.

[0241] In step 722, the obfuscation contract generates a verification address based on the first public key and the temporary private key.

[0242] Step 723: When the verification address is consistent with the target address, the obfuscation contract transfers the fourth virtual resource to the obfuscation agent; or, when the verification address is inconsistent with the target address, the obfuscation contract divides the fifth virtual resource from the third virtual resource and transfers the fifth virtual resource to the first object, wherein the value of the fifth virtual resource is the same as the value of the first virtual resource.

[0243] Based on this, the obfuscation agent generates a temporary public key and a temporary private key corresponding to the first transaction, and then generates a target address based on the first public key and the temporary private key corresponding to the first transaction. The first object can control the target address through the target private key determined by the temporary public key and the first private key. At this time, the target address cannot be directly associated with the first object. After receiving the second virtual resource of the second object, the obfuscation contract transfers the second virtual resource to the target address controlled by the first object. Since the first transaction is used to transfer the first virtual resource of the first object to the obfuscation contract, and the value of the second virtual resource is the same as the value of the first virtual resource, it is equivalent to obfuscating the resources of the first object to the target address. Subsequently, the first object can transfer the second virtual resource in the target address. Since the target address cannot be directly associated with the first object, the privacy of the resource source can be protected in the blockchain transaction of the first object, thereby improving the privacy of the blockchain transaction. On this basis, in the above process, the first object only needs to initiate a first transaction, which can improve the efficiency of privacy protection.

[0244] It can be seen that the blockchain transaction processing method provided in the embodiments of the present application can be applied to a variety of scenarios.

[0245] For example, in a scenario where multiple virtual resources need to be obfuscated, the obfuscation agent acts as a provider that submits target addresses in batches to the obfuscation contract, and the obfuscation contract acts as a smart contract that aggregates the virtual resources transferred in by various obfuscation initiators, records the target addresses provided by the obfuscation agent, and implements resource obfuscation.

[0246] Specifically, in one confusion round, the confusion contract can receive virtual resources transferred by N confusion initiators respectively. The value of each virtual resource currently received by the confusion contract is equal to the preset value. Assuming that the target virtual resource that an object needs to transfer is greater than the preset value, the target virtual resource is divided into multiple target sub-resources, so that the value of each target sub-resource is equal to the preset value, and then the target sub-resources are confused. The confusion agent can generate corresponding temporary public keys and temporary private keys according to the blockchain transactions initiated by each confusion initiator. Each confusion initiator can determine its corresponding target private key based on its own first public key and the corresponding temporary public key. The confusion agent can generate the target address corresponding to each confusion initiator. The target private key can control the corresponding target address. The target address is relative. It is equivalent to a one-time new address, which makes it impossible for the target address to be directly associated with the obfuscation initiator holding the target private key, and sends N target addresses to the obfuscation contract. Then, in the next obfuscation round, the obfuscation contract can receive virtual resources transferred by N new obfuscation initiators respectively. The value of each virtual resource currently received by the obfuscation contract is equal to the preset value. The obfuscation contract transfers the currently received virtual resources to the target address received in the previous obfuscation round. Since the target address cannot be directly associated with the obfuscation initiator holding the target private key, the privacy of the resource source can be protected in the blockchain transaction of the obfuscation initiator, thereby improving the privacy of the blockchain transaction. On this basis, in the above process, the obfuscation initiator only needs to initiate one blockchain transaction, which can improve the efficiency of privacy protection.

[0247] It will be appreciated that, although the various steps in the above-mentioned various flow charts are shown in sequence according to the indication of the arrows, these steps are not necessarily performed in sequence according to the order indicated by the arrows. Unless clearly stated in the present embodiment, the execution of these steps does not have strict order restrictions, and these steps can be performed in other orders. Moreover, at least a portion of the steps in the above-mentioned flow charts can include multiple steps or multiple stages, and these steps or stages are not necessarily performed at the same time, but can be performed at different times, and the execution order of these steps or stages is not necessarily performed in sequence, but can be performed in turn or alternately with at least a portion of the steps or stages in other steps or other steps.

[0248] Reference Figure 11 , Figure 11 This is an optional structural diagram of a blockchain transaction processing device provided in an embodiment of the present application. The blockchain transaction processing device 1100 includes:

[0249] A first generating module 1101 is configured to generate a temporary public key and a temporary private key corresponding to a first transaction, wherein the first transaction is used to transfer a first virtual resource of a first object to an obfuscation contract;

[0250] A second generation module 1102 is configured to obtain a first public key corresponding to the first transaction and generate a target address based on the first public key and the temporary private key, wherein the target address is controlled by the target private key, and the target private key is determined by the first object based on the temporary public key and the first private key corresponding to the first public key;

[0251] The first sending module 1103 is used to send the target address to the obfuscation contract, so that the obfuscation contract transfers the second virtual resource to the target address after receiving the second virtual resource of the second object, wherein the value of the second virtual resource is the same as the value of the first virtual resource.

[0252] Furthermore, before generating the temporary public key and the temporary private key corresponding to the first transaction, the blockchain transaction processing apparatus further includes:

[0253] The second acquisition module (not shown) is used to obtain the proxy account address of the obfuscation proxy and the contract address of the obfuscation contract;

[0254] A construction module (not shown) is used to construct a second transaction based on the proxy account address and the contract address, wherein the second transaction is used to transfer a third virtual resource of the proxy account address to the obfuscation contract, and the value of the third virtual resource is greater than or equal to the value of the first virtual resource.

[0255] Furthermore, the number of the first transactions is multiple, and the blockchain transaction processing apparatus further includes:

[0256] a third acquisition module (not shown), configured to acquire a third transaction initiated by the first object, wherein the third transaction is used to send the first public key to the obfuscation contract and transfer the fourth virtual resource of the first object to the obfuscation contract;

[0257] The second sending module (not shown in the figure) is used to obtain the first public key from the third transaction, and send the first public key and the temporary private key to the obfuscation contract, so that the obfuscation contract can generate a verification address based on the first public key and the temporary private key, and transfer the third virtual resource or the fourth virtual resource based on the consistency between the verification address and the target address.

[0258] Furthermore, the second sending module is specifically configured to:

[0259] determining a transaction identifier of the first transaction based on the first public key;

[0260] Retrieving a verification tuple corresponding to the first transaction based on the transaction identifier, wherein the verification tuple is constructed based on the transaction identifier, the temporary public key, and the temporary private key after generating the temporary public key and the temporary private key corresponding to the first transaction;

[0261] Extract the temporary private key from the verification tuple, and send the first public key and the temporary private key to the obfuscation contract.

[0262] Furthermore, the value of the third virtual resource is greater than or equal to the total value of N first virtual resources, where N is an integer and N≥2. The first sending module 1103 is specifically configured to:

[0263] Determine the cumulative number of generated target addresses;

[0264] When the cumulative generated quantity reaches N, N target addresses are sent to the confusion contract.

[0265] Furthermore, the second generating module 1102 is specifically configured to:

[0266] determining a first password based on a dot product of the first public key and the temporary private key;

[0267] Calling a preset hash function to perform a hash operation on the first password to obtain a second private key, and generating a second public key corresponding to the second private key;

[0268] The target public key is determined according to the sum of the first public key and the second public key, and the target public key is input into a preset address generation function to generate a target address.

[0269] Furthermore, after generating the temporary public key and the temporary private key corresponding to the first transaction, the blockchain transaction processing apparatus further includes:

[0270] A first receiving module (not shown), configured to receive a public key acquisition request sent by a first object, wherein the public key acquisition request carries a target signature;

[0271] A verification module (not shown) is used to verify the target signature based on the first public key. When the target signature verification passes, the temporary public key is sent to the first object so that the first object can determine the target private key based on the temporary public key and the first private key corresponding to the first public key.

[0272] Furthermore, the public key acquisition request includes request content, the target signature includes a first signature value and a second signature value, the first signature value is determined based on a random number, the second signature value is determined based on the random number, the first signature value, the request content, and the first private key, the first public key is a point on a preset curve, and the above-mentioned verification module is specifically used to:

[0273] Determine a first coefficient based on the request content and the second signature value, adjust a preset generation point based on the first coefficient, and determine a first reference point on the curve, wherein the generation point is a point on the curve;

[0274] determining a second coefficient according to the first signature value and the second signature value, adjusting the first public key based on the second coefficient, and determining a second reference point on the curve;

[0275] Obtaining a third reference point on the curve according to the sum of the first reference point and the second reference point;

[0276] The target signature is verified based on the consistency between the abscissa of the third reference point and the first signature value.

[0277] The above-mentioned blockchain transaction processing device 1100 and blockchain transaction processing method are based on the same inventive concept. The obfuscation agent generates a temporary public key and a temporary private key corresponding to the first transaction, and then generates a target address based on the first public key and the temporary private key corresponding to the first transaction. The first object can control the target address through the target private key determined by the temporary public key and the first private key. At this time, the target address cannot be directly associated with the first object. When the obfuscation contract receives the second virtual resource of the second object, it transfers the second virtual resource to the target address controlled by the first object. Since the first transaction is used to transfer the first virtual resource of the first object to the obfuscation contract, and the value of the second virtual resource is the same as the value of the first virtual resource, it is equivalent to obfuscating the resources of the first object to the target address. Subsequently, the first object can transfer the second virtual resource in the target address. Since the target address cannot be directly associated with the first object, the privacy of the resource source can be protected in the blockchain transaction of the first object, thereby improving the privacy of the blockchain transaction. On this basis, in the above process, the first object only needs to initiate one first transaction, which can improve the efficiency of privacy protection.

[0278] Reference Figure 12 , Figure 12 This is another optional structural diagram of the blockchain transaction processing device provided in an embodiment of the present application. The blockchain transaction processing device 1200 includes:

[0279] A first acquisition module 1201 is configured to acquire a target address sent by the obfuscation agent, wherein the target address is generated by the obfuscation agent based on a first public key and a temporary private key corresponding to a first transaction, wherein the first transaction is used to transfer a first virtual resource of a first object to an obfuscation contract, and the target address is controlled by a target private key, which is determined by the first object based on the temporary public key and a first private key corresponding to the first public key;

[0280] The first transfer module 1202 is configured to transfer the second virtual resource of the second object to a target address after receiving the second virtual resource, wherein the value of the second virtual resource is the same as the value of the first virtual resource.

[0281] Furthermore, the blockchain transaction processing device further includes:

[0282] a fourth acquisition module (not shown), configured to acquire a third transaction initiated by the first object, wherein the third transaction is configured to send the first public key to the obfuscation contract and transfer the fourth virtual resource of the first object to the obfuscation contract;

[0283] A third generation module (not shown), configured to receive the first public key and the temporary private key sent by the obfuscation agent, and generate a verification address based on the first public key and the temporary private key;

[0284] The second transfer module (not shown) is used to transfer the third virtual resource or the fourth virtual resource based on the consistency between the verification address and the target address, wherein the third virtual resource is transferred from the obfuscation agent to the obfuscation contract, and the value of the third virtual resource is greater than or equal to the value of the first virtual resource.

[0285] Furthermore, the second transfer module is specifically configured to:

[0286] When the verification address is consistent with the target address, transferring the fourth virtual resource to the obfuscation proxy;

[0287] Alternatively, when the check address is inconsistent with the target address, a fifth virtual resource is divided from the third virtual resource and the fifth virtual resource is transferred to the first object, wherein the value of the fifth virtual resource is the same as the value of the first virtual resource.

[0288] Furthermore, if there are multiple target addresses, the first transfer module 1202 is specifically configured to:

[0289] Build an address pool based on multiple target addresses;

[0290] After receiving the second virtual resource of the second object, extracting one unused target address from the address pool, and transferring the second virtual resource to the extracted target address;

[0291] A target identifier is added to the extracted target address, wherein the target identifier is used to indicate that the target address has been used.

[0292] The above-mentioned blockchain transaction processing device 1200 and blockchain transaction processing method are based on the same inventive concept. The obfuscation agent generates a temporary public key and a temporary private key corresponding to the first transaction, and then generates a target address based on the first public key and the temporary private key corresponding to the first transaction. The first object can control the target address through the target private key determined by the temporary public key and the first private key. At this time, the target address cannot be directly associated with the first object. When the obfuscation contract receives the second virtual resource of the second object, it transfers the second virtual resource to the target address controlled by the first object. Since the first transaction is used to transfer the first virtual resource of the first object to the obfuscation contract, and the value of the second virtual resource is the same as the value of the first virtual resource, it is equivalent to obfuscating the resources of the first object to the target address. Subsequently, the first object can transfer the second virtual resource in the target address. Since the target address cannot be directly associated with the first object, the privacy of the resource source can be protected in the blockchain transaction of the first object, thereby improving the privacy of the blockchain transaction. On this basis, in the above process, the first object only needs to initiate a first transaction, which can improve the efficiency of privacy protection.

[0293] The electronic device for executing the above-mentioned blockchain transaction processing method provided in the embodiment of the present application may be a terminal, referring to Figure 13 , Figure 13 This is a partial structural block diagram of a terminal provided in an embodiment of the present application. The terminal includes: a camera assembly 1310, a memory 1320, an input unit 1330, a display unit 1340, a sensor 1350, an audio circuit 1360, a wireless fidelity (WiFi) module 1370, a processor 1380, and a power supply 1390. Those skilled in the art will understand that Figure 13 The terminal structure shown in the figure does not constitute a limitation to the terminal, and may include more or fewer components than shown in the figure, or combine certain components, or arrange the components differently.

[0294] The camera assembly 1310 can be used to capture images or videos. Optionally, the camera assembly 1310 includes a front camera and a rear camera. Typically, the front camera is set on the front panel of the terminal, and the rear camera is set on the back of the terminal. In some embodiments, there are at least two rear cameras, which are any one of a main camera, a depth of field camera, a wide-angle camera, and a telephoto camera, so as to realize the fusion of the main camera and the depth of field camera to realize the background blur function, the fusion of the main camera and the wide-angle camera to realize panoramic shooting and VR (Virtual Reality) shooting function or other fusion shooting functions.

[0295] The memory 1320 may be used to store software programs and modules. The processor 1380 executes various functional applications and data processing of the terminal by running the software programs and modules stored in the memory 1320 .

[0296] The input unit 1330 may be configured to receive input digital or character information and generate key signal input related to terminal settings and function control. Specifically, the input unit 1330 may include a touch panel 1331 and other input devices 1332 .

[0297] The display unit 1340 may be configured to display input information or provided information and various menus of the terminal. The display unit 1340 may include a display panel 1341 .

[0298] The audio circuit 1360 , the speaker 1361 , and the microphone 1362 may provide an audio interface.

[0299] The power source 1390 may be AC ​​power, DC power, disposable batteries, or rechargeable batteries.

[0300] The number of sensors 1350 can be one or more, and the one or more sensors 1350 include but are not limited to: acceleration sensors, gyroscope sensors, pressure sensors, optical sensors, etc. Among them:

[0301] The accelerometer can detect the magnitude of acceleration along the three coordinate axes of the coordinate system established by the terminal. For example, the accelerometer can be used to detect the components of gravity acceleration along the three coordinate axes. The processor 1380 can control the display unit 1340 to display the user interface in a landscape or portrait view based on the gravity acceleration signal collected by the accelerometer. The accelerometer can also be used to collect game or user motion data.

[0302] The gyroscope sensor can detect the device's orientation and rotation angle. It can also work with the accelerometer to capture the user's 3D movements. Based on the data collected by the gyroscope sensor, the processor 1380 can implement the following functions: motion sensing (such as changing the UI based on the user's tilt), image stabilization during shooting, game control, and inertial navigation.

[0303] The pressure sensor can be set on the side frame of the terminal and / or the lower layer of the display unit 1340. When the pressure sensor is set on the side frame of the terminal, it can detect the user's grip signal of the terminal, and the processor 1380 performs left and right hand recognition or shortcut operations based on the grip signal collected by the pressure sensor. When the pressure sensor is set on the lower layer of the display unit 1340, the processor 1380 controls the operability controls on the UI interface based on the user's pressure operation on the display unit 1340. The operability controls include at least one of a button control, a scroll bar control, an icon control, and a menu control.

[0304] The optical sensor is used to collect ambient light intensity. In one embodiment, the processor 1380 can control the display brightness of the display unit 1340 based on the ambient light intensity collected by the optical sensor. Specifically, when the ambient light intensity is high, the display brightness of the display unit 1340 is increased; when the ambient light intensity is low, the display brightness of the display unit 1340 is decreased. In another embodiment, the processor 1380 can also dynamically adjust the shooting parameters of the camera assembly 1310 based on the ambient light intensity collected by the optical sensor.

[0305] In this embodiment, the processor 1380 included in the terminal can execute the blockchain transaction processing method of the previous embodiment.

[0306] The electronic device for executing the above-mentioned blockchain transaction processing method provided in the embodiment of the present application may also be a server, referring to Figure 14 , Figure 14 This is a partial structural block diagram of a server provided in an embodiment of the present application. The server 1400 may have relatively large differences due to different configurations or performances, and may include one or more central processing units (CPUs) 1422 (for example, one or more processors) and a memory 1432, and one or more storage media 1430 (for example, one or more mass storage devices) storing application programs 1442 or data 1444. Among them, the memory 1432 and the storage medium 1430 can be temporary storage or permanent storage. The program stored in the storage medium 1430 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations on the server 1400. Furthermore, the central processing unit 1422 can be configured to communicate with the storage medium 1430 to execute a series of instruction operations in the storage medium 1430 on the server 1400.

[0307] The server 1400 may also include one or more power supplies 1426, one or more wired or wireless network interfaces 1450, one or more input and output interfaces 1458, and / or one or more operating systems 1441, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™, etc.

[0308] The processor in server 1400 can be used to execute the blockchain transaction processing method.

[0309] An embodiment of the present application also provides a computer-readable storage medium, which is used to store program code, and the program code is used to execute the blockchain transaction processing method of each of the aforementioned embodiments.

[0310] The present application also provides a computer program product, comprising a computer program stored in a computer-readable storage medium. A processor of a computer device reads the computer program from the computer-readable storage medium and executes the computer program, causing the computer device to implement the aforementioned blockchain transaction processing method.

[0311] The terms "first", "second", "third", "fourth", etc. (if any) in the specification of the present application and the above-mentioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequential order. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments of the present application described herein can, for example, be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.

[0312] It should be understood that in this application, "at least one (item)" means one or more, and "plurality" means two or more. "And / or" is used to describe the association relationship of associated objects, indicating that three relationships may exist. For example, "A and / or B" can mean: only A exists, only B exists, and A and B exist at the same time, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following items" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, c can be single or multiple.

[0313] It should be understood that in the description of the embodiments of the present application, multiple (or multiple items) means more than two, greater than, less than, exceed, etc. are understood to exclude the number itself, and above, below, within, etc. are understood to include the number itself.

[0314] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of units is only a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interface, device or unit, which can be electrical, mechanical or other forms.

[0315] Units described as separate components may or may not be physically separate, and components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.

[0316] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.

[0317] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the various embodiments of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0318] It should also be understood that the various implementation methods provided in the embodiments of the present application can be combined arbitrarily to achieve different technical effects.

[0319] The above is a specific description of the preferred implementation of the present application, but the present application is not limited to the above implementation mode. Technical personnel familiar with the art can also make various equivalent modifications or substitutions under the shared conditions that do not violate the spirit of the present application. These equivalent modifications or substitutions are all included in the scope defined by the claims of the present application.

Claims

1. A blockchain transaction processing method, characterized in that: Applied to obfuscation proxy, the blockchain transaction processing method includes: Generate a temporary public key and a temporary private key corresponding to a first transaction, wherein the first transaction is used to transfer a first virtual resource of a first object to an obfuscation contract; Obtaining a first public key corresponding to the first transaction, and generating a target address based on the first public key and the temporary private key, wherein the target address is controlled by a target private key, and the target private key is determined by the first object based on the temporary public key and a first private key corresponding to the first public key; The target address is sent to the obfuscation contract, so that the obfuscation contract transfers the second virtual resource to the target address after receiving the second virtual resource of the second object, wherein the value of the second virtual resource is the same as the value of the first virtual resource.

2. The blockchain transaction processing method according to claim 1, characterized in that: Before generating the temporary public key and the temporary private key corresponding to the first transaction, the blockchain transaction processing method further includes: Obtain the proxy account address of the obfuscation proxy and the contract address of the obfuscation contract; A second transaction is constructed based on the proxy account address and the contract address, wherein the second transaction is used to transfer a third virtual resource of the proxy account address to the obfuscation contract, and the value of the third virtual resource is greater than or equal to the value of the first virtual resource.

3. The blockchain transaction processing method according to claim 2, characterized in that: The number of the first transactions is multiple, and the blockchain transaction processing method further includes: Obtaining a third transaction initiated by the first object, wherein the third transaction is used to send the first public key to the obfuscation contract and transfer a fourth virtual resource of the first object to the obfuscation contract; Obtain the first public key from the third transaction, and send the first public key and the temporary private key to the obfuscation contract, so that the obfuscation contract generates a verification address according to the first public key and the temporary private key, and transfers the third virtual resource or the fourth virtual resource based on the consistency between the verification address and the target address.

4. The blockchain transaction processing method according to claim 3, characterized in that: The sending the first public key and the temporary private key to the obfuscation contract includes: determining a transaction identifier of the first transaction based on the first public key; Retrieving a verification tuple corresponding to the first transaction based on the transaction identifier, wherein the verification tuple is constructed based on the transaction identifier, the temporary public key, and the temporary private key after generating a temporary public key and a temporary private key corresponding to the first transaction; Extract the temporary private key from the verification tuple, and send the first public key and the temporary private key to the obfuscation contract.

5. The blockchain transaction processing method according to claim 2, characterized in that: The value of the third virtual resource is greater than or equal to the total value of N first virtual resources, where N is an integer and N≥2, and the sending of the target address to the obfuscation contract includes: Determining the cumulative number of generated target addresses; When the cumulative generated quantity reaches N, N target addresses are sent to the obfuscation contract.

6. The blockchain transaction processing method according to claim 1, characterized in that: Generating a target address according to the first public key and the temporary private key includes: determining a first password according to a dot product of the first public key and the temporary private key; Calling a preset hash function to perform a hash operation on the first password to obtain a second private key, and generating a second public key corresponding to the second private key; A target public key is determined according to the sum of the first public key and the second public key, and the target public key is input into a preset address generation function to generate a target address.

7. The blockchain transaction processing method according to claim 1, characterized in that: After generating the temporary public key and the temporary private key corresponding to the first transaction, the blockchain transaction processing method further includes: Receiving a public key acquisition request sent by the first object, wherein the public key acquisition request carries a target signature; The target signature is verified according to the first public key. When the target signature verification passes, the temporary public key is sent to the first object, so that the first object can determine the target private key based on the temporary public key and the first private key corresponding to the first public key.

8. The blockchain transaction processing method according to claim 7, characterized in that: The public key acquisition request includes request content, the target signature includes a first signature value and a second signature value, the first signature value is determined based on a random number, the second signature value is determined based on the random number, the first signature value, the request content, and the first private key, the first public key is a point on a preset curve, and verifying the target signature based on the first public key includes: determining a first coefficient according to the request content and the second signature value, adjusting a preset generation point based on the first coefficient, and determining a first reference point on the curve, wherein the generation point is a point on the curve; determining a second coefficient according to the first signature value and the second signature value, adjusting the first public key based on the second coefficient, and determining a second reference point on the curve; Obtaining a third reference point on the curve according to the sum of the first reference point and the second reference point; The target signature is verified based on the consistency between the horizontal coordinate of the third reference point and the first signature value.

9. A blockchain transaction processing method, characterized in that: Applied to obfuscated contracts, the blockchain transaction processing method includes: Obtaining a target address sent by the obfuscation agent, wherein the target address is generated by the obfuscation agent based on a first public key and a temporary private key corresponding to a first transaction, the first transaction being used to transfer a first virtual resource of a first object to the obfuscation contract, and the target address is controlled by a target private key, which is determined by the first object based on the temporary public key and a first private key corresponding to the first public key; After receiving a second virtual resource of a second object, the second virtual resource is transferred to the target address, wherein a value of the second virtual resource is the same as a value of the first virtual resource.

10. The blockchain transaction processing method according to claim 9, characterized in that: The blockchain transaction processing method further includes: Obtaining a third transaction initiated by the first object, wherein the third transaction is used to send the first public key to the obfuscation contract and transfer a fourth virtual resource of the first object to the obfuscation contract; Receive the first public key and the temporary private key sent by the obfuscation agent, and generate a verification address according to the first public key and the temporary private key; The third virtual resource or the fourth virtual resource is transferred based on the consistency between the verification address and the target address, wherein the third virtual resource is transferred from the obfuscation agent to the obfuscation contract, and the value of the third virtual resource is greater than or equal to the value of the first virtual resource.

11. The blockchain transaction processing method according to claim 10, characterized in that: The transferring the third virtual resource or the fourth virtual resource based on consistency between the check address and the target address includes: When the verification address is consistent with the target address, transferring the fourth virtual resource to the obfuscation agent; Alternatively, when the check address is inconsistent with the target address, a fifth virtual resource is divided from the third virtual resource and the fifth virtual resource is transferred to the first object, wherein the value of the fifth virtual resource is the same as that of the first virtual resource.

12. The blockchain transaction processing method according to claim 9, characterized in that: There are multiple target addresses, and after receiving the second virtual resource of the second object, transferring the second virtual resource to the target addresses includes: Building an address pool based on the plurality of target addresses; After receiving the second virtual resource of the second object, extracting one of the unused target addresses from the address pool, and transferring the second virtual resource to the extracted target address; A target identifier is added to the extracted target address, wherein the target identifier is used to indicate that the target address has been used.

13. A blockchain transaction processing device, characterized in that: include: A first generation module, configured to generate a temporary public key and a temporary private key corresponding to a first transaction, wherein the first transaction is used to transfer a first virtual resource of a first object to an obfuscation contract; a second generation module, configured to obtain a first public key corresponding to the first transaction, and generate a target address based on the first public key and the temporary private key, wherein the target address is controlled by a target private key, and the target private key is determined by the first object based on the temporary public key and a first private key corresponding to the first public key; The first sending module is configured to send the target address to the obfuscation contract, so that the obfuscation contract transfers the second virtual resource to the target address after receiving the second virtual resource of the second object, wherein the value of the second virtual resource is the same as the value of the first virtual resource.

14. A blockchain transaction processing device, characterized in that: include: a first acquisition module, configured to acquire a target address sent by the obfuscation agent, wherein the target address is generated by the obfuscation agent based on a first public key and a temporary private key corresponding to a first transaction, wherein the first transaction is used to transfer a first virtual resource of a first object to an obfuscation contract, and the target address is controlled by a target private key, which is determined by the first object based on the temporary public key and a first private key corresponding to the first public key; The first transfer module is configured to transfer the second virtual resource of the second object to the target address after receiving the second virtual resource, wherein the value of the second virtual resource is the same as the value of the first virtual resource.

15. An electronic device comprising a memory and a processor, wherein the memory stores a computer program, wherein: When the processor executes the computer program, the blockchain transaction processing method according to any one of claims 1 to 12 is implemented.

16. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the blockchain transaction processing method according to any one of claims 1 to 12 is implemented.

17. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the blockchain transaction processing method according to any one of claims 1 to 12 is implemented.