Nostr 的隱私悖論與對比特幣隱私的改善

雖然Nostr 並不是一個隱私協議,但它可能為比特幣的隱私帶來潛在改進。

原文標題:《THE NOSTR PRIVACY PARADOX

撰文:Wendy

編譯:DAOrayaki

Nostr,全稱「通過中繼傳輸的筆記和其他內容」,是由閃電網絡開發者fiatjaf 於2021 年開發的一種新的通信協議,它是由LNBits 開發者Ben Arc 的一個名為Diagon Alley 的完全去中心化市場的嘗試發展而來。與其他通信解決方案不同,大多數通過啞客戶端(dumb client)和智能服務器運作,Nostr 提供了智能客戶端和啞服務器(dumb server),從而提高了用戶的抗審查能力。

在Nostr 中,所有數據都存儲在用戶本地,僅通過中繼進行分發,而不是存儲在像Twitter 這樣的中央服務器上。在社交媒體的情況下,Nostr 增加了抗審查能力,因為用戶可以完全擁有自己的內容和個人資料。鑑於近期圍繞Twitter 的審查政策引發的爭議,用戶開始向聯邦通信解決方案Mastodon 遷移。然而,在Mastodon 中,對內容和個人資料的所有權掌握在用戶註冊的Mastodon 服務器的運營者手中。雖然像Mastodon 這樣的聯邦系統提供了比中央服務器更多的抗審查能力,因為用戶可以在遭到審查時簡單地註冊到另一個服務器,但也有人對Mastodon 可能通過服務器所有者實施審查提出了批評。

2022 年12 月,Nostr 社區獲得了Twitter 創始人傑克·多爾西提供的14 BTC 的資助,這為該協議帶來了前所未有的關注。隨著建立在Nostr 上的應用不斷發展,移動客戶端Damus 在中國iOS 應用商店的社交網絡類別中排名第一,並因此被禁止。為了遏制#MarchOffTwitter 運動,Twitter CEO 埃隆·馬斯克很快禁止發布與Nostr 相關的內容,並禁止其他第三方平台(如Instagram),但沒有取得成功。

儘管Nostr 本身並不是一個隱私協議——默認情況下,客戶端會將用戶的IP 地址洩露給中繼——但Nostr 協議可能會提高比特幣的隱私性。

提升BIP47 的隱私性和可擴展性

BIP47 是一項比特幣改進提案,旨在為重複支付創建可重複使用的支付代碼,同時保護用戶的隱私。如果沒有BIP47,為了避免地址重用,用戶需要手動費力地生成新地址。當用戶將一個地址重複用於交易時,任何觀察區塊鏈的人都可以輕鬆將所有屬於該地址的交易聚合起來,形成用戶的付款歷史和淨值圖。因此,在比特幣中,防止地址重用是隱私的最佳實踐,並且已經在許多比特幣錢包中默認實施。然而,當用戶試圖與另一方建立重複支付關係,例如在商戶和客戶之間的關係時,頻繁生成新地址可能會不方便。

通過BIP47,客戶可以為商戶生成一組用於支付的地址。如果客戶每月購買產品,商戶每月都需要向客戶發送一個地址。通過BIP47,客戶為商戶創建了一個專用的支付代碼,類似於擴展公鑰。這允許客戶自動生成用於商戶的新地址,而不需要商戶為客戶創建地址。

BIP47 使用通知地址,這些地址由HD 錢包監控以獲取輸出。在通知交易中,商戶通過OP_RETURN 字段向客戶發送盲化的公鑰和鏈碼,以及一個共享密鑰,用於在公共區塊鏈上保持共享地址的私密性。由於比特幣網絡的架構,這種交換會產生幾個問題。前兩個問題是經濟問題:一個通知交易由80 個字節組成,在比特幣網絡的交易費高時,對用戶來說可能變得昂貴。此外,通知交易會創建無法發送的輸出,隨著時間的推移會使UTXO 集膨脹。這增加了比特幣節點的計算負載,因為它們目前需要存儲整個UTXO 集,即每個未用作新輸入以確保交易有效的比特幣輸出。

通知交易會創建所謂的「有毒找零」。當用戶從通知交易中收到找零並將其支付給第三方時,任何觀察區塊鏈的人都能夠將用戶的重複支付與非重複支付進行關聯,即使地址沒有重用。一個通知地址每個錢包只存在一次。如果一個商戶希望與10 個客戶建立重複支付關係,任何觀察區塊鏈的人都能夠了解到商戶的客戶基礎,因為所有10 個客戶都需要為商戶創建到同一個通知地址的通知交易。

與其使用通知交易在商戶和客戶之間交換支付代碼,支付代碼可以通過Nostr 進行交換。與其他通信方法不同,Nostr 適用於交換BIP47 支付代碼,因為不存在可能對消息交換進行審查的中央機構。同時,Nostr 上的所有直接消息默認都是加密的,無需計算共享密鑰。通過通過Nostr 使用BIP47,用戶可以避免通過無法花費的輸出創建UTXO 集的膨脹,並通過避免有毒找零和通知地址的重複使用來消除重複支付與非重複支付之間的關聯,以及通過避免公開客戶基礎來消除客戶基礎的發布。

