當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 在游戲《最終幻想》中,來自蘭迪斯共和國(guó)的全能戰(zhàn)士巴修被稱為最強(qiáng)之盾,他身經(jīng)百戰(zhàn)、勇猛果斷,被子民視為英雄。而在區(qū)塊鏈?zhǔn)澜?,Zcash、門羅幣、零知識(shí)證明等存在,也被稱為隱私的最強(qiáng)之盾,它們可以有

在游戲《最終幻想》中,來自蘭迪斯共和國(guó)的全能戰(zhàn)士巴修被稱為最強(qiáng)之盾,他身經(jīng)百戰(zhàn)、勇猛果斷,被子民視為英雄。而在區(qū)塊鏈?zhǔn)澜?,Zcash、門羅幣、零知識(shí)證明等存在,也被稱為隱私的最強(qiáng)之盾,它們可以有效確保交易信息不被泄露,然而,這個(gè)世界真的存在密不透風(fēng)的墻嗎?

本期的學(xué)術(shù)分享,我們重點(diǎn)推薦斯坦福大學(xué)教授Dan Boneh等人最新的研究成果《針對(duì)匿名交易的遠(yuǎn)程側(cè)信道攻擊》。

而在硬核技術(shù)文章精選部分,我們還會(huì)看到zkSNARK 證明優(yōu)化、Taproot/Schnorr升級(jí)、閃電網(wǎng)絡(luò)局限性、Substrate等內(nèi)容。

另外,在過去的一周當(dāng)中,以太坊1.X、以太坊2.0以及Layer 2也迎來了眾多技術(shù)進(jìn)展。

比特幣作為最大的加密貨幣,其交易其實(shí)并不是匿名的,眾多學(xué)術(shù)研究已經(jīng)表明,比特幣的交易圖可以被有效去匿名化,即使是很多所謂的匿名加密貨幣也是如此。

而對(duì)于那些希望在公共區(qū)塊鏈上獲得交易隱私的用戶而言,像Zcash、門羅幣(Monero)這樣的匿名加密貨幣系統(tǒng),因使用了相當(dāng)高級(jí)的密碼學(xué)原語,例如簡(jiǎn)潔零知識(shí)證明(zkSNARKs)和環(huán)簽名(ring signatures),從而提供了更高程度的不可鏈接性。那使用這樣的系統(tǒng),用戶可以高枕無憂了嗎?

實(shí)際上,盡管它們擁有了強(qiáng)大的密碼學(xué)原語保護(hù),但還是會(huì)存在一些協(xié)議層的隱私攻擊方式會(huì)對(duì)這些系統(tǒng)的隱私性構(gòu)成威脅,這也是斯坦福大學(xué)教授Dan Boneh等密碼學(xué)大牛最新的研究成果。

(注:研究者向Zcash和Monero安全團(tuán)隊(duì)披露了這些攻擊,并且他們已在最新版本客戶端中修復(fù)了相關(guān)漏洞。例如,Zcash v2.0.7-3版本客戶端引入了初始修復(fù),v2.1.1-1版本客戶端為區(qū)塊處理中的時(shí)間側(cè)信道引入了進(jìn)一步的修復(fù)。而Monero則在v0.15.0版本客戶端中引入了修復(fù)。將客戶端更新到最新版本的用戶,將不易受到此類攻擊的威脅。另外,由于攻擊需要監(jiān)視和參與Zcash或Monero網(wǎng)絡(luò),因此此類攻擊并不能追溯以往的交易。)

1、1 匿名支付系統(tǒng)的架構(gòu)

在描述相關(guān)攻擊之前,我們先來了解下隱私加密貨幣(以Zcash和Monero為例)的一些核心設(shè)計(jì)概念。這些加密貨幣是建立在比特幣的UTXO(未花費(fèi)交易輸出)模型之上的,即每筆交易會(huì)花費(fèi)以前交易的輸出,并產(chǎn)生新的輸出。這些UTXO的集合會(huì)記錄在區(qū)塊鏈中,并表示流通中的總貨幣。

貨幣的每個(gè)用戶都擁有一個(gè)或多個(gè)公鑰(也稱為地址),并且連接到P2P網(wǎng)絡(luò)以發(fā)送和接收交易。

