a16z:清晰優選方案以解決全球密碼學的關鍵問題


在公鑰密碼學中,將加密貨幣金鑰與身分正確關聯一直是個難題。沒有明確的身份關係,可能導致資訊外洩。現有解決方案包括公鑰目錄、基於身分的加密貨幣(IBE)和基於註冊的加密貨幣(RBE)。公鑰基礎設施(PKI)雖然常用,但維護成本高且需依賴信任第三方。 IBE無需全域目錄但依賴信任金鑰產生器,RBE則不依賴受信任第三方而透過關鍵策展人管理。每種方法在匿名性、效率和複雜性上各有優劣,適用於不同的應用情境。

撰文:Noemi Glaeser,a16z 加密貨幣

撰文:Chris,Techub News

在公鑰密碼學中,一直以來都有一個難題,那就是如何將加密貨幣金鑰(如公鑰)正確地與一個具體的(身分例如某個人或組織)關聯起來。這個問題的關鍵在於,要有一種公開且一致的方式來顯示身分和客戶端之間的關係,這樣大家才能放心地使用這些客戶端來加密貨幣資訊。

如果沒有這樣明確的關係,其他人可能無法確定某個終點到底屬於誰,這樣就可能把加密貨幣資訊發送給錯誤的人,導致資訊外洩或其他嚴重的後果。在Web3 中,這個問題仍然存在。

對於上述的問題,目前有明確的解決方案:公鑰目錄、基於身分的加密貨幣(IBE)、和基於註冊的加密貨幣(RBE)。這種清晰的方法在匿名性、互動性和效率上各有各的優點例如,IBE 需要強大的信任基礎,但在某些情況下,IBE 在匿名性和效率上表現得更好。本文旨在探討這種透明方法在區塊鏈上的應用,並比較它們的優點。

確實方法

總的來說,將加密貨幣金鑰與身分資訊關聯的常用方法是使用公鑰基礎設施(PKI),其中核心部分是一個公鑰目錄。在這種方法中,發送訊息的人需要有一個受信任的人第三方(即維護此目錄的機構,通常是授權頒發機構)進行互動,促進發送加密貨幣訊息。

然而,在Web2 的環境中,維護這個皇冠目錄需要較高的成本以及繁瑣的作業。此外,使用者也面臨頒發機構可能剝奪權力的風險。

密碼學家提出了一些替代方案,以解決公鑰基礎設施(PKI)存在的問題。 1984年,Adi Shamir提出了基於身分的加密貨幣(IBE),其中一個標誌(例如電話號碼、電子郵件或這種方法消除了維護全局目錄的需要,但引入了一個新的問題:必須依賴一個受信任的第三方(金鑰產生器)來產生私鑰。

2001年,Dan Boneh和Matthew Franklin提出了第一個實用的IBE構造,但這種技術非常廣泛採用,主要是在一些封閉的生態系統中使用,如企業或政府的部署環境。 IBE並不廣泛使用的原因之一可能是它需要依賴一個強大的信任假設,即信任第三方產生得金鑰。

正如本文後續將要討論的,這種信任問題可以透過依賴一個受信任的多方(即一個參與者組成的信託人數)來解決,而區塊鏈技術可以輕鬆實現這一點。

優點和缺點

在比較這幾種加密貨幣方案時,需要考慮許多不同的因素,我對此做出以下假設:

使用者不會更新或撤銷他們的金鑰:這意味著在討論中假設每個使用者的金鑰都是固定的,不會改變。

智能合約不使用任何鏈下的數據可用性服務(DAS)或blob數據:存在,假設智能合約完全依賴鏈上數據,不涉及鏈外的數據服務或額外的數據存儲。

公鑰目錄

任何人都可以透過呼叫智能合約,將一個沒有被別人佔用的ID清晰(id, pk)邊境加入鏈上目錄。

a16z:解決全局密碼學核心問題的清晰優選方案

去中心化的PKI是指透過智能合約來維護一個(ID)及其對應的身份的目錄。這個目錄是公開的,並且不依賴中心化的第三方。例如,以ENS為例,它維護有了一個網域名稱(即身分)與相關元資料的對應關係,包括該網域所解析的位址(從這些位址的交易可以推導出拓樸)。 ENS是一個更複雜的系統,不僅記錄了映射,還儲存了其他元資料。去中心化的PKI的功能相對來說更簡單:智慧合約只需維護一個列表,記錄每個身分對應的燈泡即可。

當用戶想要註冊一個身分得時候,首先需要產生一把鑰匙(公鑰和私鑰),或使用已經產生的鑰匙對,將其身分ID和公鑰發送到智慧合約(可能還會支付)一定費用),智能合約會檢查這個ID是否已經被別人註冊過。如果沒有被佔用,智能合約就會將此ID和合約加入目錄。一旦註冊完成,任何人都可以透過詢問智能合約來獲取某個ID對應的端點,則加密貨幣發送訊息給該用戶,如果發送者之前已經加密貨幣過訊息給該用戶,並且已經有了該用戶的端點,就不需要再向智能合約請求端點。有了公鑰後,發送者可以像平常一樣使用它來加密貨幣訊息,然後將加密貨幣後的訊息發送給接收者,接收者使用對應的私鑰來解密訊息,恢復原文。