*注意:通過實施UTreeXO,可能會在未來消除比特幣節點存儲整個當前UTXO 集的需要。 UTreeXO 將證明交易是否使用有效的UTXO 的負擔轉移給UTXO 的所有者,將存儲需求從幾個GB 減少到幾KB。 *

Nostr 支付端點

在比特幣中,區塊鏈分析服務使用「共同輸入擁有權」這個啟發式規則將交易映射到身份。根據這個規則,包含不同公鑰作為輸入的交易被分類為屬於同一個人。由於比特幣協議採用基於UTXO 的架構,通過該架構,交易的輸入和輸出是相互關聯的,因此比特幣協議也容易受到子集求和分析的影響。在子集求和分析中,攻擊者能夠計算出輸入和輸出屬於同一實體的概率,即使不同的公鑰被用作一個交易的輸入。例如,如果一筆交易的輸入是1、4、7、23 和6,輸出是5 和36,就可以推斷出輸入1 和4 以及輸入7、23 和6 屬於同一個實體。

來源:2021 年《加密貨幣交易中的知識發現:一項調查》作者:Xia Fan Lu 和Xin-Jiang Jang

Pay-to-EndPoint(P2EP)是對中本聰的Pay-to-IP(P2IP)進行隱私保護的重新設計,編碼進原始比特幣客戶端中。 P2EP 交易的一種形式是PayJoin 交易,旨在打破共同輸入擁有權的啟發式規則。在PayJoin 交易中,發送方和接收方都提供輸入以打破共同輸入的啟發式規則。使用PayJoins,用戶可以通過任何通信渠道(如Tor Onion 作為終點)交換有關將用作輸入的UTXOs 的信息,以構建部分簽名的比特幣交易(PSBT)。一旦雙方同意條款並簽署交易,PayJoin 交易在區塊鏈上看起來就像任何其他比特幣交易一樣。由於涉及方同時扮演發送方和接收方的角色,PayJoin 交易不僅打破了共同擁有權的啟發式規則,還打破了子集求和分析:各方可以提供輸入為3 和5,而交易生成的輸出為6 和2。

來源:Adam Fiscor 的《Pay To EndPoint》,2018 年

問題:PayJoin 交易的協調相當複雜,因為參與者必須同時在線,無論是使用明網域名還是Tor Onion 終點。如果用戶發起了一個P2EP 交易,例如關閉了他們的計算機或者網絡連接中斷,交易就無法進行通信。在Nostr 中,通信是異步的:用戶在網絡連接恢復後從中繼獲取信息。通過使用Nostr 密鑰而不是Tor Onion 作為P2EP 交易的終點,可以更容易地協調P2EP 交易。

另一個P2EP 的實現是備受爭議的LNURL。通過LNURL,用戶無需為每個交易繁瑣地生成新的發票,而是可以接收一個指向Web 服務器的靜態終點,自動生成新的發票。然而,由於Web 服務器依賴全局域名服務(DNS),使用LNURL 的用戶不可避免地向託管提供商透露了他們的身份,如果沒有採取適當的預防措施,還會向收款方透露他們的IP 地址。廣泛採用LNURL 將對閃電網絡的匿名性造成損害。用戶可以使用Nostr 密鑰作為LNURL 交易的終點,以隱藏他們的身份,而不是使用Web 服務器作為LNURL 的終點。

Nostr 用於CoinJoin

雖然PayJoin 很好地打破了共同所有權啟發式和子集和分析,但PayJoin 無法為發送方和接收方提供對合作方的隱私保護。 PayJoin 實質上是兩方CoinJoin,限於兩個參與者,這意味著發送方和接收方都知道自己的輸入和輸出,使其合作夥伴的輸入和輸出可識別。除非使用CoinJoined 交易來促成PayJoin,否則用戶有洩露其錢包餘額以及過去和未來交易給PayJoin 合作夥伴的風險。

在像Wasabi Wallet 的CoinJoin 協調協議(WabiSabi)這樣的匿名金額憑證系統中,Nostr 密鑰可以作為協調CoinJoin 交易的通信終點。這使得CoinJoin 交易的發送方和接收方可以交換參與CoinJoin 輪次所需的憑證,從而在CoinJoin 中實現一種離散支付形式。通過在CoinJoins 中使用Nostr 密鑰作為終點,合作方在人群中隱藏,對其對手的餘額和交易保持不知情。同時,使用Nostr 密鑰作為CoinJoin 交易的終點有助於PayJoin 用戶節省費用,通過在CoinJoin 中直接進行支付,而不是通過CoinJoin 來促進支付。

