圖靈完備智能合約(區塊鏈話題:圖靈完備的智能合約,不適合區塊鏈金融場景)
圖靈完備智能合約的利弊是_區塊鏈話題:圖靈完備的智能合約,不適合區塊鏈金融場景
聯動優勢首席架構師劉勝在石榴財經主辦的B16區塊鏈思想節上發表了演講,表示圖靈完備的智能合約不適合區塊鏈。
在劉勝演講中講到,我們通常會把以比特幣為代表的數字貨幣稱為區塊鏈1.0,以太坊為代表的智能合約稱為區塊鏈2.0,目前3.0的定義還很模糊,即使現在很多區塊鏈的項目稱自己是區塊鏈3.0,但其實都沒講清楚。
在這個概念中,默認了區塊鏈2.0是以圖靈完備的智能合約為代表的區塊鏈。
首先,我們來了解圖靈完備是什么?
圖靈機本質上是一種泵需,它能夠把輸出的集合以及當前狀態轉化成輸出的集合以及下一個狀態,它跟我們正常的函數有什么不一樣的地方呢?就是它有狀態,它有記憶,很多情況下說韭菜是沒有記憶的,所以老是被割。
通用圖靈機有一些核心的組成部分,比如說我們看到那些程序,它有一個CPU,然后CPU里運行一些程序、邏輯、代碼,輸出輸出集合,它必須要有一個內部狀態的存儲器,當這些東西都具備了之后,它就是一個通用的圖靈機模式。
其次,智能合約是什么?
尼克薩博在1996的論文里發表了智能合約的概念,智能合約本質上就是一系列的承諾,而且是以數字化的形式來展現。還有一系列補充協議,確保參與方都能夠執行這個承諾,可知性的,這就是智能合約。
我們把智能合約和傳統合約做類比,傳統合約的條款是給人看的,而智能合約是給機器看的,讓機器可讀,它是數字化形式的合約。
傳統合約可能是紙質的合同,僅僅是信息和內容,而智能合約不僅僅是條款、內容、信息,還有這個合約怎么去執行,可知性的一個代碼或者系統。其實核心就是這些條款能夠嵌入到軟硬件里面去。
更進一步的是智能資產,智能化資產就是完全把合約內置到資產里面去了,比如智能鎖、共享單車等等,由一個集中的公司來控制的資產是單一的。如果在一個去中心化的共享經濟體系里面,資產本身有一個獨立自主的操作能力,我付了租金,它就自動的把智能鎖打開了。
圖靈完備的智能合約的典型模型,就是它能夠接受輸入的交易、事件,也可以輸出交易、事件,它內部既保存了它的價值,也保存了它的狀態,所有的這些東西都建立在區塊鏈的可信的分布式賬本基礎上。
那么圖形完備這么多,它就是萬能的嗎?
有利必有弊,它的利是什么呢?
方便、靈活,對開發人員很友好,很容易寫出一個智能合約。
但是它的缺點呢,由于對開發人員友好,它內涵了極大的復雜性,這個復雜性不是說這個區塊鏈本身復雜,不是說這個智能合約復雜,而是說它可以容納很復雜的東西,而且它需要有一個很復雜的東西來執行。復雜性就帶來一些惡劣的效果,可能不安全,可能低效。
第一個,區塊鏈執行智能合約的時候是低效的,為什么?
因為區塊鏈執行不是執行一次就夠了,它需要所有的節點都把智能合約執行一次,比如現在以太坊上萬個全節點,都要把這個智能合約從頭到尾執行一次,非常低效。
第二個,容納復雜性的時候,它的內部執行也很難,我們算一個哈希,你直接算哈希和用智能合約算哈希,中間效率可能差50倍,接近兩個數量級別。
第三個,最大的問題就是它的安全性,它的風險事件雖然不是特別多,但是涉及的金額巨大,很多基于區塊鏈自身安全機制的事件,主要的問題就在于智能合約。
所以我們從本質上看智能合約,應該理解為一種預制的規則。
從合約上,它是法律合約嗎?不是,它是預制規則。
從智能上,它非常智能嗎?不是,有限的可編程性。
從完備性上,它不是圖靈完備的,更多的是采取非圖靈完備的方式,比如一個法律條文,里面有無限的循環肯定是不行的,法律條文或者規則越清楚、越明確、越簡單越好。
從交互性上,它也不適合訪問外部參數,它不是一個節點去執行,而需要上萬個節點都去執行。
我們通常有兩種思維模式,一個是互聯網行業的思維模式,一個是金融行業的思維模式,互聯網的思維模式,我們叫預見問題,快速迭代,來了什么問題我解決就行了。
金融行業最大的問題是要確保合規安全,每一個場景,每一個事件都要有應急處理預案,你不可能說未來會發生什么問題我不知道,怎么解決我也不知道,這種系統是絕對不能上線的。圖靈完備的智能合約引入了太多的不確定性,它不適合比較嚴肅的金融場景,絕對要慎重使用。
根據我們的實踐經驗,在金融場景上需要什么呢?要限制、要隔離,圖靈不完備,更安全、更可控。區塊鏈是不可篡改的,而圖靈完備太復雜,就有可能出漏洞、木馬或者安全隱患,這就是自相矛盾的。
所以我們需要重新理解智能合約,它運行在區塊鏈之上,是需要多方自主執行的,它是一個預制規則,而不是無限制的智能,它核心的目的是什么?是對鏈上的交易做檢查、做限制,在這種場景下,它不需要太智能的,不需要圖靈完備。