Since the AA narrative became popular in the Ethereum community in 2022, the concept of account abstraction has become popular in the Web3 community. It is actually a design concept for the account system, aiming to establish standards at a higher level and enhance the functionality of the account. In mainstream blockchains such as Ethereum, due to the limitations of fixed rules, the flexibility and versatility of the account system are very poor. For example:
The EIP-4337 proposal that was previously popular in the Ethereum community was considered to be able to solve the above problems. However, due to factors such as its technical model, historical baggage, ecological development, and developer awareness, EIP-4337’s patch solution is more like It is patching rather than fundamentally solving the problem; EIP-3074, which attempts to add new opcodes to the EVM, is considered to have security risks. It solves old problems while creating new ones, and its feasibility is highly controversial.
Due to various reasons, the Ethereum founding team did not fully consider the account system at the beginning of the mainnet launch, leaving a lot of baggage, such as: EOA accounts and contract accounts are separated, no gas transactions are supported, and no gas transactions are supported. Supports multiple encryption primitives, etc. These historical baggage have caused obvious obstacles to the implementation of Ethereum's AA roadmap. It can even be said that Ethereum's AA plan does not allow its account system to surpass the later new public chains, but only bridges the gap between the two. If a public chain fully considers account design when it is initially designed, there will be no need to take detours like Ethereum.
Different from EVM public chains, Nervos has deeply considered the issue of the account system at the beginning of the design. After conducting research, we believe that the Nervos account system is more biased toward the bottom layer and essence of AA. Its UTXO account model and OmniLock, which supports multiple verification methods, is deeply consistent with AA's goals from beginning to end and has no historical baggage. It naturally supports account systems of other public chains such as BTC, ETH and even Solana.
In addition, for the recently popular BTCFi, since it itself introduces Defi and other scenarios for native Bitcoin assets, in order for Bitcoin holders to obtain a seamless product experience, it is necessary to be compatible with mainstream Bitcoin Peripheral facilities such as wallets, and CKB’s native AA solution naturally realizes this, creating the necessary conditions for the large-scale adoption of BTCFi.
Below we will interpret Nervos’ account abstraction system from multiple perspectives such as design concept, system architecture, application, and ecology.
Most people know that the data storage structure of public chains based on the UTXO model is not based on the "account-balance" system, but adopts a unique form. Specifically, UTXO can be melted or minted like gold. With every transaction, old UTXO is destroyed and new UTXO is born. In addition, UTXO data is not stored under a centralized address, but is stored dispersedly in the transaction that generated the UTXO, and it can only be found by reading the records of past blocks.
It is no exaggeration to say that Bitcoin has created a storage paradigm that is different from the traditional Web2 platform's "account-information" system, which can solve the problems of state explosion, low data reading and writing efficiency, and blurred ownership. Under the UTXO model, the storage location and ownership of asset data of different people are very clear, and it is friendly to parallelism/concurrency. It is also easy to support functions such as storage leasing, and can avoid many pitfalls of the traditional account system.
The account system of Nervos public chain has fully absorbed the advantages of Bitcoin UTXO from the beginning of its design. Its Cell model is actually an upgraded version of Bitcoin UTXO, providing Turing-complete programmability. In addition, both CKB and other assets are first-class assets and do not treat native assets differently from ERC-20 like the EVM public chain.
The operating mechanism of CKB’s Cell is roughly the same as that of Bitcoin UTXO: both are driven by “locking scripts” and “unlocking scripts”. When each UTXO/Cell is generated, there will be a “locking script”, just like A password lock; and the "unlocking script" is the corresponding key, which can unlock the "locking script". As long as you can submit the "key" corresponding to the "lock", its associated UTXO will be at your disposal.
But unlike Bitcoin UTXO, Cell adds a "TypeScript" field above the locking script. If LockScript is an identity authenticator that determines whether you are qualified to rewrite this Cell, then TypeScript is the smart contract attached to the Cell. The code of DEX and lending protocols can be deployed in TypeScript.
如果開發者要在CKB上實作類似AMM的流動性池,只需要在專用Cell的TypeScript中寫好合約程式碼,然後在這個Cell的Data欄位中,存放流動性池的狀態資訊(例如池子裡各類資產餘額),之後用戶和TypeScript中的程式碼互動就行了。
CKB的這種設計在比特幣UTXO模型之上拓展出了更豐富的場景,可編程性強得多,且由於CKB本身採用RISC-V虛擬機,支援多種程式語言寫的程序,能夠支援的各種邏輯遠比比特幣強大。
至於Cell的鎖定腳本LockScript,則與我們今天的核心主題AA正相關。因為AA所主張的一大特性,在於讓鏈上帳戶支持靈活多樣的身份驗證方式。對於UTXO而言,要實現這項功能,就要在充當身份驗證器的LockScript上下功夫,CKB為此推出了專門支援多種身份驗證方案的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中預先定義的幾種鑑權方式外,開發者也可以自行定義身分驗證方案。
上面我們已經知道,OmniLock是Nervos實現帳戶抽象的基礎,而基於OmniLock的錢包如Mobit、.bit、OmiCommon和中間件CCC(Commgaon Connector)等則構成了Nervos豐富的BTCFi帳戶抽像生態,此外還包括提供安全隱私保護和身分管理服務的DID平台Did.id,以及去中心化Dobs資產交易平台Dobby等。
AA的良好特性為BTCFi生態應用也帶來了極大的便捷性,使得CKB生態內的專案可以直接支援BTC錢包交互,降低了使用門檻。在下文中,讓我們以具體的案例切入,來檢視CKB的AA生態。
首先我們以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是基於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是一種由萬維網聯盟(W3C)和FIDO(Fast IDentity Online)聯盟共同開發的網路標準,目標是提高使用者驗證的安全性、簡化登入流程,減少對傳統密碼或私鑰的依賴。
一些主流的桌面或行動作業系統如iOS和Android中內建的金鑰管理軟體,可以使用本地的安全模組或雲端儲存來儲存金鑰並進行簽署。目前WebAuthn主流實務中一般會支援P-256,P-384,P-521等,由於Nervos的OmniLock支援自訂的密碼學原語,所以也可以覆寫這些。
以下是一些WebAuthn支援的客戶端:
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創造必要條件。
The above is the detailed content of Interpretation of CKB Account Abstract Ecology: The Paving Stone of BTC Mass Adoption. For more information, please follow other related articles on the PHP Chinese website!