技術解讀:Particle Network構建的Access Layer of Open Web

中級2/29/2024, 4:56:44 AM
本文以Particle Network爲例,詳解目前Web3産品在體驗上的問題,以及如何針對性地設計一套綜合的技術解決方案,而這種綜合解決方案可能正是mass adoption的必要條件。衕時,Particle的BtoBtoC商業策略,恰好也是許多項目方需要學習借鑒的思路。

導語:雖然AA錢包在很大程度上降低了用戶使用門檻,初步實現了gas代付與web2賬戶登録,但隱私登録-隱私交易、全鏈統一AA賬戶、Intent專用架構等與mass adoption相關的設計,仍然要在AA的基礎上添磚加瓦。

我們雖然能見到很多UX優化方案,如ZenGo等MPC錢包或Argent這種智能合約wallet,有效的降低了用戶門檻,但他們隻解決了上述問題中的一部分,而沒有全方位覆蓋産品易用性問題。

顯然,目前大多數AA錢包或者類似産品,還無法支持Web3大規模採用。另一方麵,從生態角度考量,開髮者側是非常重要的層麵,僅僅在産品上對普通用戶有吸引力,但在開髮者側影響力不夠,很難形成規模。越來越多開髮體驗優化方案的涌現,已經説明開髮者端對於産品生態的重要意義。

我們將以Particle Network爲例,詳解目前Web3産品在體驗上的問題,以及如何針對性地設計一套綜合的技術解決方案,而這種綜合解決方案可能正是mass adoption的必要條件。衕時,Particle的BtoBtoC商業策略,恰好也是許多項目方需要學習借鑒的思路。

Particle産品結構全解

Particle Network以解決使用門檻爲核心,用B2B2C的産品構建與生態髮展思路,針對Web3大規模採用提出了一整套解決方案。其核心模塊爲三個:

zkWaaS,基於零知識證明的WaaS(Wallet-as-a-service)服務。開髮者可以基於Particle提供的SDK,快速將智能錢包模塊集成至自己的dApp內。該錢包是基於賬戶抽象的keyless智能合約錢包,不但可以實現gas代付等AA基本場景,還可以提供Web2式的OAuth隱私登録方式以及隱私交易等功能。

Particle Chain——專門用於Particle的全鏈賬戶抽象(Omnichain Account Abstraction)方案,緻力於解決智能合約錢包的跨鏈部署、維護和調用問題。配套的還有通用gas代幣(Unified Gas Token),用以解決多鏈交易時需要用到不衕gas幣種的麻煩。

Intent Fusion Protocol,包含了簡潔的DSL(Domain Specific Language)語言,Intent框架,Intent Solver Network等,用以構建一套基於意圖(Intent)的Web3交互框架,用戶直接聲明自己的交易意圖而非去執行每一條具體的操作,使用戶擺脫繁瑣的路徑思考,併減少對覆雜底層基礎設施的理解。

zkWaaS——結合ZK的智能錢包即服務

在錢包側,Particle主要以WaaS(智能合約錢包即服務)的形式來爲dApp開髮者提供SDK,以期讓開髮者接入其完整的Web3 mass adoption框架。這種BtoBtoC方案從商業和生態角度看有幾個優點:

單純的C端錢包競爭已經白熱化,功能也較爲雷衕,C端錢包不再是一個好的切入點。另一方麵,dApp開髮者也開始越來越傾曏於在dApp內內置錢包,以避免用戶連接錢包、交易時需要到切換錢包等步驟的體驗損耗,併提供更多可自定義的功能。

C端的穫客成本高昂,但B端卻不衕。WaaS的用戶增長主要源於集成了SDK的dApp。隻要做好BD與開髮者關繫,就能“城市包圍農村”式的擴展整個生態。

目前C端錢包主要專註於金融與資産,我們很難説這就是未來Web3的主要場景。真正要實現Web3的大規模採用,必鬚有項目將更基礎的特性——用戶身份(賬戶)和用戶操作(髮送事務/交易),抽象出來作爲一個底層服務,將上層更豐富的場景交由dApp。

從以往的dApp連接入口,大家可以觀察到錢包和dApp之間較爲緊密的綁定關繫。在dApp端盡可能提高錢包的市占率,是非常關鍵的。這一點對B2B2C模式而言是近水樓颱先得月的。

構建一套能滿足用戶需求,降低使用門檻,易於開髮者接入的WaaS則是方案成功的另一個支柱。Particle的zkWaaS有三個核心:

1.隱私登録。在合約錢包上利用傳統Web2的登録方式,如Twitter、Google、微信登録等OAuth驗證方式,讓用戶完全擺脫私鑰管理的桎梏,以最熟悉和簡單的方式進入Web3。衕時利用零知識證明將用戶身份隱藏。

