當我們解決了scalability問題,區塊鏈真正獲得mass adoption,DApp和用戶數量都爆炸式增長的時候,區塊鏈歷史和狀態數據會以什么速度累積呢?
這就是狀態爆炸問題,我們把它歸類為post-scalability problem,因為它在解決scalability問題之后會非常明顯。我們最早是在做許可鏈場景落地時注意到了這個問題,因為許可鏈的性能遠高于公有鏈,剛好處于post-scalability的階段。
歷史數據的累積相對容易處理,未來可以通過去中心化的Checkpoint或是零知識證明等技術來壓縮,在那之前全節點甚至可以把歷史直接丟掉,依然可以正常運行。 狀態數據的累積則麻煩許多,因為它是全節點運行必須的數據。
不少區塊鏈項目已經看到了這個問題,并提出了一些解決方案。EOS RAM是解決狀態爆炸問題的一個有益嘗試:RAM代表了超級節點服務器可用的內存資源,無論是賬戶、合約狀態還是代碼,都需要占用一定的RAM才能運行。
RAM的設計也有很多問題,它需要通過內置的交易市場購買,不可轉讓,無法租用,將合約執行過程中的短期內存需求和合約狀態的長期存儲需求混在了一起,而且RAM的總量的設定沒有確定的規則,更多取決于超級節點可以承受的硬件配置,而非共識空間的成本。
Ethereum社區也看到了這個問題并提出了Storage Rent的方案:要求使用者為存儲資源的使用預支付一筆租金,占用存儲資源會持續消耗這筆租金,占用時間越長,使用者需要支付的租金越多。Storage Rent方案存在兩個問題:
1.預支付的租金終有一天會用完,這時候如何處理占用的狀態?正是為解決這個問題,Storage Rent需要諸如resurrection的機制來補充,增加了設計的復雜度,使智能合約的immutability大打折扣,也為使用體驗帶來了麻煩;
2. Ethereum的狀態模型是一種共享狀態的模型,而不是First-class State。以ERC20Token為例,所有用戶的資產記錄都存放在單個ERC20合約的存儲里面,在這種情況下,應該由誰來支付租金?
解決狀態爆炸問題也是Nervos CKB的設計目標之一,為此我們走了一條完全不同、更為徹底的變革之路。簡而言之,我們在 Nervos CKB 一個 token 代表一個單位的存儲空間,通過經濟模型的設計,限制世界狀態的大小,利用市場手段調節狀態存儲的供需,并通過增發的設計持續向占用狀態的用戶收費,來協調生態中各方的利益,達到長期的安全和持久的穩定。
?。ㄎ赐甏m)
本文首發于微信公眾號:鏈捕手。文章內容屬作者個人觀點,不代表和訊網立場。投資者據此操作,風險請自擔。
此文由 中國比特幣官網 編輯,未經允許不得轉載!:首頁 > 比特幣行情 » 區塊鏈的狀態爆炸困境 |硬核系列