Monero技術詳解:核心技術——環簽名(1)

買賣虛擬貨幣
在前文介紹了Monero的一次性地址方案。從方案看來,Monero中的UTXO只有一次性地址,使用者地址是產生一次性地址的基礎,使用者對UTXO的所有權並不能顯現地看出來。傳送人在每次交易時建立一次性地址來接收UTXO,並將一次性地址的相關私密資訊(一次性私鑰)秘密地傳遞給接收人,用以保護接收人隱私。這樣,每個UTXO都具有不同的一次性地址,同一使用者的不同筆UTXO“收入”都看上去沒有聯絡。但是如果僅僅使用一次性地址,那麼只要UTXO被花費出去,那麼同一交易連線的輸入輸出的UTXO之間也可以產生聯絡,也就是說資金的鏈路還是沒有被打斷或者混淆,資金的走向還是清晰可見。從觀察者角度來看,每個UTXO可以看成與不同的使用者對應。如果傳送人在傳送交易的時候引入多個UTXO,並且將真正的UTXO混淆與引入的UTXO集合之中,這樣觀察者追蹤資金鍊路的難度將會加大。多次交易之後資金的追蹤將會是實際上不可行。那麼問題出現了,如何將多個UTXO涉及的一次性地址“捆綁”在一起呢?這裡需要使用到環(群)簽名方案。1. 環簽名概念介紹將真正簽名人隱藏於多個“助攻”簽名人集合之中這一想法最早起源於群簽名,在群簽名之中存在分發中心,分發中心不僅負責分發產生與分發金鑰,並且有機制可以恢復出真正的簽名人。但是在環簽名中,分發中心被徹底取消。使用者金鑰不需要分發,只要使用者自己生成,也無法恢復出真正的簽名人身份。具體來說,環簽名具有如下幾個性質:簽名人混淆性質:旁觀者只能確定簽名出自於群體中的某一成員,僅此而已,具體何人,無從得知,
可連結性:如果同一私鑰對不同的訊息進行簽名,那麼有演算法可以判定這兩個簽名出自於同一私鑰隻手。這種可連結性可與群體有關係,也可與群體無關係。與群體有關係是指,兩個環簽名所選的混淆群體不同,那麼可能無法獲知兩個環簽名是否出自於同一私鑰。與群體無關係,就是說無論兩個環簽名算選的混淆群體是否相同,那麼只要這兩個環簽名出自於同一私鑰,就可以連結起來。不可偽造性:沒有私鑰不能偽造一個合法的環簽名。雖然環簽名概念本身與Monero並無關係,但是這裡依然用Monero的場景來舉例說明某幾個環簽名方案。2. Version-1: 繫結群體的可連結性

2.1 方案

2.2 驗籤

驗簽過程實際上就是從起點(並不一定是簽名人的“起始點”)開始,依次驗證簽名環中相鄰的兩個節點之間是否滿足“編織”的對映關係,並最終是否能回到起始點。

2.3 解釋

這種預先埋陷門的方式,讓帶狀結構首尾銜接成了完整的環狀結構,並且從簽名環看來,無法看出簽名的起點(起點即是真正的簽名人)。

2.4 問題

3. Version-2: 獨立於群體的可連結性

3.1 方案

同樣以Version-1的場景為例描述方案。

4. Version-3: 簡單的多UTXO輸入版本

Version-2的方案構建獨立的環簽名放入到交易中。但是這樣的問題是,環簽名的數量與輸入的UTXO數量成線性增長,這使得交易資料的空間複雜度與簽名、驗籤的時間複雜度都成線性增長,有最佳化的空間。

總之,真正的簽名人,“編織”簽名帶,並且最終,運用自己所具有的私鑰作為“焊接”器,講編織帶的收尾完美地焊接起來。使之成為一個外觀完美的環。

環簽名的作用不僅僅可以用來混淆傳送者,還可以用來作資金數額的區間證明,這個將在後續文章介紹。

免責聲明:

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

推荐阅读

;