隱私目標(biāo):在比特幣中,UTXO是一個(gè)(amount,pk)元祖(tuple),其中pk代表接收者的公鑰。為了以后使用這個(gè)UTXO,接收者在相應(yīng)的密鑰下生成一個(gè)簽名。這樣,一筆交易就顯示了所用貨幣的數(shù)量、資金的來源(即使用了哪些UTXO)及其目的地(即新UTXO所有者的公鑰)。

此外,用戶的公鑰可鏈接至其向網(wǎng)絡(luò)發(fā)送交易時(shí)連接到的P2P節(jié)點(diǎn)。

而Zcash和Monero等匿名加密貨幣,旨在提供以下更強(qiáng)的隱私保障:

1. 保密性:交易不披露交易金額;

2. 不可追蹤性:當(dāng)交易花費(fèi)UTXO時(shí),很難識(shí)別交易生成了該UTXO;

3. 不可鏈接性:給定兩筆發(fā)送到網(wǎng)絡(luò)的交易(最多有一筆是由對(duì)手發(fā)送),則對(duì)手無法判斷它們是否支付相同的地址。此外,給定兩個(gè)地址,對(duì)手無法確定它們是否屬于同一用戶;

4. 用戶匿名:給定用戶地址(即公鑰),對(duì)手無法確定該地址的所有者如何連接到P2P網(wǎng)絡(luò);

而這些隱私保障,通常是通過密碼學(xué)技術(shù)的組合來實(shí)現(xiàn)的,下面我們將簡(jiǎn)單地描述下這些技術(shù):

1. 保密交易技術(shù)(CT)隱藏了交易資金的數(shù)額,一筆保密交易的UTXO形式為(Commit(amount), pk),也就是說,它們只顯示交易金額的密碼學(xué)承諾。交易還包括證明其總余額為0的一個(gè)證明。

2. UTXO匿名集通過隱藏交易輸入的身份提供不可追蹤性。具體來說,匿名交易不會(huì)顯示它花費(fèi)的UTXO,而只顯示一個(gè)超級(jí)UTXO集,以及這個(gè)集合中某些UTXO所有權(quán)的零知識(shí)證明。

3. 混淆及多樣化地址保證不可鏈接性。為了防止發(fā)送到同一地址交易的可鏈接性,匿名交易的UTXO包含一個(gè)“混淆”公鑰(例如,Zcash中對(duì)該密鑰的承諾)。多樣化地址(或Monero中的子地址)使得用戶能夠匿名地與多個(gè)實(shí)體進(jìn)行交易,而無需管理多個(gè)密鑰。通過單個(gè)密鑰sk,用戶可以創(chuàng)建多個(gè)公鑰pk1,…… pkn。這些密鑰是不可鏈接的:很難確定兩個(gè)公鑰pk、pk0是否來自于同一個(gè)密鑰。

區(qū)塊鏈掃描是不可鏈接性的技術(shù)后果。由于匿名交易的UTXO并不會(huì)清晰顯示接收方的公鑰,因此用戶必須掃描每筆新交易并執(zhí)行各種密碼學(xué)操作,以檢查交易是否和它們有關(guān)。

用戶匿名性由不可追蹤性和不可鏈接性保證。由于交易不會(huì)顯示發(fā)送方或接收方的公鑰,因此用戶的公鑰不能鏈接至其用于發(fā)送或接收交易的P2P節(jié)點(diǎn)。

(1)用戶的錢包創(chuàng)建一筆交易,這涉及到生成一個(gè)密碼學(xué)證明。此計(jì)算可以在本地執(zhí)行,也可以外包給遠(yuǎn)程服務(wù)。(2) 錢包將新交易發(fā)送到P2P節(jié)點(diǎn),P2P節(jié)點(diǎn)將其廣播到網(wǎng)絡(luò)中。(3)P2P節(jié)點(diǎn)與連接的錢包共享接收到的交易,連接可以是本地的或遠(yuǎn)程的。在交易創(chuàng)建期間,對(duì)手1a可以計(jì)時(shí)外包的證明生成,以泄漏某些交易秘密。在處理一筆新交易時(shí),錢包作為交易的收款人時(shí),其行為可能會(huì)發(fā)生變化。如果錢包連接到遠(yuǎn)程節(jié)點(diǎn),這可以由觀察錢包和節(jié)點(diǎn)之間通信模式的對(duì)手1b,或控制該節(jié)點(diǎn)的對(duì)手3來推斷。如果錢包和節(jié)點(diǎn)位于同一位置,則與用戶的P2P節(jié)點(diǎn)交互的對(duì)手2,就可以推斷錢包行為的變化。

