近期,隱私地址專案 Nocturne 宣布獲得 V 神投資,而隱私地址技術該如何實現,效果為何?本文出自萬物島獨立研究員陳劍(@jason_chen998)的研究推文。
(前情提要:V神開講「以太坊前世今生」:隱私、安全等與六年前一樣面臨挑戰 )
(背景補充:DeFi監管之殤》為何Uniswap在天堂,Tornado Cash卻在地獄? )
聊聊「面向Vitalik創業」的項目 @nocturne_xyz 和晦澀的隱私地址技術前天 Nocturne 剛官宣融資 600 萬美金且拿到了 @VitalikButerin 投資,為什麼我叫它面向 Vitalik 創業呢,因為該項目主打的技術是隱私地址,而今年 1 月 20 號Vitalik就曾在自己的部落格中專門發文探討隱私地址的可行性,我當時在第二天也針對這篇文章進行了拆解分析,大家可以翻一下進行溫習回顧。
Nocturne 的推特帳號第一次發文是今年的 5 月份,即在 Vitalik 探討隱私地址 5 個月後,然後又過了 5 個月拿到了 Vitalik 的投資,所以還是挺成功的一次面向Vitalik創業的案例
那單獨聊聊隱私地址這個事吧,到底是做什麼的,如何實現,效果怎麼樣。
隱私地址的核心就是實現 Token 轉移過程中的匿名性,也就是 tornado cash 之前實現的效果,匿名轉帳是一個 Crypto 永恒的話題,也是非常剛性的需求,我接下來會盡可能通俗且詳細的講解隱私地址是如何實現的,又和 tornado cash 有何區別。
延伸閱讀:解讀Tornado Cash混幣器:監管者的眼中釘,卻是最精妙的ZK零知識應用
但首先要明確隱私地址絕對不是新概念,而是存在很久並且已經有不少項目和衍生協議產生,門羅幣其實差不多也是這樣的原理,但Vitalik是其在以太坊生態理論化的重要推動者。
在 22 年 8 月的以太坊研究者論壇中,Nerolation 提出了能否將 ZK 和 ERC721 結合實現匿名發送和接收NFT,Vitalik 回覆說你想的太麻煩了,也許用一種更簡單的方式實現,並暫時叫它 ERC721S,原帖連結
然後緊接著 Nerolation 和 Vitalik 就提了一個 EIP5564,將其徹底推進標準化
但其實在更早之前就已經有一個項目將隱私地址產品化了,至少從成熟度來說達到了可用狀態,但是我不清楚為什麼沒有得到 Vitalik 的青睞…反而是一年後才姍姍來遲的 Nocturne 被寵幸了
隱私地址的原理簡單來說就是為每一次交易都生成一個一次性的新地址,付款人將錢轉到新地址,且新地址只能由收款人進行控制,用完即拋,手動操作就相當於 A 生成了一個新地址,然後將該地址的私鑰告訴 B,A 再往裡面轉 10 U,因為只有 B 知道這個地址的私鑰,所以 B 則可用控制這個地址並將 10U 打入交易所,所以從公開的鏈上只能看到 A 往一個空地址轉了 10U,然後這個地址又將 10U 轉入交易所,但至於具體是誰把 10U 轉入交易所則沒人知道。
但以上過程是依賴很多人工操作,且涉及到私鑰的傳遞,不光麻煩風險也很高,那有沒有什麼辦法可以將這個流程給產品化呢,思路就是在於怎麼樣能夠自動實現「A生成一個只有B才能控制的地址」過程。
這個就是隱私地址所要完成的任務,這裡面也用到了 ZK 的思想。
回到剛才的例子,舉個例子,A 想給 B 轉 10U,A 已經知道了 B 的公開地址,但 A 又不想讓別人知道 A-B之間的交易鏈路,於是 A 生成一對臨時私匙和公鑰,並將該臨時私匙和 B 的公開地址結合後生成一個隱私地址,然後 A 將 10U 轉入隱私地址。
從鏈上來看這時候 A 往一個新地址中轉入了 10U,這時候出現了兩個問題,首先 B 如何知道這個新的隱私地址是 A 為 B 創建的?也許 A 還給 C、D、E 等其他人也發了 10U 呢,其次即使 B 知道該隱私地址就是 A 為他創建的,那 B 又該如何拿到這新地址的 10U 或者說如何控制該新地址呢?
剛說到 A 用來生成隱私地址的時候會先生成一對臨時私匙和公鑰,其中臨時私匙 + B公開地址 = 隱私地址,而 B 私鑰 + 臨時公鑰也等於隱私地址,所以 A 在發送 10U 到隱私地址時也會同時將臨時公鑰發布在鏈上,B 則去掃描公鑰註冊表,對於每個新發現的臨時公鑰 B 都會將他的私鑰結合起來生成一個隱私地址,如果裡面恰好有錢則說明是A給他的。
然後再用 B 自己的私鑰就可以計算出該隱私地址的私鑰,從而用隱私地址的私鑰控制隱私地址進行下一步轉帳交易。
從鏈上來看的效果則是 A 往一個新地址轉了 10U,然後 10U 轉移到了交易所,但到底是誰操縱新地址進行轉移則在鏈上體現不出來,新地址就像是一個提線木偶被後面的一雙手進行控制。
以上就是隱私地址的原理,到現在 Nocturne 的測試網和主網都沒有上線,且無 roadmap,所以到底Nocturne 是否能夠做到 tornado cash 的效果還是要再觀察。