區塊鏈的正確使用手冊(中)

區塊鏈應用導入評估框架(一)

上一篇筆者提到了區塊鏈技術的本質以及常被誤解的用途,在此篇文章筆者將嘗試提供一個泛用、易懂的框架,讓企業決策者可以判斷應用場景是否需要導入區塊鏈。

其實國外已經有不少學者提出了區塊鏈的應用評估框架,像是美國標準技術研究院(NIST)就在其區塊鏈技術回顧的論文中(第42頁)提出了以下的框架:

NIST 的區塊鏈評估應用框架

其他學者提出的框架都跟 NIST 的大同小異,這當中 NIST 的框架雖然較為全面,但仍然有其侷限,理由在於,這些框架都偏向把區塊鏈當作協作型資料庫(Collaborative Database),但事實上區塊鏈還有其他的用途,像是博弈類 DApp 利用公鏈智能合約開源的特性,解決了線上賭場長久以來的信任問題——莊家可能會操縱隨機數來坑玩家,這種將程式邏輯公開換取信任的應用方式,就完全在以上框架的守備範圍之外。

正因為如此,筆者希望能設計一個包容性更大、更全面的框架給企業決策者參考。

適合區塊鏈的應用場景

以筆者研究超過上百個區塊鏈應用案例的經驗來看,區塊鏈作為一個共享帳本(Shared-ledger),其用途大致上可分為三個種類:

A. 協作型資料庫(Collaborative Database)

B. 數位資產發行平台(Digital Asset Issuing Platform)

C. 公正程式平台(Honest Program Platform)


協作型資料庫(Collaborative Database)

這個類型的應用適用 NIST 的框架,不過 NIST 的框架有點太複雜,我把它稍微做了簡化,如果你的應用場景有以下特性,可能就適合用區塊鏈做協作型資料庫:

1.需要儲存資料
2.有多個資料寫入者
3.沒有適合/可信任的資料儲存者
4.資料需要其他成員查核 & 審計正確性
5.資料一但被寫入後就不能被刪除或更新

你可能會想,什麼樣的應用場景會有以上的特性?

通常跨組織的資訊交換會有這種特性,譬如國際船運就是一個典型有多方參與者(貿易商、海關、港口、物流業者),且需要頻繁驗證資訊正確性的場景。

假設你是一個貿易商,你想把貨物從台灣賣到南美洲,因為路途遙遠,所以你花錢找了兩家船運公司來運東西,但問題來了,每家船運公司都有自己的一套追蹤系統,但只看得到自家旗下貨物的運輸狀況,所以你必須不斷打電話、寫 Email 到這兩家公司,才能追蹤到貨品的完整運輸狀況。

除此之外,船運公司也需要跟其他組織溝通,譬如港口、海關、陸運業者等等。船運巨擘 Maersk 就曾經估計過,把一個冷藏貨櫃從東非運到歐洲需要經手大約 30 個人和組織,超過 200 次溝通交流才能實現,這些貿易文件處理的相關費用佔了實際運輸成本的 5 分之 1。

這些痛點能用區塊鏈解嗎?

我們來一一檢視國際海運是否需要區塊鏈:

1.需要儲存資料
--> 打勾,需要有地方能夠存貨物的運輸狀況。
2.有多個資料寫入者
--> 打勾,有很多組織需要寫入貨物資料,譬如海關寫入驗貨狀況,海運業者寫入運輸到哪裡等等。
3.沒有適合/可信任的資料儲存者
--> 打勾,這個場景牽涉太多單位,找誰來存 end to end 的資料都不適合,找海運公司?找某政府海關?找某大港口?就算有人肯存,其他單位可以完全相信它不會亂來嗎?
4.資料需要其他成員查核 & 審計正確性
--> 打勾,譬如船運公司A要接力運輸船運公司B的貨品時,A必須確認B送進港口的東西已經被海關驗過沒問題了,這時候A不能片面信任B的說詞,還必須要去跟海關再三確認才行。
5.資料一但被寫入後就不能被刪除或更新
--> 打勾,貨物運輸紀錄本身是一種流水帳型的資料(log),理論上只會一直新增紀錄,不會修改過去的歷史。

Bingo!我們得到了一個合理的區塊鏈應用!

IBM 與船運巨擘 Maersk 在 2018 年發起的區塊鏈專案 ——TradeLens,就是一個讓各家船運公司、貿易公司都能夠共同分享、上傳資訊的協作型資料庫,讓聯盟的成員能夠掌握 end to end 的貨物運輸資訊,其運作方式如下圖所示:

TradeLens 運作方式 (來源:IBM)

在一次 IBM 的測試中,TradeLens 可以有效減少 40% 的貨物運輸時間,這聽起來很棒,但專案發展了整整一年之後,這套系統有被業界大規模採用嗎?

