“区块链”、“分布式账本”以及“受信任的第三方”
“区块链”、“分布式账本”以及“受信任的第三方”


区块链究竟是什么?
区块链是“一种开放性分布式账本,可以有效地记录双方之间的交易,可对交易详情进行验证,并能永久保存”[1]。区块链技术是在十多年前的2009年1月3日发明的。在构建了创始区块之后,每个区块都会通过加密哈希算法连接到下一个区块,计算过程由所谓的矿工[2]完成。如果不更新区块链中所有副本的后续区块,就无法更改、交换或删除以前的区块。系统中的每个节点都存有区块链的副本。此机制可确保系统可依托各个节点变得更可靠,因为已写入区块中的任何数据都无法进行更改(或伪造)。区块链及其最著名的应用“Bitcoin(比特币)”现已成为了席卷全球现象级概念——被写入区块中的数据是双方的“财务”交易,这实际上就是一个电子账本。正因如此,区块链有时会被称为分布式账本。
区块链示例:比特币
每个节点都独立于其他节点,并且都存有区块链(或分类账)的副本,因此不存在负责进行统一认证的副本,每个人拥有的都是真实的区块链,无需受信任的第三方(TTP)。比特币之所以被称为加密货币,是因为它能保证任何人都无法轻易地“打印”或生成比特币,进而导致货币贬值。在普通货币中,这项工作是由该国的央行负责——这就是一个潜在的故障点。实际上,比特币作为一种去中央化的货币,能够独立于任何“政府压力”。比特币没有受信任的第三方(TTP),因此不会受到拒绝服务攻击(Denial of Service,简称DoS),几乎无需任何费用就能维持运作。
在信用交易中,Visa发挥着相同的作用。但由于Visa未使用分布式技术,因此每年都要投入大量资金,保护其中央客户端服务器架构免遭受DoS攻击。全球数百万台客户端(信用卡终端)都会连接到其主服务器。Visa可以保证其系统的性能和安全性(即扮演TTP的角色),但由于安全工作难度大,Visa会收取价格不菲的手续费以作为回报。

所有数据将何去何从?
显然,未来在物联网世界中将拥有数十亿块芯片,届时所有的数据将何去何从?即便可以构建一个“客户端-服务器”中央架构,可高效安全地防御DoS攻击,但我们真的会希望让一家公司控制全球所有芯片数据吗?其实可以让芯片数据直接存储在分类账中,单个客户通过联系单个芯片,就能独立、安全和廉价地获取其数据,无需成本昂贵的TTP来扮演中间人的角色。

智能合约的概念与挑战
智能合约(Smart Contract)使用计算机代码编写,可在区块链的每个节点上运行。提供经过定义的输入值,就会触发经定义的输出值(在理想情况下,这类似于法律文档的作用)。智能合约的“决策”是可靠的,因为智能合约可以在任何地方运行,其结果会以透明、可验证方式永久记录在区块链上。
在虚拟机中运行智能合约时,该虚拟机必须独立于正在运行的硬件,因为虚拟机必须要在所有可能的节点上运行,因此无法访问任何硬件或芯片信息。另一个主要技术障碍是:智能合约需要在每个节点上运行,如果相关信息仅由一个芯片提供,则不建议让数百万个节点同时向同一个芯片查询相同的信息。
Ethereum Blockchain是比特币的竞争对手,由于它是首个实施智能合约的平台,因此已开始着手研究一种解决方案:预言机。
可能的解决方案:预言机
预言机是在网络中向智能合约提供信息的特殊节点。硬件芯片会提供信息,并将其交由预言机,以便将信息分发到链中。预言机会以类似于数据代理的方式有效运作。
信任问题
然而,信任问题又重新出现了。预言机有能力在数据到达区块链之前更改芯片的数据。一旦进入区块链中,就需要在没有TTP的情况下信任交易数据,但预言机提供者必须要受信任。因此,预言机提供者会通过中央认证系统进行认证。但是,这意味着又要重新使用TTP(只是形式不同)以及中央式架构(如针对可信网页的Verisign)。只需对证书提供者或预言机本身进行简单的拒绝服务攻击,就可能会阻止整个物联网系统的运作。
另一种选择是将数据供应到几个不同的预言机中并使用冗余。但是,对于大多数组织来说,设置足够的预言机成本太高。利用一个可在全球托管的开源预言机服务器来提供数据或许不失为一种解决方案,但不是可信任的方法。
证书只会“信任”预言机节点。传送信息的芯片可能会被泄露,而预言机对此并不知情,或者出现更糟的情况——预言机“不在乎”芯片是否已被泄露。预言机生产商只是提供服务,即把信息传输到区块链上,要检查所有的芯片供货商并不现实。
当然,芯片供货商也可以自我认证,并宣称其硬件/固件无法破解、值得信赖。但是,这又会导致TTP的问题、客户锁定以及较高的系统成本。
随着此类TTP的引入,使用去中央化的可信区块链就不再值得信赖了。“标准”数据库的中央式网络可以提供相同的功能,但同样也存在相同的缺点。

理想的解决方案是:值得信赖的相机芯片
理想的解决方案是让芯片生成数据,然后由最终用户(使用智能合约)检查这些数据,以查看数据从芯片发出后,在途中是否遭受篡改。
以相机芯片为例,第一步是对图像进行哈希运算,并存储哈希值。当图像传到最终客户手上后,最终客户会获得此哈希值,并将该值与客户自己生成的值做对比。如果两者不吻合,则说明图像已被篡改。还可以将其他相关信息(例如固件)与图像数据一起进行哈希处理。这样就能将图像变成特定于相机和固件的唯一图像。在将数据发送到区块链之前,系统中的其他本地芯片也可以将其数据发送到相机模块进行哈希处理。然后,最终用户可以使用该图像来检查芯片数据是否被篡改。
以上只是可信赖相机芯片[3]的一个应用示例。其他芯片可能还具有许多其他的应用潜力。
总结
基于区块链的现代点对点网络无需任何中央式受信任的第三方即可运作,能实现更出色的可扩展性,无需向受信任的第三方付费。但遗憾的是,为链上的智能合约提供芯片数据时必须要通过数据代理。为避免让预言机代理垄断数据,需要引入独立的算法允许相机芯片的数据对自身进行验证。衷心希望能有更多的芯片生产商跟进相关的解决方案,提供一个真正实现去中央化的可信第三方免费网络。
参考文献
[1] M. Iansiti, K.R. Lakhani "The Truth about Blockchain", Harvard Business Review, January 2017.
[2] D. Drescher, “Blockchain Basics”, mitp, Chapter 14, 2017.
[3] Patent Pending, B16000DE / FK, em 18-009.