區塊鏈

環簽名


環簽名是一項技術上較為複雜的創新,但是對於令牌匿名化和身份應用兩者都非常令人鼓舞。環形簽名本質上是一種簽名,用於證明簽名者俱有與一組特定的公共密鑰中的一個相對應的私有密鑰,而沒有透露哪一個。關於此句法在數學上如何起作用的兩句解釋是,環形簽名算法合併了一個數學函數,該函數通常僅可以使用公共密鑰來計算,但是在知道私有密鑰的情況下,可以讓一個種子添加到輸入中以產生輸出是任何想要的特定值。簽名本身包含一個值列表,其中每個值都設置為應用於先前值的函數(除了一些種子);要創建有效的簽名,需要使用私鑰知識來“關閉循環”,強制計算出的最後一個值等於第一個。給定以這種方式創建的有效“環”,任何人都可以毫無疑問地驗證它是否為“環”,因此除了給定種子之外,每個值都等於根據先前值計算的函數,但是沒有辦法告訴在環中的哪個“鏈接”上使用了私鑰。

環簽名插圖

還有一個環形簽名的升級版本,稱為可鏈接的環形簽名,它增加了一個額外的屬性:如果使用相同的私鑰對簽名進行兩次,則可以檢測到該事實–但不會透露其他數據。由於令牌匿名化,該應用程序是相當基本的:當用戶需要花費一枚代幣而不是讓他們給出常規簽名以直接證明其公鑰的所有權時,公鑰會組合成組並要求用戶只需證明該組的成員身份即可。由於具有可鏈接性,在組中只有一個公鑰的用戶只能在該組中消費一次;衝突的簽名將被拒絕。

環形簽名也可以用於投票應用:不是使用環形簽名來驗證一組代幣的支出,而是用於驗証投票。它們也可以用於身份應用:如果一個人想要證明自己屬於一組授權用戶,而又不透露哪個用戶,那麼環形簽名就非常適合這一點。環簽名比簡單簽名在數學上涉及更多,但是它們實現起來非常實用。在此處可以找到以太坊頂部的一些用於環簽名的示例代碼。

舉例來說,使用Monero的環簽名的結構如下:

愛麗絲需要向鮑勃發送10個門羅幣,以便她通過門羅幣錢包開始向鮑勃交易。
愛麗絲對此筆交易的數字簽名是一次性支出密鑰,從她的錢包中支出支出開始。
環形簽名的非簽名者是過去的交易輸出,這些輸出是從區塊鏈中任意選擇的,並在交易中被當作假貨。
所有環成員都是可以想到的交易簽名者,局外人在計算上無法識別實際簽名者。
環形簽名的大部分共同構成了交易的輸入。
交易的創建者(Alice)可以證明有資格花費指定的交易金額,而不會與環中的其他人區分開。
儘管Alice的公鑰已在她自己的交易中使用,但它可能被Monero網絡中的其他交易任意使用,這是一個糾結因素。

此外,唯一的一次性密鑰的自動創建會阻止事務鏈接,並且可以通過優化Diffie-Hellman密鑰交易所來實現。

在像Monero這樣的以隱私為中心的加密貨幣網絡上進行匿名交易的一個問題是,防止雙重支出非常困難,因此,如果不能確保全面的雙重支出保護,則會使網絡無法用作數字貨幣。可以通過使用與環簽名方案相關的關鍵圖像來解決此問題。

RING SIGNATURES帖子首先出現在Nvest Labs。

資訊來源:由0x資訊編譯自NVESTLABS。版權歸作者Asma所有,未經許可,不得轉載

點擊繼續閱讀


0X簡體中文版:環簽名