匿名交易的生命周期。圖1說明了如何通過P2P網(wǎng)絡(luò)創(chuàng)建匿名交易,并與節(jié)點(diǎn)和錢包進(jìn)行共享:

1. 為了發(fā)送新的交易,用戶的錢包選擇一些UTXO,并產(chǎn)生零知識(shí)交易有效性證明;

2. 交易被發(fā)送到連接至錢包并與網(wǎng)絡(luò)共享的P2P節(jié)點(diǎn)。P2P節(jié)點(diǎn)將這些交易存儲(chǔ)在它們的“存儲(chǔ)池”(Mempool)中;

3. P2P節(jié)點(diǎn)與連接的錢包共享這些交易。錢包掃描每一筆新交易,以檢查它是否是交易的收款人。一旦一筆交易被納入?yún)^(qū)塊當(dāng)中,就會(huì)執(zhí)行步驟2和步驟3。當(dāng)一個(gè)區(qū)塊被挖掘時(shí),該區(qū)塊及其包含的交易將被廣播到所有P2P節(jié)點(diǎn)。然后區(qū)塊的交易就和用戶的錢包進(jìn)行共享了。

1、2 攻擊結(jié)果

了解完匿名支付系統(tǒng)的架構(gòu),我們來簡(jiǎn)單認(rèn)識(shí)下研究者提出的攻擊,究竟會(huì)帶來什么樣的后果。

據(jù)悉,這些攻擊是利用了系統(tǒng)不同部分泄露的通信模式或時(shí)間信息,攻擊者通過系統(tǒng)的方法,觀察匿名交易在系統(tǒng)中的生命周期。在每一步,研究者都會(huì)尋找側(cè)信道,并評(píng)估它們對(duì)用戶隱私的影響。

在圖1所示的匿名交易生命周期當(dāng)中,攻擊者可在這些步驟中的每一步觀察側(cè)信道信息,并嘗試了解有關(guān)交易的信息,例如:預(yù)期收款人的身份(例如,他們的公鑰或他們的P2P節(jié)點(diǎn)的IP地址)、交易轉(zhuǎn)移的資金量或資金來源。

下面是研究結(jié)果:

1、在Zcash中,用戶的錢包和P2P節(jié)點(diǎn)是在單個(gè)進(jìn)程中運(yùn)行的。錢包通過嘗試使用它的密鑰對(duì)其進(jìn)行解密,以檢查它是否是每個(gè)傳入交易的收款人。而這導(dǎo)致了側(cè)信道泄漏的兩個(gè)來源:(1)如果解密成功并且解密的交易(稱為Note純文本)格式正確,則錢包將執(zhí)行額外的Pedersen承諾校驗(yàn); (2)如果解密成功,但是解密的交易格式不正確,則錢包會(huì)拋出一個(gè)異常,而該異常會(huì)傳播到節(jié)點(diǎn)的P2P層。

在第一種情況下,執(zhí)行額外Pedersen承諾檢查所花費(fèi)的時(shí)間,會(huì)導(dǎo)致P2P節(jié)點(diǎn)對(duì)后續(xù)網(wǎng)絡(luò)消息的響應(yīng)出現(xiàn)延遲。

因此,研究者提出了一種稱為PING的攻擊,攻擊者可使用ping響應(yīng)中的延遲,來推斷節(jié)點(diǎn)是否為交易的收款人。這破壞了交易的不可鏈接性。

在第二種情況下,研究者提出了一種REJECT攻擊,其中攻擊者小心地處理格式錯(cuò)誤的交易,在已知(但匿名)公鑰下對(duì)其進(jìn)行加密,并將其發(fā)送到目標(biāo)P2P節(jié)點(diǎn)。如果解密成功,則會(huì)觸發(fā)異常,并且目標(biāo)節(jié)點(diǎn)將明確的“reject”消息發(fā)送回攻擊者。

