科普 | 三種主流的隱私交易原理

買賣虛擬貨幣

區塊鏈的一個重要特點是公開性,也就是說,任何人都可以從鏈上把整個區塊的資料拉取下來,雖然包括比特幣等區塊鏈專案都採用的匿名交易,但是透過對資料地址和相關IP的分析,仍然大概率發現交易的雙方(1,2,6)。而相當一部分交易是不需要或者說不希望讓別人知道交易細節,特別是交易的物件。

因此,增加了隱私交易的區塊鏈技術就應運而生,其中,主流隱私交易方案有以下幾種:

1、門羅(monero):門羅幣主要是是採用簽名來保護隱私性。

2、達世(Dash),他使用的是混幣技術保證隱私性。

3、零(Zcash):主要使用snark庫來實現零知識明,達到保護隱私的目的。

1. 以環簽名為代表的門羅

門羅主要使用以下三種技術:

環簽名,用於隱藏交易發起人。系統在交易發生時會同時偽造多個交易,這些交易發起人地位相同。

混淆地址,用於隱藏交易接受者。轉賬資金會傳送到接收方公鑰生成的臨時地址,然後接收方用私鑰檢索臨時地址列表中的所有權。

環加密,用於隱藏真實金額。錢包在轉賬時會給轉賬金額加上隨機數,網路會利用這個加上隨機數的值進行驗證交易金額。

為了理解環簽名是什麼,它是如何保護了傳送者隱私。讓我們從現實生活中的一個案例談起,當你要給某個人傳送支票時,是不要需要簽名?但是,也正因如此,看到這個支票的任何人(和知道你的簽名是什麼樣的人)就會知道你就是那個傳送人。現假設,你從街上隨機選擇 4 個人。把你的簽名和這四個人進行混合得到一個獨一無二的簽名。這樣就沒有人能夠發現這是否真的是你的簽名。這就是環簽名本質上的工作方式。

在門羅中:Alice 傳送 1000 XMR(XMR 即門羅幣) 給 Bob,系統會如何使用環簽名來隱藏她的身份?首先,Alice 會確認她的“ring size(環大小)”。ring size 是取自區塊鏈的隨機UTXO,它等於 Alice 的輸出值,即 1000 XMR。ring size 越大,交易越大,繼而交易費越高。然後,她用 private spend key 對UTXO進行簽名,併發給到區塊鏈。另一點要注意的是,Alice 不需要向之前交易的所有者傳送請求來使用這些UTXO。那麼,假設 Alice 選擇的 ring size 為 5 ,也就是說 4 個 decoy output(誘騙輸出) 和它自己的UTXO,從外面看起來就像這樣:

在一個環簽名交易中,任意一個 decoy 就像真實UTXO一樣,因為任何不相關的第三方(包括礦工)都無法知道傳送方是誰。

環簽名的缺點是,仍然有辦法被攻破,而導致隱私交易達不到隱私的目的。在相關資料(3,4,5)上,有一個簽名的私鑰可追蹤,那麼就會使隱私性受到威脅。另外CoyptoNote本身是有漏洞的,門羅幣曾經遭到過一次子集網路劃分的攻擊。

2 以混幣為代表的Dash

達世幣有三種轉賬方式:

1、是像比特幣一樣的普通轉賬。

2、是即時交易。不需要礦工打包確認,就可以確認交易,幾乎可以實現秒到。

3、是匿名交易。從區塊鏈上看不到是誰和誰進行了轉賬。

達世幣中除了普通節點之外,還有一種節點叫“主節點”。主節點可以提供一系列服務,如:匿名交易和即時支付。如果有使用者發起了匿名交易,它的申請會傳送到相關的主節點上,然後主節點根據情況,把多個申請者的交易進行混合,也就是混幣(一般來說,是三筆交易一起進行。)網上有一個例子,一桌人把自己的錢都放在桌上,混在一起,然後再分別拿回相應面值的錢,這樣就不知道你手裡的錢到底是誰的了,這就是混幣。混幣後,網路就不知道究竟誰轉賬給了誰。

達世幣的優勢在於,它可以比較容易的實現隱私性,不需要額外的新的演算法,即使在混幣的過程中會有效能損失,從理論上講還是可以忍受的。

達世幣的混幣池交易,從理論上講是安全的,但實際上,混幣的過程也有很多漏洞,首先,混幣為了能夠更好的隱藏交易,一般是中心化部署的,很容易受到攻擊,容易產生單節點資訊洩露。另外,如果使用者在交易時沒有及時清理Cookie,很可能透過技術手段尋找到相關的資訊。

3. 以零知識證明為代表的Zcash

Zcash具有兩種地址:

t-address:基於UTXO的地址,實現與BTC一樣的交易邏輯

z-address:與隱私地址關聯的交易,由密碼學保證其地址值,轉移數量無法被追溯和洩露。

Zcash交易有四種方式:

t-address->t-address:交易模式與BTC相同,公開透明

t-address->z-address:交易輸入透明可查詢,交易輸出地址無法從鏈上查詢,可用做將可追溯的token加密,使其從該筆交易開始具有不可追溯性。

z-address->t-address:交易輸出地址與金額透明可查詢,交易輸入無法追溯。