2.隱私交易。通過智能匿蹤地址(Smart Stealth Address)機製實現點對點的通用性隱私轉賬,併使用ERC4337的Paymaster讓匿蹤地址可以免gas地使用資産(gas贊助商)。

3.完備的AA錢包功能。Particle的錢包模塊完全符合ERC-4337的基本要求,包含Bundler、EntryPoint、Paymaster、Smart Wallet Account 等ERC-4337工作流中的重要部分,一站式的滿足DAPP或用戶對智能錢包的功能需求。

基於web2賬戶的鏈上錢包隱私登録

Particle的隱私登録方案利用了JWT(Json Web Token),可以在合約內進行Web2身份認證和操作錢包。

JWT是一種廣泛運用於傳統互聯網中的,由服務端曏客戶端髮放的身份證明,客戶端在每次與服務端交互時憑借此證明來進行身份認證。

(圖源:FlutterFlow Docs)

在JWT中有幾個關鍵字段,是合約驗證身份的基礎:

·”iss” (Issuer) ,錶明JWT的髮行者,也即服務端,如Google、Twitter等。

·”aud” (Audience) ,錶明該JWT所使用的服務或應用,如在登録Medium時使用Twitter登録,那麽Twitter髮行JWT時此字段會寫明該JWT適用於Medium。

·”sub” (Subject) ,指的就是接受該JWT的用戶身份,一般用UID標示。

在實踐中,iss和sub在絶大多數情況下都不會變,否則會帶來內部繫統和外部引用的巨大混亂。因此,上述這些參數可用於合約確定用戶身份,這樣用戶完全無需生成和保管私鑰。

與JWT相對應的概念是JWK(JSON Web Key),它是服務端的一組密鑰對。服務端在髮放JWT的時候會用JWK的私鑰簽名,而對應的公鑰是公開的,用於給其他服務驗證其簽名。

比如,在Medium使用Twitter登録,Medium會對JWT用Google公開的JWK公鑰進行驗證,以確認該JWT的真實性——確實是由Google髮放的。合約對JWT的校驗也會使用到JWK。

Particle的隱私登録方案流程如下圖所示:

其中具體的ZK電路我們這裡先略過。隻列流程中的一些重點:

·驗證登録信息的Verifier合約,隻會感知到一個與用戶身份-JWT相關的ZK Proof,以及一個無傷大雅的eph_pk,無法直接穫知對應的錢包公鑰或JWT信息,這樣就可以保護用戶隱私,外界無法從鏈上數據穫知登録者身份。

·eph_pk(臨時密鑰對)是一種在單個會話中使用的密鑰對,併不是錢包的公私鑰,用戶也無需關心。

·這套繫統也可以做鏈下驗證,可用於使用了MPC等邏輯的合約錢包。

由於這是真正基於傳統登録方式的合約驗證方案,用戶還可以指定其他社交聯繫人作爲自己的守護者,以備Web2賬戶被銷戶等非常極端的情況。

DH秘鑰交換方法基礎上的隱私交易

在談到Particle的隱私交易方案前,我們先考察一下如何在現有的EVM體繫內,實現對接收者的隱私交易,也即隱藏接收者的地址。

我們假設Alice爲髮送者,Bob爲接收者,雙方擁有一些共衕的知識:

1.Bob生成根消費私鑰(root spending key) m以及匿蹤元地址(stealth meta-address) M。M可以被m生成,二者關繫爲M = G * m,代錶了一種密碼學運算上的數學關繫。

2.Alice通過任意一種方式,穫取到Bob的匿蹤元地址M。

3.Alice生成一個臨時私鑰r,併使用算法generate_address(r,M)生成一個匿蹤地址A。該地址即爲Bob準備的專屬匿蹤地址,Bob在收到資産後擁有對該地址的掌控權。

4.Alice再根據臨時私鑰r生成一個臨時公鑰R,併將其髮送至臨時公鑰記録合約(或者是任何雙方認可的位置,不管什麽渠道隻要Bob可以穫取即可)。

5.Bob需要定期掃描臨時公鑰記録合約,記録下更新的每一條臨時公鑰。由於臨時公鑰合約是公開的,包含了其他人髮送的隱私交易相關密鑰,Bob還不知道哪一條是Alice髮給自己看的。

6.Bob掃描每一條更新的記録,執行generate_address(R,m)來計算匿蹤地址。如果該地址裡有資産,那就是Alice生成併授權給Bob去控製的,否則就和Bob無關。

7.Bob執行generate_spending_key(R,m)來生成該匿蹤地址的消費私鑰,也即p = m + hash(A),然後可以控製Alice生成的那個地址A。

上麵的流程描述其實簡化了很多覆雜的數學運算,整個情報交換過程,就好比兩個特務在公用的公告闆上,寫下一些隻有彼此才能破解的暗語,暗語的生成與解密方法雖然是公開的,但隻有兩個特務知道中間必需的重要數據,所以外界就算知道暗語的生成與解密方法,還是無法順利解密。

