区块链技术综述
https://blog.csdn.net/gongxifacai_believe/article/details/78409002?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
转载魏晓蕾 最后发布于2017-10-31 22:32:38 阅读数 22951 收藏
展开
本篇论文发表于2016年11月《网络与信息安全学报》,作者:沈鑫,裴庆祺,刘雪峰。为了保存随时查阅,将文章在博客上转载备份,望作者谅解。
区块链技术综述
沈鑫1,裴庆祺1,刘雪峰2
(1. 西安电子科技大学通信工程学院,陕西 西安 710071; 2. 西安电子科技大学网络与信息安全学院,陕西 西安 710071)
摘 要:区块链是一种广泛应用于新兴数字加密货币的去中心化基础架构,随着比特币的逐渐被接受而受到关注和研究。区块链技术具有去中心化,区块数据基本不可篡改、去信任化等特性,因此受到企业尤其是金融机构的追捧。阐述了区块链技术的核心技术原理,探讨了区块链技术的应用以及所存在的监管问题、安全问题,旨在对区块链技术的相关研究提供帮助。 关键词:区块链;数字货币;去中心化;分布式;共识机制 中图分类号:TP319 文献标识码:A doi: 10.11959/j.issn.2096-109x.2016.00107
Survey of block chain
SHEN Xin1, PEI Qing-qi1, LIU Xue-feng2
(1. School of Telecommunications Engineering, Xidian University, Xi’an 710071, China; 2. School of Cyber Engeering, Xidian University, Xi’an 710071, China)
Abstract: With the wide spread of Bitcoin, block chain serving as the building block of digital currency becomes a hot spot in industry and academia. Due to the decentration of network, the unforgeability of block data, etc., block chain has attracted more and more attentions from financial institutions. The essential theory and core technique of block chain were surveyed, and the issues of management and security problems of block chain based applications were discussed. To help improve the block chain techniques is the goal.
Key words: block chain, digital currency, decentralization, distribution, consensus mechanism
1 引言
区块链是比特币的基础支撑技术,首次出现在中本聪(Satoshi Nakamoto)发表的《比特币:一种点对点式的电子现金系统》[1],文中详细描述了如何建立一套全新的、去中心化的、不需要信任基础的点到点交易体系的方法,其可实现性已经被自 2009 年运行至今的比特币所证明。区块链技术的突出优势在于去中心化设计,通过运用加密算法、时间戳、树形结构、共识机制和奖励机制,在节点无需信任的分布式网络中实现基于去中心化信用的点到点交易,解决了目前中心化模式存在的可靠性差、安全性低、高成本、低效率等问题。虽然近几年比特币快速发展,但其交易的匿名性和作为货币的发行权无法被掌握,多数国家机构不承认其货币属性,而区块链凭借其独特的优势,吸引众多目光,相关研究和应用一时之间呈现井喷的趋势。区块链技术更是被认为是继大型计算机、个人计算机、互联网、移动社交之后的第 5 次颠覆式计算范式,是人类信用进化史上继血亲信用、贵金属信用、央行纸币信用之后的第 4 个里程碑[2]。广义的区块链技术有望彻底重塑人类社会活动形态,为金融、科技、文化、政治等领域带来深刻的变革。 截至 2016 年 9 月,有关区块链的学术研究成果仍然寥寥无几[318],相关知识产权和专利也是一片空白,区块链领域更是呈现出技术和产业创新驱动的发展趋势[1927]。本文系统地梳理了区块链技术的相关内容,包括区块链的起源、发展现状、基本原理、核心特点、相关应用及其存在的问题,为以后的研究提供启发和借鉴。
2 区块链概述
文献[1]中所描述的区块链是一种按照时间顺序将数据区块用类似链表的方式组成的数据结构,并以密码学方式保证不可篡改和不可伪造的分布式去中心化账本,能够安全存储简单的、有先后关系的、能在系统内进行验证的数据[5]。区块链的出现解决了数字货币的两大问题:双重支付问题以及拜占庭将军问题[28~33]。双重支付问题是同一笔钱被使用了超过一次,是在原有的以物理实体(纸币)为基础的传统金融体系中自然可避免的问题。在区块链出现之前的数字货币,都是通过可信任的中心化第三方机构来保证,以前是银行,现在是支付宝、微信支付等。区块链技术通过共识机制和分布式账本,不需要可信第三方就可以解决双重支付的问题是数字货币的一大突 破 。 拜 占 庭 将 军 问 题 ( Byzantine generals problem)[15]是现实世界问题的模型化,适用于分布式网络的简单抽象为“在缺少可信中心节点的情况下,分布式节点怎么达成共识建立互信的问题”。区块链使用“工作量证明”(PoW,proof of work)及“权益证明”(proof of stake)或其他的共识机制,再加上加密技术,使一个不可信网络变成可信的网络,所有参与者可以在某些方面达成一致,而无需信任单个节点。 区块链具有去中心化、网络健壮、灵活性、安全可信等特点。首先,区块链采用纯数学的方法建立分布式节点间的信任关系,形成去中心化的可信分布式系统,产生交易、验证交易、记录交易信息、进行同步等活动均是基于分布式网络完成的,是彻彻底底的去中心化。其次,区块链采用独特的经济激励机制来吸引节点完成工作(如挖矿),促使节点提供算力或其他资源,保证整个分布式网络的顺利运行。整个分布式网络所容纳的节点越多,其健壮性越强,除非一半以上的节点同时出现问题,否则分布式网络将会一直安全运行。再次,区块链提供用户可编程的脚本系统,大大增加了区块链应用的灵活性。在比特币中,脚本不是很成熟,多用于交易的用途;而在以太坊(Ethereum)中,更加完备、功能更加强大的脚本系统智能合约,使更为复杂更为高级的分布式应用得以实现[34]。最后,区块链的安全性是加密技术所保证的,整个分布式网络所提供的算力是非常惊人的,想要篡改区块链中的数据,不仅只是在理论上可行,而且所花费的电力、设备等成本也是得不偿失的。 下面通过描述比特币的工作过程来一窥区块链的全貌。比特币网络的全节点无时无刻不在进行数学运算(挖矿、工作量证明),每个节点贡献自己的算力来竞争解决一个动态可调整的数学问题(进行 SHA256 运算的结果小于某个值),成功解决该数学问题的节点将获得一定数量的比特币(初始 50 比特币,每挖出 210 000 个区块减少一半)以及该区块的记账权,该节点将当前时间段的所有交易打包计入一个新的区块,获得基于自愿原则的交易手续费,所有的交易都会经过算法处理(SHA256),并且经过验证,产生一定格式的区块(按一定格式计算出的包含前一区块信息的块头,由树形结构组织的交易数据构成块体),最后将该区块链接到主链上。整个比特币网络周而复始,比特币网络顺利运行。“挖矿”是所有节点通过数学运算达成共识的过程,由于非对称算法 SHA256 的性质,理论上保证记账权获得的随机性。一笔交易数据经全部节点验证通过后,进行 SHA256 运算,与其他交易两两匹配,再进行SHA256 运算,直到最后剩下一个“树根”,矿工将上一区块的散列值(SHA256 运算结果)、时间戳、本区块的计算难度值、一个随机数和本区块的“树根”(Merkle 树根)打包成块头,加上“交易树”(Merkle tree)作为块体,形成完整的区块添加到区块链上。由于每个区块都带有前一区块的特征,想要篡改一个区块的交易记录,必须要重新计算该块之后的所有区块,需要修改时间越久的区块,所花费的算力越大,一般来说,一个区块后面有 6 个区块,就无法被修改了(根据比特币网络算力以及现有计算设备综合考虑)。
3