詳解三大知名隱私支付類通證——Monero,Dash 和 Zcash(二)

買賣虛擬貨幣

摘要

本文以 Monero,Dash 和 Zcash 為例,介紹了具有隱私性質的支付類通證的基本資訊、隱私性的實現方式以及生態等內容。文章一共分為三個部分,其中第一部分對三種通證的基本情況進行介紹,包括其歷史、分叉情況以及三者的簡單對比;第二部分對這類通證的最重要特徵之一:隱私性,進行討論,包含隱私性的具體含義以及三類通證的實現隱私性的具體方案;第三部分則著重於對三者的生態表現進行分析,並且包含在全球範圍內對於隱私通證的監管內容。

簡單而言,本文有以下結論:

1. 就三者而言,Monero 具有最高程度的隱私性,而 Dash 和 Zcash 相對較弱,並且只有 Monero 是預設將所有交易匿名,而其他二者都是為使用者提供交易可匿名的選項。

2. 雖然三者都屬於具有隱私性質的通證,但是三者之間並不存在完全正面的競爭關係。Monero 的去中心化程度更高,其治理完全由社羣主導,更加偏向於隱私通證領域的 “BTC/" target="_blank"">Bitcoin”;Dash 的即時轉賬特性使得其在某些實際支付領域更受歡迎;而 Zcash 則在實際的隱私以及中心化程度上表現最差,但在合規性方面實際表現最好。

3. 在匿名以及隱私保護的層面,加密通證必須具有阻斷連線性和追溯性的能力才能真正意義上保護使用者隱私。

4. 隱私性實現和監管許可相悖。

5. 隱私性實現程度和市場接受度正相關。

6. 作為支付通證,隱私性越強的通證等價性 (Fungibility) 越強。

7. 包括本文討論在內的所有支付類通證,其出現的起因大都是源自 Bitcoin。幾乎所有的支付類通證都是為了解決 Bitcoin 中存在的問題而產生。而由於 Bitcoin 的“偽匿名性”,才使得眾多致力於解決使用者在交易過程中隱私保護的通證出現。對於定位是解決 Bitcoin 的某一個問題而出現的通證,最終只有極少數通證存在價值,並且能夠生存下來。而由於隱私性的問題相對於其他問題而言,存在著更為明顯的需求,因而定位於隱私的支付類通證的潛在市場更大。

本系列的第二部分,詳盡介紹了三種知名的隱私類支付通證(Monero, Dash 和 Zcash)的隱私性。

隱私性

支付類通證的隱私性

隱私性一直是加密通證領域中最受關注的話題之一。在 2009 年 Bitcoin 第一次出現在大眾視線中時,Bitcoin 的"隱私"特性便成為其被廣泛接受的原因之一。人們在用 Bitcoin 作為支付方式時,通常只會被關聯一個由一串數字組成的電子地址,而非諸如銀行賬戶等存在身份暴露風險的資料來源。此種程度的隱私性我們稱之為假名隱私性 (pseudonymous privacy),其類似於在寫信時使用筆名來隱藏真實身份。然而,一旦電子地址取得(或者說我們類比的"筆名")與真實生活中的身份或者活動的關聯[31](如交易所對使用者資訊的洩露),此種程度上的隱私性就會被破壞。 當今資訊爆炸的時代降低了獲得此種關聯的成本,較為常見的方式有入侵線上商家資料庫或審查一些公開社交媒體的資源。一旦此種關聯被建立,窺探者便可以透過區塊瀏覽器審查某個電子地址的全部交易記錄並抓取他們所需要的資訊。 

在評估某種加密通證的隱私性時,我們通常會考慮兩個指標:關聯性和追溯性。正如我們之前所介紹的,在 Bitcoin 中,透過指定的地址我們便可以追溯到某一交易,同樣的,在取得特定的交易資訊後,我們也可以將參與交易的地址關聯起來。為了解決此類關聯性和追溯性問題,諸如 Monero,Dash,Zcash 等專注於隱私性的加密通證陸續被開發出來,他們的出現也為加密通證的隱私屬性提供了新的可能性。在隱私類加密通證中,開發者使用零知識證明、環形簽名,一次性地址以及改進過的 CoinJoin[32] 方法等技術在一定程度上消除了關聯性和追溯性。例如在 Monero 中,由於“公開地址“是一次性的,每一個地址只為一筆特定交易而生成,而真正的公開地址(在 Monero 中稱之為公鑰)無法在區塊瀏覽器中被查詢,所以在得知“公開地址”的情況下,窺探者無法追溯到關於此地址的過往交易記錄。由此,隱私類加密通證透過隱藏交易和地址的關聯性,使窺探者的追蹤和審查幾乎無法實現,從而提高了加密通證的整體隱私性並實現了真正的匿名性。

