圖靈機的紙帶:簡析Arweave 存儲計算新範式- 鏈聞ChainNews


存儲計算範式能運行的關鍵在於數據永存和成本固定(低廉),這正是Arweave 要做的。

拓展閱讀:《Arweave 的潛力是複興亞歷山大圖書館,而非Filecoin 替代品

原文標題:《區塊鏈存儲ARWEAVE:圖靈機的紙帶,可信計算新範式》
撰文:outprog,imToken 後端開發與智能合約開發

從2020 年初開始,以太坊DeFi 呈爆發式的增長,由COMP,YFI 等引發的流動性挖礦導致以太坊急劇擁堵,礦工費一度提高至500 Gwei,DeFi 手續費高達上百美金。以太坊擁堵不堪,亟需一種可擴展的智能合約方案。

10 月上旬,V 神發表評論「以Rollup 為中心的以太坊路線圖」,開啟了二層網絡浪潮,ZK Rollups 和Optimism Rollups 競相出鏡。 ZK Rollups 和OP Rollups 採用了兩種完全不同的證明模式,分別是:有效性證明和錯誤性證明。

ZK 的有效性證明是將一批次的交易和對應的完整性證明發送到以太坊的智能合約進行驗證,如果驗證正確則被合約接受,驗證錯誤則拒絕交易;OP 屬於錯誤性證明,是數據狀態運營者將數據提交,並附加押金,在一段時間內任何人都可以發布非交互式的錯誤證明,如果這段時間內無人成功驗證錯誤,則狀態獲得終局性,反之,成功證明錯誤則會罰沒運營者押金。

ZK 和OP 的區別在於對狀態終局採用了兩種不同的方式。我把ZK 類比為PoW,他是通過密碼學算法驗證結果有效性;而OP 更像是PoS,是運營者抵押資金(像Staking 一樣),採用了一系列的「治理」手段達到最終目的。 ZK 由於密碼學理論和技術的限制,由於其「指令集」過於簡潔,難以處理複雜的業務程序;OP 的問題在於治理機制,需要將資金進行鎖定並限制了流動性。

不管是ZK 還是OP,能對以太坊進行擴容的根本都在於對數據壓縮和鏈外計算。如下圖所示,為了節省一層網絡的負載,數據進行了極大的壓縮並將計算遷移到二層進行處理,此時一層存儲的數據減少,並且只需要對狀態進行驗證即可,極大的降低了一層的負載。

圖靈機的紙帶:簡析Arweave 存儲計算新範式

但是降低負載並不代表無限負載。一層的區塊大小和gas 具有上限,並且在將來仍有大量的gas 會消費在一層DeFi 和組合性應用中,因此二層必定會和一層搶占資源,並且多個二層之間也會涉及到資源搶占問題。最終在有限資源下會不會存在某些二層無法上鍊、無法打包交易,那麼二層是否會因此停機?就算二層不進行停機,一直在二層進行沒有限制的交易,當資產需要要回到一層時,是否會存在過多的數據需要在一層驗證,最終導致無法驗證。另外,二層的組合行也是一個比較嚴重的問題。

以太坊是一台「世界計算機」,其設計初衷即是在區塊鏈上完成計算和存儲。在鏈上做計算意味著區塊鍊網絡中的所有節點都必須對計算過程進行處理,鏈上計算模式的成本不可能太低。就算採用二層的擴容方式,也僅僅是對數據和計算進行了壓縮,但仍然需要計算過程(驗證)在一層進行處理。

本文旨在介紹一種新的計算範式,與以太坊在鏈上計算的模式不同,該計​​算範式將計算完全放在鏈下,鏈上只作存儲,此時區塊鏈僅需要保證存儲的可用性和確定性。假設一個計算的入參是確定性的,那麼這個計算的輸出結果也應該是確定的。比如x + y = z 這個程序,如果x 和y 的值都是在鏈上記錄,分別是x = 1 和y = 2,那麼公式在任何地方計算結果z 始終為3。只要程序的參數在鏈上確定性的記錄下來,那麼程序其實也不需要在鏈上運行(任何人任何地方鏈下運行),其結果依然是確定可信的。由於計算過程與鏈完全解耦,計算參數完全依賴確定性存儲,我們將這樣的計算範式稱為:存儲計算範式。

圖靈機,回歸本源的存儲計算範式

我們知道,不管是馮諾依曼結構還是哈佛結構的計算機,其本質都是一台通用圖靈機。

圖靈機的紙帶:簡析Arweave 存儲計算新範式

圖靈機是一台假想的機器,由一條無限長的紙帶和一個帶狀態寄存器的紙帶讀取機器組成。讀取器會在紙帶上來回移動並將新的參數寫入紙帶。這樣一台假想的機器可以進行任意複雜的計算(圖靈完備)。

借助區塊鏈技術,我們可以將圖靈機的紙帶替換為區塊鏈,可以得到下圖中的新型計算模型(存儲計算範式):

