.bit 是由去中心化身份服務提供商 (d.id 團隊)開發的去中心化名字協議。.bit 致力於爲每個組織和個人提供全局唯一的、完全由用戶掌控的去中心化名字。.bit 協議作爲 d.id 去中心化身份藍圖的核心拼圖,於 2020 年 11 月啓動,2021 年 7 月上線 Nervos CKB 主網,累計融資金額 1800 萬美金。

衆所周知,儘管 Nervos CKB 團隊有頂級的架構能力,項目本身也有豪華的投資人陣容,但在相當長的一段時間裏,Nervos CKB 都是處於市場關注少、市值偏低、生態應用少的狀態。.bit 一度是 Nervos CKB 上最主要的生態應用,所以也被朋友們戲稱爲「荒漠中建高樓」。那麼,是什麼原因導致過去幾年 Nervos CKB 少被市場所關注,又是什麼原因讓我們堅持將 .bit 運行在 Nervos CKB 上呢?我將從一個開發者的視角,談談我的看法。

過去 Nervos CKB 少被市場關注的原因

在我看來,Nervos CKB 之所以在過去幾年少被市場關注,關鍵在於其選擇了與以太坊完全不同的技術路線:堅持 UTXO + PoW;保持與 Bitcoin 同構;作爲 Bitcoin 的 Contract Kernel。而這種技術路線背後的思想在過去幾年 EVM 獨霸天下的市場環境中,顯得格格不入。選擇與主流不同的技術路線帶來的影響是:

1.市場理解它需要時間;

2.開發者熟悉新的編程模型需要時間。這些影響進而導致 Nervos CKB 團隊過去幾年的創新性的工作,並未得到關注和認可。

然而如今整個市場氣候已經發生變化,Bitcoin 生態開始成爲市場關注的重點。市場也開始意識到,Nervos CKB 的那些曾經看來與主流格格不入的設計,在今天看來是如此地具有前瞻性。

.bit 爲什麼運行在 Nervos CKB 上

1.Nervos 與 Bitcoin 同構,堅持 PoW + UTXO

我們現有團隊核心成員之所以離開互聯網公司進入 Web3 行業,很大程度上是出於對 Bitcoin 開宗立派的敘事認同,以及對其簡潔精妙的設計的欣賞。我們喜歡與比特幣更相近的東西。

.bit 要成爲完全由用戶掌控的名字系統,就必須運行在足夠堅固可靠的基礎上,因此 PoW 公鏈是必然的選擇。在 PoS 及其變種爲主流的今天,我們堅持認爲 PoW 機制更加堅固。 在我看來,PoS 及其變種之所以成爲主流,並不是因爲 PoS 更加合理。其中一個重要的原因是,要成功啓動一條 PoW 公鏈,難度要大得多得多。構建 PoW 生態是一個複雜工程。到目前,Nervos CKB 是少數成功啓動的 PoW 智能合約公鏈,並且礦機已經進化到 ASIC 階段,挖礦產出也完成了一次減半。

Nervos CKB 和 Bitcoin 是同構的,是指同樣都是 UTXO 模型。Nervos CKB 中的 UTXO 稱之爲 Cell,它本質是增強版的 UTXO。在 Bitcoin 的 UTXO 模型中,只能通過表達能力有限的簡單腳本控制 UTXO 的花費條件;而在 Cell 模型中,可以使用圖靈完備的語言對 Cell 的花費條件進行更高級的編程控制。因此,Nervos CKB 在延續了 Bitcoin 簡潔精妙設計的同時,爲開發者提供了極強的可編程能力。後面我們還會談到,UTXO 模型還能幫助應用更容易地做到 Mass Adaption。

2. 自定義密碼學原語 + Cell 作爲資產容器 - 能夠幫助應用實現 Mass Adaption

嚴格地說,並不是 .bit 啓動時選擇了運行在 Nervos CKB 上。而是 .bit 是一個原本被放棄了的內部項目,因爲 Nervos CKB 的出現而被重新啓動。