在此分析報告中,我們將以 Momero, Dash 和 Zcash 為經典案例來分析隱私類加密通證的屬性和它們隱私屬性實現的方式。

Monero、Dash 和 Zcash 的隱私性

鏈上與鏈下資訊的關聯性

如維基百科對隱私的定義,”隱私指的是個人或者群體隔離自身,或者關於自身資訊的能力,從而有選擇性的表達自己。” 在加密通證領域中,窺探者可以首先透過審查諸如社交媒體、第三方資料庫或者掌握指定交易資訊等鏈下資訊源來破壞隱私性。透過篩選分類,我們可以將所有這些鏈下資訊源大致分為兩類:地址和諸如交易時間和交易金額的交易細節,並將此兩類資訊源作為鏈上資訊的兩大切入點。透過這兩個切入點,窺探者可以利用區塊瀏覽器[33] 來獲取他們所需要的資訊。我們繪製了下圖來幫助讀者更直觀的理解整個審查的過程。

我們首先要評估的切入點是地址。在 Dash 和 Zcash 中,除非地址持有者棄用該地址,公開地址將會永久存在,且地址中餘額可以在區塊瀏覽器中查詢。然而在 Monero 中,可以公開檢視的地址只是暫時被生成,且只做一次性使用,所以無法在區塊瀏覽器中檢視其過往交易。因此,窺探者並沒有動機去收集這些無法與鏈上資訊關聯的一次性地址,從而在源頭切斷了其與鏈上資訊的關聯。

我們要評估的第二個切入點是交易資訊。Dash 和 Zcash 的區塊瀏覽器沿襲了 Bitcoin 區塊瀏覽器,除非特別標明,包括交易金額和地址等在內的交易細節均可以在交易ID下被檢視。如下圖所示,在 Monero 中,只有秘鑰映象 (Key image) 和一次性公開地址會在交易 ID 下顯示,其他諸如交易金額等可被關聯的資訊均被隱藏。因此,使用地址對 Monero 進行追蹤審查的動機也被消除。 

由此可見,Monero 在鏈下關聯鏈上的環節便阻斷了連線,從而加強了其對隱私性的保護,其他兩種隱私型通證並不具備該屬性。

區塊瀏覽器透明度

在上一小節中,我們討論了鏈下與鏈上資訊的關聯。由於 Monero 已在此環節阻斷了關聯,我們會在此小節以 Dash 和 Zcash 為例重點討論加密通證的區塊瀏覽器透明度。在可公開訪問的區塊瀏覽器上記錄交易資訊是加密通證實現透明性的重要途徑之一。對於一個加密通證而言,區塊瀏覽器是重要的可被公開訪問的資訊源之一,且因為其易讀性,常常被用作查詢區塊鏈資訊的重要工具。因此區塊瀏覽器的透明度成為了我們衡量加密通證隱私性的重要維度。在本章節中,我們透過展示各加密通證的區塊透明度來分析加密通證的隱私性。

在 Bitcoin 的區塊瀏覽器中,諸如傳送者地址,接收者地址,交易金額和地址餘額等資訊都是公開可見的。通常,這些資訊可以被窺探者用於產生資訊關聯,因此對窺探者而言有極大的利用價值。在這裡,我們用此四類資訊作為評估區塊瀏覽器透明性的維度,並展開接下來的分析。

Dash

Dash 的區塊瀏覽器與 Bitcoin 的非常相似。然而,由於使用了改進的 CoinJoin 方法,我們在區塊瀏覽器上看到的與地址相關的交易金額並不是該地址真實的交易金額,從而阻斷了交易金額與地址一一對映的關係,該種隱匿會在使用者選擇 PrivateSend 功能進行交易時觸發。因此,透過區塊瀏覽器以交易資訊作為切入點進行審查無法為窺探者提供足夠的價值。值得一提的是,儘管區塊內交易資訊無足夠利用價值,窺探者仍然可以透過區塊瀏覽器檢視地址的餘額並作為其後續審查的資源。

