微信扫一扫,关注公众号

  • 科技行者

  • 算力行者

见证连接与计算的「力量」

首页 区块链凭什么改变这个世界?从它的工作原理谈起

区块链凭什么改变这个世界?从它的工作原理谈起

2018-02-01 15:16
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-
2018-02-01 15:16 CNET科技行者

比特币曾被视为一种“惊世骇俗”的产物,然而现在整个世界都在为之疯狂。

区块链凭什么改变这个世界?从它的工作原理谈起

在最终热度下降后,哪套区块链平台能够继续存在,而哪些将永远消失?为了做出准确的预测,我们必须需要弄清区块链技术的真正含义及其功能。而从最符合逻辑的角度出发,比特币无疑是最理想的讨论起点。

以比特币为例谈谈区块链是如何“工作”的?

区块链凭什么改变这个世界?从它的工作原理谈起

2009年,一位匿名黑客(也可能是一群黑客)以中本聪的名义发布了第一种真正意义上的数字化货币。这项技术的工作原理在于,以此为基础,金钱将仅仅是一种财会工具——或者说一种抽象价值、所有权分配以及交易手段的提供方法。

从历史角度来看,上述任务都需要由现金来完成。只要拥有物理钱币,就相当于拥有了所有权,交易将能够在不同个人之间以谈判方式完成。只要现金的复制难度够高,就不需要完整说明哪个人拥有哪部分货币的供应量,或者不同持有人是否曾经使用过同一张50元钞票。

然而,如果能够将账单上的每一份人员清单拼凑起来,我们就会发现各列表之间的物理表现将变得毫无必要。因为银行与支付处理商已经通过追踪并处理封闭系统之内的交易活动,将我们的一部分实体货币转化为数字记录。

对此,比特币通过建立单一的通用型数字化分类账目(即所谓区块链)完成了这种转型。由于只有最后加入的新信息才能做出改变,因此其结构被视为一种“链”。每一个新近添加的环(或者说区块)都包含着一组新的交易,而这些交易都将参考以往的交易链进行。举例来说,如果C向D支付了一个比特币,且此项交易存在于这条链的末端,那么其另一端则指向B向C支付的这个比特币,再向前回溯则是A向B支付了这个比特币……以此类推。

与传统金融机构所维护的分类账有所不同,比特币的区块链会被复制至全球各联网计算机之上,任何拥有计算机与互联网连接资源的人都可以进行访问。

在这个网络中,还有一类参与者被称为“矿工”,其职责是负责检测来自用户的交易请求,并对相关信息进行汇总、验证从而作为新区块添加到区块链之内。

所谓验证,就是查验某人手中确实拥有交易所需要的比特币,而且他还没有在别处花费过该比特币。比特币区块链的所有权由一对密钥确定:第一个叫做公钥,在区块链中可供任何人查看;第二个被称为私钥,由区块链的真正拥有者将其严格保密起来。这两个密钥之间存在一种特殊的数学关系,从而确保二者能够合并为有用的签名数字信息。

下面来看具体工作原理:如上面的例子中,C收到了一条消息,并将其和自己的私钥结合起来,在经过一系列计算后即可得到一条很长的数字。任何拥有原始信息并掌握相应公钥的人,都可以利用自己的计算过程来证明这条很长的数字实际上正是用正确的私钥创建而成。

需要说明的是,在比特币当中,交易签名所使用的私钥来自该比特币最近进行支付时所对应的公钥。而当交易处理完成之后,这些比特币将被分配以一个新的公钥。

在这个过程中,“矿工”们的主要作用在于确保新交易的不可逆性,从而保证其作为最终结果且不可能受到篡改。

而只有当我们邀请任何及每个人参与分类账时,才能确保整个区块链的不可逆转性。如果比特币区块链由在某一司法管辖区之内的单一银行中,已知验证人负责运营,那么以强制性的方式来保障交易结果将变得非常简单,并且任何不遵守规则的人都将无所遁形。

不过在比特币中,并不存在中央机构执行这些规则。在中国、东欧、冰岛以及委内瑞拉等地,各类“采矿”公司受到不同文化的驱使,以不同的法律制度与监管要求为依托在全球范围内匿名运作。这意味着除了比特币代码本身,再没有其它证据能够证明其存在,更遑论追究其责任。为了确保正确的使用行为,比特币采用了所谓的工作证明(proof of work)方案。

proof of work)如何确保区块链正常运作?

首先,先具体分析一下公共区块链试图通过工作证明所解决的问题。在这套开放的点对点网络当中,“矿工”会接收到交易消息并进行收集以创建新的区块。他们这样做其实是在相互竞争,因为第一个创建出一个有效区块的人才能获得报酬(比特币)。在这种情况下,重点就在于要如何阻止“矿工”删除刚刚被添加到区块链中的区块。这种做法虽然无法实现比特币窃取,但却可以多次使用同一枚比特币。举例来说,我可以前往某不知名的商家,用比特币购买一杯咖啡。如果我是“矿工”,就可以在之后进入自有版本的比特币区块链,取消这笔交易,并将修改后的区块链发送给我的同行——这意味着看似花出的比特币又重新存入了我自己的口袋。