攻擊者在收到此消息后,其就能知道所選的公鑰屬于目標(biāo)P2P節(jié)點(diǎn)的所有者,而這違反了匿名性。

有關(guān)PING和REJECT攻擊的詳細(xì)信息,有興趣的讀者請(qǐng)參見原論文第四節(jié)。

2、對(duì)于Monero而言,其錢包和節(jié)點(diǎn)也在單獨(dú)的進(jìn)程中運(yùn)行,研究證明,支付接收會(huì)更改錢包及其節(jié)點(diǎn)之間的通信模式。

如果錢包連接到遠(yuǎn)程節(jié)點(diǎn)(在移動(dòng)錢包中很常見,或者在首次與網(wǎng)絡(luò)同步時(shí)很常見),則被動(dòng)網(wǎng)絡(luò)對(duì)手可以推斷該錢包是否是最近交易的收款方。(有關(guān)細(xì)節(jié),請(qǐng)參見原論文第五節(jié))

此外,即使用戶的錢包和節(jié)點(diǎn)位于同一位置,研究者也表明,遠(yuǎn)程對(duì)手可引起和觀察節(jié)點(diǎn)資源的競(jìng)爭(zhēng)(Lock Contention),來推斷錢包到節(jié)點(diǎn)的通信模式。

研究者在廣域網(wǎng)中驗(yàn)證了這種時(shí)間攻擊,一位位于倫敦的攻擊方可推斷受害者(在蘇黎世運(yùn)行的節(jié)點(diǎn)和錢包)是否收到了付款。

對(duì)于Zcash和Monero而言,這類攻擊使遠(yuǎn)程對(duì)手能夠通過識(shí)別每個(gè)交易收款人的P2P節(jié)點(diǎn)來鏈接匿名交易。如下面所述,攻擊可進(jìn)一步被利用于:(1)根據(jù)用戶的公鑰識(shí)別其P2P節(jié)點(diǎn)的IP地址;(2)打破屬于同一用戶的各種地址的不可鏈接性。

對(duì)于Zcash,這些攻擊還能夠:(3)在給定用戶公鑰的情況下遠(yuǎn)程導(dǎo)致Zcash節(jié)點(diǎn)崩潰,以及(4)在涉及用戶長(zhǎng)期秘密查看密鑰的(非恒定時(shí)間)ECDH密鑰交換上創(chuàng)建遠(yuǎn)程時(shí)間側(cè)信道,這可能導(dǎo)致查看密鑰的泄漏。

這些攻擊可能會(huì)使關(guān)注隱私的加密貨幣用戶處于危險(xiǎn)之中。例如,將用戶的匿名公鑰鏈接到其P2P節(jié)點(diǎn)的對(duì)手,可以發(fā)現(xiàn)用戶的真實(shí)身份或位置,一個(gè)打破不可鏈接性的對(duì)手,可以推斷哪些P2P節(jié)點(diǎn)屬于正在進(jìn)行交易的用戶。

3 zkSNARK生成中的側(cè)信道,此外,研究者還觀察到,在Zcash中,生成zkSNARK的時(shí)間不是恒定的,而是取決于交易金額的漢明權(quán)重(hamming-weight)等秘密信息。研究實(shí)驗(yàn)表明,目前的zkSNARK實(shí)現(xiàn)在實(shí)際中并非是零知識(shí)的:從時(shí)間泄露中收集的信息會(huì)使零知識(shí)屬性失效。如果對(duì)手能夠測(cè)量zkSNARK生成過程的運(yùn)行時(shí)間,則可以提取此信息。當(dāng)然,正如下文所解釋的,在當(dāng)前的Zcash系統(tǒng)中,可能很難利用這種泄漏。

1、3 攻擊方式概述

了解完了攻擊帶來的后果,我們重點(diǎn)來認(rèn)識(shí)下這類通用攻擊方式,以及針對(duì)zkSNARK Prover的時(shí)間攻擊,而針對(duì)Zcash和Monero的具體攻擊方式,則省略不談。

1、威脅模型

