環形簽名如何保護門羅幣發送者的輸出

发布时间:
By Diego Salazar

門羅幣作為隱私幣之王,去中心化的瑞士銀行,隱私性在加密貨幣領域廣為人知. 儘管每個人都知道門羅幣提供了良好的隱私保護,但沒有多少人真正瞭解門羅幣隱私的運作方式.

許多其他加密貨幣,或者區塊鏈媒體在發佈各種加密貨幣的比較圖,或者其它文案時,大多數情況下,總將門羅幣的隱私保護技術標記為RingCT,但這只是部分正確.實際上,Monero對隱私保護採取了三管齊下的方法.分別是隱藏接收者,交易金額,和發送方輸出的技術,隱藏收款人的技術是stealth addresses,中文翻譯成隱蔽位址,有時也被翻譯成一次性位址,隱藏交易金額的RingCT又叫環形機密,而防彈協議,ringCT3.0等都屬於環形機密,最後一項,保護發送方的是ring signatures,中文翻譯成環簽名或者環形簽名.

這種三管齊下的方法意味著,如果其中一項隱私技術被破壞,其他技術仍將發揮作用.這其中環簽名是門羅幣隱私方案中最薄弱的環節,當然了這裡的弱也是相對而言的,讓我們不要那麼浮躁,耐心花一些時間探索它,到底有沒有可能被破解.

如上所述,環簽名的目的是使交易中發送方的output也就是輸出變得模糊.這裡插一句話,在加密貨幣世界裡面,如果類似於輸入input和輸出output這種術語讓你感到困惑,請不用擔心,它們概念並不複雜,今天用人類能懂的語言來解釋清楚.當你聽到輸出output時,請聯想一下支票,人們用來付帳的時候,可以寫一張支票給對方,這在中國不太普遍,你可以把支票想像成一個欠條,它可以表示任何面額,類似五塊,三千,幾萬,或者一個票據,類似於逢年過節憑票可以去商店領若干米麵油,或者蛋糕店的卡,都對應的屬於商店和蛋糕店的output,這種票據像支票一樣在交易雙方之間可以交換和轉讓.對於加密貨幣,發送者的輸出output具有以下功能.

當有人向你支付10個門羅幣時,您將收到10 個門羅幣的輸出.此輸出的面額為10,也就是從發送人的錢包中扣取了10個幣發給了你,同理當你付款時也一樣,一個輸出帳單會離開你的實際錢包,並發給你要付款的對方.

門羅幣隱藏發送者輸出的方式是通過構造若干類似於誘餌輸出,形成一個環形結構,環簽名因此得名. 但是這些誘餌不是憑空捏造的假輸出,它們是區塊鏈過去的真實輸出,只是與當前交易無關,但是對於外部觀察者而言,這些輸出中的每一個看起來都可能與真實的輸出相同.誘餌輸出的大小加上真實的輸出稱為環大小,目前門羅幣的環簽名大小為11.因此,每一筆交易,有十個誘餌輸出和一個真實的輸出.通俗的例子是,當我支付一張支票的時候,我在裡面混了另外十個不同人之間以前互相轉帳的支票,外人看來這11個支票都可能是真的,如何保證沒有人能憑空製造假鈔票,怎麼保證11個支票裡至少一個是真的,下文還會提到,不過這不是本文的討論的重點,包括門羅如何在匿名情況下審計總量,請參考社區和我們其它文章.

既然這樣,為什麼我們只混進去十個假的誘餌呢,我們為什麼不將這個數字增加到100甚至1000呢,誘餌越多越好,真實交易越不容易被發現.是的,從隱私的角度來看,完全沒錯,但是還有其他因素需要考慮.讓我們回到一個實際的例子來瞭解.如果你要轉帳1塊錢給你的朋友,為了保護隱私,所以要混進去十個誘餌,所以你在手機上還要發送十個假的誘餌交易,也就是為了轉帳一塊錢,你要操作11次轉帳. 如果您要轉帳幾次每天,這已經變得很麻煩了,現在,假設我們將誘餌數量增加到1000.哪怕要轉帳的一塊錢,你都要在這個交易裡添加另外1000個毫不相干別人以前的轉帳記錄.這好比你攜帶了成捆的鈔票和支票,去買一個煎餅果子!值得注意的是,這裡只是一個舉例,實際上誘餌本身不是環簽名的一部分,環簽名只是從系統裡自動對它們的引用,但是我們希望這種比喻在幫助理解基本概念方面有所幫助,也就是說為什麼不能在短期內無限增加環簽數量,但是門羅社區一直在開發和研究更好,更小,更快的環簽名方案,今年2020年10月將要部署的CLSAG簽名就是其中一個,它將壓縮門羅幣交易百分之25的大小和至少百分之10的運行速度,我們有一篇單獨的文章,關於CLSAG環簽名原理,這些概念下文還會提到.