为了避免这样的情况,比特币网络上的所有“矿工”都拥有相同的区块链副本,且所有变更与交易皆不可逆转。同时,为了让所有参与者保持同步,比特币“采矿”软件对于计算资源或者说电力的要求极其之高。因为只有这样,其才能完成新区块添加乃至成本更为高昂的在记录中更改区块等操作。

此外,任何试图添加新区块的“矿工”也必须提供密码证明。而为了生成证明,“矿工”需要通过多轮哈希函数来消化新区块。多轮哈希函数是一种计算过程,它能够接收任意长度的数据块,并将其简化为一条固定长度且无特定含义的,由字母以及数字组成的字符串——这就是哈希值。为了使这一过程更为困难,区块链中还要求所产生的哈希值以一定数量的零作为开头。其中的难点在于,我们无法预测任何给定的数据集将以怎样的哈希值呈现,因此矿工需要在验证过的区块上反复执行计算,并每次在数据集中插入一个随机数。当该数字被改变时,也将产生与之对应的新哈希值结果。而只有当最后的“矿工”在得到正确数量的零时,他们的任务才算完成。

第一个找到符合要求的哈希值的“矿工”会向其他“矿工”宣布这个新的区块,然后由后者对其进行检查并将其添加至计算机上所存储的完整版区块链上。为了完成所有这些工作,“矿工”们会收取新的比特币及其它“采矿”费作为奖励。

我们将哈希值视为锁定链上某一特定区块的方法。举个更为形象的例子:假如你拥有一把需要钥匙才能关上的锁,同时还拥有大量可供使用的钥匙,但不知道哪一把能够与该锁相匹配,则必须一一尝试。当最终找到正确的钥匙时,你可以将其插入锁中,以供任何人检查这种匹配的正确性。

从理论上讲,这项工作与“矿工”收到的回报属于对良好行为的激励。比特币“矿工”会大量投资于这套服务网络——具体形式包括提供计算资源以及购买硬件等等。因此,其中的基本思路在于,他们不应采取任何可能导致货币完整性受损或贬值的行为(包括进行双重支付等任何行为)。

这类操作还面临着另外一种保护机制的约束,因为对旧有区块内容的变更成本将被添加至区块链内各个新区块的创建当中。在创建一个新区块时,其中将包含之前的区块。旧有区块发生的任何变更都将导致一切后续区块的哈希值无效化。因此,我们不可能将经过伪造的区块插入原有区块当中,而无需重复该区块之后已经执行完毕的一切工作。正如之前提到的开锁比喻,最后一把锁的设计取决于之前的所有锁,因此改变区块链当中的任何一把锁都意味着必须为之后的每一把锁找到新的钥匙。

通过这种强迫“矿工”提供昂贵的证据,并为其工作成果提供报酬,中本聪建立起了第一种具备实际可行性的点对点数字货币。但除此之外,他还解决了另一个困扰了计算机科学家们几十年的问题——一致性。比特币在过去8年当中从未下线,这意味着其找到了一种激励可能不可信的参与者处理交易,从而获取可靠结果的途径。其结果就是,任何拥有互联网连接的人都能够查看及添加数据链,而且基本不会受到攻击活动的影响。

如何在其它领域应用区块链技术?

区块链凭什么改变这个世界?从它的工作原理谈起

前文提到的Ethereum是2013年多伦多一位19岁的计算机专业学生Vitalik Buterin设计的,其目的就在于延续比特币在货币领域的成果,同时将其扩展到其它领域当中。

Ethereum自己的货币以太币与比特币不同的是,Ethereum用户交易被称为智能合约——一种迷你程序,其可配合无限的复杂度水平进行编写。此后,用户能够通过向程序发送加载有指令的交易,从而与其他“矿工”进行往来与交互。

在实际应用当中,这意味着任何人都能够将软件程序嵌入到交易当中,并确保其在区块链的使用期限之内不会发生改变或访问。从理论上讲,Ethereum可以带来足以取代Facebook、Twitter、优步、Spotify乃至其它任何数字化服务的方案。这些新版本对于审计人员而言将是完美、完全透明,并且能在没有创建者参与的前提下无限期运行。

什么是许可分类账?

就在Buterin试图利用区块链技术打造一套延伸至全世界的超级计算机时,另一种趋势则将这项技术推向了另一个方向——即迈向中本聪本人更推崇的封闭与可控迭代道路。

2014年9月,包括巴克莱、高盛以及摩根大通在内的多家金融机构共同组成了R3联盟,旨在探索如何通过区块链技术提升银行之间的支付效率。

这些机构意识到,像比特币与以太币这样的区块链开放结构与他们自身的需求显然背道而驰。加密货币所关注的主要是用户匿名性,这些用户会在开放区块链上以字母加数字组成的公开地址表示,且不具备任何能够提供其真实身份的指示。而包括美国在内的多个国家的银行业法律都禁止这种匿名性。

