因为内置智能合约,因此比特币是一种有智能的资产。但谁负责执行比特币的智能合约呢?是比特币节点。从这个意义上说,比特币只是自带说明书,而操作和使用者,还是一个外部的存在。所以,比特币的智能成色不高,只能叫做准智能资产。
我们只要往前走出两小步,整个事情就会发生质的变化。
第一,将资产的所有权与使用权分离,并且设计更细致的使用权分级。举一个例子,一台电视机,所有权可以是张三,但使用者可以是李四一家,而某些频道只有李四可以收看,他的小孩无权收看。资产的所有权与使用权分离之后,交易的类型和智能合约的功能将大大丰富,可以支持转借、租赁、赔偿、保险等复杂的交易,也可以对使用权限进行各种精致的控制。
第二,资产能够主动执行智能合约,而不只是智能合约的携带者。
如果是虚拟资产,比如证券、期权、贷款、房契等,那么所谓”主动执行”,其实也只不过是程序设计里的一种观点而已,比如把虚拟资产视为一个对象,将智能合约的执行作为对象的一个方法。这样在代码层面上看,好像这个虚拟资产在主动执行智能合约。这当然是不错的,但我们知道这只是一种看问题的角度而已。
但对于物理资产来说,这个”执行”可就不是一种看法了,而是看得见摸得着的一种性质了。
如果一座房子是智能资产,具有主动执行智能合约的能力,那么它只会为这个房子的主人开门供水供电。反之如果你不是这个房子所有者,却强行住进这座房子,那么这座房子可以按照智能合约的设定来惩罚你,比如关门、放狗、报警、停水停电。我不禁更恶意的想到,未来是否会有人设计更阴毒的智能合约,比如用电击和毒气对付闯进私宅的小偷。毕竟,某种意义上你可以把能够主动执行智能合约的房子视为一个巨大的机器人。
我们还必须看得更远一点,家用机器人的普及应该不再是遥不可及的事情了。当这一天到来之后,机器人的权限控制将成为极其重要的问题。为什么你可以深信你的机器人真的属于你?它会不会是你经纪人安插过来占你马蓉夺你田的内奸?会不会某一天你儿子李天一派它出去袭击路人强抢民女?会不会你们社区的黑客老王突然接管了一万个机器人保姆,然后组织起一支机器人军队横扫警局打伤无辜城管?人工智能大了,什么鸟都有。必须要有极其可靠的机制帮助我们给这匹烈马勒上缰绳。
我相信区块链和智能合约就是这条缰绳。有了区块链和智能合约,你的机器人只会毫无争议地属于其所有者,其行为可以被监管,权限可以得到精细的控制。区块链和智能合约将以极高的可靠度限制机器人和其他智能设备的行为边界。人工智能解决有多大能力的问题,而区块链解决有多大责任的问题。人工智能可以不断探索力量的边界,但必须有区块链来给它立法。
在这里发点感慨。人工智能和机器人,这两个我们从小就在科幻电影里盼了很多年的东西,以无人机、自动驾驶汽车这些貌似人畜无害、老实巴交的形式开始粉墨登场。今天我们总嫌它们不够强,努力地推进着人工智能、深度学习、 VR、AR、仿生等科技的发展,就好像蹲在神奇豌豆旁边的杰克,思兹念兹,浇水施肥,盼着它发芽长大。但这个阶段不会太长,一旦人工智能和机器人破土而出,它们将很快冲破云霄,变得无比强大。我们对于它们的感觉,将瞬间从好玩变成兴奋,从兴奋变成恐惧。区块链和智能资产为解决人工智能和机器人的可控制性和安全性提供了一个强有力的手段。如果没有区块链,以目前人类构造软件的方式,人工智能和机器人将先是被黑客用来抢劫,然后被极权用来奴役,最后被机器超文明用来毁灭。区块链和智能资产把数学之神请到机器当中,给人工智能这只法力无边的神猴戴上一个金箍,或许能让自恋的人类多苟延残喘一段时间。
这就是为什么区块链跟物联网将是绝配。区块链能够以高度可靠而智能的方式处理交易和智能合约,而物联网能够将智能资产连接到区块链上,下载和更新智能合约。智能资产则能主动执行智能合约,并与区块链相互验证。换言之,智能资产通过物联网与区块链之间形成了硬链接,其所有权和使用权直接受控于区块链。
以上已经从概念和方法上介绍了智能资产。下面的内容完全是技术内容,对于智能资产实现不关心的读者可以略过。
本质上智能资产是一个密码学协议。这里详细思考一个例子。假设我们以现有的比特币区块链作为基础设施,将一辆汽车变成智能资产,要做那几件事情?
人物设定如下:买家Alice,租车客户 Bob,制造商 Mark,汽车 Car。注意这里没有经销商,因为在区块链的世界里不需要经销商这个中介实体。另外,如前所述,一切交易能够展开的前提是区块链系统中已经存在一笔 UTXO,其金额为 T,收款人地址为 ManuAddr,简化起见,我称这个 UTXO 为 OwnerUTXO。
第一步,在汽车制造商 Mark 生产这辆车的时候,应当设定自己为这辆车的第一个所有人。方法是:厂家产生一对密钥ManuPrivKey 和 ManuPubKey。然后把 ManuPubKey 先后经过 SHA-256、RIPEMD160两道哈希,最后再编码为 Base58,得到厂家的一个地址:
ManuAddr = Base58.encode(RIPEMD160(SHA-256(ManuPubKey)))
注意,Mark 应当为每辆车单独产生一个代表自己的地址。
第二步,Mark 将一个私钥 CarOwnershipKey 写死在汽车的电脑固件当中。这个私钥代表car的所有权,有它可以产生出 Car 的公钥 CarOwnershipPubKey 和 地址 CarOnwershipAddr。
第三步,Mark向自己的 ManuAddr 中存入数量为 T 的比特币,这个数量可以非常小,比如0.0001 比特币甚至更少都可以,主要目的是要让区块链系统中中就会有一笔 UTXO,其收款人是 ManuAddr。此外,还要在这个 UTXO 的元数据里放上把汽车的地址 CarOwnershipAddr 写进去,这样一来,这个 UTXO 在区块链系统中就代表这辆车了。
第四步,Mark 把包含上述交易的区块头信息写入 Car 中,使Car 明确自己的主人是 Mark。
我想提请注意的是,CarOwnershipAddr在区块链系统中代表这部车,而同时这个 CarOwnershipAddr及其背后的 CarOwnershipKey 也被写死在汽车的固件里,这就在区块链系统与这部车之间建立了一个链接。如果对这辆车的可以主动执行区块链里的智能合约,那么区块链中的这个 UTXO 就与现实世界中的这部车之间建立了硬链接。这是实现智能资产的关键一步。
现在就可以对这辆车进行一系列交易了。简单分析两个场景。
第一个场景,询问车辆状况。过程如下:
- Alice 决定购买某款车,于是在 Mark 的网站上选择一辆车 Car ,获得其地址 CarOwnershipAddr,然后对它进行查询。
- Alice 产生一个随机数 nonce,发给 Car。
- Car 用自己的私钥对 nonce 和自己的公钥 CarOwnershipPubKey、出厂证书、配置、参数、价格等公开信息进行签名,然后将签名后的信息发给 Alice。
- Alice 看到发回的 nonce 是自己当时产生的那个随机数,再用 CarOwnershipPubKey验证签名,从而可以确认网站上列出的那辆 Car 确实存在,它的参数也可以信任。她可以决定是否购买这部车了。
第二个场景,买车。过程如下:
Alice 通知 Mark 要买车
- Mark 产生一个新的比特币账户 k1,这个 k1 将用于收款
- Alice 产生一个新的比特币账户 k2,这个账户将用来接受 Car 的所有权
- Alice 产生一个新的交易,有两个 input 和两个 output。在第一个input 里,Alice 将自己拥有的购车款作为输入,而将第一个输出的收款地址设为 k1,也就是 Mark 的比特币账户。在第二个 input 里,Alice 将 OwnerUTXO 作为输入,将第二个output 的收款地址设为 k2,也就是自己用来接收 Car 所有权的账户。注意这里你可能会问,Alice现在又不是这辆车的拥有者,她怎么能将 OwnerUTXO 作为输入呢?其实这无所谓,因为这相当于只是一份合同,文本由谁来写无所谓,关键是真正的所有人Mark会不会在合同上签字。准备好交易合同之后,Alice 自己先签好名。
- Mark 查看合同,觉得没问题就签名认可,然后把这个交易发布到区块链里。此时这份合同得到了买卖双方的签名后,已成为有效合同,区块链节点验证通过,将合同放在一个区块里面。
- 六个区块确认此交易。
- 当 Alice 去提车时,向 Car 出示这个交易的证据,交易所在区块的头信息以及从这个区块到确立 Car 当前所有权的区块这个链区间的所有区块片段头信息。Car 开始自动执行合同:它验证当前的交易合法并且确实是区块链中的交易记录,并且这个交易所在的区块链片段比自己存储的原区块链片段要长,于是它就可以更新所有者信息为 Alice。Alice就可以拥有并使用这辆车了。
智能资产的行为取决于智能合约。智能合约则需要考虑各种应用场景。上述仅为两个基本场景,实际上智能资产能够支持租赁、分期付款、抵押贷款、无偿定期出借等各种应用场景,进一步的精致设计应能支持使用权分级、定期使用权回收、权限禁止等。这些应用的设计,实际上是精致的密码学协议与智能设备控制系统之间的巧妙融合,这将是未来区块链+物联网开发的主要内容。我将在今后不断研究这个课题,有收获时记载下来。
This article was originally published on August 31, 2016, on Yan Meng’s official WeChat account. Access the article through the link below https://mp.weixin.qq.com/s/zTf2XbCPh9VRvHLSo5QuZw.