作者:陳劍Jason,來源:作者推特@jason_chen998
聊聊“面向Vitalik創業”的項目Nocturne和晦澀的隱私地址技術。前天Nocturne剛官宣融資600萬美金且拿到了VitalikButerin的投資,爲什么我叫它面向Vitalik創業呢,因爲該項目主打的技術是隱私地址,而今年1月20日,Vitalik就曾在自己的博客中專門發文探討隱私地址的可行性,我當時在第二天也針對這篇文章進行了拆解分析,大家可以翻一下進行溫習回顧。
Nocturne的推特账號第一次發文是今年的5月份,即在Vitalik探討隱私地址5個月後,然後又過了5個月拿到了Vitalik的投資,所以還是挺成功的一次面向Vitalik創業的案例。
那單獨聊聊隱私地址這個事吧,到底是做什么的,如何實現,效果怎么樣。
隱私地址的核心就是實現Token轉移過程中的匿名性,也就是tornado cash之前實現的效果,匿名轉账是一個Crypto永恆的話題,也是非常剛性的需求,我接下來會盡可能通俗且詳細的講解隱私地址是如何實現的,又和tornado cash有何區別。
但首先要明確隱私地址絕對不是新概念,而是存在很久並且已經有不少項目和衍生協議產生,門羅幣其實差不多也是這樣的原理,但Vitalik是其在以太坊生態理論化的重要推動者。
在2022年8月的以太坊研究者論壇中,Nerolation提出了能否將ZK和ERC721結合實現匿名發送和接收NFT,Vitalik回復說你想的太麻煩了,也許用一種更簡單的方式實現,並暫時叫它ERC721S,原帖鏈接如下:
https://ethresear.ch/t/erc721-extension-for-zk-snarks/13237
然後緊接着,Nerolation和Vitalik就提了一個EIP5564,將其徹底推進標准化:
https://eips.ethereum.org/EIPS/eip-5564
但其實在更早之前就已經有一個項目將隱私地址產品化了,至少從成熟度來說達到了可用狀態,但是我不清楚爲什么沒有得到Vitalik的青睞……反而是一年後才姍姍來遲的Nocturne被寵幸了。
隱私地址的原理簡單來說就是爲每一次交易都生成一個一次性的新地址,付款人將錢轉到新地址,且新地址只能由收款人進行控制,用完即拋,手動操作就相當於A生成了一個新地址,然後將該地址的私鑰告訴B,A再往裏面轉10U,因爲只有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的效果還是要再觀察。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
標題:讀懂面向“Vitalik創業”的項目Nocturne和隱私地址技術
地址:https://www.torrentbusiness.com/article/73604.html
標籤:隱私地址