圖靈機的紙帶:簡析Arweave 存儲計算新範式

可以編寫一個業務程序,將程序的代碼提前上傳到區塊鏈上(上圖區塊高度102)。任何人都可以將程序從可信的區塊鏈中下載並運行起來,程序的讀取和輸出端都是區塊鏈(紙帶)。由於區塊鏈具備可追溯、不可偽造的特性,因此鏈下程序的輸入輸出也具備確定性。程序加載來自區塊鏈的確定性參數,最終生成的程序狀態也是確定性的。

存儲計算範式將程序的源代碼、輸入輸出存儲在區塊鏈上。運行程序時,加載鏈上可信的源代碼,對鏈上的可信參數進行鏈下計算,輸出狀態也必定具備一致性。任何人都可以運行程序,任何人運行的結果都一致的,達到可信計算的目的。

模型理論上可行,但將以太坊作為確定性存儲依然過於昂貴,會到導致應用的成本激增。使用以太坊有限的區塊大小作為存儲也會使應用的擴展性大打折扣。借助Arweave,一條以永久存儲為目標的區塊鏈,我們可以將存儲計算範式進行實踐。

Arweave 原理簡介

Arweave 是一個基於區塊鏈的文件存儲協議,它具有一次性付費,永久存儲文件的特點,它實現了一套簡單的經濟激勵規則,讓礦工能長久的存儲數據。

圖靈機的紙帶:簡析Arweave 存儲計算新範式

永久存儲是AR 的核心功能,因此首先需要明確永久存儲的成本。統計發現存儲成本每年都在以驚人的速度降低,其中每GB 的存儲成本平均每年下降30.57%。經計算,成本會收斂到一個常數,得出一個永久存儲的成本。 AR 使用這個收斂的永久成本作為數據存儲的收費基準。下圖所示,存儲1 GB 的數據消費2.45 個AR,花費約為$9.8 (由於AR 價格波動,存儲花費也會有一定的波動)。

圖靈機的紙帶:簡析Arweave 存儲計算新範式

在有了收費基准後,怎麼讓礦工永久保存這些數據呢? AR 引進了全新的挖礦機制:開採一個新的區塊時,會隨機鏈到先前的一個「回憶塊」,要求礦工證明可以訪問這個回憶塊的數據,才能開采出一個有效的新區塊。這會激勵礦工盡量多的存儲歷史區塊。同時,該算法還激勵礦工存儲「稀有」區塊,因為當稀有區塊被選為回憶塊時礦工能在更小的競爭下開采出新的區塊,以達到數據永存的目的。

AR 能保證數據永存、價格穩定,便宜。依賴區塊鏈技術,AR 存儲的數據也具備可驗證可追溯的特性,非常適合作為可信計算的「圖靈機紙帶」。

總結

存儲計算範式能運行的關鍵在於數據永存和成本固定(低廉),只有永存能使數據始終「可得」,得到這些數據才能在鏈下計算出一致性的狀態;成本的固定或低廉,能讓應用的共識成本始終保持在一個穩定的範圍,不會像以太坊那樣,在區塊擁堵的情況下出現激烈競爭資源的情況,穩定的成本使應用更具備可用性。

將存儲計算範式與AR 結合,我們可能獲得了一個比較完美的確定性圖靈機,一個可以實踐應用的新型可信計算模型。

存儲計算範式至少具備以下優勢:

  1. 可以進行任意複雜度的計算。計算能力取決於鏈下機器的性能;
  2. 降低共識成本。共識的成本僅包含存儲成本,不再包含計算成本。計算成本由應用的運營者(鏈下計算者)提供;
  3. 具備可組合性和優秀的「分片」能力。應用只需要從鏈上加載自己關心的數據,多個應用之間組合時加載多個應用的數據,運營者不再需要下載所有數據(比如運行一個dapp 需要整個geth 的支撐);
  4. 極強的可拓展性。一是共識成本的的降低提高了拓展性,二是數據不僅是下載「分片」,也能達成上傳「分片」,因此性能瓶頸僅僅是網絡帶寬;
  5. 不限制編程語言。只需要將目標程序提前存入區塊鏈並將程序的所有入參序列化上鍊。

我們對Rollups 和ETH 2.0 進行了深入研究,所有的努力方向都在將計算鏈外化,而最終的目標可能就是完全的鏈下計算。在探索的過程中,可以得出這樣一個結論:在程序沒有二義性的情況下,只要輸入輸出的存儲具備確定性,那麼程序的計算結果也一定具備確定性。

存儲計算範式是一種完全不同於以往區塊鏈計算模型的新事物,或許還需要很多時間讓大眾來接受和認可,但它一定是更接近本質(圖靈機)的優秀可信計算範式。

感謝以太坊愛好者阿劍老師對Rollups 和ETH 2.0 的深度解讀,星火礦池喵叔對SmartWeave 的引介以及星火礦池李培對Arweave 和LazyLedger 的深入研究。

來源鏈接:www.jianshu.com

.



Source link