.bit 最早啓動於2019年初,原本是準備運行在 Bitcoin 上,應用數據存儲到 OP_RETURN 中。我們完成了測試版本的開發和部署,但最終還是選擇斃掉這個項目。我們目標是讓 .bit 能服務廣泛的組織和個人,因此,其依賴的平臺必須同時滿足兩個條件:1. 足夠堅固可靠;2. 使用門檻極低。Bitcoin 足夠堅固可靠,但門檻是極高的。

這些門檻是所有新用戶進入 Web3 都要克服的困難,也是優秀的 Dapp 應用很難大規模出圈的障礙。它們包括:

1.用戶需要理解並保管好私鑰;

2.用戶需要先擁有用於支付交易費用的代幣

例如,你在以太坊上發行了新的 NFT,一個沒有 Web3 經驗的用戶被你的理念所吸引決定購買的你的 NFT。他接下來將經歷一系列陌生的任務:下載錢包、備份助記詞、到某個交易所完成 KYC 並完成法幣入金、再回到你的網站來購買。絕大部分的用戶都沒辦法自主的完成這些任務,到備份助記詞這一步基本都放棄了。

再比如,你把 NFT 送給了一個剛創建好以太坊地址的用戶,但由於他的地址上沒有 ETH,結果他無法對這個 NFT 進行任何操作。儘管 EVM 存在一些 Gas 代付解決方案,但依然是一個較複雜的解決辦法。

我們可以做這樣總結過去的局面:所有 Dapp 的用戶都必須首先成爲公鏈的用戶;所有 Dapp 都要先幫公鏈獲取用戶,才能從公鏈用戶池中轉化出自己的用戶。

那 Nervos CKB 上是如何解決這些問題的呢?答案是:

1.支持自定義密碼學原語,使得用戶無需再關心私鑰

2.Cell 作爲資產容器,巧妙地使用戶在操作資產時無需再關心交易手續費

- 自定義密碼學原語

也就是說,與其他公鏈都將密碼學算法硬編碼到共識層不同,開發者可以在 Nervos CKB 上部署任意的密碼學算法,並在必要的時候調用這些算法進行驗證。比如,你可以把 Bitcoin 的驗籤算法部署在 Nervos CKB,這樣你的應用就可以驗證 Bitcoin 私鑰的簽名了。也就是說比特幣的用戶可以直接使用比特幣地址管理 Nerovs CKB 上的資產。同樣的原理,以太坊狗狗幣等所有公鏈的地址都可以直接管理 Nervos CKB 上的資產。我們可以總結爲,所有公鏈的用戶,天然就是 Nervos CKB 的用戶。

更進一步,我們還可以將已經在互聯網世界中被廣泛採用的加密算法部署到 Nervos CKB 上,比如 secp256r1。所有的現代瀏覽器都已支持 W3C 的 Webauthn 標準,而 secp256r1 算法正是 Webauthn 的一部分。這意味着,用戶的手機/電腦/平板安全芯片中的私鑰,可以直接管理 Nervos CKB 上的資產。這是天才般的想法!那些沒有任何 Web3 技術知識的用戶,通過簡單的人臉或指紋識別即可簽署交易,並且是完全去中心化的。也就是說,所有的互聯網用戶,天然就是 Nervos CKB 的用戶。

我認爲這是 Nervos CKB 設計中最天才的部分!這也是 .bit 項目被重啓的直接原因。目前,.bit 業務流程中已經全面支持 Passkey,這使得那些沒有 Web3 基礎的用戶也可以直接使用 .bit。

- Cell 作爲資產容器

在 EVM 的賬戶模型中,每一項資產都對應一個合約,合約中有一個數據表,記錄了每個用戶分別擁有多少該資產。你需要發送資產時,就需要發起一筆調用該合約的交易,並從你的賬戶中支付交易費。常見的問題是,新用戶的賬戶中往往沒有任何代幣,無法支付交易費。EVM 生態已經出現了交易費代付的解決方案,但整體來說還是一個較複雜的方案。這種方案也不能有效解決全新用戶的問題。

