Andrey Sergeenkov

@sergeenkov

Reusable Payment Codes — the Secret Ingredient to a User-Friendly Crypto Wallet?

Don’t you ever get annoyed having to copy and paste crypto wallet addresses whenever you need to send or receive money? Sure, wallets have gone a long way towards better usability: for example, you can now restore your wallet from a mnemonic seed phrase. However, those long hexadecimal address strings are still with us… But not for long.

BIP47 Payment Tunnel Visualization

In 2016, blockchain engineer Justus Ranvier formulated what is known as BIP-47 (Bitcoin Improvement Proposal no. 47) — a mechanism designed to make recurrent payments between users more intuitive. Think of Google Pay, PayPal or any other payment app that allows you to send money to someone in your contact list. In such apps, all you need to do is select a person among your contacts, enter the desired amount, click on “Send”, and perhaps verify your payment in some way.

Normally, when you send funds to a person for the first time, you need to add their payment details: a credit card or bank account number or just their email address. You surely don’t need to copy and paste a new lengthy address line every time. BIP-47 works in a similar way.

Here’s an explanation from Kirill Sosnovy, founder and CEO of Billion, a mobile wallet with integrated Payment Codes:

Every user of a BIP-47-enabled crypto wallet has their own unique Reusable Payment Code. And yes, this code looks like one of those pesky hexadecimal addresses, but it’s not an actual wallet address. Instead, it’s a code that you can safely publish anywhere on the Internet to receive money from people — only they won’t be able to gain any information about your wallet from the code.

Whenever someone uses your payment code to make a transfer, your wallet will in fact generate a new address, but it will remain completely private. This will solve a long-standing issue known as address reuse when the same address is used repeatedly for sending and receiving payments in Bitcoins.

A third party can gain access to the whole transaction history for a certain address if you keep re-using it, learning not just how much you sent but also how much you received. Understandably, a conman or a criminal could find numerous ways to use that information against you.

Another great advantage of Reusable Payment Codes is that they let you build contact lists, just like you do in any other app. You can save other users’ payment codes under their names or aliases and user pictures, so that next time you want to make a transfer you’ll just need to search for “Johnny D.”, or “Katie”, or what have you. This will make crypto wallet interfaces much more “human” and user-friendly, attracting those users who are reluctant to join the crypto space because of all the “technical stuff”.

The team of Billion states:

A single address for all cryptocurrencies will allow you to forget about intermediaries once and for all. No need to copy wallet addresses for every transaction.

So BIP-47 protects your privacy and eliminates the need to generate and copy a new address for every transaction. What about the costs? Like most good things in this world, Reusable Payment Codes don’t come for free — though they are still very cheap to use. Whenever you want to transact with a new person (add them to your contact list, if you like), you’ll need to establish a so-called payment tunnel first. To do that, a special notification transaction is needed — it doesn’t transfer any money per se, it only creates a connection, telling your wallet what it needs to look for. Every notification transaction is subject to the standard blockchain fee, paid by the user who initiates the creation of the payment tunnel. This is arguably the only real inconvenience associated with Reusable Payment Codes — luckily, you only have to do it once for each of your contacts, and all the complexities are hidden under the hood. That said, the first payment remains indistinguishable from all subsequent ones.

The necessity to do an additional paid transaction means that BIP-47 works best in situations where two parties transact with each other many times. Examples, where payment codes are convenient, include companies paying salaries in crypto (which can happen sooner than you think), projects and charities accepting regular donations, freelancers doing jobs for loyal clients and friends who are already into the crypto economy.

If Reusable Payment Codes are so great, why do so few wallets feature them? The answer is, the technology is very young. Two years is a lot of time for the crypto world that faces markets, yet it’s nothing if you ask a developer. Moreover, a scaling war was raging inside the Bitcoin community when the BIP47 proposal emerged, so the idea passed almost unnoticed at first.

So far, only three wallets have already implemented Payment Codes:

  1. Billion (iOS)
  2. Samourai (Android)
  3. Stash (Android)

In the next couple of years, we will likely see a large number of wallets supporting Payment Codes, but the ones that have already implemented it can be expected to lead the race.

More by Andrey Sergeenkov

Topics of interest

More Related Stories