编者按:本文来自比特中文网(ID:),作者:Alan Zeichick,编译:cici,36氪经授权发布。
购物订单看起来是合法的,但它是否全部获得了正式批准呢?许多律师审阅了这份合同草案,那么这是最后的版本了吗?在签字之前,我们是否可以证明这份重要文件未被篡改过?我们是否能证明该文件的两个版本是完全相同的呢?
区块链或许能够解决这类关于文档的日常信任问题,特别是对PDF这种使用可移植文档格式创建的数据文件。区块链技术以其确保金融交易而闻名,包括支持比特币等新型金融工具。但区块链提高信任的能力可能会成为解决普遍的非财务信息交换的企业用例,就像这些文件中使用的那样。
比利时根特iText Software公司的软件工程师和PDF专家Joris Schellekens最近在Oracle Code Los Angele上发表了他关于区块链支持的文档的想法。
Oracle Code是在世界各地举办的一系列免费活动,旨在将开发者聚集起来,共享新的想法并合作完成它们。
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盗走了密钥。”