這個交換流程與著名的Diffie–Hellman秘鑰交換方法大緻相衕,在不透露各自的秘密(Bob的根消費私鑰m和Alice的臨時私鑰r)的情況下,雙方都可以計算出共享秘密——上文中的匿蹤地址A。如果對DH交換不了解可以用下麵的染色圖進行比喻式的理解。

相比DH需要增加的一步是,在各自算出共享秘密-匿蹤地址A後,併不能用它當做私鑰,因爲Alice也知道A。需要構造消費私鑰p = m + hash(A),而把A當做一個公鑰。由於前麵提到,根消費私鑰m隻有Bob知道,這樣Bob就成爲了該匿蹤地址的唯一控製者。

顯然,這種方式下的隱私轉賬,接收者每接收一筆新的交易,該交易的資金都會流入一個全新的EOA地址。接收者可以用持有的根消費私鑰,去撞運氣的方式分別計算每個地址的消費私鑰,看哪一個真的與他有關。

但現在還有一個問題,這個新生成的匿蹤地址一開始還是EOA賬戶,上麵可能沒有ETH等gas代幣,Bob沒有辦法直接髮起交易,需要用到智能合約錢包的Paymaster功能進行gas代付,才能實現隱私交易。所以還需要對接收地址進行一定改動:

用合約部署時CREATE2方法中的地址計算方法,附帶相應參數(將匿蹤地址A設爲該合約的Owner等),計算一個Counterfactual地址。這是一個計算出的合約地址,但尚未部署合約,暫時還是EOA。

Alice會直接曏該Counterfactual地址轉賬。Bob想使用時,就直接在該地址上進行合約錢包創建,這樣就可以調用gas代付服務(這一步也可以由Alice或Particle網絡代勞前置完成)。

我們可以把上述的Counterfactual地址稱爲智能匿蹤地址。Bob通過下列流程來匿名地使用該智能匿蹤地址下的資産:

·通過自己的任意地址曏Paymaster充值,Paymaster會返還一個資金證明(ZK化)。

·憑借AA機製,用其他任意地址(可以沒有餘額)曏Bundler節點髮送UserOperation,調用上述匿蹤地址下的資産。Bob隻要用一個新地址曏Paymaster提供資金證明,Paymaster支付Bundler打包交易的費用。

這其實是類似Tornado Cash的工作原理,通過資金證明(ZK化)既可以證明梅剋爾樹上的葉子節點集合中曾經有一筆充值,花費時任何人卻無法得知具體消耗了哪個葉子節點上的資金,以此切斷消費者和充值者之間的聯繫。

綜上,Particle結合了AA與匿蹤地址,巧妙地通過了智能匿蹤錢包的形式實現了隱私轉賬。

Particle Chain & 全鏈賬戶抽象

Particle Chain是一條爲全鏈賬戶抽象(Omnichain Account Abstraction)而設計的POS鏈。著眼現狀和未來,都不可能是單鏈的天下,在多鏈工況下提升用戶體驗是至關重要的。

目前ERC4337賬戶抽象繫統在多鏈情況下會出現一定問題:

·衕一個用戶在不衕鏈的地址有可能不統一,具體取決於合約的設計。

·用戶管理不衕鏈上的合約錢包,需要手動在多個鏈之間重覆管理操作,如更換管理員等。更糟糕的情況,如果在一條鏈上更新了管理員權限隨後丟棄了舊的管理員驗證方式,那麽在其他鏈上將無法變更,也無法使用錢包。

·使用不衕的鏈,需要擁有各個鏈的gas幣,或者在各個鏈的Paymaster上有預存資金。對開髮者而言也有一定麻煩,如果他想讓用戶在一定條件下零成本使用或實現其他功能,也需要在各個鏈上部署自己自定義的Paymaster,併在其中預存資金。

Particle Chain的全鏈賬戶抽象針對上述痛點:

·在Particle Chain上建立AA錢包。

·通過LayerZero等AMB(Arbitrary Message Bridge)跨鏈協議,將各種操作,如新建、升級、更改權限等衕步至其他鏈上。可以理解爲其他鏈上的錢包都是該鏈上錢包的引用,隻需要修改主體即可衕步至所有錢包。

·通過一緻參數的Deployer Contract來保證各鏈上錢包地址相衕。

·各個鏈之間錢包也可以通過AMB互相調用,併非都要從Particle Chain髮起。

·髮行Unified Gas Token,全鏈gas幣。由Paymaster機製實現ERC20充當gas費。即使在某條鏈上沒有gas或Paymaster預存資金,也可以在符合條件的鏈上髮起跨鏈交易消耗Unified Gas Token。

除了上述用途外,Particle Chain未來也許還可以用於:

·zkWaaS的Proof和Salt生成的去中心化網絡。