本文所描述的攻擊屬于遠(yuǎn)程側(cè)信道攻擊。因此其并不要求受害者的軟件被替換,我們可以考慮這樣一個(gè)遠(yuǎn)程對(duì)手,如圖1所示:

1. 一個(gè)網(wǎng)絡(luò)對(duì)手(圖1中的對(duì)手1a和1b)監(jiān)視受害者錢包和遠(yuǎn)程服務(wù)(例如節(jié)點(diǎn)或驗(yàn)證程序)之間的加密通信量。

2. 一個(gè)P2P對(duì)手(對(duì)手2)參與P2P網(wǎng)絡(luò)。攻擊者可能會(huì)偏離P2P協(xié)議。

3. 一個(gè)遠(yuǎn)程節(jié)點(diǎn)對(duì)手(對(duì)手3)控制一個(gè)第三方P2P節(jié)點(diǎn),并監(jiān)視受害者的錢包與該節(jié)點(diǎn)之間的(明文)通信。

2、攻擊類型一:接收方側(cè)信道

研究發(fā)現(xiàn),最實(shí)用和最普遍的側(cè)信道攻擊,會(huì)影響圖1所示的匿名交易生命周期的最后階段(即錢包處理新交易時(shí))。這些攻擊使遠(yuǎn)程對(duì)手能夠破壞系統(tǒng)的不可連接性和匿名性保證。

這種攻擊利用了相關(guān)匿名加密貨幣普遍存在的設(shè)計(jì)缺陷,即用戶的錢包會(huì)定期檢查它是否是任何新交易的收款人。

目標(biāo):這類攻擊針對(duì)的是交易不可鏈接性和用戶匿名性。因此,攻擊者的目標(biāo)是:(1)確定兩筆交易是否支付相同的地址,(2)確定已知地址的用戶如何連接到P2P網(wǎng)絡(luò)。

這種攻擊針對(duì)的是錢包與P2P節(jié)點(diǎn)的常見部署,其實(shí)際目標(biāo)是識(shí)別交易收款人正在使用的P2P節(jié)點(diǎn)。在多個(gè)用戶將其本地錢包連接到共享遠(yuǎn)程P2P節(jié)點(diǎn)的設(shè)置中,網(wǎng)絡(luò)對(duì)手或遠(yuǎn)程節(jié)點(diǎn)對(duì)手發(fā)起的攻擊,可進(jìn)一步識(shí)別出交易收款人使用的實(shí)際錢包。

這里考慮兩種不同的攻擊場(chǎng)景:

1. 對(duì)手知道一個(gè)匿名公鑰,并向該密鑰發(fā)送一筆交易,以確認(rèn)密鑰所有者用于接收交易的P2P節(jié)點(diǎn)(或錢包)。

2. 誠(chéng)實(shí)的用戶發(fā)送一筆交易,對(duì)手不知道預(yù)期的收款人或其公鑰。對(duì)手決定交易的收款人使用哪個(gè)P2P節(jié)點(diǎn)(或錢包)。

實(shí)際上,后一種攻擊場(chǎng)景包含了第一種情況,因?yàn)閷?duì)手可以將精心編制的交易發(fā)送到已知公鑰。后一種場(chǎng)景會(huì)直接導(dǎo)致交易不可鏈接性的中斷。

給定發(fā)送到網(wǎng)絡(luò)中的兩筆交易,對(duì)手只需要確定兩筆交易的收款人是否使用了相同的P2P節(jié)點(diǎn)還是錢包。此外,這兩種攻擊場(chǎng)景都代表了用戶匿名性的中斷,并且可被用于其它隱私侵犯:

1. IP地址恢復(fù),對(duì)手可以將公鑰鏈接到所有者P2P節(jié)點(diǎn)的IP地址(如果連接到遠(yuǎn)程節(jié)點(diǎn),則可以鏈接到其錢包),除非所有者使用匿名工具(如Tor)。而此信息可被用于識(shí)別受害者,并對(duì)其進(jìn)行地理定位。

2. 鏈接多樣化地址,給定兩個(gè)公鑰,攻擊者可以確定它們是否屬于同一用戶。攻擊者向每個(gè)公鑰發(fā)送一筆交易,并檢查是否標(biāo)識(shí)了同一節(jié)點(diǎn)或錢包。這打破了多地址的不可鏈接性。

