購物訂單看起來是合法的,但它是否全部獲得了正式批准呢?許多律師審閱了這份合同草案,那麼這是最後的版本了嗎?在簽字之前,我們是否可以證明這份重要文件未被篡改過?我們是否能證明該文件的兩個版本是完全相同的呢?
區塊鍊或許能夠解決這類關於文檔的日常信任問題,特別是對PDF這種使用可移植文檔格式創建的數據文件。區塊鏈技術以其確保金融交易而聞名,包括支持比特幣等新型金融工具。但區塊鏈提高信任的能力可能會成為解決普遍的非財務信息交換的企業用例,就像這些文件中使用的那樣。
比利時根特iText Software公司的軟體工程師和PDF專家Joris Schellekens最近在Oracle Code Los Angele上發表了他關於區塊鏈支持的文檔的想法。Oracle Code是在世界各地舉辦的一系列免費活動,旨在將開發者聚集起來,共享新的想法並合作完成它們。
PDF的能力和限制
PDF文件格式是Adobe Systems(Adobe系統)在20世紀90年代初創建的,作為共享格式豐富的文檔的方式,無論是軟體創建或者閱覽還是列印的情況下,其視覺佈局、文字和圖像看起來都是一樣的。PDF格式在2008年成為國際標準。
早期,Adobe和其他公司將安全性能應用到PDF文件中,包括密碼保護、加密和數字簽名。理論上來說,數字簽名需要能夠證明該文件的創建者,或者至少是加密者。
Schellekens表示,不過,根據所用的哈希演算法,要破壞這些保護並不難,例如更改數據/時間戳,甚至文檔內容。他的公司iText Software推出了一款用於創建和操作PDFs的軟體開發工具包和API介面。
他說:“PDF格式包含了ID元組的概念,或者是不可變的數據序列。這一ID元組包含了文件創建和修改的時間戳。不過,PDF格式對於創建時如何使用這些工具比較模糊。”
即使在未經修改的PDF文件中,保護也會應用於整個文件而不是其中多個部分。想像一下文件必須得到多方簽名的情況。由於並非全部認證中心都以同等規格保存他們的密鑰,你可能對真正修改(簽名)文件的人、時間、序列缺乏信任。或者說,你可能不相信簽名之前並未有人進行過修改。
一個相關挑戰:在數字文檔上簽名通常必須是一次一個;PDF規格不允許幾個人同時簽署一份文件(這在合同審閱和簽名中很常見)然後再進行合併。
區塊鏈有潛力解決這類文檔以及其他問題。例如,安特衛普港口正在測試接收船運集裝箱和集在有權訪問這些集裝箱的數字化文檔和工作流程的PDF文件。其記錄存儲在區塊鏈上,如果貨物被盜,港口可以確定最近訪問集裝箱記錄對應的人。
這類用例及、依賴於企業級的量產區塊鏈基礎設施——特別是幫助客戶快速試驗用例以及部署生產的雲系統。Oracle正在計劃發布一個雲平台,名為Oracle區塊鏈雲服務,通過區塊鏈服務企業和公共部門組織。
區塊鏈:不可變記錄
區塊鍊是一種相對較新的系統,可以將一組名為“塊(blocks)”的記錄連接到相鏈接的加密且防篡改的鏈中。區塊鏈的功能中最重要的是已有數十年曆史的哈希概念,一個用於代表大型、複雜數據(例如已簽名的PDF合約)內容的經過計算的數字。
哈希可以用於比較兩份數據是否相同——即使你知道了哈希結果,你也不會擁有數據本身。因此,如果你創建兩個合約PDF版本的哈希,而哈希結果並不匹配,說明這兩份PDF文件並不相同。如果哈希結果匹配,則它們是完全相同的。(有極小的可能存在兩份不同的PDF文件擁有相同的哈希結果。)
區塊鏈如何實現這一點?計算PDF合約原始版本的哈希並將其哈希值存儲在區塊鏈的一個區塊中。授權的相關方可以自己進行驗證,通過比較其版本的哈希與存儲在區塊鏈中的哈希值,確定PDF合約的副本是否合法。當存在多個副本時,例如擁有不同簽名,相關方可以使用區塊鏈來評估它們的有效性,並通過每個文件元數據的相關時間戳來確定其順序。
這裡的優勢在於,區塊鏈存儲了文件哈希值的其他信息,例如準確的數據/時間戳,或者存儲哈希的人的身份。這使得確認文件是否是最新版,或者存儲多個包含相同修改時間的文件版本變得更簡單。這樣,PDF格式的限制得以克服,更確切地說,是通過使用區塊鏈而非PDF元數據克服了驗證文件的障礙。
具體來說,區塊鏈強化了與文件驗證核心相關的現有解決方案,Schellekens表示:
完整性:確保文件副本與原始文件擁有完全相同的內容。
可鑑定:證明文件的創建者和修改者,而PDF無法做到這一點。
不可否認性:一旦每次迭代存儲在區塊鏈上,不允許創建者或修改者否認其行為。
此外,由於文件驗證是在區塊鏈中而非如PDF的內置安全措施一樣由文件本身進行,任何人都很難篡改文件並避免被發現。
最優異之處
當PDF文檔的內置安全措施與那些區塊鏈合併後,會產生揚長避短的效果。
無論訪問文件的計算機、進行創建或閱讀的軟體或者將其列印為文本的印表機是什麼,PDF行業標準規格都能確保其一致性。PDF規格同樣提供加密等安全性,用以添加保護層。
PDF還具有可擴展性。它不僅可以容納元數據,還可以容納用JavaScript編寫的程序代碼。這讓PDF文檔足以容納可視化佈局、文本、圖形以及程序邏輯、動畫以及可以由合適的程序運行的嵌入數據。
區塊鏈提供了對外的安全性能、時間戳、文件創建者(或者至少驗證檢查文檔的人)的鑑定、不可否認性以及確認文檔並未經過篡改。
Schellekens表示:“其中優勢在於,你除了可以在PDF中進行的數字簽名外,還可以在其中添加額外功能,例如時間戳,以及確認是否有人修改了文件。”
區塊鍊是否適用於每一種PDF文件的鑑定呢?現在還不行。這一技術仍處於萌芽期,沒有與區塊鏈服務商合作經驗的機構可能不知道如何實施或使用區塊鏈。不過,Schellekens堅信它在鑑定數據記錄方面的價值,因為區塊鏈並不依賴於任何外部權威,例如由第三方認證機構發行的數字證書。
區塊鏈的信任風險也很容易計算,而其他安全措施可能無法做到。
Schellekens說:“區塊鏈有多值得信任?這是區塊鏈最迷人之處:你可以從數學角度證明,一個人要解密你的密鑰或聲稱一個完全匹配你的PDF的哈希值有多難。通過其他安全措施,你不知道你的安全程度——直到你發現一位員工用USB盜走了密鑰。”