·各鏈Bundler的激勵層,幫助Bundler實現更好的去中心化。

·作爲Intent Fusion Protocol的Solver網絡。

在Particle Chain的敘事中,Unified Gas Token是整個生態中核心的價值抓手:

·支付Gas費用這一功能,是crypto中反覆驗證過的強烈需求和價值捕穫邏輯。

·Unified Gas Token從既有的公鏈生態中又抽象出gas層這一概念,而這種抽象,離開了Particle Chain與錢包是無法實現的,所以Unified Gas Token是Particle整個生態的一種價值的提現。有了gas層之後,各鏈的用戶交互與增長以及本幣價值,和Unified Gas Token是互惠共生的關繫。

·統一gas也是實現Chainless的推動因素之一。對用戶而言,使用單一的幣種支付高度簡化了使用流程和理解成本。日後即使在多鏈場景下,用戶很可能是無感的,併不需要關心底層基礎設施的運行情況。就像目前在Web2上我們和服務器交互併不關心機房位於哪個地區,什麽配置,使用什麽語言和數據庫工作一樣。

·dApp導入的用戶直接爲Unified Gas Token賦能,使用場景非常豐富。

Intent Fusion Protocol

通常,我們在使用各種dApp的時候需要不斷思考使用路徑:

·在一個dex上若沒有某種流動性,就需要查看另一個dex。

·對衕品類的dApp不知應該選擇哪個能更好地完成交易或事務。

·Approve然後才能使用很多功能,approve又是什麽?

·錢包除塵,多個小額代幣轉換爲某一種幣,過程繁瑣。

·爲完成最終目標需要歷經多個應用。諸如高杠桿借貸:先swap,質押,借貸,得到的Token再swap,質押,借貸……

上述內容隻是我們在目前的DeFi世界的冰山一角,而在dApp越來越多樣化的Web3大規模採用時代,交互覆雜度可能遠超想象。

所以,用意圖Intent代替具體的操作步驟,對用戶而言體驗是天差地別的。意圖較之操作,就像聲明式編程之於函數式編程。聲明式的語句往往給人簡單明了的感覺,隻需要聲明我要做什麽即可而不關心其後細節,而這需要底層有層層封裝的各種函數式編程語句。

那麽使用Intent也不例外,也需要有一繫列設施的支持。我們可以從整個流程來看一下:

1.用戶提交將自己的意圖用某種方式描述,如自然語言等以RFS(Request For Solver)形式提交給Solver網絡。Solver是意圖的解釋器,目前常見的Solver有1inch等聚合器,可以爲用戶尋找最優的dex,但相比我們的願景而言它們併不夠通用和強大。

2.多個Solver給出回應,他們之間是競爭關繫。這些回應由Intent DSL語言編寫,再由客戶端解析爲易於用戶理解的形式。這些回應包含Input Constraints和Output Constraints,界定了輸入和輸出的界限。用戶也可以自行指定約束。一個簡單的例子來理解:在使用Swap的時候會提示用戶Swap後最少可穫得的數量,這就是一種約束。用戶自行在多個Solver的回應中進行選擇。

3.對Intent簽名。

4.Solver指定特定的執行合約Executor,併將Intent遞交響應合約Reactor。

5.Reactor從用戶賬戶中搜集所需要的輸入(如某種資産),曏Executor遞交Intent,Executor再調用相關邏輯合約後,將該交易的輸出返回給Reactor。Reactor檢查約束,若無誤則將輸出返給用戶。

我們可以把這個過程想象爲你將需求講給ChatGPT聽,不論多覆雜的需求,他都可以給你生成一個最終的結果,隻要你對結果滿意就可以直接使用,而無需關心其中的過程。

總結

Particle Network提出了一種全方位解決方案:通過zkWaaS、Particle Chain、Intent Fusion Protocol三位一體式的綜合形態,實現了Web2 OAuth隱私登録,隱私交易,全鏈賬戶抽象和意圖交易範式。每一個feature都將覆蓋Web3使用的一部分痛點,這些進步與優化將成爲日後Web3大規模採用的産品和技術基礎。在生態和商業模式上,採用B2B2C範式,以WaaS爲入口帶動整個産品鏈條規模化標準化,與dApp開髮者共建生態,共衕爲用戶打造一個低門檻高體驗的Web3世界。

當然,不衕的項目對Web3 mass adoption的實現路徑理解是不一樣的。除了對具體項目的審視,我們希望通過不衕的方案引出對Web3目前麵臨的onboard friction的理解,對用戶需求和痛點的思考,以及對整個生態共衕串聯和髮展的考量。

聲明:

  1. 本文轉載自[極客 Web3],著作權歸屬原作者[霧月,極客Web3],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。

技術解讀:Particle Network構建的Access Layer of Open Web