3. 恢復(fù)私鑰,這些攻擊背后的漏洞,也為通過時(shí)間側(cè)信道提取受害者的“查看”密鑰開辟了途徑。竊取此密鑰,可以讓對(duì)手將發(fā)送給受害者的所有交易鏈接起來(但無法竊取受害者的資金)。

攻擊策略

研究者的攻擊利用了加密貨幣錢包(收款人和非收款人)處理交易的方式差異。

這種錢包行為的差異,其本身并不是問題,因?yàn)檫h(yuǎn)程攻擊者無法直接與用戶的錢包交互。然而,研究發(fā)現(xiàn),由于各種設(shè)計(jì)缺陷,錢包行為的差異影響了錢包與其P2P節(jié)點(diǎn)之間的交互。反過來,這就使得遠(yuǎn)程攻擊者可通過各種側(cè)信道推斷錢包到節(jié)點(diǎn)交互的變化。

對(duì)此,研究者提出了兩種通用攻擊策略:

策略1,錢包到節(jié)點(diǎn)通信的流量分析。如果錢包連接到遠(yuǎn)程節(jié)點(diǎn),則網(wǎng)絡(luò)對(duì)手或遠(yuǎn)程節(jié)點(diǎn)對(duì)手可觀察錢包到節(jié)點(diǎn)交互的變化。

策略2,從P2P層推斷錢包行為。如果錢包和節(jié)點(diǎn)位于同一位置,則遠(yuǎn)程對(duì)手無法觀察它們的交互。然而,如果錢包行為的變化,影響了用戶的P2P節(jié)點(diǎn)和遠(yuǎn)程對(duì)等節(jié)點(diǎn)之間的交互,信息仍然會(huì)泄漏給對(duì)手。

這兩種策略,不僅適用于在創(chuàng)建交易并將其發(fā)送到P2P網(wǎng)絡(luò)時(shí),而且也適用于將其包含在區(qū)塊中時(shí)。在這一點(diǎn)上,區(qū)塊及其所有交易都與每個(gè)對(duì)等方共享,錢包重新處理交易以確保它們有效(例如確保它們沒有雙花)。

3、 攻擊類型二 : 發(fā)送方側(cè)信道

上面描述的攻擊,打破了匿名加密貨幣交易的不可鏈接性以及用戶的匿名性,這是利用了P2P客戶端和錢包系統(tǒng)設(shè)計(jì)中的缺陷。因此,它們并不是直接針對(duì)協(xié)議密碼學(xué)保護(hù)的攻擊。為了擴(kuò)大對(duì)匿名交易中側(cè)信道漏洞的調(diào)查范圍,研究者還對(duì)密碼學(xué)工具展開了研究,而這些工具保證了交易創(chuàng)建時(shí)的機(jī)密性和不可追蹤性,論文中特別提到的,便是當(dāng)前加密貨幣行業(yè)使用最多的簡(jiǎn)潔零知識(shí)證明zk-SNARKs。

注意,這部分描述的攻擊實(shí)際上更偏向于理論性質(zhì)。雖然它們不太可能影響到當(dāng)前的用戶,但這類攻擊的存在,再次說明了無側(cè)信道密碼學(xué)實(shí)現(xiàn)對(duì)于匿名系統(tǒng)的重要性。

攻擊目標(biāo):負(fù)責(zé)確保交易保密性和不可追蹤性的交易發(fā)送者。

正如下面討論的,遠(yuǎn)程攻擊最可能的目標(biāo)是恢復(fù)交易金額,從而破壞交易的保密性。

然而,針對(duì)交易創(chuàng)建的遠(yuǎn)程側(cè)信道攻擊,實(shí)際面臨著很多挑戰(zhàn):

1. 非交互性:用戶可以在不與任何其他方交互的情況下創(chuàng)建交易;

2. 短暫秘密:許多交易秘密(例如交易金額,以及與UTXO相關(guān)的秘密)是一次性的。因此,即使存在一個(gè)側(cè)信道,對(duì)手也可以嘗試一次提取這些秘密;

