世界計算機的玩法,的確是“古已有之”,只不過當時的叫法是“世界是一臺網絡計算機”。但是,誰也沒傻到用成千上萬臺計算機干同樣的事,執行同樣的程序還要彼此達成共識。那樣做,太損失效率了,以至于大家對這種架構的可能性想都不要去想。那么,究竟是什么原因,使“傻事”成了了不得的發明創造了呢?這就不得不提及一個重要的概念:可信。
程序如何“可信”?
程序如何“可信”?這個問題在傳統的計算機行當里也不是沒有人考慮過的新概念。但是傳統可信計算的研究,局限在數據高度敏感的少數部門之內,因此其圈子也相對“小眾”,本文也不擬展開論述。筆者僅僅指出一點:傳統可信計算圈子對可信計算環境的訴求,與當今區塊鏈領域的訴求相比,不僅沒有絲毫的遜色,甚至可以說是有過之而無不及。
區塊鏈因為其承載經密碼學勾稽、群體見證從而可傳輸價值的“公共賬本”而變得重要起來。但是一個像比特幣一樣只能記賬和轉賬的公共賬本,只是對現實世界人們的“賬本”、“錢包”或“保險箱”的簡單模仿。對于大千變化的數字世界來說,這點簡單模仿似乎太單薄了些。V神說,好吧,我來給你們加點作料。于是有了虛擬機和智能合約。虛擬機是智能合約的執行環境,但是,在別人掌控的主機上,作為執行環境的虛擬機和作為執行對象的合約代碼都是可偽造、可做手腳的。智能合約里又充進去了許多交給智能合約支配的數字資產,萬一把不可信的執行結果達成了共識回寫到賬本,那就萬劫不復了。于是乎,“記賬”的概念在以太坊那里有了新的推廣,不僅記錄賬本上你直接支配的資產,也記錄用代碼支配著你的一部分資產和信任狀態的智能合約的運行軌跡,即所謂“世界狀態”。如果“世界狀態”的比對是成功的,智能合約的運行結果據稱就是可信的。為了以“公鏈”的方式達成對智能合約執行結果的可信性,于是有了成千上萬臺計算機在同樣的虛擬機執行環境下運行著同樣一批智能合約的蔚然景觀。