為什麼還要做一條新的公有區塊鏈?這個問題是許多人看見琳琅滿目的區塊鏈項目率先浮現的問題,但對於 Nervos 來說,在回答這個問題之前,必須先重新理解區塊鏈的意義何在;而讓「區塊鏈本身」超高效率的運作,從來都不是他們認為的重點。
區塊鏈是互聯網協議的延伸,它彌補了互聯網協議的不足,但它並不是要顛覆現在的互聯網。
Jan 是 Nervos 的架構師與研究員,曾在以太坊(Ethereum)早年參與過兩年的核心開發,他認為區塊鏈的出現應該是提升既有網路的價值,對於區塊鏈應有的定位,他這 麼告訴動區:
未來的區塊鏈,應該與現有的互聯網協議共同運作。
目前,大部分的區塊鏈底層協議都希望讓所有的應用在區塊鏈上發生,這也要求了區塊鏈網路必須乘載所有的需求,成為一種世界計算機。
換句話說,它們都試著推翻傳統的網路。
但 Jan 認為,高效率的網路運作,是現有互聯網協議已經做到的工作,但它還有一些做不到 的事情——「去信任(Trustless)」。電子現金像是比特幣(Bitcoin)是一種最直觀,且現有網路無法做到的場景,而透過智能合約在以太坊(Ethereum)上搭建的穩定幣 MakerDAO 同樣如此。
而在什麼時候才能正確讓區塊鏈發揮其價值之處,卻又不會為了達成共識而拖累網路?這個團隊想從根本去改變。
Nervos 提出了與現有諸多區塊鏈協議不同的出發點,它們專為區塊鏈網路的「分層分工」而 設計,讓區塊鏈網路有更多的包容性。
「理想中的密碼經濟網路基礎設施,同樣應該是分層和解耦的架構,通過『一組協議』而不僅僅是一個協議來定義,對自我保障協議提供原生支持,並且有一個無需依賴任何第三方的信任鏈的根」,Jan 在自己的部落格這樣解釋。
在 Nervos 的網路中,底層是用於積極的專注解決區塊鏈目前面臨到的安全性問題,並嫁接好與大量應用建置的第二層之間的互動關係。
打造信任的底層經濟模型「CKB」
如果是一個有想法的公有區塊鏈,其實不太會找到相似之處,
Jan 告訴動區,這也是他們為什麼喜歡多與其他團隊交流,讓不同的想法創激盪出更多火花。
而 Nervos 協議專為分層設計後,會開始出現不同的分工,而最底層的架構應該是支持區塊鏈最根本的安全性,而非在同一個協議中建構所有的需求。
Nervos 近日發表了他們的底層經濟模型Nervos CKB(Nervos Common Knowledge Base) ,CKB 作 Nervos 的基礎單位,可能是最獨特之處。其將區塊鏈的「全局狀態」納入了他們 的底層模型之中。
用戶只為轉帳付費,但儲存帳本具有成本
區塊鏈可以想像成一個帳本,記錄著所有人與數字資產之間的關係,區塊鏈依靠著全節點來支 撐整體網路的安全性,它們記錄著所有的區塊鏈帳本資料,目前比特幣與以太放區塊鏈帳本遇到其中一個的問題即是:用戶所支付的成本(或稱手續費)皆是為了「改變帳本的狀態」,但在改變狀態之外,其實用戶也佔用了一定程度的帳本資源。
舉例來說,所有區塊鏈會有一個當前的狀態,在區塊被處理之前,假設10分鐘之前A有100個 代幣,B有200個代幣,在10分鐘之後處理完成,B轉帳50個代幣給A,A有150個代幣,B有 150個代幣,10分鐘之後的結果,便是區塊鏈的當前狀態。
Jan 簡單的描述一個區塊鏈轉帳,他認為目前的區塊鏈上收取的是「改變狀態」的費用,不是狀態本身佔用的費用。
我們要轉帳,是將 A 的紀錄與 B 的紀錄分別從 100 與 200 個代幣改變成 150 與 150 個代幣,區塊鏈向我們收取的,是為「改變」而付費,而不是為帳本紀錄的存儲付費。
Jan 表示,並強調了這之中的帳本紀錄的總體成本必須被處理:
在 CKB 模型中,我們從另一個角度看待,用戶不僅要為改變付費,同時也要為存放帳本的 金流付出一定的成本。不一定需要支付手續費,但是必要透過某種方式,無論如何,這都必須要有成本。
他認為,只有這樣,區塊鏈帳本才不會無限擴大,Nervos 稱這樣的問題為狀態爆炸,經濟學上稱作「tragedy of storage commons(暫譯:存儲公有財悲歌)」,若不有所限制,這樣的資源勢必會被濫用。
資源是有限的,所有的全節點都需要透過自己的硬碟進行存檔,同步帳本。
目前在不限制的情況下,使用者只要提交一次手續費即可將資產永遠存在區塊鏈上,所人都會濫用它。
Jan 指出,針對這個狀態,它付出的成本必須與時間與狀態大小成正比,他舉出亞馬遜公司的雲計算服務為例,租用亞馬遜的服務除了需要為運算付費,也需要為租的硬體付出在時間與大小上成正比的費用。
CKB,用最簡單的方式替狀態佔用付費
以太坊目前也面臨著的狀態問題,過度膨脹的帳本狀態(狀態大小,State Size)可能會威脅以太坊網路的可用性,在未來以太坊2.0的更新中,開發者考慮實現一種狀態租賃(State Rent)的功能,即向服戶收取存儲數據的費用,不過該提案目前也歷經許多激烈的辯論,包括目前大多智能合約可能必須重新編寫或部署,暫非優先處理。
「我們認為用一種最簡單的方法,來實踐對於全球空間狀態佔用成本的收費。」
Jan 表示。
CK Byte(Common Knowledge Byte)是 Nervos 的基礎代幣,而其最基本的用途,即是佔有區塊鏈全球狀態空間的權力,CK Byte 讓擁有者能夠佔用區塊鏈的全球狀態,假設 Alice 擁 有1000 個CK Byte,那麼她可以使用1000 個 Byte 來存儲資產、應用程式狀態或是其他類型 的數據資料,而一個基本的存儲單位其稱為「Cell」。
我們透過一種方式,讓這個空間本身變成一種資產,你可以想像是一塊土地。
Jan 繼續向動區表示:
因此我們要向這個空間存放數據時,必須先「擁有」這個空間。
他解釋,在CKB中,擁有這個空間的成本即是「佔用資金」,也就是擁有CKB,這形成了一 個機會成本的概念,用戶為了存數據,將1000元換成了 CKB 獲得存儲數據的空間,若在一年之後不需要這樣的數據空間,隨時賣掉 CKB 換成其他資產。
這1000元的使用在「特定時間段」就因此被佔用,等於是變相的支付了區塊鏈全球狀態的成本。
Jan 認為,以太坊在狀態租賃(State Rent)的解決方案上,可能會面對比較大的抗審查爭議, 狀態租賃類似於預付卡儲值,但一旦空間佔用的費用花完沒有重新加值,雖不會刪除資料,但智能合約的功能會被以太坊區塊鏈關閉,會衍生出很多後續問題。
但如果用戶已經透過代幣持有一定的狀態空間,就一定不會出現類似的問題。
只要不取出, 便不會受到影響,因為狀態的成本已經間接透過了機會成本支付了。
針對CKB,其如此表示。
Daniel 是 Nervos 的共同創辦人,也是知名密碼貨幣錢包 imToken 的第一任 CTO。 他向動區表示,區塊鏈網路必須找到一個稀缺資源進行手續費定價,才能得以支撐礦工的費率 市場,也才得以保持網路安全。
他指出,目前區塊鏈上的稀缺資源有三種:運算、頻寬以及空間,比特幣與以太坊選擇透過頻寬來支付資源的費用,然而算力以及頻寬都是「瞬間性」的成本(每秒計算多少……),在每 一秒使用過後下一秒又會重新釋出,然而空間的存儲是可持續性的(這一秒存入的資料,下一 秒不可能刪除)。
因使針對資源的稀缺性的本質,他認為「空間」相較於上述兩者較可作為設計定價模型的基礎。
二級發行,作為礦工持續性獎勵
Nervos CKB 的底層協議採用了工作量證明(PoW)挖礦演算法,在代幣經濟對於礦工激勵上 ,他們透過了類似通膨的二級發行,來確保礦工之於網路安全的可持續性。
Daniel 表示,其採用了類似於比特幣 UTXO(Unspent Transaction Outputs)模型的方式來計算礦工費,對每一筆交易來說,總輸入不能小於等於總輸出,之中的差值即是礦工手續費。
我們在底層帳本模型的基礎單元Cell模型中,衍伸出了一套基於Cell模型的編程範例。
礦工在 計算驗證Cell的輸入與輸出時,以獲取中間的差值,這部分的計算方式是類似於比特幣的。
Daniel 這樣解釋。
這其實(用戶)是付出了兩部分的錢,手續費是為計算所付出的成本,Cell 的存放則是針對 全局狀態佔用所支付的成本。
Jan 補充道。
Daniel 表示,在比特幣區塊鏈中,透過平台的定期減半的獎勵「補貼」是礦工的主要收入,隨著時間成長、區塊獎勵減少,漸漸讓手續費在礦工收入中的比例增加,形成了「前期依賴補貼、後期依賴手續費」的現象。
然而,在 Nervos 中,除了有著與比特幣類似隨時間遞減的基礎區塊獎勵,其還有一個二級發行的機制,每年以一定的比例增發基礎貨幣。
礦工可以持續的獲得發增的礦工手續費,我們讓礦工持續維護網路安全本身也算是一種服務
收費。而使用這種服務的人,需要為礦工支出這樣的成本。
Daniel 解釋道,並補充:
但它的支出方式並不是直接付錢給礦工,而是透過在網路上透過不斷增發的過程,去稀釋全網中所有的代幣用戶的價值。雖然實際上使用的代幣數量不變,但價值是在被稀釋,並給了礦工。
值得注意的是,Daniel 提到了那些持有代幣,卻沒有使用礦工服務(交易、執行智能合約)的持有 者,Nervos提供了一種名為「NervosDAO」的系統合約,用戶則可以選擇將代幣抵押進系統 合約中,系統便會再增發時自動進行補貼,用來確保這些代幣不會因為用戶本身持有,但又因 為沒有使用礦工服務,無故被稀釋價值。
「假設在「二級發行」時,所有CK Byte的60%用於存儲狀態,所有CK Byte的35%被存放並鎖定在NervosDAO的合約中,剩下的CK Byte中的5%保持流動性。那NervosDAO按比例分配 給鎖定的代幣(用戶),最後剩下的5%會被銷毀。」
Nervos 在其經濟模型提案中如此寫道。
從礦工到使用者,考慮到了所有的參與方參與網路的方式該如何進行付費,包括了代幣持有者 放棄了流動性,也可以透過DAO合約的質押對幣值進行一定的貢獻,讓所有使用者對於代幣 的目標一致,該團隊認為,這長期來看會是更加安全的模型。
將「價值」凝聚在 Layer 1
Daniel 表示,透過以太坊所發行的代幣,諸如ERC-20等,並不與以太坊的原生貨幣以太幣( ETH)直接相關,但所有的應用或交易,都需要以太幣作為支付礦工的計算費用,也就是Gas 費用。
他將這樣的概念比擬成電力系統,今日每一個服務無論價值高低,皆是使用一定的以太幣作為 服務費用,但今日若該電力系統支持了一個超越其價值的服務,這個系統可能會需要更高的安 全保護。
當一旦ERC等標準的資產價值超越以太坊本身的話,是否會有動機去攻擊以太坊本身的網路?
回到區塊鏈,Daniel 這樣說道,而反過來說,他認為以太坊無法體現更大的價值:
若今天以太市值100億美金,一個價值1000億的資產需要在區塊鏈上發行,他可能不會選擇 以太坊,因為它乘載不了。
他認為,如果協議的設計不能體現鏈上資產的價值,並隨著規模擴大其安全等級,是 Nervos 認為目前區塊鏈協議沒有適當解決的問題,因此他們反而更專注於在第一層(Layer 1)執行 安全、去中心化,透過在第一層抵押CKB發行資產,並把資產「映射」到第二層(Layer 2) 中,去進行高頻率的交易。
Nervos CKB 協議的 Layer 1 上面的計算能力,就像法庭一樣。
只要再 Layer 2 上有爭議的交易才需要由 Layer 1 解決。這樣一來,Layer 1 就能提發揮區塊鏈當中最重要的機制 — 信任機制。而 Layer 1 上面的計算能力,也能得到解放。從整個經濟模型的上來看,分工合作,發揮自身最大效益。
Layer1 擁有最終清算效力,凝聚所有的代幣(原生代幣也代表著資源佔用的價值)的價值,也與所有礦工的利益方向一致。
layer 1 的重點在於安全,而不是高效能,…… 很多項目關注區塊鏈的效能,幫助用戶降低成本,但一旦談到成本,再怎麼降,無論怎麼比都 無法比傳統互聯網低。
在訪談最後,Jan 向動區這麼說道:
這也是為什麼我們為什麼需要區塊鏈,但不一定需要效能。
尚未完成的道路
到目前為止,Nervos 持續往他們認為的方向努力,以一個成立近1年的團隊來說,他們建構了 十分活躍的開發者社群,並持續討論著對於 Nervos 區塊鏈的想法。
Nervos 已經將他們的底層 Cell 代碼開源,並希望在今年能上線測試網路。 除了本身的開發,他們一直以來都是區塊鏈社群的愛好者,堅信著社群與開源文化的精神,Daniel 與 Jan 一直是中國開發者社群的重要組織者,同時也是多年的老同事。
在談到區塊鏈硬分叉的成本問題時,Daniel 表示,他們自己也開設了播客節目在談論著類似的議題 ,並時不時的深入探討像是歷史上的硬分叉、以太坊TheDAO事件等議題。
上週,是 Nervos 團隊首次來到台北,在上週四晚間一場開發者聚會中,Nervos 的演講的確 吸引了一些開發者的關注。一位資深區塊鏈開發者向動區表示,這是他第一次聽到該項目,但 他可能會開始了解該項目的具體執行細節。
在會議結束後,被問及對於 Nervos 自己怎麼看待這樣獨樹一幟的區塊鏈架構將在未來上線:
「很難想像,這是個前所未有的嘗試。」
Jan 如此說道。
?相關報導?
「人人都要做更好的以太坊,這個方向是不是錯了?」一窺 Nervos 理想中的區塊鏈架構
【反轉區塊】公有區塊鏈設計感悟——「我們都把資產交給抱著黃金逛街的孩子?」
《BlockTempo動區動趨》LINE官方號開通囉~立即加入獲得第一手區塊鏈、加密貨幣新聞報導!