讓我們來看看這個方法的優點和缺點:

優點缺點非解密:解密過程不需要與其他方互動,解密者可以獨立完成解密。 不簡潔(Not succinct):系統可能在某些方面不夠簡潔,可能意味著複雜性更高,資料量增大,或需要更多資源。 透明性:系統可能在某些方面是透明的,這意味著操作是公開的、可以被審查的。 交互加密貨幣:加密貨幣過程可能需要與其他方進行一定的交互,增加了複雜性。 任意ID:使用者可以自由選擇或使用任意的身份ID,而不受特定格式或規則的限制。 發送者非匿名:發送者的身分匿名在系統中可能無法完全保持。 基於身分的加密貨幣(IBE)

用戶的由他們的全局來表示,唯一,全域不僅用於加密貨幣,還可以用戶的唯一身份識別碼。這種方法需要依賴一個或多個值得信賴的第三方,這些第一另外,這些第三方還需要在系統的整個生命週期內保管一個主密鑰,這個主密鑰在某些情況下可能用於解密或其他重要操作。

a16z:解決全局密碼學核心問題的清晰優選方案

在IBE系統中,使用者並不像傳統加密貨幣系統那樣自己產生一對公鑰和私鑰。正好,用戶使用需要一個受信任的密鑰產生器註冊。密鑰產生器擁有一對主密鑰(包括主私鑰msk和主公鑰mpk)。當使用者提供自己的ID時,鎖產生器會使用主私鑰msk和使用者的ID來計算專屬於該使用者的私鑰。產生的私鑰需要透過一個安全的管道傳遞給用戶,一般來說都是利用金鑰交易所協定來建立這個安全通道。

對於接收者來說,IBE系統簡化了加密貨幣過程。發送者只需一次下載金鑰產生器的主公鑰(mpk),之後就可以使用ID來加密貨幣訊息。對於接收者來說,解密也很簡單註冊用戶可以使用金鑰產生器發送給他們的私鑰來解密收到的密文。

鑰匙產生器的主私鑰(msk)必須長期保留,因為它在系統運作期間需要不斷地產生新的使用者私鑰。這與某些SNARK系統中不同,晚上在受信任的設定過程中生成,但可以在設定完成後觸發。而在IBE系統中,主私鑰不能像SNARK中那樣在初始化後刪除。

即使主私鑰(msk)保管得當,每個註冊用戶仍然需要信任金鑰產生器不會讀取他們的訊息。這是因為金鑰產生器可以隨時保存一個使用者私鑰的副本,或是使用主金鑰私鑰重新計算出使用者的私鑰。

鑰匙產生器還有可能提供使用者一個有問題或確定的私鑰,這種私鑰可以解密部分訊息,但無法解密某些鑰匙產生器設定的特定訊息。這意味著鑰匙產生器產生器具有控制使用者的解密能力,從而可能對使用者的通訊進行某種程度的控製或限制。

優點缺點鏈上儲存恆定/最小:系統在區塊鏈上所需的儲存量恆定或恆定,不會隨著時間增加。 強烈信任假設:系統依賴一個或多個受信任的第三方,這意味著需要對這些第三方有強烈的信任。如果這些第三方被破壞或不可靠,系統的安全性就會受到威脅。 非攻擊加密貨幣:加密貨幣過程不需要與其他方交互,攻擊者可以獨立完成加密貨幣。 發送者匿名:系統可以保持發送者的身分匿名,保護隱私。 任意ID:使用者可以自由選擇或使用任意的身份ID,不受特定格式或規則的限制。 基於註冊的加密貨幣(RBE)

就像IBE一樣,在這個系統中,使用者的身份(例如電子郵件地址或電話號碼)直接承擔他們的主角。但與IBE不同的是,這個系統不再依賴一個受信任的第三方或一群法定人數來管理關鍵。恰恰相反,這種受信任的第三方被關鍵策展人取代。

我將在這部分討論一種高效的RBE構造方式,因為據我所知這與其他實用的RBE構造相比有一個顯著的優勢,它可以在區塊鏈上部署,因為它是基於配對的,而不是基於格子的。

a16z:解決全局密碼學核心問題的清晰優選方案

在RBE系統中,每個使用者自己產生一把鑰匙(包括需要公鑰和私鑰)。使用者也根據他們的私鑰和一個公共參考字串(CRS)來計算一些更新值(標註為a)。這些更新值用於系統中的進一步操作。公共參考字串(CRS)的存在意味著系統的設定並不完全不需要信任。然而,CRS的生成過程採用了一種稱為tau的冪的建構完成方法。這種構造方法可以在鏈上透過多個參與者參與計算。只要有至少一個參與者是加密的,這個CRS就是安全的。

