区块链技术简介及其意义



  • 现在谈论区块链的意义有点像在八十年代谈论互联网的意义一样,最难回答的问题可能是“有什么用?”。

    1. 序言

    要理解区块链的重要性,不妨回顾一下TCP/IP的历史意义。TCP/IP是现在互联网通信的基础,在七十年代出现的时候没人预测到它会带来一场网络革命。当时数字通信需要先通过中心管理建立固定的路线(物理层次或虚拟的线路交换—physical or virtual circuit switching),然后数据块在固定的路线上流通。TCP/IP去除了中心建立路线的要求,每一个数据块可以独立地在网络的不同路径上流通,只要最终到达目的地就行。这样没有固定路线的通信效率是很低的,在当时网络速度很慢的情况下可以说是不得已而为,其优点是去除中心化管理,避免了中心管理带来的复杂性和不稳定性,让网络可以自生自长。而正是这一优点带来了互联网革命,从一开始几十个连结点发展到现在几十亿个连结点,遍布世界各个角落。区块链的去中心化和TCP/IP有异曲同工之妙,去除了中心系统带来的可能受人为操纵的不可靠性,用科学的方法建立了一个让互不信任的各方可以信赖的信息资源交流平台。

    现在谈论区块链的意义有点像在八十年代谈论互联网的意义一样,最难回答的问题可能是“有什么用?”。在当时个人没有电脑、不知上网为何物的情况下,需要天才级的想象力才能预测到现在的网站、网购、微信等等应用,想象到了也是非常模糊的,与最终的实现相差很远。同样,现在谈论区块链的应用也需要一些想象力,肯定有一些是不切实际或与最终实现相差很远的。下面,我们先介绍区块链技术及实现方案,然后介绍区块链在“信息资源管理和流通”上的一些应用。希望在此过程,读者能对区块链技术及其意义形成更加清晰的认识。本文不是技术文章,讨论将着重概念,不求技术细节。

    1. 区块链技术简介

    2.1什么是区块链?

    区块链是一连串按时间排序的数据块,用于记录各种信息资源及其交易的信息。每一个数据块含有一个数字指纹,是从本数据块以及前一个数据块的数字指纹按标准的哈希(Hash)函数计算出来的一个独一无二的数字序列。如果改变任何一个数据块,就必须修改本块以及之后所有数据块的数字指纹,否则就会被发现。区块链分布于网络中各个节点中。因此,除非控制了大部分节点,区块链中的记录是不能修改的。信息资源可以是各种各样的。如果代表的是财产或物资,交易可以是从一个拥有者转给另一个拥有者;如果代表的是事实数据,交易可以是一方或多方的认证,或从一方传送给另一方的证据。每一个交易都带有一个或多个不可否认的数字签名,以此代表财产或数据拥有者的授权,并保证交易数据不能被修改。下面首先介绍出现于七十年代的公私钥的加密和数字签名技术。

    2.2数字交易和数字签名

    传统的的交易一般是在标明有拥有者甲方名字的财产证书上写上转移对象乙方的名字,然后甲方在证书上签名或按指纹印。数字交易也是同样的过程(读者可以跳过下面的技术描述,只需记住数字交易也可以在文件上加上乙方的数字标识号和甲方的数字签名,并且,加上数字签名的文件是不可能修改的)。首先,每个人/或个体必须从权威机构得到一对包含数字和字母的符号序列,其中一个序列称为公钥,是代表个体的公开且独一无二的标识号;另一个序列称为私钥,是只有个体知道且必须严格保密的。在有些应用中,如果个体必须出示自己身份的证明,权威机构可以发给个体一个数字身份证,其中包含有上述的公钥,还有经过权威机构验证过的身份信息如姓名地址等。数字身份证还包含发证机构的名称和数字签名,是无法修改或造假的。相对应的公钥和私钥有一个特点,用私钥加密的数据只能用公钥解密,反之也然。下面以甲方把财产证书转移给乙方为例来说明数字交易的过程。财产证书包含有一系列公钥作为以前所有拥有者的标识号,最后的公钥代表现在的拥有者甲方。为了把财产证书转移给乙方,甲方把乙方的公钥加到财产证书上,然后用一个标准的数学函数(Hash-哈希函数)对整个文件产生一个固定长度的符号序列,这一序列如同数字指纹一样对于该文件来说是独一无二的,哪怕改变文件中一个字母,产生出来的指纹就不一样。甲方再用自己的私钥对数字指纹进行加密,加密后的序列就是甲方的数字签名。这样,含有乙方公钥的财产证书以及甲方的数字签名就构成了新的属于乙方的财产证书。任何一方可以用以下步骤验证财产证书和签名的真实性:

    用上面提到的标准的哈希函数对财产证书产生一个数字序列;

    用证书中前一个公钥对数字签名解密得到另一个序列;

    如果这两个序列等同就证明了以下事实:财产证书没有被修改过,签名是前一个拥有者甲方用私钥产生的。

    2.3中心交易系统的必要性

    完整的数字交易还必须解决另一个问题,防止甲方重复消费(double-spending)—把同一个财产转给多个个体。比如,上述乙方在收到新的财产证书后,没法断定在此之前甲方是否已经把财产转给了丙方。传统上,所有交易都是通过一个交易中心完成的(比如银行或股票交易所)。甲方把签了名的新的财产证书送给中心系统,该系统从一本中心账本查阅该财产的拥有者是否为甲方,如果是,就把新的财产证书传给乙方,并在中心账本上把拥有者改为乙方。如果甲方企图再次把财产转给其他人,就会遭到系统的拒绝。注意,新的财产证书必须是从中心系统发出来才是可信的。任何财产证书的有效性也必须通过中心系统来验证。中心系统的问题是可能受到人为的非法操纵。如果有人干预中心系统的正规操作,或修改中心账本,将导致交易不能正常进行或蒙受损失。美国经常用金融手段制裁一些国家和企业就是因为控制了美元的交易系统。因此,任何有可能被人为操纵的中心系统原则上都是不可靠的,其可靠性建立在信誉上。区块链去中心化的意义就在于用科学的方法代替人为的信誉。

    2.4分布式区块链的实现

    区块链技术还处于初期发展阶段,存在不同的实现方法,而且还存在许多问题有待解决。下面以比特币的实现方案为参考介绍区块链的运作过程,并以上述甲方把财产证书转让给乙方为例。描述将尽可能使用通俗的概念和术语,有兴趣的读者可以查阅比特币的白皮书[1]。其基本原理是,网上存在多个平等的结算中心,各自维持一本以区块链为基础的账本,然后通过协调达到一个大家公认的最正确的区块链账本。如果有超过半数的中心是按正当规则运行的,整个网络就能成功运行。区块链的运作如下:

    网络上存在多个平等的服务器(计算机)参与交易验证并将交易记录到区块链中,每个服务器称为一个节点(node)。新的节点可以随时加入交易网络,现有的节点也可以随时退出。节点和节点之间是平等的,不存在任何形式的中心控制和管理。比如,现在的比特币交易网络约有一万个节点,遍布世界各地。

    为了使交易网络能成功运行,系统制定了共识规则,正当的节点必须严格遵守这些规则。但没有任何监督和强制执行的机制。整个网络没有寄托于任何一个节点是可信的(即遵守共识规则),但只要超过50%的节点是可信的,网络就能成功运行。区块链的算法设计让遵守规则的节点有利可图,不遵守的不仅浪费钱财(计算资源和电费)而且作假很难得逞。

    如上所述,当甲方在财产证书加上乙方的公钥并签了名之后,把新的财产证书(代表一个交易-transaction, 如果是付款,那将是甲方把一些比特币转给乙方的交易) 送给网上所有的节点。每个节点在收到一个交易后,首先检验其数字签名是否正确,并且在自己维持的区块链中根据以前说有的交易检验该交易是否合法,即甲方是否拥有该财产(如果是付款,是否有足够的资金)。如果检验不通过,就抛弃该交易;如果通过,就放入当前的数据块。注意,一个交易并不需要被所有节点收到,只要有一些节点收到,最终就会被存到大家公认的区块链中。

    当数据块增长到一个数额或时间达到一个期限,节点就开始给数据块计算一个独一无二的数字指纹:在数据块上加一个随机的整数(称为nonce) ,并和上一个数据块的数字指纹结合起来,然后用哈希函数对其计算一个数字序列。为了给计算增加难度,以证明该节点花费了计算功夫(proof-of-work) ,规则要求得到的数字指纹的前几位必须是零。节点需要不断随机地改变整数并重新计算数字指纹,直到前几位是零为止。现在不存在任何算法可以推测正确整数的范围,因此节点只能随机选择并试错。要求的数字指纹的零的位数越多,计算的难度就越大。计算完毕后,节点把数据块和数字指纹发布给所有的节点。

    当一个节点收到一个数据块时,节点首先验证数据块的数字指纹是否正确(注意,搜索和计算合格的指纹需要花费计算功夫,但验证指纹是很简单的计算)。并且验证区块链中所有的交易是否合法。如果检验通过,节点就把收到的数据块加到区块链的末端,并开始新的数据块的工作。

    所有节点都公认最长的区块链是正确的,并在此基础上努力拓展。如果两个节点同时公布的数据块内容不同,其它节点把先收到的数据块加到区块链上,并保留另一个数据块作为分叉备份。如果以后发现备份的区块链发展更长,节点就转移到更长的区块链。注意,每一个数据块含有一个顺序递增的序号,由此可以判断相应区块链的长度。如果一个节点发现自己缺了一些数据块,比如刚加入网络, 可以向其它节点索取。

    上述的乙方在收到甲方转让的财产证书后,向所有节点索取各自维持的区块链,并选择一条有超过50%的节点认同的最长的区块链。如果新的财产证书(交易)存在于最长的区块链中,就证明该交易已经被大多数节点验证接受了,因此是合法有效的。上述忽略了一些实现的细节,乙方不需取得区块链中所有的数据,只需得到每个数据块中保存检索信息的头部就行,这样大大减少了传输量和时间。

    在上述交易网络中,如果有51%的节点是按照规则正当运作的,交易就能成功并合法地完成。为了防止恶意分子轻易建立大量的节点从事非法运作,上述算法特意给数据块指纹的搜索和计算设置了难度,逼使每个节点都花费计算功夫(proof-of-work)。如果要取得51%的优势,就必须花费整个网络51%的计算资源和电费。仅用51%的虚拟节点(即虚拟IP 地址)而背后只有几台电脑是不可能得逞的。由于每一个数据块的指纹不仅和本块的数据有关,还和前面链接的数据块的指纹有关,如果修改一个数据块,必须重新搜索计算之后所有数据块的指纹。这样企图修改以前的数据就会掉队,要赶上并超过最长的区块链的概率就越来越小(注意,修改后的区块链必须成为最长才会被接受)。交易规则还制定了奖励机制,一个节点如果在公认的最长的区块链上增添一个新的数据块能得到奖励(节点的运作也因此称为挖矿—mining, 比特币网络的奖励是12.5个比特币以及交易方自愿定的小费)。因此有恶意的团体必须选择花费大量计算资源和电费来从事攻击(一般是删掉把钱财已经转移给别人的交易)而且冒着被发现和受到法律惩罚的风险,还是从事正当的运作而得到奖励。比特币网络在全世界已经约有一万个节点,背后存在几十万台电脑,至今还没有出现成功的恶意攻击。然而必须指出,全开放式的交易网络是存在被恶意攻击的风险的,节点越少,风险越高。这些说明区块链技术还有待进一步完善,但并不妨碍其开始实际应用,如同互联网至今还需要不断对抗病毒的问题一样。在一些局部的应用,比如几个团体组成的交易网络,可以限制各方参加的节点的数量并制定更严格的规则,恶意攻击就更难得逞。

    上述以利益交易为例介绍了区块链。但区块链的应用比这广泛的多,还可以应用于各种数字资源的管理和流通,每一个数据块可以存储数据、文件、图像等,交易方的签名可以是有关人员的认证,或者是从一方专递给另一方的证据。数据块中的数据还可以加密,保护隐私。另一种区块链技术(Ethereum,参阅[2]) 允许用交易方定义的程序执行更为复杂的有条件的交易,用于实现能自动执行的智能合同、保险等业务。

    1. 区块链去中心化的意义及一些应用的构想

    区块链技术最重要的意义就在于去除中心管理和控制的必要性,用分布存储、数字签名技术和统计的方法建立一种让互不信任的各方可以信赖的机制,用于记录和交换信息资源。这为许多原来不能实现的应用开辟了途径,并颠覆了一些习以为常的思维方法,其影响是深刻的。比特币是区块链最成功的应用,已经是广为人知了。下面谈论几个有代表性的应用的构想,有助进一步理解区块链的意义。

    食品和生活用品的生产供应链及流通过程的监督记录。原料供应商、生产商、销售商、政府监督部门联合组成一个区块链网络,用区块链实时记录原料供应、生产流程、以及产品库存和流通的信息,为最终的产品提供可以跟踪的历史数据。由于这些团体利益不同,保证了任何一个团体没法控制整个系统而单独修改或删除数据。这有助于保证和提高产品的质量。

    各级政府的资源管理和项目审批过程的监督记录。各级政府控制的地产、矿产等各种自然资源、及其利用和审批过程的各种文件交流和结果;工程项目的招标、投标的各种信息和文件交流、决策及项目结果等等都可以记录到区块链中。甚至项目合同可以通过区块链实现。区块链由全国的各级政府、媒体、民间团体组成网络共同维护,使得任何一方无法单独修改记录。这不仅大大提高政府的行政效率,还提高政府的透明度和信誉,让腐败难以藏身。

    建立全面的个人数字档案。详细的教育和工作经历包括就读学校和学习成绩、工作单位和年薪等,家庭及财产和债务构成,身体健康和医疗的记录,成就、荣誉以及犯罪记录等等。这些信息分布在不同的区块链中,分别由教育系统、就业或税收系统、医疗系统、金融系统、以及执法系统维持。有些敏感数据的所有权属于个人,用个人的公钥加密并且只有个人的私钥才能解密。有些数据的所有权属于个人和有关部门,只有各自的私钥才能解密。个人可以根据要求授权让第三方查阅有关资料。具备这些丰富的、真实且不可修改的数据,申请房贷将成为一个人工智能的决策过程,而交易合同可以通过金融系统的区块链自动实现, 如每月自动从银行账户转移还款数额。可靠又能正当盈利的网络P2P也可能重获生机。医生可以在病人的授权下随时随地查阅所有的健康数据、用药和治疗历史,进而提高治疗的水平。

    1. 结论

    区块链技术去除了容易被人操纵的中心系统的要求,用分布存储、数字签名技术和统计的方法建立了一个让互不信任的各方可以信赖的平台,用于自动记录和交换各种信息资源。这将为社会、经济、和政治的许多机制提供新的思路和新的方法。

    5G,区块链、和人工智能将是实现智能社会重要的组成部分。5G 使万物互联并提供大量数据;区块链使数据有组织、有序的记录下来,并且可信又公平地执行各种社会和经济的行为规则;人工智能是自动化的大脑。当然,这一切都只是构想,还存在许多问题需要解决。互联网从开始实现到深入社会的各个角落大概花了三十年的时间,经历了从量变到质变的过程。区块链技术还处于初期发展阶段,相信今后三十年将会逐步看到它在形成智能社会的贡献。

    参考文献:

    [1] https://bitcoin.org/bitcoin.pdf

    [2] https://github.com/ethereum/wiki/wiki/White-Paper

    2019年11月22日,美国波士顿
    原文出自:https://www.bishijie.com/shendu_66122


Log in to reply