Asset transfer method and device, medium and electronic equipment
By analyzing and counting the signature list in the blockchain asset transfer request, combined with multi-party signature technology, the problem of poor flexibility in blockchain asset management is solved, and a more flexible and secure asset transfer process is achieved.
Patent Information
- Application Number
- CN202311466169.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-11-03
- Publication Date
- 2025-05-06
AI Technical Summary
In existing blockchain technology, asset management is poor in flexibility and relies on a single account key for asset management, making it difficult to achieve joint management and decision-making between multiple parties.
By analyzing the transaction data and signature list in the asset transfer request, obtain the permission level and signature results of each signing party, count the signature results according to the permission level, and determine the asset transfer instructions based on the signature statistics and preset conditions to realize asset transfer signed by multiple parties.
Improves the flexibility of asset management, reduces dependence on single account keys and user instructions, and enhances the security and controllability of the asset transfer process.
Smart Images

Figure CN119941250A_ABST
Abstract
Description
Technical Field
[0001] The present application belongs to the field of blockchain technology, and specifically relates to an asset transfer method, an asset transfer device, a computer-readable medium, an electronic device, and a computer program product. Background Art
[0002] Blockchain is a multi-party jointly maintained, using cryptography to ensure transmission and access security, and can achieve consistent data storage, difficult to tamper with, and prevent denial of accounting technology, that is, distributed ledger technology. Users can start asset accounts on the blockchain network and manage their virtual assets by setting corresponding account keys, such as transferring or paying for virtual assets. This method of asset management using a single account key is similar to traditional asset account management, and has a strong reliance on the management decisions of a single user, and generally has the problem of poor flexibility in asset management. Summary of the invention
[0003] The present application provides an asset transfer method, an asset transfer device, a computer-readable medium, an electronic device, and a computer program product, aiming to improve the flexibility of asset management.
[0004] Other features and advantages of the present application will become apparent from the following detailed description, or may be learned in part by the practice of the present application.
[0005] According to one aspect of an embodiment of the present application, there is provided an asset transfer method, the method comprising:
[0006] Parsing an asset transfer request for a virtual asset to obtain transaction data and a signature list carried in the asset transfer request, wherein the transaction data includes data for requesting to perform an asset transfer on the virtual asset, and the signature list includes data obtained by multiple signatories signing the transaction data;
[0007] According to the signature list, obtaining the authority level and signature result of each of the signatories, wherein the authority level is used to indicate the management authority of the signatories for the virtual assets, and the signature result is used to indicate whether the signatories agree to execute the asset transfer request; wherein at least two of the signatories have different authority levels;
[0008] In order of the authority levels from low to high, the signature results of the signatories with the same authority level are counted in turn to obtain signature statistical information corresponding to each authority level, and an asset transfer instruction is determined based on the signature statistical information and a preset asset transfer condition; the asset transfer instruction is used to instruct the execution of the asset transfer request or the refusal to execute the asset transfer request, and different authority levels correspond to different asset transfer conditions.
[0009] According to one aspect of an embodiment of the present application, there is provided an asset transfer device, the device comprising:
[0010] A parsing module is configured to parse an asset transfer request for a virtual asset, and obtain transaction data and a signature list carried in the asset transfer request, wherein the transaction data includes data for requesting to perform an asset transfer on the virtual asset, and the signature list includes data obtained by multiple signatories signing the transaction data;
[0011] an acquisition module, configured to acquire, according to the signature list, the authority level and the signature result of each of the signatories, wherein the authority level is used to indicate the management authority of the signatories over the virtual assets, and the signature result is used to indicate whether the signatories agree to execute the asset transfer request; wherein at least two of the signatories have different authority levels;
[0012] The statistical module is configured to count the signature results of the signatories with the same authority level in order from low to high, obtain signature statistical information corresponding to each authority level, and determine an asset transfer instruction based on the signature statistical information and a preset asset transfer condition; the asset transfer instruction is used to instruct the execution of the asset transfer request or the rejection of the asset transfer request, and different authority levels correspond to different asset transfer conditions.
[0013] In some embodiments of the present application, based on the above technical solution, the permission level includes high-level permissions and low-level permissions, and the signatory with the high-level permissions has higher management authority over the virtual assets than the signatory with the low-level permissions; the signature statistical information includes a first number of signatures corresponding to the low-level permissions and a second number of signatures corresponding to the high-level permissions, the first number of signatures being the number of signature results that the signatory with the low-level permissions agrees to execute the asset transfer request, and the second number of signatures being the number of signature results that the signatory with the high-level permissions agrees to execute the asset transfer request.
[0014] In some embodiments of the present application, based on the above technical solution, the statistical module is further configured to: determine whether the signature statistical information satisfies the first asset transfer condition corresponding to the low-level authority according to the first signature number; if the signature statistical information satisfies the first asset transfer condition, determine whether the signature statistical information satisfies the second asset transfer condition corresponding to the high-level authority according to the second signature number; if the signature statistical information satisfies the second asset transfer condition corresponding to the high-level authority, determine to execute the asset transfer instruction of the asset transfer request; if the signature statistical information does not satisfy the first asset transfer condition or does not satisfy the second asset transfer condition, determine to refuse to execute the asset transfer instruction of the asset transfer request.
[0015] In some embodiments of the present application, based on the above technical solution, the first asset transfer condition includes that the ratio of the first signature quantity in all signature results is greater than or equal to a preset ratio threshold, and the second asset transfer condition includes that the second signature quantity is greater than or equal to a preset quantity threshold.
[0016] In some embodiments of the present application, based on the above technical solution, the statistical module further includes:
[0017] A signature classification module, configured to classify the signature results of the signatory according to the authority level to obtain a plurality of signature sets corresponding to different authority levels;
[0018] A quantity counting module is configured to count the number of signature approvals and the number of signature rejections in the signature set in order of the authority level from low to high, wherein the number of signature approvals is the number of signature results that agree to execute the asset transfer request, and the number of signature rejections is the number of signature results that reject the execution of the asset transfer request;
[0019] The information generation module is configured to generate signature statistical information according to the number of signature approvals and the number of signature rejections obtained by counting in each of the signature sets.
[0020] In some embodiments of the present application, based on the above technical solution, the information generation module further includes:
[0021] A weight acquisition module is configured to acquire a level weight associated with the permission level, wherein the level weight is positively correlated with the permission level;
[0022] The quantity weighting module is configured to perform weighted processing on the number of signature approvals and the number of signature rejections obtained by counting in each signature set according to the level weight, and obtain the weighted number as signature statistical information.
[0023] In some embodiments of the present application, based on the above technical solution, the asset transfer condition is a quantity threshold associated with the permission level; the statistical module further includes:
[0024] A first instruction generating module is configured to determine an asset transfer instruction for executing the asset transfer request if the weighted quantity is greater than a preset quantity threshold;
[0025] The second instruction generating module is configured to determine an asset transfer instruction for refusing to execute the asset transfer request if the weighted quantity is less than the quantity threshold.
[0026] In some embodiments of the present application, based on the above technical solution, the acquisition module further includes:
[0027] A data extraction module is configured to extract identity data of each of the signatories and signature data associated with the identity data from the signature list, wherein the identity data includes a plurality of identity fields for uniquely identifying the signatories on a blockchain network;
[0028] an identity verification module, configured to verify the identity of the signatory according to the identity data, and obtain the authority level corresponding to the identity data after the verification is passed;
[0029] The signature verification module is configured to perform signature verification on the signatory according to the signature data, and obtain a signature result corresponding to the signature data after the verification is passed.
[0030] In some embodiments of the present application, based on the above technical solution, the identity authentication module further includes:
[0031] An identity query module is configured to query the blockchain for on-chain identity information corresponding to a specified identity field in the identity data;
[0032] The consistency verification module is configured to perform consistency verification on each identity field in the identity data and the identity information on the chain, and determine that the identity authentication result of the signer is verified when the verification is successful.
[0033] In some embodiments of the present application, based on the above technical solution, the identity query module is further configured to: extract a blockchain identifier and a contract address from the transaction data, the blockchain identifier is used to indicate the blockchain storing the virtual asset, and the contract address is used to indicate the blockchain address of the smart contract that manages the virtual asset; query the smart contract for managing the virtual asset on the blockchain according to the blockchain identifier and the contract address; call the smart contract to query the on-chain identity information corresponding to the specified identity field.
[0034] In some embodiments of the present application, based on the above technical solution, the identity field includes a subject name, a subject public key or a subject address.
[0035] In some embodiments of the present application, based on the above technical solution, the signature verification module is further configured to: extract the subject public key of the signatory from the identity data; decrypt the signature data according to the subject public key to obtain decrypted summary information; extract the summary of the transaction data according to a preset summary extraction algorithm to obtain the summary information of the transaction data; perform a consistency check on the decrypted summary information and the summary information of the transaction data, and when the verification is successful, determine that the signature verification result of the signatory is verified passed.
[0036] According to one aspect of an embodiment of the present application, a computer-readable medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the asset transfer method in the above technical solution is implemented.
[0037] According to one aspect of an embodiment of the present application, an electronic device is provided, comprising: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute the executable instructions to implement the asset transfer method in the above technical solution.
[0038] According to one aspect of an embodiment of the present application, a computer program product is provided, including a computer program, and when the computer program is executed by a processor, the asset transfer method in the above technical solution is implemented.
[0039] In the technical solution provided in the embodiment of the present application, by parsing the asset transfer request for virtual assets, the transaction data and signature list carried in the asset transfer request are obtained, and the authority level and signature result of each signatory can be obtained according to the signature list; then the signature results of the signatory are counted according to the authority level to obtain signature statistical information, and the asset transfer instruction is determined according to the signature statistical information. The embodiment of the present application adopts a method of specifying authority levels for multiple signatories, and the signature results can be counted according to the authority level, and then the execution of the asset transfer request or the refusal to execute the asset transfer request can be determined according to the statistical information of the multi-party signatures of different authority levels, which overcomes the dependence of the asset transfer process on the account secret key and user instructions, and improves the flexibility of the asset transfer operation. BRIEF DESCRIPTION OF THE DRAWINGS
[0040] The drawings herein are incorporated into the specification and constitute a part of the specification, illustrate embodiments consistent with the present application, and together with the specification are used to explain the principles of the present application. Obviously, the drawings described below are only some embodiments of the present application, and for ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0041] Figure 1 The exemplary system architecture block diagram applying the technical solution of the present application is schematically shown.
[0042] Figure 2 The component structure of the blockchain maintained on the blockchain network is shown.
[0043] Figure 3 A flow chart of an asset transfer method in one embodiment of the present application is shown.
[0044] Figure 4 A flow chart of a method for obtaining the authority level of the signatory and the signature result in one embodiment of the present application is shown.
[0045] Figure 5 A flow chart of a method for counting signature results according to authority levels in one embodiment of the present application is shown.
[0046] Figure 6 A business flow chart of asset transfer management performed in an application scenario in an embodiment of the present application is shown.
[0047] Figure 7 A business flow chart of an embodiment of the present application in an application scenario in which asset transfer management is executed by calling a smart contract is shown.
[0048] Figure 8 The structural block diagram of the asset transfer device provided in an embodiment of the present application is schematically shown.
[0049] Fig. 9 The structure block diagram of a computer system for implementing an electronic device according to an embodiment of the present application is schematically shown. DETAILED DESCRIPTION
[0050] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in a variety of forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this application will be more comprehensive and complete and fully convey the concept of the example embodiments to those skilled in the art.
[0051] In addition, described feature, structure or characteristic can be combined in one or more embodiments in any suitable manner. In the following description, many specific details are provided to provide a full understanding of the embodiments of the present application. However, those skilled in the art will appreciate that the technical scheme of the present application can be put into practice without one or more of the specific details, or other methods, components, devices, steps, etc. can be adopted. In other cases, known methods, devices, realizations or operations are not shown or described in detail to avoid blurring the various aspects of the application.
[0052] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities may be implemented in software form, or in one or more hardware modules or integrated circuits, or in different networks and / or processor devices and / or microcontroller devices.
[0053] The flowcharts shown in the accompanying drawings are only exemplary and do not necessarily include all the contents and operations / steps, nor must they be executed in the order described. For example, some operations / steps can be decomposed, and some operations / steps can be combined or partially combined, so the actual execution order may change according to actual conditions.
[0054] In the specific implementation of this application, data related to the user's asset account or asset transaction is involved. When the various embodiments of this application are applied to specific products or technologies, the user's permission or consent is required, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of the relevant countries and regions.
[0055] The following is an explanation of the technical terms in the related technologies of this application.
[0056] Blockchain is a shared digital ledger with a block chain data structure that is anti-counterfeiting, anti-tampering and traceable, built through transparent and trusted rules in a peer-to-peer network environment. The block chain data structure is a data structure that stores transactions that occur over a period of time in blocks and connects the blocks into a chain in chronological order using a cryptographic algorithm. The ledger is distributed to all member nodes in the network, and the history of asset transactions that occur between peer nodes in the network is permanently recorded in a sequential chain of blocks linked by a hash cryptographic algorithm. All confirmed and proven transactions are linked from the beginning of the chain to the latest block, hence the name blockchain. The blockchain can act as a single source of truth, and members in the blockchain network can only view transactions that are relevant to them.
[0057] Blockchain is generally divided into three types: public chain, private chain and consortium chain. Among them, the public chain has the highest degree of decentralization. Nodes / participants who join the public chain can read the data on the chain, publish transactions, and compete for the right to record new blocks, etc. Moreover, each node / participant can freely join and exit the public chain. On the contrary, the private chain's accounting authority is controlled by a certain organization or institution, and the data reading authority is also controlled by the organization or institution. There are few participants and they cannot join the private chain at will. They must be reviewed by the organization or institution. Consortium chain, also known as community blockchain, refers to a blockchain whose consensus process is controlled by pre-selected nodes. It is a mixture of public chain and private chain, which can achieve "partial decentralization". Each node on the chain usually has a corresponding entity or organization; participants join the network through authorization and form a stakeholder alliance to jointly maintain the operation of the blockchain. Through the consortium chain, new participants can join the established blockchain and share data without having to build it from scratch. Whether it is a public chain, a private chain or a consortium chain, it may provide smart contract functions.
[0058] Smart contracts, also known as chaincode or application code, are computer protocols designed to disseminate, verify or execute contracts in an information-based manner. They are programs deployed in nodes of a blockchain network, carry the business logic for executing transactions, and run in an isolated operating environment (such as a container or virtual machine). Contract programs that are automatically executed by each node in a blockchain system according to specific conditions can operate on data stored on the chain. They are an important way for business entities to interact with blockchains and use blockchains to implement business logic. The purpose of smart contracts is to provide a security method that is superior to traditional contracts and to reduce other transaction costs associated with contracts. It allows trusted transactions without a third party, and these transactions are traceable and irreversible. Smart contracts on blockchains are contracts that can be triggered by transactions on blockchain systems and can be defined in the form of code.
[0059] Figure 1 A schematic diagram of the system architecture implemented by applying the technical solution in the embodiments of the present application is shown.
[0060] like Figure 1 As shown, the system architecture includes a client 101, a server 102, a smart contract engine 103 and a blockchain network 104.
[0061] The client 101 may be a smart phone, tablet computer, laptop computer, desktop computer, smart wearable device, smart vehicle-mounted device, smart payment terminal or other electronic devices, and may provide a user interface for asset management, and may specifically provide functions such as user registration / logout, organization management, expense management, history query, notification, etc. The user interface provided by the client may be a web page, a hosted program running on a host program, an independently installed and run application, etc.
[0062] Server 102 can be an independent physical server, or a server cluster composed 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, and big data and artificial intelligence platforms. Server 102 is used to provide backend services for client 101, and integrates and calls basic smart contracts to complete payment, application for account movement, distributed approval, account movement, auditing, reporting and other functions.
[0063] The smart contract engine 103 provides the ability to orchestrate various smart contracts, and completes the functional orchestration through external authorization triggering or automatic triggering of associated smart contracts. The smart contract engine 103 can provide standard payment, application for account movement, distributed approval, account movement, notification, audit, supervision reporting and other related smart contract template libraries for asset management; multiple participants can select smart contract templates to form integrated applications.
[0064] The blockchain network 104 includes at least one blockchain node, which can be a terminal device or server involved in asset management and asset transactions.
[0065] In a blockchain network, each blockchain node can receive input information when performing normal work, and maintain shared data in the blockchain network based on the received input information. In order to ensure information intercommunication, information connections can exist between each blockchain node, and each blockchain node can transmit information to each other through information connections. For example, when any blockchain node in the blockchain network receives input information and broadcasts the input information in the blockchain network, other node devices in the blockchain network can obtain the input information according to the consensus algorithm and store the input information as shared data.
[0066] Each blockchain node in the blockchain network has a corresponding node identifier, and each blockchain node in the blockchain network can store the node identifiers of other nodes in the same blockchain network, so that the generated blocks can be broadcast to other nodes in the blockchain network according to the node identifiers of other blockchain nodes. A node identifier list can be maintained in the blockchain node, and the node name and node identifier are stored in the node identifier list accordingly. The node identifier can be an IP (Internet Protocol, a protocol for interconnecting networks) address or any other information that can be used to identify the node.
[0067] Figure 2 The structure of the blockchain maintained on the blockchain network is shown. Figure 2 As shown in the figure, the blockchain consists of multiple sequentially connected blocks. Whenever new data needs to be written into the blockchain, the data will be aggregated into a newly generated block, which will be linked to the end of the blockchain. The consensus algorithm can ensure that the newly added blocks on each node device are exactly the same. The data of the current block is recorded in the block body of each block, and the hash value of the previous block connected to it is saved in its block header. If the transaction data in the previous block changes, the hash value of the current block will also change accordingly. Therefore, the data uploaded to the blockchain network is difficult to be tampered with, which can improve the reliability of shared data.
[0068] The following is a detailed description of the technical solutions such as the asset transfer method, asset transfer device, computer-readable medium, electronic device, and computer program product provided by the present application in conjunction with specific implementation methods.
[0069] Figure 3 A flowchart of an asset transfer method in an embodiment of the present application is shown. The asset transfer method can be performed by Figure 1 The client or server shown in the figure can be executed separately, or the client and the server can be executed together. The asset transfer method executed by the client is used as an example to illustrate the embodiment of the present application. Figure 3 As shown, the asset transfer method in the embodiment of the present application may include the following steps S310 to S330.
[0070] S310: Parse the asset transfer request for the virtual asset to obtain the transaction data and signature list carried in the asset transfer request, where the transaction data includes data for requesting the asset transfer of the virtual asset, and the signature list includes data obtained by signing the transaction data by multiple signatories.
[0071] S320: According to the signature list, obtain the authority level and signature result of each signatory, the authority level is used to indicate the management authority of the signatory for the virtual asset, and the signature result is used to indicate whether the signatory agrees to execute the asset transfer request; wherein, at least two signatory parties have different authority levels.
[0072] S330: In order from low to high authority levels, the signature results of the signatories with the same authority level are counted in turn to obtain signature statistical information corresponding to each authority level, and the asset transfer instruction is determined based on the signature statistical information and the preset asset transfer conditions; the asset transfer instruction is used to instruct the execution of the asset transfer request or the rejection of the asset transfer request, and different authority levels correspond to different asset transfer conditions.
[0073] In the asset transfer method provided in the embodiment of the present application, the authority levels are specified for multiple signatories, and the signature results can be counted according to the authority levels. Then, the execution of the asset transfer request or the rejection of the asset transfer request can be determined based on the statistical information of the multiple signatures at different authority levels. This overcomes the dependence of the asset transfer process on account keys and user instructions, and improves the flexibility of asset transfer operations.
[0074] The following is a detailed description of each method step of the asset transfer method in the above embodiment in combination with a specific application scenario.
[0075] In step S310, the asset transfer request for the virtual asset is parsed to obtain the transaction data and signature list carried in the asset transfer request, wherein the transaction data includes data for requesting an asset transfer of the virtual asset, and the signature list includes data obtained by signing the transaction data by multiple signatories.
[0076] An asset transfer request is a business request initiated by a user to transfer a certain amount of virtual assets in a blockchain asset account to another blockchain asset account. Each blockchain asset account can pre-set multiple signatories with management rights over the virtual assets in the account. Whenever a user initiates an asset transfer request, the corresponding transaction data can be constructed according to business needs, and multiple signatories can sign the transaction data to obtain a signature list consisting of multiple signature data.
[0077] For example, the data structure of a blockchain asset account includes the following fields.
[0078] "contract_address":"0x351c22Ca3a30aE420ff879E6E3AC04aE8054a19f",
[0079] "coin_symbol":"eth",
[0080] "coin_decimal":"18".
[0081] Among them, contract_address represents the account address of the asset account, coin_symbol represents the asset type of the virtual asset stored in the asset account, and coin_decimal represents the amount of virtual assets stored in the asset account.
[0082] The blockchain asset account can be associated with a signatory list, which is used to store the identity information of the signatory who has the authority to associate the virtual assets in the blockchain asset account.
[0083] For example, the blockchain asset account can be managed by three signatories: test1, test2, and test3.
[0084] The identity information of the signer test1 includes the following multiple fields.
[0085] "user_name":"test1",
[0086] "prikey":"619b9c82fcfc6216b1a0ae3abea07226a16440ccf5202c9b717b8f9002f0d7d1",
[0087] "pubkey":"d50e9c580101b7978185dfdf8dce79325cd42472b0efffbdfef64e44523880f6",
[0088] "address":"1BCabgZZwBzsSuZ7xwmF9qfTKNHmZWEShW".
[0089] Among them, user_name represents the user name of the signer, prikey represents the private key held by the signer, pubkey represents the public key held by the signer, and address represents the blockchain account address of the signer.
[0090] Accordingly, the identity information of the signer test2 includes the following multiple fields.
[0091] "user_name":"test2",
[0092] "prikey":"f310631172a48dcbb0ba9ebeb00f391dcbc28f4a13723cf99222e1e0d6540284",
[0093] "pubkey":"5ea515002ba74612dbca910d58274c27de32222ca6858a99f6f7d3bb9f876f10",
[0094] "address":"1HXK29UySRiormRyo2L3RRRYfPj48yT6fV".
[0095] The identity information of the signer test3 includes the following fields.
[0096] "user_name":"test3",
[0097] "prikey":"5d7bd5b9bd5578669c4294207554b17b605c53de06e5e0342a08175109149212",
[0098] "pubkey":"fad2a393d517605901190ff9b45589e2de13ec5973ded422fd4709415e0f86be",
[0099] "address":"1NagCpDxGP6upAKvDKqm67efHgQKnuYRcN".
[0100] For example, when a user requests to transfer a certain amount of virtual assets from the current blockchain asset account to other accounts, the transaction data can be constructed and signed by each signing party, and then an asset transfer request carrying the transaction data and signature list can be obtained.
[0101] The asset transfer request can be broadcasted on the blockchain network, so that each blockchain node can perform consensus authentication on the asset transfer request, and execute the asset transfer request when the authentication is passed, and save the transaction on the blockchain.
[0102] When any blockchain node receives an asset transfer request broadcast on the blockchain network, it can parse the asset transfer request to obtain the transaction data and signature list carried in the asset transfer request. The data structure of the transaction data may include the following multiple fields, for example.
[0103] "contract_address":"0x351c22Ca3a30aE420ff879E6E3AC04aE8054a19f",
[0104] "coin_symbol":"eth",
[0105] "chainid":"88888888",
[0106] "from":"0x351c22Ca3a30aE420ff879E6E3AC04aE8054a19f",
[0107] "to":"0x1CFF6MHMJXYGaZnbdLj1nZNLsB95m1c8cj",
[0108] "value":"7",
[0109] "gas_limit":1000,
[0110] "gas_price":"0.002".
[0111] Among them, contract_address represents the account address that initiates the asset transfer request, coin_symbol represents the asset type of the virtual asset saved in the asset transfer request, chainid represents the identifier of the blockchain that stores and manages the virtual asset, from represents the source account address of the virtual asset transferred out, to represents the target account address to which the asset is transferred, value represents the number of assets transferred corresponding to this asset transfer request, gas_limit represents the maximum fee limit for executing the asset transfer, and gas_price represents the fee consumption of this asset transfer.
[0112] The transaction data indicates that 7 eth of virtual assets are transferred from the source account address 0x351c22Ca3a30aE420ff879E6E3AC04aE8054a19f to the target account address 0x1CFF6MHMJXYGaZnbdLj1nZNLsB95m1c8cj.
[0113] The signature list stores multiple signature data generated after multiple signatories sign the transaction data.
[0114] For example, the signature data generated by the signing party test1 after signing the transaction data includes the following multiple fields.
[0115] "user_name":"test1",
[0116] "pubkey":"d50e9c580101b7978185dfdf8dce79325cd42472b0efffbdfef64e44523880f6",
[0117] "address":"1BCabgZZwBzsSuZ7xwmF9qfTKNHmZWEShW",
[0118] "sign_data":sign("agree",prikey(test1)).
[0119] Among them, user_name represents the user name of the signer test1, pubkey represents the public key held by the signer test1, address represents the account address of the signer test1 on the blockchain network, and sign_data represents the signature result.
[0120] Accordingly, the signature data generated by the signing party test2 after signing the transaction data includes the following multiple fields.
[0121] "user_name":"test2",
[0122] "pubkey":"5ea515002ba74612dbca910d58274c27de32222ca6858a99f6f7d3bb9f876f10",
[0123] "address":"1HXK29UySRiormRyo2L3RRRYfPj48yT6fV",
[0124] "sign_data":sign("agree",prikey(test2)).
[0125] The signature data generated by the signing party test3 after signing the transaction data includes the following multiple fields.
[0126] "user_name":"test3",
[0127] "pubkey":"fad2a393d517605901190ff9b45589e2de13ec5973ded422fd4709415e0f86be",
[0128] "address":"1NagCpDxGP6upAKvDKqm67efHgQKnuYRcN",
[0129] "sign_data":sign("disagree",prikey(test3)).
[0130] In step S320, the authority level and signature result of each signatory are obtained according to the signature list. The authority level is used to indicate the management authority of the signatory over the virtual assets, and the signature result is used to indicate whether the signatory agrees to execute the asset transfer request; wherein, at least two signatory parties have different authority levels.
[0131] Figure 4 The flowchart of the method for obtaining the authority level and signature result of the signatory in one embodiment of the present application is shown. Figure 4 As shown, in the embodiment of the present application, obtaining the authority level and signature result of each signatory according to the signature list may include the following steps S410 to S430.
[0132] S410: Extracting identity data of each signatory and signature data associated with the identity data from the signature list, where the identity data includes a plurality of identity fields for uniquely identifying the signatory on the blockchain network.
[0133] For example, the identity data of the signer test1 has the following data structure.
[0134] "user_name":"test1",
[0135] "pubkey":"d50e9c580101b7978185dfdf8dce79325cd42472b0efffbdfef64e44523880f6",
[0136] "address":"1BCabgZZwBzsSuZ7xwmF9qfTKNHmZWEShW",
[0137] It includes multiple identity fields used to uniquely identify the signer on the blockchain network: subject name user_name, subject public key pubkey and subject address address.
[0138] The signature data associated with the identity data is "sign_data":sign("agree",prikey(test1)). The signature result "agree" indicates that the signer test1 agrees to transfer the assets.
[0139] S420: Authentication of the signatory party is performed according to the identity data, and after the authentication is passed, the authority level corresponding to the identity data is obtained.
[0140] In one embodiment of the present application, the method for authenticating the signatory party based on identity data may further include: querying the on-chain identity information corresponding to a specified identity field in the identity data on the blockchain; performing consistency verification on each identity field in the identity data and the on-chain identity information, and determining that the identity authentication result of the signatory party is verified when the verification is successful.
[0141] For example, the embodiment of the present application can use the subject name in the identity data as the designated identity field, query the on-chain identity information corresponding to the subject name on the blockchain, and then perform consistency verification on the on-chain identity information and other identity fields in the identity data, such as the subject public key and the subject address. If the verification is successful, it can be determined that the identity verification result of the signer is passed; if the verification fails, it can be determined that the identity verification result of the signer is failed.
[0142] In one embodiment of the present application, the method for querying on-chain identity information corresponding to a specified identity field in identity data on the blockchain may further include: extracting a blockchain identifier and a contract address from transaction data, the blockchain identifier is used to indicate the blockchain storing the virtual asset, and the contract address is used to indicate the blockchain address of the smart contract for managing the virtual asset; querying the smart contract for managing the virtual asset on the blockchain according to the blockchain identifier and the contract address; and calling the smart contract to query the on-chain identity information corresponding to the specified identity field.
[0143] For example, the transaction data carried in the asset transfer request has the following data structure.
[0144] "contract_address":"0x351c22Ca3a30aE420ff879E6E3AC04aE8054a19f",
[0145] "coin_symbol":"eth",
[0146] "chainid":"88888888",
[0147] "from":"0x351c22Ca3a30aE420ff879E6E3AC04aE8054a19f",
[0148] "to":"0x1CFF6MHMJXYGaZnbdLj1nZNLsB95m1c8cj",
[0149] "value":"7",
[0150] "gas_limit":1000,
[0151] "gas_price":"0.002".
[0152] The blockchain identifier chainid and the contract address contract_address can be extracted from the above transaction data. The blockchain identifier and contract address can be used to call the corresponding smart contract for managing virtual assets, thereby querying the on-chain identity information corresponding to the specified identity field.
[0153] S430: Perform signature verification on the signer according to the signature data, and obtain the signature result corresponding to the signature data after the verification passes.
[0154] In one embodiment of the present application, a method for verifying the signature of a signer based on signature data may include: extracting the subject public key of the signer from identity data; decrypting the signature data based on the subject public key to obtain decrypted summary information; extracting a summary of transaction data based on a preset summary extraction algorithm to obtain summary information of the transaction data; performing a consistency check on the decrypted summary information and the summary information of the transaction data, and when the check is successful, determining that the signature verification result of the signer is verification passed.
[0155] The embodiment of the present application performs identity authentication and signature verification on the signatory, thereby avoiding the problem of identity fraud or identity impersonation on the one hand, and avoiding the problem of forged signatures on the other hand, thereby comprehensively ensuring the security of asset management from two different dimensions.
[0156] In step S330, the signature results of the signatories with the same authority level are counted in order from low to high authority levels to obtain signature statistical information corresponding to each authority level, and the asset transfer instruction is determined based on the signature statistical information and the preset asset transfer conditions; the asset transfer instruction is used to instruct the execution of the asset transfer request or the rejection of the asset transfer request, and different authority levels correspond to different asset transfer conditions.
[0157] In one embodiment of the present application, the permission level includes high-level permission and low-level permission, and the signatory with high-level permission has higher management authority over virtual assets than the signatory with low-level permission; the signature statistical information includes the first signature number corresponding to the low-level permission and the second signature number corresponding to the high-level permission, the first signature number is the number of signature results of the signatory with low-level permission agreeing to execute the asset transfer request, and the second signature number is the number of signature results of the signatory with high-level permission agreeing to execute the asset transfer request.
[0158] For example, the signatories associated with a blockchain asset account include test1, test2, and test3. Among them, the signatories test1 and test2 have low-level permissions, and the signatories test3 have high-level permissions. By parsing the asset transfer request, it can be obtained that the signature result of the signator test1 is consent to transfer assets, the signature result of the signator test2 is consent to transfer assets, and the signature result of the signator test3 is refusal to transfer assets.
[0159] In one embodiment of the present application, a method for determining an asset transfer instruction according to signature statistical information and a preset asset transfer condition may include:
[0160] Determining whether the signature statistics information satisfies a first asset transfer condition corresponding to a low-level permission according to the first signature quantity;
[0161] If the signature statistics information satisfies the first asset transfer condition, determining whether the signature statistics information satisfies the second asset transfer condition corresponding to the advanced authority according to the second signature quantity;
[0162] If the signature statistics information satisfies the second asset transfer condition corresponding to the advanced authority, determining an asset transfer instruction for executing the asset transfer request;
[0163] If the signature statistics information does not satisfy the first asset transfer condition or does not satisfy the second asset transfer condition, it is determined that the asset transfer instruction of the asset transfer request is rejected.
[0164] In one embodiment of the present application, the first asset transfer condition includes that the ratio of the number of first signatures in all signature results is greater than or equal to a preset ratio threshold, and the second asset transfer condition includes that the number of second signatures is greater than or equal to a preset quantity threshold.
[0165] For example, the first asset transfer condition is that the ratio of the number of first signatures in all signature results is greater than or equal to the ratio threshold 2 / 3, and the second asset transfer condition is that the number of second signatures is greater than or equal to the quantity threshold 1.
[0166] The permission level of the signatories test1 and test2 is low-level permission, and the signature results of the signatories test1 and test2 are both consent to transfer assets, so the first signature quantity is 2 / 3, which meets the corresponding first asset transfer conditions.
[0167] The permission level of test3 is advanced permission, and the signature result of the signer test3 is to refuse to transfer assets, so the second signature quantity is 0, which does not meet the corresponding second asset transfer conditions.
[0168] Therefore, it can be determined that the asset transfer instruction to execute the asset transfer request is rejected.
[0169] In one embodiment of the present application, the signature result may also be determined by classification statistics.
[0170] Figure 5 A flowchart of a method for counting signature results according to authority levels in one embodiment of the present application is shown. Figure 5 As shown, the method of sequentially counting the signature results of signatories with the same authority level in order from low to high authority levels may include the following steps S510 to S530.
[0171] S510: Classify the signature results of the signer according to the authority level to obtain multiple signature sets corresponding to different authority levels;
[0172] S520: Count the signature results of the signatories with the same authority level in order from low to high, and count the number of signature approvals and the number of signature rejections in the signature set, where the number of signature approvals is the number of signature results that agree to execute the asset transfer request, and the number of signature rejections is the number of signature results that reject the execution of the asset transfer request;
[0173] S530: Generate signature statistical information according to the number of signature approvals and the number of signature rejections obtained from statistics in each signature set.
[0174] In one embodiment of the present application, the method for generating signature statistical information based on the number of signature approvals and the number of signature rejections obtained by counting in each signature set may further include: obtaining a level weight associated with the authority level, the level weight being positively correlated with the authority level; weighting the number of signature approvals and the number of signature rejections obtained by counting in each signature set according to the level weight, and obtaining the weighted number as the signature statistical information.
[0175] In one embodiment of the present application, determining an asset transfer instruction based on signature statistical information may further include: if the weighted quantity is greater than a preset quantity threshold, determining an asset transfer instruction to execute the asset transfer request; if the weighted quantity is less than the quantity threshold, determining an asset transfer instruction to refuse to execute the asset transfer request.
[0176] For example, the embodiment of the present application can assign a smaller level weight a to a signatory with a lower authority level, and at the same time assign a larger level weight b to a signatory with a higher authority level.
[0177] Taking low-level permissions and high-level permissions as examples, in the signature set corresponding to the low-level permissions, the number of signature approvals is Y1, and the number of signature rejections is N1; in the signature set corresponding to the high-level permissions, the number of signature approvals is Y2, and the number of signature rejections is N2.
[0178] After weighting the number of signature approvals and the number of signature rejections using the grade weight, the weighted number obtained is a*(Y1-N1)+b*(Y2-N2).
[0179] If the weighted quantity is greater than the specified quantity threshold, an asset transfer instruction for executing the asset transfer request may be determined; if the weighted quantity is less than the specified quantity threshold, an asset transfer instruction for rejecting the asset transfer request may be determined.
[0180] Figure 6 A business flow chart of asset transfer management performed in an application scenario in an embodiment of the present application is shown.
[0181] like Figure 6 As shown, in this application scenario, firstly, a smart contract for executing asset transfer management business can be developed and deployed on the blockchain network, which specifically includes the following processes.
[0182] S601: Develop and write a multi-signature execution contract.
[0183] Smart contracts are immutable computer programs written in high-level languages such as Solidity and Vyper, which run on blockchain virtual machines and implement decentralized application technologies in a deterministic manner. Multi-signature is a specific type of digital signature that allows more than two users to sign as a group.
[0184] S602: Compile the smart contract.
[0185] By compiling the smart contract, you can obtain bytecode that can be executed on the blockchain virtual machine.
[0186] S603: REQ platform distribution.
[0187] REQ is a software development and testing process management platform used to manage the entire life cycle of software version development, testing, defect submission, regression testing, and release.
[0188] S604: After review, the smart contract is deployed.
[0189] Deploy smart contracts on the smart contract engine, which can be called by blockchain nodes in the blockchain network.
[0190] Continue to refer Figure 6 As shown in the figure, after the smart contract deployment is completed, the multi-signature transfer transaction can be realized by calling the smart contract, which specifically includes the following process.
[0191] S605: Specify the multi-signature participants and special decision makers of the assets.
[0192] For example, the multi-signature parties include test1, test2, and test3, where test3 is a special decision maker with a higher level of authority.
[0193] S606: Initiate a transfer transaction and broadcast it to all participating parties.
[0194] S607: Each participant signs and votes, and packages and generates an asset transfer request.
[0195] S608: Broadcast the asset transfer request to the blockchain network to trigger the execution of the smart contract.
[0196] The embodiment of the present application can use the python template library jinja2 to generate smart contracts. Jinja2 is a template system developed by the author of the python web framework Flask. It was originally a template engine imitating the Django template and provides template support for Flask. It is widely used due to its flexibility, speed and security.
[0197] Figure 7 A business flow chart of an embodiment of the present application for executing asset transfer management by calling a smart contract in an application scenario is shown, which specifically includes the following steps.
[0198] S701: Construct a multi-signature transaction and forward it to the chain.
[0199] S702: Call the smart contract to verify the signature.
[0200] S703: Traverse the signature list and analyze the voting content.
[0201] S704: Verify signatures and count the number of “yes” votes.
[0202] S705: Determine whether the number of votes in favor is greater than or equal to the required number. If the result is yes, proceed to step S706; if the result is no, determine that the transfer has failed.
[0203] S706: Determine whether the special decision maker votes in favor. If the result is yes, the transfer is determined to be successful; if the result is no, the transfer is determined to be unsuccessful.
[0204] The embodiment of the present application sets up multiple people to jointly manage an address. The assets in the address can only be used after the signatures of a set number of managers. The biggest feature of multi-signature is that the transfer transaction requires the authorization of multiple private key holders. Usually, the embodiment of the present application confirms the "mn mode" when creating an asset account. Only when m of the n participants jointly sign the authorization can the transfer, transaction and other operations of the virtual assets corresponding to the asset account be completed.
[0205] For example, after the smart contract is deployed on the blockchain, the embodiment of the present application can specify a list of asset managers, assign public and private keys to them, and stipulate that special users have "one-vote decision-making" rights. For example, test1, test2, and test3 are designated to have the right to transfer the eth assets under the contract address. The security mode is "2 / 3", that is, the assets can only be transferred if 2 of the 3 users sign and agree, and test3 has "one-vote decision-making power".
[0206] In this application scenario, each transaction requires signature authorization from 2 of the 3 private keys to complete, which can better balance the relationship between security and convenience. In the application scenario of the embodiment of the present application, in addition to the need for some participants with equal roles to complete the signature transfer of assets, there is also the need for "veto" by designated participants in the hierarchical relationship. For example, for a company's appropriation operation, in addition to the signatures of the finance department, business department, and procurement department that meet the n of m conditions, the signature of the leader of the board of directors is also required. This special signature has the right of "veto". The implementation method of the blockchain multi-signature smart contract with a fixed signing party proposed in the embodiment of the present application can not only meet the n of m signature requirements for asset transfer in traditional business scenarios, but also cover the special rights of designated signing parties, such as "veto".
[0207] It should be noted that although the steps of the method in the present application are described in a specific order in the drawings, this does not require or imply that the steps must be performed in this specific order, or that all the steps shown must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps, etc.
[0208] The following introduces an apparatus embodiment of the present application, which can be used to execute the asset transfer method in the above-mentioned embodiment of the present application. Figure 8 The structure block diagram of the asset transfer device provided in the embodiment of the present application is schematically shown. Figure 8 As shown, the asset transfer device 800 includes:
[0209] The parsing module 810 is configured to parse the asset transfer request for the virtual asset, and obtain the transaction data and signature list carried in the asset transfer request, wherein the transaction data includes data for requesting to perform asset transfer on the virtual asset, and the signature list includes data obtained by multiple signatories signing the transaction data;
[0210] The acquisition module 820 is configured to acquire the authority level and signature result of each of the signatories according to the signature list, wherein the authority level is used to indicate the management authority of the signatories for the virtual assets, and the signature result is used to indicate whether the signatories agree to execute the asset transfer request; wherein at least two of the signatories have different authority levels;
[0211] The statistical module 830 is configured to count the signature results of the signatories with the same authority level in order from low to high, obtain signature statistical information corresponding to each authority level, and determine an asset transfer instruction based on the signature statistical information and a preset asset transfer condition; the asset transfer instruction is used to instruct the execution of the asset transfer request or the rejection of the asset transfer request, and different authority levels correspond to different asset transfer conditions.
[0212] In some embodiments of the present application, based on the above technical solution, the permission level includes high-level permissions and low-level permissions, and the signatory with the high-level permissions has higher management authority over the virtual assets than the signatory with the low-level permissions; the signature statistical information includes a first number of signatures corresponding to the low-level permissions and a second number of signatures corresponding to the high-level permissions, the first number of signatures being the number of signature results that the signatory with the low-level permissions agrees to execute the asset transfer request, and the second number of signatures being the number of signature results that the signatory with the high-level permissions agrees to execute the asset transfer request.
[0213] In some embodiments of the present application, based on the above technical solution, the statistical module 830 is further configured to: determine whether the signature statistical information satisfies the first asset transfer condition corresponding to the low-level authority according to the first signature number; if the signature statistical information satisfies the first asset transfer condition, determine whether the signature statistical information satisfies the second asset transfer condition corresponding to the high-level authority according to the second signature number; if the signature statistical information satisfies the second asset transfer condition corresponding to the high-level authority, determine to execute the asset transfer instruction of the asset transfer request; if the signature statistical information does not satisfy the first asset transfer condition or does not satisfy the second asset transfer condition, determine to refuse to execute the asset transfer instruction of the asset transfer request.
[0214] In some embodiments of the present application, based on the above technical solution, the first asset transfer condition includes that the ratio of the first signature quantity in all signature results is greater than or equal to a preset ratio threshold, and the second asset transfer condition includes that the second signature quantity is greater than or equal to a preset quantity threshold.
[0215] In some embodiments of the present application, based on the above technical solution, the statistical module further includes:
[0216] A signature classification module, configured to classify the signature results of the signatory according to the authority level to obtain a plurality of signature sets corresponding to different authority levels;
[0217] A quantity counting module is configured to count the number of signature approvals and the number of signature rejections in the signature set in order of the authority level from low to high, wherein the number of signature approvals is the number of signature results that agree to execute the asset transfer request, and the number of signature rejections is the number of signature results that reject the execution of the asset transfer request;
[0218] The information generation module is configured to generate signature statistical information according to the number of signature approvals and the number of signature rejections obtained by counting in each of the signature sets.
[0219] In some embodiments of the present application, based on the above technical solution, the information generation module further includes:
[0220] A weight acquisition module is configured to acquire a level weight associated with the permission level, wherein the level weight is positively correlated with the permission level;
[0221] The quantity weighting module is configured to perform weighted processing on the number of signature approvals and the number of signature rejections obtained by counting in each signature set according to the level weight, and obtain the weighted number as signature statistical information.
[0222] In some embodiments of the present application, based on the above technical solution, the asset transfer condition is a quantity threshold associated with the authority level; the statistical module 830 further includes:
[0223] A first instruction generating module is configured to determine an asset transfer instruction for executing the asset transfer request if the weighted quantity is greater than a preset quantity threshold;
[0224] The second instruction generating module is configured to determine an asset transfer instruction for refusing to execute the asset transfer request if the weighted quantity is less than the quantity threshold.
[0225] In some embodiments of the present application, based on the above technical solution, the acquisition module 820 further includes:
[0226] A data extraction module is configured to extract identity data of each of the signatories and signature data associated with the identity data from the signature list, wherein the identity data includes a plurality of identity fields for uniquely identifying the signatories on a blockchain network;
[0227] an identity verification module, configured to verify the identity of the signatory according to the identity data, and obtain the authority level corresponding to the identity data after the verification is passed;
[0228] The signature verification module is configured to perform signature verification on the signatory according to the signature data, and obtain a signature result corresponding to the signature data after the verification is passed.
[0229] In some embodiments of the present application, based on the above technical solution, the identity authentication module further includes:
[0230] An identity query module is configured to query the blockchain for on-chain identity information corresponding to a specified identity field in the identity data;
[0231] The consistency verification module is configured to perform consistency verification on each identity field in the identity data and the identity information on the chain, and determine that the identity authentication result of the signer is verified when the verification is successful.
[0232] In some embodiments of the present application, based on the above technical solution, the identity query module is further configured to: extract a blockchain identifier and a contract address from the transaction data, the blockchain identifier is used to indicate the blockchain storing the virtual asset, and the contract address is used to indicate the blockchain address of the smart contract that manages the virtual asset; query the smart contract for managing the virtual asset on the blockchain according to the blockchain identifier and the contract address; call the smart contract to query the on-chain identity information corresponding to the specified identity field.
[0233] In some embodiments of the present application, based on the above technical solution, the identity field includes a subject name, a subject public key or a subject address.
[0234] In some embodiments of the present application, based on the above technical solution, the signature verification module is further configured to: extract the subject public key of the signatory from the identity data; decrypt the signature data according to the subject public key to obtain decrypted summary information; extract the summary of the transaction data according to a preset summary extraction algorithm to obtain the summary information of the transaction data; perform a consistency check on the decrypted summary information and the summary information of the transaction data, and when the verification is successful, determine that the signature verification result of the signatory is verified passed.
[0235] The specific details of the asset transfer device provided in each embodiment of the present application have been described in detail in the corresponding method embodiments and will not be repeated here.
[0236] Fig. 9The structure block diagram of a computer system for implementing an electronic device according to an embodiment of the present application is schematically shown.
[0237] It should be noted that Fig. 9 The computer system 900 of the electronic device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present application.
[0238] like Fig. 9 As shown, the computer system 900 includes a central processing unit 901 (CPU), which can perform various appropriate actions and processes according to the program stored in the read-only memory 902 (ROM) or the program loaded from the storage part 908 to the random access memory 903 (RAM). Various programs and data required for system operation are also stored in the random access memory 903. The central processing unit 901, the read-only memory 902 and the random access memory 903 are connected to each other through a bus 904. An input / output interface 905 (Input / Output interface, i.e., I / O interface) is also connected to the bus 904.
[0239] The following components are connected to the input / output interface 905: an input section 906 including a keyboard, a mouse, etc.; an output section 907 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker; a storage section 908 including a hard disk, etc.; and a communication section 909 including a network interface card such as a LAN card, a modem, etc. The communication section 909 performs communication processing via a network such as the Internet. A drive 910 is also connected to the input / output interface 905 as needed. A removable medium 911, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 910 as needed so that a computer program read therefrom is installed into the storage section 908 as needed.
[0240] In particular, according to an embodiment of the present application, the process described in each method flow chart can be implemented as a computer software program. For example, an embodiment of the present application includes a computer program product, which includes a computer program carried on a computer readable medium, and the computer program contains a program code for executing the method shown in the flow chart. In such an embodiment, the computer program can be downloaded and installed from the network through the communication part 909, and / or installed from the removable medium 911. When the computer program is executed by the central processor 901, various functions defined in the system of the present application are executed.
[0241] It should be noted that the computer-readable medium shown in the embodiment of the present application may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, a system, device or device of electricity, magnetism, light, electromagnetic, infrared, or semiconductor, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM), a flash memory, an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present application, a computer-readable storage medium may be any tangible medium containing or storing a program, which may be used by an instruction execution system, device or device or used in combination with it. In the present application, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, wherein a computer-readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. Computer readable signal media may also be any computer readable medium other than computer readable storage media, which may send, propagate, or transmit programs for use by or in conjunction with an instruction execution system, apparatus, or device. The program code contained on the computer readable medium may be transmitted using any suitable medium, including but not limited to: wireless, wired, etc., or any suitable combination of the above.
[0242] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present application. In this regard, each box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the above-mentioned module, program segment or a part of a code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram or flow chart, and the combination of the boxes in the block diagram or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0243] It should be noted that, although several modules or units of the equipment for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the embodiments of the present application, the features and functions of two or more modules or units described above can be embodied in one module or unit. On the contrary, the features and functions of one module or unit described above can be further divided into being embodied by multiple modules or units.
[0244] Through the description of the above implementation methods, it is easy for those skilled in the art to understand that the example implementation methods described here can be implemented by software or by combining software with necessary hardware. Therefore, the technical solution according to the implementation methods of the present application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which can be a personal computer, a server, a touch terminal, or a network device, etc.) to execute the method according to the implementation methods of the present application.
[0245] Those skilled in the art will readily appreciate other embodiments of the present application after considering the specification and practicing the invention disclosed herein. The present application is intended to cover any modification, use or adaptation of the present application, which follows the general principles of the present application and includes common knowledge or customary technical means in the art that are not disclosed in the present application.
[0246] It should be understood that the present application is not limited to the precise structures that have been described above and shown in the drawings, and that various modifications and changes may be made without departing from the scope thereof. The scope of the present application is limited only by the appended claims.
Claims
1. An asset transfer method, characterized in that: include: Parsing an asset transfer request for a virtual asset to obtain transaction data and a signature list carried in the asset transfer request, wherein the transaction data includes data for requesting to perform an asset transfer on the virtual asset, and the signature list includes data obtained by multiple signatories signing the transaction data; According to the signature list, obtaining the authority level and signature result of each of the signatories, wherein the authority level is used to indicate the management authority of the signatories for the virtual assets, and the signature result is used to indicate whether the signatories agree to execute the asset transfer request; wherein at least two of the signatories have different authority levels; In order of the authority levels from low to high, the signature results of the signatories with the same authority level are counted in turn to obtain signature statistical information corresponding to each authority level, and an asset transfer instruction is determined based on the signature statistical information and a preset asset transfer condition; the asset transfer instruction is used to instruct the execution of the asset transfer request or the refusal to execute the asset transfer request, and different authority levels correspond to different asset transfer conditions.
2. The asset transfer method according to claim 1, characterized in that: The authority level includes high-level authority and low-level authority, and the signatory with the high-level authority has higher management authority over the virtual assets than the signatory with the low-level authority; The signature statistics include a first number of signatures corresponding to the low-level permissions and a second number of signatures corresponding to the high-level permissions, wherein the first number of signatures is the number of signature results that the signer with the low-level permissions agrees to execute the asset transfer request, and the second number of signatures is the number of signature results that the signer with the high-level permissions agrees to execute the asset transfer request.
3. The asset transfer method according to claim 2, characterized in that: Determining an asset transfer instruction according to the signature statistical information and a preset asset transfer condition includes: Determining whether the signature statistics information satisfies a first asset transfer condition corresponding to the low-level authority according to the first signature quantity; If the signature statistics information satisfies the first asset transfer condition, determining whether the signature statistics information satisfies the second asset transfer condition corresponding to the advanced permission according to the second signature quantity; If the signature statistical information satisfies the second asset transfer condition corresponding to the advanced permission, determining an asset transfer instruction for executing the asset transfer request; If the signature statistical information does not satisfy the first asset transfer condition or does not satisfy the second asset transfer condition, it is determined to refuse to execute the asset transfer instruction of the asset transfer request.
4. The asset transfer method according to claim 3, characterized in that: The first asset transfer condition includes that the ratio of the first signature quantity in all signature results is greater than or equal to a preset ratio threshold, and the second asset transfer condition includes that the second signature quantity is greater than or equal to a preset quantity threshold.
5. The asset transfer method according to claim 1, characterized in that: In order from low to high authority levels, the signature results of the signatories with the same authority level are counted in sequence, including: Classifying the signature results of the signer according to the authority level to obtain multiple signature sets corresponding to different authority levels; In order of the authority level from low to high, the number of signature approvals and the number of signature rejections in the signature set are counted in turn, wherein the number of signature approvals is the number of signature results that agree to execute the asset transfer request, and the number of signature rejections is the number of signature results that reject the execution of the asset transfer request; Signature statistical information is generated according to the number of signature approvals and the number of signature rejections obtained by counting in each of the signature sets.
6. The asset transfer method according to claim 5, characterized in that: Generate signature statistics information according to the number of signature approvals and the number of signature rejections obtained from each of the signature sets, including: Acquire a level weight associated with the permission level, wherein the level weight is positively correlated with the permission level; The number of signature approvals and the number of signature rejections obtained by counting in each signature set are weighted according to the level weight to obtain the weighted number as signature statistical information.
7. The asset transfer method according to claim 6, characterized in that: The asset transfer condition is a quantity threshold associated with the permission level; Determining an asset transfer instruction according to the signature statistical information and a preset asset transfer condition includes: If the weighted quantity is greater than a preset quantity threshold, determining an asset transfer instruction to execute the asset transfer request; If the weighted quantity is less than the quantity threshold, it is determined to reject the asset transfer instruction of the asset transfer request.
8. The asset transfer method according to any one of claims 1 to 7, characterized in that: According to the signature list, the authority level and signature result of each signatory are obtained, including: Extracting identity data of each of the signatories and signature data associated with the identity data from the signature list, wherein the identity data includes a plurality of identity fields for uniquely identifying the signatories on a blockchain network; Performing identity verification on the signatory according to the identity data, and obtaining the authority level corresponding to the identity data after the verification is passed; The signature of the signer is verified according to the signature data, and a signature result corresponding to the signature data is obtained after the verification passes.
9. The asset transfer method according to claim 8, characterized in that: Authentication of the signatory party according to the identity data includes: According to a specified identity field in the identity data, querying the blockchain for on-chain identity information corresponding to the specified identity field; Each identity field in the identity data is checked for consistency with the identity information on the chain, and when the check succeeds, the identity authentication result of the signatory is determined to be verified.
10. The asset transfer method according to claim 9, characterized in that: According to a specified identity field in the identity data, querying the blockchain for on-chain identity information corresponding to the specified identity field includes: Extracting a blockchain identifier and a contract address from the transaction data, wherein the blockchain identifier is used to indicate the blockchain storing the virtual asset, and the contract address is used to indicate the blockchain address of the smart contract managing the virtual asset; Querying a smart contract for managing the virtual asset on the blockchain according to the blockchain identifier and the contract address; The smart contract is called to query the on-chain identity information corresponding to the specified identity field.
11. The asset transfer method according to claim 8, characterized in that: The identity field includes a subject name, a subject public key, or a subject address.
12. The asset transfer method according to claim 8, characterized in that: Performing signature verification on the signatory according to the signature data includes: Extracting the subject public key of the signatory from the identity data; Decrypt the signature data according to the subject public key to obtain decrypted summary information; Extracting a summary of the transaction data according to a preset summary extraction algorithm to obtain summary information of the transaction data; The decrypted summary information is checked for consistency with the summary information of the transaction data, and when the check succeeds, the signature verification result of the signatory is determined to be verification passed.
13. An asset transfer device, characterized in that: include: A parsing module is configured to parse an asset transfer request for a virtual asset, and obtain transaction data and a signature list carried in the asset transfer request, wherein the transaction data includes data for requesting to perform an asset transfer on the virtual asset, and the signature list includes data obtained by multiple signatories signing the transaction data; an acquisition module, configured to acquire, according to the signature list, the authority level and the signature result of each of the signatories, wherein the authority level is used to indicate the management authority of the signatories over the virtual assets, and the signature result is used to indicate whether the signatories agree to execute the asset transfer request; wherein at least two of the signatories have different authority levels; The statistical module is configured to count the signature results of the signatories with the same authority level in order from low to high, obtain signature statistical information corresponding to each authority level, and determine an asset transfer instruction based on the signature statistical information and a preset asset transfer condition; the asset transfer instruction is used to instruct the execution of the asset transfer request or the rejection of the asset transfer request, and different authority levels correspond to different asset transfer conditions.
14. A computer readable medium, characterized in that The computer-readable medium stores a computer program, and when the computer program is executed by a processor, the asset transfer method according to any one of claims 1 to 12 is implemented.
15. An electronic device, characterized in that: include: processor; as well as A memory, configured to store executable instructions of the processor; Wherein, the processor is configured to execute the executable instructions to implement the asset transfer method as described in any one of claims 1 to 12.
16. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the asset transfer method according to any one of claims 1 to 12 is implemented.