門羅幣區塊鏈上的誘餌情況類似.每添加一個誘餌都會增加交易時間和驗證成本.每個節點必須為每筆交易下載整個環簽名,這其中包含實際發送人的輸出以及誘餌.不僅如此,節點還必須進行數學運算,驗證這些輸出中至少有一個是真實的,並且誘餌越多,需要數學運算的時間也會增加.這意味著我們必須找到一個性價比最高的折衷地帶,即遭受分析和攻擊時,環的大小也足夠大到足以掩蓋真實輸出,但又要足夠小以免導致區塊鏈資料急劇增加和效率降低.當我們用更好的方案,構建新的環形簽名時,例如上面說到的CLSAG簽名,僅關注增大多少環簽,或者僅僅關注提速多少是沒有意義的.門羅幣社區希望獲得具體的數學證據,以瞭解哪種環形簽名的尺寸,可以提供最佳折衷方案.環簽誘餌數量太小,隱私保護不足以抵抗資料分析的攻擊.環簽名太大,我們可能在隱私方面獲得的效益十分有限,而在可擴展性方面,遭受不必要地痛苦.

最後一件事要重點聲明的是. 一些門羅幣的參考文獻進行了簡化,或者他們理解就是錯誤的,他們說環簽名隱藏的是發送人,這並非完全正確,區別不僅僅在於學術名詞.在保護隱私方面,發送人本身和發送人的輸出之間的差異很大. 儘管輸出可能與發送方有關聯,但輸出本身並不等於發送方.這裡再舉個例子,A寫了一張支票給了B,B又把這個支票給了C,C又給了F,最後儘管某個環簽的11個輸出裡有一個是A的資訊,這是一個屬於A的輸出,可並不能證明就是他在做交易.因此,即使一個環簽名被破壞了,它也不一定連結到一個人的身份,而且交易金額和接收者都仍然被隱藏起來,從而最大程度地減少了對各方隱私的損害.

這並不是說即使環簽名洩露和被破壞也不重要. 任何洩漏的中繼資料都不是好事,並且有可能暴露超出我們想像更多的資訊,尤其是當大資料時代與其他中繼資料一起使用時.因此,我們將盡最大努力確保設置環簽大小具有嚴格的依據,從而讓中繼資料洩漏風險降至最低,並且在使用者預設情況下,也就是使用者不需要採取任何額外措施,就到達全網匿名轉帳,整個系統都是隱私且安全的.

好吧說到這裡,如果杠精和迫害狂還是擔心,環簽名是不是可能被破壞,那麼我再給你吃一顆定心丸,一些令人難以置信的好消息.即將面世的,比如Triptych, Arcturus, and Lelantus,等正在開發的下一代門羅幣隱私協議,它們具有劃時代的意義,在這些協議中,隨著環簽名大小的增加,資料大小只會按對數增加而非線性縮放. 這意味著我們可以毫無壓力的容納100個誘餌輸出,但是在舊的環簽名技術中,10個誘餌左右基本上就是一個優化的邊際了.門羅幣的環簽名還在進化,未來會完全不同,並且將顯著改善整體的隱私.

關於隱私性和安全性,老生常談,是一場永恆的貓鼠遊戲,保護和破解的攻防戰也許永遠不會停息,好在,門羅幣並不墨守成規,並不僵化和刻舟求劍,相反門羅幣社區總是不斷創新,反省,學習,半年一次的硬分叉升級,社區並不分裂就是大家凝聚起來的共識是動態的,這也正是門羅幣保持隱私之王的秘訣,未來,它也將繼續確保所有人享有最好的,具有實用價值的隱私保護.


進一步閱讀