上週Coscup在kernel的BoF前 , 與社群友人聊到供應鏈或物流使用blockchain的新聞
誤解
看新聞都會提到blockchain的不可篡改可以用在物流追蹤或供應鏈管理
是的 , 沒錯 , 的確可用
但是不需要 blockchain 也可以做到
要理解這看法 , 需要先理解資料不可篡改與帳本不可篡改的差別
資料不可篡改
所謂的 " 不可篡改 " 指的是資料從進去系統到從系統出來 , 都沒有改變
這件事很容易 , 只要做到兩點就可以了
1.系統不刪除資料 , 也不修改資料
2.網路傳輸加入checksum機制
第一點容易理解
第二點需要說明一下
由於資料在網路傳輸時 , 會經過不可信任的機器 (路由器或switch , 這些有可能被植入後門)
所以需要在資料上做些手腳 , 具體而言 , 就是利用 hash 函數的性質 (碰撞機率低) 來得知資料有否被修改
如果被修改 , checksum或hash value就會與資料帶入 hash 函數算出的值不同(不同資料 , checksum或hash value 相同的機率很低)
這樣就能保證傳輸中也不會修改到資料
帳本不可篡改
對 blockchain 來講 , 資料不可篡改是不夠的
因為攻擊者可以發出讓帳本計算是不合理的交易(例如雙重花費)
是的 , blockchain 需要處理雙花的問題 , 而這問題跟帳本的一致性有關
以比特幣來說 , 就是最長鏈原則
供應鏈或物流管理的使用
上面簡述了兩種不可篡改性的差別 , 對於有 token 的 blockchain 來講
不可篡改指的都是 " 帳本不可篡改 "
而供應鏈與物流管理 , 只需要 " 資料不可篡改 " 就可以了
所以這實際上是個誤區 , 不是只有 blockchain 可以做到
以供應鏈管理與物流管理 , 不需要做到帳本不可篡改 , 只需要資料不可篡改
帳本不可篡改比資料不可篡改還難做
另外 , 必須先滿足資料不可篡改 , 才會有帳本不可篡改
結語
個人覺得 blockchain 太多令人誤解的名詞了 , 跟 " 誤聯網 " 一樣