自2022年以來,帳戶抽象(AA)在以太坊區塊鏈社群備受關注,旨在提高帳戶功能性。但以太坊的現有模型存在靈活性差、使用者體驗不友善等問題。儘管EIP-4337等提案努力解決,但僅限於修補原有問題。 Nervos在設計時便充分考慮帳戶體系,其UTXO模型和OmniLock功能更符合AA目標,支援不同身份驗證方式,簡化了用戶操作,助力比特幣資產的DeFi應用。目前,Nervos生態內如Mobit、JoyID等產品已形成良好帳戶抽像生態,提高了使用者體驗。
作者:霧月,極客web3
編輯:浮士德
自2022年AA敘述在以太坊社群火熱以來,帳戶抽象概念便流行於Web3社群。它實際上是一種關於帳戶體系的設計理念,旨在建立更高層次的標準,增強帳戶的功能性。而在以太坊等主流區塊鏈中,由於有固定規則的,帳戶體系的彈性和通用性非常差,也就是說:
的帳戶中要事先有ETH等Gas代幣,否則無法發起交易,顯然這對新帳戶非常不友善;以EVM系為代表的公鏈僅支援單一的帳戶體系,其他公鍊或Web2用戶需要使用新的帳戶工具和入口。
以太坊社群風靡一時的EIP-4337提案被認為可以解決上述問題,但受制於其技術模型、歷史包袱與生態發展、開發者認知等因素,EIP-4337的修復方案目前正在打補丁並不是從根本上解決操作問題;嘗試為EVM添加新代碼的EIP-3074,則被認為存在安全隱患,在解決舊問題的同時帶來了新問題,吸聲爭議。
基於各種原因的干擾,以太坊創始團隊在主網啟動之初,沒有對帳戶體系進行周全的考慮,留下大量的包袱,如:EOA帳戶與合約帳戶分野、不支持無gas交易、不支持多這些歷史包袱對以太坊AA路線圖的實施造成了明顯的阻礙,甚至可以說,以太坊的AA方案並不能讓其帳戶體系超越後來的新公鏈,而只是在彌補兩者之間之間的差距。如果一條公鏈在最初設計時就充分考慮了帳戶設計,就不用像以太坊一樣走彎路了。
與EVM 系公鏈所不同,Nervos 在設計之初就研究了帳戶體系的問題,在進行了研究後,我們認為,Nervos 的帳戶體系更偏向AA 的底層和本質,其UTXO 帳戶模型及支援多種驗證方式的OmniLock,從始至終都與AA的目標深度契合,且沒有歷史包袱,天生就支持BTC、ETH究竟Solana等其他公鏈的帳戶體系。
另外,對於近期火熱的BTCFi而言,由於其本身就是最初的比特幣資產引入Defi等場景,要讓比特幣持有者獲得無縫的產品體驗,需要有兼容主流的比特幣錢包等周邊設施,而CKB的廢除AA方案自然實現了這一點,為BTCFi的大規模採用創造了必要條件。
以下我們的分區設計理念、系統架構、應用、生態等多個角度解讀Nervos的帳號抽象系統。
比特幣UTXO與Nervos的細胞模型
大多數人都知道,基於UTXO模型的公鏈,其資料儲存結構並不是基於「帳戶—餘額」體系,而是採用了一種獨特的形式。具體而言,UTXO像黃金一樣可以被熔化或鑄造,另外,UTXO資料並沒有儲存在某個中心化地址下,而是去中心化儲存在產生UTXO的那筆交易裡,要讀取過往區塊的記錄才能找到。
毫無誇張的說法,比特幣開創了一種區別於傳統Web2平台「帳戶資訊」體系的儲存範式,可以解決狀態爆炸、資料讀寫效率低、語音模糊化的問題。在UTXO模型下,不同人的資產資料儲存位置與分區劃分十分不同,對負載/載體比較相似,也支援儲存租賃等功能,可以忽略傳統帳戶體系的許多坑。
Nervos 公鏈的帳戶在設計之初,便充分吸收了比特幣UTXO 的優點,其Cell 模型實際上是比特幣UTXO 的升級版本,提供了圖靈的強化性。另外,無論是CKB 或CKB其他資產都是等區別資產,並不像EVM公鏈一樣把外匯資產與ERC-20對待。
CKB 的Cell 在相容上與比特幣UTXO 大致相同:都是被“鎖定腳本”和“解鎖腳本”驅動的,每個UTXO/Cell 在產生時,都會有一個“鎖定腳本”,就像密碼一樣鎖;而「解鎖腳本」是對應的密鑰,可以解開「鎖定腳本」。只要你能配置“鎖”對應的“密鑰”,其關聯的UTXO任你差遣。
但與比特幣UTXO不同的是,Cell在鎖定腳本上面增加了「TypeScript」欄位。如果說LockScript是身份驗證器,你是否有資格改寫這個Cell,那麼TypeScript就是指定在Cell中的智慧合約, DEX、網路協定的程式碼都可以部署在TypeScript內部。
如果開發者要在CKB 上實作建構AMM 的流動性礦池,只需要在一個專用Cell 的TypeScript 中編寫好合約程式碼,然後在這個Cell 的Data 欄位中,放置流動礦池性的狀態資訊(例如礦池子裡)各類資產餘額),之後使用者和TypeScript中的程式碼互動就行了。
CKB 的這種設計在比特幣UTXO 模型之上拓展生長了更豐富的場景,簡化性強,而且由於CKB 本身採用了RISC-V 虛擬機,支援多種程式語言編寫的程序,能夠支援的各種邏輯要遠比比特幣強大。
至於Cell的鎖定腳本LockScript,則與我們今天的核心問題AA正相關。因為AA所具有的相關一大特性,必須讓鏈上帳戶支援靈活多樣的身份驗證方式。對於UTXO而言,要實現這項功能,需要在身份驗證器的LockScript上下功夫,CKB為此推出了專門支援多種身份驗證方案的OmniLock腳本。
下面就讓我們來了解下OmniLock的具體設計。
OmniLock與帳號背景
前面我們曾提到,CKB的Cell與比特幣UTXO,其使用權限都是由鎖定腳本定義的,LockScript中會確定哪些人可以修改這個Cell,進行身份驗證的作用。為了支援多種認證方法,CKB 提供了名為OmniLock 的通用型鎖定腳本,可以相容於多種簽章演算法和驗證機制。
OmniLock將不同的驗證邏輯進行了自訂處理,只需設定不同的參數,就可以靈活配置不同的驗證演算法。用戶可以分別使用BTC、ETH甚至WebAuthn等帳戶、錢包/鑑權方式,直接建構CKB鏈上的資產。
OmniLock具體是怎麼實現和使用的?其實要通俗的解釋,OmniLock是Nervos官方直接在CKB鏈上搭建了一段程式碼,假設現在程式碼寫在了某個特定的Cell上,可以被其他Cell使用,就希望EVM公鏈中的“系統合約”一樣。如果某個Cell要使用OmniLock,可以在自己的固定腳本中宣告引用OmniLock。
下面我們可以透過一段偽代碼來理解作用腳本和OmniLock的工作原理。
CKB 的鎖定腳本包含Code hash、hash type 和Args 三個字段,由於Code hash 和hash type 與本節內容關聯性不大,這裡不做解釋。以下我們示範介紹Args 字段,透過對Args 進行靈活配置,就可以使用OmniLock 中定義好的不同驗證演算法。
Args字段對應的內容可以分為兩部分,一部分是auth,專門用於身份驗證,其長度為21字節,包含1字節的flag標識符,以及20字節的鑑權數據。 auth的鑑權資料資料包含一個預設的基線,只有基線對應的基線主機經過驗證,有資格改寫小區中的資料。
Auth中的flag重寫一個標識符,用於選擇不同的鑑權方式,這裡所說的鑑權方式不僅指密碼學驗簽,還包括資訊處理等綜合流程:如flag為0x01時,代表以太坊外部訊息的鑑權方式。除以太坊外,OmniLock還支援比特幣、狗狗幣、波場、多簽等豐富的訊息驗證形式。
Args 中的另一部分叫做Omnilock args,它就像一個按鈕,可以在OmniLock 預設的功能模式中進行選擇,如用管理員模式(如USDT 的管理員凍結功能)、用於小額的支付任何人-can-pay模式(小額轉送使用)、時間鎖定模式等。總之,只要對Omnilock args進行調整,就可以使用OmniLock中預先寫好的不同功能。
綜上,我們可以在Cell鎖定腳本的Auth和Omnilock args欄位輸入不同的參數,來選擇不同公鍊或平台的身份驗證方式,為CKB引入不同的身份驗證方式。當然,除了OmniLock中預先定義的幾種鑑權方式外,開發者也可以自行定義的身分驗證方案。
Nervos 帳戶抽像生態:CCC、Mobit 和JoyID
上面我們已經知道,OmniLock 是Nervos 實現帳戶抽象的基礎,而基於OmniLock 的錢包如Mobit、.bit、Omiga 和中間件CCC(Common Chains Connector)等則構成了Nervos 豐富的BTCFi 帳戶抽像生態,此外還包括提供安全隱私保護與身分管理服務的DID平台Did.id,以及去中心化Dobs資產交易平台Dobby等。
AA 的良好特性為BTCFi 生態應用也帶來了極大的便捷性,使得CKB 生態內的專案可以直接支援BTC 錢包交互,降低了使用比例。在接下來的中,讓我們以具體的案例切入,來示範CKB的AA生態。
普通鏈條連接器(CCC)
首先我們以CCC 為例,這是一個錢包連接中間件,專門為錢包和dApp 提供各種公鏈對CKB 的可操作性。
下圖是CCC的連線視窗。這裡我們以MetaMask為例,如果您擁有一個以太坊帳戶,如何操作CKB鏈上的對應帳戶。
當使用CCC進行CKB鏈上交易時,該demo會調出MetaMask錢包的personal_sign方法來進行簽名,這種方法用於簽名一段時間不直接上鍊的文字訊息。
我們可以看出該資訊包含的內容是CKB交易的一系列十六進位碼。透過MetaMask簽署後的訊息,將提交至Nervos CKB鏈上,並透過OmniLock等機制進行驗證。
而前面我們曾經提過,Nervos 本身就支援驗證以太的訊息格式,可以說CKB 從底層就已經考慮好了對接其他公鏈生態。對於坊間用戶而言,你可以透過新鮮的、熟悉的入口和工具進入CKB生態;
而對於開發者來說,Nervos 在基礎上定義好了OmniLock,並透過CCC 抽象化了多鏈錢包的實作細節,大大降低了開發難度,讓上層應用程式開發者可以更好地專注於上層業務邏輯的開發而不必過度關注底層細節。
移動
Mobit 是基於Nervos 的DID 和資產管理平台,如果用一個比喻來說,Mobit 就好比是進入Nervors 生態的一道大門,而這道大門的貨運通道。借助Mobit,使用者幾乎不需要任何前置知識,只需要一些簡單的操作,就可以使用其他公鏈的帳戶在Nervos生態中完成交易。
下圖是Mobit的連線視窗。可以看到目前Mobit已經支援多個主流公鏈的帳戶體系,而這個清單仍在持續拓展。
還是以Metamask錢包為例。連接後的介面同樣可以看到用戶的EVM和CKB位址,並顯示該位址在CKB鏈上持有的Token和DOBs資產。
這裡說下DOBs,它是Nervos生態特有的,類似NFT的資產,但DOB與NFT有本質上的不同。首先,DOBs的資料完整地保存在鏈上,可以看成是“全鏈NFT”,還有很多以太坊NFT的資料儲存完整在鏈上;
另外,每個DOB 都可以設定Chatbot,可以與持有者進行對話等互動場景,隨著不同持有者不同的養成路徑,相比於傳統的NFT,每個DOB 將具有更顯著的個體差異。
至於Omiga是Nervos生態中DOBs的交易平台,使用者可以直接在Mobit的Apps介面一鍵跳轉進入。
Omiga 同樣利用了Nervos 的帳戶抽像功能。
Mobit的操作簡單、功能全面,將有利於BTCFi的交易。 BTCFi產品本質上是為原生的比特幣資產提供多樣化的Defi體驗,能否兼容主流比特幣錢包將是BTCFi週邊設施需要考慮的重要因素相關,而CKB目前已經做好了準備。
對WebAuthn的採用
WebAuthn 是一種由萬維網聯盟(W3C)和FIDO(Fast IDentity Online)聯盟共同開發的網路提高標準,目標是用戶身份驗證的安全性、簡化登入過程,減少對傳統密碼或私鑰的依賴。
一些主流的桌面或行動作業系統如iOS和Android中內建的金鑰管理軟體,可以使用本地的安全模組或雲端儲存來儲存金鑰並進行簽署。目前WebAuthn主流實務中一般會支援P-256,P -384,P-521等,由於Nervos的OmniLock支援自訂的密碼學原語,所以也可以覆寫這些。
以下是一些WebAuthn支援的客戶端:
蘋果鑰匙圈: Security Enclave:Apple 的裝置使用Secure Enclave 來處理關鍵的加密貨幣作業,包括私人金鑰儲存和簽章。 iOS 和macOS:蘋果的系統可以使用按鍵串API進行身份驗證和簽名操作,也可以透過Face ID或Touch ID進行使用者認證。 Windows Hello: TPM(Trusted Platform Module):Windows裝置可以透過Windows Hello利用TPM進行私密金鑰產生和簽署。 生物認證:Windows Hello支援指紋辨識和臉部辨識來驗證使用者身分。 Android Keystore:Android裝置可以利用硬體安全模組進行金鑰儲存和簽名,並透過生物特徵(如指紋或臉部辨識)進行認證。 Ubisoft Security Keys:安全金鑰硬體設備,如YubiKey,支援透過USB或NFC進行安全認證和簽章操作。
CKB生態錢包JoyID就是利用WebAuthn技術所實現的應用。透過JoyID,使用者可以直接透過生物辨識(如指紋或臉部辨識)的方式進行身份驗證,實現無縫且高安全性的登入和身分管理。
Nervos生態中的.bit也是利用Apple的WebAuthn實作來登入並使用區塊鏈的場景。
從上面的案例我們可以看出,CKB 的AA 方案天生就支援其他公鍊和Web2 使用者。對於大多數Web2 用戶而言,支援WebAuthn 是至關重要的,它擺脫了私鑰和助記詞管理的包袱,降低了極大的使用便利性。越早在這個方向上發力的公鏈自然,在日後就具有優勢。
總結
以太坊建立於歷史其包袱問題,現有的AA 解決方案基本治標不治本,無法從根源上解決問題;而Nervos 在啟動主網之初就充分考慮了及帳戶體系的設計,提供了OmniLock 功能,可以支援任何形式的身份驗證方式。
Nervos 的Cell 模型本質上是對比特幣UTXO 的功能擴展,其鎖定腳本可以支援多種驗簽演算法,OmniLock 則以系統合約的方式,支援任意Cell 鎖定在腳本中直接調用,為廣大開發者提供並為使用者提供了Web2層級的體驗;
目前Nervos帳戶抽像生態內已經有CCC、Mobit、Joyid等產品,基本比較可靠;
BTCFi 本質上是為原生的比特幣資產提供多樣性的Defi 體驗,能否兼容主流比特幣將是BTCFi 週邊需要考慮的重要結構,而CKB 作為BTCFi 生態中的重要,採取了收納和蓄電設施在開發者側和用戶側的做法、關注都為BTCFi 的大規模採用創造了必要條件。
資訊來源:0x資訊編譯自網際網路。版權歸作者極客Web3所有,未經許可,不得轉載