講區塊鏈的人,往往把“數據屬性可靠”説成能保障業務的“業務可靠”,是有問題的_風聞
老潘潘潘潘-我这喜欢出来随便发言的毛病要改…2021-07-15 13:24
【本文來自《區塊鏈“入鏈數據不可修改”屬性和業務系統用途矛盾》評論區,標題為小編添加】
我再解釋一下我的看法。
首先,談寫入數據。可以把區塊鏈入鏈數據理解為數據中台/數據倉庫的數據,業務系統可以先暫時理解為單獨獨立的與區塊鏈無關的、自己獨立有數據庫系統的一個程序系統。區塊鏈的數據從哪裏來?可以理解為從業務系統的數據庫裏面轉移到區塊鏈中去,可以理解為沒有直接操作區塊鏈的API寫數據。
寫入區塊鏈中的數據就寫實了,這個數據在裏面不能再改了,這個就是區塊鏈的“數據屬性”的“可靠性”。這個是簡單地理解。實際上,既然區塊鏈可以寫入數據,就保證不了建立業務系統的程序員們用各種方法直接往裏面寫數據,在業務操作系統裏面直接往區塊鏈裏寫,比如前面那位説的“1月份發了5000工資,賬户餘額為5000”,他就直接往區塊鏈裏寫了,把區塊鏈當一直接的數據庫來用,就不是先存在業務系統的數據庫系統裏面。
但是區塊鏈作為一個“可靠性”的數據來源,本身應該是寫入的業務上“可靠”的數據,而不是在區塊鏈裏搞統計。比如説“1月份賬户餘額為5000,2月份賬户餘額為10000”這種數據在區塊鏈裏就應是業務系統輸入的、由業務系統得出的兩個“業務可靠”的數據,而因為它存在區塊鏈裏不能靠修改直接數據來改變它,因此它們是“數據屬性可靠”的數據。
然後談讀取,業務系統可以在自己的數據庫中讀數據、統計數據,為啥還要從區塊鏈中讀數據呢?因為黑掉數據庫很成熟,業務系統的使用人員也可能因為種種原因修改數據,雖然可以通過日誌什麼、或者通過業務系統程序員寫上一個更改下一個更改什麼的(這種做法完全不能保證數據庫裏的上一個下一個沒被直接數據庫操作而更改啊)的查到修改記錄,但這樣不是麻煩又太專業嗎?難道每取一個數據都去查所有日誌看有沒有改過嗎?難道不是直接引用一個技術上保證不能修改的數據更簡單嗎?
所以,既然區塊鏈數據有“數據屬性可靠”的特點,那取用這些數據就能保證在區塊鏈裏沒有被改過。業務系統引用這些在業務上希望有“數據屬性可靠”的數據時,就可以從區塊鏈裏面取走。取走之後搞統計也好、計算也好都是業務系統自己的事情,譬如“1月份發了5000工資,2月份發了5000工資”,因此“2月份賬户餘額為10000”,這就是取走區塊鏈裏存的發工資可靠數據來統計出2月賬户餘額。當然如前所述,如果區塊鏈裏本來存的有2月賬户餘額數據,你直接用就行,不用再加工了。
但是,你一個業務系統是面對使用用户的。用户在管理數據上就本身具有“人的不可靠性”,你怎麼可能保證進入區塊鏈的數據是現實世界裏面的“可靠的”呢?比如前面説的明明2月工資是5000,你故意無意地輸入8000,難道因為這個數據是入鏈了,然後從鏈裏取出來用,所以人家工資就一定是8000了嗎?這就是業務的“業務可靠性”保障不了。
而講區塊鏈那些人,往往把前面講的“數據屬性可靠”説成能保障業務的“業務可靠”,這是有問題的,給人帶來很大的困惑。
我的看法是,抽象的數據和現實的業務要分別理解,不能把兩者的“可靠性”混為一談;談區塊鏈的數據可靠,並不能保障現實業務的可靠。