本文介紹了粒子網路針對AA錢包在Web3產品體驗上存在的問題與挑戰,並提出了一套全面的技術解決方案。透過zkWaaS、粒子鍊和意圖融合協議,實現了Web2 OAuth隱私登入、隱私交易、全鏈帳戶抽象化和隱私交易範式。同時,採用B2B2C商業模式,以WaaS為入口,共建生態,為使用者打造一個低功耗高體驗的Web3世界。全文詳細介紹了每個功能的具體實現和應用場景,對Web3大規模採用提供了全面的解決方案。
作者:霧月,極客Web3
導語:雖然AA錢包在很大程度上降低了用戶使用權限,初步實現了gas代付與web2帳戶登錄,但隱私登錄-隱私交易、全鏈統一AA帳戶、意圖專用架構等與大規模採用相關的設計,仍然要在AA的基礎上添磚加瓦。
雖然我們能夠看到許多UX優化方案,如ZenGo等MPC錢包或Argent這種智能合約錢包,有效的降低了用戶的分數,但他們只解決了上述問題的一部分,而沒有全方位覆蓋產品的易用性問題。
顯然,目前大多數AA錢包或類似產品,也支援Web3大規模採用。另外,從生態角度考量,開發者側是非常重要的方面,足以在產品上對普通用戶消費,但在開發者端影響力不足,難以形成規模。越來越多開發體驗優化方案的支撐,已經說明開發者端對於產品生態的重要意義。
我們將以粒子網路為例,解目前Web3產品在體驗上的問題,以及如何捕捉地設計一套綜合的技術解決方案,而這個綜合解決方案可能是大規模採用的必要條件。同時,粒子的BtoBtoC商業策略,恰好也是許多專案方需要學習成果的思路。
顆粒產品結構全解
粒子網路以解決使用網關為核心,以B2B2C的產品建構與生態發展思路,針對Web3普及提出了一個核心整套解決方案。其模組為三個:
zkWaaS,基於零知識證明的WaaS(Wallet-as-a-service)服務。開發者可以基於Particle提供的SDK,快速將智慧錢包模組整合到自己的dApp內。這款錢包是基於帳戶抽象的無密鑰智慧合約錢包,不僅可以實現gas代付等AA基本場景,還可以提供Web2的OAuth隱私登入方式以及隱私交易等功能。
Particle Chain-專門針對Particle的全鏈帳戶抽象化(Omnichain Account Abstraction)方案,致力於解決智慧合約錢包的跨鏈部署、維護和呼叫問題。搭配的還有通用氣體代幣(Unified Gas代幣),要解決多鏈交易時需要動用不同gas幣種的麻煩。
意圖融合協議,包含了簡潔的DSL(Domain Specific Language)語言,意圖框架,意圖求解器網絡等,從而構建了一套基於意圖(Intent)的Web3交互框架,用戶直接聲明自己的交易意圖而不去執行每一條具體的操作,使用戶擺脫繁瑣的路徑思考,並減少對複雜基礎設施的理解。
zkWaaS-結合ZK的智慧錢包即服務
在錢包側,顆粒主要以WaaS(智慧合約錢包即服務)的形式來為dApp開發者提供SDK,以期讓開發者接觸其完整的Web3大規模採用框架。這種BtoBtoC方案從商業和生態角度看有幾個優點:
單純的C端錢包競爭已經白熱化,功能也弱雷同,C端錢包不再是一個好的切入點。另外,dApp開發者也開始越來越傾向於dApp內部內建錢包,在用戶連接中錢包、交易時到切換錢包等步驟的體驗需要抽取,並提供更多可自訂的功能。
C端的獲客成本慘重,但B端卻不同。 WaaS的用戶成長主要得益於整合了SDK的dApp。只要搞好BD與開發者的關係,就能「城市環繞農村」式的擴展整個生態。
目前C端主要關注金融與資產,我們很難說這就是未來Web3的主要場景。真正要實現Web3的大規模採用,必須有專案將更基礎的功能-使用者身分(帳號)和使用者操作(傳送事務/交易),抽象化作為一個基礎服務,將由dApp 交接上層更豐富的場景。
從以往的dApp連線入口來看,大家可以觀察到錢包和dApp之間有著緊密的綁定關係。在dApp端需要提高錢包的市佔率,是非常關鍵的。這點對於B2B2C模式而言是近水樓台先得月的。
建構一套能夠滿足用戶需求、降低使用功率、易於開發者接入的WaaS封裝方案成功的另一個電源。粒子的zkWaaS有三個核心:
1.隱私登入。在合約錢包上採用傳統Web2的登入方式,如Twitter、Google、微信登入等OAuth驗證方式,讓使用者完全擺脫私鑰管理的桎梏,以最熟悉且簡單的方式進入Web3。同時利用零知識證明將使用者身分隱藏。
2.隱私交易。透過智慧隱藏蹤位址(Smart Stealth Address)機制實現點對點的通用性隱私轉賬,並使用ERC4337的Paymaster讓隱藏蹤位址可以免瓦斯地使用資產(瓦斯贊助商)。
3. 驗證錢包功能。粒子的模組完全符合ERC-4337的基本要求,包含Bundler、EntryPoint、Paymaster、Smart錢包Account等ERC-4337工作流程中的重要部分,輕鬆的滿足DAPP或用戶針對智慧錢包的功能需求。
基於web2帳號的鏈上錢包隱私登入
Particle的隱私登入方案利用了JWT(Json Web代幣),可以在合約內進行Web2身份認證和操作錢包。
JWT是一種廣泛應用於傳統互聯網中的,由服務端向用戶端提供的身份證明,用戶端在每次與服務端互動時藉助此證明來進行身份認證。
在智威湯遜中,有幾個關鍵字段,是遵守驗證身份的基礎:
·「iss」 (Issuer) ,顯示JWT的發行者,也即服務端,如Google、Twitter等。
·「aud」(受眾),表示該JWT所使用的服務或應用,如在登入Medium時使用Twitter登錄,則Twitter發布JWT時此欄位會寫明該JWT適用於Medium。
·”sub” (Subject) ,指的就是接受該JWT的使用者身份,一般以UID標示。
在實踐中,iss和sub在絕大多數情況下都不會發生變化,否則會帶來內部系統和外部引用的巨大混亂。因此,上述這些參數可用於約定確定使用者身份,以便使用者完全不需要產生和保管私鑰。
與JWT相對應的概念是JWK(JSON Web Key),它是服務端的一組金鑰對。服務端在發放JWT的時候會用JWK的私鑰簽名,而對應的公鑰則是公開的,用於給其他服務驗證其簽名。
例如,在中等使用Twitter 登錄,中等對JWT 用Google 公開的JWK 進行驗證,以確認該JWT 的真實性——確實是由Google 支付的。
Particle的隱私登入方案流程如下圖所示:
其中具體的ZK電路我們這裡先略過。只列流程中的一些重點:
·驗證登入資訊的驗證者簽約,只能獲取到一個與用戶身份-JWT相關的ZK證明,以及一個無傷大雅的eph_pk,無法直接獲知對應的錢包或JWT信息,這樣就可以保護用戶隱私,嬰兒無法從鏈上取得資料知登入者身分。
·eph_pk(臨時金鑰對)是一種在單一會話中使用的金鑰對,不是錢包的公私密鑰,用戶也耗費心思。
· 這套系統也可以做鏈下驗證,可用來使用了MPC等邏輯的合約錢包。
由於這是真正基於傳統登入方式的合約驗證方案,使用者還可以指定其他社群聯絡人自己的監護人,以備Web2帳號被銷戶等非常極端的情況。
DH秘鑰交易所方法基礎上的隱私交易
在講粒子的隱私交易方案之前,我們先介紹如何在現有的EVM體系內部,實現對接收者的隱私交易,同時也也就是隱藏接收者的位址。
我們假設Alice為發送者,Bob為接收者,雙方擁有一些共同的知識:
1.Bob產生根消費私鑰(root消費金鑰) m隱藏以及蹤元位址(stealth meta-address) M。 M可以被m生成,兩者關係為M = G * m,代表了一個密碼學侵犯上的數學關係。
2.Alice透過各種方式,取得到Bob的蹤跡元位址M。
3.Alice產生一個臨時私鑰r,並使用演算法generate_address(r,M)產生一個隱藏蹤位址A該位址即為鮑伯準備的專屬隱藏蹤位址,鮑伯在收到資產後擁有該位址的操控權。
4.Alice再根據臨時私鑰r一個產生的臨時腳本R,將其發送至臨時指定記錄合約(或任何雙方認可的位置,無論什麼管道只要鮑伯可以獲得即可)。
5.Bob定期需要捐贈臨時捐款紀錄,記錄下更新的每一筆臨時捐款。由於臨時捐款是公開的,包含了其他人發送的隱私交易相關,Bob不知道哪一條是愛麗絲寄給自己看的。
6.Bob掃描每一筆更新的記錄,執行generate_address(R,m)來計算隱藏蹤位址。如果該地址裡有資產,那就是Alice生成並授權給Bob去控制權的,否則就和Bob無關。
7.鮑伯執行generate_spending_key(R,m)來產生該隱藏蹤位址的消費私鑰,也即p = m + hash(A),然後可以控制Alice產生的那個位址A。
上面的流程其實簡化了很多複雜的腦力破壞,整個情報交易所過程,就好比兩個特務在公共的公告板上,寫下一些只有彼此才能破解的暗語,暗語的生成與解密方法雖然是公開的,但只有兩個特務知道中間必需的重要數據,所以有足夠多的人知道暗語的生成與解密方法,還是無法順利解密。
這個交易所流程與著名的迪菲-赫爾曼秘密交易所方法大致相同,在未透露各自的秘密(鮑勃的根消費私鑰m和愛麗絲的臨時私鑰)的情況下,雙方都可以計算出共享秘密—— —下面的隱藏蹤位址A。如果對DH交易所不了解可以用下面的染色圖進行比喻式的理解。
相比DH需要增加的一步是,各自計算出共享秘密-隱藏蹤位址A後,並不能用它當做私鑰,因為Alice也知道A。需要建構消費私鑰p = m + hash(A),而把A當作一個預算。由於前面提到的,根消費私鑰m只有鮑伯知道,這樣鮑伯就成為了這個隱藏蹤位址的唯一控制者。
顯然,這種方式下的隱私網關,接收者每接收一次新的交易,該交易的資金就會流入一個全新的EOA地址。接收者可以分別用持有的根消費私鑰、碰運氣的方式去計算每個地址的消費私鑰,看看哪一個真的跟他有關。
但現在還有一個問題,這個新生成的隱藏錢包地址一開始還是EOA帳戶,上面可能沒有ETH等gas代幣,Bob沒有辦法直接發起交易,需要啟用智能合約錢包的Paymaster功能進行gas代付,才能實現隱私交易。所以還需要對接收位址進行一定範圍:
使用合約部署時CREATE2方法中的位址計算方法,附帶對應的參數(將隱藏蹤位址A設為該合約的Owner等),計算一個Counterfactual位址。這是一個計算出的合約位址,但尚未部署合約,暫時還是EOA。
Alice會直接轉帳到該Counterfactual位址。 Bob想使用時,就直接在該位址上進行合約錢包創建,這樣就可以呼叫gas代付服務(這一步也可以由Alice或粒子網路代勞前置完成)。
我們可以把上述的反事實位址稱為智慧隱藏蹤位址。鮑伯透過以下流程來匿名地使用該智慧隱藏蹤位址下的資產:
·透過自己的任何地址向Paymaster充值,Paymaster會返還一個資金證明(ZK化)。
·借助AA機制,用其他任意位址(可以沒有餘額)向Bundler節點發送UserOperation,呼叫上述隱藏蹤位址下的資產。 Bob只要用一個新地址向Paymaster提供資金證明,Paymaster支付Bundler資源交易的費用。
這其實是類似Tornado Cash的工作原理,透過資金證明(ZK化)既可以證明梅克爾樹上的葉子節點集合中曾經有過增量充值,耗費時任何人卻無法知道具體消耗了哪個葉子節點上的資金,以此切斷消費者和儲值者之間的連結。
綜上,粒子結合了AA與隱藏蹤位址,巧妙地透過智慧隱藏蹤錢包的形式實現了隱私軌跡。
粒子鏈&全鏈帳戶抽象
粒子鍊是一條為全鏈帳戶抽象化(Omnichain Account Abstraction)而設計的POS鏈。著眼於現狀和未來,都不可能是單鏈的天下,在多鏈工況下提升使用者體驗是至關重要的。
目前ERC4337帳戶抽象系統在多鏈情況下會出現一定的問題:
·同一個使用者在不同鏈的位址可能存在不統一、具體合約的設計。
· 用戶管理不同鏈上的合約錢包,需要手動在多個鏈上重複管理操作,例如更換管理員等。更糟糕的情況,如果在一條鏈上更新了管理員權限並丟棄了舊的管理員驗證方式,那麼在其他鏈上將無法變更,也無法使用錢包。
·使用不同的鏈,需要擁有各個鏈的gas幣,或是在各個鏈的Paymaster上有預存資金。對開發者而言也有一定的麻煩,如果他讓用戶在一定的條件下零成本使用或實現其他功能,也需要在各個鏈上部署自己自訂的Paymaster,並在其中預存資金。
粒子鏈的全鏈帳戶抽象化針對上述痛點:
·在粒子鏈上建立AA錢包。
·透過LayerZero等AMB(任意訊息橋)跨鏈協議,將各種操作,如新建、升級、變更權限等同步至其他鏈上。可以理解為其他上鍊的錢包都是該鏈上錢包的引用,想要修改主體即可同步至所有錢包。
·透過一致參數的部署者合約來確保各鏈上錢包位址相同。
·各個鏈之間的錢包也可以透過AMB相互調用,而不是可以從粒子鏈發起。
·發行Unified Gas代幣,全鏈gas幣。由Paymaster機制實現ERC20佔用gas費。即使某條鏈上沒有gas或Paymaster預存資金,也可以在符合條件的鏈上發起跨鏈交易消耗Unified Gas代幣。
除了上述用途外,粒子鏈未來或許可以用於:
·zkWaaS的Proof和Salt產生的去中心化網路。
·各鏈Bundler的啟發層,幫助Bundler實現更好的去中心化。
·作為意圖融合協定的求解器網路。
在粒子鏈的敘述中,Unified Gas代幣是整個生態中核心的價值抓手:
·支付Gas費用這項功能,是加密貨幣中反覆驗證的強烈需求和價值捕獲邏輯。
·統一氣體代幣從原生的公鏈生態中又抽像出氣層這一概念,而這種抽象,留下了粒子鏈與錢包是無法實現的,所以統一氣體代幣是粒子整個生態的一種價值提現。有了gas層之後,各鏈的用戶互動與成長以及本幣價值,與Unified Gas代幣是互惠共生的關係。
· 統一gas也是實現Chainless的推動因素之一。對使用者而言,使用單一的幣種支付高度簡化了使用流程和理解成本。日後即使在多鏈場景下,用戶很可能是無感的,而不是需要關心基礎設施的運作。就像目前在Web2上我們和伺服器互動並不關心機房位於哪個地區,什麼配置,使用什麼語言和資料庫工作一樣。
·dApp導入的用戶直接為Unified Gas代幣賦能,使用場景非常豐富。
意圖融合協議
通常,我們在使用各種dApp的時候需要不斷思考使用路徑:
·在一個dex上若沒有某種流動性,就需要查看另一個dex。
·對於同類別的dApp 不知道應該選擇哪個能夠更好地完成交易或事務。
·批准然後才能使用很多功能,批准又是什麼?
· 錢包匯總,多個小額代幣轉換為某種幣,過程繁瑣。
·為完成最終目標歷經應用。例如高槓桿需要藉貸:多個先交易所,質押,槓桿,得到的Token再交易所,質押,槓桿…
以上內容只是我們目前處於DeFi 世界的冰山一角,而在dApp 日益多樣化的Web3 大規模普及時代,交易複雜度可能遠超想像。
所以,用意圖取代具體的操作步驟,對使用者來說體驗是天差地別的。意圖之操作,類似語句式程式設計之於函數式程式設計。語句式的語句往往給人簡單明了的感覺,只需要聲明我要做什麼就可以不用關心後面的細節,而這需要底層有底層封裝的各種函數式程式設計語句。
現在使用Intent也不例外,也需要一系列設施的支援。我們可以從整個流程來看:
1.使用者以某種方式提交將自己的意圖描述,如自然語言等以RFS(Request For Solver)形式提交給Solver網路。 Solver是意圖的解釋器,目前常見的Solver有1inch等聚合器,可以為使用者尋找最優化的dex,但與我們的願景相比,它們還不夠通用和強大。
2.多個Solver給予反應,它們之間是競爭關係。這些回應由Intent DSL語言編寫,由客戶端解析為易於使用者理解的形式。這些回應包含輸入約束和輸出約束,定義了輸入和輸出的界限。使用者也可以自行指定約束。一個簡單的例子來理解:在使用Swap的時候會提示使用者Swap後最少可以獲得的數量,這就是一種限制。使用者自行在多個Solver的回應中進行選擇。
3.對意向簽名。
4.Solver特定指定的執行契約Executor,讓Intent提交回應契約Reactor。
5.Reactor從使用者帳戶收集所需的輸入(如某種資產),向Executor提交Intent,Executor再調用相關訊號合約後,將交易的回傳輸出給Reactor。 Reactor檢查約束,若無誤則將輸出回饋給使用者。
我們可以把這個過程想像為你將需求講給ChatGPT聽,有了多複雜的需求,他都可以給你產生一個最終的結果,只要你對結果滿意就可以直接使用,而無需關心其中的過程。
總結
粒子網路提出了一套全方位的解決方案:透過zkWaaS、粒子鏈、意圖融合協議三位一體式的綜合形態,實現了Web2 OAuth隱私登入、隱私交易、全鏈帳戶抽象化和隱私交易範式。每個功能都將涵蓋Web3所使用的部分痛點,這些進步和優化將成為日後Web3大規模採用的產品和技術基礎。在生態與商業模式上,採用B2B2C範式,以WaaS為入口帶動整個產品大規模化標準化,與dApp開發共建生態,共同為使用者打造一個低功耗高體驗的Web3世界。
當然,不同的專案對Web3大規模採用的實現路徑的理解是不一樣的。除了針對具體項目的操作之外,我們希望透過不同的方案引出對Web3目前面臨的板載摩擦的理解,對用戶需求和痛點的思考,以及對整個生態共同央行和發展的考量。
資訊來源:0x資訊編譯自網際網路。版權歸作者極客Web3所有,未經許可,不得轉載