编者按:区块链技术是指通过去中心化的方式集体维护一个可靠数据库的技术方案。发展至今,区块链已经吸收了分布式架构、块链式数据验证与存储、点对点网络协议、加密算法、共识算法、身份认证、智能合约、云计算等多项技术,并在某些领域与大数据、物联网、人工智能等形成交集与合力,成为一种整体技术解决方案的总称。本文节选了汪德嘉博士《身份危机》一书中,现在最火热的话题技术——区块链技术,与大家一起探讨新技术的发展及应用前景。
维基百科中的表述:区块链 (英语:blockchain 或 block chain)是用分布式数据库识别、传播和记载信息的智能化对等网络, 也称为价值互联网。中本聪在2008年,于《比特币白皮书》中提出“区块链”概念,并在2009年创立了比特币社会网络,开发出第一个区块,即“创世区块”。
区块链技术基于去中心化的对等网络,用开源软件把密码学原理、时序数据和共识机制相结合,来保障分布式数据库中各节点的连贯和持续,使信息能即时验证、可追溯、但难以篡改和无法屏蔽,从而创造了一套隐私、高效、安全的共享价值体系。
区块链共享价值体系首先被众多的加密货币效仿,并在工作量证明上和算法上进行了改进,如采用权益证明和SCryptc算法。随后,区块链生态系统在全球不断进化,出现了首次代币发售ICO;智能合约区块链以太坊;“轻所有权、重使用权”的资产代币化共享经济和区块链国家。目前,人们正在利用这一共享价值体系,在各行各业开发去中心化电脑程序(Decentralized applications, Dapp),在全球各地构建去中心化自主组织和去中心化自主社区(Decentralized autonomous society, DAS)。
区块链技术被称为分布式账本技术,具有安全存储数据、信息不可伪造和篡改的特点,可以自动执行智能合约,无需任何中心化机构的审核,能有效解决参与各方的信任问题。区块链具有如下几个特点:
1、去中心化:由于使用分布式核算和存储,不存在中心化的硬件或管理机构,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。
2、开放性:系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。
3、自治性:区块链采用基于协商一致的规范和协议,比如一套公开透明的算法,这使得整个系统中的所有节点能够在去信任的环境自由安全的交换数据,使对人的信任改成了对机器的信任,任何人为的干预不起作用。
4、信息不可篡改:一旦信息经过验证并添加至区块链,就会永久的存储起来,除非能够同时控制住系统中超过51%的节点,否则单个节点上对数据库的修改是无效的,因此区块链的数据稳定性和可靠性极高。
5、匿名性:由于节点之间的交换遵循固定的算法,因此交易对手无须通过公开身份的方式让对方对自己产生信任,此方式对信用的累积非常有帮助。
区块链系统根据应用场景和设计体系的不同,一般分为公有链、联盟链和专有链(见图13-1)。其中:
1、公有链的各个节点可以自由加入和退出网络,并参加链上数据的读写,运行时以扁平的拓扑结构互联互通,网络中不存在任何中心化的服务端节点。
2、联盟链的各个节点通常有与之对应的实体机构组织,通过授权后才能加入与退出网络。各机构组织组成利益相关的联盟,共同维护区块链的健康运转。
3、专有链的各个节点的写入权限收归内部控制,而读取权限可视需求有选择性地对外开放。专有链仍然具备区块链多节点运行的通用结构,适用于特定机构的内部数据管理与审计。
图13-1 区块链的类型及特性
在2016年10月18日由工业和信息化部信息化和软件服务业司指导发布的《中国区块链技术和应用发展白皮书(2016)》中,系统的介绍了当前区块链生态的发展情况。总的来看,区块链完整的发展生态(见图13-2)。
图13-2 区块链的发展生态
1、开源社区:不同于很多其他技术,区块链技术并非发源于科研院所,也不是来自于企业,而是发源于开源社区,并在社区中发展壮大,此后逐渐受到金融机构、IT巨头等机构的关注。目前,具有代表性的区块链开源项目有两类:一类是以比特币、以太坊为代表的源自于技术社区的开源项目。这一类项目主要以公有链为主,大部分项目采用PoW作为共识机制。相应的社区组成包括了开发者、矿工、代币持有者及代币交易平台等。另一类则是由传统企业发起的区块链开源项目,最具代表性的便是Linux基金会于2015年发起的超级账本项目(Hyperledger Project)。
2、产业联盟:随着区块链技术的发展,其在各行业的应用潜力开始受到参与者的关注。为了协调推进区块链技术和应用发展,国内外先后成立各种类型的区块链产业联盟。例如,美国银行、花旗银行、纽约梅隆银行、德意志银行、法国兴业银行、摩根史丹利等国际大型金融机构参加的R3区块链联盟,微众银行、平安银行、招银网络、恒生电子等共同发起成立的金融区块链合作联盟(简称:金联盟)。
3、金融机构:自2015年以来,全球主流金融机构纷纷开始布局区块链,以高盛、摩根大通、瑞银集团为代表的银行业巨头分别成立各自的区块链实验室、发布区块链研究报告或申请区块链专利,并参与投资区块链初创公司。其中,高盛不仅参与投资了区块链创业公司Circle,还在2015年11月提 交了一份专利申请,描述了一种可以用于证券结算系统的全新数字货币“SETLcoin”。美国存管信托和结算公司DTCC、Visa、环球同业银行金融电讯协会SWIFT等金融巨头也相继宣布其区块链战略。其中DTCC于2016年1月发布了名为《拥抱颠覆》的白皮书,呼吁全行业开展协作,利用区块链技术改造传统封闭复杂的金融业结构,使其变得现代化、组织化和简单化。除此之外,上海证券交易所、纳斯达克、纽约证券交易所、芝加哥商品交易所等各国证券交易所也对区块链技术进行了深入的探索。其中,纳斯达克在2015年12月30日宣布通过其基于区块链的交易平台Linq完成了首个证券交易。
4、监管机构:区块链涉及了包括金融在内的多个行业,各国监管机构在区块链技术的发展与落地中势必会发挥重要作用。当前,各国政府对与以比特币为代表的数字货币政策定义不一。但对于区块链技术,各国政府普遍采取积极支持的态度。英国、新加坡政府相继推出了沙盒计划,以促进区块链领域内的创新。中国国内也成立了区块链研究工作组,深入研究区块链技术在金融领域的应用及影响。
5、初创公司:随着区块链技术的发展,区块链领域的初创公司也如雨后春笋般涌现出来。这些初创公司将区块链技术应用到包括金融与非金融在内的多个领域中。其中,金融领域包含支付汇款、智能债券、资产发行与交易后清结算等应用。在非金融领域包括数字存证、物联网、供应链、医疗、公益、文化娱乐等应用。此外,还出现了一些为区块链开发者提供开发平台的技术型公司。
6、投资机构:资金是推动区块链技术发展不可或缺的力量之一,各类投资机构也是区块链生态的重要组成部分。由于区块链技术仍处于较为早期的阶段,风险投资机构则是区块链领域内的主要投资力量。另外,以高盛为代表的传统金融机构在区块链投资领域也占据重要地位。随着区块链技术的快速发展,区块链领域的投资金额一直在成倍的增长。自2009年以来,全球已有数十亿美元的资金投入到区块链行业中。2015年以前,主要的投资主要集中在与比特币相关的企业中,比如矿机芯片、交易平台、支付汇款、钱包服务等相关企业。随着区块链技术的发展,越来越多的资金投入在了区块链技术研发及行业应用上,包括交易后清结算、智能合约、供应链、物联网、医疗、身份认证、数据存证、数据分析等。这些项目相对来说还处于比较早期的阶段。目前为止,区块链领域的投资金额仍处于线性增长阶段。其中,绝大多数的投资都集中在北美,其次是欧洲,最后是亚洲。由于区块链技术发源于欧美,相应的区块链初创公司数量也远高于亚洲。
在《中国区块链技术和应用发展白皮书(2016)》中通过研究分析现有的区块链系统的技术方案和需求,提出了典型的区块链技术架构(见图13-3)。
图13-3 典型的区块链技术架构
共识机制
常用的共识机制主要有PoW、PoS、DPoS、Paxos、PBFT等。另外,基于区块链技术的不同应用场景,以及各种共识机制的特性,建议按照以下维度来评价各种共识机制的技术水平:
合规监管:是否支持超级权限节点对全网节点、数据进行监管。
性能效率:交易达成共识被确认的效率。
资源消耗:共识过程中耗费的CPU、网络输入输出、存储等计算机资源。
容错性:防攻击、防欺诈的能力。
1、PoW:依赖机器进行数学运算来获取记账权,资源消耗相比其他共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。
2、PoS:主要思想是节点记账权的获得难度与节点持有的权益成反比,相对于PoW,一定程度减少了数学运算带来的资源消耗,性能也得到了相应的提升,但依然是基于哈希运算竞争获取记账权的方式,可监管性弱。该共识机制容错性和PoW相同。
3、DPoS:与PoS的主要区别在于节点选举若干代理人,由代理人验 证和记账。其合规监管、性能、资源消耗和容错性与PoS相似。
4、Paxos:是一种基于选举领导者的共识机制,领导者节点拥有绝 对权限,并允许强监管节点参与,性能高,资源消耗低。所有节点一般有 线下准入机制,但选举过程中不允许有作恶节点,不具备容错性。
5、PBFT:与Paxos类似,也是一种采用许可投票、少数服从多数来 选举领导者进行记账的共识机制,但该共识机制允许拜占庭容错。该共识机制允许强监管节点参与,具备权限分级能力,性能更高,耗能更低,该算法每轮记账都会由全网节点共同选举领导者,允许33%的节点作恶,容错性为33%。
数据存储
在区块链技术中,数据以区块的方式永久储存。区块按时间顺序逐个先后生成并连接成链,每一个区块记录了创建期间发生的所有交易信息。区块的数据结构一般分为区块头(header)和区块体(body),如下图所示。其中,区块头用于链接到前一个区块并且通过时间戳特性保证历史数据的完整性;区块体则包含了经过验证的、区块创建过程中产生的所有交易信息(见图13-4)。
图13-4 区块体包含信息
按照数据库的数据结构组织形式来看,一般分为Key-Value型和关系型两种。其中,Key-Value型数据库的数据结构组织形式比较简单,读写性能很高,能支持海量并发读写请求,而且可扩展性强,操作接口简单,支持一些基本的读、写、修改、删除等功能,但不支持复杂的SQL功能和事务性。关系型数据库采用关系模型来组织数据,支持各种SQL功能,功能性强,支持事务性,读写性能一般,可扩展性弱。
按照数据库的部署形式来看,一般分为单机型和分布式两种。其中,单机型数据库保证强一致性和较好的可用性。分布式数据库在物理部署上遵循了分布式架构,能提供高并发的读写性能和容错,有很强的可用性和分区容错性,但由于需要进行数据同步,分布式架构的数据一致性较弱,只能保证最终一致性。
网络协议
区块链网络协议一般采用P2P协议,确保同一网络中的每台计算机彼此对等,各个节点共同提供网络服务,不存在任何“特殊”节点。不同的区块链系统会根据需要制定独自的P2P网络协议,比如比特币有比特币网络协议,以太坊也有自己的网络协议。
加密算法
1、散列(哈希)算法
散列算法也叫数据摘要或者哈希算法,其原理是将一段信息转换成一个固定长度并具备以下特点的字符串:
(1)如果某两段信息是相同的,那么字符也是相同的。
(2)即使两段信息十分相似,但只要是不同的,那么字符串将会十分杂乱随机并且两个字符串之间完全没有关联。
本质上,散列算法的目的不是为了“加密”而是为了抽取“数据特征”,也可以把给定数据的散列值理解为该数据的“指纹信息”。典型的散列算法有MD5、SHA1/SHA2和SM3,下表对比了这些算法的特点(见表13-1)。
表13-1 典型加密算法对比
总体上看,SHA256和SM3这两种算法效率和安全性大致相当,目前区块链主要使用SHA256,国内某些特定业务场景使用国密SM3,亦是比较符合国家安全和监管的选择。但由于不同业务场景的安全性标准有别,未来不排除还需要探索更优算法的可能性。
2、非对称加密算法
非对称加密算法由对应的一对唯一性密钥(即公开密钥和私有密钥) 组成的加密方法。任何获悉用户公钥的人都可用用户的公钥对信息进行加 密与用户实现安全信息交互。由于公钥与私钥之间存在的依存关系,只有用户本身才能解密该信息,任何未受授权用户甚至信息的发送者都无法将此信息解密。
在近代公钥密码系统的研究中,其安全性都是基于难解的可计算问题的,常用的非对称加密算法特点及其比较如下表所示(见表13-2)。
表13-2 典型非对称加密算法对比
隐私保护
目前区块链上传输和存储的数据都是公开可见的,仅通过“伪匿名”的方式对交易双方进行一定的隐私保护。对于某些涉及大量的商业机密和利益的业务场景来说,数据的暴露不符合业务规则和监管要求。目前,业界普遍认为零知识证明、环签名和同态加密等技术比较有希望解决区块链的隐私问题。
智能合约
智能合约可视作一段部署在区块链上可自动运行的程序,其涵盖的范围包括编程语言、编译器、虚拟机、事件、状态机、容错机制等。虚拟机是区块链中智能合约的运行环境。虚拟机不仅被沙箱封装起来,事实上它被完全隔离。也就是说运行在虚拟机内部的代码不能接触到网络、文件系统或者其他进程。甚至智能合约之间也只能进行有限的调用。
智能合约本质上是一段程序,存在出错的可能性,甚至会引发严重问题或连锁反应。需要做好充分的容错机制,通过系统化的手段,结合运行环境隔离,确保合约在有限时间内按预期执行。
区块链与身份认证
互联网虚拟世界正不断与现实世界相交融,普通用户的网络身份也与现实身份逐渐趋同。虚拟身份与现实身份的绑定使得身份价值大大提升,与此同时,也催生了一条以伪造身份为目的谋取利益的黑色产业链。
解决身份伪造类社会问题的关键在于为每一个体创建一个唯一的、且无法篡改的身份识别ID。去中心化的区块链技术为实现虚拟身份提供了一种有效的技术思路。区块链节点可以安全地创建和找回虚拟身份,同行有效地进行信息存储和隐私保护。有关这一部分内容,在“德嘉说”第002期文章《浅谈基于区块链技术的互联网+身份管理体系》一文中已经有过详细阐述,点击回顾。(超链接)
结束:区块链是一种新型去中心化协议,除了能安全地存储比特币交易或其它数据,同时信息不可伪造和篡改,可以自动执行智能合约,无需任何中心化机构的审核,大大降低了现实经济的信任成本与会计成本,重新定义了互联网时代的产权制度!区块链技术已经应用在太多领域,未来还将应用在更多领域中,区块链技术将引领未来财富风暴,带来当前最大的趋势风口!
既然我们已经知道,区块链技术的出现即将在身份认证领域带来颠覆性的变化,那么大家一定想知道在:到底什么是身份认证?身份认证技术应用于哪些场景?常用的身份认证体系有哪些?身份认证相关的法律及协议又有什么呢?敬请期待下期内容!