{'fraction_non_alphanumeric': 0.03552103889490101, 'fraction_numerical': 0.007575275319880323, 'mean_word_length': 4.69615663524293, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 11, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
SPPBPS: A Secure Privacy-Preservation Bilinear Pairing Scheme for Bitcoin Cryptocurrency

Despite the existing advances on research and education in cybersecurity and its applications, the field is still under discovery and new technologies are evolving. In recent years, Bitcoin as a cryptocurrency cyber application that records all financial transactions present on a blockchain where users can reach a secure and robust consensus on transactions emerges as the most popular peer-to-peer electronic payment system. Cryptocurrencies mostly rely on blockchain, as a secure decentralised append-only ledger to exchange digital currencies, and thereby attracting a billion-dollar economy. Bitcoin allows input transactions to link addresses and this can be used by an adversary to reveal real user identity. This obviously attracts privacy issues such as user’s information and identity leakage. Several existing techniques are found not satisfactory to fulfil practical and compatible anonymity requirements for users and their transaction. We present in this paper, a secure privacy-preservation scheme based on bilinear pairing and other cryptographic primitives. We proved that our proposed scheme is robust and can be implemented to preserve users and transaction privacy in the Bitcoin system by theoretical analysis and evaluation.


Introduction
Cryptocurrency is a decentralised peer-to-peer (P2P) virtual money exchange system based on cryptographic principles [1]. Cryptography, upon its several uses, can also be used to generate and distribute currency units [2] such as bitcoin (BTC) [3]. Nakamoto [3] is the first to describe Bitcoin as a decentralised peer-to-peer (P2P) electronic currency payment [5] which employs cryptographic primitives to guarantee and correct operations, in order to secure financial transactions with digital currency. Bitcoin cryptocurrency transactions are signed with the elliptic curve digital signature algorithm (ECDSA), where the parameters involved are from standards for efficient cryptography group (SECG), and secp256k1 [6].
Bitcoin is perceived to achieve anonymity [7], as it employs cryptography to control the generation of new coins. [8] The validation of the cryptocurrencies transactions are being controlled by cryptography. The Bitcoin cryptocurrencies transactions process utilise distributed verification supplanted by a cryptographic proof-of-work (PoW) scheme [8] in a blockchain. The purpose of verification is to confirm amounts and payer legitimacy whiles checking for double spending not to occur [9].
Once a transaction is validated and saved, it cannot be modified since any blocks involved are linked to their precursor that embeds in its cryptographic hash function. Varieties of mining techniques are employed into Cryptocurrencies for verification process based on system requirements. Blockchain [10] acts similarly as a database to keep records of all the bitcoin transactions. Blockchain is made public for convenient access to all participating network nodes to enforce transparency [11]. However, an attack can be launched by an adversary to link addresses to reveal users' real identity and once this is achieved, all transactions relating to the same user could be linked. This breaches users' privacy.
A background study on Bitcoin privacy enabling approaches have been presented in [7] [12][13]. To solve the leakage of real user identity to addresses [14] presents a study on Bitcoin privacy and anonymity. Privacy of users in Bitcoin is said to be weak since Bitcoin only espouses only pseudonymity and not anonymity. Bitcoin address reuse technique, web spidering, monitoring node IP addresses, tracking payments in the blockchain can be used to compromise Bitcoin users privacy. With these procedures available, user transactions can be linked to addresses by an adversary possibly by tracing the flow of the digital currency in the blockchain [4]. Privacy leakages are challenging and pricey to recover once an attack is launched [15].
Bitcoin has the opportunity to offer pseudonymity as a partial user's information unlinkability. Bitcoin users are pseudonymously required to create new addresses for fresh transactions using their public keys [14]. Although there is no directory to maintain a log and other transactional related information in Bitcoin system, an adversary can associate offline data such as emails and shipping addresses with the online information to reveal private information about peers [5] [16]. It is, however, imperative to anonymise user transactions to dodge tracking. Transactions can be obfuscated by employing cryptographic primitives. Use of blind signatures [17] was mooted, albeit its resulting security protocol disparagingly relies on the existence of dependable anonymous communication channel. A generic secure multi-party computation or sorting as a building block has been used in almost all secure decentralised protocols proposed [18][19][20] and thus lack efficiency.
Different level of privacy is achieved through one-time public/private key pairs, long-term public/private key pairs, public-key cryptosystems, pairing-based cryptosystems etc in recent Privacypreserving schemes proposed [15], public-key cryptography, and group signature scheme [21]. The authors present a privacy scheme and anonymity considerations based on bilinear pairing for Bitcoin cryptocurrency.
Chapter 2 sees preliminary of the problem. Chapter 3 seeks to introduce and discuss the proposed privacy-preserving scheme. The theoretical analysis and the evaluation of the scheme are tabled in Chapter 4 and Chapter 5 presents the conclusion of this paper with future work direction.
Mapping of e is referred to as bilinearity. Modified Weil and Tate pairings on elliptic curves may be used to construct bilinear mapping [22].

Design goals
Our design goal is to develop a secure privacy-preserving scheme for Bitcoin users and their transactions. We guarantee the above security requirements in our proposed scheme. We apply the system model and security requirements to design our proposed scheme. Proposed scheme should broadcast bitcoin transactions into the Bitcoin blockchain with the needed anonymity, making it hard for a dishonest node to link the transactions to users' addresses with the view to revealing real users' identity. Our system espouses cryptographic privacy techniques built on top of the Bitcoin system. For the privacy of the scheme, the authors used bilinear mapping based on modified Weil and Tate pairings and zero-knowledge proof protocol. Our proposed scheme achieves end-to-end data privacy and it is efficient and scalable.

Protocol setup
In our scheme, to anonymise a transaction message, the protocol runs as below. Users interfacing the scheme sign their transaction messages with a personal public key from a public key pair different from the default Bitcoin public-key pair generated at the user end of our scheme by the users. Users under no circumstance should leak this personal key pair. The secret key part is then used to prove knowledge of the transaction to get the transaction back from the scheme. The first execution of our scheme is as alluded above, supposedly as the user end of the scheme. The scheme can loosely be seen as having two ends as user and system ends. Our scheme group transactions of equal length and countersigns them with the same secret key. Inconsistent lengths are padded to same.

Privacy analysis and evaluation
In this section, the authors provide a theoretical discussion to analysis and evaluate the proposed privacy scheme. Our scheme uses a symmetric pairing and it is a bilinear map where 1 = 2 = . We construct our scheme with a security and privacy parameter n with setup (Setup) function to generate the bilinear pairing group. Key generation (KeyGen) function is then run to generate the key pairs.

Analysis.
It is pretty evident that the privacy of Bitcoin users are significantly exposed to threat in the blockchain with its public nature. Privacy is still achievable and maintainable to a certain level in bitcoin transaction processing chain by applying appropriate cryptographic primitives to anonymise transactions. In SPPBPS, the privacy-preserving is carried out in the said layer as seen in Figure 1. Users anonymised transactions are then added to the Bitcoin blockchain. The scheme makes use of ECDSA for signature authenticity. Anonymous transaction verification of users is performed by the verifier. Anonymised transactions are sent back to the anonymous users using ZKP protocol through Pederson commitment scheme before broadcasting into the blockchain. Users use their transaction private-key to sign their transactions and are required to generate as many public key pairs as desired. This is in line with the design and operations of Bitcoin, therefore, our scheme is compatible with the Bitcoin system. An adversary trying to have unauthorized access to transactions cannot identify individual transactions due to implementation of a Pederson commitment protocol. This lauds our privacy scheme and, therefore, privacy-preserving requirements are achieved for user transactions. Enhancing user privacy further, a new key pair is required to be generated for each transaction. This keeps the transactions from being linked to particular users. To successfully link users to their transactions, an adversary must have ample knowledge of the transaction to break the commitment by solving the DL hard problem. The formal function definitions for the proposed privacy scheme are as follows: We have as a user valid Bitcoin transaction. The scheme implements zero-knowledge proof through the Pedersen commitment scheme (PCS) [23][24]. Two settings loosely called user procedures and system procedures are carried out in the scheme. In the user procedures, users would generate unique public-key pairs of which the private key is used to claim anonymised transaction back to himself for broadcasting into Bitcoin blockchain using PCS. (1 ): on input being a security paramter, setup outputs public parameters = ( , 1 , 2 , , , e, H); :
2) KeyGen( ): for each user, outputs unique public-key pairs: ( , ) = ( 1 , ); ∈ * , is transaction message and ts is time-stamp to resist replay bout. KeyGen( ) on system procedures faction is run multiple times to output set of unique system publickey pairs and randomly select one to sign transactions collected together as a group to produce the desirable anonymity. A trapdoor which is the public key of the private key pair to be used to countersign transactions is embedded for the recipient.

