IoTeX密碼學家為你的隱私保駕護航——區塊鏈隱私增強技術系列之「隱私地址」
使用區塊鏈技術,隱私就能受到保護?大可安枕無憂?通過分析交易圖譜並結合其他信息,完全可以揭示區塊鏈地址背後的真實身份!
不用驚慌!無需失措!IoTeX密碼學家運用區塊鏈隱私增強技術之「隱私地址」為你的隱私保駕護航。
區塊鏈隱私增強技術系列
——隱私地址(I)
現有的區塊鏈,包括比特幣和以太坊在內,都是一種公共、開放的分散式賬本;由於沒有過多的對參與者的限制,交易的所有細節都以明文存儲在區塊鏈上。
在分類帳本中,交易的實體只能通過由公鑰導出的地址來進行標識。這就意味著這個地址與一個現實人物相關聯,但公眾是不知道該人是誰,這種記賬通常被認為是「偽匿名」。
最近的研究表示:通過分析交易圖譜並結合其他信息,可以揭示區塊鏈地址背後的真實身份。鑒於此,人們開始傾向於為區塊鏈交易添加隱私保護功能。主要出發點包括管理與執法相關的問題以及保護公司的敏感信息等等。
隱私地址密鑰管理機制
隱私地址是一項用於保護加密貨幣接收者隱私的隱私增強技術。隱私地址要求發送方代表接收方為每筆交易創建隨機的一次性地址,以便公眾無法對同一收款人的不同轉賬進行關聯。
基礎隱私地址協議(BSAP)
基礎隱私地址方案是2011年由名為"ByteCoin"的比特幣論壇成員首先發布的,該方案依賴於橢圓曲線密鑰交換演算法(ECDH)協議,其工作原理如下:
發送方和接收方分別擁有私鑰/公鑰對(a,A)和(b,B),其中A = a·G和B = b·G,G是橢圓曲線組的基點。
發送方和接收方都可以使用ECDH計算共享密鑰c:c = H(a·b·G)= H(a·B)= H(b·A),其中H(·)是一個密碼學哈希函數。
發送方使用c·G作為發送付款的臨時地址。
接收方主動監視區塊鏈並檢查是否有一些交易已發送到公布的目標地址c·G。如果有,則可以使用相應的私鑰c確認該筆支付。
BSAP的設計有兩個主要問題:
i)臨時地址在兩個通信實體之間是固定的,這會導致這些實體之間的交易可以很容易地進行關聯;
ii)發送方和接收方都可以計算私鑰c,因此,如果接收方沒有及時確認付款,發送方可以改變主意並收回款項。
改進的隱私地址協議(ISAP)
為了解決BSAP中的設計缺陷,Nicolas van Saberhagen在2013年的CryptoNote白皮書中詳細介紹了一種名為ISAP的改進方案,後者於2014年由Peter Todd在比特幣協議中進行了改進。ISAP是BSAP的擴展方案,它運用了如下所述的密鑰推導技術:
接收方擁有一個私鑰/公鑰對(b,B),其中B = b·G,G是橢圓曲線組的基點。
發送方生成一個臨時密鑰對(r,R),其中R = r·G隨著交易進行傳輸。
發送方和接收方都可以使用ECDH 計算一個共享密鑰c:c = H(r·b·G)= H(r·B)= H(b·R),其中H(·)是一個密碼學哈希函數。
發送方使用c·G + B作為發送付款的臨時地址。
該接收方主動監控區塊鏈並檢查一些交易是否已被發送到上述公布的目標地址c·G + B。如果是,則使用相應的私鑰c + b來確認該筆支付。請注意,臨時私鑰c + b只能由接收方計算。
儘管ISAP解決了BSAP的上述設計缺陷,但區塊鏈節點仍然需要使用其私鑰b來主動掃描目標地址c·G + B,這與安全存儲私鑰的慣例相反,私鑰的連續使用顯著增加了被破解的風險。
雙重密鑰隱私地址協議(DKSAP)
為了消除ISAP關於私鑰的過度使用,2014年由名為rynomster / sdcoin的開發人員為ShadowSend (這是一種高效且分散的匿名錢包解決方案)實現了一個雙重密鑰隱私地址協議DKSAP。
自那時開始,DKSAP已經在眾多加密貨幣系統中得到了實施,其中包括Monero,Samourai Wallet和TokenPay等等。該協議利用兩對密鑰(「掃描密鑰」對和「支付密鑰」對)來計算每筆交易的一次性支付地址,詳細工作原理如下:
接收方擁有兩個私鑰/公鑰對(s,S)和(b,B),其中S = s·G和B = b·G分別是"掃描公鑰"和"支付公鑰"。這裡G是橢圓曲線組的基點。
發送方生成一個臨時密鑰對(r,R),其中R = r·G隨著交易進行傳輸。
發送方和接收方都可以使用ECDH計算共享密鑰C:C = H(r·s·G)= H(r·S)= H(s·R),其中H(·)是一種加密哈希函數。
發送方使用c·G + B作為發送付款的臨時地址。
該接收方主動監控區塊鏈並檢查一些交易是否已被發送到上述公布的目標地址c·G + B。根據錢包是否加密,接收方可以用兩種不同的方式計算相同的目標地址,即c·G + B =(c + b)·G。如果有匹配,則可以使用相應的私鑰c + b來確認支付。請注意,臨時私鑰c + b只能由接收方計算。
在DKSAP中,如果審核員或代理伺服器存在於系統中,那麼接收器可以共享「掃描私鑰」 和「支付公鑰」 給審核員/代理伺服器,以便這些實體可以代表接收方掃描這些區塊鏈交易。但是,他們無法計算臨時私鑰c + b並支付付款。
基於區塊鏈的物聯網(IoT)系統面臨的挑戰
DKSAP為交易接收方提供了強大的匿名性,並使其能夠保證接收方收到不可關聯的付款。然而,這種方法的代價是區塊鏈節點需要不斷計算公布的目標地址並在區塊鏈中找到相應的匹配地址。
雖然這個過程對於計算機來說非常適用,但它對資源受限的物聯網設備提出了新的挑戰。所以我們面臨的問題是「能否通過做出某些權衡使得DKSAP能夠適合基於區塊鏈的物聯網系統?」此外,使用隱私地址的交易可以很容易地識別,因為區塊鏈的交易包含一個臨時密鑰,這會導致一些隱私泄漏。因此,另一個問題是「當我們使用隱私地址時,我們能否在某種程度上減少這種隱私泄漏?」
要了解IoTeX如何應對這些挑戰,請繼續關注我們關於隱私地址和基於物聯網系統的下一篇文章!
聯繫IoTeX
TAG:IoTeX社區 |