解讀CKB帳戶抽象生態: BTC Mass Adoption的鋪路石

自2022年AA敘事在以太坊社區火熱以來,帳戶抽象概念便流行於Web3社區。它實際上是一種關於帳戶體系的設計理念,旨在更高層次上建立標準,增強帳戶的功能性。而 在以太坊等主流區塊鏈中,由於存在固定規則的限制,帳戶體系的靈活性和通用性非常差, 比如說:

  1. 你的帳戶中要事先有ETH等Gas Token,不然無法發起交易,顯然這對新帳戶非常不友好;

  2. 以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的Cell模型

大多數人都知道,基於UTXO模型的公鏈,其數據存儲結構並不基於「帳戶—餘額」體系,而採用了一種獨特的形式。具體而言, UTXO像黃金一樣可以被熔化或鑄造,每次交易都會有舊的UTXO銷毀,新的UTXO誕生。 此外,UTXO數據並不存儲在某個集中式地址下,而是分散存儲在生成UTXO的那筆交易裡,要讀取過往區塊的記錄才能找到。

推薦閱讀:《走近BTC:理解BitVM所需的背景知識(1)》

毫不誇張的說,比特幣開創了一種區別於傳統Web2平臺「帳戶-信息」體系的存儲範式,這可以解決狀態爆炸、數據讀寫效率低下、所有權模糊化的問題。在UTXO模型下,不同人的資產數據存儲位置與所有權劃分十分清晰,對並行/並發比較友好,也便於支持存儲租賃等功能,可以避開傳統帳戶體系的很多坑。

Nervos公鏈的帳戶體系在設計之初,便充分吸收了比特幣UTXO的優點, 其Cell模型實際上是比特幣UTXO的升級版,提供了圖靈完備的可編程性。此外,無論是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的鑑權數據中包含一段預設好的公鑰哈希,只有公鑰哈希對應的公鑰主人才能通過身份驗證, 有資格改寫Cell中的數據。

Auth中的flag則是一個標識符,用於選擇不同的鑑權方式, 此處說的鑑權方式不僅指密碼學驗籤,還包括信息處理等綜合流程:如flag為0x01時,代表以太坊外部消息的鑑權方式。除了以太坊,OmniLock還支持Bitcoin、Dogecoin、Tron、多籤等豐富的消息驗證形式。

Args中的另一部分叫Omnilock args,它就像一個按鈕,可以在OmniLock預設好的功能模式中進行選擇, 如用管理員模式(如USDT的管理員凍結功能)、用於小額支付的anyone-can-pay模式(小額捐贈使用)、時間鎖模式等。Anyway,只要對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生態。

Common Chains Connector(CCC)

首先我們以CCC為例,這是一個錢包連接中間件,專門為錢包和dApp提供各種公鏈對CKB的可操作性。

下圖是CCC的連接窗口。這裡我們以MetaMask為例,如果你擁有一個以太坊帳戶,如何操作CKB鏈上的對應帳戶。

當使用CCC進行CKB鏈上交易時, 該demo會調起MetaMask錢包的 personal_sign 方法來進行籤名,這種方法用於籤名一段不直接上鏈的文字消息。

我們可以看出該信息包含的內容是CKB transaction的一系列十六進位碼。通過MetaMask籤名後的消息,將被提交至Nervos CKB鏈上,並通過OmniLock等機制進行驗證。

而前面我們曾提, Nervos本身就支持驗證以太坊的消息格式,可以說CKB從底層就考慮好了對接其他公鏈生態。 對用戶而言,你可以通過既有的、熟悉的入口和工具進入CKB生態;

而對於開發者,Nervos在底層定義好了OmniLock標準,並通過CCC抽象了多鏈錢包的實現細節,極大降低了開發難度,讓上層應用開發者可以更好地專注於上層業務邏輯的開發而不必過度關注於底層細節。

Mobit

Mobit是基於Nervos的DID和資產管理平臺,如果用一個比喻,Mobit就像是外界進入Nervors生態的一道大門,而這道大門的門檻很低。藉助Mobit,用戶幾乎不需要任何前置知識, 只需要一些簡單操作,就可以用其他公鏈的帳戶在Nervos生態中完成交互。

下圖是Mobit的連接窗口。可以看到目前Mobit已經支持多個主流公鏈的帳戶體系,且這個列表還在繼續擴張。

仍以Metamask錢包為例。連接後的界面同樣可以看到用戶的EVM和CKB地址,並展示該地址在CKB鏈上持有的Token和DOBs資產。

這裡說下DOBs,它是Nervos生態中特有的,類似於NFT的資產,但DOB與NFT有本質不同。首先,DOBs的數據完整保存在鏈上,可以看成是「全鏈NFT」,而很多以太坊NFT的數據並未完整存儲在鏈上;

另外,每個DOBs都可以設置Chatbot,可以與持有者進行對話等交互場景,隨著不同持有者各異的養成路徑,相比於傳統的NFT,每個DOBs將具有更顯著的個體差異。

至於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支持的客戶端:

  • Apple KeyChain:

    • Security Enclave: 蘋果的設備使用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的mass adoption創造必要條件。

  • Related Posts

    Bankless :Vitalik 的虛擬機提案

    作者:Jack Inabinet 來源:Bankless  …

    以太坊能否重振雄風?三大關鍵癥結

    作者:Lane Rettig,以太坊前核心開發者、以太坊基金…

    發佈留言

    發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

    You Missed

    Bankless :Vitalik 的虛擬機提案

    • By jakiro
    • 22 4 月, 2025
    • 1 views
    Bankless :Vitalik 的虛擬機提案

    Bankless:有哪些值得關注的去中心化內容創作平臺?

    • By jakiro
    • 22 4 月, 2025
    • 0 views
    Bankless:有哪些值得關注的去中心化內容創作平臺?

    以太坊能否重振雄風?三大關鍵癥結

    • By jakiro
    • 22 4 月, 2025
    • 0 views
    以太坊能否重振雄風?三大關鍵癥結

    川普關稅:一場單邊訛詐

    • By jakiro
    • 22 4 月, 2025
    • 2 views
    川普關稅:一場單邊訛詐

    維基解密、谷歌和比特幣:2011 年BTC面臨什麼挑戰?

    • By jakiro
    • 22 4 月, 2025
    • 2 views
    維基解密、谷歌和比特幣:2011 年BTC面臨什麼挑戰?

    美元信用被攔腰砍了一刀 黃金狂飆

    • By jakiro
    • 22 4 月, 2025
    • 2 views
    美元信用被攔腰砍了一刀 黃金狂飆
    Home
    News
    School
    Search