答案是,沒有

之所以沒有被大規模採用,主因並非技術障礙,而是政治問題。其他船運同業並不希望加入一個由 Maersk 主導的計畫,他們擔心自己的權利在這個平台無法跟 Maersk 平起平坐,像是世界第五大的船運公司 Hapag-Lloyd 就曾公開批評 TradeLens 是一個不能用(unusable)的平台,但明眼人都知道,並不是不能用,而是它不想用。

把區塊鏈拿來當協作型的資料庫,技術上並不難實現,真正難的地方是如何讓各方都願意參與其中,TradeLens 上如果只有 Maersk 一家船運公司,其存在就毫無意義,像國際海運這種由寡頭佔領的市場,由任何一個寡頭出面做平台,其他人難免會不服氣。

區塊鏈可以解決資訊傳遞效率的問題,但無法解決「誰也不服誰」的政治問題。

要避免政治問題,此種應用比較適合由獨立的第三方(譬如產業工會或是政府)來推動,像是財金資訊公司推動的金融函証區塊鏈即是如此,財金公司的股東由各大銀行跟政府組成,某種程度上可說是銀行業的集體意識,這種單位做平台大家比較容易服氣,但改成某間銀行來主導可能就會失敗。

看完了 TradeLens 的案例,我們再來看第二個誤用區塊鏈的例子——航空公司哩程系統。

有某間航空公司跟數百家餐廳、住宿業者合作,讓客戶在這些合作商家消費也可以累積航空哩程數,並且宣稱在點數系統中導入了區塊鏈技術,大幅度提升後端作業效率並減少人力核對點數成本。(這是真實案例)

這真的需要區塊鏈嗎?讓我們再套用一次框架:

1.需要儲存資料
--> 打勾,需要有地方能夠存點數餘額。
2.有多個資料寫入者
--> 打勾,有很多合作商家需要寫入資料以更新點數餘額。
3.沒有適合/可信任的資料儲存者
--> 打叉,航空公司自己做一個中心化的資料庫讓合作商家串API同步點數餘額狀況即可,沒有信任問題。
4.資料需要其他成員查核 & 審計正確性
--> 打叉,這個應用場景是「一對多」而非「多對多」的關係,亦即商家A跟航空公司串接資料時,並不需要同步讓商家B知道,而且商家B也不需要審計「商家A跟航空公司串接資料」的真實性。
5.資料一但被寫入後就不能被刪除或更新
--> 看狀況,如果資料庫只紀錄點數最新的餘額,不管中間消費歷程,就不需要這個特性。

在「有可信任資料庫」的狀況下,單純的資料同步是不需要區塊鏈的,航空公司高管宣稱的「後端系統效率提升」,在我看起來可能只是藉著區塊鏈專案的名義把原本不夠數位化的地方做得更好罷了,看起來是區塊鏈奏效,但實際上並非如此。那為什麼要用區塊鏈呢?可能是為了 PR 效果,也可能技術顧問公司賣區塊鏈 solution 可以開更高的價碼吧!誰知道呢?

實務上,協作型資料庫通常會用聯盟鏈實現,因為一些機密的資料並不適合/不需要放在公鏈上給所有人看,不過也有一些應用變體會把資料存公鏈上,譬如 MIT 自行研發的數位證書協議 Blockcerts,就是讓所有需要發數位證書的單位,都可以透過這套協議把證書紀錄在比特幣的區塊鏈上。

以往發行數位證書的單位需要有一個後台,讓用戶可以驗證證書的有效性,但現在用 Blockcert 就只要負擔少少的資料上鏈費用,不用再雇用人開發/維護後台,就可以安心地把證書存在區塊鏈上,而用戶也可以用 Blockert 協議開發的 APP 統一管理不同機構發放的數位證書,解決了數位證書管理不易的痛點。

總結一下把區塊鏈當成協作型資料庫的好處以及需要注意的地方:

好處:
1. 降低跨單位資訊傳輸成本
2. 解決「沒人能存資料」的問題
需要注意的地方:
1. 可能會有「誰也不服誰」的政治問題,建議由第三方單位推動
2. 在意資料隱私的話建議使用聯盟鏈,反之若資料適合存在公鏈上,建議不要重複造輪子,先看看是否有開源協議可以使用

由於文章篇幅較長,另外兩種應用類別——數位資產發行平台 & 公正程式平台會放在下一篇介紹


Benson Sun》授權轉載

閱讀恐慌症患者,除了睡覺超過10分鐘沒讀東西就很不安,只要有文字的東西都喜歡讀,包括餐廳菜單、食物成分標籤、路上廣告招牌,反正不管在何時何地,就是一定要找個東西來讀一讀,最喜歡的網站是維基百科(因為可

新增留言