在比特币之前,有很多数字电子货币失败的尝试。比特币与大多数失败的尝试之间,最重要的区别在于去中心化。比特币去中心化的核心创新方法是使用区块链。
在这一篇,员外跟大家说一说区块链技术如何在货币体系以外的领域里实现去中心化。本篇我们会一直重复使用汽车的案例,这辆车的所有权是通过区块链来控制的。早在1990年年初,尼克·萨博(Nick Szabo)和其他几位创新性提出智能资产和管理智能资产的数字化合约,远远早于比特币。随着区块链的出现,这个想法变得越来越现实和具体。
令人兴奋的案例
当代的汽车使用两种主要的加锁机制(locking mechanisms):门上的物理锁和通过电子锁住引擎不让发动的制动器。用户用遥控钥匙可以与汽车无线通信,根据遥控器与车的距离或者用户按下按钮的特定动作,来解锁车门和发动引擎。
为了防止假冒钥匙入侵,车钥匙的解锁机制需要加密。虽然安全专家发现很多最近使用的加锁机制存在很多问题,但是他们是有可能处理好这些问题的。一般来说,这些算法会使用对称钥匙加密技术。在我们这个案例中,用的是基于非对称加密技术的类似椭圆曲线数字签名算法的数字签名技术。
在这个例子里,汽车储存了一份遥控器的公开密钥,用于打开车门和发动引擎。当遥控器请求开门的时候,汽车发送回随机数并要求遥控器用它储存的密钥签名。只有遥控器准确回复签名,车门才会被打开。到目前为止,这个原理和实际中的防盗机制没有什么大的区别。唯一的区别是,我们使用了很深的加密技术,安装起来比较昂贵。
实现智能
这次设计的智能汽车,是假设用来验证遥控器的公开密钥并不是靠汽车制造商永久地记录在汽车里;而是,智能汽车技术上可以不间断地,无线接收例如比特币一样的区块链上的新区块。当汽车在组装厂组装的时候,遥控器里第一个用户(比如组装厂的经理)的公开密钥通过特殊操作加入区块链。同时,这辆智能汽车也把该特殊操作的ID写入它自带的程序。
核心的思想是,汽车更改所有权的时候——从装配车厂到质量监控室到运输人员到汽车经销商到第一个所有者——也同时更新到区块链,区块链同时授权每一步的转换。值得注意的是,在这个模式下,授权用的遥控器没有跟着车走。每个人或者公司都有一个预先存在的遥控器(或者带着某种有遥控器功能的仪器)。这个遥控器里面有一个唯一的签名密钥。根据区块链的交易,签名密钥被激活或者被取消拥有这辆车的权利。这样的交易以车最新的交易ID为输入,同时设定一个新的公共密钥为输出ID。汽车目前的拥有者需要用私人密钥在这个输出ID上签名。
这种设计和智能资产相似,除了一个重大的区别: 区块链的交易不仅仅表示汽车所有权的变更,它还代表真正的汽车物理拥有权的转移。当汽车通过区块链转移的时候,前车主的遥控器无法工作,新车主的遥控器获得开门和启动引擎的权利。让所有权等同于使用权的技术有着深远的影响,这将促使强有力的去中心化。但是去中心化是否有用,这并不容易看清楚。
安全的交易
假设喵妹拥有一辆智能汽车想卖给员外,能够数字化地转移汽车控制权会引起几个有趣的可能性。比如,喵妹也许正在国外旅行正需要钱来支付旅费,所以要卖掉停在她家后院车库的汽车。只要联上互联网,员外就可以用比特币支付给喵妹车钱,喵妹可以远程通过区块链把车的所有权转移给员外,员外就可以开走这辆车。
然而,这样的交易存在一定的风险。如果员外先支付,喵妹也许收了钱而不转移车的所有权。如果喵妹先转移车的所有权,员外也许不付钱就把车开走了。即使假设喵妹在现场,也有可能另一方突然改变主意而撤销交易。这时候让不在场的第三方来调解争议也很困难。
解决这类问题要使用同样的原则。只要支付的货币和汽车的拥有权同时存在相同的区块链,喵妹和员外就可以产生一个不可分割的交易。这个交易同时转移汽车的所有权和车款。具体地说,这个交易规定两个输入:喵妹的所有权和员外的支付款;规定两个输出:归员外的所有权和归喵妹的支付款。这个交易需要双方提供输入要素,因此要求双方都要签名。如果只有一方签名,交易就无效。一旦一方签名,交易的细节就无法改变,除非这个签名无效。签过名的交易一旦对整个区块链广播,员外只要等预设的几次确认(一般是6次),就可以拥有这辆车。员外支付给喵妹的款项也同时被确认。两个确认是相辅相成,缺一不可的。
注意:员外可以收到喵妹签名的交易,自己也签名,但是不立即对外广播。等到喵妹卖东西的价格变了,员外才把旧交易用原来的价格对外广播。所以为了避免这种问题,比较复杂的不可分割的交易里包括截止时间。过了截止时间后,喵妹可以发送输入她控制下的新地址,用来表示撤回她发给员外的已经签过名的交易。
我们将会看到,很多其他案例使用区块链技术促使现实中的各种交易程序去中心化,从而达到不同种类的去中心化状态。其中,不可分割性(atomicity)是绝大多数案例共有的特性。也就是说,交易每一方的交割都是联系在一起的,所以它们都同时发生或者都不发生。不可分割性是区块链以外应用程序领域里重要的安全概念。