区块链为智能立法,从比特币看智能资产

柳宗元有一篇精彩的小文叫《蝜蝂传》,其中他借一种小虫子来讽刺世人面对资产的贪婪和不淡定:“今世之嗜取者,遇货不避,以厚其室,不知为己累……日思高其位,大其禄,而贪取滋甚,以近于危坠,观前之死亡,不知戒,虽其形魁然大者也,其名人也,而智则小虫也。” 



一千二百年过去了,看起来人类的智慧并没有什么提升,还是跟小虫子差不多,聚资敛财,至死不悟。相比较之下,随着人工智能、物联网的崛起,资产的智慧反而有了从零到一的突破,不再是任人与夺的物件。未来的资产,无论是代表货币的符号,还是实实在在的车、房,都可以在人工智能、区块链的加持下具备智能。而区块链作为价值交换的主干网络,不但将成为智能资产的交易平台,而且将为智能资产立法。本文从比特币出发来介绍智能资产的一些特点和发展方向。 



比特币:一种准智能资产 



一切思路来自比特币,所谓智能资产,后来的学者延展也罢、创想也罢,其基本的思想就在比特币中。了解比特比的人知道,世界上并没有比特币,所谓比特币,其实就是“未消费的交易输出”,即 UTXO。也就是说,你拥有10枚比特币,这个事实的实质是,在当前比特币系统里,所有收款人是你的 UTXO,它们的金额总和是10。这些 UTXO 是你的资产,英文是 property 或 asset,两个词都有人用。 



明确一下概念,这里所谓资产,不是《穷爸爸,富爸爸》里面所说的,你睡觉也能给你挣钱的资本(capital)。资产是一项权利,可以从以下三个特质来理解这里所谓的资产。 



第一个特质,存在权威力量保障你对资产所拥有的正当处置权利。在现实生活中,你名下的房屋、汽车和电脑是你的资产,立法和执法机构作为权威力量保障你对于你的房屋、汽车和电脑的正当处置权利。如果有人侵犯这个权利,比如不经你的同意开走你的车,或者没有其他合法理由阻止你使用你的电脑,那么就构成对你资产处置权的侵害,你就可以要求执法机构强制他停止对你的侵害甚至惩罚他。相反,如果没有权威力量来保障你的处置权,那么这就不是你的资产,占你房产夺你田,你又能怎样? 



第二个特质,资产必须可交易,不能交易的不是资产。你的精神状态,你的微信和微博账号,它们无疑都属于你,而且它们很对你重要。你可以任意处置它们,如果有人给你造成精神损失,或偷窃你的账号,你可以请求法律或者去微信微博投诉,要求主持公道。但它们都不是资产,因为它们无法交易。 



第三个特质,在任何一个时刻,资产的所有者范围必须明确,一个人要么是这个资产的所有人,要么不是,必须清清楚楚。因此,一本纸质书是资产,但一本被随意共享的电子书、一篇不禁止他人转载的网文,一份开源软件,它们就不是资产,因为随时都可能会有新的读者或者用户下载和拥有它。 



比特币,或者说 UTXO 满足上面的三个要求。你的 UTXO 处置权利归你,由密码学和比特币网络作为权威力量保障这一点;UTXO 可交易;UTXO所有者范围明确,只能是一个人。所以 UTXO 是资产。但是 UTXO 不是普通的资产,它具有一定的智能。之所以说UTXO 是智能的,是因为它有两个特点: 



第一,UTXO 是自描述的,它跟你刚刚买回来的汽车不一样,新车本身没有任何标记或者数据描述其资产归属信息,之所以这辆车属于你,是因为你在这辆车之外完成了一系列手续,拿到了车钥匙。同样,某人银行账户里的余额,比如 250 元,这个数字本身也不是自描述的,它之所以属于户主,是因为银行系统把它放在那个户主的数据行里,它的命运和归属完全听任外界的摆布。UTXO 不一样,它来自哪里,金额多少,当前属于谁,要处置它时必须满足什么条件,都清清楚楚写在那里。 



第二,UTXO 中包含一个智能合约,当有人需要处置它时,它要求这个人履行智能合约中的条款。或者换一个说法,UTXO能够自动的保障所有者的权益。怎么做到的呢?UTXO 包含一段程序,这段程序确保了任何企图动用 UTXO 的人都必须满足一些条件。因为有了这段程序,UTXO 不再是普通的资产,而成了具有一定自主性、对主人忠心耿耿的忠犬资产。 