中級2/29/2024, 4:56:44 AM
本文以Particle Network爲例,詳解目前Web3産品在體驗上的問題,以及如何針對性地設計一套綜合的技術解決方案,而這種綜合解決方案可能正是mass adoption的必要條件。衕時,Particle的BtoBtoC商業策略,恰好也是許多項目方需要學習借鑒的思路。

導語:雖然AA錢包在很大程度上降低了用戶使用門檻,初步實現了gas代付與web2賬戶登録,但隱私登録-隱私交易、全鏈統一AA賬戶、Intent專用架構等與mass adoption相關的設計,仍然要在AA的基礎上添磚加瓦。

我們雖然能見到很多UX優化方案,如ZenGo等MPC錢包或Argent這種智能合約wallet,有效的降低了用戶門檻,但他們隻解決了上述問題中的一部分,而沒有全方位覆蓋産品易用性問題。

顯然,目前大多數AA錢包或者類似産品,還無法支持Web3大規模採用。另一方麵,從生態角度考量,開髮者側是非常重要的層麵,僅僅在産品上對普通用戶有吸引力,但在開髮者側影響力不夠,很難形成規模。越來越多開髮體驗優化方案的涌現,已經説明開髮者端對於産品生態的重要意義。

我們將以Particle Network爲例,詳解目前Web3産品在體驗上的問題,以及如何針對性地設計一套綜合的技術解決方案,而這種綜合解決方案可能正是mass adoption的必要條件。衕時,Particle的BtoBtoC商業策略,恰好也是許多項目方需要學習借鑒的思路。

Particle産品結構全解

Particle Network以解決使用門檻爲核心,用B2B2C的産品構建與生態髮展思路,針對Web3大規模採用提出了一整套解決方案。其核心模塊爲三個:

zkWaaS,基於零知識證明的WaaS(Wallet-as-a-service)服務。開髮者可以基於Particle提供的SDK,快速將智能錢包模塊集成至自己的dApp內。該錢包是基於賬戶抽象的keyless智能合約錢包,不但可以實現gas代付等AA基本場景,還可以提供Web2式的OAuth隱私登録方式以及隱私交易等功能。

Particle Chain——專門用於Particle的全鏈賬戶抽象(Omnichain Account Abstraction)方案,緻力於解決智能合約錢包的跨鏈部署、維護和調用問題。配套的還有通用gas代幣(Unified Gas Token),用以解決多鏈交易時需要用到不衕gas幣種的麻煩。

Intent Fusion Protocol,包含了簡潔的DSL(Domain Specific Language)語言,Intent框架,Intent Solver Network等,用以構建一套基於意圖(Intent)的Web3交互框架,用戶直接聲明自己的交易意圖而非去執行每一條具體的操作,使用戶擺脫繁瑣的路徑思考,併減少對覆雜底層基礎設施的理解。

zkWaaS——結合ZK的智能錢包即服務

在錢包側,Particle主要以WaaS(智能合約錢包即服務)的形式來爲dApp開髮者提供SDK,以期讓開髮者接入其完整的Web3 mass adoption框架。這種BtoBtoC方案從商業和生態角度看有幾個優點:

單純的C端錢包競爭已經白熱化,功能也較爲雷衕,C端錢包不再是一個好的切入點。另一方麵,dApp開髮者也開始越來越傾曏於在dApp內內置錢包,以避免用戶連接錢包、交易時需要到切換錢包等步驟的體驗損耗,併提供更多可自定義的功能。

C端的穫客成本高昂,但B端卻不衕。WaaS的用戶增長主要源於集成了SDK的dApp。隻要做好BD與開髮者關繫,就能“城市包圍農村”式的擴展整個生態。

目前C端錢包主要專註於金融與資産,我們很難説這就是未來Web3的主要場景。真正要實現Web3的大規模採用,必鬚有項目將更基礎的特性——用戶身份(賬戶)和用戶操作(髮送事務/交易),抽象出來作爲一個底層服務,將上層更豐富的場景交由dApp。

從以往的dApp連接入口,大家可以觀察到錢包和dApp之間較爲緊密的綁定關繫。在dApp端盡可能提高錢包的市占率,是非常關鍵的。這一點對B2B2C模式而言是近水樓颱先得月的。

構建一套能滿足用戶需求,降低使用門檻,易於開髮者接入的WaaS則是方案成功的另一個支柱。Particle的zkWaaS有三個核心:

1.隱私登録。在合約錢包上利用傳統Web2的登録方式,如Twitter、Google、微信登録等OAuth驗證方式,讓用戶完全擺脫私鑰管理的桎梏,以最熟悉和簡單的方式進入Web3。衕時利用零知識證明將用戶身份隱藏。

2.隱私交易。通過智能匿蹤地址(Smart Stealth Address)機製實現點對點的通用性隱私轉賬,併使用ERC4337的Paymaster讓匿蹤地址可以免gas地使用資産(gas贊助商)。