Zcash

不同於 Bitcoin,在 Zcash 中對於同一筆交易的雙方而言,傳送方和接收方都有兩種地址選擇,z- 地址和 t- 地址[34]。交易傳送方和接收方選擇不同的地址進行交易會產生四種形態的交易:公開交易,加盾交易,除盾交易和私人交易。這四種交易的描述和特點如下表所示。值得一提的是,在 隱私交易狀態下,交易不會在區塊瀏覽器上顯示。

基於以上對各隱私型加密通證的分析,我們繪製了下表來總結各隱私型通證的區塊瀏覽器透明度:

隱私性實現和技術亮點 —— Monero、Dash和Zcash

Monero

使用一次性加密地址來保護接收者的隱私

Monero 使用者有兩對鑰匙,公共檢視金鑰(檢視公鑰),私有檢視金鑰(檢視私鑰),公共支付金鑰(支付公鑰)和私有支付金鑰(支付私鑰)。傳送者透過自選隨機數,加上接收者的一對公共金鑰一起,生成一次性地址。如果另有一個接收者,則這個接受者會生成新的隨機數與新的一次性地址進行交易。由於離散對數的難解問題,傳送者和窺探者無法計算出接收者的任何一個私鑰,因此也不會得到關於接收者任何多餘的資訊。換言之,擁有接收者的檢視私鑰的人,可以檢視該賬戶餘額;而擁有支付私鑰的人,則可以任意支配賬戶中的 R/" target="_blank"">XMR。

隱藏起來的交易金額和傳送者身份

在 Monero 的交易中,交易金額是(對窺探者來說)不可見的,交易金額的隱蔽性是透過環加密交易 (RingCT) 和佩德森承諾來實現 (Pedersen Commitments) 的。傳送者(也是簽名者)的身份也是藉助了環形簽名(在擁有多個輸入的交易裡,更具體來說,這個簽名機制叫做 MLSAG),環形簽名幫助實現了“簽名者模糊”,在這種情況下,一個窺探者可以證明簽名者屬於某個環,但不能將其與其地址一一對應。

下圖展示了 Monero 交易的輸入與輸出包含的內容,幫助解釋了 Monero 隱私性的實現。

Dash

我們從上文所述的兩個切入點,地址和交易資訊來分析 Dash 的隱私性實現。在從地址作為切入點來進行審查的情形中,對大多數非隱私性加密通證而言,窺探者可以透過地址反向追蹤與此地址相關的交易記錄。在 Dash 中,因為有交易被改進過的 CoinJoin 方法處理,即使從區塊瀏覽器中得到某特定地址的過往交易記錄,窺探者也無法分辨出傳送者在一筆交易中實際傳送的金額。在第二種以交易資訊作為切入點的審查中,假設窺探者在鏈下得知一筆交易具體發生的時間和交易金額,得益於改進過的 CoinJoin 方法,窺探者仍然無法透過區塊瀏覽器上所羅列的交易資訊來確認該筆交易並從中識別參與者。綜上所述,改進過的 CoinJoin 方法阻斷了交易金額與地址的一一對映關係,從而實現了地址與交易關聯性的割裂。

Zcash

Zcash 為交易者提供了兩種轉賬地址:透明地址和遮蔽地址。透明地址以 t 開始,其功能與 Bitcoin 相似,其交易資訊(包括交易雙方的轉賬地址和交易金額)在區塊資訊中可查。遮蔽地址通常首字母為 z,透過使用簡潔非互動的零知識證明隱藏了交易資訊,地址資訊和此地址的轉入與轉出金額不在區塊資訊中顯示,非交易雙方的第三方將無法透過公開渠道獲取遮蔽交易的任何資訊,甚至負責記錄交易的礦工也無法獲得遮蔽地址和其交易額。當一筆有遮蔽地址參與的交易被記錄時,礦工負責記錄的內容只包括“存在一個未花費餘額,且有一筆交易產生”的證明,而不記錄遮蔽地址和交易額本身。

