主頁 微信公眾號:密碼應(yīng)用技術(shù)實戰(zhàn) 博客園首頁:https://www.cnblogs.com/informatics/ GIT地址:https://github.com/warm3snow 簡介 在《門羅幣隱私保護之隱形地址》文章中,我們重點介紹了門羅幣Monero的隱形地址技術(shù),門羅幣通過隱形地
微信公眾號:密碼應(yīng)用技術(shù)實戰(zhàn)
博客園首頁: https://www.cnblogs.com/informatics/
GIT地址: https://github.com/warm3snow
在 《門羅幣隱私保護之隱形地址》 文章中,我們重點介紹了門羅幣Monero的隱形地址技術(shù),門羅幣通過隱形地址保證了交易的不可鏈接性,并實現(xiàn)了用戶的隱私保護和監(jiān)管需求。
本文將繼續(xù)介紹門羅幣的另一個核心技術(shù)——環(huán)簽名技術(shù),Monero通過環(huán)簽名技術(shù),實現(xiàn)了交易的不可追蹤性。
注:incoming和outgoing交易分別表示用戶的收款和支出交易。
環(huán)簽名 ( Ring Signature )是一種數(shù)字簽名方案,允許一組用戶中的任何一個用戶為某個消息生成簽名,而不需要透露具體是哪個用戶生成的簽名。環(huán)簽名的主要特點是它提供了 簽名 的 匿名性 和 可驗證性 ,確保簽名者的身份在簽名過程中保持隱私。
環(huán)簽名的基本概念
環(huán)的大小是環(huán)簽名方案的一個重要參數(shù),環(huán)越大,簽名者的身份越難以確定,簽名的匿名性越高。但是環(huán)的大小也會影響簽名的計算和驗證性能,因此需要在匿名性和性能之間進行權(quán)衡。
環(huán)簽名構(gòu)造和驗證流程
環(huán)簽名方案 涉及一個三元組 \((KeyGen, Sign, Verify)\) ,其中:
回顧在 《門羅幣隱私保護之隱形地址》 介紹的交易模型,Bob作為收款方,能夠驗證每一筆相關(guān)交易的有效性。
進一步說明:
值得注意的是, \((P, x)\) 是 一次性密鑰 ,當(dāng)Bob花費這筆收入時,會使用該密鑰參與環(huán)簽名,之后可以丟棄。
門羅幣使用環(huán)簽名技術(shù),實現(xiàn)了交易的不可追蹤性。門羅幣的環(huán)簽名方案基于CryptoNote協(xié)議。在CryptoNode協(xié)議中,環(huán)簽名交易模型如下:
門羅幣環(huán)簽名方案涉及一個四元組 \((KeyGen, Sign, Verify, Link)\) ,其中:
門羅幣的KeyGen算法與一般的環(huán)簽名方案類似,目的都是生成公私鑰對
\((P_s, x_s)\)
,其中
\(P_s\)
是簽名者的公鑰,
\(x_s\)
是簽名者的私鑰。
不同的是:
在門羅幣中,由于簽名公私鑰對 \((P_s, x_s)\) 是由隱形地址技術(shù)生成的,并且僅用于一次性簽名,因此門羅幣環(huán)簽名我們也稱為 一次性環(huán)簽名 。
門羅幣的Sign算法如下:
初始化:
計算環(huán)簽名(類似零知識承諾:承諾-挑戰(zhàn)-響應(yīng),可以參考之前的文章 《零知識證明之承諾方案》
計算承諾,承諾由兩個集合組成 \(L\) 和 \(R\) ,集合元素計算如下:
計算挑戰(zhàn)(實際上是前面已有知識的哈希值)
其中, \(m\) 是待簽名的消息,在這里表示交易信息(簽名除外,因為簽名還未生成)
計算響應(yīng)
其中, \(\sigma\) 就是環(huán)簽名的簽名值, \(\sigma\)
區(qū)塊鏈礦工在收到交易后,會對交易進行簽名驗證。礦工已知 \(R = {P_1, P_2, ..., P_n}\) ,以及環(huán)簽名 \(\sigma = (I, c_1, ..., c_n, r_1, ..., r_n)\) , 簽名驗證Verify算法如下:
如果上述等式成立,則簽名有效,否則簽名無效,交易被拒絕。
正確性驗證
在上述推導(dǎo)中,由于 \(P_s = x_s \cdot G\) ,所以: \(-c_s \cdot x_s \cdot G + c_s \cdot P_s = -c_s \cdot P_s + c_s \cdot P_s = 0\)
在上述推導(dǎo)中,由于 \(I = x_s \cdot H_p(P_s)\) ,所以: \(-c_s \cdot x_s \cdot H_p(P_s) + c_s \cdot I = -c_s \cdot I + c_s \cdot I = 0\)
由于 \(L^{'} = L\) 且 \(R^{'} = R\) ,所以:
因此,簽名驗證等式成立,簽名有效。
,密鑰鏡像和密鑰對之間的關(guān)系如下:
密鑰鏡像
\(I\)
的計算方式,反映了用戶密鑰和密鑰鏡像之間存在一一對應(yīng)關(guān)系,而用戶密鑰(x, P)基于隱形地址技術(shù),只使用一次,且與交易綁定。
礦工會記錄所有交易的密鑰鏡像列表,在收到新交易時,會檢查交易中的
\(I\)
是否已存在于列表中,如果存在,則說明該交易的(x, P)已經(jīng)被使用過,是一筆雙花交易,交易被拒絕。
環(huán)簽名是門羅幣的另一個核心技術(shù),通過環(huán)簽名技術(shù),實現(xiàn)了交易的不可追蹤性。本文簡單介紹了環(huán)簽名的基本概念,并詳細介紹了門羅幣的環(huán)簽名方案,包括密鑰生成、簽名、驗證和雙花驗證等算法。希望通過本文的介紹,讀者對隱私幣的匿名技術(shù)有更進一步的了解。
門羅幣隱私保護使用了多種技術(shù),包括隱形地址、環(huán)簽名、機密交易等,這些技術(shù)共同構(gòu)成了門羅幣的隱私保護體系。在接下來的文章中,我們將繼續(xù)介紹門羅幣的其他隱私保護技術(shù)。
MethodTimer:一個輕量級的.NET運行耗時統(tǒng)計庫
閱讀構(gòu)建人工智能模型基礎(chǔ):TFDS和Keras的完美搭配
閱讀創(chuàng)建鴻蒙應(yīng)用的橫屏顯示直尺應(yīng)用全程解析
閱讀WiFi基礎(chǔ)(七):WiFi漫游與WiFi組網(wǎng)
閱讀遷移學(xué)習(xí):人工智能模型訓(xùn)練的絕學(xué)
閱讀如何使用 Pytorch 中的 DataSet 和 DataLoader
閱讀golang slice相關(guān)常見的性能優(yōu)化手段
閱讀連接Elasticsearch服務(wù)器的Python代碼示例
閱讀國產(chǎn)操作系統(tǒng)上實現(xiàn)RTMP推流攝像頭視頻和麥克風(fēng)聲音到流媒體服務(wù)器
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2024 haote.com 好特網(wǎng)