Manta:用 Rust 語言開發可擴充套件性的隱私保護服務

買賣虛擬貨幣

6月19日,Manta Network 開發工程師 Jamie Deng 參加了由 Bixin Ventures 主辦的「RUST 區塊鏈開發者 Matching Day」,與來自 Parity 等平臺的開發者一起,共話 Rust 這門當下區塊鏈非常熱門的新興程式語言的魅力。

Jamie 與到場的100多位開發者分享了 Manta 如何用Rust語言開發可擴充套件性的隱私保護服務,以下為演講全文:
很榮幸能代表 Manta Network 來北京參加這次的 Meetup。今天,我要講的主題是用 Rust 語言開發可擴充套件性的隱私保護服務,同時也是 Manta 如何使用 Rust 和零知識證明這個技術來做到隱私保護的。
首先做下簡單的自我介紹。我叫 Jamie,目前在 Manta 擔任軟體工程師,主要工作是後臺服務的開發,到現在使用 Rust 大概有三年時間。
眾所周知,區塊鏈提供了一定程度上的匿名信,但這種偽匿名信和真實的隱私保護還是有著很大的差距的。比如很多的人嘗試追蹤 DeFi 大戶的交易地址,他們的資產和交易很容易暴露於公眾之下,造成隱私的洩露。
之前 Manta 也在社羣發起了一個關於隱私重要性的問卷調查,有超過400人參與了回答。從我們的統計資料來看,有超過83%的人擔憂自己的區塊鏈地址和實際的個人身份關係被洩漏;90%的人或多或少都查詢過別人地址下的餘額和交易記錄;還有72%的人因為隱私問題而避免或者猶豫發起交易。
Manta 願景是希望在波卡生態中做一個即插即用的隱私保護 DeFi 平臺,
如果大家對波卡生態有所瞭解的話,就知道波卡完全是一個由 Rust 語言開發的區塊鏈專案,所以 Manta 使用的開發語言也是 Rust。
我們目前正在做的事情之一是匿名支付 MantaPay。

這個就是 MantaPay 匿名支付的工作過程:我們會以一個 public token 為 base token,然後1:1鑄幣得到對應的 private token,然後使用者得到 private token 就可以去做轉賬了。如果使用者想贖回,則可以按照1:1的比例拿回原來的 token。MantaPay 會支援波卡生態裡面主流的資產,比如 DOT,AUSD,USDT 等等。
然後再來看下 private token 的轉賬如何做到的。在傳統區塊鏈裡,使用者發起一筆轉賬,轉賬前後的狀態在公鏈裡面是屬於公開的資料,任何人都可以查詢到,所以毫無隱私可言。

那麼 Manta 是如何做到的呢?我們這邊當發起交易時,L1 到 L2 的狀態都是被加密的,別人想窺探他的資料,也只能看到一堆雜湊值。然後我們如何做到交易的正確性呢?這裡我們就使用到了零知識證明這個技術。在下圖的π裡包含零知識證明所需的一些引數,比如生成交易 proof 所需的prove key,還有鏈上驗證所需的 verify key。


我們目前使用的是 ZK-Snarks 演算法,在這裡也稍微講下其工作原理。f(x)可以看做是一個 np 問題,如果把y=f(x)在座標系裡繪製出來,那麼x就是這個公式的解的合集,所以我們不希望暴露x,y。然後如何證明 f(x) = y的情況下,不暴露 x,y呢?

我舉一個簡單的例子,Bob 想要告訴自己喜歡 Alice,但自己有比較害羞,不想把這麼肉麻的話直接說出來。所以我們可以把這句肉麻的話轉換成這樣一個待公式f(x)=y,在此之前,我們做 key generation,一個是 prove key,給 Bob 生成交易的proof 用的,另外一個 verify key 給 Alice 證明 Bob 喜不喜歡她,但 Alice 至始至終不知道 Bob 到底說了什麼。


