1. 程式人生 > >一文讀懂環形簽名技術

一文讀懂環形簽名技術

區塊鏈錢包人人都聽說過。實際上錢包這個詞並不十分恰當。在一般人的理解裡,錢包是用來存錢的,電子錢包——如支付寶等——也只是把現實中的貨幣電子化,本質上是一樣的,而區塊鏈錢包並非如此。區塊鏈錢包實際上並不儲存任何數字貨幣,它主要是用來儲存和管理私鑰,並通過私鑰進行交易。這樣看來,將其命名為“私鑰管理平臺”似乎更為妥當些。

在之前的文章裡,我們介紹了正在開發中的Trias錢包。Trias錢包除了會有區塊鏈錢包的一般功能外,尤其注重錢包的私密性和安全性,其私密性主要是通過環形簽名技術來實現的,那麼,如何理解環簽名究竟是什麼,它又是如何保護髮送者的隱私呢?本文旨在對Trias錢包採用的環形簽名技術做一個簡要的介紹。

環簽名技術思想,最早可以追溯到十七世紀的法國。相傳,法國群臣向國王提意見的時候,為了不讓國王查出是誰帶的頭,便採用了這種環形簽名的方式,所有人的姓名以圓環的形式排列,隱匿了順序,首倡人也就無從查起。

談到環簽名技術,就不能撇開風靡一時的門羅幣(Monero)。受環簽名技術所賜,門羅被公認為是一個私密性強,不可追蹤的加密貨幣。

 

一言以蔽之,環簽名技術的意義,在於實現了交易的隱私性,即通過區塊鏈系統中無關節點無法追查交易的傳送方。簡而言之,簽名由私鑰及諸多公鑰產生,當其它節點驗證時,只能確定簽名是諸多公鑰中的一個,卻無從定位到哪個公鑰才是具體的傳送方。

在很多人看來,比特幣已經具有很強的私密性。和比特幣的私密性相比,環簽名有什麼特殊的優勢呢?

比特幣的私密性有著明顯的缺陷。在比特幣交易中,地址通常以收款方出現,有人要給我傳送比特幣,首先我會把我的地址交給他。但關鍵在於,一旦比特幣地址和人的真實身份掛鉤,其匿名性將會蕩然無存。由於比特幣地址是公開的,其交易記錄,比特幣數量都可以清楚查到。作為個人,如果我持有大量的比特幣,一旦我的地址暴露,很容易被不法之徒盯上;而作為大型持幣機構,則會有很多人時刻盯著他們的賬戶,通過觀察其資金流向,進而推測未來市場的態勢。

關於環簽名,人們普遍會產生兩個問題,一是匿名性導致的雙花問題;二是對環簽名的具體作用過程不太理解。比如在環簽名的系統下,我向賣家購買某項服務,系統是如何在隱匿我的身份的同時,防止雙花呢?

當我構造⼀筆交易時,系統首先會從記錄的歷史交易中,找尋到與自己想要使用的交易額度同等⾯值的其它輸出記錄 (屬於其它公鑰)。比如我買了一根5元的冰激凌,系統便會找到內部其他的5元交易作為誘騙輸出,而其中只有一個的簽名是由真正的發起者輸出的,任何不相關節點(包括超級節點)都無法知道發起方是誰。

至於雙花問題,我們知道,“雙花問題”又稱“雙重支付問題 ”,形象地說,任何接收到電子貨幣的人都能夠複製它並且多次任意傳送,外界無法確認某筆交易是否出現重複支付。由於在環簽名系統中,消費發起者的真實身份是隱匿的,節點們並不知道誰才是真正的傳送方,這給防止雙花問題帶來不便,為解決這個問題,Trias借鑑了門羅系統採用了金鑰映象技術(key image)。

即相同的公鑰會產生相同的key image,系統中所有的節點會維護一個已見到過所有的key image集合,如果⼀筆交易的 Key Image 出現在該集合中, 則被認為是⽆效的。這樣就通過key image使得每個交易都是不同的,礦工據此可以非常容易地檢測,判斷是否雙花。

目前,用到環簽名技術的數字貨幣,如門羅幣,是公認的隱私性最好的加密貨幣之一。但凡事總有兩面,以環簽名技術進行加密,會造成交易體積變大等影響,對平能效能有著更到的要求。

毫無疑問,環簽名的技術不僅能應用於加密貨幣,也能應用於區塊鏈錢包,或者去中心化操作平臺。Trias CTO 魏明認為,未來區塊鏈行業將會更加開放,隱私性將會受到前所未有的重視。