3.完備的AA錢包功能。Particle的錢包模塊完全符合ERC-4337的基本要求,包含Bundler、EntryPoint、Paymaster、Smart Wallet Account 等ERC-4337工作流中的重要部分,一站式的滿足DAPP或用戶對智能錢包的功能需求。

基於web2賬戶的鏈上錢包隱私登録

Particle的隱私登録方案利用了JWT(Json Web Token),可以在合約內進行Web2身份認證和操作錢包。

JWT是一種廣泛運用於傳統互聯網中的,由服務端曏客戶端髮放的身份證明,客戶端在每次與服務端交互時憑借此證明來進行身份認證。

(圖源:FlutterFlow Docs)

在JWT中有幾個關鍵字段,是合約驗證身份的基礎:

·”iss” (Issuer) ,錶明JWT的髮行者,也即服務端,如Google、Twitter等。

·”aud” (Audience) ,錶明該JWT所使用的服務或應用,如在登録Medium時使用Twitter登録,那麽Twitter髮行JWT時此字段會寫明該JWT適用於Medium。

·”sub” (Subject) ,指的就是接受該JWT的用戶身份,一般用UID標示。

在實踐中,iss和sub在絶大多數情況下都不會變,否則會帶來內部繫統和外部引用的巨大混亂。因此,上述這些參數可用於合約確定用戶身份,這樣用戶完全無需生成和保管私鑰。

與JWT相對應的概念是JWK(JSON Web Key),它是服務端的一組密鑰對。服務端在髮放JWT的時候會用JWK的私鑰簽名,而對應的公鑰是公開的,用於給其他服務驗證其簽名。

比如,在Medium使用Twitter登録,Medium會對JWT用Google公開的JWK公鑰進行驗證,以確認該JWT的真實性——確實是由Google髮放的。合約對JWT的校驗也會使用到JWK。

Particle的隱私登録方案流程如下圖所示:

其中具體的ZK電路我們這裡先略過。隻列流程中的一些重點:

·驗證登録信息的Verifier合約,隻會感知到一個與用戶身份-JWT相關的ZK Proof,以及一個無傷大雅的eph_pk,無法直接穫知對應的錢包公鑰或JWT信息,這樣就可以保護用戶隱私,外界無法從鏈上數據穫知登録者身份。

·eph_pk(臨時密鑰對)是一種在單個會話中使用的密鑰對,併不是錢包的公私鑰,用戶也無需關心。

·這套繫統也可以做鏈下驗證,可用於使用了MPC等邏輯的合約錢包。

由於這是真正基於傳統登録方式的合約驗證方案,用戶還可以指定其他社交聯繫人作爲自己的守護者,以備Web2賬戶被銷戶等非常極端的情況。

DH秘鑰交換方法基礎上的隱私交易

在談到Particle的隱私交易方案前,我們先考察一下如何在現有的EVM體繫內,實現對接收者的隱私交易,也即隱藏接收者的地址。

我們假設Alice爲髮送者,Bob爲接收者,雙方擁有一些共衕的知識:

1.Bob生成根消費私鑰(root spending key) m以及匿蹤元地址(stealth meta-address) M。M可以被m生成,二者關繫爲M = G * m,代錶了一種密碼學運算上的數學關繫。

2.Alice通過任意一種方式,穫取到Bob的匿蹤元地址M。

3.Alice生成一個臨時私鑰r,併使用算法generate_address(r,M)生成一個匿蹤地址A。該地址即爲Bob準備的專屬匿蹤地址,Bob在收到資産後擁有對該地址的掌控權。

4.Alice再根據臨時私鑰r生成一個臨時公鑰R,併將其髮送至臨時公鑰記録合約(或者是任何雙方認可的位置,不管什麽渠道隻要Bob可以穫取即可)。

5.Bob需要定期掃描臨時公鑰記録合約,記録下更新的每一條臨時公鑰。由於臨時公鑰合約是公開的,包含了其他人髮送的隱私交易相關密鑰,Bob還不知道哪一條是Alice髮給自己看的。

6.Bob掃描每一條更新的記録,執行generate_address(R,m)來計算匿蹤地址。如果該地址裡有資産,那就是Alice生成併授權給Bob去控製的,否則就和Bob無關。

7.Bob執行generate_spending_key(R,m)來生成該匿蹤地址的消費私鑰,也即p = m + hash(A),然後可以控製Alice生成的那個地址A。

上麵的流程描述其實簡化了很多覆雜的數學運算,整個情報交換過程,就好比兩個特務在公用的公告闆上,寫下一些隻有彼此才能破解的暗語,暗語的生成與解密方法雖然是公開的,但隻有兩個特務知道中間必需的重要數據,所以外界就算知道暗語的生成與解密方法,還是無法順利解密。