Evaluation. Threat model.
Assuming an adversary launches an attack on linking input and output addresses to reveal users' real identity to ascertain user's transaction behaviour, by tethering real names to transactions and bitcoin addresses in the blockchain. Historical data passed from the blockchain can also be analysed by an adversary to lunch an offline attack [24][25][26]. We consider as coming from users' wallet. Bitcoin wallet properties can be used in an adversal fashion by an dishonest node to create Bitcoin addresses and transactions. Eve can still be unable to link any transaction to a particular user even if she plays a dishonest node role and participate in our scheme because each user signs his message with his own personal public key. Users then claim their transactions back with their corresponding private key known. Again, all transactions go into the blockchain would have the same counter signature signed with the same secret key in our setting. Hence, our scheme achieves needed On linking input and output addresses to reveal users identities, the authors assume a dishonest node as an adversary. The authors state that if users with bitcoins belonging to the following input addresses = ( 1 , 2 , … , ) and wish to send same to the following output addresses = ( 1 , 2 , … … , ) so that (i) users in receive bitcoins back on their output address , and (2) it is hard to link output addresses thus, only users in know that outputs belong to them. However, inputs and output addresses cam be mapped by a dishonest node to reveal real users identities. Therefore, since mapping is still possible, it is august to anonymise the linkage and our scheme sought to achieve that. protects privacy of users and their transactions. An adversary could be motivated within a space of time to acquire addresses or transactions of users; = { 1 , 2 , … … . . , } with address; = { 1 , 2 , … … . , }. A dishonest node may belong to the Bitcoin network. This is enough motivation for them to link users and their addresses. A commitment to ∈ is by computing 1 = 1 ( , 1 ) = 1 2 1 ∈ ⊂ * ; 1 ∈ * . To prove 1 is a commitment to , prover opens the commitment by revealing and 1 . The prover will be unable to find two values ′ and 2 , with ′ ≠ such that 2 ( ′ , 2 ) = 1 because it could not solve the DLP in , hence this commitment is computationally binding.