我們目前已經實現了 MantaPay,使用的是 Groth26 演算法,在零知識證明演算法裡面,Groth26 是使用非常廣泛的演算法,目前我們使用 arkworks 的 Rust 來實現。

接下來講下我們目前正在做的另外一個事情——去中心化的隱私交易平臺(Decentralized Anonymous Exchange)——MantaSwap

我們回顧下之前 Manta1.0 部分的內容。因為1.0裡面我們只能從一個A token->A token
,但在 Manta2.0,我們希望在保護隱私的同時也能夠提供流動性,即 A token -> B token。

在 Manta2.0中,我們採用了類似於 Uniswap 的 AMM 技術。在這裡,我們想象一個交易池中包含了代幣 A x 個數量,代幣 B y 個數量,我們確保交易池中實時保持著一個恆定量:既x*y=k。當兌換髮生時,既池子中 A 代幣的量會增加,而 B 代幣的量會減少。AMM 可以準確的給出當前使用者能夠兌換出的 B 的數量。

AMM 帶了一些好處,除了帶來了一定的 front-running resistance,並有著一定的市場效應,最為關鍵的是為ZK-SNarks 提供了一個很好的證明依據,我們透過證明 x*y=k 的這個狀態在交易前後合法性來保證兌換過程可以順利進行。這種 zk(zero-knowledge)實現起來比較容易且 zk proof 的過程也可以很高效。

下面介紹了 DAX scheme 的一些細節,跟 Manta1.0相同,π包含來一個零知識證明,用於確保交易前後錢包狀態是正確的所需的 prove key 和 verify key同時我們也加入了 AMM 的 proof,簡單來說這個 proof 如下所示。我們這裡僅進行簡單的介紹,具體的細節可以去我們的白皮書中參看。

Manta 最終的願景是希望做一個隱私保護的智慧合約平臺,而不僅僅是一個隱私保護產品。

我們希望能從1.0和2.0產品裡把常用的介面都抽象出來,另外我們也會開發一些基於 ZK-Snarks 的基礎設施,從而可以降低零知識證明的使用門檻。整體來講,零知識證明目前開發的門檻還是比較高的,Manta 希望可以降低這個門檻,讓更多的專案享受即插即用的隱私保護服務。


這是 Manta 目前產品的進度,我們此前已經完成了產品設計和驗證,並計劃在7月份上線測試網,讓使用者來體驗,
屆時也會上線針對測試網的激勵活動。
如果你對 Manta 在做的事情感興趣,歡迎關注和聯絡我們。


關於 Manta
Manta Network 是即插即用的隱私保護平行鏈,旨在為整個 DeFi 網路提供隱私服務。Manta Network 建立在波卡上作為平行鏈保證互操作性,基於 zkSNARKs (零知識證明技術)保障隱私性。Manta 的早期產品包括隱私支付 MantaPay 和隱私去中心化交易所 MantaSwap。
Manta 的創始團隊由多位加密貨幣資深人士,教授和學者組成,他們的經驗包括哈佛大學,麻省理工學院和 Algorand。Manta 的顧問包括 Hypersphere Ventures 聯合創始人 Jack Platts,Polychain 合夥人 Tekin Salimi,前 Web3 基金會聯合創始人 Ashley Tyson,Consensys 的 Shuyao Kong。Manta 之前已經完成了由 Polychain 領投,三箭資本,Multicoin,Alameda,Hypersphere 參與的百萬美元種子輪融資。Manta 也是波卡官方 Web3 基金會資助獲得者,Substrate Builder Program 成員,伯克利大學區塊鏈加速器成員。
歡迎關注我們的頻道瞭解有關 Manta Network 的更多資訊:
Website:https://manta.network/
Github:https://github.com/Manta-Network
Twitter:https://twitter.com/MantaNetwork?s=20
Medium:https://medium.com/@mantanetwork
Telegram:https://t.me/mantanetworkDiscord 中文頻道:https://discord.gg/ZtSuSKRy8X
微信助手:boboo936

作者:Jamie,來源:PolkaWorld

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读