Transaction verification method, device, equipment, medium and program product for shared account
By receiving transaction verification requests from shared accounts, and using the signatures of members' private keys and certificates, the legality of the transaction requests can be verified by querying the public key of the target account. This solves the problem of information leakage in shared account transaction verification and achieves highly secure transaction verification.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- TENCENT TECHNOLOGY (SHENZHEN) CO LTD
- Filing Date
- 2023-05-04
- Publication Date
- 2026-07-24
AI Technical Summary
In the transaction verification process of shared accounts, existing technologies require pre-storing each user's information, resulting in a high risk of information leakage and low user information security.
By receiving transaction verification requests from shared accounts, the system uses the private key and certificate signature of the shared members to query the public key of the target account, and verifies the legitimacy of the transaction request based on the public key of the target account, allowing authorized members to initiate transaction requests and avoiding the acquisition of user information.
Accurately verifying the identity of members in transaction requests without obtaining user information improves the security of user information during the transaction verification process and avoids information leakage.
Smart Images

Figure CN118898087B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of Internet technology, and in particular to a transaction verification method, apparatus, computer device, storage medium, and computer program product for shared accounts. Background Technology
[0002] With the development of internet technology, shared accounts have provided convenience for people's payments, meaning that one shared account can be used by multiple authorized users. In actual use, transaction service providers need to verify the user initiating the transaction in advance. If the user is verified to be an authorized user of the shared account, the transaction is allowed.
[0003] In related technologies, each user of a shared account needs to pre-store their information with the transaction service provider. The transaction service then uses this pre-stored information to verify the authorization of the user initiating the transaction, i.e., to determine whether the user has the permission to use the shared account. However, storing individual user information is highly susceptible to data leakage, resulting in low security for user information. Summary of the Invention
[0004] Therefore, it is necessary to provide a transaction verification method, apparatus, computer equipment, computer-readable storage medium, and computer program product for shared accounts that can improve the security of user information of shared members in shared accounts, in order to address the above-mentioned technical problems.
[0005] This application provides a transaction verification method for shared accounts. The method includes:
[0006] Receive a transaction verification request from a shared account; the transaction verification request includes a transaction instruction and a signature, the signature is obtained by signing the transaction instruction based on the private key and member certificate of the shared member corresponding to the shared account, and the member certificate is issued by the account creator of the shared account for the shared member based on the private key of the shared account and the public key of the shared member;
[0007] Query the public key of the target account corresponding to the target shared account identifier in the transaction instruction;
[0008] When, based on the queried target account public key and the signature, it is verified that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier, the any shared member is allowed to initiate a transaction request for the target shared account.
[0009] This application also provides a transaction verification device for shared accounts. The device includes:
[0010] A receiving module is used to receive transaction verification requests from a shared account. The transaction verification request includes a transaction instruction and a signature. The signature is obtained by signing the transaction instruction based on the private key and member certificate of the shared member corresponding to the shared account. The member certificate is issued by the account creator of the shared account for the shared member based on the private key of the shared account and the public key of the shared member.
[0011] The query module is used to query the public key of the target account corresponding to the target shared account identifier in the transaction instruction;
[0012] The verification module is used to allow any shared member to initiate a transaction request for the target shared account when it is verified, based on the queried target account public key and the signature, that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier.
[0013] In some embodiments, the query module is configured to extract a target shared account identifier from the transaction instruction; and query and extract the target account public key corresponding to the target shared account identifier according to a pre-stored correspondence between account public keys and shared account identifiers.
[0014] In some embodiments, the apparatus further includes a validity verification module, which is used to perform validity verification on the signature based on the queried target account public key; if the validity verification passes, it is determined that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier; if the validity verification fails, it is determined that the transaction verification request was not initiated by any shared member of the target shared account corresponding to the target shared account identifier.
[0015] In some embodiments, the legitimacy verification module is further configured to obtain the target account public parameters of the target shared account, and determine the verification value corresponding to the public key of the shared account based on the target account public parameters and the signature; determine a reference value corresponding to the public key of the target account, and compare the verification value with the reference value; if the reference value is consistent with the verification value, the legitimacy verification is determined to be passed; if the reference value is inconsistent with the verification value, the legitimacy verification is determined to be failed.
[0016] In some embodiments, the apparatus further includes an association module, configured to: receive a shared account creation request sent by an account creator, the creation request being generated based on the public-private key pair of the account creator; extract the public key of the account creator from the creation request; issue a creation certificate for the account creator using a server-side private key and the extracted public key of the account creator; send the creation certificate to the account creator to instruct the account creator to receive and verify the creation certificate, and generate the shared account public-private key pair after successful verification; receive the account public key from the account public-private key pair sent by the account creator and a public key signature generated using the account creator's private key; verify the public key signature based on the account creator's public key; if the verification is successful, generate a shared account identifier and associate the public key with the shared account identifier of the shared account.
[0017] In some embodiments, the apparatus further includes a creation request generation module, which is configured to generate a private key by the account creator and determine a corresponding public key based on the private key; by the account creator, sign the public key based on the private key to obtain a signature regarding the creation of a shared account; and by the account creator, determine a creation request for the shared account based on the public key and the signature regarding the creation of the shared account.
[0018] In some embodiments, the apparatus further includes a certificate creation verification module, which is configured to verify the creation certificate using the server's public key through the account creator; if the verification of the creation certificate passes, the account creator determines that the creation certificate was issued by the server and executes the step of generating the public-private key pair of the shared account; if the verification of the creation certificate fails, the account creator determines that the creation certificate was not issued by the server and determines that the creation of the shared account has failed.
[0019] In some embodiments, the apparatus further includes an account public-private key pair generation module, which is used to generate the account private key of the shared account by the account creator and obtain the account public parameters; and to generate the corresponding account public key by the account creator based on the account public parameters and the account private key.
[0020] In some embodiments, the apparatus further includes an authorization module, configured to send an authorization request to a party to be authorized through the account creator, the authorization request including the public key of the shared account and the public parameters of the shared account, to instruct the party to be authorized to generate a member private key and a member public key based on the member private key and the public parameters of the shared account; after the account creator receives and verifies the member public key sent by the party to be authorized and the verification is successful, the account creator issues a member certificate to the party to be authorized based on the private key of the shared account and the member public key, to authorize the party to be authorized as a shared member of the shared account.
[0021] In some embodiments, the apparatus further includes a member public key verification module, which is configured to obtain a knowledge signature corresponding to the member public key through the account creator, and verify the existence of a member private key corresponding to the member public key through the knowledge signature; if it exists, the account creator determines that the validity verification of the member public key has passed, and returns to the step of issuing a member certificate for the authorized party based on the account private key of the shared account and the member public key to continue execution; if it does not exist, the account creator determines that the validity verification of the member public key has failed, and determines that the authorization of the authorized party has failed.
[0022] In some embodiments, the apparatus further includes a storage module, which is configured to store the member public key sent by the party to be authorized and the member certificate issued for the party to be authorized in correspondence through the account creator, send the member certificate to the party to be authorized to instruct the party to be authorized to verify the member certificate, and save the member certificate after the verification is successful.
[0023] In some embodiments, the apparatus further includes a determining module, which is configured to receive a transaction request for the target shared account initiated by a shared member of the target shared account through the account creator; obtain the signature of the transaction request through the account creator; query the member public keys of each shared member of the target shared account through the account creator; and determine the shared member identifier of the shared member initiating the transaction request based on the member public keys and the signature of the transaction request.
[0024] This application also provides a computer device. The computer device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to implement the steps of the above-described transaction verification method for shared accounts.
[0025] This application also provides a computer-readable storage medium. The computer-readable storage medium stores a computer program thereon, which, when executed by a processor, implements the steps of the above-described transaction verification method for shared accounts.
[0026] This application also provides a computer program product. The computer program product includes a computer program that, when executed by a processor, implements the steps of the aforementioned transaction verification method for shared accounts.
[0027] The aforementioned transaction verification method, apparatus, computer equipment, storage medium, and computer program product for shared accounts, upon receiving a transaction verification request from a shared account, can identify the transaction instruction and signature included in the request. The signature is obtained by signing the transaction instruction using the private key and member certificate of the shared member corresponding to the shared account. The member certificate is issued by the account creator of the shared account to the shared member using the shared account's private key and the shared member's public key. Thus, based on the shared account identifier in the transaction instruction, the target shared account corresponding to subsequent transaction requests can be quickly identified, and the public key of the target account corresponding to the shared account identifier in the transaction instruction can be accurately retrieved. When, based on the retrieved target account public key and signature, it is verified that the transaction verification request was initiated by any shared member of the target shared account corresponding to the shared account identifier, any shared member is allowed to initiate a transaction request against the target shared account. In this way, without obtaining any user information, it is possible to promptly and accurately verify whether the member initiating the transaction verification request belongs to the target shared account, effectively preventing the leakage of user information and improving the security of user information during the transaction verification process.
[0028] This application provides a method for creating a shared account. The method includes:
[0029] Receive a request to create a shared account from the account creator, the request being generated based on the account creator's public-private key pair;
[0030] Extract the public key of the account creator from the creation request;
[0031] Using the server's private key and the extracted public key of the account creator, a creation certificate is issued for the account creator. The creation certificate is then sent to the account creator to instruct the account creator to receive and verify the creation certificate. Upon successful verification, the public and private key pair of the shared account is generated.
[0032] Receive the account public key from the account public-private key pair sent by the account creator, and the account public key signature generated using the account creator's private key for the account public key;
[0033] The public key signature of the account is verified using the public key of the account creator. If the verification is successful, a shared account identifier is generated, and the public key of the account is associated with the shared account identifier of the shared account.
[0034] This application also provides an apparatus for creating a shared account, the apparatus comprising:
[0035] A creation request module is used to receive a creation request for a shared account sent by the account creator, the creation request being generated based on the public and private key pair of the account creator;
[0036] An extraction module is used to extract the public key of the account creator from the creation request;
[0037] The sending module is used to issue a creation certificate for the account creator using the server's private key and the extracted public key of the account creator, and send the creation certificate to the account creator to instruct the account creator to receive and verify the creation certificate and generate the account public-private key pair of the shared account after successful verification.
[0038] The second signature module is used to receive the account public key from the account public-private key pair sent by the account creator, and to sign the account public key generated by the account creator using the private key of the account creator.
[0039] The association module is used to verify the public key signature of the account based on the public key of the account creator. If the verification is successful, a shared account identifier is generated, and the public key of the account is associated with the shared account identifier of the shared account.
[0040] This application also provides a computer device. The computer device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to implement the steps described above for creating a shared account.
[0041] This application also provides a computer-readable storage medium. The computer-readable storage medium stores a computer program thereon, which, when executed by a processor, implements the steps of the above-described method for creating a shared account.
[0042] This application also provides a computer program product. The computer program product includes a computer program that, when executed by a processor, implements the steps of the above-described method for creating a shared account.
[0043] The aforementioned method, apparatus, computer equipment, storage medium, and computer program product for creating shared accounts, by receiving a shared account creation request sent by the account creator, ensure that the public-private key pair of the account creator is obtained. The creation request is generated based on the account creator's public-private key pair, thus directly extracting the account creator's public key from the creation request. Using the server's private key and the extracted public key, a creation certificate is issued to the account creator, and the creation certificate is sent to the account creator to instruct them to receive and verify the creation certificate. Upon successful verification, the shared account's public-private key pair is generated, ensuring the legitimacy of the creation certificate and improving the effectiveness of shared account creation. The system receives the public key from the public-private key pair sent by the account creator, as well as a public key signature generated using the account creator's private key. The public key signature is verified against the account creator's public key to ensure that the public key is not forged. If the verification passes, a shared account identifier is generated, and the public key is associated with the shared account identifier. Therefore, during the creation of a shared account, the acquisition or storage of additional user information of the shared account's members is avoided, thus improving the security of user information during the process.
[0044] This application provides an account sharing method, the method comprising:
[0045] The account creator sends an authorization request to the party to be authorized, the authorization request including the public key of the shared account and the public parameters of the shared account, to instruct the party to be authorized to generate a member private key in response to the authorization request and to generate a member public key based on the member private key and the public parameters of the account;
[0046] After the account creator receives and verifies the member public key sent by the party to be authorized, and the verification is successful, a member certificate is issued to the party to be authorized based on the account private key of the shared account and the member public key, so as to authorize the party to be authorized as a shared member of the shared account.
[0047] This application also provides an account sharing device, the device comprising:
[0048] An authorization request sending module is used to send an authorization request to the party to be authorized through the account creator. The authorization request includes the public key of the shared account and the public parameters of the shared account, so as to instruct the party to be authorized to generate a member private key in response to the authorization request and generate a member public key based on the member private key and the public parameters of the account.
[0049] The issuance module is used to receive and verify the member public key sent by the party to be authorized through the account creator. After the verification is successful, the module issues a member certificate to the party to be authorized based on the account private key of the shared account and the member public key, so as to authorize the party to be authorized as a shared member of the shared account.
[0050] This application also provides a computer device. The computer device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to implement the steps of the above-described account sharing method.
[0051] This application also provides a computer-readable storage medium. The computer-readable storage medium stores a computer program thereon, which, when executed by a processor, implements the steps of the above-described account-sharing method.
[0052] This application also provides a computer program product. The computer program product includes a computer program that, when executed by a processor, implements the steps of the above-described account sharing method.
[0053] The aforementioned account sharing method, apparatus, computer equipment, storage medium, and computer program product involve the account creator sending an authorization request to the authorized party. This authorization request includes the shared account's public key and public parameters, instructing the authorized party to generate a member private key and a member public key based on the private key and public parameters, ensuring the authorized party possesses its own private and public keys. After the account creator receives and verifies the member public key sent by the authorized party, and the verification is successful, a member certificate is issued to the authorized party based on the shared account's private and public keys, authorizing the authorized party as a shared member of the shared account. Thus, the account sharing process involves only the interaction between the account creator and the authorized party, eliminating the need for the server to obtain or store additional user information for shared members, thereby improving the security of user information during the process. Attached Figure Description
[0054] Figure 1 This is a diagram illustrating the application environment of a transaction verification method for shared accounts in one embodiment.
[0055] Figure 2 This is a flowchart illustrating a transaction verification method for a shared account in one embodiment;
[0056] Figure 3 This is a flowchart illustrating a transaction verification method for a shared account in another embodiment;
[0057] Figure 4 This is a flowchart illustrating the shared account identifier generation step in one embodiment;
[0058] Figure 5 This is a flowchart illustrating the shared account identifier generation step in another embodiment;
[0059] Figure 6 This is a flowchart illustrating the shared account authorization steps in one embodiment;
[0060] Figure 7 This is a flowchart illustrating the shared account authorization steps in another embodiment;
[0061] Figure 8 This is a flowchart illustrating a method for creating a shared account in one embodiment;
[0062] Figure 9 This is a flowchart illustrating an account sharing method in one embodiment;
[0063] Figure 10 This is a structural block diagram of a transaction verification device for a shared account in one embodiment;
[0064] Figure 11 This is a structural block diagram of a shared account creation device in one embodiment;
[0065] Figure 12 This is a structural block diagram of an account sharing device in one embodiment;
[0066] Figure 13 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation
[0067] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0068] In related technologies, during transactions involving shared accounts, the transaction service provider first needs to verify whether the member to be transacted is qualified to initiate a transaction on that shared account. This involves obtaining the user information of the member to be transacted and verifying it against pre-obtained authorized user information for the shared account. If the verification is successful, the member to be transacted is allowed to initiate a transaction regarding that shared account. In other words, to implement transaction verification, the transaction service provider must pre-store the user information of the authorized users of each shared account and obtain the user information of the member to be transacted, which greatly increases the risk of user information leakage and fails to ensure user information security.
[0069] The transaction verification method for shared accounts provided in this application, by receiving a transaction verification request from a shared account, can know the transaction instruction and signature included in the transaction verification request. The signature is obtained by signing the transaction instruction based on the private key and member certificate of the shared member corresponding to the shared account. The member certificate is issued by the account creator of the shared account to the shared member based on the private key of the shared account and the public key of the shared member. In this way, based on the shared account identifier in the transaction instruction, the target shared account corresponding to the subsequent transaction request can be quickly identified, and the public key of the target account corresponding to the shared account identifier in the transaction instruction can be accurately retrieved. When, based on the retrieved public key of the target account and the signature, it is verified that the transaction verification request was initiated by any shared member of the target shared account corresponding to the shared account identifier, any shared member is allowed to initiate a transaction request against the target shared account. In this way, without obtaining any user information, it is possible to verify in a timely and accurate manner whether the member initiating the transaction verification request belongs to the shared member of the target shared account, effectively avoiding the leakage of user information and improving the security of user information during the transaction verification process.
[0070] The transaction verification method for shared accounts provided in this application embodiment can be applied to, for example... Figure 1 In the application environment shown, client 102 communicates with server 104 via a network. The server can be a server providing transaction services. The data storage system can store the data that the server needs to process. The data storage system can be integrated on the server or placed on the cloud or other servers. Server 104 receives a transaction verification request for a shared account sent by client 102; the transaction verification request includes a transaction instruction and a signature. The signature is obtained by signing the transaction instruction based on the private key and member certificate of the shared member corresponding to the shared account. The member certificate is issued by the account creator of the shared account based on the private key of the shared account and the public key of the shared member. Server 104 queries the public key of the target account corresponding to the target shared account identifier in the transaction instruction. When, based on the queried target account public key and the signature, server 104 verifies that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier, it allows any shared member to initiate a transaction request for the target shared account.
[0071] The client 102 can be an application that initiates a transaction or an application that initiates the creation of a shared account. The client 102 can be deployed on a terminal, which can be, but is not limited to, various personal computers, laptops, smartphones, tablets, IoT devices, and portable wearable devices. IoT devices can include smart speakers, smart TVs, smart air conditioners, smart in-vehicle systems, etc. Portable wearable devices can include smartwatches, smart bracelets, head-mounted devices, etc. The server can be implemented using a standalone server or a server cluster consisting of multiple servers.
[0072] In one embodiment, such as Figure 2 As shown, a transaction verification method for shared accounts is provided, which is applied to... Figure 1 Taking server-side error 104 as an example, the following steps are included:
[0073] Step S202: Receive a transaction verification request from the shared account; the transaction verification request includes a transaction instruction and a signature. The signature is obtained by signing the transaction instruction based on the private key and member certificate of the shared member corresponding to the shared account. The member certificate is issued by the account creator of the shared account to the shared member based on the private key of the shared account and the public key of the shared member.
[0074] In this context, a shared account is a trading account created by the account creator within the trading institution (i.e., the server), supporting multiple shared members authorized by the account creator to manage its resources. Optionally, the account creator creates a corresponding shared account for a group, which includes multiple members. Each member within the group is a shared member of the shared account, meaning each member within the group has the right to use the shared account. Therefore, the group can be understood as a group of members authorized to use the shared account. Of course, the account creator is also a shared member of the shared account corresponding to the group and is also the administrator of the group. For example, the group could be the account creator's family, with members being family members of the account creator; or, for example, the group could be the account creator's social circle, which could be multiple friends the account creator follows in an application.
[0075] A transaction verification request is initiated by an anonymous party to the transaction and is used to verify whether that anonymous party is authorized to initiate a transaction request against the target shared account for the transaction. A transaction instruction is the instruction to be executed, containing the target shared account identifier of the target shared account. A signature is the signature of the transaction instruction. For example, party A will initiate a transaction request for a product using target shared account P. Before doing so, party A needs to anonymously initiate a transaction verification request to the server. At this time, party A determines the transaction instruction based on the target shared account identifier of target shared account P. The server receives the transaction verification request, which includes the transaction instruction and its signature, anonymously sent by party A. From the server's perspective, since this transaction verification request is anonymously initiated by party A, the server is unaware of who initiated this transaction verification request or the subsequent transaction request.
[0076] A shared member's private key refers to the private key belonging to the member of the group corresponding to the shared account. A member certificate is a certificate issued by the account creator for the members belonging to the group corresponding to the shared account. The shared account's private key is the group's private key, and the shared account's public key is the group's public key.
[0077] For each shared account, there is a unique corresponding group, a public key and a private key, and multiple public-private key pairs for each member. Each public-private key pair corresponds to a shared member.
[0078] Optionally, the server receives a transaction verification request from the shared account and parses the transaction instruction and its signature from the request. The signature is obtained by a shared member of the shared account signing the transaction instruction using the member's private key and member certificate. The member's private key is randomly generated by the shared member, and its corresponding public key is determined based on this private key. The member certificate is issued by the account creator of the shared account for the shared member using the shared account's private key and the shared member's public key.
[0079] For example, the server receives a transaction verification request for a shared account from an anonymous client (which can be understood as the party to be transacting). That is, the server cannot determine which client (the party to be transacting) sent the transaction verification request. After obtaining the transaction instruction and signature based on the transaction verification request, the server can further obtain the target shared account identifier of the target shared account to be transacted based on the transaction instruction. This target shared account identifier and the signature are used to determine whether the anonymous client is a shared member of the target shared account, without needing to further determine which shared member it is.
[0080] Step S204: Query the public key of the target account corresponding to the target shared account identifier in the transaction instruction.
[0081] Optionally, the server determines the target account public key corresponding to the target shared account identifier from the pre-stored account public keys of multiple shared accounts based on the target shared account identifier in the transaction instruction.
[0082] In one embodiment, querying the target account public key corresponding to the target shared account identifier in the transaction instruction includes: extracting the target shared account identifier from the transaction instruction; and querying and extracting the target account public key corresponding to the target shared account identifier based on the pre-stored correspondence between account public keys and shared account identifiers.
[0083] The correspondence between the account public key and the shared account identifier means that each account public key uniquely corresponds to one shared account identifier.
[0084] Optionally, the server extracts the target shared account identifier from the transaction instruction and obtains the pre-stored mapping between the account public key and the shared account identifier. Based on this mapping, the server determines the target account public key corresponding to the target shared account identifier, whereby the target account public key is the private key of the target shared account.
[0085] For example, after extracting the target shared account identifier IDm, the server determines the target account public key corresponding to the target shared account identifier IDm as PKm based on the mapping between account public keys and shared account identifiers: ID1-PK1, ID1-PK2, ..., IDm-PKm.
[0086] In this embodiment, the target shared account identifier of the target shared account to be transacted is parsed from the transaction instruction. Then, based on the pre-stored correspondence between the account public key and the shared account identifier, the corresponding target account public key can be accurately and timely retrieved, improving the accuracy of target account public key retrieval. At the same time, subsequent transaction verification can be performed directly based on the matched target account public key. This process does not require obtaining any user information, thus improving the security of user information during transaction verification.
[0087] Step S206: When it is verified, based on the queried target account public key and signature, that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier, any shared member is allowed to initiate a transaction request for the target shared account.
[0088] A transaction request is a request to initiate a transaction to the server.
[0089] Optionally, the server verifies whether the transaction verification request is initiated by a shared member authorized by the target shared account based on the target account's public key and signature. If, based on the queried target account's public key and signature, it is verified that the transaction verification request is initiated by any shared member of the target shared account corresponding to the target shared account identifier, the server allows the shared member who initiated the transaction verification request to initiate a transaction request for the target shared account.
[0090] In some embodiments, the method further includes: performing a validity check on the signature based on the queried target account public key; if the validity check passes, determining that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier; if the validity check fails, determining that the transaction verification request was not initiated by any shared member of the target shared account corresponding to the target shared account identifier.
[0091] The validity verification process checks whether the signature was obtained by a shared member of the target shared account in signing the transaction instruction. If the signature was obtained by a shared member of the target shared account, it means that the transaction verification request was initiated by a shared member of the target shared account. If the signature was not obtained by a shared member of the target shared account, it means that the transaction verification request was not initiated by a shared member of the target shared account.
[0092] Optionally, the server verifies the validity of the signature based on the public key of the target account obtained from the query. If the validity verification passes, the server determines that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier, and allows the shared member who initiated the transaction verification request to initiate transaction requests for the target shared account. If the validity verification fails, the server determines that the transaction verification request was not initiated by any shared member of the target shared account corresponding to the target shared account identifier, and prohibits the shared member who initiated the transaction verification request from initiating transaction requests for the target shared account.
[0093] In this embodiment, after determining the target account's public key and signature, it is not necessary to obtain any user information. The signature's legitimacy is directly verified using the target account's public key to determine whether the transaction verification request was initiated by a shared member authorized by the account creator of the target shared account. If the legitimacy verification passes, it is determined that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier; if the legitimacy verification fails, it is determined that the transaction verification request was not initiated by any shared member of the target shared account corresponding to the target shared account identifier. This significantly improves the security of user information.
[0094] In some embodiments, the signature is validated based on the public key of the target account, including: obtaining the public parameters of the target shared account, and determining the verification value corresponding to the public key of the shared account based on the public parameters of the target account and the signature; determining a reference value corresponding to the public key of the target account, and comparing the verification value with the reference value; if the reference value and the verification value are consistent, the validation is deemed to have passed, and if the reference value and the verification value are inconsistent, the validation is deemed to have failed.
[0095] For each shared account, determining its public key requires considering the public parameters associated with that account. The signature, public parameters, private key, and public key can all be viewed as sets of parameters. For example, a signature can be considered a set of multiple signature parameters, public parameters a set of multiple public parameters, a public key a set of multiple first public key parameters and multiple second public key parameters, and a private key a set of multiple private key parameters. The first public key parameters are calculated based on certain public parameters, and these public parameters can also be directly used as second public key parameters.
[0096] If the reference value and the verification value are consistent, it means that the shared account is the target shared account.
[0097] Optionally, the server obtains the target account public parameters of the target shared account, and extracts the target public parameters used for legitimacy verification from these parameters. The server performs a hash calculation on the transaction instruction to obtain a digest. Based on the first account public key parameters and the digest, the server determines a reference value corresponding to the target account public key. Based on the target public parameters and the signature parameters, the server determines a verification value corresponding to the shared account's public key. If the reference value matches the verification value, the legitimacy verification is considered successful; otherwise, the legitimacy verification is considered unsuccessful.
[0098] For example, let the digest be m, the two first account public key parameters be U and Q, and the three target public parameters be α, β, and n. The two signature parameters are f and g. The server uses the product of Q raised to the power of m and U as a reference value, i.e., the reference value is UQ. m The server calculates the product of α raised to the power of f and β raised to the power of g to obtain α. f β g The server side has α f β g Perform a modulo operation with respect to n to obtain the verification value, which is α. f β g (modn). Where mod is the modulo function.
[0099] If UQ m=α f β g If (mod n), then the validity check passes; if UQ m ≠α f β g If (mod n), then the validity check fails.
[0100] In this embodiment, a verification value corresponding to the public key of the shared account is determined by using the public parameters and signature of the target shared account. Simultaneously, a reference value corresponding to the public key of the target account is determined. If the reference value and the verification value match, the shared account is determined to be the target shared account, and the legitimacy verification passes. If the reference value and the verification value do not match, the shared account is determined not to be the target shared account, and the legitimacy verification fails. In this way, the legitimacy of the signature can be effectively verified without obtaining any user information, thus improving the security of user information.
[0101] In the aforementioned transaction verification method for shared accounts, by receiving a transaction verification request from a shared account, the system can determine the transaction instruction and signature included in the request. The signature is obtained by signing the transaction instruction using the private key and certificate of the shared member corresponding to the shared account. The member certificate is issued by the account creator of the shared account to the shared member using the shared account's private key and the shared member's public key. Thus, based on the shared account identifier in the transaction instruction, the target shared account corresponding to subsequent transaction requests can be quickly identified, allowing for accurate retrieval of the target account's public key corresponding to the shared account identifier in the transaction instruction. When, based on the retrieved target account public key and signature, it is verified that the transaction verification request was initiated by any shared member of the target shared account corresponding to the shared account identifier, any shared member is allowed to initiate a transaction request against the target shared account. This allows for timely and accurate verification of whether the member initiating the transaction verification request is a shared member of the target shared account without requiring any user information, effectively preventing user information leakage and improving information security during the transaction verification process.
[0102] In some embodiments, such as Figure 3The diagram illustrates a flowchart of a transaction verification method for shared accounts in another embodiment. An anonymous client determines a transaction instruction based on the target shared account identifier and the quantity of resources to be traded. The anonymous client then signs the transaction instruction using the private key and certificate of the member corresponding to the authorized shared account, obtaining a signature for the transaction instruction. The anonymous client then determines a transaction verification request based on the transaction instruction and its signature. The server receives the transaction verification request from the anonymous client and extracts the target shared account identifier from the transaction instruction. Based on the pre-stored correspondence between account public keys and shared account identifiers, the server queries and retrieves the target account public key corresponding to the extracted target shared account identifier. The server verifies the signature's legitimacy using the target account public key. Specifically, it obtains the target shared account's public parameters and, based on the public parameters and the signature, determines the verification value corresponding to the shared account's public key. It also determines a reference value corresponding to the target account's public key and compares the verification value with the reference value. If the reference value matches the verification value, the legitimacy verification is successful, and the transaction verification request is determined to have been initiated by any shared member of the target shared account corresponding to the target shared account identifier. If the reference value and the verification value are inconsistent, the legality verification is deemed to have failed, and the transaction verification request is determined not to have been initiated by any shared member of the target shared account corresponding to the target shared account identifier. If, based on the queried target account public key and signature, it is verified that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier, then any shared member is allowed to initiate a transaction request against the target shared account.
[0103] In this embodiment, a verification value corresponding to the public key of the shared account is determined by using the public parameters and signature of the target shared account. Simultaneously, a reference value corresponding to the public key of the target account is determined. If the reference value and the verification value match, the shared account is determined to be the target shared account, and the legitimacy verification passes. If the reference value and the verification value do not match, the shared account is determined not to be the target shared account, and the legitimacy verification fails. In this way, the legitimacy of the signature can be effectively verified without obtaining any user information, thus improving the security of user information.
[0104] In some embodiments, such as Figure 4 The diagram shown illustrates the process of generating a shared account identifier in one embodiment. Before receiving the transaction verification request from the shared account, the method further includes:
[0105] Step S402: Receive a shared account creation request sent by the account creator. The creation request is generated based on the public and private key pair of the account creator.
[0106] The creation request is used to request the creation of a shared account. The public-private key pair of the account creator refers to the account creator's private key and public key. For example, the public-private key pair of the account creator can be an asymmetric key pair.
[0107] Optionally, a creation request can be generated using the account creator's own private and public keys, and then sent to the server.
[0108] In some embodiments, such as Figure 4 As shown, before step S402, the method further includes step S401, which involves generating a shared account creation request through the account creator. Step S401 includes:
[0109] Step S401a: Generate a private key through the account creator, and determine the corresponding public key based on the private key.
[0110] Step S401b: The account creator signs the public key with the private key to obtain a signature regarding the creation of the shared account.
[0111] Step S401c: The account creator determines the creation request for the shared account based on the public key and the signature regarding the creation of the shared account.
[0112] Optionally, the account creator generates a private key based on random parameters and determines the corresponding public key based on the private key. The account creator then signs their public key using their private key to obtain a signature for creating the shared account. Finally, the account creator concatenates the signature for the shared account creation request with their own public key to generate a creation request containing both the signature and their public key.
[0113] After completing step S401a, the account creator can obtain their own identity information and then combine it with their public key to obtain additional information. The account creator then signs this additional information using their private key to obtain a signature regarding the creation of the shared account. Then, the process returns to step S401c to continue.
[0114] In this embodiment, the account creator generates a private key and determines the corresponding public key based on it. Then, the account creator signs the public key using the private key to obtain a signature regarding the creation of the shared account. This allows the server to accurately verify whether a public-private key pair has been generated using the account creator's public key. The account creator then determines the shared account creation request based on the public key and the signature. The server can then promptly generate a creation certificate for the account creator based on this request, enabling the shared account to be created subsequently.
[0115] Step S404: Extract the public key of the account creator from the creation request.
[0116] Step S406: Using the server's private key and the extracted public key of the account creator, issue a creation certificate for the account creator, and send the creation certificate to the account creator to instruct the account creator to receive and verify the creation certificate. After successful verification, generate the public and private key pair of the shared account.
[0117] Optionally, after obtaining the public key of the account creator, the server can directly use its own private key and the public key of the account creator to issue a creation certificate for the account creator.
[0118] Optionally, after obtaining the public key of the account creator, the server verifies the identity of the account creator before executing step S406. This avoids creating certificates for account creators with illegitimate identities.
[0119] In some embodiments, a creation certificate is issued for the account creator using the server's private key and the extracted public key of the account creator, including: signing the extracted public key of the account creator using the server's private key to determine the creation certificate.
[0120] In the above embodiment, the server uses its private key to sign the extracted public key of the account creator, issuing a creation certificate for the account creator. The shared account can then be created based on this certificate. This eliminates the need to obtain or store additional user information of the shared account's members, thus improving the security of user information during the shared account creation process.
[0121] In some embodiments, before issuing a creation certificate for the account creator using the server's private key and the extracted public key of the account creator, the method further includes: obtaining the identity information to be verified of the account creator, comparing the identity information to be verified with each pre-stored standard identity information, and determining the identity verification result of the account creator based on each comparison result; if the identity verification result indicates that the identity verification is successful, then the step of issuing a creation certificate for the account creator using the server's private key and the extracted public key of the account creator is executed.
[0122] The identity information can be biometrics, such as facial features, fingerprints, facial recognition data, iris scans, etc. Each standard identity information uniquely corresponds to the account creator of a shared account. The identity information is authorized by the account creator.
[0123] Optionally, the server obtains the identity information to be verified sent by the account creator and compares it with each pre-stored standard identity information. If the server finds a match, it determines that the account creator's identity verification is successful, and executes the step of issuing a creation certificate for the account creator using the server's private key and the extracted public key. If the server does not find a match, it determines that the account creator's identity verification is unsuccessful.
[0124] For example, the server obtains the face to be verified collected by the account creator and compares it with each pre-stored standard face. If a standard face matches the face to be verified, the server determines that the account creator's identity verification result is successful, and the server executes the step of issuing a creation certificate for the account creator using the server's private key and the extracted public key of the account creator. If no standard face matches the face to be verified, the server determines that the account creator's identity verification result is unsuccessful.
[0125] In this embodiment, by comparing the identity information to be verified of the account creator with each pre-stored standard identity information, the account creator can be quickly and accurately authenticated. If the authentication result indicates successful authentication, the step of issuing a creation certificate for the account creator using the server's private key and the extracted public key of the account creator is executed, ensuring the validity of the subsequent creation certificate. In this way, the creation of a shared account can be completed based on a valid creation certificate, without the need to obtain or store the user information of additional shared members of the shared account, thus improving the security of user information during the shared account creation process.
[0126] In some embodiments, the step of the account creator verifying the creation certificate includes: verifying the creation certificate using the server's public key; if the verification of the creation certificate is successful, the account creator determines that the creation certificate was issued by the server and performs the step of generating the public and private key pair of the shared account; if the verification of the creation certificate fails, the account creator determines that the creation certificate was not issued by the server and determines that the creation of the shared account has failed.
[0127] In this system, the server's public key is its own public key, which is embedded in the account creator's database. The server's public and private keys are an asymmetric public-private key pair. As mentioned earlier, since certificate creation is determined by the server's private key, certificate verification can only succeed using the server's public key corresponding to that private key. If the certificate is verified using a public key that does not match the private key, the verification will inevitably fail.
[0128] In the above embodiments, the account creator verifies the creation certificate using the server's public key. If the verification passes, it can promptly confirm whether the received creation certificate was issued by the server, further ensuring the validity of the creation certificate. If the verification of the creation certificate passes, the account creator determines that the creation certificate was issued by the server and executes the step of generating the public-private key pair for the shared account. If the verification of the creation certificate fails, the account creator determines that the creation certificate was not issued by the server and determines that the creation of the shared account has failed. In this way, after successful verification, the creation of the shared account can be completed based on a valid creation certificate without needing to obtain or store additional user information of the shared members, thus improving the security of user information during the creation of the shared account.
[0129] After the verification of the certificate creation is passed, in some embodiments, the step of the account creator generating the public and private key pair of the shared account includes: generating the private key of the shared account through the account creator and obtaining the public parameters of the account; and generating the corresponding public key of the account through the account creator based on the public parameters of the account and the private key of the account.
[0130] As mentioned earlier, the public parameters of an account can be considered as a set of multiple public parameters, the public key of an account can be considered as a set of multiple first account public key parameters and multiple second account public key parameters, and the private key of an account can be considered as a set of multiple account private key parameters. The first account public key parameters are calculated based on certain public parameters, and these public parameters can also be directly used as second account public key parameters.
[0131] Optionally, the account creator generates the private key for the shared account and obtains the public parameters used to generate the public key from the public parameters of the account. The account creator determines the first public key parameters based on the target public parameters and the private key parameters of the account private key, and then determines the corresponding public key based on the first public key parameters.
[0132] In this embodiment, the private key of the shared account is randomly generated by the account creator. Since the private key is randomly generated, it cannot be guaranteed that it contains parameters corresponding to the shared account. Furthermore, because the public parameters of each shared account are different, to ensure that subsequent transaction verification by the server can be performed based on the public key, the generation of the public key needs to be combined with the public parameters. Therefore, by obtaining the public parameters and combining them with the parameters of the private key, the public key corresponding to the private key can be determined by the account creator. This allows for direct transaction verification based on the public key during subsequent transaction verification processes, eliminating the need to obtain additional user information and improving user information security.
[0133] Step S408: Receive the account public key from the account public-private key pair sent by the account creator, and the account public key signature generated using the account creator's private key for the account public key.
[0134] Optionally, the server receives the account public key and its signature from the account creator. The public key signature is used to verify whether the corresponding public key was generated by the account creator, i.e., whether it was forged by an imposter.
[0135] In some embodiments, the step of the account creator generating an account public key signature for the account public key using the creation certificate includes: the account creator signing the account public key using the account creator's private key to obtain the account public key signature.
[0136] It should be noted that the account creator's private key and public key are determined in the aforementioned step S401a. Since the server needs to verify that the account public key was generated by the account creator through subsequent signing using the account public key, it is necessary to sign the account public key using the account creator's private key. If the public key signature can be verified based on the public key matching the account creator's private key, it indicates that the account public key received by the server is not forged by an imposter.
[0137] In this embodiment, the account creator uses their private key to sign the account's public key, obtaining an account public key signature. This ensures that subsequent verification of the account public key signature further confirms that the account public key received by the server is not forged or tampered with by an imposter, thus ensuring the validity and accuracy of subsequent shared account creation.
[0138] Step S410: Verify the public key signature of the account based on the public key of the account creator. If the verification is successful, generate a shared account identifier and associate the public key of the account with the shared account identifier of the shared account.
[0139] Optionally, the server verifies the account public key signature using the account creator's public key. If the verification passes, the server determines that the received account public key was generated by the account creator and generates a shared account identifier for the shared account. The server then associates the account public key with the shared account identifier. If the verification fails, the server determines that the creation of the shared account has failed.
[0140] Regarding the shared account creation process in steps S401 to S410 above, as follows: Figure 5 The diagram illustrates the process of generating a shared account identifier in another embodiment. After the account creator and server initialize, the account creator generates an asymmetric key pair. The account creator signs the public key with their private key to obtain a signature for creating the shared account. Based on the public key and the signature, the account creator determines the shared account creation request and sends it to the server. The server obtains the account creator's identity information to be verified and compares it with pre-stored standard identity information. Based on the comparison results, the server determines the account creator's identity verification result. If the identity verification result indicates successful verification, the server signs the extracted public key of the account creator using its private key to determine the creation certificate and sends it to the account creator. The account creator verifies the creation certificate using the server's public key. If the verification fails, the account creator determines that the creation certificate was not issued by the server and that the shared account creation has failed. If the certificate creation verification passes, the account creator confirms that the certificate was issued by the server and generates a public-private key pair for the shared account. Specifically: the account creator generates the private key for the shared account and obtains the public account parameters; the account creator generates the corresponding public key based on the public parameters and the private key; the account creator signs the public key using their private key, obtaining the public key signature; the account creator sends the public key and the public key signature to the server. The server verifies the public key signature against the account creator's public key. If the verification passes, the creation is considered to have failed. If the verification passes, the server saves the public key, generates a shared account identifier, and associates the public key with the shared account identifier. At this point, the server considers the creation successful.
[0141] In this embodiment, by receiving the shared account creation request sent by the account creator, it is ensured that the account creator's own public-private key pair can be obtained. The creation request is generated based on the account creator's public-private key pair, thus directly extracting the account creator's public key from the creation request. Using the server's private key and the extracted account creator's public key, a creation certificate is issued for the account creator. The creation certificate is sent to the account creator to instruct them to receive and verify the creation certificate. After successful verification, the shared account's public-private key pair is generated, ensuring the legitimacy of the creation certificate and improving the effectiveness of shared account creation. The system receives the account public key from the account public-private key pair sent by the account creator, as well as the account public key signature generated using the account creator's private key. The account public key signature is verified against the account creator's public key to ensure that the account public key is not forged. If the verification is successful, a shared account identifier is generated, and the account public key is associated with the shared account identifier. Based on this, during the creation of a shared account, the acquisition or storage of additional user information of the shared members of the shared account is avoided, improving the security of user information during the process.
[0142] In some embodiments, such as Figure 6 The diagram shown illustrates the flowchart of the shared account authorization step in one embodiment. Before receiving the transaction verification request from the shared account, the method further includes:
[0143] In step S602, the account creator sends an authorization request to the party to be authorized. The authorization request includes the public key of the shared account and the public parameters of the shared account, instructing the party to be authorized to generate a member private key in response to the authorization request and to generate a member public key based on the member private key and the public parameters of the account.
[0144] The party to be authorized is the mobile device that is to be authorized to share the account. As mentioned above, the account creator is the mobile device used to create and authorize the shared account. The party to be authorized and the account creator can be the same mobile device or different mobile devices, without any specific limitation.
[0145] Optionally, the account creator sends an authorization request to the party to be authorized, which includes the public key of the shared account created by the account creator and the public parameters of the shared account. The party to be authorized then generates a public-private key pair corresponding to the shared account and relating to itself.
[0146] For example, if the account creator and the authorized party communicate via a local area network (LAN), the account creator directly sends an authorization request to the authorized party, which then directly receives the authorization request. In this case, the LAN can be Wi-Fi (Wireless Fidelity).
[0147] If the account creator and the authorized party communicate through a server, end-to-end encryption is used to prevent malicious information acquisition by the server and ensure information security. In this case, the account creator generates a first public key and a first private key for transmitting the authorization request. The account creator then encrypts the authorization request using the first public key and sends the encrypted request to the authorized party. The authorized party decrypts the request using the account creator's first public key to obtain the authorization request.
[0148] In some embodiments, the steps of generating a member private key in response to an authorization request and generating a member public key based on the member private key and the account public parameters include: generating a member private key of the authorized party in response to an authorization request; extracting generation parameters for generating the member public key from the account public parameters by the authorized party, and generating the member public key of the authorized party based on the generation parameters and the member private key.
[0149] As mentioned earlier, the account public parameters are a set of multiple public parameters, and the generated parameters here can be regarded as public parameters.
[0150] Optionally, in response to the authorization request, the party to be authorized randomly generates its own private key and extracts generation parameters for generating the member public key from the account's public parameters. Based on the generation parameters and the parameters of the member private key, the party to be authorized generates its own member public key that matches the member private key.
[0151] For example, the parameter of the member's private key is x, and the three generation parameters used to generate the account's public key are g, a, and n (where, as mentioned earlier, n is also the target public parameter used for legitimacy verification). The party to be authorized performs a modulo operation on x with respect to n to obtain x(mod n), and uses a raised to the power of x(mod n) as one of the parameters y of the member's public key, i.e., y = a. ∧ x(mod n), and g raised to the power of y is taken as another parameter z of the member public key, i.e., z = g ∧ Based on this, the corresponding account public key is determined according to y and z.
[0152] In this embodiment, the party to be authorized responds to the authorization request and promptly generates the private key of the party to be authorized. The party to be authorized extracts the generation parameters for generating the public key of the member from the public parameters of the shared account. Based on the generation parameters and the private key of the member, the public key of the member that matches the private key can be accurately generated.
[0153] Step S604: After the account creator receives and verifies the member public key sent by the party to be authorized and the verification is successful, the account creator issues a member certificate to the party to be authorized based on the account private key and the member public key of the shared account, so as to authorize the party to be authorized as a shared member of the shared account.
[0154] Optionally, the account creator receives the member's public key sent by the party to be authorized and verifies the member's public key. After successful verification, the account creator signs the member's public key based on the private key of the shared account to obtain a member certificate, thereby authorizing the party to be authorized as a shared member of the shared account.
[0155] In the process of the account creator obtaining the member's public key, for example, if the account creator and the authorized party communicate via a local area network (LAN), the authorized party directly sends the member's public key to the account creator. In this case, the LAN can be Wi-Fi (Wireless Fidelity).
[0156] If the account creator and the authorized party communicate through a server, end-to-end encryption is used to prevent malicious information acquisition by the server and ensure information security. In this case, the authorized party generates a second public key and a second private key for transmitting the member's public key. The authorized party then encrypts the member's public key using the second private key and transmits the encrypted member's public key to the account creator. The account creator then decrypts the encrypted member's public key using the second public key to obtain the member's public key.
[0157] In some embodiments, the step of the account creator verifying the member public key sent by the party to be authorized includes: obtaining the knowledge signature corresponding to the member public key through the account creator, and verifying the existence of a member private key corresponding to the member public key through the knowledge signature; if it exists, the account creator determines that the validity verification of the member public key has passed, and returns to the step of issuing a member certificate for the party to be authorized based on the account private key and member public key of the shared account to continue execution; if it does not exist, the account creator determines that the validity verification of the member public key has failed, and determines that the authorization of the party to be authorized has failed. Here, the knowledge signature is used to verify whether the party to be authorized has a member private key corresponding to the member public key. During the process of using the knowledge signature to verify the validity of the member public key, the account creator does not need to know what the member private key of the party to be authorized is, only whether the party to be authorized possesses a member public-private key pair for the shared account. If the validity verification of the member public key passes, it means that the party to be authorized has a member public-private key pair, and the member public key corresponds to the account public parameters of the shared account, that is, the member public-private key pair is used for the shared account.
[0158] In this embodiment, the knowledge signature corresponding to the member's public key is obtained by the account creator. Based on this knowledge signature, it can be accurately determined whether a member's private key exists that matches the member's public key. If it exists, it means that the party to be authorized has a member's public-private key pair for the shared account, which ensures that the subsequently issued member certificate is valid. If it does not exist, the authorization of the party to be authorized is directly determined to have failed.
[0159] In some embodiments, the step of issuing a member certificate to the authorized party based on the shared account's private key and the member's public key includes: the account creator signing the member's public key using the shared account's private key to obtain the member certificate of the authorized party.
[0160] In this embodiment, the account creator directly signs the member's public key using the shared account's private key to obtain the member certificate of the party to be authorized, thus completing the authorization of the party to be authorized. Based on this, during the transaction verification process, the signature of the transaction instruction can be determined based on the member certificate. Therefore, without obtaining additional member user information, the signature and the target account's public key can be used to verify in a timely and accurate manner whether the member initiating the transaction verification request is a shared member of the target shared account, effectively avoiding the leakage of user information and improving the security of user information during the transaction verification process.
[0161] In some embodiments, such as Figure 6 As shown, after step S604, the method further includes: step S606, whereby the account creator stores the member public key sent by the party to be authorized and the member certificate issued for the party to be authorized, sends the member certificate to the party to be authorized, instructs the party to be authorized to verify the member certificate, and after successful verification, saves the member certificate.
[0162] Optionally, after the account creator stores the member public key sent by the party to be authorized and the member certificate issued for the party to be authorized, if the account creator and the party to be authorized communicate through a local area network, the account creator can directly send the member certificate to the party to be authorized.
[0163] If the account creator and the authorized party communicate through a server, end-to-end encryption is used to prevent malicious information acquisition by the server and ensure information security. In this case, the account creator generates a third public key and a third private key for transmitting member certificates. The account creator then encrypts the member certificate using the third private key and sends the encrypted member certificate to the authorized party. The authorized party decrypts the encrypted member certificate using the third public key to obtain the authorization certificate.
[0164] Based on the above process, after the party to be authorized receives the member certificate and confirms that the member certificate has passed verification, the party to be authorized directly saves the member certificate.
[0165] In some embodiments, the step of verifying a member certificate by the authorized party includes: verifying the member certificate based on the account public key by the authorized party; if the verification of the member certificate is successful, then authorizing the authorized party as a shared member of the shared account by the account creator; if the verification of the member certificate fails, then not authorizing the authorized party as a shared member of the shared account by the account creator.
[0166] Optionally, the authorized party can invert the parameters to be verified based on the member certificate and determine the target parameters for verifying the member certificate from the account public key parameters in the account public key. If the target parameters and the parameters to be verified are consistent, the verification of the member certificate is deemed to have passed; otherwise, the verification of the member certificate is deemed to have failed.
[0167] It's important to note that since member certificates are obtained by signing member public keys using the account's private key, if the member certificate is verified using the shared account's public key, and the verification passes, it means the member certificate received by the authorizing party was issued by the account creator who created the shared account. In this case, after receiving the verification confirmation from the pending authorizing party, the account creator authorizes the pending authorizing party as a shared member of the shared account. If the verification fails, it means the member certificate received by the authorizing party was not issued by the account creator who created the shared account. After receiving the verification failure message from the pending authorizing party, the account creator does not authorize the pending authorizing party as a shared member of the shared account. Therefore, during account sharing, only the interaction between the account creator and the pending authorizing party is involved; the server does not need to obtain or store additional user information for the shared members corresponding to the account, thus improving the security of user information during the process.
[0168] Regarding the authorization process for the aforementioned shared accounts, such as Figure 7The diagram illustrates the shared account authorization steps in another embodiment. The account creator sends an authorization request to the party to be authorized. This request includes the public key of the shared account created by the account creator and the public parameters of the shared account. The party to be authorized responds to the authorization request by generating its own private key. It then extracts generation parameters from the public parameters to generate the public key and, based on these parameters and the private key, generates its own public key. The party to be authorized sends the public key to the account creator. The account creator obtains the knowledge signature corresponding to the public key and verifies the existence of a corresponding private key. If the private key does not exist, the account creator determines that the public key's validity verification fails and the authorization process for the party to be authorized has failed. If the private key exists, the account creator determines that the public key's validity verification passes and saves the public key. The account creator then signs the public key using the shared account's private key to determine a member certificate issued by the party to be authorized and sends the member certificate to the party to be authorized. The party to be authorized verifies the member certificate based on the account's public key. If the verification of the member certificate is successful, the party to be authorized is authorized as a shared member of the shared account by the account creator. If the verification of the member certificate fails, the party to be authorized is not authorized as a shared member of the shared account by the account creator.
[0169] In some embodiments, the method further includes: receiving a transaction request for the target shared account initiated by a shared member of the target shared account through the account creator; obtaining the signature of the transaction request through the account creator; querying the member public keys of each shared member of the target shared account through the account creator, and determining the shared member identifier of the shared member initiating the transaction request based on the member public keys and the signature of the transaction request.
[0170] Optionally, the account creator receives a transaction request for the target shared account, which is initiated by a shared member of the target shared account. The account creator obtains the signature of the transaction request. The account creator queries the member identifiers of each shared member of the target shared account and determines the member public key of each shared member based on the member identifiers. Using the member public keys and the signature of the transaction request, it is determined whether a member public key successfully unlocks the signature of the transaction request. If so, the shared member corresponding to the successfully unlocked member public key is identified as the shared member who initiated the transaction request, and the initiating shared member is determined.
[0171] For example, after determining the member identifiers of each shared member, the account creator uses the pre-stored public keys of each member of the target shared account, as well as the correspondence between member identifiers and member public keys, to determine the member public key of each shared member. The account creator then uses each member public key to unlock the signature of the transaction request. If it is determined that a member public key successfully unlocks the signature of the transaction request, the shared member corresponding to the successfully unlocked member public key is identified as the shared member who initiated the transaction request.
[0172] In this embodiment, when the account creator stores the member public keys of each shared member corresponding to each shared account, for a transaction request of the target shared account, the account creator can quickly query the member public keys of each shared member corresponding to the target shared account, and based on the member public keys and the signature of the transaction request, the account creator can quickly and accurately query the shared member who initiated the transaction request.
[0173] In one embodiment, such as Figure 8 As shown, a method for creating a shared account is provided, which is applied to... Figure 1 Taking the server-side as an example, the explanation includes the following steps:
[0174] Step S802: Receive a shared account creation request sent by the account creator. The creation request is generated based on the public and private key pair of the account creator.
[0175] In one embodiment, the steps for generating a shared account creation request include: generating a private key by the account creator and determining the corresponding public key based on the private key; signing the public key with the private key by the account creator to obtain a signature regarding the creation of the shared account; and determining the shared account creation request by the account creator based on the public key and the signature regarding the creation of the shared account.
[0176] Step S804: Extract the public key of the account creator from the creation request.
[0177] Step S806: Using the server's private key and the extracted public key of the account creator, issue a creation certificate for the account creator, and send the creation certificate to the account creator to instruct the account creator to receive and verify the creation certificate. After successful verification, generate the public and private key pair of the shared account.
[0178] In some embodiments, a creation certificate is issued for the account creator using the server's private key and the extracted public key of the account creator, including: signing the extracted public key of the account creator using the server's private key to determine the creation certificate.
[0179] In some embodiments, before issuing a creation certificate for the account creator using the server's private key and the extracted public key of the account creator, the method further includes: obtaining the identity information to be verified of the account creator, comparing the identity information to be verified with each pre-stored standard identity information, and determining the identity verification result of the account creator based on each comparison result; if the identity verification result indicates that the identity verification is successful, then the step of issuing a creation certificate for the account creator using the server's private key and the extracted public key of the account creator is executed.
[0180] In some embodiments, the step of verifying the creation certificate by the account creator includes: verifying the creation certificate using the server's public key; if the verification of the creation certificate is successful, the account creator determines that the creation certificate was issued by the server and performs the step of generating a public-private key pair for the shared account; if the verification of the creation certificate fails, the account creator determines that the creation certificate was not issued by the server and determines that the creation of the shared account has failed.
[0181] In some embodiments, the step of the account creator generating a public-private key pair for a shared account includes: generating a private key for the shared account through the account creator and obtaining public account parameters; and generating a corresponding public key for the account creator based on the public account parameters and the private key.
[0182] Step S808: Receive the account public key from the account public-private key pair sent by the account creator, and the account public key signature generated using the account creator's private key for the account public key.
[0183] In some embodiments, the step of the account creator generating an account public key signature for the account public key using the creation certificate includes: the account creator signing the account public key using the account creator's private key to obtain the account public key signature.
[0184] Step S810: Verify the public key signature of the account based on the public key of the account creator. If the verification is successful, generate a shared account identifier and associate the public key of the account with the shared account identifier of the shared account.
[0185] In the aforementioned method for creating a shared account, by receiving the shared account creation request sent by the account creator, it is ensured that the account creator's own public-private key pair can be obtained. The creation request is generated based on the account creator's public-private key pair, thus directly extracting the account creator's public key from the creation request. Using the server's private key and the extracted account creator's public key, a creation certificate is issued for the account creator. The creation certificate is sent to the account creator, instructing the account creator to receive and verify the creation certificate. After successful verification, the shared account's public-private key pair is generated, ensuring the legitimacy of the creation certificate and improving the effectiveness of shared account creation. The method also involves receiving the account public key from the account creator's public-private key pair and the account public key signature generated using the account creator's private key. The account public key signature is verified against the account creator's public key to ensure that the account public key is not forged. If the verification passes, a shared account identifier is generated, and the account public key is associated with the shared account identifier. Therefore, during the creation of a shared account, the acquisition or storage of additional user information of the shared account's members is avoided, thus improving the security of user information during the process.
[0186] In one embodiment, such as Figure 9 As shown, an account sharing method is provided, which is applied to... Figure 1 The following steps are used as an example of a client (the account creator mentioned below):
[0187] In step S902, the account creator sends an authorization request to the party to be authorized. The authorization request includes the public key of the shared account and the public parameters of the shared account, instructing the party to be authorized to generate a member private key in response to the authorization request and to generate a member public key based on the member private key and the public parameters of the account.
[0188] In some embodiments, the steps of generating a member private key in response to an authorization request and generating a member public key based on the member private key and the account public parameters include: generating a member private key of the authorized party in response to an authorization request; extracting generation parameters for generating the member public key from the account public parameters by the authorized party, and generating the member public key of the authorized party based on the generation parameters and the member private key.
[0189] Step S904: After the account creator receives and verifies the member public key sent by the party to be authorized and the verification is successful, a member certificate is issued to the party to be authorized based on the account private key and the member public key of the shared account, so as to authorize the party to be authorized as a shared member of the shared account.
[0190] In some embodiments, the step of the account creator verifying the member public key sent by the party to be authorized includes: obtaining the knowledge signature corresponding to the member public key through the account creator, and verifying the existence of a member private key corresponding to the member public key through the knowledge signature; if it exists, the account creator determines that the validity verification of the member public key has passed, and returns to the step of issuing a member certificate for the party to be authorized based on the shared account's private key and the member public key to continue execution; if it does not exist, the account creator determines that the validity verification of the member public key has failed, and determines that the authorization of the party to be authorized has failed. In some embodiments, the step of issuing a member certificate for the party to be authorized based on the shared account's private key and the member public key includes: the account creator signing the member public key using the shared account's private key to obtain the member certificate for the party to be authorized.
[0191] In some embodiments, the method further includes: storing the member public key sent by the party to be authorized and the member certificate issued for the party to be authorized in correspondence through the account creator; sending the member certificate to the party to be authorized to instruct the party to verify the member certificate; and saving the member certificate after successful verification.
[0192] In some embodiments, the step of verifying a member certificate by the authorized party includes: verifying the member certificate based on the account public key by the authorized party; if the verification of the member certificate is successful, then authorizing the authorized party as a shared member of the shared account by the account creator; if the verification of the member certificate fails, then not authorizing the authorized party as a shared member of the shared account by the account creator.
[0193] The aforementioned account sharing method involves the account creator sending an authorization request to the party to be authorized. This request includes the shared account's public key and public parameters, instructing the party to be authorized to generate a member private key and a member public key based on the private key and public parameters. This ensures the party to be authorized possesses its own private and public keys. Once the account creator receives and verifies the public key sent by the party to be authorized, and the verification is successful, a member certificate is issued to the party to be authorized based on the shared account's private and public keys, authorizing the party to be a shared member of the shared account. Thus, the account sharing process involves only the interaction between the account creator and the party to be authorized; the server does not need to obtain or store additional user information for the shared members, improving the security of user information during the process.
[0194] This application also provides an application scenario in which the above-described transaction verification method for shared accounts is applied. Specifically, the application of the transaction verification method for shared accounts in this scenario is as follows: In a transaction scenario on an e-commerce platform, the server receives a transaction verification request sent to the e-commerce platform for a shared account. The transaction verification request includes a transaction instruction and a signature. The signature is obtained by signing the transaction instruction based on the private key and member certificate of the shared member corresponding to the shared account. The member certificate is issued by the account creator of the shared account based on the private key of the shared account and the public key of the shared member. The server queries the public key of the target account corresponding to the target shared account identifier in the transaction instruction. When, based on the queried public key of the target account and the signature, it is verified that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier, any shared member is allowed to initiate a transaction request for the target shared account. At this time, the server determines that the person initiating the transaction verification request on the e-commerce platform is a shared member of the target shared account, and then the server receives the transaction request from the shared member to complete the transaction operation of the shared member on the e-commerce platform. The transaction verification method for shared accounts proposed in this application can verify in a timely and accurate manner whether the member initiating the transaction verification request is a shared member of the target shared account without obtaining any user information. This effectively avoids the leakage of user information and improves the security of user information during the transaction verification process.
[0195] Of course, it is not limited to this. The transaction verification method for shared accounts provided in this application can also be applied to other application scenarios. For example, in audio and video platforms, it is often necessary for shared members to log in to the target shared account to watch or listen to audio and video works of interest. Therefore, before the transaction, the transaction verification method for shared accounts in this application can be used to complete the transaction verification for audio and video products.
[0196] The above application scenarios are merely illustrative. It is understood that the application of the shared account transaction verification method provided in the embodiments of this application is not limited to the above scenarios.
[0197] In one specific embodiment, a transaction verification method for shared accounts is provided. This method involves an account creator, a client to be shared with, and a server. The account creator and the client to be shared with can be the same client or different clients; there is no specific limitation. The specific implementation steps are as follows:
[0198] Step 1 (Shared Account Creation): The account creator generates an asymmetric key pair. The account creator signs the public key with their private key to obtain a signature for creating the shared account. Based on the public key and the signature, the account creator determines the shared account creation request and sends it to the server. The server obtains the account creator's identity information to be verified and compares it with pre-stored standard identity information. Based on the comparison results, the server determines the account creator's identity verification result. If the identity verification result indicates successful verification, the server signs the extracted public key of the account creator using its private key to determine the creation certificate and sends it to the account creator. The account creator verifies the creation certificate using the server's public key. If the verification fails, the account creator determines that the creation certificate was not issued by the server and the shared account creation fails. If the certificate creation verification passes, the account creator confirms that the certificate was issued by the server and generates a public-private key pair for the shared account. Specifically: the account creator generates the private key for the shared account and obtains the public account parameters; the account creator generates the corresponding public key based on the public parameters and the private key; the account creator signs the public key using their private key, obtaining the public key signature; the account creator sends the public key and the public key signature to the server. The server verifies the public key signature against the account creator's public key. If the verification passes, the creation is considered to have failed. If the verification passes, the server saves the public key, generates a shared account identifier, and associates the public key with the shared account identifier. At this point, the server considers the creation successful.
[0199] Step 2 (Account Sharing): The account creator sends an authorization request to the party to be authorized. This authorization request includes the public key of the shared account created by the account creator and the public parameters of the shared account. The party to be authorized responds to the authorization request, generating its own private key. The party to be authorized extracts the generation parameters for generating the public key from the public parameters and generates the public key based on the generation parameters and the private key. The party to be authorized sends the public key to the account creator. The account creator obtains the knowledge signature corresponding to the public key and verifies the existence of a corresponding private key. If it does not exist, the account creator determines that the public key's validity verification fails and the authorization for the party to be authorized has failed. If it exists, the account creator determines that the public key's validity verification passes and saves the public key. The account creator then signs the public key using the shared account's private key, confirming it as a member certificate issued by the party to be authorized, and sends the member certificate to the party to be authorized. The party to be authorized verifies the member certificate based on the account's public key. If the verification of the member certificate is successful, the party to be authorized is authorized as a shared member of the shared account by the account creator. If the verification of the member certificate fails, the party to be authorized is not authorized as a shared member of the shared account by the account creator.
[0200] Step 3 (Transaction Verification): The anonymous client determines the transaction instruction based on the target shared account identifier and the quantity of resources to be traded. The anonymous client then signs the transaction instruction using the private key and certificate of the member corresponding to the authorized shared account, obtaining the signature of the transaction instruction. Based on the transaction instruction and its signature, the anonymous client determines the transaction verification request. The server receives the transaction verification request from the anonymous client and extracts the target shared account identifier from the transaction instruction. According to the pre-stored mapping between account public keys and shared account identifiers, the server queries and retrieves the target account public key corresponding to the extracted target shared account identifier. The server verifies the signature's legitimacy using the target account public key. Specifically: it obtains the target shared account's public parameters and, based on the public parameters and the signature, determines the verification value corresponding to the shared account's public key; it determines a reference value corresponding to the target account's public key and compares the verification value with the reference value; if the reference value matches the verification value, the legitimacy verification is successful, and the transaction verification request is determined to have been initiated by any shared member of the target shared account corresponding to the target shared account identifier. If the reference value and the verification value are inconsistent, the legality verification fails, and the transaction verification request is determined not to have been initiated by any shared member of the target shared account corresponding to the target shared account identifier. If, based on the queried target account public key and signature, it is verified that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier, then any shared member is allowed to initiate a transaction request against the target shared account. The account creator receives the transaction request against the target shared account initiated by a shared member; the account creator obtains the signature of the transaction request; the account creator queries the member public keys of each shared member of the target shared account, and determines the shared member identifier of the shared member initiating the transaction request based on each member's public key and the signature of the transaction request.
[0201] In this embodiment, by receiving a transaction verification request from a shared account, the system can identify the transaction instructions and signature included in the request. The signature is obtained by signing the transaction instructions using the private key and certificate of the shared member corresponding to the shared account. The member certificate is issued by the account creator of the shared account to the shared member using the shared account's private key and the shared member's public key. Thus, based on the shared account identifier in the transaction instructions, the target shared account corresponding to subsequent transaction requests can be quickly identified, allowing for accurate retrieval of the target account's public key corresponding to the shared account identifier in the transaction instructions. When, based on the retrieved target account public key and signature, it is verified that the transaction verification request was initiated by any shared member of the target shared account corresponding to the shared account identifier, any shared member is allowed to initiate a transaction request against the target shared account. This allows for timely and accurate verification of whether the member initiating the transaction verification request is a shared member of the target shared account without obtaining any user information, effectively preventing user information leakage and improving user information security during transaction verification. Simultaneously, the server cannot obtain any potential information regarding the association between the account creator and the shared member.
[0202] It should be understood that although the steps in the flowcharts of the embodiments described above are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the embodiments described above may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.
[0203] Based on the same inventive concept, this application also provides a transaction verification device for shared accounts to implement the transaction verification method for shared accounts described above. The solution provided by this device is similar to the implementation described in the above method; therefore, the specific limitations of one or more embodiments of the transaction verification device for shared accounts provided below can be found in the limitations of the transaction verification method for shared accounts described above, and will not be repeated here.
[0204] In one embodiment, such as Figure 10 As shown, a transaction verification device 1000 for shared accounts is provided, including: a receiving module 1902, a query module 1004, and a verification module 1006, wherein:
[0205] The receiving module 1002 is used to receive transaction verification requests from shared accounts. The transaction verification request includes a transaction instruction and a signature. The signature is obtained by signing the transaction instruction based on the private key and certificate of the shared member corresponding to the shared account. The member certificate is issued by the account creator of the shared account to the shared member based on the private key of the shared account and the public key of the shared member.
[0206] Query module 1004 is used to query the public key of the target account corresponding to the target shared account identifier in the transaction instruction;
[0207] The verification module 1006 is used to allow any shared member to initiate a transaction request for the target shared account when it is verified, based on the queried target account public key and signature, that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier.
[0208] In some embodiments, the query module 1004 is used to extract the target shared account identifier from the transaction instruction; and to query and extract the target account public key corresponding to the target shared account identifier according to the pre-stored correspondence between the account public key and the shared account identifier.
[0209] In some embodiments, the apparatus further includes a validity verification module, which is used to perform validity verification on the signature based on the queried target account public key; if the validity verification passes, it is determined that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier; if the validity verification fails, it is determined that the transaction verification request was not initiated by any shared member of the target shared account corresponding to the target shared account identifier.
[0210] In some embodiments, the legitimacy verification module is further configured to obtain the target account public parameters of the target shared account, and determine the verification value corresponding to the public key of the shared account based on the target account public parameters and the signature; determine the reference value corresponding to the public key of the target account, and compare the verification value with the reference value; if the reference value and the verification value are consistent, the legitimacy verification is determined to be successful; if the reference value and the verification value are inconsistent, the legitimacy verification is determined to be unsuccessful.
[0211] In some embodiments, the apparatus further includes an association module, configured to receive a shared account creation request sent by an account creator, the creation request being generated based on the account creator's public-private key pair; extract the account creator's public key from the creation request; issue a creation certificate for the account creator using the server's private key and the extracted account creator's public key, and send the creation certificate to the account creator to instruct the account creator to receive and verify the creation certificate, and generate a shared account public-private key pair after successful verification; receive the account public key from the account public-private key pair sent by the account creator and the account public key signature generated using the account creator's private key; verify the account public key signature based on the account creator's public key, and if the verification is successful, generate a shared account identifier and associate the account public key with the shared account identifier of the shared account.
[0212] In some embodiments, the apparatus further includes a creation request generation module, which is configured to generate a private key by the account creator and determine the corresponding public key based on the private key; by the account creator, sign the public key based on the private key to obtain a signature regarding the creation of a shared account; and by the account creator, determine a creation request for the shared account based on the public key and the signature regarding the creation of the shared account.
[0213] In some embodiments, the apparatus further includes a certificate creation verification module, which is used by the account creator to verify the creation certificate using the server's public key; if the verification of the creation certificate is successful, the account creator determines that the creation certificate was issued by the server and performs the step of generating a public-private key pair for the shared account; if the verification of the creation certificate is unsuccessful, the account creator determines that the creation certificate was not issued by the server and determines that the creation of the shared account has failed.
[0214] In some embodiments, the apparatus further includes an account public-private key pair generation module, which is used to generate a private key for a shared account by the account creator and obtain public account parameters; and to generate a corresponding public key for the account by the account creator based on the public account parameters and the private key.
[0215] In some embodiments, the apparatus further includes an authorization module, configured to send an authorization request to the party to be authorized via the account creator. The authorization request includes the public key of the shared account and the public parameters of the shared account, instructing the party to be authorized to generate a member private key and a member public key based on the member private key and the public parameters of the account. After the account creator receives and verifies the member public key sent by the party to be authorized and the verification is successful, the account creator issues a member certificate to the party to be authorized based on the private key of the shared account and the member public key, thereby authorizing the party to be authorized as a shared member of the shared account.
[0216] In some embodiments, the apparatus further includes a member public key verification module, which is used to obtain the knowledge signature corresponding to the member public key through the account creator, and verify whether there is a member private key corresponding to the member public key through the knowledge signature; if there is, the account creator determines that the validity verification of the member public key has passed, and returns to the step of issuing a member certificate for the authorized party based on the account private key of the shared account and the member public key to continue execution; if there is no member public key, the account creator determines that the validity verification of the member public key has failed, and determines that the authorization of the authorized party has failed.
[0217] In some embodiments, the apparatus further includes a storage module, which is configured to store the member public key sent by the party to be authorized and the member certificate issued for the party to be authorized through the account creator, send the member certificate to the party to be authorized to instruct the party to be authorized to verify the member certificate, and save the member certificate after the verification is successful.
[0218] In some embodiments, the apparatus further includes a determining module, configured to receive a transaction request for the target shared account initiated by a shared member of the target shared account through the account creator; obtain the signature of the transaction request through the account creator; query the member public keys of each shared member of the target shared account through the account creator; and determine the shared member identifier of the shared member initiating the transaction request based on the member public keys and the signature of the transaction request.
[0219] Based on the same inventive concept, this application also provides a shared account creation apparatus for implementing the shared account creation method described above. The solution provided by this apparatus is similar to the implementation described in the above method; therefore, the specific limitations of one or more shared account creation embodiments provided below can be found in the limitations of the shared account creation method described above, and will not be repeated here.
[0220] In one embodiment, such as Figure 11 As shown, a shared account creation device 1100 is provided, including: a creation request module 1102, an extraction module 1104, a sending module 1106, a second signature module 1108, and an association module 1110, wherein:
[0221] The creation request module 1102 is used to receive the creation request of the shared account sent by the account creator. The creation request is generated based on the public and private key pair of the account creator.
[0222] Extraction module 1104 is used to extract the public key of the account creator from the creation request;
[0223] The sending module 1106 is used to issue a creation certificate to the account creator using the server's private key and the extracted public key of the account creator, and send the creation certificate to the account creator to instruct the account creator to receive and verify the creation certificate and generate the public and private key pair of the shared account after successful verification.
[0224] The second signature module 1108 is used to receive the account public key in the account public-private key pair sent by the account creator and the account public key signature generated by the account creator's private key for the account public key;
[0225] The association module 1110 is used to verify the public key signature of the account based on the public key of the account creator. If the verification is successful, a shared account identifier is generated and the public key of the account is associated with the shared account identifier of the shared account.
[0226] Based on the same inventive concept, this application also provides an account sharing apparatus for implementing the account sharing method described above. The solution provided by this apparatus is similar to the implementation described in the above method; therefore, the specific limitations in one or more account sharing embodiments provided below can be found in the limitations of the account sharing method described above, and will not be repeated here.
[0227] In one embodiment, such as Figure 12 As shown, an account sharing device 1200 is provided, including: an authorization request sending module 1202 and an issuance module 1204, wherein:
[0228] The authorization request sending module 1202 is used to send an authorization request to the party to be authorized through the account creator. The authorization request includes the public key of the shared account and the public parameters of the shared account, so as to instruct the party to be authorized to generate a member private key in response to the authorization request and generate a member public key based on the member private key and the public parameters of the account.
[0229] The signing module 1204 is used to receive and verify the member public key sent by the party to be authorized through the account creator. After the verification is successful, the signing module issues a member certificate to the party to be authorized based on the account private key of the shared account and the member public key, so as to authorize the party to be authorized as a shared member of the shared account.
[0230] The transaction verification device, shared account creation device, and account sharing device of the aforementioned shared account can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in a computer device in hardware form, or stored in the memory of a computer device in software form, so that the processor can call and execute the operations corresponding to each module.
[0231] In one embodiment, a computer device is provided, which may be a server (such as the aforementioned server-side component), and its internal structure diagram may be as follows. Figure 13 As shown, this computer device includes a processor, memory, input / output (I / O) interfaces, and a communication interface. The processor, memory, and I / O interfaces are connected via a system bus, and the communication interface is also connected to the system bus via the I / O interfaces. The processor provides computational and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system, computer programs, and a database. The internal memory provides the environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The I / O interfaces are used for exchanging information between the processor and external devices. The communication interface is used for communicating with external terminals via a network connection. When executed by the processor, the computer program implements a transaction verification method for shared accounts, a method for creating shared accounts, and a method for sharing accounts.
[0232] Those skilled in the art will understand that Figure 13 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0233] In one embodiment, a computer device is also provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in the above method embodiments.
[0234] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon that, when executed by a processor, implements the steps in the above method embodiments.
[0235] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the steps in the above method embodiments.
[0236] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, data stored, data displayed, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data shall comply with the relevant laws, regulations and standards of the relevant countries and regions.
[0237] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.
[0238] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0239] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.
Claims
1. A transaction verification method for shared accounts, characterized in that, The method includes: Receive a transaction verification request from a shared account; the transaction verification request includes a transaction instruction and a signature, the signature is obtained by signing the transaction instruction based on the private key and member certificate of the shared member corresponding to the shared account, and the member certificate is issued by the account creator of the shared account for the shared member based on the private key of the shared account and the public key of the shared member; Extract the target shared account identifier from the transaction instruction; Based on the pre-stored correspondence between account public keys and shared account identifiers, query and retrieve the target account public key corresponding to the target shared account identifier; When the transaction verification request is verified to be initiated by any shared member of the target shared account corresponding to the target shared account identifier based on the queried target account public key and the signature, the server is allowed to initiate a transaction request for the target shared account. During the transaction verification, creation, and sharing of the shared account, the server does not need to obtain or store the user information of any shared member.
2. The method according to claim 1, characterized in that, The method further includes: The signature is validated based on the public key of the target account obtained from the query. If the legality verification passes, it is determined that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier; If the legality verification fails, it is determined that the transaction verification request was not initiated by any shared member of the target shared account corresponding to the target shared account identifier.
3. The method according to claim 2, characterized in that, The step of verifying the validity of the signature based on the public key of the target account obtained from the query includes: Obtain the target account public parameters of the target shared account, and determine the verification value corresponding to the account public key of the shared account based on the target account public parameters and the signature; Determine a reference value corresponding to the public key of the target account, and compare the verification value with the reference value; If the reference value matches the verification value, then the legality verification is deemed to have passed. If the reference value is inconsistent with the verification value, then the legality verification is determined to have failed.
4. The method according to claim 1, characterized in that, Before receiving the transaction verification request from the shared account, the method further includes: Receive a request to create a shared account from the account creator, the request being generated based on the account creator's public-private key pair; Extract the public key of the account creator from the creation request; Using the server's private key and the extracted public key of the account creator, a creation certificate is issued for the account creator. The creation certificate is then sent to the account creator to instruct the account creator to receive and verify the creation certificate. Upon successful verification, the public and private key pair of the shared account is generated. Receive the account public key from the account public-private key pair sent by the account creator, and the account public key signature generated using the account creator's private key for the account public key; The public key signature of the account is verified using the public key of the account creator. If the verification is successful, a shared account identifier is generated, and the public key of the account is associated with the shared account identifier of the shared account.
5. The method according to claim 4, characterized in that, The steps for generating the shared account creation request include: The account creator generates a private key, and determines the corresponding public key based on the private key; The account creator signs the public key using the private key to obtain a signature regarding the creation of the shared account; The account creator determines the creation request for the shared account based on the public key and the signature regarding the creation of the shared account.
6. The method according to claim 4, characterized in that, The steps for the account creator to verify the creation certificate include: The account creator verifies the creation certificate using the server's public key. If the verification of the created certificate is successful, the account creator determines that the created certificate was issued by the server and executes the step of generating the public and private key pair of the shared account. If the verification of the created certificate fails, the account creator determines that the created certificate was not issued by the server, and the shared account creation fails.
7. The method according to claim 4, characterized in that, The steps by which the account creator generates the public / private key pair for the shared account include: The account creator generates the private key for the shared account and obtains the account's public parameters. The account creator generates a corresponding public key based on the account's public parameters and private key.
8. The method according to claim 1, characterized in that, Before receiving the transaction verification request from the shared account, the method further includes: The account creator sends an authorization request to the party to be authorized, the authorization request including the public key of the shared account and the public parameters of the shared account, to instruct the party to be authorized to generate a member private key in response to the authorization request and to generate a member public key based on the member private key and the public parameters of the account; After the account creator receives and verifies the member public key sent by the party to be authorized, and the verification is successful, a member certificate is issued to the party to be authorized based on the account private key of the shared account and the member public key, so as to authorize the party to be authorized as a shared member of the shared account.
9. The method according to claim 8, characterized in that, The steps for the account creator to verify the member public key sent by the unauthorized party include: The knowledge signature corresponding to the member's public key is obtained by the account creator, and the existence of a member's private key corresponding to the member's public key is verified by the knowledge signature. If it exists, the validity verification of the member's public key is confirmed by the account creator, and the process returns to the step of issuing a member certificate for the authorized party based on the shared account's private key and the member's public key. If it does not exist, the validity verification of the member's public key is determined by the account creator and the authorization of the party to be authorized is determined to have failed.
10. The method according to claim 8, characterized in that, The method further includes: The account creator stores the member public key sent by the party to be authorized and the corresponding member certificate issued for the party to be authorized. The member certificate is then sent to the party to be authorized to instruct the party to verify the member certificate. After successful verification, the member certificate is saved.
11. The method according to claim 1, characterized in that, The method further includes: The account creator receives transaction requests for the target shared account initiated by a shared member of the target shared account. Obtain the signature of the transaction request through the account creator; The account creator queries the public keys of each shared member of the target shared account, and determines the shared member identifier of the shared member who initiated the transaction request based on each member's public key and the signature of the transaction request.
12. A method for creating a shared account, characterized in that, The method includes: Receive a request to create a shared account from the account creator, the request being generated based on the account creator's public-private key pair; Extract the public key of the account creator from the creation request; Using the server's private key and the extracted public key of the account creator, a creation certificate is issued for the account creator. The creation certificate is then sent to the account creator to instruct the account creator to receive and verify the creation certificate. Upon successful verification, the public and private key pair of the shared account is generated. Receive the account public key from the account public-private key pair sent by the account creator, and the account public key signature generated using the account creator's private key for the account public key; The public key signature of the account is verified based on the public key of the account creator. If the verification is successful, a shared account identifier is generated, and the public key of the account is associated with the shared account identifier of the shared account. During the transaction verification, creation, and sharing of the shared account, the server does not need to obtain or store the user information of any shared member.
13. An account sharing method, characterized in that, The method includes: The account creator sends an authorization request to the party to be authorized, the authorization request including the public key of the shared account and the public parameters of the shared account, to instruct the party to be authorized to generate a member private key in response to the authorization request and to generate a member public key based on the member private key and the public parameters of the account; After the account creator receives and verifies the member public key sent by the party to be authorized and the verification is successful, the member certificate is issued to the party to be authorized based on the account private key of the shared account and the member public key, so as to authorize the party to be authorized as a shared member of the shared account. During the transaction verification, creation and sharing of the shared account, the server does not need to obtain or store the user information of any shared member.
14. A transaction verification device for a shared account, characterized in that, The device includes: A receiving module is used to receive transaction verification requests from a shared account. The transaction verification request includes a transaction instruction and a signature. The signature is obtained by signing the transaction instruction based on the private key and member certificate of the shared member corresponding to the shared account. The member certificate is issued by the account creator of the shared account for the shared member based on the private key of the shared account and the public key of the shared member. The query module is used to extract the target shared account identifier from the transaction instruction; and to query and extract the target account public key corresponding to the target shared account identifier based on the pre-stored correspondence between account public keys and shared account identifiers. The verification module is used to allow any shared member to initiate a transaction request for the target shared account when the transaction verification request is initiated by any shared member of the target shared account corresponding to the target shared account identifier, based on the queried target account public key and the signature. During the transaction verification, creation, and sharing of the shared account, the server does not need to obtain or store the user information of any shared member.
15. The apparatus according to claim 14, characterized in that, The device further includes a validity verification module, used to verify the validity of the signature based on the public key of the target account obtained from the query; if the validity verification passes, it is determined that the transaction verification request was initiated by any shared member of the target shared account corresponding to the target shared account identifier; if the validity verification fails, it is determined that the transaction verification request was not initiated by any shared member of the target shared account corresponding to the target shared account identifier.
16. The apparatus according to claim 15, characterized in that, The legitimacy verification module is used to obtain the public parameters of the target shared account, and determine the verification value corresponding to the public key of the shared account based on the public parameters of the target account and the signature; determine a reference value corresponding to the public key of the target account, and compare the verification value with the reference value; if the reference value is consistent with the verification value, the legitimacy verification is determined to be successful. If the reference value is inconsistent with the verification value, then the legality verification is determined to have failed.
17. The apparatus according to claim 14, characterized in that, The device further includes an association module for receiving a shared account creation request sent by the account creator, the creation request being generated based on the public-private key pair of the account creator; and extracting the public key of the account creator from the creation request. Using the server's private key and the extracted public key of the account creator, a creation certificate is issued for the account creator. The creation certificate is then sent to the account creator to instruct the account creator to receive and verify the creation certificate. Upon successful verification, the public and private key pair of the shared account is generated. The system receives the public key of the account in the public-private key pair sent by the account creator, as well as the public key signature generated by the account creator using the private key of the account creator; it verifies the public key signature of the account creator based on the public key of the account creator; if the verification is successful, it generates a shared account identifier and associates the public key of the account with the shared account identifier of the shared account.
18. The apparatus according to claim 17, characterized in that, The device further includes a creation request generation module, used to generate a private key through the account creator and determine the corresponding public key based on the private key; The account creator signs the public key using the private key to obtain a signature regarding the creation of the shared account; The account creator determines the creation request for the shared account based on the public key and the signature regarding the creation of the shared account.
19. The apparatus according to claim 17, characterized in that, The device further includes a certificate creation verification module, used by the account creator to verify the creation certificate using the server's public key; If the verification of the creation certificate passes, the account creator determines that the creation certificate was issued by the server and executes the step of generating the public and private key pair of the shared account; if the verification of the creation certificate fails, the account creator determines that the creation certificate was not issued by the server and determines that the creation of the shared account has failed.
20. The apparatus according to claim 17, characterized in that, The device also includes an account public / private key pair generation module, used to generate the account private key of the shared account through the account creator and obtain the account public parameters; The account creator generates a corresponding public key based on the account's public parameters and private key.
21. The apparatus according to claim 14, characterized in that, The device further includes an authorization module, used to send an authorization request to the party to be authorized through the account creator. The authorization request includes the public key of the shared account and the public parameters of the shared account, to instruct the party to be authorized to generate a member private key in response to the authorization request and to generate a member public key based on the member private key and the public parameters of the account. After the account creator receives and verifies the member public key sent by the party to be authorized, and the verification is successful, a member certificate is issued to the party to be authorized based on the account private key of the shared account and the member public key, so as to authorize the party to be authorized as a shared member of the shared account.
22. The apparatus according to claim 21, characterized in that, The device further includes a member public key verification module, used to obtain the knowledge signature corresponding to the member public key through the account creator, and verify the existence of a member private key corresponding to the member public key through the knowledge signature; if it exists, the account creator determines that the validity verification of the member public key has passed, and returns to the step of issuing a member certificate for the authorized party based on the account private key of the shared account and the member public key to continue execution; if it does not exist, the account creator determines that the validity verification of the member public key has failed, and determines that the authorization of the authorized party has failed.
23. The apparatus according to claim 21, characterized in that, The device further includes a storage module, which is used to store the member public key sent by the party to be authorized and the member certificate issued for the party to be authorized through the account creator, send the member certificate to the party to be authorized to instruct the party to be authorized to verify the member certificate, and save the member certificate after the verification is successful.
24. The apparatus according to claim 14, characterized in that, The device further includes a determining module, configured to receive a transaction request for the target shared account initiated by a sharing member of the target shared account through the account creator; and to obtain the signature of the transaction request through the account creator. The account creator queries the public keys of each shared member of the target shared account, and determines the shared member identifier of the shared member who initiated the transaction request based on each member's public key and the signature of the transaction request.
25. A device for creating a shared account, characterized in that, The device includes: A creation request module is used to receive a creation request for a shared account sent by the account creator, the creation request being generated based on the public and private key pair of the account creator; An extraction module is used to extract the public key of the account creator from the creation request; The sending module is used to issue a creation certificate for the account creator using the server's private key and the extracted public key of the account creator, and send the creation certificate to the account creator to instruct the account creator to receive and verify the creation certificate and generate the account public-private key pair of the shared account after successful verification. The second signature module is used to receive the account public key from the account public-private key pair sent by the account creator, and to sign the account public key generated by the account creator using the private key of the account creator. The association module is used to verify the public key signature of the account based on the public key of the account creator. If the verification is successful, a shared account identifier is generated and the public key of the account is associated with the shared account identifier of the shared account. During the transaction verification, creation and sharing of the shared account, the server does not need to obtain or store the user information of any shared member.
26. An account sharing device, characterized in that, The device includes: An authorization request sending module is used to send an authorization request to the party to be authorized through the account creator. The authorization request includes the public key of the shared account and the public parameters of the shared account, so as to instruct the party to be authorized to generate a member private key in response to the authorization request and generate a member public key based on the member private key and the public parameters of the account. The issuance module is used to receive and verify the member public key sent by the party to be authorized through the account creator. After the verification is successful, the module issues a member certificate to the party to be authorized based on the account private key of the shared account and the member public key, so as to authorize the party to be authorized as a shared member of the shared account. During the transaction verification, creation and sharing of the shared account, the server does not need to obtain or store the user information of any shared member.
27. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 13.
28. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 13.
29. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 13.