从法律层面考虑,金融机构有理由保护客户数据,并控制这类数据流出至其它国家或地区。鉴于公开区块链网络中的每台计算机都会复制整条交易记录,因此在使用这些交易记录链时根本不可能遵循监管机构所提出的要求。

因此,区块链技术中的“许可分类账”方法应运而生。即在被许可的分类账当中,添加该区块者的身份是已知的,且系统中的数据只能由选定人员查看。由于创建新区块的权利是由运行代码的人员,而非随机分配机制决定,因此不需要投入工作量来提供进行“采矿”或支付加密货币的工作证明。

这类系统适用于区块链之上各参与者之间信任程度较低,但希望模拟中立第三方服务的情况(如银行在进行国际电汇结算时)。

就在2016年,R3联盟发布了第一套许可分类账方案Corda。不过短短数月,Corda迎来了自己的竞争对手——脱离R3联盟的摩根大通也发布了自己的许可分类账Quorum。

目前,许可分类账方法同样超越了银行与金融机构,逐步向其它行业当中扩展,特别是那些需要负责监管客户敏感数据的领域。其中许多相关项目由Hyperledger提供的工具所构建。(HyperLedger目前主要为希望使用智能合约,但却对Ethereum及比特币等开放式区块链持犹豫态度的企业开发产品。)

那么,智能合约将如何起效?

无论区块链技术最终如何呈现,运行在其上的智能合约都需要各类支持技术作为依托。这些补充性技术目前正在借助区块链的热度快速发展,并对区块链技术本身的发展产生至关重要的影响。

康奈尔大学IC3协调人Ari Juels表示:“一旦获得了智能合约,就会面对一系列问题。”这些问题主要分为以下几类:

首先,区块链无法存储大量数据。对于多数项目而言,这显然是个问题。例如有人建议利用区块链技术进行视频实况转播,但其根本无法容纳庞大的视频数据。

其次,将智能合约放在区块链上的另一个问题在于,区块链本身并不清楚现实世界中发生了什么。如果您的智能合约是一套航空保险系统,那么其必须了解我们的航班何时起飞与着陆。然而,区块链技术在设计层面就从来不具备查询网站的能力。因此,它对于外部世界的一切了解都需要主动进行注入。

在理想情况下,开发者们将为区块链设计出数据存储与访问方案(但需要注意的是千万不能重新引入原本就存在的缺陷,尤其是最不可靠的对象——人类。)毕竟区块链诞生的初衷就是为了彻底屏蔽人为接触。要实现这一点,开发人员必须对“可信方”这一概念作出充分的考量与探索。

静态数据的存储问题可以通过分布式文件共享服务来解决,例如使用Protocols Labs打造的Interplanetary数据库或者Storj Labs的去中心化云存储系统。这些系统已经帮助世界各地的人们为自己的磁盘腾出更多剩余空间,相信其也将适用于基于区块链技术的智能合约系统。因为其中的数据将始终以冗余方式存储在世界各地的多台计算机之上,从而实现始终可用且难以追踪等属性。

至于将实时数据导入区块链,则可使用区块链开发者们所谓的“oracles”实现。这些服务能够以可靠的方式查询实时数据源,并将其交付至区块链上以完成馈送。

在IC3,Juels已经实现了一款名为Town Crier的自动化oracle。其负责确保被注入至区块链当中的数据来自可信来源,且未经任何篡改。其使用英特尔处理器上的“受信软件”芯片。这些芯片运行加密盾之后的代码,但仍可证明该程序在按照既定方式执行。

区块链技术的融资潜力来自哪里?

一家专门用于区块链技术研发的新基金公司Placeholder的创始人Joel Monegro表示:“金钱不是万恶之源,公平才是万恶之源。”

区块链初创企业经常引用他的论点,认为应该为企业创始人及员工分配股权以鼓励他们囤积财富,而非改善产品。

在另一方面,特定于某种应用的加密货币已经不再是金融工具,而仅仅属于获取技术的手段。随之而来的是,使用该项服务的人越多,访问该服务所需要的货币就越有市场。

Hacera的Levi总结称,“时代已经改变,而且变化速度很快。我们中的有些尝鲜者在三、四年之前还两手空空,但凭借着自己的信念与加密货币市场的旺盛发展,如今获得了可观的财富。我们仍然需要进一步扩大以太币与Ethereum的运作模式,而企业则需要更多地分散并保护其敏感数据。我们目前正面临着一种新的、不同类型的挑战:考虑到已经投入的巨额资金,不知道还会有多少前辈与新的愿意坚持事业、继续努力,从而利用这些改变了其自身的技术进一步改变世界。

编译整理:科技行者

分享至
0赞

好文章,需要你的鼓励

推荐文章
----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.- ----..---.-...-/--...-.-......./-...-....-..--../-............-.-