1. Introduction
The credit system is one of the symbols that constructs economic and social progress and development, and credit has gradually become everyone’s second ID card [
1]. Credit investigation reflects a person’s credit status, and it has stepped into all aspects of our life. A credit-investigation agency provides convenient credit-inquiry services to users by legally collecting and processing the credit information of users from the credit investigation system.
With the development of Internet finance, we have entered the era of data, and credit data have shown explosive growth. The traditional credit-investigation system takes a few credit-investigation agencies as the main body, and its stored credit-investigation information is seriously unable to meet the needs of users. There is an island phenomenon among credit-investigation systems, and the format of their credit-investigation information is also different. These conditions make it impossible to share credit-investigation information. In addition, the traditional credit-investigation system relies on a centralized server, which means that once it is attacked by hackers, the entire system will fall down and cannot work. Credit-investigation information is sensitive and private, so the credit-investigation system needs security and privacy protection.
Blockchain and smart contracts can solve the problem of information silos and the risks brought by the centralized server in the traditional credit-investigation system. In the current credit-investigation system, financial institutions provide credit-investigation user inquiries and related credit services. Credit-investigation agencies act as credit-investigation data providers, and they encrypt the data and upload them to the cloud. However, this multi-entity system will lead to complex interactions, which is not conducive to the sharing of credit-investigation information. Blockchain technology has the characteristics of traceability, privacy protection, and avoidance of single points of failure as a secure, distributed ledger based on cryptography. A smart contract is programmable code that cannot be tampered with running on the blockchain, which greatly expands the application fields of the blockchain. Smart contracts are deeply integrated with credit investigation, and they help to realize the safe sharing of credit data and to reduce the cost of credit-data collection.
The identity authentication of the traditional credit-investigation system will lead to a certain risk of identity information leakage. For example, the method of entering the account and password for identity authentication and login in the credit-investigation system will cause a user’s identity information to be intercepted by the adversary, thereby jeopardizing the security of the credit-investigation system. The method of identity authentication through biometrics such as face and fingerprint has the advantages of not being forgotten or lost and is easy to use anytime and anywhere. However, because the biological characteristics remain unchanged for many years and accompany each individual throughout his life, its security cannot be guaranteed when there are loopholes or when the system database is attacked [
2]. Although the blockchain provides pseudonyms that have nothing to do with the information of credit-investigation users, it cannot fully realize the privacy of users’ identity. Therefore, the current credit-investigation system has an urgent need to solve the security problem of identity authentication.
The data in the credit-investigation system are sensitive, so malicious cloud service providers will spy on and tamper with user’s data. To protect the privacy of the data, we need to encrypt them before uploading them to the cloud servers. Although the ciphertext can ensure the security of credit-investigation data, it consumes a significant amount of bandwidth resources when the ciphertext is searched. Therefore, we need to search the ciphertext and return the search results to the user, while ensuring the privacy and security of the data to the greatest extent.
Zero-knowledge-proof technology [
3] can ensure the security and privacy of credit-investigation users in the identity-authentication phase, and it can protect their identities from eavesdropping and acquisition by malicious adversaries. zkSNARKs [
4], as a zero-knowledge-proof application tool, allows credit users to prove to the system that the “thesis” is correct by describing a particular “thesis,” but the judgment will not reveal any valid information. Users submit their own identity information by using zero-knowledge-proof technology; then, the smart contract will verify the user’s identity. Once the verification is passed, the user will be anonymously authenticated, and the blockchain will record that the user’s address is legal.
Searchable-symmetric-encryption technology can improve the search efficiency of cloud service providers and can realize data searches in ciphertext data. In addition, this technology guarantees data security and prevents attacks from malicious cloud service providers and other adversaries.
This scheme combines blockchain, zero-knowledge-proof, and searchable-symmetric-encryption technology to develop a securer credit information-sharing scheme.
1.1. Related Works
Blockchain is a horizontal and connected technology, which can promote interconnection among various industries and fields and the development of other technologies [
5,
6]. Xu et al. [
7] proposed a social-credit-investigation system based on blockchain technology, which enabled smart contracts for identity verification and authorization. Li et al. [
8] proposed a reputation blockchain ecosystem to implement autonomous credit and established a credit-evaluation model. Zhang et al. [
9] designed a personal-credit-investigation-information-sharing-platform framework based on blockchain 3.0 architecture and implemented a credit-blacklist-sharing mechanism. Zhu [
10] proposed an identity-authentication and intelligent-credit-reporting method based on blockchain technology, which realized multi-dimensional-identity-security authentication and a distributed ledger of credit ratings.
Faisca and Rogado [
11] proposed an end-to-end-identity-authentication mechanism based on the JSON web token and blockchain technology. The token can use “claims” to encode personal-cloud- and customer-related information in a secure way. Cui et al. [
12] proposed a blockchain-based multi-WSN authentication scheme for the Internet of Things to achieve mutual authentication of node identities in various communication scenarios. Abbasi and Khan [
13] proposed a VeidBlock1 scheme, which generates verifiable identities by following a reliable authentication process. All identities created by VeidBlock are verifiable and anonymous, so this scheme protects the user’s privacy during the verification and authentication phases. Zhang et al. [
14] stored users’ identities on the blockchain and stored the encrypted personal information outside the blockchain; however, the user’s identity information was directly exposed on the blockchain, and malicious attacks can easily steal the user’s identity. Zhou et al. [
15] proposed an improved key-distribution solution (blockchain with identity-based encryption (BIBE)). BIBE separates the nodes in the chain to complete a user’s identity verification and private-key protection. Mikula [
16] proposed an identity and access-management system using blockchain technology to support the identity verification and authorization of entities in the digital system. Gabay et al. [
17] proposed a scheme based on blockchain technology and smart contracts, and they achieved privacy protection authentication through a zero-knowledge=proof method based on tokens and the Pederson commitment. Wan et al. [
18] proposed zk-DASNARK and realized the data-feedback-feed scheme of zero-knowledge proof based on zk-DASNARK to ensure the privacy and authenticity of smart contracts.
Li et al. [
19] proposed a blind-signature scheme suitable for a blockchain system against quantum attacks, and this scheme improved the security and privacy of the blockchain. Li et al. [
20] proposed a searchable-symmetric-encryption scheme based on blockchain technology, which not only improved the efficiency of data retrieval but also ensured the fairness of both parties’ transactions. Gao et al. [
21] proposed an attribute-based encryption scheme based on blockchain technology to achieve trusted-access control of data while ensuring an access strategy and attribute privacy. Agyekum et al. [
22] proposed a proxy re-encryption method to ensure data-sharing security in a cloud environment.
1.2. Contribution
The goal of this study was to provide a privacy-protection scheme for a credit-investigation system based on blockchain technology to ensure the secure sharing of data between the credit-investigation user and the credit-investigation agency. The main contributions are summarized as follows.
This study proposed a privacy-protection scheme for the credit-investigation system based on blockchain technology. The information-silo problem caused by the centralized-server method was solved by using the decentralization and non-tamperable characteristics of the blockchain, and the credit-investigation data was protected from being tampered with by malicious cloud service providers.
This scheme adopted identity-authentication technology based on zero-knowledge proof—credit-investigation users can prove that they are legal users without revealing any private identity information. This scheme also used a searchable-symmetric-encryption technology, which ensures the secure storage and the efficient searching of credit-investigation data.
Compared with some existing schemes, this scheme achieved better privacy protection. Compared with zk-DASNARK, the cost of this scheme in the identity-authentication phase is affordable. The cost of this scheme in the searchable-encryption process is significantly lower than other schemes.
3. System Model
The privacy-protection scheme of the blockchain-based credit investigation system includes five entities including credit-investigation agencies, credit-investigation users, the blockchain, cloud service providers, and financial institutions.
Regarding the credit-investigation agency, we assumed that the credit-investigation agencies () are completely trustworthy. The credit-investigation agencies () have a large number of user-credit-reporting reports and can safely own, control, and conditionally provide credit reporting of users’ personal-credit information, in addition to obtaining relevant fees in the process.
The credit-investigation user () is a typical data consumer. He needs to pass identity authentication and entrust financial institutions to inquire about the relevant credit-investigation information.
The smart contract in the blockchain () can verify the identity of the credit-investigation users, and the blockchain network connects to other physical nodes. The blockchain stores the hash digest of the ciphertext of the credit-investigation user’s information to ensure that the data can be traced and that they cannot be tampered with.
We assumed that the cloud service provider () is not trustworthy. It stores the ciphertext of the user’s credit-investigation information and returns the ciphertext that meets the requirements based on the user’s trapdoor information. In addition, it receives credit-investigation information but may dishonestly perform the tasks assigned in the system.
Financial institutions include commercial banks, etc. We assumed that financial institutions () are completely trusted. In this scheme, financial institutions provide credit-investigation information inquiry and credit services to credit-investigation users, but they cannot authorize other credit-investigation users to query services.
Definition 1. This scheme is composed of the algorithm eight-tuple , part of which is based on a searchable- symmetric-encryption algorithm [26]. The formal description is as follows: . The algorithm is a probabilistic key-generation algorithm. It takes a security parameter k as input and outputs a key array K.
. The algorithm is an encryption algorithm. It takes a plaintext and a key K as input and outputs the index I and the ciphertext .
. This algorithm is a key-generation algorithm of zkSNARKs. It takes a security parameter λ and a circuit C as input and outputs a proof key and a verification key .
. This algorithm is a proof algorithm of zkSNARKs. It takes a proof key , a user’s identity information , identity-information signature , and timestamp as input and outputs a proof π.
. This algorithm is a verification algorithm of zkSNARKs. It takes as input a verification key and a proof π to verify whether the verification is successful.
. This algorithm is a trapdoor-generation algorithm executed by the financial institution that accepts the credit-investigation user’s entrustment. It takes a key K and the search keyword , and it outputs the trapdoor .
. The algorithm is a ciphertext search algorithm executed by the cloud service provider that accepts the credit-investigation user’s entrustment. It takes a search index I and a trapdoor as input, and it outputs the ciphertext that meets the requirements.
. The algorithm is a decryption algorithm executed by the financial institution that accepts the credit-investigation user’s entrustment. It takes the secret key K and ciphertext as input and outputs the plaintext .
This scheme is based on blockchain technology, smart-contract technology [
27], searchable-symmetric-encryption technology, and zkSNARKs to realize the identity authentication of credit-investigation users and the secure sharing of credit data in the credit-investigation system.
To facilitate understanding, in our plan, we instantiated a blockchain-based credit-investigation-system plan, as shown in
Figure 1. Credit-investigation agencies
have a large number of credit-investigation users’ credit investigation information
.
In the data-encryption stage, the credit-investigation agency first generates key K according to algorithm and generates ciphertext and index I through algorithm , which are stored by the cloud service provider . Then, the key K is encrypted according to the public key of the credit-investigation user to obtain , and the ciphertext is hashed to obtain the hash value before being saved on the blockchain.
At the registration stage, the credit-investigation user needs to register with the credit-investigation agency in advance. In addition, credit-investigation users need to entrust financial institutions to perform data-query services.
In the zero-knowledge key-generation stage, the credit-investigation agency must design and develop a circuit that conforms to the user’s identity, and it must generate a proof key and a verification key through the algorithm. Finally, the proof key is distributed to credit-investigation users, and the verification key is distributed to the verification contract.
In the proof-generation stage, when the credit-investigation user passes the identity authentication without revealing his specific identity information, he needs to enter his identity information in the algorithm to generate a zero-knowledge proof conforming to the circuit, and he needs to submit it to the verification contract.
In the identity-authentication phase, the verification contract verifies that and the proof key are correct through the algorithm, and the ciphertext is sent to the credit-investigation user and the financial institution; additionally, the identity of the credit-investigation user is legal. Otherwise, the identity authentication cannot be passed.
In acquiring the trapdoor phase, the credit-investigation user receives , decrypts it to obtain the key K, and then returns to the financial institution through the secure channel. Financial institutions use the algorithm to generate trapdoor and send it to cloud service providers.
At the stage of obtaining the ciphertext, the cloud service provider uses the algorithm to return the corresponding ciphertext to the financial institution.
In the decryption stage, the financial institution decrypts the ciphertext through the algorithm to obtain the credit-investigation information , returns it to the relevant credit investigation user , and provides relevant credit services.
4. Detail Scheme
To facilitate the understanding of these notations, the notations used in this article are shown in
Table 1.
4.1. System Initialization
Set p to be a large prime number and to be the only subgroup of , and then select generator , random number , security parameter k and hash function . Suppose the public key of the credit-investigation user is , and the private key is .
Credit-investigation users, financial institutions, and credit-investigation agencies participate in the blockchain and obtain the blockchain address. These entities act as nodes to jointly build an alliance blockchain together. All nodes that maintain the blockchain network can upload data to the blockchain only through the practical-byzantine-fault-tolerance (PBFT) consensus mechanism.
4.2. Data Encryption
The credit-investigation agency selects the security parameter K and uses the algorithm to randomly generate the key for credit-investigation user .
We chose a pseudo-random function f and two pseudo-random permutations and . We scanned the credit data set and generated the keyword set of the document. For each different keyword , we generated the corresponding dictionary sequence table and set the global counter .
has a large number of credit-investigation data sets and uses the algorithm to generate ciphertext and index I, where . The algorithm uses the AES symmetric-encryption algorithm. Index I is composed of array A and lookup table T.
4.2.1. Create an Array
Array A contains a linked list including node , set to be the jth identifier of and generates key . Node was created, where . Node was encrypted to get . Then, the last node was created, and the node was encrypted to get . Finally, all the nodes of the linked list were stored in the array A in a random order.
4.2.2. Create a Query Table
We generated the query table with the keyword . Among them, the query table was composed of a two-tuple , presents the position of the array A and the decryption key of the node in , and presents the address of T.
The credit-investigation agency
uploads the ciphertext
and index
I to the cloud service provider
, and it uploads the ciphertext digest
of
, the ciphertext
, and the ciphertext of the searchable-symmetric-encryption key to the blockchain.
4.3. Registration
We assumed that the user also needs to register with the credit-investigation agency in advance. Normally, a valid voucher or identification is required. Once the credit-investigation user passes the identity authentication, as a legitimate user, he will not repeatedly submit his own specific identity information during the scheduling or decryption stage, and he will remain anonymous. After registration, the credit-investigation user sends an entrusted service request and related keyword to the financial institution.
4.4. Zero-Knowledge Key Generation
After the credit-investigation user completes the registration with the credit-investigation agency
,
needs to pre-design and develop a domain-specific language (DSL)-program that meets the zero-knowledge proof to generate circuit
and
. Then, the circuit
is composed of a calculation circuit, and the circuit
is composed of a calculation circuit and a Sha256 circuit. In the circuit
, the credit-investigation user’s identity information set
, identity information signature set
, and the timestamp
are input into the compute circuit for calculation; then, the calculated value
h is output to verify the authenticity and availability of the data. The structure of circuit
is shown in
Figure 2.
In the circuit
, the credit-investigation user’s identity information set
and information-signature set
are input to the compute circuit; both the timestamp
and the results obtained from the compute circuit are input into the Sha256 circuit and output the calculated hash value
h. This value verifies the authenticity and availability of the identity-information set, the corresponding identity-information-signature set, and the timestamp of the credit-investigation user. The structure of circuit
is shown in
Figure 3.
Take the acquired security parameter and one of the and as input, then the proof key and the verification key are output. The credit-investigation agency sends to the credit-investigation user, then it creates a verification contract and sends to the verification contract. This verification contract is public on the blockchain network and is used to verify whether the identity of the credit-investigation user is legal or not.
4.5. Generate the Proof
There are two types of input: public input and private input. The personal-identity information and of the credit-investigation user are referred to as private input, and the timestamp is referred to as public input to prevent potential replay attacks and man-in-the-middle attacks. must input the correct , , , and to generate a credible zero-knowledge proof . This process is performed outside the blockchain and will not be written into the blockchain.
4.6. Identity Authentication
The credit-investigation user submits the zero-knowledge proof to the verification contract for anonymous identity authentication. The smart contract verifies the zero-knowledge proof and the verification key without the participation of a third party. If the user-identity authentication is correct, the smart contract sends ’s key ciphertext to and the financial institution, then it determines that the credit-investigation user ’s identity is legal, otherwise it will record that the user is illegal and cannot proceed to the next-step operation. The record of all identity authentication performed by the smart contract is stored on the blockchain, and the process will only reveal the address information of the user but will not reveal any identity information about .
4.7. Obtain the Trapdoor
The credit-investigation user uses his private key to decrypt to obtain and then sends and to the financial institution through a secure channel. Then, the sent by has a time limit to ensure that he is the credit-investigation user authenticated by the verification contract just now. If the financial institution succeeds in the verification, then a trapdoor is generated according to the key and the corresponding keyword . Finally, the financial institution submits and credit-investigation-information-inquiry fees to the cloud service provider.
4.8. Obtain the Ciphertext
After paying the inquiry fee, the cloud service provider receives the trapdoor sent by the financial institution , retrieves the corresponding ciphertext through the algorithm, and finally returns the ciphertext to .
In order to verify that the cloud service provider has not tampered with the integrity and availability of the credit investigation ciphertext data and ciphertext data in the transmission process, the ciphertext needs to be hashed to obtain . The result obtained by with the ciphertext digest in the blockchain is compared. If , it proves that the cloud service provider has not tampered with the ciphertext data.
4.9. Decrypt the ciphertext
The financial institution decrypts the ciphertext with the key to obtain the credit-investigation information and sends it to the user through a secure channel. In addition, the financial institution provides related credit services to according to the credit-investigation report.