作者:sethforprivacy
來源:https://sethforprivacy.com/guides/setting-up-a-bitcoin-username/
在密碼貨幣世界裡,最困難的事情之一就是找出能夠重複給同一人支付、無需勞煩他們每次都給出新地址 的辦法。這一用戶體驗障礙背後的核心技術難題,在 Monero 中從一開始就使用 “隱身地址(stealth address)” 解決掉了;而在比特幣中,最近得到越來越多采用的 “靜默支付(Silent Payments)”(本質上就是為比特幣設計的隱身地址)以及 BOLT 12 offer(為閃電網絡設計的可複用且保護隱私的發票)也在技術上解決了問題。
但是,即使你有了一種又可以保持隱私、又可以重複使用的支付方法,別人怎麼找到你呢?他們是給你發信息,讓你給他們一串又長又亂的字符?還是你應該把它粘貼到你的推特個人簡介裡呢?還是說,你應該發到 nostr 網絡中?BIP 353 就嘗試解決這個問題,讓支付信息更容易獲得 且無需信息發佈者運行一個服務器。直接把你的支付信息添加為一個 DNS 條目(準確來說是一個 “文本(TXT)” 記錄,我們下文會詳細說),然後任何支持 BIP353 的錢包就可以安全地解析和驗證支付細節,無需任何人工參與。
本質上,BIP 353 給了每個擁有域名的人設置自定義比特幣用戶名的能力(而且只需點幾下鼠標)。
我應該使用哪種支付信息?
關於比特幣用戶名,一個至關重要的意識是:你 絕不應該 在用戶名中使用標準的比特幣地址或一次性的 BOLT11 發票。將一個標準的比特幣地址作為你的用戶名(公開暴露),將使所有人都能輕易看到 送到這個地址的交易 以及 從這個地址發出的交易,因為你也在迫使給你支付的人都重複使用這個地址(作為你的收款地址)。不應使用 BOLT11 發票的理由則恰好完全相反,BOLT11 發票都是一次性使用的,所以把它設為你的用戶名,你就需要不斷輪換:每當有人給你成功支付一次,你就要換上一個新的發票;這個痛苦的過程需要某種形式的自動化。(譯者注:出於隱私保護的理由,也不應公開暴露 BOLT11 發票,因為它會暴露你用於收款的閃電節點的身份。在隱私性上不如下文要提到的 BOLT12 offer。)
感謝日益得到更多支持的靜默支付和 BOLT12,現如今,在 Cake Wallet、Phoenix Wallet 和 Zeus 這些集成了兩者的錢包中,用戶可以容易生成這兩種分別為鏈上收款和閃電支付設計的可複用支付碼,你只需設置一個靜態的 DNS 記錄,就可以重複獲得支付,沒有人能把你收到的兩筆交易關聯起來。
隱私與安全顧慮
我認為,雖然 DNS 本身不是十全十美,它為用戶體驗帶來的力量可以勝過其缺點。匿名地註冊一個域名、使用保持隱私的支付碼,然後使用 BIP 353 中的 DNSSEC 來保護你免遭最簡單的攻擊,還是非常容易的。話雖這麼說,在建立和使用比特幣用戶名的過程中,還是有一些簡單的提醒,你要牢記:
- 確保使用一個著名且可信任的域名供應商!
- 惡意的域名運營商(或哪怕僅僅是被攻擊的無能服務商)可能會將你的收款細節替換成他們自己的。雖然這是極為罕見的情況,但也是有可能的,而最簡單的解決方案就是隻使用著名的、經過考驗的域名供應商。最著名、可信任且接受比特幣支付的兩個域名供應商是 Njalla(本教程就使用它們)以及 Namecheap 。
- 理想情況下,使用可以提供域名隱私性的域名供應商,以及不要求提供真實身份信息的供應商。
- 絕大部分域名供應商都給你提供了隱藏用來註冊域名的信息(即,姓名、地址、聯繫方式)的選擇,但也有一些供應商默認不提供。Njalla 默認保護你的信息,但 Namecheap 有一個額外的附加選項,你需要 購買/啟用 才能保護你的信息。就目前來看,我覺得它應該會永久免費,但具體來說 Namecheap 未來可能會改變。
- 在用戶名中僅使用保持隱私的支付信息。
- 就像靜默支付的地址和 BOLT12 offer,你的域名也不會改變。雖然這可以提供一種類型的隱私性(防止地址複用、保護你的閃電節點的隱私性),當你在多個平臺上分享同一個域名時,其他人也將知道分享者是同一個人。請確保你的用戶從一開始就是 匿名/準匿名的,跟你的真實身份沒有關聯。
獲得一個靜默支付地址 以及/或者 BOLT12 offer
我會列出三個 app,它們是我最喜歡用來獲得可複用且保持隱私的支付信息的應用,不過,在比特幣生態系統中支持這種功能的 app 數量可能會迎來大爆發!如果你已經在使用以下其中一款錢包,可以跟隨我列出的步驟;如果你用的是別家的應用,那還是選擇你喜歡的應用,跳過這一段。
通過 Cake Wallet 獲得靜默支付地址
- 下載 Cake Wallet(譯者注:如果你不是直接從正式的應用平臺下載 app,請記得驗證簽名)
- 新建一個比特幣錢包
- 備份這套新的種子詞!
- 點擊底部的 “Receive(收款)” 按鈕
- 點擊頂部 “Receive” 圖標旁邊的下拉菜單
- 選擇 “Silent Payment(靜默支付)”
- 複製這個支付碼,然後發送給你自己,以便於在你的電腦上 複製-粘貼 它。要使用 Signal 的 “Note to Self” 這樣的功能。(譯者注:意思是使用安全的通訊方式。使用互聯網的通訊工具來傳輸敏感數據是一種不推薦的做法。原作者在這裡提到的 “Signal” 是一種端到端的加密通訊軟件,理論上可以避免被服務商破譯。但如果你的即時通訊工具沒有端到端加密功能,請一定不要使用這種方式。應該使用 SD 卡/U 盤 或 本地網絡。)
通過 Phoenix Wallet 獲得 BOLT12 Offer
- 下載 Phoenix Wallet
- 完成錢包初始化
- 備份你的新種子詞!
- 點擊底部的 “Receive(收款)” 按鈕
- 點擊 “展示可複用的 QR 碼”
- 複製它,使用 Signal 的 “Note to Self” 或類似功能分享給自己
通過 Zeus 獲得 BOLT12 Offer
- 下載 Zeus
- 建立一個新錢包(要麼快速啟動一個內置的節點,要麼連接到你自己的 CLN 節點)
- 注意,LND 本身還不支持 BOLT12,而且近期看不到支持的跡象,令人遺憾
- 保存你的種子詞(如果有需要的話)
- 在主屏幕的閃電圖標上從左到右滑動
- 點擊 “Pay Codes(支付碼)”
- (如有需要)為這個 BOLT12 支付碼設置一個標籤
- 選擇新的支付碼
- 長按 BOLT12 字符串以複製這個 offer,然後發送給你自己,以便於在電腦上覆制粘貼
獲得一個域名
現在,來到整個流程最難的一步了。為了使用 BIP353,你需要擁有一個域名(比如我的 sethforpricacy.com
),然後才能把這些支付指令放上去。流程還是非常直接的,不過我會帶你有我最喜歡的域名註冊器 Njalla 完全走一遍。這些步驟需要你使用 Tor 瀏覽器,以便在設置域名時獲得多一點匿名性;但如果你認為這沒必要(你也計劃在別的可能關聯到你真實身份的地方使用這個域名),那麼你可以使用常常規的網站。
如果你還沒有,請下載 Tor 瀏覽器
打開 Tor 瀏覽器,訪問
https://njallalafimoej5i4eg7vlnqjvmb6zhdh27qxcatdn647jtwwwui3nad.onion/
搜索你認為有趣的域名,想搜什麼就搜什麼
如果你發現了一個喜歡的域名,就點擊 “Select domain”
選擇 “Check out(結賬)”
創建一個賬戶
- 理想情況下,你應該使用 SimpleLogin(或類似工具),使用一個電子郵箱暱稱(而不是真實的電子郵箱地址)
- 此外,你應該使用一個強度高、唯一的口令。可以使用 Bitwarden 這樣的工具
進入購物清單後,點擊右下角的 “Add funds(充值)” 按鈕
使用你喜歡的支付方式充值
- 我會強烈建議你使用保持隱私的支付手段,比如 Monero(或者混幣之後的比特幣),以保證域名跟你之間沒有金融上的聯繫
資金到賬之後,選擇 “Pay Now(現在支付)”
這就完成了!現在,你是一個新域名的主人了,你可以使用 BIP 353 比特幣用戶名(以及域名的其它功能)了!
建立你的比特幣用戶名
擁有域名之後,就到了設置你的比特幣用戶名的時候了。切記,你要先創建一個靜默支付地址,或者 BOLT12 Offer。先登錄你之前建好的 Njalla 賬戶(或者你選擇的別的域名供應商的管理界面),然後再開始。
因為 Namechaep 是另一個非常流行的域名供應商,我也會在下面列出使用 Namcheap 的配置流程。
在 Njalla 上創建你的比特幣用戶名
跳轉到 “Domains(域名)” 頁面
點擊你要設置的域名右邊的 “Manage(管理)” 按鈕
選擇頁面左邊的 “Add record(添加記錄)” 按鈕
將 “Type(類型)” 下拉菜單中的 “A” 改成 “TXT”
在 “Name(姓名)” 字段,輸入
username.user._bitcoin-payment
,記得把這裡的username
改成你喜歡的詞(比如tips
)- 這個
username
就將成為你的 BIP 353 地址位於@域名.com
前面的部分
- 這個
在 “Content(內容)”字段,你需要創建特定格式的字符串(由 BIP 21 指定)
如果你只想使用 BOLT12 Offer,輸入下列字符,並將 “REPLACE_ME” 換成你的 BOLT12 Offer(你從 Phoenix 或 Zeus 中得到的、以
lno
開頭的字符串)bitcoin:?lno=REPLACE_ME
- 例如:
bitcoin:?lno=lno1pgqpvggzrdhszmg5yafguxmkm779vd8jftxskjyadjdrallmq8uxfjdjfyaq
如果你只想使用靜默支付,輸入下列字符,並將 “REPLACE_ME” 換成你的靜默支付地址(你從 Cake Wallet 中獲得的
sp1
開頭的字符串)bitcoin:?sp=REPLACE_ME
- 例如:
bitcoin:?sp=sp1qqweplq6ylpfrzuq6hfznzmv28djsraupudz0s0dclyt8erh70pgwxqkz2ydatksrdzf770umsntsmcjp4kcz7jqu03jeszh0gdmpjzmrf5u4zh0c
如果你想同時使用兩者,那麼輸入以下字符,並將 “REPLACE_ME_BOLT_12” 替換成你的 BOLT12 offer,將 “REPLACE_ME_SP” 替換成你的靜默支付地址
bitcoin:?lno=REPLACE_ME_BOLT_12&sp=REPLACE_ME_SP
- 例如:
bitcoin:?lno=lno1pgqpvggzrdhszmg5yafguxmkm779vd8jftxskjyadjdrallmq8uxfjdjfyaq&sp=sp1qqweplq6ylpfrzuq6hfznzmv28djsraupudz0s0dclyt8erh70pgwxqkz2ydatksrdzf770umsntsmcjp4kcz7jqu03jeszh0gdmpjzmrf5u4zh0c
點擊右邊的 “Add(添加)” 按鈕
跳轉到 “DNSSEC” 頁面
選擇 “啟用 DNSSEC”
- DNSSEC 是一種協議,可以保證除了你和正式的 DNS 服務器之外,沒人能替換你的 TXT 記錄,這是 BIP353 的關鍵安全錯許昌。沒有它,你的用戶名就無從談起!
這就是全部啦!現在,你應該可以用你的新的用戶名來收取支付啦,它的形式是 “username@domain.com” 這樣的,在我們這裡,是 tips@bip353.com
。
在 Namecheap 上創建你的比特幣用戶名
登錄你的管理面板
點擊你的域名右邊的 “Manage(管理)” 按鈕
選擇頁面頂部右邊的 “Advanced DNS(高級 DNS)” 頁面
選擇 “Host Records(託管記錄)” 細分選項的 “Add new record(添加新記錄)” 功能
將下拉列表中的 “A record” 改為 “TXT record”
在 “Host(託管)” 字段,輸入
username.user._bitcoin-payment
,記得把這裡的username
改成你喜歡的詞(比如tips
)- 這個
username
就將成為你的 BIP 353 地址位於@域名.com
前面的部分
- 這個
在 “Content(內容)”字段,你需要創建特定格式的字符串(由 BIP 21 指定)
如果你只想使用 BOLT12 Offer,輸入下列字符,並將 “REPLACE_ME” 換成你的 BOLT12 Offer(你從 Phoenix 或 Zeus 中得到的、以
lno
開頭的字符串)bitcoin:?lno=REPLACE_ME
- 例如:
bitcoin:?lno=lno1pgqpvggzrdhszmg5yafguxmkm779vd8jftxskjyadjdrallmq8uxfjdjfyaq
如果你只想使用靜默支付,輸入下列字符,並將 “REPLACE_ME” 換成你的靜默支付地址(你從 Cake Wallet 中獲得的
sp1
開頭的字符串)bitcoin:?sp=REPLACE_ME
- 例如:
bitcoin:?sp=sp1qqweplq6ylpfrzuq6hfznzmv28djsraupudz0s0dclyt8erh70pgwxqkz2ydatksrdzf770umsntsmcjp4kcz7jqu03jeszh0gdmpjzmrf5u4zh0c
如果你想同時使用兩者,那麼輸入以下字符,並將 “REPLACE_ME_BOLT_12” 替換成你的 BOLT12 offer,將 “REPLACE_ME_SP” 替換成你的靜默支付地址
bitcoin:?lno=REPLACE_ME_BOLT_12&sp=REPLACE_ME_SP
- 例如:
bitcoin:?lno=lno1pgqpvggzrdhszmg5yafguxmkm779vd8jftxskjyadjdrallmq8uxfjdjfyaq&sp=sp1qqweplq6ylpfrzuq6hfznzmv28djsraupudz0s0dclyt8erh70pgwxqkz2ydatksrdzf770umsntsmcjp4kcz7jqu03jeszh0gdmpjzmrf5u4zh0c
點擊頁面右邊的綠色勾,保存內容
確保 “Host Records” 項下的 DNSSEC 功能啟用了
測試你的新用戶名
最好的工具是由 TheBlueMatt(BIP353 的作者)編寫的。
跳轉到 satsto.me
在文本框裡輸入你的新的 username@domain.com
- (在我這裡是
tips@bip353.com
)
- (在我這裡是
看看解析出來的支付細節對不對
你也可以用已經支持 BIP 353 的應用(比如 Phoenix Wallet)測試看看。
Monero 用戶名
如果你只使用 Monero,有一個已經受到支持的、非常相似的協議,叫做 Open Alias。(略)
結論
看到 BIP 353 用戶名協議的採用在增加,我非常激動,因為它讓可複用且保持隱私的支付手段更易於找尋和使用。希望這份教程能幫助更多人建立自己的用戶名並傳播出去!如果你覺得這份指南還是太難了(或者你就是不想處理跟域名相關的東西),可以看看 twelve.cash ,一個神奇(但可信任!)的服務。
如果你對這份指南有任何疑問,或希望尋找某個方面的更多信息,請聯繫我。
(完)