智能合約針對預期數量的用戶N進行了設置,這些用戶被分包到不同的桶中,當在用戶系統中註冊時,需要向智能合約發送自己的身份ID、合約和更新值。一組公共參數pp,這些公共參數不同於前面提到的公共參考字串(CRS)。可以將pp 理解為系統中所有已註冊使用者的簡潔摘要。智慧合約接收到使用者的註冊請求後,對更新值進行檢查,以驗證它們的正確性。一旦驗證通過,智能合約將會使用戶的用戶乘入到pp 中的相應儲存桶中。這一步驟操作實際上將新使用者的使用者匯入系統的公共參數集合中,方便後續操作使用。

在基於註冊的加密貨幣(RBE)系統中,用戶需要在本地保存一些訊息,這些資訊用於幫助他們解密訊息。當有新用戶註冊到與他們相同的群組中時,這些資訊需要更新。用戶可以自己監控區塊鏈來手動更新這些信息,或者智能合約可以提供最近註冊的用戶信息,用戶可以定期獲取這些更新來保持他們的解密信息是最新的。

在這個系統中,發送者只需做兩件事:

下載公共參考字串(CRS):這只需要下載一次,之後不需要再更新。

下載公共參數:發送者需要偶爾下載最新的公共參數。對於發送者來說,重要的是這些公共參數包含了接收者的全域參數,而不必每次都下載最新版本,只要能找到接收者的光源就可以了。

然後,發送者使用下載的CRS、公共參數以及接收者的身分ID,就可以加密貨幣訊息發送接收者。這意味著發送者不需要刷新數據,只要保證公共參數有接收者的客戶端即可就行。

當用戶一條加密貨幣訊息時,首先會收到檢查自己本地儲存的輔助訊息,查看是否有符合某個條件的值(例如透過某個驗證檢查的值),如果用戶在本地找不到符合條件的值值,這意味著他們需要從智能合約獲取最新的更新信息,一旦用戶找到了合適的輔助信息值,他們就可以使用這個值和自己的私鑰來解密收到的密文,從而恢復原始消息。

顯然,該方案比其他兩個方案更複雜。但它所需的鏈上儲存比公鑰目錄少,也避免了IBE 的強烈信任假設。

簡潔的參數:

在鏈上儲存的參數大小與使用者數量的關係是次線性的,這比公鑰目錄所需的儲存量(線性成長)要小,但仍然不是常數,因此在這一點上不如IBE(基於身分)的加密貨幣)系統。

具有一定的互動性的加密貨幣:

發送訊息時,發送者需要一個包含目標接收者的公共參數副本。這意味著發送者需要在接收者註冊後的某個時間點更新這些參數,但不需要為每個接收者單獨更新,因為一次更新可能包含多個接收器的金鑰。整體而言,訊息傳送的互動性比IBE更多,但比使用的匯流排目錄少。

有一定互動性的解密:

和加密貨幣類似,接收者需要部分與加密貨幣時使用的公共參數版本相符的輔助資訊。當有新使用者在某個分組中註冊時,公共參數和輔助資訊會更新,能夠解密密文的值是對應的對於加密貨幣時使用的公共參數版本的。使用者可以選擇定期取得輔助資訊更新,而不是每次都立即更新,避免解密失敗。與公共參數更新不同的是,更頻繁地獲取輔助資訊更新不會洩露隱私資訊。

發送者匿名:

與全域目錄的情況類似,發送者可以獨立加密貨幣訊息(只要它有最新的參數),而不需要查詢與接收者相關的特定資訊。當發送者需要從鏈上讀取資訊時,這些資訊與目標接收者無關(除非發送者只要求某些特定的參數,但這樣可能會洩露部分資訊)。

透明性:

儘管需要透過信任設定(可能是全域系統或外部管理的)來設置,並輸出一個修改過的CRS(公共參考字串),但一旦設定完成,它就不再依賴任何受信任的第三方或Arbitrum群組雖然它依賴於一個協調的第三方(智能合約),但這個系統是完全透明的,任何人都可以充當協調者或通過驗證狀態轉換來檢查其是否可以進行合約運行(這也是為什麼它是智能合約的原因)另外,使用者可以要求一個簡潔的(非)成員資格證明,以檢查他們自己或其他人是否在系統中註冊。這與IBE系統不同,在IBE中,很難讓他們受信任的第三方證明沒有秘密地洩漏解密(例如保存了一個秘密副本​​或洩露給其他人)。相比之下,公鑰目錄是完全透明的。

指標的ID集合:

這裡描述的是E構造的基本版本。為了透明地決定一個ID分組的分組,ID必須有一個公共且確定的順序。電話號碼可以簡單地排序,但對任意字串進行排序則可能非常複雜甚至不可能,因為分組的數量可能非常大或無限的。這可以透過提供一個單獨的一致性來計算這種映射,或者採用後續工作中提出的布穀鳥散列方法來緩解這種複雜性。

收件人匿名:

這樣的方法可以讓密文不會失去修行的身份。

資訊來源:0x資訊編譯自網際網路。版權歸作者Techub News所有,未經許可,不得轉載

Total
0
Shares
Related Posts