因为这两点,UTXO 就成为具有一定智能的资产,称之为准智能资产。为什么是准? 因为它还缺乏两个关键点,第一是没有将所有权与使用权分开,第二是它本身没有程序的执行能力,不能够主动维权。如果有这两个特点,那么就将成为全功能的智能资产了。 



真正的智能资产 



因为内置智能合约,因此比特币是一种有智能的资产。但谁负责执行比特币的智能合约呢?是比特币节点。从这个意义上说,比特币只是自带说明书,而操作和使用者,还是一个外部的存在。所以,比特币的智能成色不高,只能叫做准智能资产。? 



我们只要往前走出两小步,整个事情就会发生质的变化。 



第一,将资产的所有权与使用权分离,并且设计更细致的使用权分级。举一个例子,一台电视机,所有权可以是张三,但使用者可以是李四一家,而某些频道只有李四可以收看,他的小孩无权收看。资产的所有权与使用权分离之后,交易的类型和智能合约的功能将大大丰富,可以支持转借、租赁、赔偿、保险等复杂的交易,也可以对使用权限进行各种精致的控制。 



第二,资产能够主动执行智能合约,而不只是智能合约的携带者。如果是虚拟资产,比如证券、期权、贷款、房契等,那么所谓“主动执行”,其实也只不过是程序设计里的一种观点而已,比如把虚拟资产视为一个对象,将智能合约的执行作为对象的一个方法。这样在代码层面上看,好像这个虚拟资产在主动执行智能合约。这当然是不错的,但我们知道这只是一种看问题的角度而已。但对于物理资产来说,这个“执行”可就不是一种看法了,而是看得见摸得着的一种性质了。 



如果一座房子是智能资产,具有主动执行智能合约的能力,那么它只会为这个房子的主人开门供水供电。反之如果你不是这个房子所有者,却强行住进这座房子,那么这座房子可以按照智能合约的设定来惩罚你,比如关门、放狗、报警、停水停电。我不禁更恶意的想到,未来是否会有人设计更厉害的智能合约,比如用电击和毒气对付闯进私宅的小偷。毕竟,某种意义上你可以把能够主动执行智能合约的房子视为一个巨大的机器人。 



我们还必须看得更远一点,家用机器人的普及应该不再是遥不可及的事情了。当这一天到来之后,机器人的权限控制将成为极其重要的问题。为什么你可以深信你的机器人真的属于你?会不会你们社区的黑客老王突然接管了一万个机器人保姆,然后组织起一支机器人军队横扫警局打伤无辜城管?人工智能大了,什么都可能发生。必须要有极其可靠的机制帮助我们给这匹烈马勒上缰绳。 



我相信区块链和智能合约就是这条缰绳。有了区块链和智能合约,你的机器人只会毫无争议地属于其所有者,其行为可以被监管,权限可以得到精细的控制。区块链和智能合约将以极高的可靠度限制机器人和其他智能设备的行为边界。人工智能解决有多大能力的问题,而区块链解决有多大责任的问题。人工智能可以不断探索力量的边界,但必须有区块链来给它立法。 



这就是为什么区块链跟物联网将是绝配。区块链能够以高度可靠而智能的方式处理交易和智能合约,而物联网能够将智能资产连接到区块链上,下载和更新智能合约。智能资产则能主动执行智能合约,并与区块链相互验证。换言之,智能资产通过物联网与区块链之间形成了硬链接,其所有权和使用权直接受控于区块链。 



智能资产的实现 



本质上智能资产是一个密码学协议。这里详细思考一个例子。假设我们以现有的比特币区块链作为基础设施,将一辆汽车变成智能资产,要做哪几件事情?人物设定如下:买家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就可以拥有并使用这辆车了。 

智能资产的行为取决于智能合约。智能合约则需要考虑各种应用场景。上述仅为两个基本场景,实际上智能资产能够支持租赁、分期付款、抵押贷款、无偿定期出借等各种应用场景,进一步的精致设计应能支持使用权分级、定期使用权回收、权限禁止等。这些应用的设计,实际上是精致的密码学协议与智能设备控制系统之间的巧妙融合,这将是未来区块链+物联网开发的主要内容。