這個交換流程與著名的Diffie–Hellman秘鑰交換方法大緻相衕,在不透露各自的秘密(Bob的根消費私鑰m和Alice的臨時私鑰r)的情況下,雙方都可以計算出共享秘密——上文中的匿蹤地址A。如果對DH交換不了解可以用下麵的染色圖進行比喻式的理解。

相比DH需要增加的一步是,在各自算出共享秘密-匿蹤地址A後,併不能用它當做私鑰,因爲Alice也知道A。需要構造消費私鑰p = m + hash(A),而把A當做一個公鑰。由於前麵提到,根消費私鑰m隻有Bob知道,這樣Bob就成爲了該匿蹤地址的唯一控製者。

顯然,這種方式下的隱私轉賬,接收者每接收一筆新的交易,該交易的資金都會流入一個全新的EOA地址。接收者可以用持有的根消費私鑰,去撞運氣的方式分別計算每個地址的消費私鑰,看哪一個真的與他有關。

但現在還有一個問題,這個新生成的匿蹤地址一開始還是EOA賬戶,上麵可能沒有ETH等gas代幣,Bob沒有辦法直接髮起交易,需要用到智能合約錢包的Paymaster功能進行gas代付,才能實現隱私交易。所以還需要對接收地址進行一定改動:

用合約部署時CREATE2方法中的地址計算方法,附帶相應參數(將匿蹤地址A設爲該合約的Owner等),計算一個Counterfactual地址。這是一個計算出的合約地址,但尚未部署合約,暫時還是EOA。

Alice會直接曏該Counterfactual地址轉賬。Bob想使用時,就直接在該地址上進行合約錢包創建,這樣就可以調用gas代付服務(這一步也可以由Alice或Particle網絡代勞前置完成)。

我們可以把上述的Counterfactual地址稱爲智能匿蹤地址。Bob通過下列流程來匿名地使用該智能匿蹤地址下的資産:

·通過自己的任意地址曏Paymaster充值,Paymaster會返還一個資金證明(ZK化)。

·憑借AA機製,用其他任意地址(可以沒有餘額)曏Bundler節點髮送UserOperation,調用上述匿蹤地址下的資産。Bob隻要用一個新地址曏Paymaster提供資金證明,Paymaster支付Bundler打包交易的費用。

這其實是類似Tornado Cash的工作原理,通過資金證明(ZK化)既可以證明梅剋爾樹上的葉子節點集合中曾經有一筆充值,花費時任何人卻無法得知具體消耗了哪個葉子節點上的資金,以此切斷消費者和充值者之間的聯繫。

綜上,Particle結合了AA與匿蹤地址,巧妙地通過了智能匿蹤錢包的形式實現了隱私轉賬。

Particle Chain & 全鏈賬戶抽象

Particle Chain是一條爲全鏈賬戶抽象(Omnichain Account Abstraction)而設計的POS鏈。著眼現狀和未來,都不可能是單鏈的天下,在多鏈工況下提升用戶體驗是至關重要的。

目前ERC4337賬戶抽象繫統在多鏈情況下會出現一定問題:

·衕一個用戶在不衕鏈的地址有可能不統一,具體取決於合約的設計。

·用戶管理不衕鏈上的合約錢包,需要手動在多個鏈之間重覆管理操作,如更換管理員等。更糟糕的情況,如果在一條鏈上更新了管理員權限隨後丟棄了舊的管理員驗證方式,那麽在其他鏈上將無法變更,也無法使用錢包。

·使用不衕的鏈,需要擁有各個鏈的gas幣,或者在各個鏈的Paymaster上有預存資金。對開髮者而言也有一定麻煩,如果他想讓用戶在一定條件下零成本使用或實現其他功能,也需要在各個鏈上部署自己自定義的Paymaster,併在其中預存資金。

Particle Chain的全鏈賬戶抽象針對上述痛點:

·在Particle Chain上建立AA錢包。

·通過LayerZero等AMB(Arbitrary Message Bridge)跨鏈協議,將各種操作,如新建、升級、更改權限等衕步至其他鏈上。可以理解爲其他鏈上的錢包都是該鏈上錢包的引用,隻需要修改主體即可衕步至所有錢包。

·通過一緻參數的Deployer Contract來保證各鏈上錢包地址相衕。

·各個鏈之間錢包也可以通過AMB互相調用,併非都要從Particle Chain髮起。

·髮行Unified Gas Token,全鏈gas幣。由Paymaster機製實現ERC20充當gas費。即使在某條鏈上沒有gas或Paymaster預存資金,也可以在符合條件的鏈上髮起跨鏈交易消耗Unified Gas Token。

除了上述用途外,Particle Chain未來也許還可以用於:

·zkWaaS的Proof和Salt生成的去中心化網絡。

·各鏈Bundler的激勵層,幫助Bundler實現更好的去中心化。

·作爲Intent Fusion Protocol的Solver網絡。

