羣簽名與環簽名總結


1、羣簽名(group signature)

羣簽名(group signature)即某個羣組內一個成員可以代表羣組進行匿名簽名。簽名可以驗證來自於該羣組,卻無法準確追蹤到簽名的是哪個成員。
羣簽名需要存在一個羣管理員來添加新的羣成員,因此存在羣管理員可能追蹤到簽名成員身份的風險。
羣簽名最早於1991年由David Chaum和Eugene van Heyst提出。

2、環簽名(ring signature)

由Rivest、Shamir和Tauman三位密碼學家在2001年首次提出。環簽名屬於一種簡化的羣簽名。環簽名中只有環成員沒有管理者,不需要環成員間的合作。
簽名者首先選定一個臨時的簽名者集合,集合中包括簽名者自身。然後簽名者利用自己的私鑰和簽名集合中其他人的公鑰就可以獨立地產生簽名,而無需他人的幫助。

生成過程
1、密鑰生成。爲環中每個成員產生一個密鑰對(公鑰PKi,私鑰SKi)。
2、簽名。簽名者用自己的私鑰和任意n個環成員(包括自己)的公鑰爲消息m生成簽名a。
3、簽名驗證。驗證者根據環簽名。和消息m,驗證簽名是否爲環中成員所籤,如果有效就接收,否則丟棄。

應用例如,某個用戶在線下進行消費,並通過比特幣進行支付,那麼商家事實上建立了對用戶的線上(比特幣地址)線下(用戶身份)關聯。爲避免個人隱私信息的泄露,用戶必須十分謹慎地對其比特幣帳戶地址進行管理和隔離。從這個角度來而言,比特幣無法滿足交易不可追蹤和不可關聯的條件。
而基於羣簽名(group signatures)基礎上環簽名(ring signatures)技術,提供了可行的匿名性解決辦法。環簽名在保護匿名性方面有很多的用途。

環簽名因爲其簽名隱含的某個參數按照一定的規則組成環狀而得名。而在之後提出的許多方案中不要求籤名的構成結構成環形,只要簽名的形成滿足自發性、匿名性和羣特性,也稱之爲環簽名。

3、羣簽名和環簽名主要特性對比

算法 特性
羣簽名 1. 匿名性:羣成員用羣參數產生簽名,其他人僅可驗證簽名的有效性,並通過簽名知道簽名者所屬羣組,卻無法獲取簽名者身份信息;
2. 可追蹤性: 在監管介入的場景中,羣主可通過簽名獲取簽名者身份.
環簽名 1. 完全匿名性:其他人僅可驗證環簽名的有效性,無法獲取簽名者身份信息;
2. 不可追蹤性:無法追蹤簽名對應的簽名者信息.

4、簽名流程

流程 說明
生成羣 生成羣公鑰(gpk),羣主私鑰(gmsk)和羣參數(可用不同線性對參數生成羣,sig-service支持A, A1, E 和 F類型線性對,默認使用A類型線性對)
加入羣 羣主爲羣成員產生私鑰(gsk)和證書(cert)
生成羣簽名 羣成員用私鑰和證書產生羣簽名
羣簽名驗證 其他人通過羣公鑰、羣參數驗證羣簽名信息的有效性(此時其他人僅知道簽名者屬於哪個羣,但無法獲取簽名者身份信息)
追蹤簽名者信息 在監管介入場景中,羣主通過簽名信息可獲取簽名者證書,從而追蹤到簽名者身份


環簽名主要流程

流程 說明
初始化環 生成環參數
爲環成員產生公私鑰對 成員加入環時,rpc 服務爲環成員產生公私鑰對
生成環簽名 環成員使用私鑰和其他環成員公鑰產生匿名簽名,環大小可由用戶根據性能和安全性需求自定義指定(環越大,安全性越高,性能越低;環越小,安全性越低,性能越低,sig-service 默認環大小爲 32)
環簽名驗證 其他人通過環參數和產生環簽名的公鑰列表,驗證環簽名的有效性

5、sig-service-client 基本功能

5.1 羣簽名

** 向機構內成員提供生成羣、密鑰託管以及羣簽名服務 **


機構內成員通過客戶端sig_client訪問羣簽名服務,可生成羣、加入指定羣、請求獲取羣簽名;
部署在可信第三方的羣簽名服務提供密鑰託管功能;
機構成員可通過調整線性對參數,折中安全性和簽名速度
向監管機構提供簽名者追蹤服務


監管可通過羣主獲取某個簽名對應的簽名者身份

5.2 環簽名

向機構內成員提供生成環簽名服務


成員可根據安全性需求動態調整環大小,在安全性和簽名速度兩方面做折中
支持密鑰託管 && 密鑰自管理


簽名驗證 && 存證
通過 sig_client 客戶端,可鏈上驗證羣簽名 && 環簽名,保證簽名不可篡改;
sig_client 客戶端以聯盟鏈機構身份(如 webank 等)將簽名數據上鍊,其他成員可重複驗證簽名的有效性(存證的簡單 demo);
區塊鏈上其他成員通過簽名無法獲取機構成員的身份信息,僅可獲取成員所屬的機構和羣組;

6、應用場景

6.1 羣簽名場景


場景1: 機構內成員(C端用戶)通過客戶端 sig_client 訪問機構內羣簽名服務,並在鏈上驗證簽名,保證成員的匿名性和簽名的不可篡改,監管也可通過羣主(可信機構,如 webank)追蹤簽名者信息(如拍賣、匿名存證等場景)


場景2:機構內下屬機構各部署一套羣簽名服務,通過上級聯盟鏈機構成員,將簽名信息寫到區塊鏈上,鏈上驗證羣簽名,保證簽名的匿名性和不可篡改;(如徵信等場景)


場景3:B端用戶部署羣簽名服務,生成羣簽名,通過 AMOP 將簽名信息發送給上鍊結構(如webank),上鍊機構將收集到的簽名信息統一上鍊(如競標、對賬等場景)


6.2 環簽名場景


場景1(匿名投票):機構內成員(C端用戶)通過客戶端 sig-service-client 訪問機構內環簽名服務,對投票信息進行簽名,並通過可信機構(如 webank)將簽名信息和投票結果寫到鏈上,其他人可驗證簽名和投票,僅可知道發佈投票到鏈上的機構,卻無法獲取投票者身份信息


其他場景(如匿名存證、徵信):場景與羣簽名匿名存證、徵信場景類似,唯一的區別是任何人都無法追蹤簽名者身份


匿名交易:在 UTXO 模型下,可將環簽名算法應用於匿名交易,任何人都無法追蹤轉賬交易雙方

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章