Bytecoin’s anonymity has been one of the most sought-after features of blockchain technology since its creation. It allows users to facilitate anonymous transactions without affecting blockchain speed or transparency. But in order to be successful and adoptable, blockchain technology has to permit easy third-party integration, like exchanges or merchants. Bytecoin’s Payment ID is a feature designed to do exactly that. It enables receivers of transactions to easily infer its sender without compromising their privacy. Let’s examine this feature and its future prospects.

Payment ID, a solution

Whenever an exchange or a merchant receives a transaction, there has to be some way of knowing who made it. With Bitcoin, for instance, it is easy: the sender has to disclose his address to the receiver. However, this defies the core principle of blockchain anonymity.

In order to resolve this paradox, Bytcoin developers have designed Payment ID, a piece of information that is passed along with the transaction to identify who it was made by. Behind the scenes it is a 32 byte string in the body of transaction. The following pictures illustrate how it fits in the BCN deposit process.

First of all, whenever the user wants to make a deposit, an exchange (for the purpose of illustration — it could be any entity) generates a unique identifier for users’ TXs and passes it to them:

Fig. 1

The user then adds this unique identifier to their TXs as a Payment ID and send them:

Fig. 2

When an exchange receives the TXs, it can correlate the TXs to the users’ account on the exchange without the need to know their addresses.

Fig. 3

Current situation and prospects

Currently, Payment ID is actively used by Bytecoin adopters throughout the community. However, it has one major drawback: some users forget to fill in the Payment ID field. As a result, their money arrives to the exchange itself without any information regarding the recipient.

To provide a simpler transfer workflow for Bytecoin users, it is recommended to generate a new address for each user’s new transaction. It is a solution that requires some changes on the merchant’s part but results in a fool-proof mechanism for transferring money.

Some exchanges are still using Payment ID causing confusion among users. In addition, if one exchange does not provide a Payment ID field on withdrawal, a user cannot transfer their money to another merchant, who still uses it. To avoid this inconvenience, we encourage all merchants to opt for generating new addresses for every transaction.