在Particle Chain的敘事中,Unified Gas Token是整個生態中核心的價值抓手:

·支付Gas費用這一功能,是crypto中反覆驗證過的強烈需求和價值捕穫邏輯。

·Unified Gas Token從既有的公鏈生態中又抽象出gas層這一概念,而這種抽象,離開了Particle Chain與錢包是無法實現的,所以Unified Gas Token是Particle整個生態的一種價值的提現。有了gas層之後,各鏈的用戶交互與增長以及本幣價值,和Unified Gas Token是互惠共生的關繫。

·統一gas也是實現Chainless的推動因素之一。對用戶而言,使用單一的幣種支付高度簡化了使用流程和理解成本。日後即使在多鏈場景下,用戶很可能是無感的,併不需要關心底層基礎設施的運行情況。就像目前在Web2上我們和服務器交互併不關心機房位於哪個地區,什麽配置,使用什麽語言和數據庫工作一樣。

·dApp導入的用戶直接爲Unified Gas Token賦能,使用場景非常豐富。

Intent Fusion Protocol

通常,我們在使用各種dApp的時候需要不斷思考使用路徑:

·在一個dex上若沒有某種流動性,就需要查看另一個dex。

·對衕品類的dApp不知應該選擇哪個能更好地完成交易或事務。

·Approve然後才能使用很多功能,approve又是什麽?

·錢包除塵,多個小額代幣轉換爲某一種幣,過程繁瑣。

·爲完成最終目標需要歷經多個應用。諸如高杠桿借貸:先swap,質押,借貸,得到的Token再swap,質押,借貸……

上述內容隻是我們在目前的DeFi世界的冰山一角,而在dApp越來越多樣化的Web3大規模採用時代,交互覆雜度可能遠超想象。

所以,用意圖Intent代替具體的操作步驟,對用戶而言體驗是天差地別的。意圖較之操作,就像聲明式編程之於函數式編程。聲明式的語句往往給人簡單明了的感覺,隻需要聲明我要做什麽即可而不關心其後細節,而這需要底層有層層封裝的各種函數式編程語句。

那麽使用Intent也不例外,也需要有一繫列設施的支持。我們可以從整個流程來看一下:

1.用戶提交將自己的意圖用某種方式描述,如自然語言等以RFS(Request For Solver)形式提交給Solver網絡。Solver是意圖的解釋器,目前常見的Solver有1inch等聚合器,可以爲用戶尋找最優的dex,但相比我們的願景而言它們併不夠通用和強大。

2.多個Solver給出回應,他們之間是競爭關繫。這些回應由Intent DSL語言編寫,再由客戶端解析爲易於用戶理解的形式。這些回應包含Input Constraints和Output Constraints,界定了輸入和輸出的界限。用戶也可以自行指定約束。一個簡單的例子來理解:在使用Swap的時候會提示用戶Swap後最少可穫得的數量,這就是一種約束。用戶自行在多個Solver的回應中進行選擇。

3.對Intent簽名。

4.Solver指定特定的執行合約Executor,併將Intent遞交響應合約Reactor。

5.Reactor從用戶賬戶中搜集所需要的輸入(如某種資産),曏Executor遞交Intent,Executor再調用相關邏輯合約後,將該交易的輸出返回給Reactor。Reactor檢查約束,若無誤則將輸出返給用戶。

我們可以把這個過程想象爲你將需求講給ChatGPT聽,不論多覆雜的需求,他都可以給你生成一個最終的結果,隻要你對結果滿意就可以直接使用,而無需關心其中的過程。

總結

Particle Network提出了一種全方位解決方案:通過zkWaaS、Particle Chain、Intent Fusion Protocol三位一體式的綜合形態,實現了Web2 OAuth隱私登録,隱私交易,全鏈賬戶抽象和意圖交易範式。每一個feature都將覆蓋Web3使用的一部分痛點,這些進步與優化將成爲日後Web3大規模採用的産品和技術基礎。在生態和商業模式上,採用B2B2C範式,以WaaS爲入口帶動整個産品鏈條規模化標準化,與dApp開髮者共建生態,共衕爲用戶打造一個低門檻高體驗的Web3世界。

當然,不衕的項目對Web3 mass adoption的實現路徑理解是不一樣的。除了對具體項目的審視,我們希望通過不衕的方案引出對Web3目前麵臨的onboard friction的理解,對用戶需求和痛點的思考,以及對整個生態共衕串聯和髮展的考量。

聲明:

  1. 本文轉載自[極客 Web3],著作權歸屬原作者[霧月,極客Web3],如對轉載有異議,請聯繫Gate Learn團隊,團隊會根據相關流程盡速處理。
  2. 免責聲明:本文所錶達的觀點和意見僅代錶作者個人觀點,不構成任何投資建議。
  3. 文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io的情況下不得覆製、傳播或抄襲經翻譯文章。
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!