隱私交易的實現:Aztec 隱私架構介紹
Aztec 是以太坊上一個旨在解決隱私問題的 zk-rollup:也就是說它是唯一一個從頭开始構建的完全保護用戶隱私的 Layer 2。
為了理解隱私交易這種範式改變以及直接在網絡架構中建立隱私的重要性,我們得先討論“為什么說以太坊不是一條隱私的鏈”。
以太坊:一條公共區塊鏈
大家可能已經聽說過公共账本這個詞,它由兩個部分組成:账戶和余額。
以太坊上最原始的交易是將 ETH 從一個账戶 (地址) 發送到另一個账戶。網絡通過增加某個账戶的余額和減少另一個账戶的余額來記錄這些交易 —— 換句話說,ETH 實際上並沒有”轉移“。
讓我們詳細看看一個例子:snoopdogg.eth 想發送一筆交易給 cozomomedici.eth。
只是兩個商人
以下是交易的經過:Snoop 一开始有 100 個 ETH,然後他的账戶扣了 20 個 ETH。而 Cozomo 一开始有 0 個 ETH,然後他的账戶被計入 20 個 ETH。Snoop 的最終账戶余額為 80 ETH,Cozomo 則為 20 ETH。轉账完成。
ETH 轉账交易的账本示意圖
我們可以在 etherscan.io 上看到每個账戶計入和扣除的交易款項,下圖中顯示的 ”ins“(轉入) 和 "outs"(轉出) 記錄是公开的,所有人可見。下面是一個 ENS 名為 twinkienft.eth 的近期交易歷史記錄。
在這裏記錄了 ta 所有的光輝事跡:twinkienft.eth 的公共交易!
你可能會問:”誰是 twinkienft.eth 啊?” 我也沒有頭緒,但我可以看到 ta 所有的交易記錄!你去 etherscan.io 上看看,你也可以觀察所有被記錄在區塊鏈的交易。
就在 etherscan.io 的首頁!
大家可以看到這裏明顯有問題:我們不僅可以看到所有的账戶交易,還可以看到它們的金額、資產和交易方。
這其實就是公共區塊鏈帶來的作用。由於其公开屬性,公共區塊鏈具有可審計性和可驗證性。
但這也意味着,如果某人的隱私泄露了 (無論是有意還是無意的) —— 我們可以查看他們的完整交易歷史。
跟蹤公共交易數據是一項大生意:像 Chainalysis 和 Nansen 這樣的公司會做一些復雜的分析來關聯各種錢包並監控其交易活動,並對誰持有着什么資產做出概率假設。
大家想象一下,如果你每次刷卡买羊角包時,都得向全世界展示你的銀行账單。這真的很傻,對吧?
這就是以太坊的現狀。
解決方案:账戶加密?
"呃,好吧," 你可能會說,"這很容易解決,只要將账戶、余額和持有者加密就可以了。" 咄,白癡!我怎么會這么蠢。
這就是我每天的感受...
除了討論一下加密账戶如何實現之外:
請回憶一下之前所講的账本。經過對账戶和交易加密之後,我們會得到:
似乎行得通
那么加密之後,網絡應該如何檢查账戶,確保沒有雙花或者共謀的作惡行為。事實證明,要解決這個問題是非常困難的。
回到剛才那個例子。如果 Snoop 和 Cozomo 需要進行交易,那么他們必須要交互,因為網絡不能幫助檢查他們是否進行了有效的交易。
1. Snoop 請求 Cozomo 的加密账戶狀態
2. Cozomo 向 Snoop 發送已加密的狀態
3. Snoop 對 Cozomo 的狀態進行解密,確認交易前的余額
4. Snoop 向 Cozomo 發送一筆加密支付
5. Cozomo 向 Snoop 發送他最新的加密狀態
6. Snoop 解密 Cozomo 的最新狀態,確認交易後的余額 (並且 Cozomo 確實獲得了他被承諾的金額)
這種精心設計的流程有很嚴重的缺點:很昂貴、很耗時,並且你每次只能和一個人進行交互 —— 雙方還必須同時在线。
更糟糕的是,當他們結束了一場雙方對話之後,任何一方都沒有辦法說服世界上的其他人,他們只是互相驗證了他們的一筆交易。
使用票據 (note) 記账不香嗎?
但是,如果我們把歸屬結構顛倒過來呢?以太坊默認使用账戶模式,其中账戶中包含余額。換句話說,查一下账戶,你就會得到它的余額信息。
那如果我們換一種思維方式呢?比如說某筆資產 (用 note 來表示) 的持有者是某人。
账戶裏包含余額信息 vs. 資產票據推導出持有者
Bitcoin 就是使用這種模式,叫做 UTXO (unspent transaction output, 未使用的交易輸出)。但是不用糾結這個術語是什么意思了,把 UTXO 當作現金 (銀行票據) 就好。
讓我們先思考一下,為什么使用現金記账會更安全、更隱私 —— 或者更准確地說,比基於账戶的系統更安全、更隱私。
它之所以安全,是因為只有交易現金的雙方知道其所有權已經易手!而全宇宙的其他人都不會知道。
你可以把現金交易模式想象成某件物品 (note) 的所有權的變更,而账戶交易模式則是兩個账戶的狀態的變更。
圖示:某張加密票據的所有權變更
當一筆 Aztec 交易在進行時,網絡只需簡單地為給定的票據重新分配所有權,而不是更新账戶余額 (增加或減少余額)。
為什么這個模式這么有用?事實證明,加密一張票據要簡單得多,因為只需在上面寫兩個東西:這個票據值多少錢以及它的所有者是誰。那么當它轉手時,只需塗掉舊的所有者的名字,然後寫上新的所有者的名字。
在 Aztec 上進行簡單轉账
那么,在一筆簡單的票據交易中,到底會發生什么呢?
假設 Snoop 有兩張面值為 50 ETH 的票據 (總額為 100 ETH),而 Cozomo 手上沒有任何票據。
Snoop 手上的那兩張票據需要銷毀掉,並且要創建兩張新票據:面值為 80 ETH 的票據分給 Snoop,面值為 20 ETH 的票據則分給其新的所有者 Cozomo。
但是,如果必須披露這些票據的價值,如何保護隱私呢?
嗯..他們並沒有披露這些信息,至少沒有公开。當然,Snoop 和 Cozomo 知道他們交易的資產價值,就像一筆現金交易一樣,但他們不需要向全世界公开。
為了保護他們相互的隱私,Snoop 發布了一筆帶鎖的交易,他知道只有 Cozomo 的私鑰才能解开這把鎖。類比一下,這有點像將這張票據放進一個小小的保險箱中。當然,他們都知道箱子裏有什么 (20 ETH),所以 Snoop 必須要相信 Cozomo 不會在屋頂上大喊:“有人剛給我轉了 20 個 ETH!”
但除此之外,所有權被重新分配的票據會返回到一個數據結構中,這個數據結構包含了所有曾經創建的票據 —— 這是一個默克爾樹哈希,我將在下文簡要地介紹一下它。
在網絡觀察者看來,系統的狀態會是什么樣子的 —— 每張票據的面值和所有者都是完全加密的。
好管家
我們知道 Snoop 銷毀了兩張票據,創建了兩張新的票據,然後把其中一張新票據轉給了他的朋友 Cozomo。那么我們如何確保他們不會共謀作惡,比如雙花?如果 Snoop 銷毀了總值為 100 ETH 的兩張票據,然後創建了總值為 200 ETH 的兩張新票據,那怎么辦?或者,他們直接創建任意數額大小的票據呢?
回想一下這兩個步驟:
1. Snoop 銷毀了兩張面值為 50 ETH 的票據並分別創建了面值為 20 ETH 和 80 ETH 的票據
2. Snoop 將面值為 20 ETH 的票據轉給 Cozomo
為了確保第一步沒有發生可疑的行為,Snoop 需要做的就是向系統 (Aztec) 證明他打算創建的兩張票據和他准備銷毀的兩張票據是等值的。
這被稱為連接-分割交易,這種交易符合這條簡單的等式:A + B = C + D
下面是燒腦部分,跟上了!
為了證明轉出票據 (C + D) 等值於轉入票據 (A + B, 或者說 100 ETH),Snoop 在他的瀏覽器中本地生成了一個零知識證明 (zero-knowledge proof,ZKP)。
利用零知識證明,他能夠證明出這條等式 A + B = C + D,而無需揭露他們的任意資產價值。
然後 Aztec 驗證了這一證明,並表示:”由於這是零知識證明,那么這一定是有效的。“ 此時,智能合約銷毀這兩個轉入票據,然後生成兩個轉出票據,並將新的轉出票據作為加密承諾記錄在票據登記表中。
所有權證明
值得討論的是,如何在 Aztec 中證明票據的所有權,這和在以太坊中證明類似。你如何證明你控制了某個以太坊地址的訪問權 —— 通過使用你的錢包對一個信息進行籤名。
那么你如何證明你能夠訪問 Aztec 的某張票據?一個非常非常奇特的加密籤名叫做零知識證明。
這個證明說,”在 Aztec 狀態中,a) 存在着一張特定價值的票據,b) 我擁有這張票據的所有權。“
那么 Aztec 系統的狀態怎么存儲?它存儲在兩個默克爾樹中:
一顆是票據樹,包含着所有曾經創建的票據;
一顆是無效樹,包含着所有曾經被銷毀的票據
如果你在 Aztec 中擁有一張票據,這意味着這張票據存在於”票據樹“中,並且在”無效樹“中不存在對應的無效票據。
左邊這棵”票據樹“生氣勃勃,而右邊這個”無效樹“則傷心欲絕。如果右邊的樹會說話,它可能會說”我討厭死你了“之類的話。
當我們說到”銷毀“一張票據,這實際上意味着添加一張無效票據到”無效樹“中,而不是刪掉”票據樹“中的一張票據。
默克爾樹簡圖
為了發送那些已證明為我所有的票據,將需要創建一個全新的默克爾樹 (和默克爾根)。一旦”票據樹“和”無效樹“的默克爾根移動到新的值中 (換句話說,系統的狀態已更新),這些默克爾根就會被發布到以太坊的主鏈上,且交易就會被視為已記錄。
寫在最後
我希望本文能讓讀者深刻地理解到為什么隱私如此具有挑战性:我們需要在不違反或暴露用戶數據的情況下,驗證交易是合法且正確執行的。
這些獨特的限制意味着隱私保護架構必須從頭开始架構。Aztec 是唯一一個以這種方式構建的 L2 —— 用戶的隱私通過其核心架構受到保護,並利用零知識證明來維護網絡運作。
來源 | Aztec Network
作者 | Jon Wu
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
歐盟打響穩定幣战爭:21家發行商爭奪,Circle搶先登陸,Tether扶持“代理人”
作者:Weilin,PANews 歐盟《加密資產市場監管法案》(MiCA)對穩定幣發行方的監管規則...
Fractal Bitcoin分形比特幣深度研究報告:原生擴展的比特幣高速公路,重新定義比特幣的可能性
比特幣網絡擴展問題一直是區塊鏈領域的核心話題。從最初的隔離見證(SegWit)到閃電網絡(Ligh...
Stacks完成Nakamoto升級,BTC DeFi會是下一個關注點嗎?
當比特幣突破 9 萬美金,加密市場各個生態都开始了自己的狂歡。 AI 敘事持續火熱,Meme 持續...