3. 高熵秘密:用于創(chuàng)建交易的長(zhǎng)期秘密(例如用戶的密鑰)具有高熵,并要求提取高精度的側(cè)信道;

研究表明,對(duì)手理論上可以克服這些挑戰(zhàn),其目標(biāo)是交易創(chuàng)建過程的證明階段,并旨在(部分)揭露交易的保密金額。

我們知道,零知識(shí)證明是匿名交易的基本構(gòu)建技術(shù),在zk-SNARK協(xié)議中,證明者(prover)有一些秘密輸入(稱為witness),并使驗(yàn)證者(verifier)確信該witness滿足給定的斷言,而不透露關(guān)于witness的任何其他信息。在Zcash和Monero中,此類proof證明了交易的有效性,同時(shí)保留了交易的隱私性。例如,在Zcash中,證明witness包含已用UTXO的列表、接收者地址、交易金額,以及保證這些UTXO存在并且屬于支出者,且所有資金都轉(zhuǎn)移至接收者的證明。

zk-SNARK證明者中的時(shí)間側(cè)信道。研究者的論題是,在當(dāng)前的zk-SNARK實(shí)現(xiàn)中,生成證明所花費(fèi)的時(shí)間,會(huì)泄露有關(guān)prover秘密witness的信息,特別是關(guān)于花費(fèi)幣的數(shù)量,然而,如上所述,由于交易創(chuàng)建的非交互性質(zhì),遠(yuǎn)程對(duì)手可能很難在證明生成過程中獲得時(shí)間側(cè)信道。而更糟糕的是,證明生成的時(shí)間可能不足以提取短暫或具有高熵的秘密。

盡管存在這些挑戰(zhàn),但我們?cè)谙挛闹兄赋?,在某些部署方案中,?duì)匿名加密貨幣的zk-SNARK prover進(jìn)行遠(yuǎn)程時(shí)間攻擊是可能的,并且演示了證明生成時(shí)間,可以泄露有關(guān)秘密交易額的重要信息。

關(guān)于非交互性,研究者提出了兩個(gè)觀察結(jié)論:

1. 如果弱客戶端(例如移動(dòng)錢包)將證明外包給遠(yuǎn)程服務(wù),則網(wǎng)絡(luò)對(duì)手可以計(jì)時(shí)prover。雖然證明外包的情況并不常見,但Zcash協(xié)議是支持這項(xiàng)功能的,遠(yuǎn)程證明服務(wù)是為早期版本的協(xié)議設(shè)計(jì)的,因而,會(huì)有一些用戶可能會(huì)選擇將證明委托給遠(yuǎn)程服務(wù);

2. 更一般地說,對(duì)手可以通過監(jiān)控P2P網(wǎng)絡(luò)來獲取有關(guān)交易創(chuàng)建過程何時(shí)開始的帶外信息,并觀察何時(shí)結(jié)束。例如,用戶可以設(shè)置定期付款,其中交易是在固定時(shí)間創(chuàng)建的。對(duì)手還可以觸發(fā)一筆交易,以作為某些外部協(xié)議的一部分。研究者為數(shù)字簽名繪制了一個(gè)時(shí)間側(cè)通道連接。雖然簽名是非交互的,但使用它的協(xié)議(例如TLS)可以引入遠(yuǎn)程側(cè)信道。

對(duì)于攻擊者而言,攻擊的目標(biāo)就是交易量,這是一個(gè)非加密值,即使是粗略的近似值(通過單個(gè)時(shí)間測(cè)量泄漏)也構(gòu)成了對(duì)隱私的侵犯。

攻擊策略。研究者考慮了一種利用算術(shù)運(yùn)算中的時(shí)間變化(取決于操作數(shù)的值)密碼學(xué)時(shí)間攻擊。

研究利用了這樣一個(gè)事實(shí):產(chǎn)生證明的時(shí)間與prover的witness值有關(guān)。由于witness包含交易金額,攻擊的目標(biāo)就是該金額與證明時(shí)間有關(guān)。例如,Zcash的證明將交易量分解為bit,并為每個(gè)非零bit計(jì)算一次橢圓曲線運(yùn)算。因此,證明時(shí)間與交易金額的漢明權(quán)重是密切相關(guān)的,也就是說,證明時(shí)間與交易金額的值也是相關(guān)的。

