每個主流的智慧型合約平台都實現了一組特殊的權衡關係。這些權衡關係不只反映了某些具體特徵的存在與否,更體現了關於「何為免信任型(trustless)計算」的各種不同觀點。
抗審查性——完全的言論自由。更專業一點的說法是,可向區塊鏈提交任意記錄。
無需許可性——無需第三方許可就能訪問網路並驗證區塊鏈的完整性。
本文不會**第二層擴容方案,如閃電網路、雷電網路和 plasma 。
不過,首先需要解釋一下何為「免信任的(trustless)」。nick szabo 認為 「無需信任性」與技術效率呈反函式關係。從根本上來說,計算效率越低,被操控的難度就越大;被操控的難度越大,可信程度就越高,因此可以不必信任可能操控系統的人。
換言之,szabo 的意思是區塊鏈通過犧牲技術效率來增強社會可擴充套件性。
加密的最終表現形式不僅僅是乙個免信任型資料庫(或區塊鏈),讓所有人對當前狀態達成共識,而是無需信任的通用計算,是資料庫的超集。這句話理解起來有點難度。簡單來說就是,區塊鏈能讓地球上的每個人對這個世界的狀態達成共識。免信任型通用計算在此基礎上更進了一步。它不僅能了解這個世界的狀態,還能 證明 某個計算是 正確 執行的。
雖然位元幣從技術上來說是可程式設計的——可以通過 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 方案從本質上來說風險性更高。
翻譯&校對: 閔敏 & 阿劍
稿源:以太坊愛好者(
泛型自動擴容的原理
當往泛型集合中新增元素時,會用集合的真實個數和集合的真實容量比較 當新增第乙個元素,size初始值等於陣列長度的初始值 然後會呼叫乙個ensurecapacity 的方法並把size 1作為引數傳入過去 當陣列的長度小於size的最小長度時 然後把新的長度給他賦值過去 結論 集合底層是通過兩個陣列相...
憶龍2009 理解EAP TLS的信任模型
客戶側信任模型 客戶端信任伺服器 當你在使用諸如windows xp之類的客戶端時,你需要配置乙個根證書機構.通過這個根證書機構,你可以驗證aaa伺服器的合法性.你所指定的可信任證書機構,即可以是公共的,也可以是私有的,如果你決定使用乙個公共的根證書機構,那麼你必須知道,你對這個根證書機構是沒有任何...
突破上下文約束的泛型遷移計算模型
突破上下文約束的泛型遷移計算模型 本文設想的是一種未來的可能情形,作者不能保證它一定能被實現,至少這是乙個不錯的想法。tcs 理論電腦科學 還在為是否p np糾結,對npc類問題而言,有個奇妙的說法叫 多項式歸約 或者簡單地說,歸約 reduce 通過多項式歸約,所有的npc問題可以看作計算機複雜度...