Zibin Zheng, Shaoan Xie, Hongning Dai, Xiangping Chen, and Huaimin Wang, “An overview of Blockchain Technology: Architecture, Consensus, and Future Trends,” in Proceedings of the 2017 IEEE BigData Congress, Honolulu, Hawaii, USA, 2017.
原文下载地址:
http://inpluslab.sysu.edu.cn/blockchain_paper/Blockchain_overview.pdf
该论文发表于2017年的IEEE BigData Congress, 论文作者包括中山大学郑子彬、谢少安、陈湘萍,澳门科技大学的戴弘宁,及国防科大王怀民教授。下面是该论文的中文翻译:
区块链:架构,共识与展望
【摘要】近来,区块链作为目前最成功的加密货币-比特币的核心技术,已经逐渐的受到了社会各界的关注。区块链可以被看做是做一个去中心化的存储交易记录的系统。区块链的应用前景广泛,除了金融领域,仍可以被应用到如智能合约,物联网,声誉系统和安全服务等多个领域。然而,作为一种新兴科技,区块链也面临着很多的技术挑战。本文对于区块链技术做了深入的调研,首先概述了区块链主要构成,技术,共识算法,分析了区块链的技术挑战与技术进展,并且分析探索了区块链技术的未来发展方向。
【关键词】区块链,中心化,共识,可拓展性
1. 引言
近年来,以比特币为首的加密货币受到了工业界和学术界的广泛关注。据调查,在2016年,比特币的总市值达到了100亿美元 [1], 而比特币的核心技术支撑正是区块链(blockchain)。区块链,于2008年被中本聪跟比特币一起提出,而当时的区块链是用来存储比特币的交易记录的数据库。区块链被设计成为一种链式结构, 区块用来存储交易,每一个区块连接着上一个区块,最终形成一条持续增长的链。区块链有着去中心化,不可篡改,可审计性,安全可靠等特点,使得他被广泛的应用在很多的领域,比如物联网 [2],声誉系统 [3], 以及安全服务等等 [4], 通过区块链技术能够有效地减少开支和提高效率。
但是尽管区块链有着巨大的潜力,作为一门新兴技术,它始终面临着很多的技术问题。首先,区块链技术的可拓展性问题。比特币的块目前是限制一个块大小是1MB,同时平均每十分钟产生一个块,而这也导致了比特币平均每秒只能处理7笔交易,而这显然是无法应用于现在的高频即时交易的。另外区块链作为分布式架构,每个节点通过挖矿来进行收益,但是现在已经有文献 [5] 指出可以有一种叫做自私挖矿的策略,使得节点可以通过隐藏区块链的分支来获取更多的收益,而分支的增多也会阻碍区块链的发展。同时也有文献 [6] 指出即使区块链中用户使用字符串地址来交易,但是仍然可以通过某种方式来找出用户真实身份。同时,区块链目前的共识算法也并不完善,存在着很多的问题。
区块链技术正在不断的发展,本文对于区块链的技术层面做了深入的调研,以期为未来的研究提供有意的启发和借鉴。
2. 区块链架构
区块链,顾名思义,就是由一串连续的区块组成,每个区块用来存储交易,每个区块的头部会存上一个块的哈希值,从而确定唯一一个父区块,如图 1 所示。区块的头部包含着很多的信息,比如区块版本号,时间戳,所有交易的哈希值等等。
3. 区块链类别
目前通常来说,将区块链分成三类,公有链,私有链,联盟链。对于公有链而言,任意节点都可以参与到这个公有链的共识过程,并且由于节点是分布在各处,几乎不可能对于区块链进行篡改。但是同样的,由于节点过多,公有链的处理效率并不高。私有链和联盟链则避免了这个问题,私有链和联盟链最大的区别在于,私有链是由一家机构控制的,而联盟链可以是多家机构组织控制的,但是他们对于成员的加入是由严格管理的。具体的比较如表1 所示。
4. 共识机制
为了实现去中心化,区块链设计成了分布式的架构,并且没有任何的中心节点。每一个节点都会维护着自己的一份账本,但是没有中心节点的维护,每个节点之间的可信程度又是不确定的,如何确保每个节点维护的账本是一致的。这个问题起源于拜占庭将军问题 [7]: 多个将军包围了敌军,但是需要全部将军一起进攻,才能胜利,需要将军们对于这个问题达成一致,但是将军们里面可能出现叛徒。 在区块链中,已经有着很多的共识算法,我们对于目前的常用一些共识算法进行了整理并且进行了比较,如表二。 限于篇幅,这里只介绍Proof of Work 和 Proof of Stake。
Proof of Work (PoW)
Proof of work 一般缩写成POW,或者翻译成工作量证明。比特币采用的共识算法正是POW。工作量证明的思想比较简单,譬如现在登录网站,需要输入验证码,而需要查看手机,输入验证码才能登陆,那么这个过程中登陆者向网站表明其有付出过体力,是攻击者的概率极小。在网络中,每个节点都互不认识,最终需要一个人站出来记录这些交易,但是大家之间互相不信任,如何确保此人不是恶意攻击者,并且所记录的交易是正确的? 于是所有想要打包交易的成员都需要参与到挖矿过程中, 如此一来攻击者的成本大大增加,区块链更加的安全。在工作量证明过程中,需要不断的进行哈希,目前对于比特币网络而言,已经有着专门的机器-矿机来进行挖矿,而人们也聚在一起挖矿,形成矿池,共享挖矿利润,形成矿池,最终收益按照自己的算力所划分。
Proof of Stake (PoS)
Proof of stake的缩写一般记做POS。POW的过程即为不断的做哈希,电脑需要
不停的运转,消耗大量的电力,据统计分析,在2014年,每挖出一个比特币需要消耗240KWh电量,而比特币有2100万个,十分浪费资源,于是proof of stake应运而生。stake可以表现成多种形式,Peercoin [8] 采用的是POS,采用的stake为币龄。普遍认为,当一个用户拥有这个网络中的货币越多,他攻击整个网络的可能性越少,否则他所有的货币也将大幅度贬值。此外,比特币采用的POW被普遍认为当具有超过全网51%的算力的时候,将可以篡改整条链,但是拥有整个网络的超过一半的货币的难度明显会更加高于51%算力。在POS中挖矿的难易与这个矿工所拥有的货币是有关系的,但不是呈现严格的正比关系,仍然有较强的随机性,矿工们仍然需要挖矿,只不过哈希的次数会明显的少了很多,不过由于货币的多少会一定程度上提高挖矿的概率,所以有可能出现富人越富,穷人越穷的情况。
5. 技术挑战与发展
区块链技术的优秀特性使得其可以被用于很多方面,但是作为一种新兴技术,区块链技术目前还没有发展完全,仍然存在着很多的问题,而针对这些问题,近年来也不断的提出了解决方案。
5.1 可扩展性
中本聪当年设计比特币的时候,为了防止攻击,所以对于产生块的时间有了限制, 平均10分钟一个,并且块的大小,也有限制,那么就导致平均下来, 一秒最多7笔交易,而这对于现实中一些应用场景来说,是远远不够的,淘宝2016年双十一时候3分钟,已经突破了100万单,区块链目前很难应用到这种高频交易当中去。并且10分钟一个块,表明确认一次需要10分钟,通常一笔交易需要确认6次才能被认为可靠交易,即1个小时,这对于时间敏感交易而言, 是有着致命的缺陷的。
目前关于解决这个问题主要分成以下两种:
区块存储优化
由于区块链是冗余存储,每个节点需要下载完整的区块链,现在比特币的区块链已经超过100个G了,假如为了解决上述问题,而把区块大小限制放松到8M(之前是1M),那么整条链未来肯定会变的非常之大,导致愿意参与的矿工越来越少,最终中心化,所以Bruce [9] 提出一种方法,使得不需要在存储过去的很老的交易记录。另外,还有一种方法Versum [10]: 轻量级的客户端,不用存储完整的区块链。
区块架构重组
区块一直就是区块头部用来哈希挖矿,其他用来存放交易,但是Bitcoin-NG提出可以通过将传统的区块功能进行解耦来解决之前的可拓展性的问题。这个方案将区块分成两种,一种是key block用于挖矿,另外一种是microblock用来存储交易,一个key block后面通常跟着很多microblock,这样就能够有效的避免之前因为区块大小增加带来的高延迟和低效率。
5.2 用户隐私
用户使用加密货币的时候,通常会得到一对公私钥,利用公钥,会产生一个比特币地址,而这个地址就是以后用来交易的地址,人们都通过这个地址来进行交易,没有任何其他的信息,用户们肯定认为这十分的安全,甚至很多非法网站都是用比特币来交易,从而避免警察的追捕,但是有研究显示,由于区块链用户的公钥,交易信息全部是暴露的,区块链并不能很好的保证到用户隐私安全,甚至目前有论文显示,通过某种方案,可以追踪到用户的IP,将用户的IP 和比特币地址联系到一起。
目前关于解决这个问题主要分成以下两种:
Mixing Service [11]
在区块链中,用户的地址是匿名的, 但是正如前文所述,仍然可以通过分析交易数据将用户的正式身份和地址联系在一起。 Mixing 服务是一种可以隐藏用户关系的服务,比如用户Alice想要转账给用户Bob,那么如果Alice直接转账给Bob,Alice与Bob的关系就很有可能被发现。如果Alice转账给一个可信的第三方,然后这个第三方再转给Bob,那么Alice与 Bob的关系就能够得到进一步的掩盖。
匿名化
大多数区块链中,用户用户通过地址进行交易,而交易的信息为了方便验证是可以被全部人查询到的,所以导致很多人可以通过分析交易数据来获取用户的隐私。现在在Zerocoin [12] 和Zerocash [13] 中,使用到了零知识证明,使得用户看不到具体的交易信息,但是用户可以确认自己的交易是否是合法的。 这样实现用户信息的完全匿名化。
6. 区块链发展展望
区块链技术会不断的发展,而它也将越来越受到工业界和学术界的重视,本节探讨了区块链未来的几个可能发展方向。
区块链测试
近年来,区块链越来越多,而现如今也已经有超过700种加密货币 [14]。基于区块链的服务也应运而生,越来越多的用户看中了区块链,他们需要了解哪一种区块链适合他们, 所以未来区块链的测试将会变得非常重要。
我们将区块链测试大致分成两个阶段: 标准化阶段 与 测试阶段。在标准化阶段中,需要对于区块链的各种属性比如吞吐量,延迟等等进行全面细致的标准化。以后有新的区块链产生的时候,可以用这些标准来描述。在测试阶段,我们认为需要的是个性化的测试。每个用户对于区块链的需求不一样,所以需要针对用户的需求进行区块链性能的测试
区块链应用
区块链现在也正在不断的被应用,出现了基于区块链的声誉系统,教育系统等等。而未来区块链的应用也必将变得更加的宽泛。
智能合约就是一个很典型的区块链应用,可以被看做是一段存储在区块链上的代码,代码会由矿工去自动的执行。通过智能合约,可以实现很多功能,比如在租赁服务中通过智能合约,可以将押金存放在智能合约地址中,这样用户不必担心押金被公司拿走,而公司也能放心租赁给用户。
区块链与大数据
区块链可以很好的与大数据结合起来,我们将它们的结合划分成两类,数据处理与数据分析。 首先数据处理,区块链可以用来存储大数据,并且由于是分布式的,数据将变得更加安全。同时区块链的不可篡改特性,也使得存储重要的数据的时候更加的安全。另外,还可以通过智能合约来设置用户对于数据权限的管控,更加的可靠。数据分析是指,区块链中存储着很多的交易数据,而这些交易数据蕴含着很多的信息等待被挖掘,比如可以尝试挖掘用户的交易模式,从而分析用户可靠性等等。
7. 结束语
从一开始的人们将区块链等价于比特币,到现在区块链应用每天不断涌现,区块链技术迎来了他的增长期,逐渐的成为了工业街和学术界的热点,但是区块链自身仍然存在着很多的技术问题,比如可拓展性,用户隐私泄露等问题。而近年来,针对这些问题,越来越多的解决方案提出来,随着技术的不断完善,区块链也逐渐的被应用到了多个领域,它的潜力正在不断的被开掘,我们相信区块链技术将来一定的发展的更好。
参考文献
[1] “State of blockchain q1 2016: Blockchain funding overtakes bitcoin,” 2016. [Online]. Available: http://www.coindesk.com/state-of-blockchain-q1-2016/
[2] Y. Zhang and J. Wen, “An iot electric business model based on the protocol of bitcoin,” in Proceedings of 18th International Conference on Intelligence in Next Generation Networks (ICIN), Paris, France, 2015,
pp. 184–191.
[3] M. Sharples and J. Domingue, “The blockchain and kudos: A distributed system for educational record, reputation and reward,” in Proceedings of 11th European Conference on Technology Enhanced Learning (EC-TEL
2015), Lyon, France, 2015, pp. 490–496.
[4] C. Noyes, “Bitav: Fast anti-malware by distributed blockchain consensus and feedforward scanning,” arXiv preprint arXiv:1601.01405, 2016.
[5] I. Eyal and E. G. Sirer, “Majority is not enough: Bitcoin mining is vulnerable,” in Proceedings of International Conference on Financial Cryptography and Data Security, Berlin, Heidelberg, 2014, pp. 436–454.
[6] A. Biryukov, D. Khovratovich, and I. Pustogarov, “Deanonymisation of clients in bitcoin p2p network,” in Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, New
York, NY, USA, 2014, pp. 15–29.
[7] L. Lamport, R. Shostak, and M. Pease, “The byzantine generals problem,”
ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 4, no. 3, pp. 382–401, 1982.
[8] S. King and S. Nadal, “Ppcoin: Peer-to-peer crypto-currency with proof-of-stake,” Self-Published Paper, August, vol. 19, 2012.
[9] J. Bruce, “The mini-blockchain scheme,” July 2014. [Online]. Available: http://cryptonite.info/files/mbc-scheme-rev3.pdf
[10] J. van den Hooff, M. F. Kaashoek, and N. Zeldovich, “Versum: Verifiable computations over large public logs,” in Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, New
York, NY, USA, 2014, pp. 1304–1316.
[11] M. M¨oser, “Anonymity of bitcoin transactions: An analysis of mixing services,” in Proceedings of M¨unster Bitcoin Conference, M¨unster, Germany, 2013, pp. 17–18.
[12] I. Miers, C. Garman, M. Green, and A. D. Rubin, “Zerocoin: Anonymous distributed e-cash from bitcoin,” in Proceedings of IEEE Symposium Security and Privacy (SP), Berkeley, CA, USA, 2013, pp. 397–411.
[13] E. B. Sasson, A. Chiesa, C. Garman, M. Green, I. Miers, E. Tromer, and M. Virza, “Zerocash: Decentralized anonymous payments from bitcoin,”in Proceedings of 2014 IEEE Symposium on Security and Privacy (SP),
San Jose, CA, USA, 2014, pp. 459–474.
[14] “Crypto-currency market capitalizations,” 2017. [Online]. Available: https://coinmarketcap.com
更多精彩内容,请持续关注【inpluslab】