1703869229
区块链技术驱动金融:数字货币与智能合约技术 11.1 区块链作为去中心化的工具
1703869230
1703869231
在比特币之前,有很多数字电子货币失败的尝试(本书的前言中提到了许多失败的案例)。比特币与大多数失败的尝试之间,最重要的区别在于去中心化。比特币去中心化的核心创新方法是使用区块链。
1703869232
1703869233
在这一节,我们会研究区块链技术如何在货币体系以外的领域里实现去中心化。本章我们会一直重复使用汽车的案例,这辆车的所有权是通过区块链来控制的。这个案例是我们在第9章中介绍的智能合约的概念里的具体体现。早在1990年年初,尼克·萨博(Nick Szabo)和其他几位创新性提出智能资产和管理智能资产的数字化合约,远远早于比特币。随着区块链的出现,这个想法变得越来越现实和具体。
1703869234
1703869235
令人鼓舞的案例
1703869236
1703869237
当代的汽车使用两种主要的加锁机制(locking mechanisms):门上的物理锁和通过电子锁住引擎不让发动的制动器。用户用遥控钥匙可以与汽车无线通信,根据遥控器与车的距离或者用户按下按钮的特定动作,来解锁车门和发动引擎。
1703869238
1703869239
为了防止假冒钥匙入侵,车钥匙的解锁机制需要加密。虽然安全专家发现很多最近使用的加锁机制存在很多问题,但是他们是有可能处理好这些问题的。一般来说,这些算法会使用对称钥匙加密技术。在我们这个案例中,用的是基于非对称加密技术的类似椭圆曲线数字签名算法的数字签名技术。
1703869240
1703869241
在这个例子里,汽车储存了一份遥控器的公开密钥,用于打开车门和发动引擎。当遥控器请求开门的时候,汽车发送回随机数并要求遥控器用它储存的密钥签名。只有遥控器准确回复签名,车门才会被打开。到目前为止,这个原理和实际中的防盗机制没有什么大的区别。唯一的区别是,我们使用了很深的加密技术,安装起来比较昂贵。
1703869242
1703869243
实现智能
1703869244
1703869245
这次设计的智能汽车,是假设用来验证遥控器的公开密钥并不是靠汽车制造商永久地记录在汽车里;而是,智能汽车技术上可以不间断地,无线接收例如比特币一样的区块链上的新区块。当汽车在组装厂组装的时候,遥控器里第一个用户(比如组装厂的经理)的公开密钥通过特殊操作加入区块链。同时,这辆智能汽车也把该特殊操作的ID写入它自带的程序。
1703869246
1703869247
核心的思想是,汽车更改所有权的时候——从装配车厂到质量监控室到运输人员到汽车经销商到第一个所有者——也同时更新到区块链,区块链同时授权每一步的转换。值得注意的是,在这个模式下,授权用的遥控器没有跟着车走。每个人或者公司都有一个预先存在的遥控器(或者带着某种有遥控器功能的仪器)。这个遥控器里面有一个唯一的签名密钥。根据区块链的交易,签名密钥被激活或者被取消拥有这辆车的权利。这样的交易以车最新的交易ID为输入,同时设定一个新的公共密钥为输出ID。汽车目前的拥有者需要用私人密钥在这个输出ID上签名。
1703869248
1703869249
这种设计和我们在第9章讨论的智能资产相似,除了一个重大的区别: 区块链的交易不仅仅表示汽车所有权的变更,它还代表真正的汽车物理拥有权的转移。当汽车通过区块链转移的时候,前车主的遥控器无法工作,新车主的遥控器获得开门和启动引擎的权利。让所有权等同于使用权的技术有着深远的影响,这将促使强有力的去中心化。但是去中心化是否有用,这并不容易看清楚。我们将在11.4节回过头来讨论这个问题。
1703869250
1703869251
安全的交易
1703869252
1703869253
假设爱丽丝拥有一辆智能汽车想卖给鲍勃,能够数字化地转移汽车控制权会引起几个有趣的可能性。比如,爱丽丝也许正在国外旅行正需要钱来支付旅费,所以要卖掉停在她家后院车库的汽车。只要联上互联网,鲍勃就可以用比特币支付给爱丽丝车钱,爱丽丝可以远程通过区块链把车的所有权转移给鲍勃,鲍勃就可以开走这辆车。
1703869254
1703869255
然而,这样的交易存在一定的风险。如果鲍勃先支付,爱丽丝也许收了钱而不转移车的所有权。如果爱丽丝先转移车的所有权,鲍勃也许不付钱就把车开走了。即使假设爱丽丝在现场,也有可能另一方突然改变主意而撤销交易。这时候让不在场的第三方来调解争议也很困难。
1703869256
1703869257
我们之前多次碰到这种问题,包括在合币(第6章)和域名币(第10章)中。解决这类问题要使用同样的原则。只要支付的货币和汽车的拥有权同时存在相同的区块链,爱丽丝和鲍勃就可以产生一个不可分割的交易。这个交易同时转移汽车的所有权和车款。具体地说,这个交易规定两个输入:爱丽丝的所有权和鲍勃的支付款;规定两个输出:归鲍勃的所有权和归爱丽丝的支付款。这个交易需要双方提供输入要素,因此要求双方都要签名。如果只有一方签名,交易就无效。一旦一方签名,交易的细节就无法改变,除非这个签名无效。签过名的交易一旦对整个区块链广播,鲍勃只要等预设的几次确认(一般是6次),就可以拥有这辆车。鲍勃支付给爱丽丝的款项也同时被确认。两个确认是相辅相成,缺一不可的。
1703869258
1703869259
细心的读者也许注意到了一个微妙的问题。鲍勃可以收到爱丽丝签名的交易,自己也签名,但是不立即对外广播。等到爱丽丝卖东西的价格变了,鲍勃才把旧交易用原来的价格对外广播。所以为了避免这种问题,比较复杂的不可分割的交易里包括截止时间。过了截止时间后,爱丽丝可以发送输入她控制下的新地址,用来表示撤回她发给鲍勃的已经签过名的交易。
1703869260
1703869261
这是本章案例之一。我们将会在本章看到,很多其他案例使用区块链技术促使现实中的各种交易程序去中心化,从而达到不同种类的去中心化状态。其中,不可分割性(atomicity)是绝大多数案例共有的特性。也就是说,交易每一方的交割都是联系在一起的,所以它们都同时发生或者都不发生。不可分割性是区块链以外应用程序领域里重要的安全概念。
1703869262
1703869263
1703869264
1703869265
1703869267
区块链技术驱动金融:数字货币与智能合约技术 11.2 通往区块链融合之路
1703869268
1703869269
因为比特币的区块链是专用在货币上的,把它改造为用于表示其他应用是很有挑战性的。在比特币世界里,你会发现有许多人偏爱把比特币或者别的区块链作为去中心化的平台。在本节,我们来分析两种方法。
1703869270
1703869271
方法1:直接在比特币基础上
1703869272
1703869273
区块链融合自然而然的出发点是比特币。这也是我们在前面11.1节智能汽车例子里用的办法。直接使用比特币的好处就是容易实现——代码容易运行,比特币网络有很强的挖矿能力,共识过程没有瑕疵。然而,我们必须在比特币上做些修改才能用于我们的例子。比如,用于授权比特币交易的加密要等同于用于打开车门的加密。有时候对比特币的修改是不可能的,而且从根本上说,如果你有非常复杂的涉及不同方的合约,用比特币的区块链不一定能足够胜任或者不可分割地执行。为了展示用比特币区块链的危险性,我们研究一下如何构建一些中性的非中介化的应用程序。
1703869274
1703869275
首先,我们来研究众筹服务。在2015年,最广泛使用的众筹网站是Kickstarter, 它通过一个中心化的网站,连接了创业者和资金提供方。我们欣赏Kickstarter的想法,但希望通过建造一个完全去中心化的替代系统。这个系统需要让创业者能要求投资人捐款,但是在收到一定预先设定数额之前,创业者不能花掉任何一分钱。所有的这些都是没有中介的。
1703869276
1703869277
用比特币的技术实现这样的众筹服务,需要创业者创建一个特定输入的交易(输入数可以随着进程而改变)和一个支付给自己的输出,比如支付1 000个比特币(BTC)。这个交易将在潜在的资助者中流传。任何资助者都可以把资助额加在交易的输入上,并且数字化签名他们的输入和总输出。只有到所有输入等于或者大于输出的时候,创业者才能取得这笔交易的所有输入(见图11.1)。因为签名形式有限,我们要用到比特币一些鲜为人知的功能,才能花掉最后的交易额。虽然这在当今的比特币系统能做到,但是我们必须钻研到比特币里很少人知道的角落。这并不是一个日常见到的标准比特币交易。
[
上一页 ]
[ :1.703869228e+09 ]
[
下一页 ]