以太坊創辦人先前表示以太坊已經「近乎滿載」,所謂的擴容不只是增加每秒交易量(TPS),還需要設計一套區塊鏈上的機制,避免區塊鏈上的資源遭到濫用,造成共有財悲歌(Tragedy of the commons)。除了以太坊 2.0 的種種升級提案,新的區塊鏈透過經濟模型的設計,這樣難解的問題也可能會得到一些出路。
以太坊創辦人 Vitalik Buterin 先前接受外媒採訪時表示,以太坊已經「近乎滿載(Almost full)」,而這裡的滿載並不是指容量滿載,而是網路上的狀態更新的要求過多,讓每次智能合約在與礦工互動,要求變動狀態時的費用不斷上漲,這有可能導致新的開發者不再選擇以太坊。
Vitalik Buterin 是在強調擴容的重要,這裡的擴容,並非指單純提升每秒可處理交易量(Transaction per second,以下簡稱 TPS),除了讓區塊鏈採用分片(Sharding),也要能在鏈下處理交易,像是狀態通道、Plasma 等技術。
如下圖所示,不同於以太坊,比特幣的區塊鏈上儲存的是交易的最終狀態,因此隨著時間推移,區塊鏈所需要紀錄的狀態數量是以線性增長的;而以太坊網路並不只是支付系統,而是全球計算機,也就是說,隨著以太坊上的智能合約、Dapps 越來越多,網路上的互動越頻繁,礦工要處理以及儲存的狀態是指數型成長。
– 比特幣、以太坊區塊鏈大小增長圖表,圖片來源:點我
因此,即便以太坊從工作證明(PoW)成功轉換成權益證明(PoS),提高了 TPS,也只是暫緩的燃眉之急。
作為平台,未來勢必有越來越多的「去中心化應用程式(Dapps)」出現,在區塊鏈上改變狀態的成本也會再度增加到「臨界點」,這也就是為何以太坊在開發藍圖的第四階段除了權益證明之外,還需要再開發鏈下擴容機制。
為了解決狀態濫用的問題,不少人提出區塊鏈上的儲存空間,應該視為一種資源。
用戶所支付的交易手續費只是更改狀態的費用,而不是要求礦工永久儲存這個狀態。其中 Nervos Network 就認為區塊鏈上的儲存空間,應該視為一種「資源」或是「公共財」,以租賃的方式出借,將資源的效用最大化。
區塊鏈需要「管理儲存空間」的經濟模型
先前 Nervos 的首席架構師謝晗劍接受動區專訪時曾表示,在區塊鏈上轉帳應該是將 A 的紀錄與 B 的紀錄分別從 100 與 200 個代幣改變成 150 與 150 個代幣,區塊鏈在理想上收取的是「改變」的費用,而不是為「存儲」付費。
Nervos 認為要在「單層架構下」,同時達到去中心化、安全、擴展性是不可能的事,因此,Nervos 認為應採分層架構設計區塊鏈。而第一層(Layer 1)做好驗證和存儲,而第二層(Layer 2)則是聚焦在速度以及用戶體驗,開發者可依照所提供服務之需求建造自己的 Layer 2。
謝晗劍就指出:
「Layer 1 區塊鏈不應該聚焦在性能,Layer 2 會承擔這個職責。Layer 1 是保障上層協議參與者的防線,理應將重點放在安全和去中心化,負責狀態共識(存儲)。」
既然 Layer 2 的計算結果將會儲存在 Layer 1 之上,那隨著區塊鏈的發展,必定會產生公地悲劇(Tragedy of the commons)問題,即在資源有限又無需成本的情況之下,先行者即使知道耗盡資源會造成問題,還是會盡可能地使用,尋求自身最大利益,造成資源耗盡。
因此,區塊鏈上必須要有好的資源管理經濟模型。
CKB:充分運用區塊鏈資源
在 Nervos 網路上,有兩個設計避免存儲空間的濫用,將資源效用極大化。
首先,Nervos 有原生代幣 CKB(Common Knowledge Byte,CK Byte,以下簡稱 CKB),CK Byte 代表 Cell 空間,可視為一種儲存空間,佔用區塊鏈上的全局狀態。
假設小動有有 1,000 個 CK Byte,他可以創造一個 1000 byte 的儲存空間(Cell),或是多個儲存空間(Cell),加起來是 1,000 byte。
此外,一個儲存空間(Cell)裡面所放的資料大小,可以等於或小於 1,000 byte,其中鎖定腳本需要佔用 64 byte,顯示儲存狀態需要佔用 128 個 byte,意即還有 804 byte 的儲存空間。
在這個儲存空間的設計機制下,使用者必然就會謹慎使用手上的資源。
因此,儲存在 Nervos 上面的 Layer 2 資料,每個 byte 的價值必然是等於或是超過 1 CKB,否則開發者會選擇不儲存這筆資料,或是直接在 Layer 2 儲存這筆資料,節省成本。
此外,資料的價值也會有時效性。譬如為了紀念小動考到建國中學,補習班將這則訊息放在門口紅布條,用來招生;但兩學期後,可能就沒有家長會在意兩個學期前的上第一志願上榜率是多少。評量要不要將孩子送到補習班的首要考量,就會是上學期考上第一志願的人數。
所以,如果使用者覺得這個資料越來越不重要,就可以贖回區塊鏈上的佔用空間。
然而恢復佔用空間只是獎勵機制而已,讓開發者或使用者除了有 CKB 代幣之外,還多了儲存空間;但是只有獎勵機制是不夠的,尤其是,在網路剛開始成長時,代幣價格較低、Dapps 開發較少的情況,鏈上儲存空間資源較充足,一如公地悲劇總是在最一開始濫用最多資源,因此需要有懲罰機制。
Nervos 的做法就是「二級發行機制」。
Nervos 的代幣發行分為三種:創世發行、基礎發行、二級發行。創世發行共有 336 億顆,主網上線會解鎖36.8%,約 123 億顆。另外還有 25%,約 84 億顆會在主網上線時銷毀;基礎發行則是 336 億顆,是礦工獎勵,每四年會減產。
而二級發行則是每年會增加 13.44 億顆 CKB,是作為懲罰濫用儲存資源的機制。
若依照 1 CKB = 1 byte 計算,創世發行加上基礎發行的 CKB 換算下來,Nervos 的區塊鏈儲存空間大小也僅有 67.2 GB,而之後每年再增加 1.344 GB(二級發行為每年 13.44 億顆 CKB)。
Nervos 的二級發行機制
創世發行和基礎發行和比特幣一樣,是固定的,總量不變。為的就是讓 CKB 代幣達到價值儲存(Store of Value)的功能:隨著 Nervos 的網路越來越多人使用,其網路上流通的代幣需求就會越來越高,每一顆 CKB 的價格(對於法幣而言)就會越來越貴。
而二級發行的機制表面上看起來是通貨膨脹,但實際上對於造成的通貨膨脹非常低,其主要用途是用來懲罰濫用儲存資源的人。其機制如下:
- 持有 CKB 但沒有佔用儲存空間的人:可以將 CKB 代幣存入去中心化治理機構 NervosDAO 裡面,只有創世發行和基礎發行的 CKB 能放在 NervosDAO 裡面。Nervos DAO 將會依照持有 CKB 的比例分配二級發行增發的代幣給用戶。換言之,只要你沒有佔用儲存空間,將會不受到通貨膨脹的影響。
- 持有 CKB 已經佔用儲存空間的人:就無法將 CKB 放在 NervosDAO 裡面,也不會分配到任何二級發行的代幣。用這種機制,希望用戶或開發者將不需要儲存在鏈上的資料撤回。一旦將資料撤回之後,用戶或開發者下次就可以獲得二級發行的代幣。
- 提供儲存空間的礦工:在二級發行時,因為持有 CKB 且有佔用空間的用戶或開發者無法獲得代幣,而這些代幣就會分配給提供儲存空間的礦工,讓礦工獲得額外的補償。這樣一來,也可以吸引更多礦工到 Nervos,促進全網的安全。
在現實世界,通貨膨脹之所以會對社會造成影響,是因為往往只有少數人能夠透過借貸、投資,在通貨膨脹中得利,而其他人卻會遭受貨幣貶值之苦。
而 Nervos 的二級發行之所以不會造成通貨膨脹的原因是,透過平均分配給沒有佔用空間的用戶,讓每個人都不會受到通貨膨脹的影響。舉例而言,動區有 6 個成員,每個成員有 100 顆動區幣,每年會增發 600 顆平均分配。一年之後每個成員會變成擁有 200 顆動區幣,每個人擁有個購買力還是一樣,並沒有減少。
價值儲存+計算層
不少人都認為比特幣是價值儲存,而以太坊網路則是世界計算機。而 Nervos 則是試圖將二者結合在一起。透過兼容第二層的方式,達到擴容,讓開發者自行發展所需要的功能,將重要的資料交由 Nervos 計算和保管。
而為了維持 Nervos 上的儲存空間稀缺性,又將 CKB 與儲存空間掛鉤。讓持有 CKB 就是等於持有資源。再利用二級發行懲罰濫用資源的機制,達到「只有有價值的資料才會佔用儲存空間」。這樣一來,不但能夠避免公地悲劇的發生,同時也能維持資源的稀缺性,讓真正有價值的資料才上鏈。
如同 Nervos 首席架構師謝晗劍所言,CKB 的經濟模型,是個前所未有的嘗試。
?相關報導?
「人人都要做更好的以太坊,這個方向是不是錯了?」一窺 Nervos 理想中的區塊鏈架構
【專訪】Nervos ——「重新定義區塊鏈協議的底層架構」
《BlockTempo動區動趨》LINE官方號開通囉~立即加入獲得第一手區塊鏈、加密貨幣新聞報導!