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

作者:L0la L33tz,編譯:DoraFactory

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)