1、4 關(guān)于zkSNARK Prover的時(shí)間攻擊

下面,我們進(jìn)入到zkSNARK Prover的時(shí)間攻擊部分,按照上面描述的策略,我們的目標(biāo)是從證明生成的單個(gè)時(shí)間度量中,恢復(fù)有關(guān)保密交易金額的信息。

在下面的部分當(dāng)中,研究者演示了這種時(shí)間攻擊如何揭示Zcash中有關(guān)交易量的信息。

而對(duì)于Monero中實(shí)現(xiàn)的特殊用途證明,類似的攻擊則是無效的。

1、Zcash Prover中的時(shí)間側(cè)信道

研究者表示,對(duì)于Zcash的zkSNARK系統(tǒng),證明時(shí)間在很大程度上取決于證明者witness的值。也就是說,對(duì)于匿名交易,證明時(shí)間與交易的秘密值是密切相關(guān)的。

為了發(fā)送一筆交易,發(fā)送方創(chuàng)建兩個(gè)證明,其中一個(gè)證明已花費(fèi)UTXO的所有權(quán),另一證明新的UTXO是結(jié)構(gòu)良好的。

Zcash使用的是Groth16證明系統(tǒng),對(duì)于攻擊目的而言,只要知道證明者將witness編碼為一個(gè)向量(a1,……,am)字段元素,并且證明者的主要計(jì)算是以下形式的“多重指數(shù)運(yùn)算”:

其中Gi是固定的橢圓曲線點(diǎn),重要的是,Zcash的實(shí)現(xiàn)優(yōu)化了aiGi,其中ai = 0。因此,證明時(shí)間與證明者的witness中非零字段元素的數(shù)量相關(guān)。

由于witness中的交易量是二進(jìn)制編碼的,其漢明權(quán)重值就會(huì)影響證明時(shí)間。而且,由于二進(jìn)制表示的權(quán)重,與數(shù)字的絕對(duì)值相關(guān),因此證明持續(xù)時(shí)間泄露了有關(guān)保密交易金額的信息。

2、評(píng)估

為了評(píng)估時(shí)間攻擊,研究者進(jìn)行了一個(gè)實(shí)驗(yàn)。

下圖顯示了每個(gè)量的證明時(shí)間的平均值及標(biāo)準(zhǔn)差。結(jié)果顯示,證明時(shí)間與交易金額具有很強(qiáng)的相關(guān)性(R=0.57)。雖然時(shí)間泄露只能得出金額的粗略近似值,但這足以讓對(duì)手識(shí)別出價(jià)值巨大的罕見交易。

1、5 討論和結(jié)論

與論文中提到的針對(duì)Zcash和Monero的攻擊(已被修復(fù))相比,上述時(shí)間攻擊是不容易應(yīng)用的,它要求對(duì)手可以對(duì)證明生成進(jìn)行計(jì)時(shí),這取決于用戶的常用模式(例如重付款)或部署策略(例如,將證明外包給遠(yuǎn)程服務(wù))。

如果確實(shí)存在計(jì)時(shí)機(jī)會(huì),研究表明這種泄露會(huì)允許攻擊者對(duì)私人交易金額進(jìn)行粗略估算。

當(dāng)然,本地側(cè)信道攻擊會(huì)是更加有效的,然而,Zcash明確地否認(rèn)了這種威脅。

最終,這種攻擊的存在,對(duì)于非恒定時(shí)間加密貨幣實(shí)現(xiàn)而言,可能會(huì)帶來潛在的威脅。Zcash開發(fā)者正在開發(fā)一個(gè)更成熟版本的橢圓曲線算法,并可能在未來部署到主客戶端中。

灑脫喜簡(jiǎn)評(píng):這類攻擊的提出,為匿名交易系統(tǒng)的設(shè)計(jì)帶來了新的挑戰(zhàn)。研究者希望這項(xiàng)工作能夠提醒相關(guān)項(xiàng)目方及用戶關(guān)于側(cè)信道泄露的威脅,并推動(dòng)開發(fā)諸如恒定時(shí)間的zkSNARK prover之類的密碼學(xué)原語實(shí)現(xiàn)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