Nostr 在CoinJoins 中的另一個用途是協調者的發現。雖然大多數CoinJoin 協調者在Tor 後面運行以掩蓋CoinJoin 參與者的身份,但用戶目前無法輕鬆地發現新的協調者,除非是JoinMarket(面向更高級的CoinJoin 用戶的CoinJoin 市場)。雖然CoinJoin 用戶可以向Wasabi Wallet 添加自定義協調者(在後台交換URL 一樣簡單),但由於缺乏發布平台,沒有辦法自動更新協調者的過程。因此,為了發現新的協調者,用戶必須手動搜索社交媒體和論壇(如Reddit 或Twitter)以添加協調者。然而,通過社交媒體或論壇發布協調者服務可能會對協調提供者構成風險,這取決於服務所應用的政策,因為某些頁面可能會輕易關閉。

如果Tor 是匿名中繼服務器,即一種在同行之間促進匿名轉發和接收消息的協議,Nostr 可以充當匿名公告板。 CoinJoin 協調者可以通過Nostr 事件類型發布他們的服務,而CoinJoin 錢包可以啟用自動從這些中繼服務器中獲取信息並在其客戶端中顯示。通過Nostr 廣播協調器服務器,例如通過BTCPay 的Servers CoinJoin 插件和在基於閃電網絡的CoinJoin 軟件Vortex 中提出的方法,可以消除在CoinJoin 客戶端中手動搜索和添加CoinJoin 協調者的需求,進一步分散CoinJoin 協調景觀。

通過NOSTR 繞過IP 要求

正如之前提到的,Nostr 協議最初的概念是實現一個完全去中心化的市場,稱為Diagon Alley。隨著Nostr 協議的發展,Diagon Alley 變成了LNbits 的擴展NostrMarkets:一種原生支持Nostr 的市場,使商家和客戶能夠通過中繼運行和互動在線商店。在NostrMarkets 中,客戶可以訂閱商家的公鑰,從中繼獲取產品,而不是通過網店訪問商家的網站。這增加了在線商店的抗審查性,因為商家不依賴可查封的網站,而是商家的商店由其與之通信的所有中繼託管。即使商家的服務器被查封,商店也可以輕鬆地在不同位置設置,因為所有產品都存儲在Nostr 網絡上的中繼上。 NostrMarkets 通過加密的Nostr 直接消息處理訂單和付款協調,而付款則通過閃電網絡進行。

除了具有抗審查性,LNbits 的擴展NostrMarkets 還實現了完全匿名的市場。商家和客戶不向全世界公開他們的IP 地址,而只向他們連接的中繼公開,而這可以通過在Tor 後面運行客戶端或商店來輕鬆解決。完全在Tor 後面運行商店的好處是,商店只能通過Tor 瀏覽器和.onion 網頁訪問,NostrMarkets 可以在任何Web 瀏覽器或智能手機上運行,提高了保護隱私的客戶端- 服務器通信的用戶體驗。由於支付是通過加密的Nostr 直接消息進行協商,並通過閃電網絡實現,只要商店的閃電節點在Tor 後面運行,NostrMarkets 中的付款將保持相對私密,因為付款協調直接消息與Nostr 中的其他直接消息無法區分。

另一種繞過服務器客戶端通信中IP 地址要求的方法是NOSTREST。 REST 代表「表述性狀態轉移」,它是世界範圍Web 的軟件架構的一部分,用於通過GET、POST、PUT、DELETE 和PATCH 請求在服務器和客戶端之間進行通信。但是,當客戶端向服務器發送REST 請求時,IP 地址會被公開,可能會洩露個人身份信息。在GitHub 上,__escapee__提出了一個建立在Nostr 上的REST API 橋接,名為NOSTREST。通過使用不帶身份驗證頭的Nostr 密鑰,用戶和服務器運營者無需知道對方的IP 地址。因此,NOSTREST 的實現可以改善使用REST 的比特幣應用程序的隱私,因為服務器不需要客戶端的IP 地址。

其中一個例子可以是運行託管的Chaumian e-cash 鑄幣廠,這是一種匿名金額憑證系統。在e-cash 鑄幣廠中,鑄幣廠運營商不知道其用戶的餘額或交換的價值。然而,由於當前的REST 架構,除非默認情況下在Tor 後面運行(例如在e-cash 系統Cashu 中),否則它會得知用戶的IP 地址。但是,實現和管理Tor 支持是繁瑣的。通過NOSTREST 橋接,項目可以輕鬆保護用戶的隱私。通過在Tor 後面運行e-cash 鑄幣廠,並使用NOSTREST 在服務器和客戶端之間進行通信,可以實現異步通信,而服務器運營者和用戶只會了解彼此的公鑰,消除了通過IP 進行識別的風險。

查看原文
本頁面內容僅供參考,非招攬或要約,也不提供投資、稅務或法律諮詢。詳見聲明了解更多風險披露。
  • 讚賞
  • 留言
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate.io APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)