值得注意的是,雖然遮蔽地址是 Zcash 最具特色的效能,但在目前 Zcash 的“越冬”階段, Zcash 的預設功能不是遮蔽地址而是透明地址,遮蔽地址僅作為一個附加功能供交易者選擇。為實現遮蔽交易,使用者要首先要生成透明地址,將餘額存入透明地址後再向遮蔽地址中轉入。 因為儲存在遮蔽地址中的 ZEC 總量無法統計,為了保證遮蔽的 ZEC 總量可計算,所有遮蔽地址中的 ZEC 必須透過透明地址轉入。

在 Zcash 的轉賬設計中,透明地址和遮蔽地址中的 ZEC 分別存於透明資金池與遮蔽資金池中,一切與遮蔽地址有關的 ZEC 交易都透過 JoinSlipt 轉賬實現,每一筆交易都有一個 JoinSlipt 資訊,說明遮蔽資金池中所有被遮蔽的 ZEC 的來源和走向。

參與者可及性

對於任何一類加密通證而言,由於破壞其隱私性的參與者角色不同,參與者對資訊的可及度也會有一定程度上的區別。下表中,我們對各隱私型加密通證的參與者可及性進行了對比分析。不難發現,Monero 在三種隱私型通證中對參與者的辨識程度最低,僅傳送者可以獲得接收者公開地址並知曉交易金額,其餘資訊不分參與者角色均被隱藏。而 Zcash 的情況則複雜的多,其隱私程度更多取決於交易的型別。而在 Dash 中,相對於 Monero 和 Zcash,傳送者和接收者無論對地址還是資訊都有較高的可及程度,一定上增加了隱私被破壞的風險。

小結

綜上所述,加密通證必須具有阻斷連線性和追溯性的能力才能真正意義上保護使用者隱私。

從隱私程度而言,由於是唯一能夠在鏈下和鏈上資訊連線階段切斷關聯的加密通證,且能夠無視窺探者角色進行地址和交易隱匿,Monero 在三種隱私型通證中具有最強的隱私屬性。Zcash 在隱私程度上僅次於 Monero,雖然在其隱私交易狀態下,包括交易金額、交易地址和交易時間等所有的交易細節都會被隱藏,但只有 0.3% 的地址[36] 會選擇此選項進行交易,而且其 z- 地址並不對交易接收者隱藏。而 Dash 在隱私程度方面略遜於 Zcash。 Dash 只透過改進過的 CoinJoin 方法保護使用者隱私,窺探者仍然可以透過審查地址餘額和出塊時間從而對地址進行追蹤,這使得聚類啟發式演算法變得可能。

在隱私靈活性方面,Zcash 為使用者提供兩種交易地址並允許使用者進行四種交易,因而為使用者提供了最大的隱私靈活性。在 Dash 中,由於 PrivateSend 是被動功能,此種加密通證也在一定程度上為使用者選擇匿名與否提供了靈活性。隱私靈活性較差的是 Monero,儘管Monero 為使用者提供檢視公鑰,其交易僅支援一種模式並且在地址生成和電子簽名等各個環節對交易進行了加密,使其在一定程度上限制了使用者的隱私靈活性。 

註釋:(以下序號承接第一部分的序號)

[31]

https://www.8btc.com/article/226447

[32]

https://www.investopedia.com/terms/c/coinjoin.asp

[33]

因為區塊鏈網路是一個公開的p2p網路,任何人都可以加入網路而得到所有區塊中的資訊,而區塊瀏覽器只是區塊資訊的一種較為易讀的表現形式,因而為了讀者方便理解,下文中都採用區塊瀏覽器的方式來獲取區塊中的資訊,而且本質上並無區別。

[34]

為交易者提供了兩種轉賬地址:透明地址和遮蔽地址。透明地址以t開始,其功能與Bitcoin相似,其交易資訊(包括交易雙方的轉賬地址和交易金額)在區塊資訊中可查。遮蔽地址通常首字母為z, 透過使用簡潔非互動的零知識證明隱藏了交易資訊,地址資訊和此地址的轉入與轉出金額不在區塊資訊中顯示,非交易雙方的第三方將無法透過公開渠道獲取遮蔽交易的任何資訊,甚至負責記錄交易的礦工也無法獲得遮蔽地址和其交易額。

[35]

隱私交易狀態下

[36]

https://smeiklej.com/files/usenix18.pdf

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;