眾所周知,區塊鏈的最大特點就是去中心(介)化和不可篡改,因此很多人將區塊鏈等同於無法造假與真實。不過當區塊鏈加成的是虛假數據時,我們還能說區塊鏈加成后的信息就是真實無誤的嗎?
一、信任的條件
現實生活中,一件事情如果源頭是可信的,過程也是可信的,那麼結果一定也是可信的。
因此如果區塊鏈能產生信任,那麼在流程上有兩個關鍵條件:
- (上鏈前的)數據是真實的
- (上鏈后的)數據是不可篡改的
滿足「數據是真實的」這個條件,大概有兩種方式:
- 可以驗證:同樣的輸入導致同樣的輸出。比如1+1=2,比如print(‘hello world’),比如SHA256。此時本質上是對數學的信任,且因此產生了信任
- 有人保證:有權威機構為此負責。比如公證機構稱,小明向慈善組織捐贈了10萬元,並提供了轉賬記錄。因為銀行是可信的,機構是可信的,因此該行為是可信的。此時本質上是轉移了信任
二、區塊鏈中的信任
區塊鏈可以分為公有鏈和許可鏈。但任何區塊鏈都包含三個層面:交易,區塊,鏈。
一筆交易通過付款人的數字簽名(或引用上一個交易的UTXO再簽名)來確保交易本身的不可篡改,通過打包到區塊、連接成鏈來保證整個交易鏈條的不可篡改。
因此,在大多數情況下,區塊鏈是不可篡改的。但區塊鏈是否可信任,取決於交易中的數據是否真實。
1. 比特幣
比特幣的交易主要是轉賬,每一筆轉賬都可以通過鎖定腳本和解鎖腳本追溯到由系統生成的coinbase,所在區塊有一個通過消耗電力且得到大多數節點驗證的挖礦的解,所有人都可以驗證其真實性且不可篡改。
但如果你在比特幣系統中寫下「為了部落!」,其他人其實沒法驗證你是否真心為了部落,只能看到你寫了這句話。
因此比特幣在轉賬上是可信任的,但只是一個可信任的支付系統。
2. 以太坊
以太坊的交易主要有轉賬和智能合約調用兩種方式,其轉賬方式和比特幣略有不同但也是可信任的。
而對同樣的輸入,智能合約計算出來的結果是確定(但不能保證計算的輸入是真實的),所有人都可以驗證,且不能更改。
因此以太坊是可信任的支付系統和可靠的計算系統。
3. fabric
那聯盟鏈,如fabric,是可信任的嗎?
fabric的交易(提案)主要是調用智能合約(鏈碼),按我的理解,是某事在區塊鏈中的記錄。
fabric在信任方面的改變主要在許可、多通道和節點的分拆:
(1)許可指參與的節點在加入前需要認證和許可
(2)多通道指不同節點之間可以建立獨立的「鏈」,保證節點業務的隔離和安全性
(3)節點分拆為背書節點、排序節點和提交節點
- 背書節點負責對交易進行背書和確認
- 排序節點對交易進行排序並打包生成新區塊
- 提交節點對交易進行(格式上的)校驗並追加到區塊鏈
可以看出,fabric中對交易的驗證,實際上主要是節點的背書,即通過「有人保證」來保證數據的真實性。
因此聯盟鏈本身只能保證數據的不可篡改和記賬效率的提高,而不能保證數據的真實性。
三、善款溯源
近期看到的基於聯盟鏈的善款溯源的應用,其目標是提高信息的透明度,從而提高公眾的信任,主要有三個步驟:
- 背書:機構為數據進行背書並提交到區塊鏈
- 記賬:各節點記賬
- 公開:在網路上公開數據
區塊鏈參與其中,讓各參與方共同維護同一個賬本,可以優化各方的關係。
因為賬本各方都能看到對方的行為,因此記賬的節點要為自己所背書的數據負責,是對不作為機構的施壓。
但從慈善機構的角度來看,可以分為公開意願和公開能力兩個維度。善款溯源的主要問題應該是機構的公開意願。
如果慈善機構的公開意願足夠強,實際上有非常多的方法進行保證和公開來獲得信任,而非一定用區塊鏈。
比如直接在微博上公開某醫院領取某物資的簽字或回執,只要對方也通過一些途徑進行公開確認就可以了。
再考慮到區塊鏈目前的部署成本、維護成本、學習成本和遷移成本,在沒有規模化的情況下,對比實際上能帶來的效益,如果不是國家用行政手段強制推行,區塊鏈在其中可能難以真正落地。
這也側面說明了在某些場景下,區塊鏈目前最大的需求在G端。
四、結論
綜上所述,區塊鏈能實現的,是去中心(介)化和不可篡改。
在特定場景下,真實的線上數據來源在區塊鏈的加成下,可以讓用戶在無信任的狀態下完成任務。
但在大部分場景,如果希望通過區塊鏈獲得信任,則需要保證數據的真實性,或者有權威機構對此保證(雖然這和中本聰的設想背道而馳)。