浅谈区块链(上):区块链探究

随着比特币的兴起,区块链正在成为席卷互联网和传统经济界的一股浪潮。全球领先的信息技术研究和顾问公司Gartner于近日发布了《2017十大技术趋势》报告[1],也提及了区块链和分布式记账技术,已经成为很多技术性创新科技公司战略布局时的权威参考。

1

一、什么是区块链

“区块链”最初是由一位化名中本聪的人为比特币(一种数字货币)设计出的一种特殊的数据库技术[2],它基于密码学中的椭圆曲线数字签名算法(ECDSA)来实现去中心化的P2P系统设计。区块链是一种分布式记账系统,每个块链接到前一个块,使用加密的信任和保证机制,在对等网络进行记录。

区块链分布式记账不仅是被动式数据记录,同时能够有选择性地为事件增加动态预置行为,在不可信环境中增加信任的机制。同时,区块链和分布式账本概念也正在改变其他行业的运营模式,从以金融服务行业为主,逐渐扩展到了物流、音乐发行、身份验证、所有权登记和供应链等其他领域。

区块链的层叠结构如下图所示:

2

二、区块链技术原理

区块链技术主要包括P2P通信技术、密码学原理和数学应用等。区块链通过去中心化和去信任的方式,集体维护一个可靠数据库的技术方案。该技术方案让参与系统中的任意多个节点,把一段时间系统内全部信息交流的数据,通过密码学算法计算并记录到一个数据块中,生成该数据块的指纹用于链接下个数据块和校验,系统所有参与节点共同验证记录是否为真。

传统的网络技术中,网络的计算能力和宽带是依赖、聚集在较少的几台服务器上,即中心化网络。随着P2P技术的发展,网络拓扑结构发生了改变,没有了中心化、权利化的服务器,资源信息数据等在每台PC之间可以共享,每一台PC都是一个节点。区块链的存储是基于P2P协议的分布式网络,避免对中心化服务器的依赖,提供一个更为公平的网络运行环境[3]

34

而在密码学、数学方面,主要技术在于在区块头中存储了前一区块的哈希,通过这个哈希将不同区块链链接起来。这个值也确保了每一个新区块是建立在前一个可靠区块之上。时间戳记录了区块链接到主链上的时间,这是由区块创建者输入的。所有区块是按照时间顺序依次排列的。随机数是通过共识算法设计的数学问题的解。挖矿过程就是在寻找这个随机数,第一个找到随机数的节点成为这个区块的创建者。目标哈希是对当前区块的哈希值,确保区块内容不被篡改[4]

5

区块链共识机制中使用Merkle根作为比特币的重要数据结构,其作用是快速归纳和校验区块数据的存在性和完整性。Merkle根实际是对有所有交易信息进行的hash运算,通过在区块头中存储hash值,可以允许节点在不读取区块体信息的前提下完成交易,降低区块链验证所需的带宽和时间,使得仅保存部分相关区块链数据的轻量级客户端成为可能。
区块体中存储了每一笔交易记录的具体信息,包括了生成时间、引用交易的哈希值、交易记录索引编号、比特币支出地址、支出地址数量等细节。每一比收支交易记录都有一个Merkle节点值,这个hash节点值是整个Merkle树的一部分,决定了每一个地址都不能重复交易和被伪造[5]

由于每一个区块的块头都包含了前一个区块的交易信息压缩值,这就使得从创世块(第一个区块)到当前区块连接在一起形成了一条长链。如果不知道前一区块的“交易缩影”值,就没有办法生成当前区块,因此每个区块必定按时间顺序跟随在前一个区块之后。这种所有区块包含前一个区块引用的结构让现存的区块集合形成了一条数据长链。

6

“区块+链”的结构为我们提供了一个数据库的完整历史。从第一个区块开始,到最新产生的区块为止,区块链上存储了系统全部的历史数据。区块链为我们提供了数据库内每一笔数据的查找功能。区块链上的每一条交易数据,都可以通过“区块链”的结构追本溯源,一笔一笔进行验证。“区块 + 链 = 时间戳”,这是区块链的最大创新点。区块链数据库让全网的记录者在每一个区块中都盖上一个时间戳来记账,表示这个信息是该时间写入的,由此形成了一个不可篡改、不可伪造、可追踪的数据记录。

三、区块链技术优缺点

1.区块链优点

1)分布式高可用

区块链采用分布式和去中心化技术,不需要有一个类似银行的机构来为双方交易提供信任和担保。从区块链系统的架构看,每个系统参与方都是一个异地多活节点,远超“两地三中心”的冗余度,是天生的多活系统。每一个全节点都会维护一个完整的数据副本,并且这些数据副本还在不同实体的控制之下,数据通过共识算法保持高度一致。

2)不可篡改

在传统信息系统的安全方案中,安全依赖于层层设防的访问控制。和银行金库类似,高价值的数据一直在专用机房、专有网络和全方位的安全软件组成的严密防护之下,访问接口则是一个个专用进出通道。任何人都必须通过身份认证、鉴权,才能由专用通道进入数据库,读取或者写入数据,并留下历史记录。

保护财产安全,通常有两种途径:藏起来,只有所有者才能拿到,比如黄金;对外宣布财产的所有权,并以法律做背书,比如房产。传统安全方案是第一种思路,区块链则是第二种。通过区块链技术,记录交易的数据库任何人都可以共享。但由于巧妙的设计并辅以密码学和共识算法,同时每个新产生的区块严格按照时间线形顺序推进,时间的不可逆性导致任何试图篡改区块链数据信息的行为都很容易被追溯,被其他节点排斥,可以限制非法行为。实践证明,这样一个数据库可以确保市值达百亿美元的比特币在全球黑客的攻击下,运转稳定。

