撰文: 王冠,區塊鏈行業研究員,曾參與聯合發起多個區塊鏈技術社區組織和公鏈項目,畢業於東南大學建築學院
從以太坊圖靈不完備談起。
萬物皆計算
最近 DeFi 大熱,可稱現象級,很多人從經濟學和互聯網應用⻆度談了不少,本文中我試着提供一種基於 計算理論 的不同解釋。
以太坊 作爲第二代公鏈代表項目。依照其白皮書願景,旨在利用區塊鏈技術在公共互聯網上實現一臺具備 圖靈完備計算能力 的分佈式計算機,相較於前輩比特幣,最重要的升級是實現了圖靈完備的 智能合約 。那麼運轉五年至今,以太坊上已有大量智能合約部署,這臺計算機是否真的具備了圖靈完備的計算能力,值得研究探討,或許是我們透徹理解以太坊生態的關礙所在。
參照通用圖靈機定義,如果把以太坊系統內各個地址 ETH (以太幣) 狀態視作圖靈機字符表的一種編碼方式,雖未能從白皮書上找到嚴格的數學證明,我們暫且從衆將這種建立在 ETH (以太幣) 這種編碼之上的智能合約視作是圖靈完備的,以便後續問題討論的簡化。
圖靈完備相對論
先拋一個觀點 :即使是一臺相對系統內部計算圖靈完備的通用圖靈機,當其外部輸入數據和內部編碼之間映射關係存在 隨機波動 時,那麼使用該外部輸入數據計算過程所獲得的輸出也未必是圖靈完備的。
眾所周知,鏈下世界大多數經濟活動運轉在法幣系統上,各個經濟體的法定貨幣某種程度上也可視爲該經濟系統內表示和傳遞價值的 Token 。我們可以從各個交易平臺的價格數據觀察到,法幣單位價格和鏈上 ETH (以太幣) 單位價格之間的映射關係始終存在波動,並未實現天然的錨定。
這種現象究其原因涉及到很多維度,一個可能的主因是貨幣價值的 信用來源 不同。法幣信用來源於國家機器;而 ETH (以太幣) 則比較奇葩,其信用來源是伴隨區塊鏈技術出現的一種創新形式:即通過 分佈式的電力 能量輸入 (PoW 挖礦) ,以 自組織 的方式產生信用,一些具體的討論可參⻅《比特幣是怎麼想的》。
大部分時間裏這兩個系統的信用映射關係的變化率是 不等價 的,所以才造成了價格的波動,同樣的波動現象還可以在各國貨幣匯率以及公司股價之間觀測到。更進一步看,即使是運行在以太坊上各個不同合約中的 Token,其信用來源也同樣具有多樣性,典型如 ETH (以太幣) 和 USDT 信用來源的巨大差別,故這些 Token 之間價格波動也是時刻存在的。
圖靈機 本質上雖然是一個數學模型,但現實應用中要依託物理設備來實現,因爲用於編碼的經典信息形式離不開物理載體,大部分計算機、礦機的集成電路和晶體管就作此用途。有別於一臺經典計算機的物理形態,在以太坊系統內,有着不同的礦機 (計算機) 類型參與合約的計算,雖然軟硬件存在差別,但各個礦機之間通過 EVM (以太坊虛擬機) 輸出的計算結果卻具有 一致性 ,所以 EVM 從計算原理上也是這麼一臺圖靈機,只是它虛擬的運行在區塊鏈上。
一種可能的⻛險是,當我們使用 ETH (以太幣) 作爲編碼,用以太坊這臺圖靈機來完成鏈下法幣 Token 問題的計算時,由於兩種 Token 之間價格波動導致的 編碼錯誤 ,會影響該計算的圖靈完備性。
這個問題乍看難於理解,但我們還是可以從 通用圖靈機的結構 和 計算原理 入手討論:一條無限⻓紙帶,紙帶分成一個個格子,每個格子可以最多寫一個字符
・一個字符表,包含紙帶上字符全集和一個空白字符 (表示沒有字符)
・一個讀寫頭,讀寫格子的指針,可以讀寫擦去格子中的內容,可以左右移動一個格子
・一個狀態寄存器,用於保存狀態,追蹤 整個機器的狀態 (運行,停止)
・一個有限指令集,讀寫頭在特定情況下應該執行的行爲 (程序)
圖靈大神在設計通用圖靈機時,巧妙的把計算問題等價的轉換爲 機械運動 模型,當然這種機械運動不但可以通過物質化實現,也可以通過完全信息化的虛擬圖靈機形態以抽象的信息方式實現。對於 ETH (以太幣) 相對法幣 Token 計算的編碼混亂,我們也可以通過將其轉化爲 動力學問題 來討論求解。把這種導致 ETH (以太幣) 編碼混亂波動關係,抽象成一個外部動力學環境對機械運動的圖靈機計算干擾模型。
需要說明的是,在實際發生的情況中,波動導致的編碼混亂會影響圖靈機的各個模塊,在這裏我們只關注其核心定義模塊—— 機械運動的轉移函數 ,它規定了機器如何從一個格子走到下一格子,爲了討論問題方便,我們這裏還需要對模型再做兩次簡化:
・第一次簡化 :雖然價格波動作爲複雜系統的一種涌現,是一個隨機非週期性過程,但卻只有一個維度兩個方向,假設我們可以通過一種映射關係把所有模塊編碼混亂都轉化爲圖靈機讀寫頭位移的隨機機械抖動;
・第二次簡化 :雖然實際情況更爲複雜,爲了方便表示這種隨機抖動,我們引入現代金融學中描述證券價格隨時間演化模型,把這種抖動視作隨機的布朗運動( 也稱維納過程) 。
於是我們把模型最終簡化成爲了:一臺讀寫頭連續受到 外部布朗運動 干擾的圖靈機,其計算的圖靈完備性問題。
作一個形象的比喻,對於鏈下法幣表示價值作爲輸入的計算過程而言,以太坊就是一臺 泡在布朗運動水分子 中的圖靈機,且水分子的布朗運動能夠顯著影響圖靈機讀寫頭位移機械運動,當影響大過紙帶上一個格子的間距時,圖靈機位移函數的準確性就會失效,導致整個計算過程的混亂。而由於這種影響是隨機發生的,如果整個計算過程中不能通過內部固有算法修正,計算就不再是圖靈完備的,計算的價值大打折扣。
誇張的說,這種情況下, 泡水的圖靈機 和猴子打字機又能有多少差別呢?有效的部分就只剩下對以太坊系統內部問題的計算了。比如在各項目發幣時 (ICO) 作個 Token 狀態的分佈式存儲工具,或者開發一些鏈上資產屬性的 Fomo 遊戲。
DeFi 上場,拯救泡水圖靈機
和以太坊系統內部計算相比, 計算法幣世界的問題 始終是誘人的,經濟體量、社會價值不可同日而語,利潤有多可觀,看看法幣世界金融行業就知一二。當然解決傳統金融的問題,也是尼克·薩博提出智能合約概念的初衷所在。有激勵就會有變化,大部分 DeFi 項目 在以太坊 Layer 2 搭建的種種結構,本質上是試圖對抗 (矯正) 這種隨機波動干擾,拯救泡水的以太坊圖靈機。
DeFi 項目眾多,雖然都是拯救,但各有各的幹法,下面我們簡要說說這些方案的底層原理 :
提高信噪比
計算通信不分家,如果把 價格波動 視作通信過程中的 信道背景噪音 ,不明原因無法準確消除時,乾脆把原信號功率放大再放大,以達到對抗波動干擾,準確傳遞價格信息的目標。就好比兩個遊客在人羣熙攘的廣場上對話,爲了讓對方能清楚聽到自己說話的內容而刻意提高了音量。如此以來問題的確是可以解決,但是要多浪費些力氣,晚飯只好多吃一點。這裏面多花的力氣就是爲了放大信號功率而額外付出的能量。
這個 信號放大 的過程在 DeFi 裏通過 上鍊預言機和公衆質押池 實現。由上鍊預言機負責把鏈下價格數據不斷「抓取」到鏈上合約中供進一步計算使用。多數 DeFi 項目裏上鍊預言機節點本身需要質押 ETH (以太幣) 對預言數據信用背書。
受限於預言機節點質押資產總量,當其不足以產生足夠信用規模完成業務計算時。預言機節點所預言的價格數據信用,會經由一個 公衆質押池 進一步放大。公衆質押池對普通用戶開放參與,只要你相信預言機節點上鍊數據的真實性,並及時補倉質押 ETH (以太幣) 以應對價格波動即可。當然這裏爲了應對不可知的劇烈價格波動,一定是超額質押的,相當於提高了預言機的 信號功率 ,也難免會造成一部分資產信用浪費。即便如此,由於數字貨幣價格波動劇烈,極端情況下這套機制還是會因爲背景噪音過大而造成宕機,請參照 3.12 行情。
對賭交易預言機
項目一般形式是一組普通用戶可以開放參與的 鏈上對賭合約 。應對價格波動,由交易雙方向合約打入 ETH (以太幣) ,換取合約中原生 Token 表示的看跌看漲期權,同時根據算法產生出第三種相對錨定目標價格波動更小的合約內 Token,當然作爲整個計算過程的輸出,第三種 Token 有時候是隱形的存在。
這種模型有着很多變種,但在本質上可視爲一個「 賭馬模型 」,每個博弈者使用自己認定的價格信息 (邊信息) 輸入合約,通過對價格波動概率分佈的估計,承擔相應的受益和⻛險。這個過程可以消除 ETH (以太幣) 相對法幣 Token 波動的熵 。同 ETH (以太幣) 本身相比,合約中作爲計算輸出的第三種 Token 相對於法幣價格波動的熵率大爲減小,伴隨着更大的能量 (信用) 輸入, 逐漸逼近 鏈下法幣價格。
博弈雙方將自己的 ETH (以太幣) 轉入合約的過程,可以視作施加一種和已存隨機抖動大小相同、方向相反的外部機械運動作用於圖靈機讀寫頭的過程。有了這些機械運動 (能量) 的相互抵消,計算過程中 ETH (以太幣) 相對法幣 Token 波動的 信息熵被擦除 。相當於在圖靈機工作工程中,其內部同時運行着一個讀寫頭抖動矯正的算法。
根據羅夫·蘭道爾在《 不可逆性與計算過程中的熱量產生問題 》文中對這種消除信息不確定性原理論證,目前我們可以理解到這種算法的能量 (信用) 輸入水平和波動消除有相關性,但尚未⻅各 DeFi 項目有嚴格完備的數學證明,所以這種計算方式精準度最終還是需要用 DeFi 項目本身的 生命週期 來作評估。由於此類問題的複雜度有可能也已經和通用圖靈機一樣觸及了人類已知的複雜度上限,最終未必能夠找到數學上嚴格的證明,造物主大概也是用個體的生命週期來分佈式解決 NP 困難問題的。
因爲 對抗波動 的計算過程中耗費了能量,對應所耗能量的表示 Token 也應在系統中被擦除,具體表現爲參與博弈各方資產應該有 罰沒銷燬 。如果系統內所有的數值都一直都在增加,我也很難理解這個過程的計算結果是可信的。引申一下,總覺得以太坊系統手續費應該伴隨計算從系統中銷燬掉,而非直接參與二次流轉讓所有 ETH 持幣者買單,這樣一臺運轉的圖靈機狀態如何算是復位 ?畢竟不能習慣性的認爲以太坊和比特幣系統經濟體激勵邏輯完全等價。
理論上,和提高信噪比的模式相比,對賭交易形式預言機的一個顯著優勢是:如果設置得當,擦除不確定性所耗能量可以和波動本身 恰好相等 ,而不需要像第一種模式裏,由於不能精確計算波動而被迫花費額外能量。當然,這種優勢僅僅存在於理論上,具體還要看每個 DeFi 經濟體算法設計在現實中的實踐反饋。
另外,對於這種 DeFi 模型,由於缺少質押資金池放大信用,能夠處理的鏈下法幣 Token 計算規模上會受限。
應該還有其它形式消除波動的 DeFi 模型,也有把上述兩種方案混用的,因爲項目實在太多太多了,體驗又反人類,未能學習列舉之。
還有些項目打着 DeFi 旗號,內核卻還是個「 加密貓 」式資產 Fomo 遊戲。又或者某些項目 Token 表示目標不是錨定鏈下法幣世界,其資產屬性和維度不在此文討論之列。
計算的價值
有人要問,說了半天爲什麼非要 計算 啊,計算本身對我們又有什麼價值?這就涉及到伴隨計算機產業發展而生的計算理論了。簡單來說,因爲 Wolfram 在計算等價性原理中通過元胞自動機的計算過程向我們證明了:即使按照極其簡單規則運行的系統,也可以演化出宇宙極限的複雜度。如果這個世界的很多問題包含此類不可約化的複雜,那麼有些問題我們即使已知規則和數據也不能預判狀態, 非通過計算不可 。而羅夫·蘭道爾通過計算理論說明了:正是能量驅動計算的過程,可以擦除系統內不確定性信息,使得我們自身熵減,或者說獲得薛定諤所謂的「 負熵 」,這個話題有點複雜度,後續開文詳說。
從計算理論⻆度,曾經火爆的 ICO 只能算是完成了區塊鏈的 ERC20 格式數據存儲,算不上使用以太坊進行了完整的計算。很多項目發幣以後,大規模鏈上轉賬 (可視爲某種計算過程) 也就發生了一兩次,然後大多數項目 Token 就進入了中心化交易所。 中心化交易所 是區塊鏈宇宙的信息黑洞,裏面發生的運算一致性不好說,利用這種類型經濟體 Token 完成任何有價值的完備性計算便更加困難。
眼前 DeFi 熱度和 17 年有幾分相似,雖然每次進步,開放的市場中,都會有人利用信息不對稱制造大量的泡沫,但泡沫消盡,總會留下些什麼。伴隨着 DeFi 落地生根,在 ETH (以太幣) 相對法幣 Token 波動率一定範圍內,以太坊終於實現了可以 做法幣價值計算 的圖靈機初衷。區塊鏈第一次通過自組織形式捕獲了 Off Chain 價值,消除了價格波動,完成了圖靈完備的計算,這難道不是行業一直期待的 Killer application 場景粉墨登場嗎?
拓展開來,其實此類模型並不侷限在區塊鏈領域,具備着一定的普遍性。在傳統經濟領域,把 英鎊 視爲圖靈機黑盒來計算 美元的問題 ,如果沒有匯率交易來平衡兩種貨幣價值信息關係的波動,計算也無法得到正確的輸出。
計算的極限
假設你已經接受了計算的價值,讓我們談談 計算的極限 。如果把以太坊 PoW 挖礦過程視爲把真實的物理能量引入區塊鏈,導致其系統內以自組織方式形成的耗散結構更有序。那麼系統 相對法幣經濟體的信用 就是這種有序網絡結構熵和法幣經濟體本身網絡結構熵的差值。而 DeFi 通過消耗以太坊系統內這種有序結構熵完成計算,同時不可避免的導致以太坊系統熵增,那麼 DeFi 能夠計算問題的信用規模就受限於以太坊系統本身信用,所有 DeFi Token 信用總量是以太坊信用總量子集。在生物圈,能量隨營養級逐級傳遞過程中,平均效率爲 10%~20%。非常好奇這個效率在以太坊到 DeFi 生態中究竟比例如何,我只能說肯定 超不過 100% 。
完成任何計算 都有成本 ,即使你的計算對我的問題有價值,也要看我付不付得起錢。由於所有以太坊合約都共用一個開放的公共信道,目前因爲 DeFi 活躍,造成了 Gas 費顯著提升。究竟有多少法幣世界的問題可以花費如此貴的 Gas 費用,完成計算後仍有持續利潤,我們就不得而知了。
另外也正因爲這唯一的公共信道,有些吹泡泡的項目,反而會故意放大波動,通過製造噪音,干擾計算謀利,也許支持加密計算的智能合約最終能夠解決此類問題,目前無解。
一朵烏雲
最後談談本文立論的 一朵烏雲 ,在行文之初,我們默認了,相對於系統內各個地址 ETH (以太幣) 狀態而言,以太坊的智能合約是圖靈完備的。但實際情況是,除了外部電力輸入,以太坊作爲區塊鏈公鏈,並沒有更多外部世界強制力能有效滲透入其系統內部對計算做修正或干擾。這種通過自組織實現的圖靈完備,就像受到慣性力影響的圖靈機,如果系統不能保證足夠的能量輸入冗餘,其 計算結果的可靠性 仍是存疑的,當然也並非完全不能做有效計算,只是證明過程會更加複雜,計算中能夠承載的信用規模也會隨之減小。
舉一個例子,伴隨着計算,以太坊系統有 序度損失 ,用來表示系統價值的 ETH Token 爲什麼還增加了。感覺是 DeFi 吃完飯沒給錢,抹抹嘴走了,然後所有 ETH Token Holder 一起代買單,總感覺以太坊交易手續費還是要銷燬纔對。
關於 DeFi 能夠帶給以太坊系統的價值,目前看來也還含糊不清。我這裏缺少數據統計研究,只有一個簡單的整體性指標。就是無論中間怎麼傳導,最終一定要以太坊系統整體在挖礦活動中「吃」到了更多的電力 (能量) ,使得系統有序度進一步提高,而 網絡結構熵減 。這種挖礦能耗的增加和 DeFi 活躍正相關性越大越好,如若不然,就很可能是引發系統更快崩潰的「正反饋」,而非促進系統更有序的「創新」。
發散一下
發散談幾個腦洞大點的問題。
關於 DeFi 項目的 Fork ,DeFi 合約因爲需要公共信用,所以一定是開源形式,加之目前公鏈信息存儲是無加密數據形態,相當於在一個公共的計算機上跑着一個開源的算法。所以一旦算法能夠捕獲價值產生利潤,這種算法的專有權就會受到挑戰。傳統世界是盜版拷⻉,區塊鏈世界就是出現 Fork。說到 Fork 本質上是一種我們熟悉的區塊鏈項目自我「 繁殖 」行爲,類比自然界,只要生態位上還有未被捕獲的額外能量供給,物種就一定會通過繁殖更多個體來填滿冗餘能量空間。
公鏈上的合約版權本質上是一種「 Open IP 」的新形態,故 Fork 從根本上無法杜絕,不過合約本體還是有機會利用早⻦紅利建立起用戶規模網絡優勢。既然沒有正當性和有效手段阻止 Fork,不如順應自然規律,爲 Fork 提供便利,主動繁殖更多合約「個體」來佔滿相應生態位。同時要注意在合約中埋下伏筆,讓所有 Fork 個體和本體與合約共享數據以及 Token。如此一來實現了跨合約通信和計算,就好似變成了社會化動物種羣,業務的 拓展性和魯棒性 都會提升,更有機會在各條公鏈之間實現數據跨鏈。
談談 DeFi 和 CeFi 的關係。
類似區塊鏈和古典互聯網,和 DeFi 相對應的 CeFi 一詞最近也被點亮了。CeFi 外延更廣,在區塊鏈行業內最典型的業態應該算 交易所和穩定幣 (USDT) 。無論具體形式如何,和 DeFi 最顯著的區別是 CeFi 信用不是由區塊鏈自組織實現的,而來自於項目方組織背書,字面意思就是中心化的信用注入。
中心化注入並不代表沒有信用 (整個人類社會也是一個廣義的自組織) ,相反大多數時候用戶的使用體驗是 又快又好 。只是大家根據 CeFi 在區塊鏈上有限的公開數據無法判斷項目的信用⻛險。⻛險未知就不能定價,不能定價的東⻄不叫⻛險,叫不確定性。面對 CeFi 時,用戶要麼不信要麼全信,一旦遭遇⻛險,級別也不是灰犀牛而是黑天鵝,行話叫做 系統魯棒性差 。
所以用戶會根據自己對⻛險和成本不同維度偏好分流資產,最終 DeFi 和 CeFi 會捕獲不同維度、不同場景價值。市場情緒過分自信時,來者不拒;市場恐慌時,價值會流向 確定性最強 的資產形態。所以對於眼前 DeFi 泡沫來說,很可能演化的情況是 DeFi 做菜,ETH 收汁兒,BTC 吃飯,無知無畏者買單。
對於更廣義的 CeFi 業務,如傳統銀行和金融機構,其實區塊鏈公鏈和 DeFi 提供了一個低成本的產品模型試驗場。經過 DeFi 公開驗證的業務場景,至少對抗了各種攻擊,避免了封閉測試環境漏洞。一旦這些 鏈上經濟體模型實踐 成功之後,又可以成爲各個鏈下經濟體之間價值互通、共同計算的橋樑,誰說信息孤島只在區塊鏈世界裏纔有?
目前以太坊上 DeFi 項目產品概念大多有着 CeFi 的影子。但是一個公共的,低成本的金融業務實驗場,很可能會帶來 開源軟件 發展模式,DeFi 算法通過快速迭代超越被模仿的 CeFi 本尊,那麼未來金融行業許多新算法和標準,很可能會由 DeFi 再反噬回 CeFi,讓我們拭目以待!
最後想小小提醒一句, 圖靈機 已經就位了,各位還在等什麼呢?