区块链:区块链简介
区块链简介
区块链(blockchain)作为比特币的底层技术受到了越来越多的关注,其去中心化的分布式数据库存储结构有着广阔的应用场景(疑问?可能会有,到现在为止,还没有看到实际的应用场景)。本文从一下五个方面介绍一下区块链技术:
- 区块链的概念
- 区块链的发展历史
- 区块链的特点
- 区块链的结构
- 区块链的应用
1. 区块链的概念
狭义上讲,区块链是一种按照时间顺序将数据区块以链条的方式组合成特定数据结构,并以密码学的方式保证其不可篡改、不可伪造的去中心化共享总账(Decentralized Shared Ledger),能够安全存储简单的、有先后关系、 能在系统内验证的数据。[1]
简单的讲,区块链就是一个去中心化的分布式数据库,分布式环境中的每一个节点都不能保证可信(疑问?不能保证可信?应该是可以保证可信吧?或者说单独节点都不可信)。数据库中存储的是以时间先后顺序排列的数据区块,每一个区块中保存的是若干条交易记录,运用密码学的方法生成区块以保证其中数据不可篡改、不可伪造、可以验证;以共识算法使全网所有节点(理论上是所有节点)完成对区块的认可。
广义上讲,区块链技术是利用加密链式区块结构来验证和存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码(智能合约)来编程和操作数据的一种全新的去中心化基础架构和分布式计算范式。[2]
2. 区块链的发展历史
区块链技术脱胎于比特币,在中本聪2008年发表的《比特币:一种点对点的电子现金系统中》一文中,区块(Block)和链(Chain)作为比特币系统的核心技术被提出来。区块链发展至今可分为3个阶段[3]:
第一阶段:区块链1.0 —— 数字货币
最具有代表意义的就是比特币了,其以区块链作为底层技术,是区块俩最初始的应用。
第二阶段:区块链2.0 —— 数字资产和智能合约
代表产品有2014年7月的Ethereum(以太坊),其将智能合约理念推进到了极致(话说的有点夸张,应该是推出了智能合约),还有2015年3月的Factom(公正通)以及国内的太一系统等。
第三阶段:区块链3.0 —— DAO、DAC → 区块链大社会
DAO、DAC指区块链自治组织、区块链自治公司。这一阶段是区块链技术广泛应用于人们生活和生产的各个方面,区块链被人们广泛接受,比如区块链应用于能源互联网的能源区块链,区块链应用于医疗事业的医疗区块链等等
3. 区块链的特点
1. 去中心化
区块链是一种分布式数据存储结构,没有中心节点,所有节点都保存全部的相同的区块信息,完全实现去中心化。对于特殊的应用场景,可以适当地采用弱中心化的管理节点,即中心节点不影响整个区块链结构的运行,比如弱中心化的监管机制;若从安全角度来说,弱中心化结构中的中心节点要满足对于区块链的安全不构成威胁,对用户隐私不构成威胁等。
2. 不可篡改性
一方面,区块链中存储的交易信息每一条都有相对应的Hash值,由每一条记录的Hash值作为叶子节点生成二叉Merkle树,Merkle树的根节点(Hash值)保存在本区块的块头部分,区块头部除了当前区块的Merkle树的根节点,还要保存时间戳以及前一个区块的标识符(Hash指针)形成一条链式结构。因此,要想篡改区块链中的一条记录,不仅要修改本区块的Hash值,还要修改后续所有区块的Hash值,或者生成一条新的区块链结构,使得新的链比原来的链更长。实际上,这是很难实现的。一般,一个区块后面有6个新的区块生成时,即可认为该区块不可篡改,可以将该区块加入到区块链的结构中了。
3. 不可伪造性
区块链保存的交易数据中不仅含有Hash值,还有交易双方的签名以及验证方的签名。签名具有不可伪造性,因此具有不可伪造性。
4. 可验证性
可验证性指的是数据来源的可验证。每一笔交易中电子货币的产生和输入、输出都是可以验证的。区块链结构中不会凭空增加电子货币。以比特币为例,每一笔交易的输入都是前一笔交易的输出,每一笔交易的输出又是下一笔交易的输入,即交易的可追溯性。除了来源的可验证外,还有交易金额的可验证,即验证金额的正确性,确保交易过程中的每一笔资金都是可靠的。目前,为了保证用户的隐私,很多电子货币通过混币、环签名、零知识证明等技术在数据可验证的情况下,尽可能地切断金额的可追溯性。
5. 匿名性
区块链中的匿名性实际上是一种伪匿名性。区块链中使用假名技术来切断账号和真实身份的联系。比如,对用户公钥进行一系列的Hash运算,得到的固定长度的Hash值作为对应的电子账号。实际上,随着使用次数的增加,通过数据分析可以分析出账号的很多交易行为,比如经常和哪些账号做交易,交易金额多少等,甚至可以和现实中的真实身份相联系。
4. 区块链的结构
(1) 层次结构
比特币系统将区块链分成6层结构:数据层、网络层、共识层、合约层、激励层、应用层。其架构图如下:
文献[4] 中将区块链分成3层:网络层、交易层、应用层。架构图如下:
文献[5] 中的北航链将区块链分成6层:存储层、基础区块链层、缓存层、API层、链上代码层、应用层。其架构图如下:
(2) 数据结构
区块链中的数据结构根据不同的应用会有所不同,但基本上都是由区块头(块头)和区块体(块身)组成。区块体保存的是若干条记录以及由每条记录的Hash值构成的二叉Merkle树。区块头一般包括版本号、前一区块的Hash值(Hash指针)、随机数、目标Hash(本区块的Hash值)、Merkle根,有时还会有用于PoW的计算困难门限值Difficulty等。根据不同的应用,块头和块身的数据项也会有所不同。根据需求,可以建立单链结果,还可以建立双链结构。下面是一个单链结构的简单的区块数据结构图[3]:
5. 区块链的应用
区块链由于其结构特点有着广阔的应用前景。最早,区块链作为比特币的核心技术被提出来。随着区块链的发展,尤其是与智能合约的结合,区块链技术的应用早已不再仅仅局限于数字货币等金融领域。
区块链除了应用于金融领域(如Bitcoin, Monero, Zcash)外,还可以应用于能源互联网(能源区块链)、医疗事业(医疗区块链)、学术界学术记录、供应链管理、共享单车、云存储等。
参考文献
[1] 袁勇, 王飞跃. 区块链技术发展现状与展望[J]. 自动化学报, 2016, 42(4):481-494。
[2] Beck R, Czepluch J S, Lollike N, et al. BLOCKCHAIN – THE GATEWAY TO TRUST-FREE CRYPTOGRAPHIC TRANSACTIONS[C]// Twenty-Fourth European Conference on Information Systems. 2016。
[3] 朱建明, 付永贵. 区块链应用研究进展[J]. 科技导报, 2017, 35(13):70-76。
[4] 祝烈煌,高峰,沈蒙,李艳东,郑宝昆,毛洪亮,吴震.区块链隐私保护研究综述[J/OL].计算机研究与发展,2017,(10)。
[5] 蔡维德,郁莲,王荣,刘娜,邓恩艳.基于区块链的应用系统开发方法研究.软件学报,2017,28(6):1474-1487。
读后感:
1.通篇读完,其实读者本人已经研究区块链有几个月,所以感觉这篇文章总体讲的比较清楚,不过如果对于一个刚刚接触区块链的新人来说,是否易于理解和接受,就不确认了。
2.本篇文章讲的比较概括和粗略,之后读者本人再针对每一个细节进行细化,欢迎大家留言提问。
posted on 2018-06-20 09:50 chaiyu2002 阅读(396) 评论(0) 编辑 收藏 举报