一個不能接受錯誤存在,或者因為存在錯誤導致一系列問題影響可用性的系統,是沒有生命力的。
區塊鏈系統也一樣,其本身并沒有要求輸入系統的數據不能出錯。這一點可能與很多讀者的認知有所不同,許多人會認為區塊鏈因為其數據無法篡改,因此一定要保證上鏈數據的真確性。數據無法篡改不等于無法更改。其實,區塊鏈系統恰恰是通過多數節點具有識別錯誤的能力,系統整體可以及時進行糾錯,才讓最終記錄在區塊鏈并經過多次確認的記錄具有公信力。這可能也是區塊鏈系統區別于計算機領域傳統P2P系統的一個閃光的設計思想。
計算機領域在分布式處理過程中追求高效、一致。對錯誤數據記錄的修復和更正,通常會另行設計一套機制來保證。相對傳統數據庫,區塊鏈由于需要保證事后數據的不可篡改,引入了共識機制,為錯誤的出現和修復提供更多的容忍度。這一重要思想通常被許多區塊鏈設計者所忽略,眾多項目紛紛追求提高短交易及確認速度,這會導致弱化甚至犧牲其他節點對數據的驗證過程。同時,更早更快的確認也會帶來問題。參與生成數據的節點需要滿足生成數據不能出錯等更嚴苛要求,導致現在很多
區塊鏈項目的在落地過程中出現困難。因為系統使用方會背上了數據必須一次性正確輸入的包袱,需要非常保守和謹慎地選擇上鏈數據。最終,區塊鏈落地應用范圍的狹窄,許多存在出錯可能性的數據難以結合區塊鏈的優點參與業務升級改造。
筆者認為,區塊鏈的設計不僅沒有要求數據必須正確輸入,反而對上述問題提供了非常有啟發的處理模式和設計思想:當有數據出錯的時候,數據關聯方都能及時感知到數據的錯誤,并在第一時間通過某種協商機制及時從不一致地數據中利用某種機制(
比特幣中是少數服從多數的思想)快速挑出正確的數據,并最終使得該數據獲得全局認同。這種數據確認過程,考慮了實際業務中可能存在的失誤和系統性錯誤,具有很強的包容性,值得業務系統在考慮錯誤處理更正流程設計時參考。在設計需要確認數據的業務系統(或區塊鏈系統)時,要權衡數據確認時間窗口以及系統糾錯能力,才能設計出適合自身業務特點的數據確認機制(共識機制)。一味追求確認時間短,會使系統適用的業務場景大幅受限,這對新系統的落地應用是極為不利的。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。