在 31/32 期祕猿科技小課堂中,咱們從經濟模型角度分析了現有區塊鏈的問題,以及狀態爆炸的問題。Nervos CKB 的經濟模型爲了解決現有問題,提出了創新的設計,如 Nervos DAO、基礎發行 + 二級發行的發行政策。segmentfault
祕猿科技區塊鏈小課堂第 33 期安全
簡單來講,區塊鏈是一個公開的帳本,區塊鏈的狀態指的是這個帳本當前的樣子。網絡
目前大部分的區塊鏈都存在狀態存儲的問題,特別是對於追求性能的區塊鏈,在達到性能以後,狀態爆炸就會出現,由於寫入的數據將更加龐大。可是目前大部分區塊鏈並無考慮狀態存儲的問題,由於在此以前公鏈還被困在性能的瓶頸中。性能
這是一個區塊鏈版本的公地悲劇--用戶只要支付一次手續費就可以永久地在區塊鏈這個帳本中寫入數據,並且數據存儲的成本並非本身承擔。礦工只收到第一筆手續費就要承擔狀態存儲的成本,因此會形成「一次付費,永久佔用」的問題。區塊鏈
全部礦工都維護一個公共帳本,除了寫入數據的用戶,維護帳本的人並無權力修改帳本,否則就致使你們帳本不一致,如此區塊鏈的狀態只能不斷積累,致使狀態爆炸的問題:設計
最重要的是,區塊鏈的狀態爆炸會使得參與運行全節點的成本變高(好比說須要很高的硬件規格),這會下降社區成員參與運行全節點的意願:若是存儲空間佔用累積太快,最後只會剩下少數的節點有能力能夠承擔運營成本,那就會影響區塊鏈的去中心化特性和抗審查能力。資源
在一個區塊鏈系統中,計算和帶寬都是瞬時資源--若是這些資源用完了,下一個循環或是下一個出塊,這些資源會更新,能夠重複使用。狀態存儲是長期資源(對於現有的智能合約平臺,已經佔用的狀態存儲空間是沒法更新的),對於存儲的計費應該怎麼作,如何與生態的發展掛勾,一直以來也沒有一個很好的解決方案。開發
Nervos CKB 經濟模型的最大亮點是將鏈上的存儲空間做爲公共資源:每個原生代幣 CKB 表明一個單位的存儲空間。也就是說,若是發行了 3 億枚 CKB Token,那就表明整個 CKB 網絡有 3 億 Kb 的狀態存儲空間。持有者能夠在存儲空間中寫入任何數據或者合約,礦工經過工做量證實機制在得到激勵的同時爲這些空間提供安全性。get
CKB 分爲「基礎發行」和「二級發行」:同步
CKB 的基礎發行和比特幣發行策略相似,區塊獎勵大約每四年會減半一次,一直到全部的基礎發行被礦工開採完畢。
CKB 的二級發行是一個常量增發的獎勵,不像基礎發行會每四年減半一次,二級發行每年發出的區塊獎勵都是同樣的,而且會一直增發下去。
NervosDAO 能夠幫滋長期投資者(Holder)對抗二級發行形成的通脹效應,假設我持有 1 萬個 CKB 原生代幣,而且預計這是一筆長期投資,那麼我能夠將代幣鎖定進 NervosDAO 合約中,換取必定的利息,不會由於二級發行的通脹效應而受到損失。
在基礎發行結束以前,礦工的收入是這樣:「基礎發行 + 二級發行 + 手續費」,與比特幣有着相似的發行曲線。在前 3 個減半週期中,網絡會發出絕大部分的區塊獎勵,與比特幣不一樣的是,當基礎發行徹底結束後,仍然有二級發行擔任出塊獎勵的角色。
舉個例子,在「已佔用的 CKB 佔所有 CKB 的 60%,鎖定在 NervosDAO 的 CKB 佔比 35%,可自由流通的 CKB 佔比是 5% 」的情況下:若是二級發行的出塊獎勵是 100 CKB,那就會有 60 CKB 被分配到礦工手上,35 CKB 分配到 DAO 的合約的持有者手上,5 CKB 將會被交由社區治理處理。
二級發行首先是一種對於狀態佔用的收費,也能夠說是一種租金,也就是要解決上一段提到的「一次付費,永久佔用」的問題。對於開發者來講,所持有的 CKB 都是能夠拿來使用的,只要數據佔用了這個空間,那就要支付佔用空間的費用,也等因而負擔由於二級發行形成的通脹效應所帶來的損失。
對於存儲空間使用者來講,支付的費用(租金)將會透過二級發行給到礦工,這讓礦工在基礎發行由於區塊獎勵減半而逐漸減小時,還有第二種收入可讓礦工願意持續投入算力來保護整個網路。
最後還有一部分是能夠自由流通的 CKB(沒有佔用存儲空間,也沒有鎖定進 NervosDAO 的部分),這部分代幣所對應的二級發行,將交由治理機制處理;在社區未達到機制的共識以前,這部分的「二級發行」將會被燒燬。
這樣的機制設計,會鼓勵 CKB 持有者在 CKB 上進行開發,或是將 CKB 存入 NervosDAO 中,或是將 CKB 租賃給其餘的開發者。對這個機制設計的另一個解讀是,當持有者享有 CKB 的絕對流動性時,也會承擔一部分由於二級發行而形成的稀釋。
基礎發行加上二級發行將帶給礦工與持有者帶來長期的可預測性收入,穩定的發行政策將對持有者、礦工以及開發者的持有成本或是開採成本呈現一種線性的發展,而不會由於改變發行政策而形成瞬間的波動,改變了參與者原來的參與動機。
CKB 二級發行和 NervosDAO 的精密設計爲區塊鏈的狀態爆炸問題提供瞭解決方案:對長期佔用狀態的開發者收取按期定額的租金,「一次付費,永久佔用」不復存在。
CKB 上紀錄的全部數據,是通過全球共識的數據,可是當一個開發者認爲某些數據再也不重要的時候,他能夠將這段數據刪除,並更換其餘更重要的數據到他所持有的 CKB 上,而新的數據會通過全節點的共識而保存下來,而被刪去的數據,仍然會保留在歷史節點上。
因爲世界狀態(通過全球共識,可存儲空間的最大值)即 CKB 的發行總量,這使得參與全節點的成本是能夠預測的,同時由於 CKB「鏈下計算,鏈上驗證」的特性,參與全節點的費用將會足夠的低,也將帶來更好的去中心化體驗。
在 CKB 上與狀態存儲最相關的節點分紅兩種,一種是參與全局狀態共識的全節點,一種是紀錄歷史數據的歷史節點,因此當咱們說全局狀態的時候,指的是有限的存儲空間,有限的資源將帶來一連串的影響,即越多的開發者佔用了 CKB 後,CKB 的可供給量將會變小,在需求不變的情況下,CKB 的價值將會上升,同時由於相關的應用增長,手續費用也會同時提高,提高了礦工的收入。