「幸虧我這次認真複習了 不然就考不上清華大學了!」
「如果沒有睡懶覺 我就可以趕上今天的飛機了!!」
「幸虧我只吃了半碗飯而不是一碗飯 要不就會感覺到撐了。」
人們在看到發生的事實時,經常會設想與事實相反的另一種可能性。這種心理活動被諾貝爾獎獲得者 Kahneman 稱為反事實思維(Counterfactual Thinking)。那麼,Counterfactual 和區塊鏈有什麼關係呢?
本文主要介紹筆者在區塊鏈 CounterFactual 方面的學習和思考,以及通過 CounterFactual 我們可以做些什麼。
CounterFactual(CF),翻譯為中文為『反事實』,用於描述自然語言中的「如果-那麼」陳述,意思是某件事情雖然可以在現實中發生,但事實上並不是真實發生。
圖 | 網絡
從區塊鏈的角度看,CounterFactual 的意思是:
一個交易的結果是可以通過在鏈上執行得到,但是事實上它的執行結果不是在鏈上執行得到的。
在區塊鏈的鏈外擴容技術中,CF 指的是 CounterFactual Instantiation,源自 L4Lab 提出的一種基於狀態通道的鏈外擴容技術,在區塊鏈研究領域中被大家廣泛學習,並推廣為一類區塊鏈擴容的設計思想。
CounterFactual Instantiation(CF 實例化),指的是智能合約不需要在區塊鏈進行實例化部署,而只需要部署到鏈外 CF 狀態通道中。只要智能合約的所有參與用戶都按照 CF 狀態通道協議中定義的方式進行操作,這些操作在狀態通道中執行的執行結果,和在區塊鏈上的執行結果,兩者是完全等價的。
簡單說就是:鏈外 CF 狀態通道可以達到和鏈上相同的結果。
注意,這裡的結果不僅是智能合約的狀態數據,也包括區塊鏈的 trustless 屬性(核心為區塊鏈的可追溯和難以篡改屬性)。既然兩者結果相同,考慮到區塊鏈性能方面的局限性和鏈外方案的經濟性,為什麼不將多數的智能合約操作轉移到鏈外完成?
在 L4的白皮書中,CF 狀態通道協議的定義如下:
CF 狀態通道保證,對於任何鏈上操作 X,如果用戶通過 CF 的方式在狀態通道中執行操作X,那麼:
1. 操作 X 雖然在狀態通道中完成的,如果用戶願意,也可以將其放在鏈上執行;
2. 操作 X 在狀態通道完成後,任何參與狀態通道的人都可以將操作X同步到鏈上;
3. 操作 X 在狀態通道中完成後,參與狀態通道的人可以等價地認為操作 X 的結果一定可以在鏈上完成終局。
作為一個程式設計師,看到一個應用協議後,必然首先驗證協議設計的完整性,分析協議的可行性,建立協議的應用邊界,最後思考如何實現。
圖 | 網絡
現在我們看 CF 狀態通道定義中的三點要求:
第一點定義了 CF 狀態通道和區塊鏈執行環境的等價性。任何狀態通道中的操作在兩者執行環境中必須是完全等價的,所以用戶選擇哪個執行環境是協議無關的;
第二點基於第一點,定義了 CF 狀態通道的公平性和 trustless,也可以說是CF狀態通道的安全性。狀態通道對於任何參與人都是公平的,每個操作引起的狀態更新對於所有參與人都必須是可見和可驗證的。基於第一點的操作等價性,任何人都可以直接將其同步到區塊鏈上,因此對於狀態通道參與人來說,CF 狀態通道安全性可以認為是和區塊鏈等同的;
第三點定義了 CF 狀態通道的一致性和終局性。狀態通道中的操作和通道狀態對於所有參與人必須是一致的,並且必須是即時終局的。這一點保證狀態通道本身,在所有參與人的範圍內的可追溯和不可篡改。
從上面三點分析,我們可以看出 CF 狀態通道完全繼承了區塊鏈已有屬性,比如一致性、難以篡改、安全性和終局性等。因此把 CF 狀態通道作為鏈外擴容方案,不會對區塊鏈應用帶來安全上的損失。
圖 | 網絡
接下來的技術視點中,我們會繼續對 CF 狀態通道協議的進行分析,看看它的應用邊界。
互動環節 將答案私信後臺,前三名答對可獲T恤一件
以下哪個選項是對CF狀態通道的正確描述?
A. 操作在狀態通道中完成後,必須將其放在鏈上執行以驗證
B. 操作在狀態通道中完成後,只有提前指定的參與方才可以將該操作同步到鏈上
C. 操作在狀態通道中完成後,參與狀態通道的人可以等價地認為該操作的結果一定可以在鏈上完成終局
D. 鏈外 CF 狀態通道無法達到和鏈上相同的結果
上期獲獎名單
本體 VBFT 算法是 BFT 與什麼的結合?
A. VRF
B. VDF
C. PVSS
D. threshold signature
恭喜@未知數 @王斌 Wangbin @🏖Mr.劉¹⁸⁵⁸⁸²²⁶⁰⁰³ 三位幸運粉絲
▼點擊閱讀原文查看往期技術視點