3)可编程性

智能合约具有透明可信、自动执行、强制履约的优点,由尼克·萨博1993年提出[6]。但智能合约始终停留在理念层面,长久以来没有支持可信代码运行的环境,无法实现自动强制执行。区块链第一次让智能合约的构想成为现实。智能合约一旦被部署到区块链上,程序的代码和数据就是公开透明的,无法被篡改,并且一定会按照预先定义的逻辑去执行,产生预期中的结果。

4)新型高效协作机制

对于大规模多边协作,在区块链应用之前,通常只有两种解决方法:

其一,在多个主体之间向上寻找共同的“上级”机构,由共同的信任中心对整个组织进行协调。这种方法的局限在于,在某些场景中,很难找到一个所有市场参与方共同认可的信任中心;对于一个中心而言,协调事项必然有优先级,不一定能够及时、有效地满足所有协作需求。

其二,通过共同组建一个第三方机构,即所有参与方通过让渡部分权利,共同组建一个第三方机构来完成协作。这种方法的局限在于,第三方机构往往都具有独立性,若制度不能满足其营利和管理需要,第三方机构往往能够成为各参与方的实际权力中心;在第三方机构成立之后,如何吸纳新的成员,如何随着情况发展变化调整各参与方的角色和权力,这些都依赖于大量的谈判和交易。

2.区块链缺点

1)不可撤销

不可撤销既是优点也是缺点,在区块链里没有撤销机制,对区块链的数据变动几乎无能为力。如果转账地址填错,会直接造成永久损失且无法撤销;如果丢失密钥也一样会造成永久损失无法挽回。

2)隐私问题

区块链是分布式的,每个人手上都有一份完整的数据拷贝。由于区块链计算余额、验证交易有效性等等都需要追溯每一笔账,因此交易数据都是公开透明的,如果知道某个人的账户,就能知道他的所有财富和每一笔交易。传统上数据是保存在中心服务器上的,由系统运营方负责保护数据隐私。但在公有链中,没有中心化的运营方,每一个参与者都能够获得完整的数据备份,这也意味着公有链的数据库是透明的。

3)数据膨胀问题

就像前面说的,每个人都有一份完整账本,并且有时需要追溯每一笔记录,因此随着时间推进,交易数据超大的时候,就会有性能问题,如第一次使用需要下载历史上所有交易记录才能正常工作,每次交易为了验证你确实拥有足够的钱而需要追溯历史每一笔交易来计算余额。虽然可以通过一些技术手段(如索引)来缓解性能问题,但问题还是明显存在的。

4)交易延迟

区块链的交易是存在延迟性的,拿比特币举例,当前产生的交易的有效性受网络传输影响,因为要被网络上大多数节点得知这笔交易,还要等到下一个记账周期(比特币控制在10分钟左右),也就是要被大多数节点认可这笔交易。还受一个小概率事件影响,就是当网络上同时有2个或以上节点竞争到记账权力,那么在网络中就会产生2个或以上的区块链分支,这时候到底那个分支记录的数据是有效的,则要再等下一个记账周期,最终由最长的区块链分支来决定。因此区块链的交易数据是有延迟性的。

5)升级修复机制有待探索

与中心化系统的升级方式不同,在公有链中,因为节点数量庞大,参与者身份匿名,不可能关闭系统集中进行升级。在具体实践中,公有链社区摸索出了“硬分叉”和“软分叉”等升级机制,但遗留问题有待观察。此外,由于公有链不能“关停”,其错误修复也异常棘手,一旦出现问题,尤其是安全漏洞,将非常致命。

通过放松去中心化这个限制条件,很多问题能找到解决的方案。比如,在联盟链这样的多中心系统中,通过关闭系统来修复区块链底层缺陷、回滚数据等,必要时都是可用的手段,这些手段有助于控制风险、纠正错误。而对于常规代码升级,可以通过分离代码和数据,结合多层次的智能合约,实现可控的智能合约更新。

结束语

区块链在学术界和工业界逐渐被重视,并尝试产生各种去中心化应用。区块链有自身的独特优势,区块链技术解决了建立共识的难题,在依靠信任关系建立起来的中心化系统下,区块链技术能够提高信任关系中的可追溯性。同时,区块链技术发展还不够完善,大家正在努力克服区块链自身的不足,试图在更多领域中得到广泛应用。

参考文献

[1] 田倩飞. Gartner提出2017年与2018年十大物联网技术[J]. 科研信息化技术与应用, 2016, 7(2).

[2] BLOCKCHAIN[J]. Itnow, 2016.

[3] 赵宝艳. P2P技术[J]. 电信工程技术与标准化, 2007, 20(4):77-79.

[4] 魏尚北, 牛超. 密码学的区块链技术在电子货币交易中的应用研究[J]. 科技创新与生产力, 2016(9):95-96.

[5] 吴思进, 王志文. 区块链的数据对比及共识方法: CN105719185A[P]. 2016.

[6] 王春宇, 张守坤. 智能合约与金融合约[J]. 商, 2016(6):198-198.

Comments 1

发表评论

电子邮件地址不会被公开。 必填项已用*标注