z-address->z-address:交易輸入與輸出均加密不可追溯,交易數量不可追溯。

Zcash使用了零知識證明演算法zk-SNARKS。簡單的來說,零知識證明就是證明者能夠在不向驗證者提供任何有用的資訊的情況下,使驗證者相信某個論斷是正確的。

例如A要向B證明自己擁有某個房間的鑰匙,假設該房間只能用鑰匙開啟鎖,而其他任何方法都打不開。這時有2個方法:

1.A把鑰匙出示給B,B用這把鑰匙開啟該房間的鎖,從而證明A擁有該房間的正確的鑰匙。

2.B確定該房間內有某一物體,A用自己擁有的鑰匙開啟該房間的門,然後把物體拿出來出示給B,從而證明自己確實擁有該房間的鑰匙.

後面這個方法屬於零知識證明。好處在於在整個證明的過程中,B始終不能看到鑰匙的樣子,從而避免了鑰匙的洩露。

例如Alice轉1 個ZEC給Bob。這個例子中有涉及到的角色有轉賬雙方Alice和Bob,以及驗證人(礦工)。首先是Alice和Bob都有了一張支票,這兩張“支票”都是有效的。Alice的支票開始就存在於整個ZCash網路,Bob的支票在生成後也會被廣播到全網。為了隱藏交易者資訊,要對兩張支票進行加密處理,可以透過擁有者的私鑰解密。

同時,因為資產只能有一份,所有礦工手裡還有一個作廢列表。Alice要同時廣播自己的“發票代號”,錄入作廢列表中。發票代號也是加密的。所以礦工們能看到的資訊其實是這樣的。其中Alice的支票是原先存在的,Alice的支票代號r1和Bob的支票是在交易過程中被Alice廣播的。

礦工們能獲取的資訊相當有限,但是這並不影響對礦工對交易有效性的判斷。礦工拿到Alice給的支票代號r1,去作廢列表中檢索,假如作廢列表中已經存在r1,則證明r1所對應的的支票早已失效;若作廢列表中並不存在r1,則證明r1對應的支票仍舊有效,此時礦工把r1錄入作廢列表中,把新生成的支票錄入支票列表中。所以記賬的過程就是對原有支票登記失效,並存入現有支票票的過程。

在這個過程中,我們不難發現,每筆交易礦工能接收到的東西只有一個發票代號,和一張新的發票,而且這兩樣東西都是被加密的。所以礦工並不知道轉賬雙方是誰,也不知道轉賬金額是多少。

4 結論

上述三種隱私交易機制設計,基本代表了區塊鏈中主流隱私交易的實現方式。本文簡單介紹了隱私交易的演算法原理,在交易的隱私性上,zk-SNARKS>=環簽名>混幣,在演算法的簡潔程度上,混幣>環簽名>zk-SNARKS。零知識證明系統是 1989 年由 Shafi Goldwasser、Silvio Micali 和 Charles Rackoff 在《互動證據系統的知識複雜性》(The Knowledge Complexity of Interactive Proof Systems)論文中首次提出的。在2013年第一次被應用於區塊鏈系統中,目前,包括CMU,MIT,John Hopkins等頂尖研究機構在該領域成立了專門的團體和機構進行演算法研究,同時包括以太坊,Quorum等在內的眾多技術社羣都在積極探索零知識證明的創新和應用。

最後,零知識證明和密碼學所提供的隱私和保密性,在某種程度上是疊加的,它在社會中的作用取決於你如何衡量它。對於希望保護個人資料的個人或保護商業秘密的公司,它是一種權利,給那些不想傷害它的機構一種義務,就像那些享有言論自由的人被懇求不要用它來傷害他人一樣。對政府而言(理想情況下),它是一種責任,因為涉及到大多數公民的權利,公民希望並相信,政府將用一種方式既允許我們保護自己的隱私,又保護我們免受惡意行為者濫用隱私的侵害;然而在現實中,我們知道這種情況在今天是不可能存在的。

儘管如此,密碼學的目標在這兩個領域都是存在的,這樣一個社會才能真正實現自由:自由地保護資訊的隱私,同時又不用擔心濫用隱私造成傷害。考慮到密碼學在過去幾個世紀的歷史,伴隨著日新月異數學和科學進展,密碼學可以能幫助世界實現這樣的目標,這一期望也終將實現。

1. Research and Challenges on Bitcoin Anonymity

https://www.researchgate.net/publication/281773799_Research_and_Challenges_on_Bitcoin_Anonymity

2. Understanding Bitcoin traceability

https://bitcoin.org/en/protect-your-privacy

3. Traceable Monero: Anonymous Cryptocurrency with Enhanced Accountability

https://ieeexplore.ieee.org/iel7/8858/4358699/08685178.pdf

4. An Empirical Analysis of Traceability in the Monero Blockchain

https://arxiv.org/pdf/1704.04299/

5. Response to "An Empirical Analysis of Traceability in the Monero Blockchain", Version 2

https://web.getmonero.org/2018/03/29/response-to-an-empirical-analysis-of-traceability.html

6. Tracing Transactions Across Cryptocurrency Ledgers

https://www.usenix.org/system/files/sec19-yousaf_0.pdf

免責聲明:

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

推荐阅读

;