Create your Bitcoin "Username"

This article is machine translated
Show original

Author:sethforprivacy

Source: https://sethforprivacy.com/guides/setting-up-a-bitcoin-username/

One of the hardest things in the cryptocurrency world is figuring out how to pay the same person repeatedly without asking them to give a new address each time . The core technical difficulty behind this user experience barrier was solved in Monero from the beginning with the use of "stealth addresses"; in Bitcoin, the recently increasingly adopted " Silent Payments " (essentially stealth addresses designed for Bitcoin) and the BOLT 12 offer (reusable and privacy-preserving invoices designed for the Lightning Network) also technically solve the problem.

But even if you have a way to make payments that are both private and reusable, how do people find you? Do they message you and ask you to give them a long, gibberish string of characters? Or do you paste it into your Twitter bio? Or do you post it to the nostr network? BIP 353 attempts to solve this problem by making payment information more accessible without requiring the publisher to run a server . Simply add your payment information as a DNS entry (a "text (TXT)" record to be exact, which we'll talk about below), and then any wallet that supports BIP353 can securely parse and verify the payment details without any human involvement.

Essentially, BIP 353 gives anyone with a domain the ability to set up a custom Bitcoin username with just a few clicks of the mouse.

Which payment information should I use?

One crucial thing to realize about Bitcoin usernames is that you should never use a standard Bitcoin address or a one-time BOLT11 invoice as your username. Using a standard Bitcoin address as your username (exposed publicly) will make it easy for everyone to see transactions sent to and from this address, because you are also forcing anyone who pays you to reuse this address (as your receiving address). The reason for not using BOLT11 invoices is exactly the opposite. BOLT11 invoices are one-time use, so if you set it as your username, you will need to rotate it constantly: every time someone successfully pays you, you have to replace it with a new invoice; this painful process needs to be automated in some form. (Translator's note: For privacy reasons, BOLT11 invoices should not be exposed publicly because it reveals the identity of the lightning node you use to receive payments. It is not as private as the BOLT12 offer mentioned below.)

Thanks to the increasing support for silent payments and BOLT12, now in wallets such as Cake Wallet , Phoenix Wallet and Zeus that integrate both, users can easily generate reusable payment codes designed for on-chain payments and lightning payments respectively. You only need to set up a static DNS record to get payments repeatedly, and no one can associate the two transactions you received.

Privacy and security concerns

I think that while DNS itself isn’t perfect, the strengths it brings to the user experience outweigh its shortcomings. It’s pretty easy to register a domain anonymously, use a payment code that stays private, and then use DNSSEC in BIP 353 to protect you from even the simplest attacks. That being said, there are some simple reminders to keep in mind when setting up and using a Bitcoin username:

  1. Make sure to use a well-known and trusted domain name provider!
    1. A malicious domain name operator (or even just an incompetent service provider that has been hacked) could replace your payment details with their own. While this is extremely rare, it is possible, and the easiest solution is to only use well-known, tried and tested domain name providers. Two of the most well-known, trusted domain name providers that accept Bitcoin payments are Njalla (which we'll use for this tutorial) and Namecheap.
  2. Ideally, use a domain name provider that provides domain privacy and does not ask for real-name information.
    1. Most domain providers give you the option to hide the information you use to register a domain (i.e. name, address, contact information), but some don't by default. Njalla protects your information by default, but Namecheap has an additional add-on option that you need to purchase/enable to protect your information. At this point, I think it will be free forever, but Namecheap specifically may change in the future.
  3. Only use payment information that you want to keep private in your username.
  4. Just like silent payment addresses and BOLT12 offers, your domain name will not change. While this can provide a type of privacy (preventing address reuse and protecting the privacy of your lightning node), when you share the same domain name on multiple platforms, others will also know that the person sharing it is the same person . Please make sure your users are anonymous/quasi-anonymous from the beginning and have no connection to your real identity.

Get a silent payment address and/or BOLT12 offer

I’ll list three of my favorite apps for getting reusable and private payment information, but the number of apps that support this functionality in the Bitcoin ecosystem is likely to explode! If you’re already using one of the wallets below, you can follow the steps I outline; if you’re using another app, just pick your favorite and skip this section.

Get a silent payment address through Cake Wallet

  1. Download Cake Wallet
  2. Create a new Bitcoin wallet
  3. Back up this new set of seed words!
  4. Click the "Receive" button at the bottom
  5. Click the drop-down menu next to the "Receive" icon at the top
  6. Select "Silent Payment"
  7. Copy the payment code and send it to yourself so that you can copy-paste it on your computer. Use a feature like Signal's "Note to Self". (Translator's note: It means using a secure communication method. Using Internet communication tools to transmit sensitive data is not a recommended practice. The "Signal" mentioned by the original author here is an end-to-end encrypted communication software, which can theoretically avoid being deciphered by the service provider. But if your instant messaging tool does not have end-to-end encryption, please do not use this method. You should use an SD card/U disk or a local network.)

Get BOLT12 Offer via Phoenix Wallet

  1. Download Phoenix Wallet
  2. Complete wallet initialization
  3. Back up your new seed words!
  4. Click the "Receive" button at the bottom
  5. Click "Show reusable QR code"
  6. Copy it and share it to yourself using Signal's "Note to Self" or similar feature

Get BOLT12 Offer via Zeus

  1. Download Zeus
  2. Set up a new wallet (either quickly start a built-in node, or connect to your own CLN node)
    1. Note that LND itself does not support BOLT12 yet, and there is no sign of support in the near future, which is regrettable.
  3. Save your seed words (if needed)
  4. Swipe from left to right on the lightning icon on the home screen
  5. Click on "Pay Codes"
  6. (If necessary) Set a label for this BOLT12 payment code
  7. Select a new payment code
  8. Press and hold the BOLT12 string to copy the offer and send it to yourself for easy copy and paste on your computer

Get a domain name

Now, here comes the hardest part of the process. In order to use BIP353, you need to own a domain (like mine, sethforpricacy.com ) and then put these payment instructions on it. The process is pretty straight forward, but I'll walk you through it using my favorite domain registrar, Njalla . These steps require you to use the Tor browser to gain a little more anonymity when setting up your domain, but if you don't think that's necessary (and you plan to use this domain somewhere else that could be linked to your real identity), then you can use a regular website.

  1. If you haven't already, download the Tor Browser

  2. Open Tor Browser and visit https://njallalafimoej5i4eg7vlnqjvmb6zhdh27qxcatdn647jtwwwui3nad.onion/

  3. Search for domain names you think are interesting, just search for whatever you want

    njalla-1

  4. If you find a domain name you like, click "Select domain"

    njalla-2

  5. Select "Check out"

  6. Create an account

    1. Ideally, you should use SimpleLogin (or a similar tool) and use an email nickname (rather than a real email address)
    2. Additionally, you should use a strong, unique password. You can use a tool like Bitwarden

    img

  7. Once in the shopping list, click the "Add funds" button in the lower right corner

    njalla-4

  8. Top up using your preferred payment method

    1. I would strongly recommend using a private payment method such as Monero (or Bitcoin after mixing) to ensure that there is no financial connection between the domain name and you.

    njalla-5

  9. Once the funds have arrived, select "Pay Now"

That’s it! You are now the owner of a new domain and can use BIP 353 Bitcoin usernames (and other domain name features)!

Create your Bitcoin username

Once you have your domain, it's time to set up your Bitcoin username. Remember, you need to create a silent payment address, or BOLT12 Offer first. Log in to your previously created Njalla account (or the management interface of your chosen domain provider) and get started.

Because Namechaep is another very popular domain name provider, I will also list the configuration process using Namcheap below.

Create your Bitcoin username on Njalla

  1. Go to the Domains page

  2. Click the "Manage" button to the right of the domain you want to set up

  3. Select the "Add record" button on the left side of the page

  4. Change the "A" in the "Type" drop-down menu to "TXT"

  5. In the "Name" field, enter username.user._bitcoin-payment . Remember to change username to your favorite word (such as tips )

    1. This username will become the portion of your BIP 353 address that precedes @域名.com
  6. In the "Content" field, you need to create a string in a specific format (specified by BIP 21 )

    1. If you only want to use the BOLT12 Offer, enter the following and replace "REPLACE_ME" with your BOLT12 Offer (the string starting with lno that you got from Phoenix or Zeus)

      1. bitcoin:?lno=REPLACE_ME
      2. For example: bitcoin:?lno=lno1pgqpvggzrdhszmg5yafguxmkm779vd8jftxskjyadjdrallmq8uxfjdjfyaq
    2. If you only want to use silent payment, enter the following characters and replace "REPLACE_ME" with your silent payment address (the string starting with sp1 you got from Cake Wallet)

      1. bitcoin:?sp=REPLACE_ME
      2. For example: bitcoin:?sp=sp1qqweplq6ylpfrzuq6hfznzmv28djsraupudz0s0dclyt8erh70pgwxqkz2ydatksrdzf770umsntsmcjp4kcz7jqu03jeszh0gdmpjzmrf5u4zh0c
    3. If you want to use both, enter the following and replace “REPLACE_ME_BOLT_12” with your BOLT12 offer and “REPLACE_ME_SP” with your silent payment address

      1. bitcoin:?lno=REPLACE_ME_BOLT_12&sp=REPLACE_ME_SP
      2. For example: bitcoin:?lno=lno1pgqpvggzrdhszmg5yafguxmkm779vd8jftxskjyadjdrallmq8uxfjdjfyaq&sp=sp1qqweplq6ylpfrzuq6hfznzmv28djsraupudz0s0dclyt8erh70pgwxqkz2ydatksrdzf770umsntsmcjp4kcz7jqu03jeszh0gdmpjzmrf5u4zh0c

      njalla-7

  7. Click the "Add" button on the right

  8. Jump to the DNSSEC page

  9. Select "Enable DNSSEC"

    1. DNSSEC is a protocol that ensures that no one can replace your TXT record except you and the official DNS server, which is the key security feature of BIP353. Without it, your username is useless!

That's all! You should now be able to receive payments using your new username, which will be in the form of " username@domain.com ", in our case, tips@bip353.com .

Create your Bitcoin username on Namecheap

  1. Log into your admin panel

  2. Click the "Manage" button to the right of your domain

  3. Select "Advanced DNS" on the top right of the page

    namecheap-1

  4. Select the “Add new record” feature from the “Host Records” segment

    namecheap-2

  5. Change "A record" in the drop-down list to "TXT record"

  6. In the "Host" field, enter username.user._bitcoin-payment . Remember to change username here to your favorite word (such as tips )

    1. This username will become the portion of your BIP 353 address that precedes @域名.com
  7. In the "Content" field, you need to create a string in a specific format (specified by BIP 21 )

    1. If you only want to use the BOLT12 Offer, enter the following and replace "REPLACE_ME" with your BOLT12 Offer (the string starting with lno that you got from Phoenix or Zeus)

      1. bitcoin:?lno=REPLACE_ME
      2. For example: bitcoin:?lno=lno1pgqpvggzrdhszmg5yafguxmkm779vd8jftxskjyadjdrallmq8uxfjdjfyaq
    2. If you only want to use silent payment, enter the following characters and replace "REPLACE_ME" with your silent payment address (the string starting with sp1 you got from Cake Wallet)

      1. bitcoin:?sp=REPLACE_ME
      2. For example: bitcoin:?sp=sp1qqweplq6ylpfrzuq6hfznzmv28djsraupudz0s0dclyt8erh70pgwxqkz2ydatksrdzf770umsntsmcjp4kcz7jqu03jeszh0gdmpjzmrf5u4zh0c
    3. If you want to use both, enter the following and replace “REPLACE_ME_BOLT_12” with your BOLT12 offer and “REPLACE_ME_SP” with your silent payment address

      1. bitcoin:?lno=REPLACE_ME_BOLT_12&sp=REPLACE_ME_SP
      2. For example: bitcoin:?lno=lno1pgqpvggzrdhszmg5yafguxmkm779vd8jftxskjyadjdrallmq8uxfjdjfyaq&sp=sp1qqweplq6ylpfrzuq6hfznzmv28djsraupudz0s0dclyt8erh70pgwxqkz2ydatksrdzf770umsntsmcjp4kcz7jqu03jeszh0gdmpjzmrf5u4zh0c

    namecheap-3

  8. Click the green check mark on the right side of the page to save the content

  9. Make sure DNSSEC is enabled under Host Records

    namecheap-4

Test your new username

The best tool is the one written by TheBlueMatt (author of BIP353).

  1. Go to satsto.me

  2. Enter your new username@domain.com in the text box

    1. (In my case it’s tips@bip353.com )
  3. Check if the parsed payment details are correct

    satstome

You can also test this with an application that already supports BIP 353 (such as Phoenix Wallet).

Monero Username

If you only use Monero, there is a very similar protocol that is already supported called Open Alias.

in conclusion

I'm excited to see adoption of the BIP 353 Username Protocol grow, as it makes reusable, private payment methods easier to find and use. Hopefully this tutorial helps more people create their own usernames and spread the word! If this guide still seems too difficult for you (or you just don't want to deal with domain names), check out twelve.cash , an amazing (but trustworthy!) service.

If you have any questions about this guide, or would like more information on an area, please contact me .

(over)

Source
Disclaimer: The content above is only the author's opinion which does not represent any position of Followin, and is not intended as, and shall not be understood or construed as, investment advice from Followin.
Like
Add to Favorites
Comments