Modelling the scheme
Scheme was inspired by PCS, which runs three algorithms: Gen(), Commit() and verify(). The scheme runs committer C, holding secret ∈ to commit to and then receiver R which agrees on = ( 1 , 2 , , , , ); is generator and is the order of . The scheme is defined as follows: Commitment phase: and then sends to C. C also samples 2 ∈ * , and then computes commitment 2 = 2 2 1 ′ and then sends to R.
Verification phase: The pair ( ′ , 2 ) is sent from C to R. R checks if 2 matches 1 , and accepts, otherwise, return ⊥.
Here, only a legitimate user can prove the commitment by solving DLP to reveal the contents of , therefore, privacy is preserved in this setting. ZKP protocol is implemented for users to prove a statement to the verifier without revealing anything about it. Prover P then convinces verifier V that it has knowledge of and 1 of public 1 = 1 ( , 1 ). P randomly chooses ′ ∈ , and compute recommitment value ′ ∈ , and sends 2 = 2 ( ′ , 2 ) to verifier V. Verifier V sends a challenge ∈ * to prover P. Prover P sends = ′ + ( ) and = 2 + 1 ( ) to verifier V. Verifier V accepts if ( , ) = 2 1 . Protocol hides information theoretically. Even given 2 , , , and , a dishonest node or user with infinite computation power is unable to learn anything about . For any * , there exist message ′′ , such that = ′ + = ′′ + * (mod p). Thus ′′ = + ( − * ) . The authors prove that only a legitimate user can reveal the contents of the original message using the secure private key. This could be verified from the equation as follows: From CSignVer ( ,  ,  ), Given , a and counter signature , ℎ ′ = ( ) accept if: ( , 1 ) = ( ( ), ) = (ℎ ′ , ) Thus, proving that: (ℎ ′ , ) = ( ( ), 1 ) ……………… (1) knowing ℎ ′ and . would not be revealed using the general Bitcoin wallet public-key pair in (1).

Conclusion
In this paper, a secure privacy-preserving scheme based on bilinear pairing was presented. The scheme sought to augment users' privacy and achieves anonymity for users and their transactions. We focus on unlinkability and untraceability of users and their transactions in the blockchain ecosystem where bitcoin financial transactions occur and as a secure decentralised append-only ledger to exchange digital currencies. The authors proved that our proposed scheme is robust and can be implemented to preserve users and transaction privacy in the Bitcoin system by theoretical analysis and evaluation. The scheme is proven secure against an adversary to associate offline data to launch any successful attack. We consider the implementation stage in our future work. The scheme shall be enhanced to cater for other privacy settings in the blockchain as a whole.