在 Nervos CKB 的 Cell 模型中,每項資產也有對應的合約,但用戶擁有多少該資產是存儲在由用戶控制的 Cell 中的。也就是說,沒有一個統一的數據表去記錄每個用戶分別持有某項資產的多少;而是每個用戶自己手上的“保險櫃”(也就是 Cell)中記錄了用戶持有多少資產。

有意思的點在於,Cell 本身就是由 CKB 這個代幣構成的。一個 Cell 包含的 CKB 數量決定了它的數據存儲量上限。這些數據可能是某種代幣數量,也可能是 NFT 的 metadata 和圖片數據,數據的含義由開發者定義和解釋。同時,網絡交易費也是以 CKB 來進行支付的。那就意味着,在構造 Cell 時,除了把資產相關的數據存放到 Cell 裏,還可以給 Cell 多附加一些 CKB,多附加的 CKB 就作爲以後操作該資產時的交易費來源。

這就意味着,即便是一個全新的用戶,當我們把一個資產發送給他後,他不需要做任何其他準備,就可以操作這個資產了!他不需要關心什麼是交易手續費,因爲他收到的資產裏面已經包含了交易收費了。這是極其巧妙的設計!

@zhixian 曾做出過一個形象的比喻:EVM 上的資產就像是一個沒有油箱的汽車,你每次開車都需要帶一桶油上去,你把車送給別人時,別人也得準備好汽油才能使用這個車;而 CKB 上的資產是裝滿了油的汽車,任何人都可以直接上手開。同時,又由於抽象密碼學的設計,使得這輛車完全不挑駕駛員的技術(即,不需要用戶具備理解和管理私鑰),人人都能開。

總結起來,.bit 之所以選擇運行在 Nervos CKB 上,是因爲只有 Nervos CKB 才能做到在爲 .bit 提供堅固可靠的運行平臺的同時,還能極大降低 .bit 的使用門檻,使得 .bit 真正具有面向大規模用戶的能力。我相信,任何想構建偉大產品的開發者,都希望自己的產品能面向更大規模的市場,而 Nervos CKB 在我看來是最佳的選擇。

UTXO 編程範式興起

新進入生態的開發者很容易帶着賬戶模型的經驗來看 Nervos CKB 的編程模型(即擴展的 UTXO 模型),然後感覺到各種不適應。比如,全局狀態管理怎麼這麼複雜,Cell 搶佔問題好頭疼。對此我的看法是,賬戶模型和 UTXO 模型各有優劣。在某些場景下賬戶模型是高效的,比如對全局狀態的管理;在某些場景下 UTXO 模型是更高效的,比如前面提到的資產內置交易費。如果始終站在賬戶模型本位,看 UTXO 模型,就像是看怪物。事實上,在以太坊誕生的初期裏,許多習慣了互聯網應用開發的開發者也會不習慣 EVM 上面的編程;比特幣誕生之後的相當長的時間裏,都被習慣了法幣系統的人們視爲怪物。

剛開始接觸 UTXO 編程,可能會面臨一些棘手的挑戰。但不必擔心,這些往往都可以在 Nervos CKB 的論壇上找到相應的解決方案和討論。我在之前的系列文章《從 DAS 開始瞭解 CKB 應用開發》 中,探討了一些我們曾經遇到過的挑戰和對應的解決方案。

我認爲,隨着 UTXO 公鏈承載的資產越來越多,基於 UTXO 編程的意義和必要性開始變大,開發者對 UTXO 的理解也會加深。UTXO 編程終將成爲一種流行的編程範式。與 Bitcoin 同構的,具有強大可擴展性的 Nervos CKB 也將作爲 Contract Kernel of Bitcoin 而存在。

#BTC #CKB #CKB是最好的BTCL2