每一個主流的智能合約平臺都實現了一組特殊的權衡關係。這些權衡關係不僅反映了某些具體特徵的存在與否,更體現了關於「何爲免信任型(Trustless)計算」的各類不一樣觀點。html
本文旨在提供一個條理清晰的框架,以便讀者理解這些權衡關係以及它們如何影響了加密領域的一些主流說法,如數字黃金、可編程貨幣、抗審查性和無需許可性。下文給出了兩條定義:web
抗審查性——徹底的言論自由。更專業一點的說法是,可向區塊鏈提交任意記錄。算法
無需許可性——無需第三方許可就能訪問網絡並驗證區塊鏈的完整性。chrome
本文不會探討第二層擴容方案,如閃電網絡、雷電網絡和 Plasma 。數據庫
不過,首先須要解釋一下何爲「免信任的(Trustless)」。Nick Szabo 認爲 「無需信任性」與技術效率呈反函數關係。從根本上來講,計算效率越低,被操控的難度就越大;被操控的難度越大,可信程度就越高,所以能夠沒必要信任可能操控系統的人。編程
換言之,Szabo 的意思是區塊鏈經過犧牲技術效率來加強社會可擴展性。api
加密的最終表現形式不只僅是一個免信任型數據庫(或區塊鏈),讓全部人對當前狀態達成共識,而是無需信任的通用計算,是數據庫的超集。這句話理解起來有點難度。簡單來講就是,區塊鏈能讓地球上的每一個人對這個世界的狀態達成共識。免信任型通用計算在此基礎上更進了一步。它不只能瞭解這個世界的狀態,還能 證實 某個計算是 正確 運行的。安全
雖然比特幣從技術上來講是可編程的——能夠經過 Script 語言實現無需信任的通用計算——但它實際上只是一個無需信任的數據庫。儘管一些項目試圖提升比特幣的表達能力(如 MAST、taproot、scriptless scripts 和 RSK),卻沒有一個能投入生產。說白了,開發者已經離開比特幣轉向更好的平臺了。網絡
以太坊擁有首個開放式平臺,可供開發者在不能相互信任的狀況下運行 任意 運算。現在,以太坊匯聚了加密領域中的大多數開發者。框架
許多人將以太坊稱爲「世界電腦」。雖然這種說法從技術上來講是正確的,可是考慮到吞吐量和成本兩大相關因素,依舊有待商榷。在以太坊上運行計算的成本是在亞馬遜雲服務(Amazon Web Services (AWS))上的 1 億倍左右。
免信任型計算的擴容會面臨三難困境:區塊鏈是由每一個節點處理每一個計算,並就這些計算的順序達成共識。可擴展性的三難困境認爲它只能具有三種特性中的兩種:安全性、可擴展性和區塊生產去中心化(DBP)。
DBP 可量化成區塊生產者的數量。
可擴展性可量化成每單位時間內系統可處理的交易數量。
安全性可量化成發動一次影響活性或交易順序的拜占庭攻擊的成本。要注意的是,安全性指的不是加密簽名的完整性,也不是第三方可否根據公鑰推導出私鑰。
是什麼致使系統會實現某一組權衡關係,而非另外一組?是共識機制和系統構架的結合。下文將探索這些概念,以及一些關於鏈下計算的有趣的工做。
爲實現可擴容的免信任型計算,下文提出的每一個系統都知足一組不一樣的權衡關係。在下文中,我將用下圖標註的數字指代相應的三角邊:
免信任型計算系統的擴容還能夠從第四維度(即最終肯定時間)來考慮,儘管它不屬於可擴展性三難困境的顯性部分。最終肯定時間(TTF)會直接影響延遲時間。有些系統並不保證絕對的肯定性(Finality),可是可以在必定機率上實現近似的肯定性(如比特幣)。其它系統在一段時間後才能確保實現肯定性。肯定性的重要之處不只在於可以避免雙花攻擊,還在於可以實現跨鏈交流。最終肯定時間越長,跨鏈通訊的延遲性越高。
用二維三角形表現最終肯定時間的視覺效果不是很好。所以,我會用暗色表示較短的 TTF ,用亮色表示較長的 TTF 。
在比特幣出現以前,全部數字現金系統根本上都有相同的缺陷:用戶必須信任第三方來管理該系統。第三方可以審查交易。而比特幣的主要設計目標是設計一個能讓全部人驗證區塊鏈的完整性而且沒有第三方審查交易的系統。工做量證實(PoW)共識算法可以實現無需許可的抗審查帳本。
對於強烈支持抗審查性的優化來講,缺點在於沒有集中區塊生產的狀況下,現代 PoW 系統沒法實現擴容。最終,這種權衡關係致使比特幣硬分叉出了 Bitcoin Cash,讓區塊生產相對於比特幣更加中心化(儘管此舉存在爭議)。
在本文提到的共識模型中,PoW 無需許可的程度是最高的。說白了,只要擁有一臺聯網計算機,人人均可以開始驗證交易,成爲礦工。從理論上來講,這可以從最大程度上實現 DBP。
實際上,全部 無需許可的 PoW 系統都會集中區塊生產。這是經驗之談。因爲挖礦運做產生的規模經濟效益,全部基於 PoW 的主要區塊鏈都會產生挖礦中心化。現在,比特幣和以太坊區塊鏈上的大部分算力都由不超過 20 個組織/礦池控制。就區塊鏈發展的有限歷史來看,在基於 ASIC 和 GPU 的挖礦算法中,很大可能會出現這種區塊生產中心化。
較長的 TTF 會影響 PoW 系統。從設計上來講,這類系統並不能保證肯定性。隨着新的區塊添加到基於 PoW 的區塊鏈上,以前打包上鍊的交易實現「肯定性」的可能性會成倍增加。這就是爲何經 6 個以上區塊確認過的比特幣交易才被認爲是 「肯定的」。因爲出塊時間是 10 分鐘, 1 個比特幣交易要通過 1 小時以上才能肯定下來。這個時候,鑑於交易已被肯定,區塊鏈重組的可能性近乎於 0 。
實際上,因爲 PoW 挖礦的規模經濟,基於 PoW 的區塊鏈會側重於三角形的右下角:
Kadena 是我發現惟一在嘗試採用 PoW 方案解決可擴展性三難困境的系統。Kadena 的解決方案是建立一種網狀區塊鏈,名爲 Chainweb(鏈網)。在 Chainweb 上,每條鏈除了驗證本身鏈上的交易之外,還必須驗證預先規定的幾條鏈的區塊頭,才能產生一個新的區塊。
爲了實現信息和價值的跨鏈轉移,用戶須要提交默克爾證實,在 Chainweb 中將一條鏈的狀態傳遞給其它鏈。由於並不是全部的鏈都是直接相連的,因此用戶在進行跨鏈信息轉移的時候可能得「hop(跳躍)」幾回。
乍看之下,這跟以太坊提出的分片概念(詳情見下文)很像。以太坊的分片是將區塊鏈分紅分片鏈和主鏈,比如輻條和中心,分別進行交易的 Collation(校驗)和確認。然而,Kadena 沒有將交易驗證和共識分開。在 Chainweb 上,每條鏈都有本身的共識。Kadena 從本質上來講是一種獨特的方法。
ChainWeb 的可視化效果圖以下:
ChainWeb 的特性之一是系統擴容可以明確 提升 安全性。爲何?由於每條鏈都從其餘鏈上引用區塊,隨着鏈條數的增長,發起 51% 攻擊的難度也會增長。在這個模型中,要想撤銷一條鏈上的交易,必須撤銷這個系統中其餘鏈上的交易。因爲這些鏈是天然交織在一塊兒的,隨着鏈條數的增長,撤銷交易的難度也會呈指數級增加。這與三角邊 3 所示的權衡關係剛好相反,由於根據後者來看,系統的安全性整體上不會隨着鏈條數的增加而大幅提升。
這種設計可從根本上解決可擴展性的三難困境。不過,這裏存在的一組主要權衡關係是:TTF 和跨鏈延遲。
個體鏈之間可能要經歷屢次 hop(跳躍)。Kadena 旨在利用 PoW 方案將 TTF 控制在 1 分鐘之內。在整個 Chainweb 中發送信息將經歷幾回 hop ,這須要花費幾分鐘的時間。
儘管存在這種限制,Kadena 仍針對可擴展性的三難困境提供了一種基於 PoW 共識模型的切實解決方案。雖然網狀化爲整個系統增添了一種新的動態,但其中每條鏈都創建在 PoW 模型上。PoW 相比權益證實(PoS)經歷了更多檢驗。數年來,它已向現實世界展現了共識方案的安全性。所以,對 Kadena 來講,在 PoW 共識模型的基礎上構建擴容系統既有切實意義,又屬天賜良機。
在三難困境中,Kadena 的狀況以下圖所示:
講完了 PoW 方案,讓咱們來看看 PoS 方案。
實際上,全部 PoS 系統 在設計上 相對於徹底無需許可的 PoW 方案來講是集中區塊生產的。這是由於區塊生產者的人數和吞吐量之間的內在權衡關係。(詳情見 Vitalik Buterin 的這篇文章。)
然而,這並不意味着全部 PoS 方案都會集中區塊生產。下文會講到使用 PoS 方案能實現的 DBP 能夠有很大差別。
PoS 方案在現實世界中不像 PoW 方案那樣久經沙場。例如,第一個使用 PoS 模型的加密貨幣點點幣(Peercoin)就遭遇了」無利害關係「攻擊。所以,PoS 方案從本質上來講風險性更高。
原文連接: medium.com/multicoin-c…
做者: Kyle Samani
翻譯&校對: 閔敏 & 阿劍
稿源:以太坊愛好者(ethfans.org/posts/model…)