bitpie钱包app官网|区块链的工作原理
区块链的基本概念和工作原理 - 知乎
区块链的基本概念和工作原理 - 知乎切换模式写文章登录/注册区块链的基本概念和工作原理创客B1、基本概念区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。区块链(Blockchain)是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。2、工作原理区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。 其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。区块链主要解决的交易的信任和安全问题,因此它针对这个问题提出了四个技术创新:(1)分布式账本,就是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。跟传统的分布式存储有所不同,区块链的分布式存储的独特性主要体现在两个方面:一是区块链每个节点都按照块链式结构存储完整的数据,传统分布式存储一般是将数据按照一定的规则分成多份进行存储。二是区块链每个节点存储都是独立的、地位等同的,依靠共识机制保证存储的一致性,而传统分布式存储一般是通过中心节点往其他备份节点同步数据。 [8]没有任何一个节点可以单独记录账本数据,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。也由于记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。(2)非对称加密和授权技术,存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。(3)共识机制,就是所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。区块链提出了四种不同的共识机制,适用于不同的应用场景,在效率和安全性之间取得平衡。区块链的共识机制具备“少数服从多数”以及“人人平等”的特点,其中“少数服从多数”并不完全指节点个数,也可以是计算能力、股权数或者其他的计算机可以比较的特征量。“人人平等”是当节点满足条件时,所有节点都有权优先提出共识结果、直接被其他节点认同后并最后有可能成为最终共识结果。以比特币为例,采用的是工作量证明,只有在控制了全网超过51%的记账节点的情况下,才有可能伪造出一条不存在的记录。当加入区块链的节点足够多的时候,这基本上不可能,从而杜绝了造假的可能.(4)智能合约,智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。以保险为例,如果说每个人的信息(包括医疗信息和风险发生的信息)都是真实可信的,那就很容易的在一些标准化的保险产品中,去进行自动化的理赔.3、其它互联网交换的是信息,区块链交换的是价值。人类历史和互联网历史可以用八个字理解:分久必合合久必分,到了分久必合的时代,网络信息全部散在互联网上面,大家要挖掘信息非常不容易,这时会出现像谷歌和脸书等的平台,它做的唯一的事情就是把我们所有的信息重新组合了一下。互联网时代垄断巨头们重组的就是信息,并不是产生自己的信息,产生的信息完全是我们个人。一旦信息重组,就会出现一个新的垄断巨人,所以就到了分久必合的时代。现在由于区块链技术产生又到了合久必分时代,又是新的多中心化,新的多中心化之后赋能产生新的价值,这些数据会在我们自己的手上,个人数据产生价值是归自己所有,这是这个时代最最激动人心的时代。区块链的价值有哪些?低成本建立信任的机制,确立数权,解决数据的产权。目前区块链技术不断发展,包括现在的单链向多链发展,而且技术能够在进一步扩展,我想未来还是可能会出现,特别是在交易等方面出现颠覆性的,特别是对现有产业的很多颠覆性的场景。区块链的本质是在不可信的网络建立可信的信息交换。一带一路+一链。区块链更大的不是制造信任,而是让信任产生无损的传递,整个降低社会的摩擦成本,从而提高整个效益。现在区块链本身还是初始阶段,所以包括区块链的信息传递、加密,这个过程中出现量子加密和其他加密,实际上对区块链本身所采用的加密算法攻击现象也时有发生。包括区块链也是作为一种资产的认定,数字资产的一个认定,但是现在我们很多都是用密码算法,或者是作为我们来解密的钥匙,但是如果密码忘记了,很可能你现在的资产就丢掉了,你不能够在得到你原来的这些资产,所以在资产管理,包括信息传递和一些安全这些方面,应该说都还是存在着一些隐患。当然那么从技术角度,现在我们区块链本身处理的速度,或者说本身的扩展性,因为从工作机理的角度来看,是要把整个账本要复制给所有的参与人员,所以在区块链本身的运作效率和扩展性方面还是比较受限的。这些我们觉得都还是需要进一步在技术方面有进一步的发展。区块链平台这些底层技术,又形成包括区块链钱包、区块链浏览器、节点竞选、矿机、矿池、开发组件、开发模块、技术社区及项目社群等一系列的生态系统,这些生态系统的完善程度直接决定着区块链底层平台的使用效率和效果。4、蒙代尔的不可能三角去中心化、高效、安全,不可能实现三者全部同时达到极致。风险与杠杆无关,只与仓位有关,合理的运用好杠杆, 那是财富增值的利器!不合理的运用杠杆那是毁灭财富的利器, 那么如何合理利用呢?就是仓位管理 资金管理!币圈大帅专业带单团队,提供精准的技术点位,有规划交易+合理风控仓控+平稳心态=正确投资交易,如果您想学习交易改善目前交易现状,如果您想要了解更多币种行情,关注微信公众号“币圈趋势创客”。发布于 2020-08-11 10:54比特币 (Bitcoin)区块链(Blockchain)赞同 6添加评论分享喜欢收藏申请
一文弄懂区块链技术原理 - 知乎
一文弄懂区块链技术原理 - 知乎首发于kay的世界切换模式写文章登录/注册一文弄懂区块链技术原理kkay前言近期由于工作需要,于是对区块链相关技术展开了大量的研究和学习.本文将以开发者的角度,对整个区块链行业技术的发展做一次全面的总结和归纳.文章宗旨是为了帮助大家理解区块链技术出现的目的、能够解决什么问题还有数字货币的意义与价值.另外文章后半部分会探讨一下区块链快速发展的今天,开发者群体能做哪些事情.如今市面上新型的数字货币如雨后春笋层出不穷,其中以诈骗圈钱为目的空气币也不少.只有深入了解了数字货币的底层逻辑,才能看清楚它想要达到的目的,谨防上当受骗.区块链技术有一次听外行的朋友提问:"如果区块链技术成熟了,那是不是就可以帮我们国家快速研发出芯片了".这样的发问让人觉得天真可爱,很多朋友由于对区块链的本质缺乏基本的认知,误以为它是一颗灵丹妙药,似乎任何问题在它面前都不值一提.区块链技术不是什么事情都能做,它出现的目的是为了解决人或机构间的信任问题,让互联网的通信数据和网络交流变得真实.为了更好的理解区块链的本质,我们拿同样火热的技术人工智能举例.人工智能解决的是单一客体生产力的问题,通过使用人工智能相关技术,客体便拥有了更强大的能力,以前很多不能做的事情通过人工智能现在就能做到了.比如自动驾驶小汽车、天气预测.无论是能够自动驾驶的小汽车还是预测天气的系统,它们都需要与其他系统进行数据通信.区块链要解决的问题就是让客体与客体之间的信息交流变得真实而又可信.有的朋友会提出疑问,真实的信息交流有那么重要吗?它并没有解决什么重大难题啊,需要花费巨大的人力与财力研究吗?从现实层面来讲,尤其在某些领域,数据的真实性非常重要.假设某跨国集团以全民投票的方式推选公司新一任CEO,由于公司规模庞大,旗下员工多达几十万,那如果保证投票数据一定真实可靠不会被被暗箱操作呢?目前而言,没有万无一失的方式.但如果将投票流程颁布到区块链上进行,那么就能确保数据是真实而又可靠的.因为区块链方案从技术层面直接隔离了数据的可篡改性.每个人的投票记录都是公开而又可追溯的,并且一旦存进了区块链就无法修改.投票只是区块链技术应用方向之一,像国家历史、居民征信记录、药品溯源这类数据都是出现过一次就不能被篡改,另外在尤其关键的金融领域,所有人的转账记录都应该是可以追溯且不能修改的,如果金融体系都无法确保金融数据的绝对可信任,那发展互联网金融毫无意义.区块链原理从上面例子看出,区块链通俗而言就是存储数据的,但它和平常数据库相比有以下三大特点.数据是公开透明的数据的历史记录是可以追溯的数据是不能篡改的区块链到底采用了什么样的架构才具备上述三大特点呢?点击放大上图.图片包含一条按顺序排列的方块,每个方块内存储了数据记录的集合,方块与方块之间首尾相连形成一条长链,方块称之为区块,整条由区块连接而成的链条便称之为区块链.第一个区块通常由区块链的开发者创造,称之为创世区块.假设区块链目前只有一个创世区块,后面的区块依次命名为区块1、区块2、区块3等.此时张三给李四投了一票,这条数据记录就会在节点网络中广播,区块1接收到这条消息把这条记录存到区块1内,过一会儿王五也给李四投了一票,这条记录也会被区块1存起来.随着投票记录越来越多,区块1也不断往内存,直到到快存满的时候,区块1被打包封装成一个完整的区块,这时候区块链上就有了两个完整的区块,创世区块和区块1.在区块1打包完成后,又会在区块1后面创建一个的空的区块2,区块2的头部指向区块1的哈希索引.其中这个安排谁打包封装的过程在数字货币领域被称之为挖矿.上面提到了两个专业术语节点网络和哈希索引,它们代表什么意思呢?在解答上面问题之前,我们先弄清楚区块链的存储机制.区块链既然是用来存数据的,那么它到底存在了哪个地方呢?众所周知,当下所有的互联网应用数据都存在了数据库服务器里,比如微信的聊天记录存在了微信的服务器,微博的实时新闻存在了微博的服务器.这些数据都属于企业的私有财产,被企业完全掌控,它想删就能删,它想查就能查,它想改就能改(当然实际并不会那么去做),数据完全被互联网公司集中掌控,这就是所谓的中心化.中心化有什么弊端呢?数据并非公开透明,操作权限完全由互联网公司掌控.某某明星闹了绯闻,微博的服务器就会因为访问量过大出现宕机,导致微博应用程序打不开.如果服务器仅仅出现宕机还算轻微,倘若出现自然灾害比如地震、火灾导致服务器全部损害,那么积累多年的数据将毁于一旦.区块链技术的普及将会彻底打破中心化的格局,预示着未来一个全新的时代—web3.0的降临.web3.0的目标是达成数据的去中心化,打破由互联网巨头企业垄断的困局,实现人人参与数据的生产和使用,以及管理和监督.区块链是怎么样实现去中心化的目标呢?我们还是以上面投票的案例举例.跨国集团为了实现投票工作的公平、公正与公开,于是采纳了技术员张三的建议,决定将整个投票工作搬到区块链上执行.张三技术团队替公司开发了一款客户端程序,用于提供给全体员工投票.王五是公司一名普通员工,他积极响应公司号召,在电脑上下载安装完客户端程序,找到了心仪的目标李四,按下确定键为他投了一票.此时王五选择李四这一条记录就会发送到区块链上存储起来,成千上万的员工也会像王五一样在客户端上发起投票.无数的投票记录就会不断往区块里面添加,一个区块装满了就立马打包封装继续往下一个区块添加,最后一根长长的区块链便由此形成了.现在回到上面的问题,这根长长的区块链到底存储在了哪里?答案可能让你吃惊,假设公司有10万人,那么这10万名员工每个人的电脑都会存一份这根长长的区块链数据.有的朋友可能会发问,同一份数据在10万人的电脑上都存一遍,这不是浪费资源吗?事实的确如此,可正是由于每个人都存了一份备份,那么每个人都直接成为了数据的维护和管理者,那么这些数据的命运将由所有人共同决定,这便是区块链实现去中心化的核心逻辑.我们再次回到上面提出的疑问,节点网络是什么?哈希索引是什么?成千上万的员工像王五一样安装了客户端程序,那么每一位员工的电脑就是区块链上的节点,所有节点形成的网络的就是节点网络.每个节点都存储了一份完备的区块链数据,而客户端程序在后台悄悄的将所有节点进行了联通,使节点与节点之间能够广播消息、同步数据.哈希索引又是什么呢?回忆一遍上面介绍区块链架构的图片,每个区块都存储了一系列消息记录的集合.实际上每一条消息记录添加到区块中时,都会通过加密算法为这条记录生成一串唯一的哈希值(也可以称之为哈希索引).哈希值是什么呢?它就类似于身份证号,是这条数据的唯一标识,在计算机中就是一条长长的由字母数字以及符号随机组合的长串.倘若有人把王五选择李四这条记录改成王五选择牛二,那么这条数据的哈希值就会立马发生改变.不光每条记录会生成一个哈希值,每一个区块都会依据区块内所包含的内容生成一条唯一的哈希值与之对应.李四的竞选对手牛二一看选票形势对自己非常的不利,心里就泛起了阵阵涟漪.牛二突然想起了他远方表舅家的寡妇娘嫁给了村头卖烧饼的李二狗他爹.李二狗毕业的时候,托牛二在张三技术团队找了份工作,只可惜二狗工作多年才疏学浅,年纪轻轻就秃了头.牛二赶紧联系上二狗,希望他利用技术手段篡改一下区块链上的数据,扭转目前竞选不利的局势,并在电话的结尾承诺将自己多年嫁不出去的女儿介绍给他,二狗欣然答应.二狗亢奋不已,买了两箱可乐熬了三个通宵终于把自己电脑上存放的区块链数据篡改完了,可等到与其他节点进行数据同步的时候,神奇的一幕出现,其他节点通过算法验证,发现二狗这台电脑的数据做过篡改,不予承认.其他节点是怎么做到的呢?二狗把区块链上存放的某条记录王五选择李四改成王五选择牛二,那么这条数据的哈希值就会发生改变,并且这个区块的哈希值也会随之改变.还记得之前提到的吗?每一个区块的头部都会链接上一个区块的哈希值,现在上一个区块因为数据篡改导致哈希值发生改变,导致后面的区块无法通过算法的验证.上面案例可以看出,区块链通过密码学的手段杜绝了数据被篡改的可能性,让所有的数据记录变得真实可信.即便如此,很多朋友的脑海里依旧存在误解,区块链就是数字货币,区块链就是为了圈钱融资割韭菜.区块链和数字货币狭义上理解,区块链是一种去中心化存储数据的技术,它的目标是实现web3.0,跟数字货币没有任何关系.数字货币是使用区块链技术开发出来的具体实现.比如跨国集团使用区块链技术开发了一款投票系统,日本人中本聪他就想使用区块链技术开发一款数字货币.那为什么只要提及区块链就和数字货币分不开呢?这是因为区块链的三大特征公开透明、记录可追溯以及不可篡改性太适合做货币了,如果区块链技术能应用于金融领域,那数字货币的信用体系就能获得大众的认可.很多朋友可能不太清楚,现实社会中很多领域已经应用了区块链技术,但是并没有发行数字货币.比如我们接下来讲解的私有链和联盟链.区块链按照类型划分为三种:公有链、私有链以及联盟链.目前市场十分火爆的比特币、以太坊构建的区块链都属于公有链.凡是公有链,那就意味着所有人都可以参与其中获取信息、发起交易等.私有链并不是对所有人开放,加入私有链首先要得到相关组织或者个人的授权才行.比如上面介绍的投票系统,它就需要构建一条私有链,只有本公司的员工才能参与投票.联盟链也属于私有链的类型,一般大型平台机构之间通常会构建联盟链来存储一些关键数据,比如国家银行、事业机关单位会在联盟链上投资资金研发.私有链和联盟链的相关应用开发,就不需要数字货币的参与.比如投票系统,核心目的就是为了完成公正公平的竞选,刻意创造数字货币没有任何意义.数字货币底层原理数字货币是区块链技术的具体应用,但同时它们又推动了区块链技术的发展.本节将选择比特币、以太坊以及Filecoin作为素材讲解数字货币的使命和意义,以及它们的运行机制和对区块链行业形成的影响.比特币不知何时,谈起区块链就不得不提比特币,足以可见比特币在数字货币中所处的地位.比特币的使命就是为了构建一个所有人都参与维护的超级账本.那什么是超级账本呢?张三、李四、王五、牛二四人流落孤岛.张三身强力壮擅长捕鱼,李四温润孱弱干些缝缝补补,王五名牌大学建筑系高材生会盖棚子.牛二啥体力活都不会干,但有颗经商的头脑.为了物尽其用人尽其才,牛二把大伙召集起来想了个法子.首先给所有商品定价,一条鱼10元,盖一个棚子100元,缝一件野人套装50元.一天张三请王五盖个棚子,牛二记下一笔张三转给王五100元.张三又从李四买件野人套装,牛二记下一笔张三转给李四50元.王五和李四也要吃食物,分别都从张三那里买了条鱼.牛二记下两笔王五转给张三10元和李四转给张三10元.通过牛二手中的账本我们就可以得出张三余额为-130元,张三欠王五90元,张三欠李四40元.理论上来将,只要这个账本一直记录下去,每个人的余额和交易情况都可以计算出来,即使大家之间并没有使用现金交易,但账本上记录的余额依旧可以让人与人之间的经济交易一直进行下去,这个账本和银行的作用很像.荒岛四人组所有的交易记录都被牛二一人掌控,这就是中心化的账本,如果牛二想做假账,其他人也很难察觉.比特币构建出来的区块链就相当于牛二手中的账本,不过这个电子账本由所有人共同维护,不被任何个体单独掌控,交易记录一旦记上了区块链,那就再也不能被篡改了.除此之外比特币不能赊账,如果发起一笔交易张三转给李四100元,那说明张三的余额至少是大于100元的,这笔交易才算合法.日常贸易让每个人的账户余额处于动态变化中,余额的多少需要根据账本的交易记录计算得出,随着交易数量不断增加,牛二天天算这个得累死.人计算起来不仅慢而且容易出错,但计算机算帐可是强项,要不然也不会称之为计算机.随着孤岛的互联网技术不断发展,荒岛四人组赶时髦废弃了原来的中心化账本,决定以后用比特币交易.张三想请王五建个城堡逗闺女,王五拉足马力加班加点用了一个月建成了,张三打开手机app给王五的钱包转了100比特币,那么这笔记录就被记在了区块链上,交易完成.同理王五想从张三那里买头海龟送媳妇上班,等到快递上门后,王五打开手机app给张三转了50比特币确认收货,这笔交易也算完成了.而牛二最惨,自从账本上了区块链,他再也不能偷偷捞两把赚点外快了.以上介绍的都是比特币的作用与意义,那到底什么是挖矿呢?比特币和挖矿之间是什么关系呢?挖矿的机制和原理比特币官方有一个客户端程序,电脑一旦下载安装客户端运行起来,这台电脑就成为了一个节点.应用程序初次启动,它就会与节点网络进行信息同步,把某个节点的上的区块链信息下载保存在本地电脑,这样本机就备份了一份区块链数据.比特币的目标是建立一个超级账本,它里面包含一个钱包的功能,主要用于执行交易转账.钱包其实是私钥、地址和区块链数据的管理工具.地址相当于银行账号,有的数字货币会叫作公钥,别人要转账给你,就把比特币转给你的地址,它长什么样子呢?类似这种2NLscuT3dBeUAdo39JgmnsEDh3Syt3TUq8.私钥相当于银行密码,如果你想转钱给别人,就需要通过私钥来转账.另外私钥是万万不能泄露的,否则别人会把你的比特币全部转走.区块链数据就是区块链上存储的交易记录,张三的客户端程序扫描了电脑上的区块链数据,找到所有与自己相关的交易记录并计算出了账户余额.张三发现余额还有2个比特币,它想全部转给李四.张三付出2个币,李四收到2个币这条交易记录使用张三的私钥经过加密算法生成一个哈希值,即该条交易记录的电子签名.交易记录和电子签名会一同被应用程序广播到节点网络中去,某个节点监听到了这条广播,它们取出交易记录和电子签名,并通过张三的公钥解密计算,以此来确定该条交易记录是不是张三发起的,其次判断整个过程中有没有被篡改.经过验证这条交易记录是合法的,节点又会将该条交易记录广播到其他所有的节点都收到,然后节点自己在本地搜一遍区块链,看张三的帐号里有没有足够的钱,有的话这条交易就成立了,准备放进区块存起来.其他收到广播的节点也会照此操作,最终所有节点电脑上的区块都新增了这一条交易记录.还记得上一节提到过,当区块到了快存不下去的时候,这个区块就会被打包封装成一个完整的区块.那谁负责这个打包封装呢?比特币官方就规定如果哪个节点愿意做这个苦活累活,我就奖它比特币节点网络有这么多的节点,它们都争着抢着想来干这个差事.比特币官方就犯难了,这到底选谁来做呢?比特币官方最后设计了一个POW算法,用来决定哪个节点封装打包区块.这类以抽选节点做打包员的算法统称为共识算法,POW属于共识算法的一种,另外比较有代表性的算法有POS算法和PoST 算法.POW算法(Proof of Work,工作量证明).计算量越大,就越有大概率被抽中POS算法(Proof of Stake,权益证明).根据资产的多少分配获取抽中的概率节点参与了共识算法的竞猜,它就被称之为矿工,它努力赢得打包员的资格所付出的努力称之为挖矿.如果某个矿工被共识算法抽中了,它就拥有了打包封装的资格,我们就可以称之为出块或者爆块了.矿工一旦出块了,它就可以得到官网赠与的比特币奖励.比特币使用的POW算法对显卡的依赖非常强,因此比特币火热时期,市面上的高端显卡一卡难求,硬件厂商乘坐着数字货币的东风大赚一笔.现在我们来看一下,矿工张三出块这段过程的底层逻辑是如何实现的.矿工张三的区块装满了5000条交易信息后,再加上一条福利信息张三得到2个币和前一个区块的验证码以及一个随机数.关键的步骤来了,此时其他矿工也和张三一样做了相似的操作,他们接下来要一决雌雄争夺出块权.张三的电脑首先计算这个新区块的验证码,用哈希算法不停的算,本来瞬间就能算好,但是要求这个验证码必须小于区块内的随机值(难度值),值如果不够小,就把随机数改一改,再算一次.还不行再改随机数,再算继续算.经过这样上亿亿次的计算,终于找到了附合条件的验证码加到这个新区快上,至此这个包就算打包好了.张三把新区块广播到网络上,其它矿工会验证一下这个区块的所有交易信息,并着重验证一下这个区块算出的验证码,都没问题就承认这个块了,从此区块链就长长了一块,然后处理一下自己本地的交易信息池,把那些已记录的清除掉,更新上张三广播的区块,在区块链的末尾再增加一个新的空快,准备下一轮出块权争夺.我们从上面这个过程可以看出,谁能赢得出块权,起决于谁能把类似一道很难的数学题先算出来.有的人可能会问,要是两个人同时算出来怎么办,比特币官方解释已经从采用某种机制隔离了这种可能性的发生.但我们不禁提出质疑,比特币吸纳了全网最高的算力,结果这些算力仅仅只是作用于区块链自身的数据计算和全链条的稳定,并没有对社会做出什么实际贡献,实在是浪费电.以太坊以太坊本身不是数字货币,它是一个数字平台.以太坊使用的数字货币称之为以太币.很多朋友可能提出疑问,以太坊是不是和比特币一样又搞出一种数字货币?以太坊的出现对区块链的发展具有革命性的意义,它不仅拥有数字货币的能力,而且还有了更进一步的突破.狭义上理解, 以太坊 = 比特币 + 智能合约.智能合约是什么呢?智能合约是运行在以太坊虚拟机(EVM)上的,本质上是一段脚本代码,部署在以太坊的区块链里.我们可以简单理解,以太坊是一个庞大的数字平台,平台对所有开发者开放了自定义智能合约的能力.智能合约此时就相当于运行在以太坊上的后端代码,这部分可以由开发者来编写,这样作为开发者的我们就能基于以太坊开发一些日常生活当中的应用.智能合约的编写使用Solidity语言,它和JavaScript很像,它拥有操作区块链上的数据的能力.这和我们当下主流的BS(浏览器-服务器)架构很类似,浏览器访问智能合约对开放的接口,智能合约接受到请求就去操作区块链上的数据.BS架构模式下数据都是存放在数据库里,后端代码接受到前端请求操作数据库里的数据.而现在变成了智能合约接受前端请求操作区块链上的数据.由于数据存放的容器从数据库变成了区块链,因此基于以太坊开发的应用就是去中心化的应用程序了.当然智能合约目前还没有传统后端编程语言这么强大,很多功能比如上传下载、对外发起http请求它本身并不支持,需要调用其他程序实现.我们目前就可以利用以太坊开发一些应用程序,比如投票系统、众筹软件等.因此依靠以太坊生态开发的应用程序如雨后春笋般涌现.网络上充斥着很多三分钟发布一款数字货币、十分钟发布属于你自己的虚拟货币这类消息.实际上这类文章传授的便是在以太坊智能合约上用代码开发一个电子钱包功能,它发行的货币属于代币(ICO),代币与比特币以及以太币有着本质的区别.代币不一定就是不好的,比如说腾讯公司会对外发行qq币,qq币就属于一种代币.用户通过qq币可以购买腾讯旗下的游戏皮肤或装备,但是qq币是不能用于其他公司交易.腾讯公司旗下业务众多,代币的发行可以更好的支持自身产品与服务的销售.但有的人什么实体产业都没有,就利用智能合约开发一款电子钱包,货币数量随它的代码编写任意分发,随后大肆鼓吹欺骗群众购买他们的货币,让很多无辜百姓上当受骗.比特币、以太币它们都有官方客户端程序,而这些客户端程序包含了节点同步、挖矿、区块链操作、消息广播以及各种算法校验等功能模块,这些代码实现了一条底链具备的所有能力,因此开发这类客户端需要很强的技术实力和专业背景.当然也不乏无法分子做一个假的客户端程序,外观界面有模有样的运行,内部其实是一个空壳,用以哄骗普通群众.其次社会上也会存在一些不良资本家,他们会出资组建一支实力完备的技术团队,但目的却是开发一款不会带来任何实际价值的数字货币,商家鼓动媒体公关渲染造势,吸引广大民众投入资本,最后风头一过损失最大的还是普通民众,这些恶劣的行径给社会带来了不良影响.回到主题,以太坊的智能合约能让程序员开发各种各样的应用程序,但如果应用程序的数据非常庞大,比如像抖音、微博,它们包含了大量的图片、视频资源,这些体积庞大的数据存在哪里呢?IPFS我们在讲比特币转账过程已经提到,区块链上每新增一条记录,所有区块链上的节点最后都会同步新增,这就意味着每一条消息记录都应该尽可能保持轻量.试想一下,节点网络之间时时刻刻都在进行着成百上千条交易,如果每一条交易记录的数据量都十分庞大,最后所有节点并发同步将会造成整条区块链的崩溃.依托以太坊开发的应用程序想在区块链上存一个视频,这样的需求该如何实现呢?IPFS相关技术可以有效解决区块链存储大数据的难题.IPFS(星际文件系统)是一种网络传输协议.它的出现时为了替换现有的HTTP协议,使得Web更快、更安全、更开放.IPFS本身而言与区块链没有必然的联系,但它可以设计成与区块链相互协同工作.IPFS社区基于IPFS协议开发了一款客户端应用程序,此时这个IPFS客户端可以看做成一个去中心化的百度网盘.用户往IPFS网络上存储一个文件,应用程序返回一串哈希值,这串哈希值就是该文件的唯一凭证.下一次凭借这串哈希值又可以从IPFS网络上把文件下载到本地.以太坊上的应用程序就可以借助IPFS的能力,将所有数据量大的资源文件都存在IPFS网络上,文件返回的哈希值数据量很小,这些哈希值就可以代替文件存储在以太坊的区块链上.IPFS底层是如何存储数据内容的呢?用户往IPFS网络上传一段视频,视频将自动分割成若干片段,每个片段大小可能为几百k,这个视频可能被分割成20个片段,也可能是30个片段.分割完之后,这些视频碎片会随机分发到网络上的各个节点存储起来.节点就是安装了客户端接入IPFS网络上的计算机.视频被分割成那么多片段,那视频打开和下载岂不是会很麻烦吗?这一点完全不用担心,上传到IPFS网络的文件首先被分割成若干片段,文件整体通过算法加密生成一串唯一的哈希值--文件索引.每个小片段也都通过加密算法生成了唯一的哈希值,然后将小片段的哈希值按照文件原有的次序排成哈希列表,这份文件中除了视频的片段、哈希值列表和文件索引,还包含一个内容摘要,当用户想要下载视频的时候,只需要搜索这份文件的索引,就可以顺利打开或者下载视频.IPFS的行为模式和电驴资源分享很像.但是它存在致命的弱点,比如视频上传到IPFS网络,视频碎片分发到不同节点存储,可一旦那些节点关机了,那岂不是视频资源就无法下载了.Filecoin的出现能解决上述问题,Filecoin是使用IPFS传输协议构建的数字货币,俗称文件币.狭义上理解,Filecoin = 比特币 + IPFS.Filecoin能解决IPFS的两大难题.Filecoin通过挖矿的奖励机制促使更多的节点一直保持在线状态.Filecoin会将上传的文件碎片在不同节点上多做备份,保证40%的节点出现问题时还能保持文件的完整性,真正做到数据永不丢失.Filecoin的目的就是为了构建一块用于存储大型文件数据的区块链网络,它的出现对于区块链行业的发展有着革命性的意义.区块链应用的开发上面对几款主流的数字货币都做了详细的介绍,读者看到这里想必已经对整个区块链行业的状况有了基本的认知.接下来我想谈一谈面对迅猛发展的区块链技术,作为IT领域的从业者,我们能做些什么?基于以太坊的智能合约,软件团队开发一些DApp(去中心化应用)服务于公司业务.DApp的开发门槛并不高,很多web开发者通过短期的学习便可上手. 模仿以太坊,软件团队从头研发一条公有链对外提供收费服务.与以太坊相比,企业应该突出自家区块链的的优势.比如降低开发的门槛,增强智能合约的能力,提供部署运维监控方面的支持. 模仿以太坊,软件团队从头研发一条联盟链对国家银行、政府机关或大型商户提供服务.联盟链的发展对社会生活能产生很多积极的影响,也是国家投资重点研究的对象之一. 超级矿机的研发和销售. 普通服务器安装强化后的硬件和客户端软件就变成了超级矿机. 那如何强化呢? 硬件团队通过实际测试获取最佳硬件配置,达到算力的最优值. 软件团队通过优化客户端应用程序的底层算法,架构和业务以及系统驱动,达到提升算力和封装速度的目标.另外优化后的客户端应用程序也可以单独销售. 企业对外提供超级矿机的托管服务.开发者需要基于矿机群开发部署运维脚本和监控程序. 企业通过数字货币官方开放的rpc接口开发周边应用.比如网页或者小程序方便客户查看自己的收益情况. 结尾很多开发工程师原来在公司主要做页面、开发App等,后来转型成为了区块链技术人员.原来那些项目的程序、应用都是中心化的,那么如何把那些中心化的思想理念转变成去中心化的,这需要很多技术人员去了解和思考.另外很多区块链项目都在githup上开源了,代码也是公开的,比如比特币和以太坊.通过源代码理解它们的运营机制,学习怎么去写去中心化的应用和设计原理,然后参与到去中心化项目当中.发布于 2021-07-20 22:46区块链技术数字货币区块链价值赞同 15110 条评论分享喜欢收藏申请转载文章被以下专栏收录kay的世界更自
区块链技术的原理及其应用场景-阿里云开发者社区
区块链技术的原理及其应用场景-阿里云开发者社区
产品解决方案文档与社区权益中心定价云市场合作伙伴支持与服务了解阿里云
售前咨询
95187-1
在线服务
售后咨询
4008013260
在线服务
其他服务
我要建议我要投诉更多联系方式备案控制台开发者社区首页MaxComputeHologresFlinkE-MapReduceDataWorksElasticsearchPAI智能搜索推荐免费试用
探索云世界
新手上云云上应用构建云上数据管理云上探索人工智能云计算弹性计算无影存储网络倚天云原生容器serverless中间件微服务可观测消息队列数据库关系型数据库NoSQL数据库数据仓库数据管理工具PolarDB开源向量数据库热门Modelscope模型即服务弹性计算云原生数据库物联网云效DevOps龙蜥操作系统平头哥钉钉开放平台大数据大数据计算实时数仓Hologres实时计算FlinkE-MapReduceDataWorksElasticsearch机器学习平台PAI智能搜索推荐人工智能机器学习平台PAI视觉智能开放平台智能语音交互自然语言处理多模态模型pythonsdk通用模型开发与运维云效DevOps钉钉宜搭支持服务镜像站码上公益
开发者社区
大数据与机器学习
文章
正文
区块链技术的原理及其应用场景
2023-08-21
341
版权
版权声明:
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《
阿里云开发者社区用户服务协议》和
《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写
侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
推荐场景:
实时发现最热Github项目
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
推荐场景:
数据可视化分析航班信息
大数据开发治理平台 DataWorks,不限时长
推荐场景:
Github实时数据分析与可视化
简介:
区块链技术作为一项革命性的技术,正在重新定义我们对数据和交易的认知。其去中心化、不可篡改和透明的特性使其在多个领域展现了广泛的应用价值。从加密货币到供应链管理,从数字身份认证到智能合约,区块链在不同领域都有着巨大的潜力和创新可能性。
欢迎来到我的博客!今天,我们将深入探讨区块链技术的原理、核心概念以及它在各个领域的应用场景。作为一项革命性的技术,区块链不仅在加密货币领域引起了轰动,还在金融、供应链、医疗等多个领域展现了巨大潜力。
区块链技术的基本原理
什么是区块链?
区块链是一种分布式数据库,其数据以链式结构按照时间顺序连接在一起。每个数据块(block)包含多个交易记录,这些块链接在一起形成了区块链。每个区块都包含前一个区块的哈希值,这种链接保证了数据的完整性和不可篡改性。
区块链的工作原理:
分布式账本: 区块链中的账本分布在网络中的多个节点上,每个节点都有完整的数据副本。这种分布式结构使得数据更加透明和安全。
密码学保护: 区块链中的数据使用密码学算法进行加密,确保数据的安全性。只有持有相应私钥的用户才能访问和修改数据。
共识机制: 区块链通过共识机制解决了去中心化网络中的数据一致性问题。不同的区块链采用不同的共识算法,如工作量证明(Proof of Work)和权益证明(Proof of Stake)等。
区块链技术的应用场景
1. 加密货币:
加密货币是区块链技术最早的应用之一,比特币就是其中的代表。区块链通过去中心化的方式实现了交易的可追踪和不可篡改,解决了传统金融系统中的信任问题。
2. 供应链管理:
区块链可以追踪商品从生产到配送的整个过程,提高供应链的透明度和效率。通过区块链,消费者可以准确了解产品的来源和质量。
3. 数字身份认证:
区块链可以提供安全的数字身份认证系统,消除了传统身份验证中的中间环节。用户可以控制自己的身份信息,实现更加安全和隐私的认证方式。
4. 智能合约:
智能合约是一种自动化执行的合约,可以在没有中介的情况下执行交易。区块链上的智能合约可以自动根据预定条件执行,确保交易的安全和公正。
代码示例:使用Solidity编写智能合约
// 导入Solidity库
pragma solidity ^0.8.0;
// 定义简单的数字所有权合约
contract Ownership {
address public owner;
uint256 public value;
constructor(uint256 _value) {
owner = msg.sender;
value = _value;
}
modifier onlyOwner() {
require(msg.sender == owner, "Only the owner can perform this action");
_;
}
function transferOwnership(address newOwner) public onlyOwner {
owner = newOwner;
}
}
在上述代码示例中,我们使用Solidity编写了一个简单的智能合约,实现了数字所有权的转移。智能合约是区块链上的自动化代码,可以实现去中心化的业务逻辑。
区块链技术的未来发展
1. 扩展性和性能优化:
当前区块链技术面临的一个主要挑战是扩展性和性能。未来的发展将致力于提高区块链的吞吐量和交易速度,以满足日益增长的需求。
2. 跨链互操作性:
随着区块链的不断发展,不同区块链之间的互操作性变得越来越重要。跨链技术将允许不同区块链之间的资产和数据互通。
3. 隐私保护:
在区块链上保护用户隐私是一个重要的议题。未来的区块链技术将更加关注隐私保护和数据加密,为用户提供更安全的环境。
结论
区块链技术作为一项革命性的技术,正在重新定义我们对数据和交易的认知。其去中心化、不可篡改和透明的特性使其在多个领域展现了广泛的应用价值。从加密货币到供应链管理,从数字身份认证到智能合约,区块链在不同领域都有着巨大的潜力和创新可能性。
感谢您阅读本文!如果您对区块链技术的原理、应用场景或未来发展有任何疑问或想法,请在评论区与我交流。让我们一起探讨区块链技术的奇妙世界!
IT陈寒
目录
热门文章
最新文章
为什么选择阿里云什么是云计算全球基础设施技术领先稳定可靠安全合规分析师报告产品和定价全部产品免费试用产品动态产品定价价格计算器云上成本管理解决方案技术解决方案文档与社区文档开发者社区天池大赛培训与认证权益中心免费试用高校计划企业扶持计划推荐返现计划支持与服务基础服务企业增值服务迁云服务官网公告健康看板信任中心关注阿里云关注阿里云公众号或下载阿里云APP,关注云资讯,随时随地运维管控云服务售前咨询:95187-1售后服务:400-80-13260法律声明及隐私权政策Cookies政策廉正举报安全举报联系我们加入我们阿里巴巴集团淘宝网天猫全球速卖通阿里巴巴国际交易市场1688阿里妈妈飞猪阿里云计算AliOS万网高德UC友盟优酷钉钉支付宝达摩院淘宝海外阿里云盘饿了么© 2009-2024 Aliyun.com 版权所有 增值电信业务经营许可证: 浙B2-20080101 域名注册服务机构许可: 浙D3-20210002 京D3-20220015浙公网安备 33010602009975号浙B2-20080101-4
从原理到共识机制,一文看懂区块链工作原理! - 知乎
从原理到共识机制,一文看懂区块链工作原理! - 知乎切换模式写文章登录/注册从原理到共识机制,一文看懂区块链工作原理!摩方智享赋能 连接 开放 共享区块链的工作原理简单描述区块链的工作原理,A想要发送钱给B,这笔交易在网络上以一个区块作为代表,该区块广播给网络里所有的参与者,参与者同意交易有效,改区块被添加到链上,这条链提供永久和透明的交易记录,资金从A转移到B。全网一本帐,每个人都可以查找。【塑料托盘免费租赁】我们能看到的是这个分布式的数据库里,记账不是由个人或者某个中心化的主体来控制的,而是由所有节点共同维护、共同记账的。所有的单一节点都无法篡改,想篡改一个记录,需要同时控制整个网络超过51%的节点或计算能力才可以,而区块链中的节点无限多且无时无刻都在增加新的节点,这基本上是不可能完成的事情。区块链的本质是一个互相验证的公开记账系统,这个系统所做的事情,就是记录所有账户发生的所有交易。每个账号的每笔数额变化都会被记录在全网总账本中。而且每个人手上都有一份完整的账本,每个人都可以独立统计出有史以来比特币系统每个账号的所有账目,也能算出任意账号当前余额是多少。由于所有数据公开透明,任何人都可以去查看它的源代码,人们便会信任这套去中心化的系统,而不担心里面是否隐藏着什么阴谋。区块链的6层模型区块链的基础模型分为6层:数据层、网络层、共识层、激励层、合约层、应用层。每层分别完成一个核心功能,相互配合,实现一个去中心化的信任机制。数据层:数据区块、链式结构、时间戳、哈希函数、Merkle树、非对称加密;网络层:P2P(点对点)网络、传播机制、验证机制;共识层:pow(工作量证明)、pos(权益证明)、dpos(股份授权证明);激励层:发行机制、分配机制;合约层:脚本代码、算法机制、智能合约;应用层:可编程货币、可编程金融、可编程社会;大多属于技术范畴,不在过多的赘述。区块链的发展脉络区块链1.0:以比特币为代表的可编程货币,它更多是指数字货币领域的创新,如货币转移、兑付和支付系统;区块链2.0:基于区块链的可编程金融。它更多涉及一些合约方面的创新,特别是商业合同以及交易方面的创新,比如股票、证券、贷款、清算结算、所谓的智能合约等。区块链3.0:区块链在其他行业的应用。它更多地对应人类组织形态的变革,包括健康、科学、文化和基于区块链的司法、投票等。区块链的基本类型公有链公有链是指全世界任何人都可读取、发送交易且交易能获得有效确认的、也可以参与其中共识过程的区块链。公有链有这么几个特点:1、保护用户免受开发者的影响,在公有链中程序开发者无权干涉用户,区块链可以保护其用户;2、访问门槛低,任何人都可以访问,只要有一台能够联网的计算机就能够满足基本的访问条件;3、所有数据默认公开,公有链中的每个参与者可以看到整个分布式账本的所有交易记录。私有链私有链是指其写入权限仅在一个组织手里的区块链,目的是对读取权限或者对外开放权限进行限制。私有链有这么几个特点:1、交易速度非常之快一个私有链的交易速度可以比任何其他的区块链都快,甚至接近了并不是一个区块链的常规数据库的速度。这是因为就算少量的节点也都具有很高的信任度,并不需要每个节点来验证一个交易。2、给隐私更好的保障私有链使得在那个区块链上的数据隐私政策像在另一个数据库中似的完全一致;不用处理访问权限和使用所有的老办法,但至少说,这个数据不会公开地被拥有网络连接的任何人获得。3、交易成本大幅降低甚至为零私有链上可以进行完全免费或者至少说是非常廉价的交易。如果一个实体机构控制和处理所有的交易,那么他们就不再需要为工作而收取费用。4、有助于保护基本的产品不被破坏,银行和传统的金融机构使用私有链可以保证它们的既有利益,以至原有的生态系统不被破坏。联盟链联盟链是指其共识过程受到预选节点控制的区块链。只针对某个特定群体的成员和有限的第三方,其内部指定多个预选节点为记账人,每个块的生成由所有的预选节点共同决定。联盟链的几个特点:1、是交易成本更便宜。交易只需被几个受信的高算力节点验证就可以了,而无需全网确认。2、是节点可以很好地连接,故障可以迅速通过人工干预来修复,并允许使用共识算法减少区块时间,从而更快完成交易。3、是如果读取权限受到限制,可以提供更好的隐私保护。四是更灵活,如果需要的话,运行私有区块链的共同体或公司可以很容易地修改该区块链的规则,还原交易,修改余额等。区块链的共识机制区块链的共识机制的目的是解决信任的问题,解决两个完全陌生人之间的信任问题。通过特殊节点的投票,在很短的时间内完成对交易的验证和确认。区块链上的共识机制有很多种,不是每一种都适合所有具体应用场景的,共识需要在具体的应用场景下去讨论。这里我们来讨论下最常见的三种共识机制:1、工作量证明简称Pow,通常只能从结果证明,因为监测工作过程通常是繁琐且低效的。比特币在区块生成过程中就使用了pow机制。Pow依赖机器进行数学运算来获取记账权,资源消耗大、共识机制高、可监管性弱,同时每次达成共识需要全网共同参与运算,性能效率比较低,容错性方面允许全网50%节点出错。Pow的优点:完全去中心化,节点自由进出Pow的缺点:目前比特币已经吸引全球大部分的算力,其他再使用Pow共识机制的区块链应用很难获得相同的算力来保障自身的安全,挖矿造成大量的资源浪费,共识达成的周期较长。2、权益证明简称POS,权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比例和时间,依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。这种共识机制可以缩短达成共识所需的时间,但本质上仍然需要网络中的节点进行挖矿运算。因此,PoS机制并没有从根本上解决PoW机制难以应用于商业领域的问题。POS的优点:在一定程度上缩短了共识达成的时间,不在需要大量消耗能源去挖矿。POS的缺点:还是需要挖矿,本质上没有解决商业应用的痛点;所有的确认都只是一个概率上的表述,而不是一个确定性的事情,理论上有可能存在其他攻击影响。3、股份授权证明简称DPOS,类似于董事会投票,持币者投出一定数量的节点,进行代理验证和记账。DPOS的工作原理,每个股东按其持股比例拥有相应的影响力,51%股东投票的结果将是不可逆且有约束力的,其挑战是通过及时而高效的方法达到“51%批准”。为了达到这个目标,每个股东可以将其投票权授予一名代表。获票数最多的前100位代表按既定时间表轮流产生区块。每位代表分配一个时间段来生产区块。DPOS的投票模式可以每30秒产生一个新区块,并且在正常的网络条件下,区块链分叉的可能性极其小,即使发生也可以在几分钟内得到解决。互联网解决了传统商业很多不能解决的问题,区块链能够解决很多互联网不能解决的问题,尤其是信息泛滥,信任缺失的问题,这些都是商业的基础。延伸阅读摩方托盘是一家提供可循环共享标准化物流载具平台的综合服务商。秉持“赋能、连接、共享、开放”的智能物流理念,摩方智享现已开发智慧物流芯和摩方智享云服务平台,以标准化托盘为单元,构建连接载具供应商、托盘服务商、物流企业,产品制造企业的智慧物流新生态,创造智能管理、方便快捷的“物联网+平台”模式的智能物流运输新价值。发布于 2018-09-25 18:17工作原理区块链(Blockchain)互联网赞同 4添加评论分享喜欢收藏申请
区块链(数据结构)_百度百科
数据结构)_百度百科 网页新闻贴吧知道网盘图片视频地图文库资讯采购百科百度首页登录注册进入词条全站搜索帮助首页秒懂百科特色百科知识专题加入百科百科团队权威合作下载百科APP个人中心区块链是一个多义词,请在下列义项上选择浏览(共12个义项)展开添加义项区块链播报讨论上传视频数据结构收藏查看我的收藏0有用+10本词条由中国科学院信息工程研究所 参与编辑并审核,经科普中国·科学百科认证 。区块链(英文名:blockchain [3-4] [7]或block chain [2][13])是一种块链式存储、不可篡改、安全可信的去中心化分布式账本 [1],它结合了分布式存储、点对点传输、共识机制、密码学等技术 [8],通过不断增长的数据块链(Blocks)记录交易和信息,确保数据的安全和透明性 [6]。区块链起源于比特币(Bitcoin),最初由中本聪(Satoshi Nakamoto)在2008年提出,作为比特币的底层技术 [1]。从诞生初期的比特币网络开始,区块链逐渐演化为一项全球性技术,吸引了全球的关注和投资[3]。随后,以太坊(Ethereum)等新一代区块链平台的出现进一步扩展了应用领域 [3-4]。区块链的特点包括去中心化、不可篡改、透明、安全和可编程性 [6] [8]。每个数据块都链接到前一个块,形成连续的链,保障了交易历史的完整性。智能合约技术使区块链可编程,支持更广泛的应用 [5]。区块链在金融、供应链、医疗、不动产等领域得到广泛应用 [5] [8]。尽管仍面临可扩展性和法规挑战,但它已经成为改变传统商业和社会模式的强大工具,对未来具有巨大潜力 [13-14]。中文名区块链外文名blockchain [3-4] [7]block chain [2] [11]定 义一种去中心化的分布式账本技术 [1]特 点一种去中心化的分布式账本技术,去中心化、不可篡改、透明、安全和可编程性 [1]分 类公有链、联盟链、私有链领 域金融、供应链、医疗、不动产等起源于2008年11月1日(被提出)2009年1月3日(创世区块诞生) [1] [3]创始人中本聪(Satoshi Nakamoto)典型区块链系统Bitcoin(比特币)、Ethereum(以太坊)、Libra/Diem、Litecoin、Monero、Dogecoin目录1区块链概述▪区块链的概念▪区块链的特征2区块链技术发展历史▪区块链技术发展脉络▪区块链技术发展历程3区块链的分类▪公有链▪联盟链▪私有链4区块链的架构▪数据层▪网络层▪共识层▪激励层▪合约层▪应用层5典型区块链系统▪Bitcoin▪Ethereum▪Libra6区块链技术▪共识机制▪智能合约7区块链安全问题▪分布式拒绝服务攻击▪延展性攻击▪女巫攻击▪路由攻击▪日蚀攻击▪反洗钱犯罪8区块链相关热点概念▪挖矿▪币圈▪矿圈▪数字货币9对区块链的误解▪误解1:区块链等于炒比特币▪误解2:区块链上的数据是绝对安全的▪误解3:区块链适合存储大量数据▪误解4智能合约是存储在区块链上的现实合约▪误解5:比特币跟硬币的性质是一样的▪误解6:比特币成不了主流货币是因为政府▪误解7:区块链可以应用于全行业10区块链的应用▪供应链金融▪资产交易▪司法存证▪智能合同▪溯源、防伪▪政府▪数字证书▪物流11相关政策与法律法规区块链概述播报编辑区块链(Blockchain)技术,自从在比特币(Bitcoin)白皮书《比特币:一种点对点电子货币系统(Bitcoin: A Peerto-Peer Electronic Cash System)》 [1]一文中被化名为中本聪(Satoshi Nakamoto)的作者提出以来,就受到许多关注且备受争议。有些人认为区块链是继蒸汽机、电力、互联网之后的颠覆性技术发明,将彻底改变整个人类社会价值传递的方式,甚至带来新一轮的科技革命 [3] [8] [37];而有些反对者则认为比特币乃至区块链是一个骗局,或是对其未来充满担忧 [9] [35-36]。近年来,随着比特币、以太坊(Ethereum)等加密货币的火热,区块链技术在全球范围内得到越来越多的关注。2019年10月24日,中共中央政治局就区块链技术发展现状和趋势进行第十八次集体学习 [38],此后,区块链技术更是吸引了举国上下的目光 [39]。区块链技术目前已经应用于多个领域,如金融、物流、食品安全等 [15] [21] [30]。尽管不少人对比特币的未来发展仍然充满疑虑,但大多数技术专家非常认可区块链技术的未来,认为其理念的推广与应用最终会超越加密货币,成为时代的热点和前沿技术 [16-17] [22] [37]。但是,与其火热的应用、受到广泛的关注度和蓬勃的发展相比,普通大众对于区块链的认知尚停留在很简单的层面。人们对于区块链的认识往往是局限于加密数字货币,或者是一项敬而远之、远离日常生活的高新技术 [27] [31]。总的来说,区块链技术建立了新的信任机制,允许各网络节点之间在没有权威节点的去中心化情况下达成可信共识,是一项从思想到技术的重大飞跃 [34]。区块链的概念中本聪在《比特币:一种点对点电子货币系统》一文中,并未给出“区块链”的具体定义,只是提出了一种基于哈希证明的链式区块结构,即称为区块链的数据结构。“区块链”一词也是来源于此,其中“区块”(Block)一词指代一个包含了数据的基本结构单元(块),而链(Chain)则代表了由区块产生的哈希链表。从狭义上来说,根据工业和信息化部2016年发布的《中国区块链技术和应用发展白皮书》所述,区块链技术是一种按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证不可篡改和不可伪造的分布式账本技术 [33]。从广义来说,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式 [25]。一般认为,区块链技术是伴随着以“比特币”为首的数字货币而出现的一项新兴技术,是一种以密码学算法为基础的点对点分布式账本技术,是分布式存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式 [23]。区块链包括三个基本要素,即交易(Transaction,一次操作,导致账本状态的一次改变)、区块(Block,记录一段时间内发生的交易和状态结果,是对当前账本状态的一次共识)和链(Chain,由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录)。区块链中每个区块保存规定时间段内的数据记录(即交易),并通过密码学的方式构建一条安全可信的链条,形成一个不可篡改、全员共有的分布式账本。通俗地说,区块链是一个收录所有历史交易的账本,不同节点之间各持一份,节点间通过共识算法确保所有人的账本最终趋于一致。区块链中的每一个区块就是账本的每一页,记录了一个批次记录下来的交易条目。这样一来,所有交易的细节都被记录在一个任何节点都可以看得到的公开账本上,如果想要修改一个已经记录的交易,需要所有持有账本的节点同时修改。同时,由于区块链账本里面的每一页都记录了上一页的一个摘要信息,如果修改了某一页的账本(也就是篡改了某一个区块),其摘要就会跟下一页上记录的摘要不匹配,这时候就要连带修改下一页的内容,这就进一步导致了下一页的摘要与下下页的记录不匹配。如此循环,一个交易的篡改会导致后续所有区块摘要的修改,考虑到还要让所有人承认这些改变,这将是一个工作量巨大到近乎不可能完成的工作。正是从这个角度看,区块链具有不可篡改的特性。分布式记账网络区块链中的区块模型示意图区块链的特征1.去中心化在中本聪的设计中,每一枚比特币的产生都独立于权威中心机构,任意个人、组织都可以参与到每次挖矿、交易、验证中,成为庞大的比特币网络中的一部分。区块链网络通常由数量众多的节点组成,根据需求不同会由一部分节点或者全部节点承担账本数据维护工作,少量节点的离线或者功能丧失并不会影响整体系统的运行。在区块链中,各个节点和矿工遵守一套基于密码算法的记账交易规则,通过分布式存储和算力,共同维护全网的数据,避免了传统中心化机构对数据进行管理带来的高成本、易欺诈、缺乏透明、滥用权限等问题。普通用户之间的交易也不需要第三方机构介入,直接点对点进行交易互动即可 [21]。2.开放性区块链系统是开放的,它的数据对所有人公开,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统的信息高度透明。虽然区块链的匿名性使交易各方的私有信息被加密,但这不影响区块链的开放性,加密只是对开放信息的一种保护 [20]。在开放性的区块链系统中,为了保护一些隐私信息,一些区块链系统使用了隐私保护技术,使得人们虽然可以查看所有信息,但不能查看一些隐私信息 [20-21]。3.匿名性在区块链中,数据交换的双方可以是匿名的,系统中的各个节点无须知道彼此的身份和个人信息即可进行数据交换 [20]。我们谈论的隐私通常是指广义的隐私:别人不知道你是谁,也不知道你在做什么。事实上,隐私包含两个概念:狭义的隐私(Privacy)与匿名(Anonymity)。狭义的隐私就是别人知道你是谁,但不知道你在做什么;匿名则是别人知道你在做什么,但不知道你是谁。虽然区块链上的交易使用化名(Pseudonym),即地址(Address),但由于所有交易和状态都是明文,因此任何人都可以对所有化名进行分析并建构出用户特征(User Profile)。更有研究指出,有些方法可以解析出化名与IP的映射关系,一旦IP与化名产生关联,则用户的每个行为都如同裸露在阳光下一般。在比特币和以太坊等密码学货币的系统中,交易并不基于现实身份,而是基于密码学产生的钱包地址。但它们并不是匿名系统,很多文章和书籍里面提到的数字货币的匿名性,准确来说其实是化名。在一般的系统中,我们并不明确区分化名与匿名。但专门讨论隐私问题时,会区分化名与匿名。因为化名产生的信息在区块链系统中是可以查询的,尤其是在公有链中,可以公开查询所有的交易的特性会让化名在大数据的分析下完全不具备匿名性。但真正的匿名性,如达世币、门罗币、Zcash等隐私货币使用的隐私技术才真正具有匿名性。匿名和化名是不同的。在计算机科学中,匿名是指具备无关联性(Unlinkability)的化名。所谓无关联性,就是指网络中其他人无法将用户与系统之间的任意两次交互(发送交易、查询等)进行关联。在比特币或以太坊中,由于用户反复使用公钥哈希值作为交易标识,交易之间显然能建立关联。因此比特币或以太坊并不具备匿名性。这些不具备匿名性的数据会造成商业信息的泄露,影响区块链技术的普及使用 [18] [20-21]。4.可追溯性区块链采用带时间戳的块链式存储结构,有利于追溯交易从源头状态到最近状态的整个过程。时间戳作为区块数据存在的证明,有助于将区块链应用于公证、知识产权注册等时间敏感领域 [6] [19]。5.透明性相较于用户匿名性,比特币和区块链系统的交易和历史都是透明的。由于在区块链中,账本是分发到整个网络所有参与者,账本的校对、历史信息等对于账本的持有者而言,都是透明的、公开的 [6]。6.不可篡改性比特币的每次交易都会记录在区块链上,不同于由中心机构主宰的交易模式,其中心机构可以自行修改任意用户的交易信息,比特币很难篡改 [6]。7.多方共识区块链作为一个多方参与维护的分布式账本系统,参与方需要约定数据校验、写入和冲突解决的规则,这被称为共识算法。比特币和以太坊作为公有链当前采用的是工作量证明算法(PoW),应用于联盟链领域的共识算法则更加灵活多样,贴近业务需求本身 [20]。区块链技术发展历史播报编辑区块链技术发展脉络1.区块链1.0 1.0时代是以比特币为代表的虚拟数字货币时代,实现了数字货币的应用,包括支付流通等货币职能和去中心化的支付手段。比特币描述了一个宏伟的蓝图,未来的货币不再依赖于各国央行发行,而是全球统一的货币。2.区块链2.0 2.0时代是智能合约的时代,智能合约与数字货币结合在金融领域有着更广泛的应用场景,区块链实现的点对点操作避免了第三方的介入,可以避免环境、跨国、跨行、货币转换等问题,直接实现点对点的转账,提高了金融系统的效率。区块链2.0的代表是以太坊,以太坊提供了一个智能合约编程环境,用户通过开发智能合约实现了各种复杂逻辑,提供了广泛的商业、非商业应用场景。3.区块链3.03.0时代是指将区块链技术应用于金融之外行业的时代,区块链3.0被称为互联网技术之后的新一代技术创新,可以推动更大的产业改革。区块链3.0会涉及社会生活的各个方面,会在数据存储、数据鉴证、资产管理、选举投票等领域得到广泛应用,促进信息、资源、价值的流通和有效配置。区块链技术发展历程1.比特币产生之前(1970-2008年)1976年,Bailey W.Diffie和Martin E.Hellman发表了论文《密码学的新方向》 [11],论文覆盖了未来几十年密码学所有的新的进展领域,包括非对称加密、椭圆曲线算法、哈希等,该论文奠定了迄今为止整个密码学的发展方向,也对区块链的技术和比特币的诞生起到决定性作用。哈耶克出版了他人生中最后一本经济学方面的专著:《货币的非国家化》 [12]。该书提出的非主权货币、竞争发行货币等理念,是去中心化货币的精神指南。1980年,Merkle Ralf提出了Merkle-Tree这种数据结构和相应的算法。1982年,拜占庭将军问题由Leslie Lamport等提出,这是一个点对点通信中的基本问题。1982年,密码学网络支付系统由David Chaum提出,该系统注重隐私安全,具有不可追踪的特性。1990年,Paxos算法由Leslie Lamport提出,这是一种基于消息传递的一致性算法。1991年,Stuart Haber与W.Scott Stornetta于1991年提出利用时间戳确保数位文件安全的协议。1997年,哈希现金技术由Adam Back发明。哈希现金运用的一种PoW算法通过依赖成本函数的不可逆性,从而实现容易被验证但很难被破解的功能,最早应用于拦截垃圾邮件。1998年,戴伟于1998年发表匿名的分散式电子现金系统b-money,引入PoW机制,强调点对点交易和不可篡改特性,每个节点分别记录自己的账本。2004年,哈尔·芬尼推出了自己的电子货币,在其中采用了可复用的工作量证明机制(RPoW)。2.比特币的诞生与发展(2008-2010年)2008年9月,以雷曼兄弟的倒闭为开端,金融危机在美国爆发并向全世界蔓延。为应对危机,世界各国政府和中央银行采取了史无前例的财政刺激方案和扩张的货币政策并对金融机构提供紧急援助、这些措施同时引起了广泛的质疑 [45]。2008年11月1日,中本聪发布比特币白皮书。2008年11月16日,中本聪发布了比特币代码的先行版本。2009年1月3日,中本聪在位于芬兰赫尔辛基的一个小型服务器上挖出了比特币的第个区块——创世区块(Genesis Block),并获得了首批“挖矿”奖励——50个比特币。2009年1月11日,比特币客户端0.1版发布。2009年1月12日,第一笔比特币交易,中本聪将10枚比特币发送给密码学界活跃的开发者哈尔·芬尼。2009年10月5日,最早的比特币与美元的汇率为1美元=1309.03比特币,由一位名为“新自由标准”(New Liberty Standard)的用户发布 [45]。一枚比特币的价值计算方法如下:由高CPU利用率的计算机运行一年所需要的平均电量1331.5千瓦时,乘以上年度美国居民平均用电成本0.1136美元,除以12个月,再除以过去30天里生产的比特币数量,最后除以1美元。2009年12月30日,比特币挖矿难度首次增长,为了保持每10分钟1个区块的恒定开采速度,比特币网络进行了自我调整,挖矿难度变得更大。2010年5月22日,一个程序员用10000个比特币购买了两张比萨的优惠券。当时一枚比特币价值仅为0.005美分。后来很多的人将5.22日称为“比特币比萨日” [45]。2010年7月12日,比特币价格第一次剧烈波动,2010年7月12日到7月16日,比特币汇率经历了为期5天的价格剧烈波动时期,从0.008美元/比特币上涨到0.08美元/比特币,这是比特币汇率发生的第一次价格剧烈波动。2010年7月12日,GPU挖矿开始。由于比特币的汇率持续上升,积极的矿工们开始寻找提高计算能力的方法。专用的图形卡比传统的CPU具有更多的能量。据称,矿工ArtForz是第一个成功实现在矿场上用个人的OpenCL GPU挖矿的人。2010年7月17日,第一个比特币交易平台Mt. Gox成立。2010年8月6日,比特币网络协议升级。比特币协议中的一个主要漏洞于2010年8月6日被发现:交易信息未经正确验证,就被列入交易记录或区块链。这个漏洞被人恶查利用,生成了1840亿枚比特币,并被发送到两个比特币地址上。这笔非法交易很快就被发现、漏洞在数小时内修复,在交易日志中的非法交易被删除,比特币网络协议也因此升级至更新的版本 [33]。2010年10月16日,出现了第一笔托管交易。比特币论坛会员Diablo-D3和Nanotube于2010年10月16日进行了第一笔有记录的托管交易,托管人为Theymos。2010年12月5日,比特币第一次与现实的金融社区产生交集。在维基解密泄露美国外交电报事件期间,比特币社区呼吁维基解密接受比特币捐款以打破金融封锁。中本聪表示坚决反对,认为比特币还在摇篮中,经不起冲突和争议。2010年12月16日,比特币矿池出现,采矿成为一项团队运动,一群矿工于2010年12月16日一起在slush矿池挖出了它的第一个区块。根据其贡献的工作量,每位矿工都获得了相应的报酬。此后的两个月间,slush矿池的算力从1400Mhash/s增长到了60Ghash/s。3.对比特币的质疑与关注(2011-2014年)2011年2月9日,比特币首次与美元等价 [3]。2011年3月6日,比特币全网计算速度达到900G Hash/s,显示“挖矿”流行起来。2011年6月20日,世界上最大的比特币交易网站Mt.Gox出现交易漏洞,1比特币只卖1美分,而此前的正常价格在15美元左右。Mt.Gox一方面号召用户赶紧修改密码,另一方面宣布这一反常时段内的所有大单交易无效。2011年6月29日,比特币支付处理商BitPay于2011年6月29日推出了第一个用于智能手机的比特币电子钱包。2011年7月,当时世界第三大比特币交易所Bitomat丢失了17000枚比特币。2011年8月,MyBitcoin遭黑客攻击,涉及49%的客户存款,超过78000个比特币。2011年8月20日,第一次比特币会议在纽约召开。2012年8月14日,芬兰中央银行承认比特币的合法性。2012年9月27日,比特币基金会成 [25]。2012年11月25日,欧洲第一次比特币会议召开。2012年11月28日,区块奖励首次减半。2012年12月26日,法国比特币中央交易所诞生。2013年7月30日,泰国封杀比特币。2013年8月19日,德国承认比特币的合法性。2013年11月29日,比特币价格首度超过黄金。2013年12月,支付宝停止接受比特币付款。2013年12月5日,中国人民银行等五部委发布《关于防范比特币风险的通知》,明确比特币不具有与货币等同的法律地位,不能且不应作为货币在市场上流通使用。通知发出后,当天比特币的单价大跌[83]。2013年12月18日,比特币单价暴跌。中国两大比特币交易平台比特币中国和OKCoin发布公告,宣布暂停人民币充值服务。随后,比特币的单价跌到了2011元。2013年年末,以太坊创始人Vitalik Buterin发布了以太坊初版白皮书,启动了项目。2014年7月9日,波兰财政部副部长Wojciech Kowalczyk发布了一个文件,确认了比特币在波兰现有的金融法规下可作为一种金融工具。2014年7月12日,法国发布比特币新规。法国经济和金融部门表示将在当年年底对比特币和其他数字货币的金融机构和个人使用者实施监管措施。2014年7月24日起,以太坊进行了为期42天的以太币预售。2014年12月11日,微软接受比特币支付。4.区块链成为热门话题(2015-2023年)2015年,比特币突破1P Hash/s的全网版图。2015年,IBM宣布加入开放式帐本项目。2015年,微软公司宣布支持区块链服务。2015年6月,坦桑德银行进行区块链实验。2015年10月22日,欧盟对比特币免征增值税。2015年12月16日,比特币证券发行。美国证券交易委员会批准在线零售商Overstock通过比特币区块链发行该公司的股票。2016年初,以太坊的技术得到市场认可,价格开始暴涨,吸引了大量开发者以外的人进入以太坊的世界。2016年4月5日,去中心化电子商务协议OpenBazaar上线。2016年5月25日,日本认定比特币为财产。2016年6月,民法总则划定虚拟资产保护范围。第十二届全国人大常委会第二十一次会议于2016年6月在北京举行,会议首次审议了全国人大常委会委员长提请的《中华人民共和国民法总则(草案)》议案的说明。草案对网络虚拟财产、数据信息等新型民事权利客体作出了规定,这意味着网络虚拟财产、数据信息将正式成为权利客体,比特币等网络虚拟财产将正式受到法律保护 [32]。2016年7月20日,比特币奖励二次减半。2017年2月,中国央行数字货币DCEP试运行。中国央行或将成为全球首个发行数字货币并将其投入真实应用的中央银行。2017年2月26日,中国区块链应用研究中心(上海)正式揭牌成立。2017年3月24日,阿里巴巴与普华永道签署了一项跨境食品溯源的互信框架合作,将应用区块链等新技术共同打造透明可追溯的跨境食品供应链,搭建更为安全的食品市场。2017年4月,腾讯发布区块链方案白皮书,旨在打造区块链生态。2017年4月1日,比特币正式成为日本合法支付方式。2017年4月25日,首个“区块链大农场”推介会在上海举办。2017年5月31日,中国三大比特币交易所之二的火币网及OKCoin币行正式上线以太坊。2017年9月4日下午,中国人民银行等七部委联合发布公告:ICO是未经批准非法融资行为。ICO在中国被叫停 [32]。2018年,比特币价格从最高的19000美元,下滑到3000多美元,跌幅超过80%。2018年初,Facebook CEO马克·扎克伯格宣布探索加密技术和虚拟加密货币技术,亚马逊、谷歌、IBM等也相继入场。国内市场方面,国内腾讯、京东、阿里巴巴等互联网巨头也都接连宣布涉足区块链,迅雷更是通过提前布局云计算与区块链实现了企业的转型与业务的快速增长 [10]。2018年1月22日,英国技术发展部门相关人士表示,英国将投资1900万英镑用于支持区块链等新兴科技领域的新产品或服务。2018年1月27日,“CIFC区块链联盟”成立仪式在北京举行。2018年3月11日,召开“第二期CIFC区块链技术与应用实践闭门会”。2018年3月31日,召开“2018首届‘区块链+’百人峰会暨CIFC区块链与数字经济论坛”。2018年4月9日下午,雄岸100亿元基金成立,中国杭州区块链产业园启动仪式在杭州未来科技城举行,首批10家区块链产业企业集中签约入驻。2018年4月,百度图腾正式上线,实现原创作品可溯源、可转载、可监控。次月,百度百科上链,利用区块链不可篡改特性保持百科历史版本准确存留。2018年5月12日,乌镇普众区块链学院正式揭牌成立。2018年5月25日,360首次发布针对区块链领域的安全解决方案。该方案基于360的安全大数据,结合360安全大脑,涵盖了钱包、交易所、矿池、智能合约四大领域。2018年5月28日,中国国家主席习近平在中国科学院第十九次院士大会、中国工程院第十四次院士大会上发表重要讲话,表示区块链与人工智能、量子信息、移动通信、物联网并列为新一代信息技术的代表。2018年5月底,北京、上海、广东、河北(雄安)、江苏、山东、贵州、甘肃、海南等24个省市或地区发布了区块链政策及指导意见,多个省份将区块链列入本省“十三五”战略发展规划,开展对区块链产业链布局[82]。2018年6月25日,蚂蚁金服宣布推出基于区块链技术的电子钱包跨境汇款业务,首次跨境业务开展于香港地区和菲律宾的个人转账业务,实现香港地区向菲律宾汇款能做到3秒到账。2018年9月3日,最高人民法院印发《关于互联网法院审理案件若干问题的规定》首次认定链上数据可以作为司法采信的依据。2019年1月,百度运用区块链等技术将北京海淀公园升级改造完毕,推出了全国首个AI公园 [4]。2019年6月18日,Facebook牵头发布全球数字加密货币项目Libra白皮书。2019年9月,德国发布其“国家区块链发展战略”。2019年11月,欧盟委员会宣布针对欧洲人工智能和以区块链为重点的初创公司的新投资计划。2020年2月,澳大利亚发布《国家区块链发展路线图》。2020年3月,韩国科学与ICT部宣布发起《区块链技术验证支撑计划2020》。2021年3月公布的《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》中,区块链被列为七大新兴数字产业之一,明确提出了区块链技术创新、应用发展、监管机制完善的三大重点任务,特别强调了以联盟链为重点发展金融科技应用 [31]。2021年7月19日,农业农村部信息中心牵头在山东省潍坊市开展“区块链+韭菜”试点。2022年1月,亚洲开发银行与东南亚国家、日本、中国、韩国组成联盟,基于区块链实现在“10+3”地区的中央银行和证券存管机构数据互联互通。2022年5月,最高人民法院发布《关于加强区块链司法应用的意见》,提出充分发挥区块链在促进司法公信、服务社会治理、防范化解风险、推动高质量发展等方面的作用,全面深化智慧法院建设,推进审判体系和审判能力现代化 [26]。2022年9月,以太坊完成合并升级,从PoW共识迁移至PoS共识,大幅提升其性能、安全性和可扩展性,能耗降低99.95% [29]。2022年9月,Github上的流行区块链项目(关注度大于300)数量达到761项。2022年10月,国务院办公厅印发全国一体化政务大数据体系建设指南,提出积极运用云计算、区块链、人工智能等技术提升数据治理和服务能力,加快政府数字化转型,提供更多数字化服务。2023年5月16日,上海树图区块链研究院与中国电信股份有限公司研究院联合研发的BSIM卡(区块链SIM卡)在上海对外发布。BSIM卡比SIM卡存储空间扩大10倍至20倍,计算能力提升数十倍,实现卡内生成和存储用户的公私钥 [41]。2023年5月25日,2023中关村论坛开幕式发布十项重大科技成果,其中涉及区块链和量子计算等领域。2023年8月25日,2023中国产业区块链峰会在南京市鼓楼区召开,《中国产业区块链发展报告(2023)》和《2023中国产业区块链生态图谱》发布。《中国产业区块链发展报告(2023)》显示,2022年国际级重要区块链政策对比过去有所下降,产业区块链从政策引领过渡至产业自驱动阶段。但2022年区块链专利申请数量仍处于较高水平,技术与应用创新仍处于高速发展期 [40]。2023 年 9 月,经营范围涉及云计算、大数据、人工智能、区块链等数字技术的企业超过 53 万家。从产业链供应链数字经济重点项目来看,2022 年新增重点项目数达到 912 个,占比约为 46.18%,新增重点项目数保持高速增长 [28]。2023年11月1日,社交平台telegram发起的区块链项目TON达到历史最高出块速度,每秒钟最快记录是108409个区块 [42]。区块链的分类播报编辑根据去中心化程度,区块链系统可以分为公有链、联盟链和私有链三类 [5],这三类区块链的对比如下表所示。三类区块链的对比特征公有链联盟链私有链参与者任何人自由进出企业或联盟成员个体或公司内部共识机制PoW/PoS/DPoS等分布式一致性算法分布式一致性算法激励机制需要可选不需要中心化程度去中心化多中心化(多)中心化数据一致性概率(弱)一致性确定(强)一致性确定(强)一致性网络规模大较大小处理交易能力3~20/s-11000~10000/s-11000~200000/s-1典型应用加密货币、存证支付、清算审计公有链由于公有链系统对节点是开放的,公有链通常规模较大,所以达成共识难度较高,吞吐量较低,效率较低。在公有链环境中,由于节点数量不确定,节点的身份也未知,因此为了保证系统的可靠可信,需要确定合适的共识算法来保证数据的一致性和设计激励机制去维护系统的持续运行。典型的公有链系统有比特币、以太坊。联盟链联盟链通常是由具有相同行业背景的多家不同机构组成的,其应用场景为多个银行之间的支付结算、多种企业之间的供应链管理、政府部门之间的信息共享等。联盟链中的共识节点来自联盟内各个机构,且提供节点审查、验证管理机制,节点数目远小于公有链,因此吞吐量较高,可以实现毫秒级确认;链上数据仅在联盟机构内部共享,拥有更好的安全隐私保护。联盟链有Hyperledger、Fabric、Corda平台和企业以太坊联盟等。私有链私有链通常部署于单个机构,适用于内部数据管理与审计,共识节点均来自机构内部。私有链一般网络规模更小,因此比联盟链效率更高,甚至可以与中心化数据库的性能相当。联盟链和私有链由于准入门槛的限制,可以有效地减小恶意节点作乱的风险,容易达成数据的强一致性。区块链的架构播报编辑2016年袁勇和王飞跃提出了区块链基础架构的“六层模型” [22],从底层到上层依次是数据层、网络层、共识层、激励层、合约层和应用层。数据层包括区块结构和数据加密等技术;网络层包括网络结构、数据传播技术和验证机制等;共识层包括PoW(工作量证明)、PoS(权益证明)、DPoS(授权股份证明)等多个网络节点之间的共识机制;激励层包括激励的发行和分配机制;合约层包括各种脚本代码和智能合约;应用层包括数字货币等应用场景。区块链基础架构的“六层模型”数据层数据层负责区块链数据结构和物理存储,区块链的数据结构表示为交易被排序的区块链表。区块记录一段时间内的交易记录,将一段时间内收到的交易记录封装到一个数据区块中,在区块的头部包含块的元数据,元数据主要包括区块当前版本、父区块的哈希值、 Merkle树根哈希(用于有效总结区块中所有交易的数据结构)、区块创建时间、区块当前难度和一个随机值)区块头用于验证区块的有效性。每个区块头都连接着前一个区块,这使得区块中的每一个交易都有据可查,区块的哈希值能够唯一标识区块,将区块按照区块头中的哈希指针链接成一个链,就是区块链。区块结构区块链中通常保存数据的哈希值,而不是直接保存原始的数据。由于哈希函数不能反推出输入值,计算过程消耗的时间大约相同,输出值长度固定,输入的任何变动都会导致输出显著不同,因而其非常适合用于存储区块数据。例如比特币通常使用双SHA256哈希函数。Merkle树是区块链数据层的一种重要数据结构,区块链中交易的哈希值存储为Merkle树的一部分。Merkle树通过生成整个交易集的数字指纹来汇总块中的所有交易,从而使用户能够验证交易是否包含在块中。Merkle树逐层记录哈希值的特点使底层数据的任何变动,都会传递到其父节点,一层层沿着路径一直到树根,这意味着树根的值实际上代表了对底层所有数据的数字摘要,实现了块内交易数据的不可篡改性。Merkel树使得区块头只需要包含根哈希值,而不必封装所有底层数据,从而极大地提高了区块链的运行效率和可扩展性。此外Merkel树支持“简化支付验证”,可以在不运行完整区块链网络节点的情况下完成对数据的检验。网络层网络层实现了区块链网络中节点之间的信息交流,属于分布式存储技术。区块链的点对点机制、数据传播机制、数据验证机制、分布式算法和加密签名等都是在网络层实现的。区块链网络中没有中心节点,任意两个节点间可直接进行交易,任何时刻每个节点都可自由地加入或退出网络,因此,区块链平台通常选择完全分布式且可容忍单点故障的P2P协议作为网络传输协议。区块链网络的P2P协议主要用于节点间传输交易数据和区块数据。在区块链网络中,每个节点都具有平等、分治、分布等特性和路由发现、广播交易、发现新节点等功能,不存在中心化的权威节点和层级结构。节点之间通过维护一个共同的区块链结构来保持通信,共同维护整个区块链账本。按照节点中存储的数据量,节点可以划分为全节点和轻量级节点,全节点中保存有完整的区块链数据,并且实时动态更新主链,这样的优点是可以独立完成区块数据的校验、查询和更新,缺点是空间成本高;轻量级节点仅保存部分区块数据,需要从相邻节点获取所需的数据才能完成区块数据校验。节点时刻监听网络中广播的数据,当新的区块生成后,生成该区块的节点会向全网广播,其他节点收到发来的新交易和新区块时,其首先会验证这些交易和区块是否有效,包括交易中的数字签名、区块中的工作量证明等,只有验证通过的交易和区块才会被处理和转发,以防止无效数据的继续传播。共识层共识层负责让高度分散的节点在去中心化的区块链网络中高效地针对区块数据的有效性达成共识,封装了区块链系统中使用的各类共识算法。区块链系统的核心是区块链账本数据的维护,因此,共识的过程是各节点验证及更新账本的过程,共识的结果是系统对外提供一份统一的账本。由于区块链系统未对参与节点的身份进行限制,网络中的节点可能为了利益进行欺骗、作恶,所以为了避免恶意节点,系统要求每一次记账都需要付出一定的代价,而其余的节点只要很小的代价就可以验证。“代价”有很多种形式,如计算资源、存储资源、特殊硬件等。公式算法机制包括工作量证明(PoW)、权益证明(PoS)、授权股份证明(DPoS)等。工作量证明要求每个节点都使用自身算力解决SHA256计算难题,寻找一个合适的随机数使得区块头部元数据的SHA256哈希值小于区块头中难度目标的设定值,难度目标越大合适的随机数越难找到,首先找到的节点可以获得新区块的记账权并获得奖励。SHA256计算难题的解决很困难,但是验证非常容易,这样其他节点可以快速地验证新区块,如果正确就将该区块加入区块链中并开始构建下一个区块。PoW机制将奖励和共识过程融合,使更多节点参与进来并保持诚信,从而增强了网络的可靠性和安全性。对于PoW机制来说,若要篡改和伪造区块链中的某个区块,就必须对该区块及后续的所有区块重新寻找块头的随机数,并日使该分支链的长度超过主链,这要求攻击者至少掌握全网51%以上的算力,因此攻击难度非常大。PoW机制的实质是通过牺牲性能来换取数据的一致性和安全性,所以基于PoW机制的区块链平台的性能相对较低。权益证明是利用节点持有的代币信息来选取记账节点的算法。通过选举的形式,其中任意节点被随机选择来验证下一个区块,要成为验证者,节点需要在网络中存入一定数量的货币作为权益,权益的份额大小决定了被选为验证者的概率,从而得以创建下一个区块。验证者将检查区块中的交易是否有效,若有效则将该区块添加到区块链中,同时该节点获得一定的利益,若通过了非法的交易,则该节点会失去一部分权益,这样节点就会以保护自己权益的目的诚实地进行记账。相较于PoW,PoS解决了算力浪费的问题,并能够缩短达成共识所需的时间,这使得许多数字货币采用PoS共识机制。授权股份证明是由PoS演变而来的,拥有数字货币的节点通过抵押代币获得选票,通过投票的方式选出一些节点作为出块节点,负责对交易打包生成区块,让更有能力的节点胜任生成区块的工作,类似于公司的董事会制度。在每一轮共识中,从出块节点中轮流选出一个节点生成区块,并广播给其他的区块进行验证。若节点无法在规定时间内完成生成区块的任务或生成的区块无法经过验证,则会被取消资格。与PoW机制中的信任高算力节点和PoS机制中的信任高权益节点不同,DPoS机制中每个节点都可以自主地选择信任的节点,大大地减少了参与记账和验证的节点数量,可以实现快速共识验证。激励层激励层主要包括发行机制和分配机制,通过奖励部分数字资产来鼓励节点参与区块链的安全验证工作,从而维护挖矿活动以及账本更新持续进行。去中心化系统中的共识节点都是以自身利益最大化为目标的,因此必须使共识节点自身利益最大化与保证区块链系统安全和有效的目标相吻合。公有链依赖全网节点共同维护数据,节点不需要进行认证,可以随时加入、退出这个网络,CPU、存储、带宽等资源,所以需要有一定的激励机制来确保矿工在记账的过程记账需要消耗中能有收益,以此来保证整个区块链系统朝着良性循环的方向发展。在联盟链中,所有节点都是已经经过组织认证的节点,不需要额外的激励,这些节点也会自发地维护整个系统的安全和稳定。以比特币系统为例,发行机制是指每个区块发行的比特币数量随时间阶段性递减,每21万个区块之后每个区块发行的比特币数量减半,最终比特币总量达到2100万的上限,同时每次比特币交易都会产生少量的手续费。PoW共识会将新发行的比特币和交易手续费作为激励,奖励给成功找到合适的随机数并完成区块打包工作的节点,因此只有所有共识节点共同维护比特币系统的有效性和安全性,其拥有的比特币才会有价值。分配机制是指大量小算力节点加入矿池,通过合作来提高挖到新区块的概率,并共享该区块的比特币和手续费奖励。合约层合约层负责封装区块链系统的脚本代码、算法和智能合约,是实现区块链系统编程和操作数据的基础。出现较早的比特币系统使用非图灵完备的简单脚本代码来实现数字货币的交易过程,这是智能合约的雏形,目前如以太坊已经实现了图灵完备的智能合约脚本语言,使区块链可以实现宏观金融和社会系统等更多应用。智能合约是一种用算法和程序来编写合同条款、部署在区块链上并且可以按照规则自动执行的数字化协议。理想状态下的智能合约可以看作一台图灵机,是一段能够按照事先的规则自动执行的程序,不受外界人为干预。它的存在是为了让一组复杂的、带有触发条件的数字化承诺能够按照参与者的意志,正确执行。区块链系统提供信任的环境,使得智能合约的概念得以实现,各用户对规则协商一致后创建合约代码,并将该合约代码上链,一旦满足触发条件,合约代码将由矿工按照预设规则执行。区块链的去中心化使得智能合约在没有中心管理者参与的情况下,可同时运行在全网所有节点,任何机构和个人都无法将其强行停止。智能合约拓展了区块链的功能,丰富了区块链的上层应用,允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。 应用层比特币平台上的应用主要是基于比特币的数字货币交易。以太坊除了基于以太币的数字货币交易外,还支持去中心化应用(Decentralized Application,Dapp),Dapp是由JavaScript构建的Web前端应用,通过JSON-RPC与运行在以太坊节点上的智能合约进行通信。Hyperledger Fabric主要面向企业级的区块链应用,并没有提供数字货币,其应用可基于Go、Java、Python、Node.js等语言的SDK构建 [24],并通过gRPC或REST与运行在Hyperledger Fabric节点上的智能合约进行通信。典型区块链系统播报编辑Bitcoin比特币是一种基于去中心化,采用点对点网络与共识主动性,开放源代码,以区块链作为底层技术的加密货币,是最早应用区块链技术的系统。比特币系统是一种电子支付系统,它不是基于权威机构的信用,而是基于密码学原理,使任何达成一致的交易双方都可以直接进行支付,不需要任何第三方机构的参与。比特币的主要概念包括交易、时间戳服务器、工作量证明、网络、激励等。交易是比特币系统中最重要的部分。比特币中的其他一切都是为了确保交易可以被创建、在网络上传播、被验证,并最终添加到全局交易分类账本(区块链)中。比特币交易的本质是数据结构,这些数据结构是对比特币交易参与者价值传递的编码。比特币区块链是一本全局复式记账总账簿,每个比特币交易都是在比特币区块链上的一个公开记录。比特币将电子币定义为数字签名链,币的转移是通过所有者对前一笔交易和下一个所有者的公匙进行签名,并将这两个签名放到币的末端来实现的。收款人可以通过验证签名来验证链所有权。比特币采用了非对称加密技术,公钥就是用户的账户号码,当用户要消费比特币时,需要用私钥进行签名,系统会用账户号码也就是公钥验证签名是否正确,并且根据用户的账户号码从历史的交易中计算出当前账户中的真实金额,确保用户操作的资金在账户真实金额之内每一条交易记录都需要用私钥签名,系统用公钥验证签名是否正确,验证正确则认为合法,再验证插入的记录中转账金额是否正确,验证的方式是对该公钥以往的所有交易记录进行计算,得出该账户当前的金额,如果不超过该金额则为合法。这种机制保证只能对自己的账户进行操作,再结合P2P网络结构下的最终一致性原则,以及账本的链式结构,一个攻击者需要算力超过目前的集群才能创建另外一个账本分支,并且攻击者也只能更改自己的账户,所以这种攻击的收益极低,而对于比特币系统来说,强大的算力让比特币系统更加稳健了。比特币通过算力竞争的工作量证明机制使各节点来解决一个求解复杂但验证简单的SHA256数学难题,最快解决该难题的节点会获得区块记账权和该区块生成的比特币作为奖励。此难题可以理解为根据当前难度值通过暴力搜索找到一个合适的随机数(Nonce),使得区块头各元数据的双SHA256值小于等于目标值。比特币系统会自动调整难度值以保证区块生成的平均时间为10分钟。符合要求的区块头哈希值通常由多个前导零构成,难度值越大,区块头哈希值的前导零越多,成功找到合适的随机数并挖出新区块的难度越大。比特币采用了基于互联网的点对点(P2P)网络架构,网络中的每一个节点都是平等的,不存在任何中心化服务和层级结构,以扁平的拓扑结构相互连通。当新的区块生成后,生成该区块的节点会将区块数据广播到网络中,其他节点加以验证。比特币的区块数据传播主要包括以下步骤。(1)向全网所有节点广播新的交易。(2)每个节点都将收集到新的交易并打包到一个区块中。(3)每个节点都致力于为它的区块找到一个有难度的工作量证明。(4)当一个节点找到工作量证明后,就将该区块广播给所有节点。(5)只有区块中所有的交易都有效并且之前不存在,其他节点才会接受这个区块。(6)其他节点通过用已接受区块的哈希值作为前一个哈希值,在链中创造新区块,来表示它们接受了这个区块。所有节点都将最长的链条视为正确的链,并且继续延长它,如果两个节点同时广播了不同会选择的新区块,这时两个区块都会保留,链上出现分支,当每个分支都继续变长后,所有节点会选最长的一个分支作为主链,继续在它后面创造区块。比特币每个区块的第一笔交易中都包含了支付给创造者的新发行的比特币和其他交易手续费,这样会激励节点更加支持比特币系统,这是在没有中央集权机构发行货币的情况下将电子货币分配到流通领域的一种方法,类似于开采金矿将黄金注入流通领域。激励系统有利于使节点保持诚实,如果恶意的攻击者拥有比诚实节点更多的总算力,他会发现破坏这个系统会让自身财富受损,而保持诚实会让他获得更多的电子货币。Ethereum以太坊(Ethereum)是将比特币中的技术和概念运用于计算领域的一项创新。比特币被认为是一个系统,该系统维护了一个安全地记录了所有比特币账单的共享账簿。以太坊利用很多跟比特币类似的机制(比如区块链技术和P2P网络)来维护一个共享的计算平台,这个平台可以灵活且安全地运行用户想要的任何程序(包括类似比特币的区块链程序)。以太坊的特性包括以下几方面。1.以太坊账户在以太坊系统中,状态是由被称为“账户”(每个账户都有一个20字节的地址)的对象和在两个账户之间转移价值和信息的状态转换构成的。以太币(Ether)是以太坊内部的主要加密货币,用于支付交易费用。一般而言,以太坊有两种类型的账户:外部所有的账户(由私钥控制)和合约账户(由合约代码控制)。外部所有的账户没有代码,人们可以通过创建和签名一笔交易从一个外部账户发送消息。每当合约账户收到一条消息时,合约内部的代码就会被激活,允许它对内部存储进行读取和写入,发送其他消息或者创建合约。2.消息和交易以太坊的消息在某种程度上类似于比特币的交易,但是两者之间存在三点重要的不同。第一,以太坊的消息可以由外部实体或者合约创建,然而比特币的交易只能从外部创建。第二,以太坊消息可以选择包含数据。第三,如果以太坊消息的接收者是合约账户,可以选择进行回应,这意味着以太坊消息也包含函数概念。以太坊中“交易”是指存储从外部账户发出的消息的签名数据包。交易包含消息的接收者、用于确认发送者的签名、以太币账户余额、要发送的数据和两个被称为STARTGAS和GASPRICE的数值。3.代码执行以太坊合约的代码使用低级的基于堆栈的字节码语言写成,被称为“以太坊虚拟机代码”或者“EVM代码”。代码由一系列字节构成,每一个字节都代表一种操作。一般而言,代码执行是无限循环的,程序计数器每增加一(初始值为零)就执行一次操作,直到代码执行完毕或者遇到错误。4.应用一般来讲,以太坊之上有三类应用。第一类是金融应用,为用户提供更强大的用他们的钱管理和参与合约的方法,包括子货币、金融衍生品、对冲合约、储蓄钱包、遗嘱,甚至一些种类全面的雇佣合约。第二类是半金融应用,这里有金钱的存在,但也有很大比例的非金钱方面,一个完美的例子是为解决计算问题而设的自我强制悬赏。第三类是在线投票和去中心化治理这样的完全非金融应用。各种各样的金融合约——从简单的实体资产(黄金、股票)数字化应用,到复杂的金融衍生品应用,面向互联网基础设施的更安全的更新与维护应用(比如DNS和数字认证),不依赖中心化服务提供商的个人线上身份管理应用(因为中心化服务提供商很可能留有某种后门,并借此窥探个人隐私)。除了已经被很多创业团队实现出来的上百种区块链应用以外,以太坊也被一些金融机构、银行财团,以及类似三星、Deloitte、RWE和IBM这类的大公司所密切关注,由此也催生了一批诸如简化和自动化金融交易、商户忠诚指数追踪、旨在实现电子交易去中心化的礼品卡等区块链应用。LibraLibra(已经改名为Diem)是Facebook提出的一种支付体系,旨在建立一套简单的、无国界的货币和为数十亿人服务的金融基础设施。Libra由三个部分组成,它们共同作用,创造了一个更加普惠的金融体系:(1)它建立在安全、可扩展和可靠的区块链基础上;(2)它以赋予它内在价值的资产储备为后盾;(3)它由独立的Libra协会治理,该协会的任务是促进此金融生态系统的发展。Libra/Diem币建立在安全、可扩展和可靠的区块链基础上,由现金、现金等价物和非常短期的政府证券组成的储备金支持,由独立的Libra/Diem协会及其附属网络进行管理、开发及运营。它旨在面向全球受众,所以实现Libra/Diem区块链的软件是开源的,以便所有人都可以在此基础上进行开发,且数十亿人都可以依靠它来满足自己的金融需求。随着智能手机和无线数据的激增,越来越多的人将通过这些新服务上网和使用Libra/Diem。为了使Libra/Diem网络能够随着时间的推移实现这一愿景,Libra/Diem协会从零开始构建了其所需的区块链,同时优先考虑了可扩展性、安全性、存储效率、吞吐量以及其对未来的适应性。Libra/Diem支付系统支持单货币稳定币以及一种多货币稳定币,它们统称为Libra/Diem币。每种单货币稳定币都会有1:1的储备金支持,而每个多货币稳定币都是多种单货币稳定币的组合,其继承了这些稳定币的稳定性。Libra/Diem的储备金会受到管理,并随着时间的推移维护Libra/Diem币的价值。通过对现有方案的评估,Libra/Diem决定基于下列三项要求构建一个新的区块链:设计和使用Move编程语言;使用拜占庭容错共识机制;采用和迭代改善已广泛采用的区块链数据结构。1.设计和使用Move编程语言Move是一种新的编程语言,用于在Libra/Diem区块链中实现自定义交易逻辑和“智能合约”。Move语言的设计首先考虑安全性和可靠性,是迄今为止发生的与智能合约相关的安全事件中吸取经验而创造的一种编程语言,能从本质上令人更加轻松地编写符合作者意图的代码,从而降低了出现意外漏洞或安全事件的风险。具体而言,Move从设计上可防止数字备产被复制。它使得将数字资产限制为与真实资产具有相同属性的“资源类型”成为现实:每个资源只有唯一的所有者,资源只能花费一次,并限制创建新资源。2.使用拜占庭容错共识机制Libra/Diem区块链采用了基于Libra/DiemBFT共识协议的BFT机制,来实现所有验证者节点就将要执行的交易及其执行顺序达成一致。这种机制实现了三个重要目标:第一,它可以在网络中建立信任,因为即使某些验证者节点(最多三分之一的网络)被破坏或发生故障.BFT共识协议的设计也能够确保网络正常运行;第二,与其他一些区块链中使用的“工作量证明”机制相比,这类共识协议还可实现高交易处理量、低延迟和更高能效的共识方法;第三,Libra/DiemBFT协议有助于清楚地描述交易的最终性,因此当参与者看到足够数量验证者的交易确认时,他们就可以确保交易已经完成。BFT的安全性取决于验证者的质量,因此协会会对潜在验证者进行调查。Libra/Diem网络的设计以安全第一为原则,并考虑了复杂的网络和对关键基础设施的攻击。该网络的结构是为了加强验证者运行软件的保证,包括利用关键代码分离等技术、测试共识算法的创新方法以及对依赖关系的谨慎管理。最后,Libra/Diem网络定义了在出现严重漏洞或需要升级时重新配置Libra/Diem区块链的策略及过程。3.采用和迭代改善已广泛采用的区块链数据结构默克尔树(Merkle Tree)是一种已在其他区块链中广泛使用的数据结构,它可以侦测到现有数据的任何变化。为了保障所存储交易数据的安全,在Libra/Diem区块链中可以通过默克尔树发现交易数据是否被篡改。与以往将区块链视为交易区块集合的区块链项目不同,Libra/Diem区块链是一种单一的数据结构,可长期记录交易历史和状态。这种实现方式简化了访问区块链应用程序的工作量,允许区块链系统从任何时间点读取任何数据,并使用统一框架验证该数据的完整性。根据以上的设计,Libra/Diem区块链可以提供公共可验证性,这意味着任何人〔验证者、Libra/Diem网络、虚拟资产服务提供商(VASP)、执法部门或任何第三方〕都可以审核所有操作的准确性。交易将以加密方式签名,以便即使所有验证者都被破坏,系统也不能接受具有签名的伪造交易。协会会监督Libra/Diem区块链协议和网络的发展,并在适用监管要求的同时,不断评估新技术,以增强区块链上的隐私合规性。区块链技术播报编辑区块链是由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储,难以篡改,防止抵赖的记账技术,也称为分布式账本技术。随着第一个公有链系统比特币的诞生,区块链技术也蓬勃发展,诞生了很多不同区块链系统,并且可以从节点加入是否需要认证、采用的共识机制等方面看出它们间的不同。但各个区块链系统的整体思路与最终目的是相似的,其运行机制在大的框架中也都相同。共识机制区块链系统采用了去中心化的设计,网络节点分散且相互独立,为了使网络中所有节点达成共识,即存储相同的区块链数据,需要一个共识机制来维护数据的一致性,同时为了达到此目标,需要设置奖励与惩罚机制来激励区块链中的节点。目前有多种共识算法在区块链中使用,其中常见的有工作量证明(PoW)算法、权益证明(PoS)算法、实用拜占庭容错(PBFT)算法。下表是三种共识算法的对比。三种共识算法的对比共识算法PoWPoSPBFT节点管理不需许可不需许可需要许可交易延时高(分钟级)低(秒级)低(毫秒级)吞吐量低高高节能否是是安全边界恶意算力不超过1/2恶意权益不超过1/2恶意节点不超过1/3代表应用比特币、以太坊(旧)以太坊(新)、点点币Fabric扩展性好好差智能合约智能合约的概念早在第一个区块链系统诞生之前就已经存在了,美国计算机科学家Nick Szabo将其定义为:“由合约参与方共同制定,以数字形式存在并执行的会约。”智能合约的初衷是,使得合约的生效不再受第三方权威的控制,而能以一种规则化、白动化的形式运行。以借钱为例,在现实生活中,债主想要强制拿回借出去的钱,需要拿着借名到法院上诉,经过漫长的审判过程才能得到钱。而在智能合约中,合约双方可以就借钱数目还款日期、抵押物等条件制定好规则,然后将合约放入相关系统中,等到了指定期限,合约会自动执行还款操作。智能合约的概念虽然已被提出,但一直缺乏一个好的实现平台。直到中本聪运行了比特币系统,其底层区块链技术的去中心化架构、分布式的信任机制和可执行环境与智能合约十分契合。区块链可以通过智能合约来实现节点的复杂行为执行,而智能合约在区块链的去中心化架构中能够更好地被信任,更方便执行。因此,智能合约与区块链技术的结合成了很多研究人员与学者研究的课题,智能合约与区块链也逐渐绑定了起来。如今提到的智能合约,通常是直接与区块链技术绑定,特指运行在分布式账本之中,且具有规则预置、合约上链、条件响应等流程,并能完成资产转移、货币交易、信息传递功能的计算机程序。如今已有图灵完备的智能合约开发平台问世,并且反响很好,比如以太坊、超级账本Fabric等项目。以太坊是目前全球最具影响力的共享分布式平台之一。智能合约是运行在区块链上的一段代码,代码的逻辑定义了合约的内容,合约部署在区块链中,一旦满足条件会自动执行,任何人无法更改。合约代码是低级的基于堆栈的字节码语言,也被称为“以太坊虚拟机(EVM)代码”,用户可以使用高级编程语言(如C++、Go、Python、Java、Haskell,或专为智能合约开发的Solidity、Serpent语言)编写智能合约,由编译器转换为字节码后部署在以太坊区块链中,最后在EVM中运行。下面给出了一段Solidity语言编写的拍卖智能合约的代码。contract SimpleStorage {uint storedData;function set (uint x) public {storedData = x;} function get() public view returns(uint) {return storedData;}}该实例的功能是设置一个公开变量,并支持其他合约访问。在该实例中,合约声明了一个无符号整数变量,并且定义了用于修改或检索变量值的函数。其他用户可以通过调用该合约上的函数来更改或取出该变量。如果其他用户要调用外部合约,需要创建一个交易,接收地址为该为该智能合约的地址,data域填写要调用的函数及其参数的编码值。智能合约会根据所填写的数据自动运行,同时智能合约之间也可以相互调用。 区块链安全问题播报编辑分布式拒绝服务攻击分布式拒绝服务攻击主要针对交易所、矿池、钱包和区块链中的其他金融服务。与拒绝服务(DoS)攻击不同的是,分布式拒绝服务攻击借助了客户端/服务器技术,将多个计算机联合起来作为攻击平台,对同一个目标发动大量的攻击请求,从而成倍地提高拒绝服务攻击的能力。传统的分布式拒绝服务攻击通过病毒、木马、缓冲区溢出等攻击手段入侵大量主机,形成僵尸网络,然后通过僵尸网络发起拒绝服务攻击。基于区块链网络的分布式拒绝服务攻击不需要入侵主机建立僵尸网络,只需要在层叠网络(应用层)控制区块链网络中的大量在线节点,使其作为一个发起大型分布式拒绝服务攻击的放大平台。这些在线节点为拒绝服务攻击提供了大量的可用资源,如分布式存储和网络带宽,使得攻击成本低、威力巨大,并保证了攻击者的隐秘性。主要攻击方式分为主动攻击和被动攻击。主动攻击是通过主动向网络中的节点发送大量的虚假索引信息,使得针对这些信息的后续访问都指向被攻击者。主动攻击在区块链网络中引入了额外的流量,从而降低网络的节点查找和路由的性能,另外,虚假的索引信息还影响文件的下载速度。被动攻击属于非侵扰式,通过修改区块链客户端或服务器软件,被动地等待来自其他节点的查询请求,再通过返回虚假响应来达到攻击效果。分布式拒绝服务攻击的发起成本不高,但破坏性很强。例如,恶意矿工可以通过分布式拒绝攻击耗尽其竞争对手的网络资源,使得竞争对手被大量网络请求阻塞,从而提高自己的有效哈希率。延展性攻击延展性攻击,是指在原情况不变的情况下,利用外部的虚假交易实现攻击。例如,通过延展性政击可以阻塞网络中的交易队列。恶意攻击者通过支付高额手续费,以高优先级进行虚假交易,使得矿工在验证这些交易时,发现这些交易都是虚假交易,但是它们已经在这些交易的验证上花费了相当长的时间,从而浪费了与攻击者竞争的矿工的时间和带宽资源。另一种延展性攻击的形式为交易延展性攻击,这种攻击方式在虚拟货币交易的情况下带来了二次存款或双重提现的风险。攻击者可以侦听一笔未被确认的交易,通过修改交易签名的方式使得原有交易的交易ID发生改变,并生成一笔新的交易进行广播和确认,而参与交易的另一方无法根据原有的交易ID查询到交易的确认信息,从而可能进行重复转账并蒙受损失。女巫攻击女巫攻击,是指一个攻击者节点通过向网络广播多个身份信息,非法地拥有多个身份标识,进一步利用多个身份带来的便利,做出一些恶意行为,如改变交易顺序、阻止交易被确认、误导正常节点的路由表、消耗节点间的连接资源等。由于网络上的节点只能根据自己接收到的消息来判断网络中节点的全局信息,对于攻击者来说,它可以很方便地利用这个特征,轻易地创建大量的身份信息进行女巫攻击。女巫攻击是攻击P2P网络中数据冗余机制的有效手段,使得原本需要备份在多个节点的数据被欺骗地备份到同一个节点上。同时,如果区块链网络中采用了投票机制,攻击者可以利用伪造的多个身份进行不公平的重复投票,从而掌握网络的控制权。实现反女巫攻击,可以采用工作量证明机制,通过验证身份的计算能力的方式,增加女巫攻击的成本。另外一种反女巫攻击的方式是身份认证,每个新节点需要经过可靠第三方节点或当前网络中所有可靠节点的认证,从而减少节点欺诈地使用多重身份的可能性。路由攻击由于网络路由的不安全性以及因特网服务提供方(ISP)的集中性,使用明文形式进行信息交换的区块链应用(如比特币)可能面临着流量劫持、信息窃听、丢弃、修改、注入和延迟的风险。路由攻击,是指对正常路由进行干扰从而达到攻击目标的手段。区块链上的路由攻击主要包含分割攻击和延迟攻击两种类型。分割攻击首先将区块链网络隔离成至少两个独立的网络,使得它们无法交换交易信息。为实现这一步,攻击者常利用边界网关协议劫持的方法拦截不同网络间交换的所有流量,从而实现网络分割,并且各网络内的节点无断网感知。延迟攻击利用了区块请求在超过一定时间后才会再次发起请求的特点,通过对拦截的信息进行简单修改,延迟区块在被攻击节点的传播速度。这两种攻击方法都能带来包括重复支付、计算能力浪费在内的潜在经济损失,日蚀攻击日蚀攻击由攻击者通过侵占节点路由表的方式,控制节点的对外联系并使其保留在一个隔离的网络中,从而实施路由欺骗、拒绝服务、ID劫持等攻击行为。目前,在比特币和以太坊网络中均已被证实能实施日蚀攻击。在比特币网络中,由于节点的网络资源有限,网络中每个节点是很难做到与所有其他节点都建立连接。因而比特币上实际只允许一个节点接受117个连接请求,并且最多向外发起8个连接。如果攻击者节点在一个节点的路由表中占据了较高的比例,攻击者节点可以控制这个节点的正常行为,包括路由查找和资源搜索等,则这个节点可视作被攻击者“日蚀”。在比特币的日蚀攻击中,攻击者用事先准备的攻击地址填充被攻击节点的tried列表,用不属于比特币网络的地址覆盖被攻击节点的new列表。在被攻击者重启或从表中选择节点构建连接时,被攻击者的8个向外连接有很高概率都是攻击者节点,同时攻击者占据被攻击者的入连接。通过这个过程可以在比特币网络中实现节点的日蚀攻击。而在以太坊中,由于以太坊上一个主机可以运行多个ID的节点,攻击者只需要两个恶意的以太坊节点即可实现日蚀攻击。以太坊上的日蚀攻击主要有两种方式:(1)独占连接的日蚀攻击,攻击者只需要在受害者节点重启时通过入连接的方式快速占领受害节点所有的连接,在geth1.8.0中已通过限制节点入连接的数量不能占满节点的maxpeers来修复这个漏洞;(2)占有表的日蚀攻击,攻击者使用伪造的节点ID在受害者节点重启时重复向它发送Ping请求并占据它的K桶,使得受害者的出连接指向攻击者,此时攻击者使用入连接占据完受害者的剩余的所有连接即可完成日蚀攻击。对受害节点来说,日蚀攻击使它在未知情况下脱离了区块链网络,所有的请求信息都会被攻击者劫持,得到虚假的回复信息,无法进行正常的资源请求。反洗钱犯罪常见的洗钱途径广泛涉及银行、保险、证券、房地产等各种领域。反洗钱是政府动用立法、司法力量,调动有关的组织和商业机构对可能的洗钱活动予以识别,对有关款项予以处置,对相关机构和人士予以惩罚,从而达到阻止犯罪活动目的的一项系统工程。当前在常见的20多种洗钱手段中,比特币与数字货币已经被列入一种国际上的洗钱手段。因为数字货币的匿名性和难追踪的特点,数字货币开始在黑色与灰色领域大量使用。数据显示,通过对全球20多个数字资产交易所展开资金流向追踪调查,PeckShield安全团队研究分析认为,数字资产在国际间的流动规模已非常大,且大部分资金并未受到国家合理、合规的监管。区块链相关热点概念播报编辑挖矿比特币中的矿,是一种虚拟数字,是一种符合算法要求的哈希值。比特币中的挖矿就是计算这种哈希值的过程。挖矿的难度是不断地更新的,相当于一个寻宝游戏,在一段时间之后,比特币系统将生成计算难度,然后所有的计算机就去计算符合要求的那个值,谁最先找到,谁就可以获得比特币奖励,并且可以获得一个区块进行记账,要计算得到这个符合要求的序列号,就需要大量的CPU运算。挖矿是将一段时间内比特币系统中发生的交易进行确认,并记录在区块链上形成新区块的过程,挖矿的人叫作矿工。比特币系统的记账权力是去中心化的,即每个矿工都有记账的权利。成功抢到记账权的矿工,会获得系统新生的比特币奖励和记录每笔交易的手续费。因此,挖矿就是生产比特币的过程。中本聪最初设计比特币时规定:每产生210000个区块,比特币奖励数量就减半一次,直至比特币奖励数量不能再被细分。矿工的主要工作是寻找符合要求的新区块、将交易打包写入区块。想成为一名矿工,只要购买一台专用的计算设备,下载挖矿软件,就可以开始挖矿。挖矿归根到底是算力的竞争,具体挖的过程就是通过运行挖矿软件来计算匹配哈希值的过程。挖矿软件的运行需要消耗算力,最早是用CPU来挖矿的,随着加入的人越来越多,挖矿的装备也一直在升级;CPU之后,开始有人用GPU来挖矿,GPU的流水线专注程度更高,同时数量也更多,并行计算非常占便宜,GPU比CPU效率更高,算力功耗比更低,很快就取代了CPU;再后来用FPGA来挖矿,FPGA的性能/功耗比相对GPU来说有了进一步的提高;再最后就是目前市面上的ASIC矿机。挖矿需要有矿机和挖矿软件,运行的过程除了硬件损耗,最大的消耗是电费,所以算力之争很大程度上在于谁能获得更低的电力成本,谁就拥有了先发优势。挖矿软件运行的时候,都需要设置一个账户,用对应的挖矿软件在矿机上运行,如果第一个计算出哈希值,并得到全网认证,对应的挖矿奖励会自动发放到挖矿软件的账户里。这个奖励可以提现到其他钱包储存或进行交易。币圈币圈是指一批专注于炒加密数字货币,甚至发行自己的数字货币筹资的人群,业界俗称“币圈”。币圈可大致可以划分为两类:一类是市场上基于区块链技术的主流货币,如比特币、以太坊;另一类是数字货币筹资,也就是发行新币,新币也被业界称为“山寨币”。早期山寨币是指模仿比特币代码与系统产生的数字货币,目前大家理解的山寨币,大部分是指那些劣质的、没有价值基础的数字货币。矿圈和币圈这两个圈子存在着一定的鄙视关系。矿圈自认为是投资,看不上币圈的投机。币圈总体上是为了投机或赚钱,喜欢炒作,希望价格翻倍,希望能够找到新的百倍币、千倍币。前期的币圈中充满着狂热和不理性,也充满着欺骗和混乱。矿圈“矿圈”是一群专注于“挖矿”的“矿工”,这些矿工大多从事IT行业。中本聪总共发行了2100万个比特币,最开始挖矿的人并不多,一般的计算机都可以挖矿,但是随着挖矿的人变多,必须要用具有高算力的专业服务器来挖矿。比特币挖矿一共经历了五个阶段,即CPU挖矿、GPU挖矿、FPGA挖矿、ASIC挖矿、大规模集群挖矿(矿池)。为了更好地理解它们之间的区别,简单举例如下:(1)CPU的挖矿速度是1。(2)GPU的挖矿速度是10。(3)FPGA的挖矿速度是8,功耗比GPU小40倍。(4)ASIC的挖矿速度是2000,功耗与GPU相当。矿机挖矿,随着挖矿所需算力的不断上升,GPU也达到了算力的上限,为了突破这个局限,有人发明了专门挖矿的专业设备。这些设备虽然都是计算机,可是除了挖比特币、运行哈希运算之外,其他什么都干不了,我们叫它“矿机”。比特币的矿机只能进行比特币的算法的计算。莱特币矿机只能进行莱特币算法的计算,不能互相通用。世界排名前三的数字货币矿机生产商(比特大陆、嘉楠耘智、亿邦科技)都在中国,囊括了全球九成以上的份额(2019年数据显示)。数字货币早期的数字货币(数字黄金货币)是一种以黄金重量命名的电子货币形式。现在的数字货币又称密码货币,指不依托任何实物,使用密码算法的数字货币,英文为Cryptocurrency,尤其是指基于区块链技术生成的数字货币,如比特币、莱特币和以太币等依靠校验和密码技术来创建、发行和流通的电子货币。从货币属性角度来看,数字货币相比传统法币有以下三个重要的优点。(1)有效对抗通货膨胀:比特币一共发行2100万枚,2140年后比特币不再新增,矿机通过收取交易服务费用覆盖算力成本。当主权政府的中央银行采取过于宽松的货币政策或者国内政局不稳定时,会导致较为严重的通货膨胀,造成民众的财富急剧缩水,比特币能够较好地应对通货膨胀。(2)私有财产权受到保护:因为采用了区块链作为底层技术和点对点的交易方式,所以交易过程不受到监控、审核,外界也无法干涉私有财产。(3)促进全球化:比特币最大的特点就是金融脱媒(“脱媒”一般是指在进行交易时跳过所有中间人而直接在供需双方间进行。“金融脱媒”又称“金融去中介化”,在英语中称为Financial Disintermediation),使用比特币能让跨境贸易和跨境投资变得更快且更便宜。从技术属性来看,当前数字货币仍然建立在电子技术之上,随着量子计算机,加、解密等技术的飞速发展,比特币等数字货币会受到一些挑战,加上一些经济方面的竞争原因,比特币有可能会在未来消失或被其他数字货币替代。从社会角度来看,数字货币部分思想根源来自一种自由思想、无政府主义,是西方某些思想的产物。经济学领域的自由思想是区块链技术产生的一个强大的推动力。无论是早期的哈耶克与他的《货币的非国家化》,还是B-money的理论的提出者戴伟,以及Bitshare、Steemit、EOS的技术创造者BM,他们都崇尚一种自由,比特币的创造者中本聪无疑也受这种自由思想的影响。对于我们来说,数字货币理解与操作难度大,风险性过高,不需要参与。数字货币受到政府的强硬监管,比特币背后灰色地带滋生的问题浮上台面。(1)在中国造成了资本外流:由于其技术特点,外管局无法监管在境内使用人民币兑换比特币,而后在境外用比特币兑换外币的汇兑方式。比特币成了洗钱通道之一。(2)毒品和枪支买卖的支付方式:比特币成了不法分子购买毒品和枪支的支付手段,促进了非法物品的流通,加深了部分国家、地区人民的苦难。(3)非法集资的新型手段:ICO本质就是发行收益凭证式证券并嫁接在数字货币之上,不需要通过交易所和证监会,躲避法律监管。某些ICO发行过程中甚至连商业计划书都没有,却受到资本追捧,造成投资人血本无归。常见数字货币的分类如下:(1)纯数字货币。(2)支持应用功能的数字货币。(3)解决支付功能的数字货币。(4)隐私货币。(5)解决存储能力的数字货币。(6)其他特殊用途的数字货币。对区块链的误解播报编辑误解1:区块链等于炒比特币2017年比特币的爆炸式繁荣让投资者们看到了一片新兴的蓝海,于是投资者们纷纷进场捞金。这也造成了大家对区块链的第一印象:区块链,仅仅是炒币投机。但是,比特币只是区块链技术的一个应用场景,就像支付宝是互联网金融的一个产物一样。现在在数字货币的市场上交易的不仅有比特币,还有以太坊、瑞波币以及其他数字货币,就跟传统证券市场的股票一样。除此之外,BATJ等各种国内外互联网巨头都致力于区块链技术应用的研究,目前已在产品溯源、电子存证、公益等方面落地,也让社会逐渐开始发现区块链所带来的利好。误解2:区块链上的数据是绝对安全的很多人包括一些在币圈摸爬滚打多年的币民,都认为区块链中的数据是通过加密方式进行存储的,是“绝对安全的”,所以可以将银行账户、一些重要的密码等存储到区块链上。但事实却是,“绝对安全”是不存在的。在公有链中,区块链中存储的数据对每一个节点或者个人都是公开可见的,这意味着,只要在这条链上,任何人都可以查看链上存储的数据。区块链所说的“数据安全”只是表示“数据是无法被篡改的”,任何人没有修改数据的权利,仅此而已。因此区块链上也并不适合存储个人的敏感信息。误解3:区块链适合存储大量数据区块链的分布式特性意味着区块链网络上的每个节点都有区块链的完整副本。如果把区块链用来存储像视频这种大型文件的话,那么节点处理起来将非常困难,从而导致效率低下。比特币的每个区块最多可以保存1MB的数据。因此,遇到这种情况时,一般会将大型的数据文件存储在别的地方,然后再将数据的指纹(哈希值)存储在区块链上。误解4智能合约是存储在区块链上的现实合约实际上,智能合约跟现实世界的合约是完全没有关系的。智能合约是可以存储在区块链上、已经编写完成并可以执行的计算机程序。智能合约是用编程语言编写的,如以太坊是用Solidity,通过以太坊虚拟机这个代码运行环境,智能合约能够在以太坊的区块链上运行,实现功能扩展。而被称为加密货币1.0的比特币比较简单,没有智能合约这个概念,自然也没有办法在比特币的链上创建智能合约,也开发不了DApp应用。但比特币能够支持简单的脚本语言,可以扩展一些简单的功能。因此,智能合约是可以依照预设条件自动执行的计算机程序,但只限于在区块链之内,同时预设的条件也必须是区块链技术所能验证的。误解5:比特币跟硬币的性质是一样的比特币是第一个基于区块链系统的数字货币。在现实世界中,它并不存在实体;在区块链世界中,它仅仅作为交易记录存在。硬币只有一种效用——作为一种简单的价值储存手段。而Token可以存储复杂的值,如属性、效用、收入和可替代性,性质其实并不一样。如果想要购买、发送和接收比特币,与比特币区块链产生交互,那么只需要一个比特币钱包,这个钱包只是一个地址、一个密钥,产生交互的比特币则是一条有效的交易记录,允许节点进行验证。例如,一个矿工进行算力挖矿,获得了12.5个比特币的奖励,这12.5个比特币唯一的有效记录是转人了矿工的钱包,并不会有实体呈现。误解6:比特币成不了主流货币是因为政府比特币目前存在的最大问题是其固有的可扩展性问题。在中本聪的设计里,比特币区块链上出一个块大约需要10分钟,并且每个区块的大小限制在1MB以内,这就造成了比特币这条链目前每秒只能处理7次交易。这使得比特币非常适合转账汇款这种不需要立即进行交易确认的用途。而作为加密货币2.0的以太坊,目前也只能达到每秒20次的TPS。相比之下,2017年“双11”支付宝最高每秒完成25.6万笔交易处理,Visa和Paypal的处理速度也远超比特币和以太坊。因此,比特币目前无法成为主流货币的主因,并不是因为政府、监管和法规的限制,而是其固有的可扩展性问题,让它无法真正在大众之间实现实时、方便的交易和流通。误解7:区块链可以应用于全行业有人将区块链技术理解为第四次工业革命,也有人把它看作互联网发展的迭代。无论怎么说,这是技术发展的大进步,凝聚在这项技术上的价值也有待探索。人类发明了技术,技术也会回馈于人类。有很多人认为,区块链将逐渐成为许多行业都会使用的重要基础设施,远远超出加密货币和金融服务领域。然而虽然区块链技术是一个新进步,但也不是所有行业都需要区块链。短期来看,区块链技术并不能用于全部的生活领域。现在做一个区块链的项目成本并不低,而这方面的人才又相当稀缺,市场经济下,他们只会往收益更好的项目走。当前区块链技术能够适用的行业非常有限,除了在数字货币领域比较成熟,还没有更多地走进其他行业。而中国特色的“无币区块链”也会逐渐被BATJ这种巨头垄断,小型区块链企业想落地应用将会变得愈加困难。区块链技术不能解决所有的社会信任问题,是否能够完全“去中心化”也是一个问号,但在不断被误解、认知逐渐被推进中,区块链正在变得越来越强大,也越来越适应这个时代。区块链的应用播报编辑供应链金融基于区块链的供应链金融应用中,通过将供应链上的每一笔交易和应收账款单据上链,同时引入第三方可信机构,例如银行、物流公司等,来确认这些信息,确保交易和单据的真实性,实现了物流、信息流、资金流的真实上链;同时,支持应收账款的转让、融资、清算等,让核心企业的信用可以传递到供应链的上下游企业,减小中小企业的融资难度,同时解决了机构的监管问题。资产交易通过区块链进行数字资产交易,首先将链下资产登记上链,转换为区块链上的标准化数字资产,不仅能对交易进行存证,还能做到交易即结算,提高交易效率,降低机构间通信协作成本。监管机构加人联盟链中,可实时监控区块链上的数字资产交易,提升监管效率,在必要时进行可信的仲裁、追责。司法存证在司法中,与传统司法证据相比,电子证据等的获取具有以下难点。取证成本高。当前司法取证依赖于具有司法机制的存证机构,具有取证周期长、费用高等特点。同时人力投入大,操作成本较高。取证难校验,公信力可能不足。由于电子证据本身易篡改、难溯源的特点,电子取证的权威性依赖于取证机构的资质与公信力,且取证后难以校验、追责。2018年,我国公布了《最高人民法院关于互联网法院审理案件若干问题的规定》(以下简称《规定》)。《规定》第11条中明确规定:当事人提交的电子数据,通过电子签名、可信时间戳、哈希值校验、区块链等证据收集、固定和防篡改的技术手段或者通过电子取证存证平台认证,能够证明其真实性的,互联网法院应当确认。因此,区块链记录的电子证据可被认为是具有司法效力的证据,已有多个平台成功应用。2022 年 11 月,内蒙古自治区霍林郭勒市人民法院立案庭在对当事人申请司法确认的案件进行审查时,运用“区块链证据核验”技术对已上链存证的调解协议等材料进行核验,作出确认人民调解协议效力的民事裁定书,大大提高了诉前调解案件司法确认的效率,赢得了当事人好评。智能合同智能合同实际上是在另一个物体的行动上发挥功能的计算机程序。与普通计算机程序一样,智能合同也是一种“如果—然后”的功能,但区块链技术实现了这些“合同”的自动填写和执行,无须人工介入。这种合同最终可能会取代法律行业的核心业务,即在商业和民事领域起草和管理合同的业务。溯源、防伪利用追踪记录有形商品或无形信息的流转链条,通过对每一次流转的登记,实现追溯产地、防伪鉴证、根据溯源信息优化供应链、提供供应链金融服务等目标。把区块链技术应用在溯源、防伪、优化供应链上的内在逻辑是数据不可篡改和加盖时间戳。区块链在登记结算场景上的实时对账能力以及在数据存证场景上的不可篡改和加盖时间戳能力为溯源、防伪、优化供应链场景提供了有力的工具。政府政务信息、项目招标等信息公开透明,政府工作通常受公众关注和监督,由于区块链技术能够保证信息的透明性和不可更改性,对政府透明化管理的落实有很大的作用。政府项目招标存在一定的信息不透明性,而企业在密封投标过程中也存在信息泄露的风险。区块链能够保证投标信息无法篡改,并能保证信息的透明性,在彼此不信任的竞争者之间形成信任共识。并能够通过区块链安排后续的智能合约,保证项目的建设进度,一定程度上防止了腐败的滋生。数字证书第一个在数字证书领域进行探索的是MIT的媒体实验室。媒体实验室发布的Blockcert是一个基于比特币区块链的数字学位证书开放标准。发布人创建一个包含一些基本信息的数字文件,如证书授予者的姓名、发行方的名字(麻省理工学院媒体实验室)、发行日期等。然后使用一个仅有Media Lab能够访问的私钥,对证书内容进行签名,并为证书本身追加该签名。接下来,发布人会创建一个哈希,这是一个短字符串,用来验证没有人篡改证书内容。最后,再次使用私钥,在比特币区块链上创建一个记录,表明我们在某个日期为某人颁发了某一证书。物流新加坡公司利用区块链技术,来帮助物流公司调度车队。Yojee是一家成立于2015年1月的新加坡公司,Yojee已经构建了使用人工智能和区块链的软件,充分利用现有的最后一英里交付基础设施来帮助物流企业调整它们的车队。而针对电子商务公司,Yojee推出了一个名为Chatbot的软件,帮助电商公司在没有人管理的情况下预订送货。Chatbot可以将客户的详细信息(如地址、交货时间等)馈送到系统中,系统会自动安排正确的快递。相关政策与法律法规播报编辑2016年10月,工信部发布《中国区块链技术和应用发展白皮书(2016)》,总结了国内外区块链发展现状和典型应用场景,介绍了国内区块链技术发展路线图以及未来区块链技术标准化方向和进程。2016年12月,“区块链”首次被作为战略性前沿技术写入《国务院关于印发“十三五”国家信息化规划的通知》。2017年1月,工信部发布《软件和信息技术服务业发展规划(2016—2020年)》,提出区块链等领域创新达到国际先进水平等要求。2017年8月,国务院发布《关于进一步扩大和升级信息消费持续释放内需潜力的指导意见》提出开展基于区块链、人工智能等新技术的试点应用。2017年8月30日,中国互联网金融协会发布《关于防范各类以ICO名义吸收投资相关风险的提示》指出,国内外部分机构采用各类误导性宣传手段,以ICO名义从事融资活动,相关金融活动未取得任何许可,其中涉嫌诈骗、非法证券、非法集资等行为。2017年9月2日,互联网金融风险专项整治工作领导小组办公室向各省市金融办(局),发布了《关于对代币发行融资开展清理整顿工作的通知》。要求各省市金融办(局)对辖内平台高管人员进行约谈和监控,账户监控,必要时冻结资金资产,防止平台卷款跑路。全面停止新发生代币发行融资活动,建立代币发行融资的活动监测机制,防止死灰复燃;对已完成的ICO项目要进行逐案研判,针对大众发行的要清退,打击违法违规行为。针对已发项目清理整顿的内容,要求各地互金整治办对已发项目逐案研判,对违法违规行为进行查处。2017年9月4日,央行等七部委(中国人民银行、中央网信办、工信部、工商总局、银监会、证监会、保监会)发布《关于防范代币发行融资风险的公告》指出,比特币、以太币等所谓虚拟货币,本质上是一种未经批准非法公开融资的行为,代币发行融资与交易存在多重风险,包括虚假资产风险、经营失败风险、投资炒作风险等,投资者须自行承担投资风险。要求即日停止各类代币发行融资活动,已完成代币发行融资的组织和个人应当作出清退等安排等。2017年10月,国务院发布《关于积极推进供应链创新与应用的指导意见》提出要研究利用区块链、人工智能等新兴技术,建立基于供应链的信用评价机制。2018年3月,工信部发布《2018年信息化和软件服务业标准化工作要点》,提出推动组建全国信息化和工业化融合管理标准化技术委员会、全国区块链和分布式记账技术标准化技术委员会。2019年10月底,中共中央政治局就区块链技术发展现状和趋势进行了第十八次集体学习,中央领导明确强调把区块链作为核心技术自主创新的重要突破口,加快推动区块链技术和产业创新发展。2019年11月,工信部网站发布的《对十三届全国人大二次会议第1394号建议的答复》称,将推动成立全国区块链和分布式记账技术标准化委员会,体系化推进标准制定工作。加快制定关键急需标准,构建标准体系。积极对接ISO、ITU等国际组织,积极参与国际标准化工作。2021年5月,工信部与中央网信办联合发布《关于加快推进区块链技术应用和产业发展的指导意见》,提出培养一批区块链名品、名企、名园,建设开源生态,坚持补短板和锻长板并重,加快打造完备的区块链产业链。2021年9月,中国人民银行、中央网信办等多部门联合发布《关于进一步防范和处置虚拟货币交易炒作风险的通知》,进一步防范加密货币炒作风险。2022年1月30日,中央网信办发布《中央网信办等十六部门联合公布国家区块链创新应用试点名单》,包含15个综合性试点单位,以及涵盖区块链+制造、能源、政务服务/政务数据共享、法治、税务服务、审判、检察、版权、民政、人社、教育、卫生健康、贸易金融、风险管控、股权市场、跨境金融等16个行业的164个特色领域试点单位。2023年5月23日,国家市场监督管理总局和国家标准化管理委员会联合发布了由中国科学院信息工程研究所牵头起草的《信息安全技术 区块链信息服务安全规范》,该标准将于2023年12月1日起实施 [29]。新手上路成长任务编辑入门编辑规则本人编辑我有疑问内容质疑在线客服官方贴吧意见反馈投诉建议举报不良信息未通过词条申诉投诉侵权信息封禁查询与解封©2024 Baidu 使用百度前必读 | 百科协议 | 隐私政策 | 百度百科合作平台 | 京ICP证030173号 京公网安备110000020000区块链技术研究综述:原理、进展与应用
区块链技术研究综述:原理、进展与应用
主管单位:中国科学技术协会
主办单位:中国通信学会
ISSN 1000-436X CN 11-2102/TN
首页
期刊简介
编委会
投稿指南
道德声明
期刊协议
期刊订阅
会议活动
下载中心
联系我们
English
期刊介绍
期刊信息
投稿须知
稿件格式要求
审稿流程
下载中心
联系方式
Toggle navigation
首页
期刊简介
期刊介绍
期刊信息
编委会
投稿指南
投稿须知
稿件格式要求
审稿流程
下载中心
道德声明
期刊协议
期刊订阅
会议活动
联系我们
English
通信学报, 2020, 41(1): 134-151 doi: 10.11959/j.issn.1000-436x.2020027
综述
区块链技术研究综述:原理、进展与应用
曾诗钦1, 霍如2,3, 黄韬1,3, 刘江1,3, 汪硕1,3, 冯伟4
1 北京邮电大学网络与交换国家重点实验室,北京 100876
2 北京工业大学北京未来网络科技高精尖创新中心,北京 100124
3 网络通信与安全紫金山实验室,江苏 南京 211111
4 工业和信息化部信息化和软件服务业司,北京 100846
Survey of blockchain:principle,progress and application
ZENG Shiqin1, HUO Ru2,3, HUANG Tao1,3, LIU Jiang1,3, WANG Shuo1,3, FENG Wei4
1 State Key Laboratory of Networking and Switching Technology,Beijing University of Posts and Telecommunications,Beijing 100876,China
2 Beijing Advanced Innovation Center for Future Internet Technology,Beijing University of Technology,Beijing 100124,China
3 Purple Mountain Laboratories,Nanjing 211111,China
4 Department of Information Technology Application and Software Services,Beijing 100846,China
通讯作者: 霍如,huoru@bjut.edu.cn
修回日期: 2019-12-12
网络出版日期: 2020-01-25
基金资助:
国家高技术研究发展计划(“863”计划)基金资助项目. 2015AA015702未来网络操作系统发展战略研究基金资助项目. 2019-XY-5
Revised: 2019-12-12
Online: 2020-01-25
Fund supported:
The National High Technology Research and Development Program of China (863 Program). 2015AA015702The Development Strategy Research of Future Network Operating System. 2019-XY-5
作者简介 About authors
曾诗钦(1995-),男,广西南宁人,北京邮电大学博士生,主要研究方向为区块链、标识解析技术、工业互联网
。
霍如(1988-),女,黑龙江哈尔滨人,博士,北京工业大学讲师,主要研究方向为计算机网络、信息中心网络、网络缓存策略与算法、工业互联网、标识解析技术等。
。
黄韬(1980-),男,重庆人,博士,北京邮电大学教授,主要研究方向为未来网络体系架构、软件定义网络、网络虚拟化等。
。
刘江(1983-),男,河南郑州人,博士,北京邮电大学教授,主要研究方向为未来网络体系架构、软件定义网络、网络虚拟化、信息中心网络等。
。
汪硕(1991-),男,河南灵宝人,博士,北京邮电大学在站博士后,主要研究方向为数据中心网络、软件定义网络、网络流量调度等。
。
冯伟(1980-),男,河北邯郸人,博士,工业和信息化部副研究员,主要研究方向为工业互联网平台、数字孪生、信息化和工业化融合发展关键技术等
。
摘要
区块链是一种分布式账本技术,依靠智能合约等逻辑控制功能演变为完整的存储系统。其分类方式、服务模式和应用需求的变化导致核心技术形态的多样性发展。为了完整地认知区块链生态系统,设计了一个层次化的区块链技术体系结构,进一步深入剖析区块链每层结构的基本原理、技术关联以及研究进展,系统归纳典型区块链项目的技术选型和特点,最后给出智慧城市、工业互联网等区块链前沿应用方向,提出区块链技术挑战与研究展望。
关键词:
区块链
;
加密货币
;
去中心化
;
层次化技术体系结构
;
技术多样性
;
工业区块链
Abstract
Blockchain is a kind of distributed ledger technology that upgrades to a complete storage system by adding logic control functions such as intelligent contracts.With the changes of its classification,service mode and application requirements,the core technology forms of Blockchain show diversified development.In order to understand the Blockchain ecosystem thoroughly,a hierarchical technology architecture of Blockchain was proposed.Furthermore,each layer of blockchain was analyzed from the perspectives of basic principle,related technologies and research progress in-depth.Moreover,the technology selections and characteristics of typical Blockchain projects were summarized systematically.Finally,some application directions of blockchain frontiers,technology challenges and research prospects including Smart Cities and Industrial Internet were given.
Keywords:
blockchain
;
cryptocurrency
;
decentralization
;
hierarchical technology architecture
;
technology diversity
;
PDF (1174KB)
元数据
多维度评价
相关文章
导出
EndNote|
Ris|
Bibtex
收藏本文
本文引用格式
曾诗钦, 霍如, 黄韬, 刘江, 汪硕, 冯伟. 区块链技术研究综述:原理、进展与应用. 通信学报[J], 2020, 41(1): 134-151 doi:10.11959/j.issn.1000-436x.2020027
ZENG Shiqin. Survey of blockchain:principle,progress and application. Journal on Communications[J], 2020, 41(1): 134-151 doi:10.11959/j.issn.1000-436x.2020027
1 引言
2008年,中本聪提出了去中心化加密货币——比特币(bitcoin)的设计构想。2009年,比特币系统开始运行,标志着比特币的正式诞生。2010—2015 年,比特币逐渐进入大众视野。2016—2018年,随着各国陆续对比特币进行公开表态以及世界主流经济的不确定性增强,比特币的受关注程度激增,需求量迅速扩大。事实上,比特币是区块链技术最成功的应用场景之一。伴随着以太坊(ethereum)等开源区块链平台的诞生以及大量去中心化应用(DApp,decentralized application)的落地,区块链技术在更多的行业中得到了应用。
由于具备过程可信和去中心化两大特点,区块链能够在多利益主体参与的场景下以低成本的方式构建信任基础,旨在重塑社会信用体系。近两年来区块链发展迅速,人们开始尝试将其应用于金融、教育、医疗、物流等领域。但是,资源浪费、运行低效等问题制约着区块链的发展,这些因素造成区块链分类方式、服务模式和应用需求发生快速变化,进一步导致核心技术朝多样化方向发展,因此有必要采取通用的结构分析区块链项目的技术路线和特点,以梳理和明确区块链的研究方向。
区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值。袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势。上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析。本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望。
2 相关概念
随着区块链技术的深入研究,不断衍生出了很多相关的术语,例如“中心化”“去中心化”“公链”“联盟链”等。为了全面地了解区块链技术,并对区块链技术涉及的关键术语有系统的认知,本节将给出区块链及其相关概念的定义,以及它们的联系,更好地区分易使人混淆的术语。
2.1 中心化与去中心化
中心化(centralization)与去中心化(decentralization)最早用来描述社会治理权力的分布特征。从区块链应用角度出发,中心化是指以单个组织为枢纽构建信任关系的场景特点。例如,电子支付场景下用户必须通过银行的信息系统完成身份验证、信用审查和交易追溯等;电子商务场景下对端身份的验证必须依靠权威机构下发的数字证书完成。相反,去中心化是指不依靠单一组织进行信任构建的场景特点,该场景下每个组织的重要性基本相同。
2.2 加密货币
加密货币(cryptocurrency)是一类数字货币(digital currency)技术,它利用多种密码学方法处理货币数据,保证用户的匿名性、价值的有效性;利用可信设施发放和核对货币数据,保证货币数量的可控性、资产记录的可审核性,从而使货币数据成为具备流通属性的价值交换媒介,同时保护使用者的隐私。
加密货币的概念起源于一种基于盲签名(blind signature)的匿名交易技术[6],最早的加密货币交易模型“electronic cash”[7]如图1所示。
图1
新窗口打开|
下载原图ZIP|
生成PPT
图1
“electronic cash”交易模型
交易开始前,付款者使用银行账户兑换加密货币,然后将货币数据发送给领款者,领款者向银行发起核对请求,若该数据为银行签发的合法货币数据,那么银行将向领款者账户记入等额数值。通过盲签名技术,银行完成对货币数据的认证,而无法获得发放货币与接收货币之间的关联,从而保证了价值的有效性、用户的匿名性;银行天然具有发放币种、账户记录的能力,因此保证了货币数量的可控性与资产记录的可审核性。
最早的加密货币构想将银行作为构建信任的基础,呈现中心化特点。此后,加密货币朝着去中心化方向发展,并试图用工作量证明(PoW,poof of work)[8]或其改进方法定义价值。比特币在此基础上,采用新型分布式账本技术保证被所有节点维护的数据不可篡改,从而成功构建信任基础,成为真正意义上的去中心化加密货币。区块链从去中心化加密货币发展而来,随着区块链的进一步发展,去中心化加密货币已经成为区块链的主要应用之一。
2.3 区块链及工作流程
一般认为,区块链是一种融合多种现有技术的新型分布式计算和存储范式。它利用分布式共识算法生成和更新数据,并利用对等网络进行节点间的数据传输,结合密码学原理和时间戳等技术的分布式账本保证存储数据的不可篡改,利用自动化脚本代码或智能合约实现上层应用逻辑。如果说传统数据库实现数据的单方维护,那么区块链则实现多方维护相同数据,保证数据的安全性和业务的公平性。区块链的工作流程主要包含生成区块、共识验证、账本维护3个步骤。
1) 生成区块。区块链节点收集广播在网络中的交易——需要记录的数据条目,然后将这些交易打包成区块——具有特定结构的数据集。
2) 共识验证。节点将区块广播至网络中,全网节点接收大量区块后进行顺序的共识和内容的验证,形成账本——具有特定结构的区块集。
3) 账本维护。节点长期存储验证通过的账本数据并提供回溯检验等功能,为上层应用提供账本访问接口。
2.4 区块链类型
根据不同场景下的信任构建方式,可将区块链分为2类:非许可链(permissionless blockchain)和许可链(permissioned blockchain)。
非许可链也称为公链(public blockchain),是一种完全开放的区块链,即任何人都可以加入网络并参与完整的共识记账过程,彼此之间不需要信任。公链以消耗算力等方式建立全网节点的信任关系,具备完全去中心化特点的同时也带来资源浪费、效率低下等问题。公链多应用于比特币等去监管、匿名化、自由的加密货币场景。
许可链是一种半开放式的区块链,只有指定的成员可以加入网络,且每个成员的参与权各有不同。许可链往往通过颁发身份证书的方式事先建立信任关系,具备部分去中心化特点,相比于非许可链拥有更高的效率。进一步,许可链分为联盟链(consortium blockchain)和私链(fully private blockchain)。联盟链由多个机构组成的联盟构建,账本的生成、共识、维护分别由联盟指定的成员参与完成。在结合区块链与其他技术进行场景创新时,公链的完全开放与去中心化特性并非必需,其低效率更无法满足需求,因此联盟链在某些场景中成为实适用性更强的区块链选型。私链相较联盟链而言中心化程度更高,其数据的产生、共识、维护过程完全由单个组织掌握,被该组织指定的成员仅具有账本的读取权限。
3 区块链体系结构
根据区块链发展现状,本节将归纳区块链的通用层次技术结构、基本原理和研究进展。
现有项目的技术选型多数由比特币演变而来,所以区块链主要基于对等网络通信,拥有新型的基础数据结构,通过全网节点共识实现公共账本数据的统一。但是区块链也存在效率低、功耗大和可扩展性差等问题,因此人们进一步以共识算法、处理模型、交易模式创新为切入点进行技术方案改进,并在此基础上丰富了逻辑控制功能和区块链应用功能,使其成为一种新型计算模式。本文给出如图2 所示的区块链通用层次化技术结构,自下而上分别为网络层、数据层、共识层、控制层和应用层。其中,网络层是区块链信息交互的基础,承载节点间的共识过程和数据传输,主要包括建立在基础网络之上的对等网络及其安全机制;数据层包括区块链基本数据结构及其原理;共识层保证节点数据的一致性,封装各类共识算法和驱动节点共识行为的奖惩机制;控制层包括沙盒环境、自动化脚本、智能合约和权限管理等,提供区块链可编程特性,实现对区块数据、业务数据、组织结构的控制;应用层包括区块链的相关应用场景和实践案例,通过调用控制合约提供的接口进行数据交互,由于该层次不涉及区块链原理,因此在第 5节中单独介绍。
3.1 网络层
网络层关注区块链网络的基础通信方式——对等(P2P,peer-to-peer)网络。对等网络是区别于“客户端/服务器”服务模式的计算机通信与存储架构,网络中每个节点既是数据的提供者也是数据的使用者,节点间通过直接交换实现计算机资源与信息的共享,因此每个节点地位均等。区块链网络层由组网结构、通信机制、安全机制组成。其中组网结构描述节点间的路由和拓扑关系,通信机制用于实现节点间的信息交互,安全机制涵盖对端安全和传输安全。
图2
新窗口打开|
下载原图ZIP|
生成PPT
图2
区块链层次化技术结构
1) 组网结构
对等网络的体系架构可分为无结构对等网络、结构化对等网络和混合式对等网络[9],根据节点的逻辑拓扑关系,区块链网络的组网结构也可以划分为上述3种,如图3所示。
图3
新窗口打开|
下载原图ZIP|
生成PPT
图3
区块链组网结构
无结构对等网络是指网络中不存在特殊中继节点、节点路由表的生成无确定规律、网络拓扑呈现随机图状的一类对等网络。该类网络结构松散,设计简洁,具有良好的容错性和匿名性,但由于采用洪泛机制作为信息传播方式,其可扩展性较差。典型的协议有Gnutella等。
结构化对等网络是指网络中不存在特殊中继节点、节点间根据特定算法生成路由表、网络拓扑具有严格规律的一类对等网络。该类网络实现复杂但可扩展性良好,通过结构化寻址可以精确定位节点从而实现多样化功能。常见的结构化网络以DHT (distributed hash table)网络为主,典型的算法有Chord、Kademlia等。
混合式对等网络是指节点通过分布式中继节点实现全网消息路由的一类对等网络。每个中继节点维护部分网络节点地址、文件索引等工作,共同实现数据中继的功能。典型的协议有Kazza等。
2) 通信机制
通信机制是指区块链网络中各节点间的对等通信协议,建立在 TCP/UDP 之上,位于计算机网络协议栈的应用层,如图4所示。该机制承载对等网络的具体交互逻辑,例如节点握手、心跳检测、交易和区块传播等。由于包含的协议功能不同(例如基础链接与扩展交互),本文将通信机制细分为3个层次:传播层、连接层和交互逻辑层。
传播层实现对等节点间数据的基本传输,包括2 种数据传播方式:单点传播和多点传播。单点传播是指数据在2个已知节点间直接进行传输而不经过其他节点转发的传播方式;多点传播是指接收数据的节点通过广播向邻近节点进行数据转发的传播方式,区块链网络普遍基于Gossip协议[10]实现洪泛传播。连接层用于获取节点信息,监测和改变节点间连通状态,确保节点间链路的可用性(availability)。具体而言,连接层协议帮助新加入节点获取路由表数据,通过定时心跳监测为节点保持稳定连接,在邻居节点失效等情况下为节点关闭连接等。交互逻辑层是区块链网络的核心,从主要流程上看,该层协议承载对等节点间账本数据的同步、交易和区块数据的传输、数据校验结果的反馈等信息交互逻辑,除此之外,还为节点选举、共识算法实施等复杂操作和扩展应用提供消息通路。
图4
新窗口打开|
下载原图ZIP|
生成PPT
图4
区块链网络通信机制
3) 安全机制
安全是每个系统必须具备的要素,以比特币为代表的非许可链利用其数据层和共识层的机制,依靠消耗算力的方式保证数据的一致性和有效性,没有考虑数据传输过程的安全性,反而将其建立在不可信的透明P2P网络上。随着隐私保护需求的提出,非许可链也采用了一些网络匿名通信方法,例如匿名网络Tor(the onion router)通过沿路径的层层数据加密机制来保护对端身份。许可链对成员的可信程度有更高的要求,在网络层面采取适当的安全机制,主要包括身份安全和传输安全两方面。身份安全是许可链的主要安全需求,保证端到端的可信,一般采用数字签名技术实现,对节点的全生命周期(例如节点交互、投票、同步等)进行签名,从而实现许可链的准入许可。传输安全防止数据在传输过程中遭到篡改或监听,常采用基于TLS的点对点传输和基于Hash算法的数据验证技术。
4) 研究现状
目前,区块链网络层研究主要集中在3个方向:测量优化、匿名分析与隐私保护、安全防护。
随着近年来区块链网络的爆炸式发展以及开源特点,学术界开始关注大型公有链项目的网络状况,监测并研究它们的特点,研究对象主要为比特币网络。Decker等[11]设计和实现测量工具,分析传播时延数据、协议数据和地址数据,建模分析影响比特币网络性能的网络层因素,基于此提出各自的优化方法。Fadhil等[12]提出基于事件仿真的比特币网络仿真模型,利用真实测量数据验证模型的有效性,最后提出优化机制 BCBSN,旨在设立超级节点降低网络波动。Kaneko 等[13]将区块链节点分为共识节点和验证节点,其中共识节点采用无结构组网方式,验证节点采用结构化组网方式,利用不同组网方式的优点实现网络负载的均衡。
匿名性是加密货币的重要特性之一,但从网络层视角看,区块链的匿名性并不能有效保证,因为攻击者可以利用监听并追踪 IP 地址的方式推测出交易之间、交易与公钥地址之间的关系,通过匿名隐私研究可以主动发掘安全隐患,规避潜在危害。Koshy 等[16,17]从网络拓扑、传播层协议和作恶模型3个方面对比特币网络进行建模,通过理论分析和仿真实验证明了比特币网络协议在树形组网结构下仅具备弱匿名性,在此基础上提出 Dandelion 网络策略以较低的网络开销优化匿名性,随后又提出 Dandelion++原理,以最优信息理论保证来抵抗大规模去匿名攻击。
区块链重点关注其数据层和共识层面机制,并基于普通网络构建开放的互联环境,该方式极易遭受攻击。为提高区块链网络的安全性,学术界展开研究并给出了相应的解决方案。Heilman 等[18]对比特币和以太坊网络实施日蚀攻击(eclipse attack)——通过屏蔽正确节点从而完全控制特定节点的信息来源,证实了该攻击的可行性。Apostolaki等[19]提出针对比特币网络的 BGP(border gateway protocal)劫持攻击,通过操纵自治域间路由或拦截域间流量来制造节点通信阻塞,表明针对关键数据的沿路攻击可以大大降低区块传播性能。
3.2 数据层
区块链中的“块”和“链”都是用来描述其数据结构特征的词汇,可见数据层是区块链技术体系的核心。区块链数据层定义了各节点中数据的联系和组织方式,利用多种算法和机制保证数据的强关联性和验证的高效性,从而使区块链具备实用的数据防篡改特性。除此之外,区块链网络中每个节点存储完整数据的行为增加了信息泄露的风险,隐私保护便成为迫切需求,而数据层通过非对称加密等密码学原理实现了承载应用信息的匿名保护,促进区块链应用普及和生态构建。因此,从不同应用信息的承载方式出发,考虑数据关联性、验证高效性和信息匿名性需求,可将数据层关键技术分为信息模型、关联验证结构和加密机制3类。
1) 信息模型
区块链承载了不同应用的数据(例如支付记录、审计数据、供应链信息等),而信息模型则是指节点记录应用信息的逻辑结构,主要包括UTXO (unspent transaction output)、基于账户和键值对模型3种。需要说明的是,在大部分区块链网络中,每个用户均被分配了交易地址,该地址由一对公私钥生成,使用地址标识用户并通过数字签名的方式检验交易的有效性。
UTXO是比特币交易中的核心概念,逐渐演变为区块链在金融领域应用的主要信息模型,如图5所示。每笔交易(Tx)由输入数据(Input)和输出数据(Output)组成,输出数据为交易金额(Num)和用户公钥地址(Adr),而输入数据为上一笔交易输出数据的指针(Pointer),直到该比特币的初始交易由区块链网络向节点发放。
图5
新窗口打开|
下载原图ZIP|
生成PPT
图5
UTXO信息模型
基于账户的信息模型以键值对的形式存储数据,维护着账户当前的有效余额,通过执行交易来不断更新账户数据。相比于UTXO,基于账户的信息模型与银行的储蓄账户类似,更直观和高效。
不管是UTXO还是基于账户的信息模型,都建立在更为通用的键值对模型上,因此为了适应更广泛的应用场景,键值对模型可直接用于存储业务数据,表现为表单或集合形式。该模型利于数据的存取并支持更复杂的业务逻辑,但是也存在复杂度高的问题。
2) 关联验证结构
区块链之所以具备防篡改特性,得益于链状数据结构的强关联性。该结构确定了数据之间的绑定关系,当某个数据被篡改时,该关系将会遭到破坏。由于伪造这种关系的代价是极高的,相反检验该关系的工作量很小,因此篡改成功率被降至极低。链状结构的基本数据单位是“区块(block)”,基本内容如图6所示。
图6
新窗口打开|
下载原图ZIP|
生成PPT
图6
基本区块结构
区块由区块头(Header)和区块体(Body)两部分组成,区块体包含一定数量的交易集合;区块头通过前继散列(PrevHash)维持与上一区块的关联从而形成链状结构,通过MKT(MerkleTree)生成的根散列(RootHash)快速验证区块体交易集合的完整性。因此散列算法和 MKT 是关联验证结构的关键,以下将对此展开介绍。
散列(Hash)算法也称为散列函数,它实现了明文到密文的不可逆映射;同时,散列算法可以将任意长度的输入经过变化得到固定长度的输出;最后,即使元数据有细微差距,变化后的输出也会产生显著不同。利用散列算法的单向、定长和差异放大的特征,节点通过比对当前区块头的前继散列即可确定上一区块内容的正确性,使区块的链状结构得以维系。区块链中常用的散列算法包括SHA256等。
MKT包括根散列、散列分支和交易数据。MKT首先对交易进行散列运算,再对这些散列值进行分组散列,最后逐级递归直至根散列。MKT 带来诸多好处:一方面,对根散列的完整性确定即间接地实现交易的完整性确认,提升高效性;另一方面,根据交易的散列路径(例如 Tx1:Hash2、Hash34)可降低验证某交易存在性的复杂度,若交易总数为N,那么MKT可将复杂度由N降为lbN。除此之外,还有其他数据结构与其配合使用,例如以太坊通过MPT(Merkle Patricia tree)——PatriciaTrie 和MerkleTree混合结构,高效验证其基于账户的信息模型数据。
此外,区块头中还可根据不同项目需求灵活添加其他信息,例如添加时间戳为区块链加入时间维度,形成时序记录;添加记账节点标识,以维护成块节点的权益;添加交易数量,进一步提高区块体数据的安全性。
3) 加密机制
由上述加密货币原理可知,经比特币演变的区块链技术具备与生俱来的匿名性,通过非对称加密等技术既保证了用户的隐私又检验了用户身份。非对称加密技术是指加密者和解密者利用2个不同秘钥完成加解密,且秘钥之间不能相互推导的加密机制。常用的非对称加密算法包括 RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。对应图5,Alice 向 Bob 发起交易 Tx2,Alice使用Bob的公钥对交易签名,仅当Bob使用私钥验证该数字签名时,才有权利创建另一笔交易,使自身拥有的币生效。该机制将公钥作为基础标识用户,使用户身份不可读,一定程度上保护了隐私。
4) 研究现状
数据层面的研究方向集中在高效验证、匿名分析、隐私保护3个方面。
高效验证的学术问题源于验证数据结构(ADS,authenticated data structure),即利用特定数据结构快速验证数据的完整性,实际上 MKT 也是其中的一种。为了适应区块链数据的动态性(dynamical)并保持良好性能,学术界展开了研究。Reyzin等[20]基于AVL树形结构提出AVL+,并通过平衡验证路径、缺省堆栈交易集等机制,简化轻量级节点的区块头验证过程。Zhang等[21]提出GEM2-tree结构,并对其进行优化提出 GEM2כ-tree 结构,通过分解单树结构、动态调整节点计算速度、扩展数据索引等机制降低以太坊节点计算开销。
区块数据直接承载业务信息,因此区块数据的匿名关联性分析更为直接。Reid等[22]将区块数据建模为事务网络和用户网络,利用多交易数据的用户指向性分析成功降低网络复杂度。Meiklejohn等[23]利用启发式聚类方法分析交易数据的流动特性并对用户进行分组,通过与这些服务的互动来识别主要机构的比特币地址。Awan 等[24]使用优势集(dominant set)方法对区块链交易进行自动分类,从而提高分析准确率。
隐私保护方面,Saxena等[25]提出复合签名技术削弱数据的关联性,基于双线性映射中的Diffie-Hellman假设保证计算困难性,从而保护用户隐私。Miers 等[26]和 Sasson 等[27]提出 Zerocoin 和Zerocash,在不添加可信方的情况下断开交易间的联系,最早利用零知识证明(zero-knowledge proof)技术隐藏交易的输入、输出和金额信息,提高比特币的匿名性。非对称加密是区块链数据安全的核心,但在量子计算面前却显得“捉襟见肘”,为此Yin等[28]利用盆景树模型(bonsai tree)改进晶格签名技术(lattice-based signature),以保证公私钥的随机性和安全性,使反量子加密技术适用于区块链用户地址的生成。
3.3 共识层
区块链网络中每个节点必须维护完全相同的账本数据,然而各节点产生数据的时间不同、获取数据的来源未知,存在节点故意广播错误数据的可能性,这将导致女巫攻击[29]、双花攻击[30]等安全风险;除此之外,节点故障、网络拥塞带来的数据异常也无法预测。因此,如何在不可信的环境下实现账本数据的全网统一是共识层解决的关键问题。实际上,上述错误是拜占庭将军问题(the Byzantine generals problem)[31]在区块链中的具体表现,即拜占庭错误——相互独立的组件可以做出任意或恶意的行为,并可能与其他错误组件产生协作,此类错误在可信分布式计算领域被广泛研究。
状态机复制(state-machine replication)是解决分布式系统容错问题的常用理论。其基本思想为:任何计算都表示为状态机,通过接收消息来更改其状态。假设一组副本以相同的初始状态开始,并且能够就一组公共消息的顺序达成一致,那么它们可以独立进行状态的演化计算,从而正确维护各自副本之间的一致性。同样,区块链也使用状态机复制理论解决拜占庭容错问题,如果把每个节点的数据视为账本数据的副本,那么节点接收到的交易、区块即为引起副本状态变化的消息。状态机复制理论实现和维持副本的一致性主要包含2个要素:正确执行计算逻辑的确定性状态机和传播相同序列消息的共识协议。其中,共识协议是影响容错效果、吞吐量和复杂度的关键,不同安全性、可扩展性要求的系统需要的共识协议各有不同。学术界普遍根据通信模型和容错类型对共识协议进行区分[32],因此严格地说,区块链使用的共识协议需要解决的是部分同步(partial synchrony)模型[33]下的拜占庭容错问题。
区块链网络中主要包含PoX(poof of X)[34]、BFT(byzantine-fault tolerant)和 CFT(crash-fault tolerant)类基础共识协议。PoX 类协议是以 PoW (proof of work)为代表的基于奖惩机制驱动的新型共识协议,为了适应数据吞吐量、资源利用率和安全性的需求,人们又提出PoS(proof of stake)、PoST (proof of space-time)等改进协议。它们的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错。BFT类协议是指解决拜占庭容错问题的传统共识协议及其改良协议,包括PBFT、BFT-SMaRt、Tendermint等。CFT类协议用于实现崩溃容错,通过身份证明等手段规避节点作恶的情况,仅考虑节点或网络的崩溃(crash)故障,主要包括Raft、Paxos、Kafka等协议。
非许可链和许可链的开放程度和容错需求存在差异,共识层面技术在两者之间产生了较大区别。具体而言,非许可链完全开放,需要抵御严重的拜占庭风险,多采用PoX、BFT类协议并配合奖惩机制实现共识。许可链拥有准入机制,网络中节点身份可知,一定程度降低了拜占庭风险,因此可采用BFT类协议、CFT类协议构建相同的信任模型[35]。
限于篇幅原因,本节仅以 PoW、PBFT、Raft为切入进行3类协议的分析。
1) PoX类协议
PoW也称为Nakamoto协议,是比特币及其衍生项目使用的核心共识协议,如图7所示。
图7
新窗口打开|
下载原图ZIP|
生成PPT
图7
PoW协议示意
该协议在区块链头结构中加入随机数Nonce,并设计证明依据:为生成新区块,节点必须计算出合适的 Nonce 值,使新生成的区块头经过双重SHA256 运算后小于特定阈值。该协议的整体流程为:全网节点分别计算证明依据,成功求解的节点确定合法区块并广播,其余节点对合法区块头进行验证,若验证无误则与本地区块形成链状结构并转发,最终达到全网共识。PoW是随机性协议,任何节点都有可能求出依据,合法区块的不唯一将导致生成分支链,此时节点根据“最长链原则”选择一定时间内生成的最长链作为主链而抛弃其余分支链,从而使各节点数据最终收敛。
PoW协议采用随机性算力选举机制,实现拜占庭容错的关键在于记账权的争夺,目前寻找证明依据的方法只有暴力搜索,其速度完全取决于计算芯片的性能,因此当诚实节点数量过半,即“诚实算力”过半时,PoW便能使合法分支链保持最快的增长速度,也即保证主链一直是合法的。PoW是一种依靠饱和算力竞争纠正拜占庭错误的共识协议,关注区块产生、传播过程中的拜占庭容错,在保证防止双花攻击的同时也存在资源浪费、可扩展性差等问题。
2) BFT类协议
PBFT是 BFT经典共识协议,其主要流程如图8 所示。PBFT将节点分为主节点和副节点,其中主节点负责将交易打包成区块,副节点参与验证和转发,假设作恶节点数量为f。PBFT共识主要分为预准备、准备和接受3个阶段,主节点首先收集交易后排序并提出合法区块提案;其余节点先验证提案的合法性,然后根据区块内交易顺序依次执行并将结果摘要组播;各节点收到2f个与自身相同的摘要后便组播接受投票;当节点收到超过2f+1个投票时便存储区块及其产生的新状态[36]。
图8
新窗口打开|
下载原图ZIP|
生成PPT
图8
PBFT协议示意
PBFT 协议解决消息传播过程的拜占庭容错,由于算法复杂度为 O(n2)且存在确定性的主节点选举规则,PBFT 仅适用于节点数量少的小型许可链系统。
3) CFT类协议
Raft[37]是典型的崩溃容错共识协议,以可用性强著称。Raft将节点分为跟随节点、候选节点和领导节点,领导节点负责将交易打包成区块,追随节点响应领导节点的同步指令,候选节点完成领导节点的选举工作。当网络运行稳定时,只存在领导节点和追随节点,领导节点向追随节点推送区块数据从而实现同步。节点均设置生存时间决定角色变化周期,领导节点的心跳信息不断重置追随节点的生存时间,当领导节点发生崩溃时,追随节点自动转化为候选节点并进入选举流程,实现网络自恢复。
Raft协议实现崩溃容错的关键在于领导节点的自选举机制,部分许可链选择降低可信需求,将拜占庭容错转换为崩溃容错,从而提升共识速度。
4) 奖惩机制
奖惩机制包括激励机制与惩罚策略,其中激励机制是为了弥补节点算力消耗、平衡协议运行收益比的措施,当节点能够在共识过程中获得收益时才会进行记账权的争夺,因此激励机制利用经济效益驱动各共识协议可持续运行。激励机制一般基于价值均衡理论设计,具有代表性的机制包括PPLNS、PPS等。为了实现收益最大化,节点可能采用不诚实的运行策略(如扣块攻击、自私挖矿等),损害了诚实节点的利益,惩罚策略基于博弈论等理论对节点进行惩罚,从而纠正不端节点的行为,维护共识可持续性。
5) 研究现状
随着可扩展性和性能需求的多样化发展,除了传统的BFT、CFT协议和PoX协议衍生研究,还产生了混合型协议(Hybrid)——主要为 PoX类协议混合以及PoX-BFT协议混合。因此本节从PoX类、BFT类以及Hybrid类协议归纳共识层研究进展。
如前文所述,PoX类协议的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错。uPoW[38]通过计算有意义的正交向量问题证明节点合法性,使算力不被浪费。PoI (proof-of-importance)[39]利用图论原理为每个节点赋予重要性权重,权重越高的节点将越有可能算出区块。PoS(poof-of-stake)为节点定义“币龄”,拥有更高币龄的节点将被分配更多的股份(stake),而股份被作为证明依据用于成块节点的选举。Ouroboros[40]通过引入多方掷币协议增大了选举随机性,引入近乎纳什均衡的激励机制进一步提高PoS 的安全性。PoRep(proof-of-replication)[41]应用于去中心化存储网络,利用证明依据作为贡献存储空间的奖励,促进存储资源再利用。
BFT协议有较长的发展史,在区块链研究中被赋予了新的活力。SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识。Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性。HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致。LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能。
Hybrid 类协议是研究趋势之一。PoA[48]利用PoW产生空区块头,利用PoS决定由哪些节点进行记账和背书,其奖励由背书节点和出块节点共享。PeerCensus[49]由节点团体进行拜占庭协议实现共识,而节点必须基于比特币网络,通过 PoW 产出区块后才能获得投票权力。ByzCoin[50]利用PoW的算力特性构建动态成员关系,并引入联合签名方案来减小PBFT的轮次通信开销,提高交易吞吐量,降低确认时延。Casper[51]则通过PoS的股份决定节点构成团体并进行BFT共识,且节点可投票数取决于股份。
3.4 控制层
区块链节点基于对等通信网络与基础数据结构进行区块交互,通过共识协议实现数据一致,从而形成了全网统一的账本。控制层是各类应用与账本产生交互的中枢,如果将账本比作数据库,那么控制层提供了数据库模型,以及相应封装、操作的方法。具体而言,控制层由处理模型、控制合约和执行环境组成。处理模型从区块链系统的角度分析和描述业务/交易处理方式的差异。控制合约将业务逻辑转化为交易、区块、账本的具体操作。执行环境为节点封装通用的运行资源,使区块链具备稳定的可移植性。
1) 处理模型
账本用于存储全部或部分业务数据,那么依据该数据的分布特征可将处理模型分为链上(on-chain)和链下(off-chain)2种。
链上模型是指业务数据完全存储在账本中,业务逻辑通过账本的直接存取实现数据交互。该模型的信任基础建立在强关联性的账本结构中,不仅实现防篡改而且简化了上层控制逻辑,但是过量的资源消耗与庞大的数据增长使系统的可扩展性达到瓶颈,因此该模型适用于数据量小、安全性强、去中心化和透明程度高的业务。
链下模型是指业务数据部分或完全存储在账本之外,只在账本中存储指针以及其他证明业务数据存在性、真实性和有效性的数据。该模型以“最小化信任成本”为准则,将信任基础建立在账本与链下数据的证明机制中,降低账本构建成本。由于与公开的账本解耦,该模型具有良好的隐私性和可拓展性,适用于去中心化程度低、隐私性强、吞吐量大的业务。
2) 控制合约
区块链中控制合约经历了2个发展阶段,首先是以比特币为代表的非图灵完备的自动化脚本,用于锁定和解锁基于UTXO信息模型的交易,与强关联账本共同克服了双花等问题,使交易数据具备流通价值。其次是以以太坊为代表的图灵完备的智能合约,智能合约是一种基于账本数据自动执行的数字化合同,由开发者根据需求预先定义,是上层应用将业务逻辑编译为节点和账本操作集合的关键。智能合约通过允许相互不信任的参与者在没有可信第三方的情况下就复杂合同的执行结果达成协议,使合约具备可编程性,实现业务逻辑的灵活定义并扩展区块链的使用。
3) 执行环境
执行环境是指执行控制合约所需要的条件,主要分为原生环境和沙盒环境。原生环境是指合约与节点系统紧耦合,经过源码编译后直接执行,该方式下合约能经历完善的静态分析,提高安全性。沙盒环境为节点运行提供必要的虚拟环境,包括网络通信、数据存储以及图灵完备的计算/控制环境等,在虚拟机中运行的合约更新方便、灵活性强,其产生的漏洞也可能造成损失。
4) 研究现状
控制层的研究方向主要集中在可扩展性优化与安全防护2个方面。
侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷。Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花。Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余。分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载。ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证。OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性。区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障。上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案。实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付。Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认。
一方面,沙盒环境承载了区块链节点运行条件,针对虚拟机展开的攻击更为直接;另一方面,智能合约直接对账本进行操作,其漏洞更易影响业务运行,因此控制层的安全防护研究成为热点。Luu等[59]分析了运行于EVM中的智能合约安全性,指出底层平台的分布式语义差异带来的安全问题。Brent 等[60]提出智能合约安全分析框架 Vandal,将EVM 字节码转换为语义逻辑关,为分析合约安全漏洞提供便利。Jiang 等[61]预先定义用于安全漏洞的特征,然后模拟执行大规模交易,通过分析日志中的合约行为实现漏洞检测。
4 技术选型分析
区别于其他技术,区块链发展过程中最显著的特点是与产业界紧密结合,伴随着加密货币和分布式应用的兴起,业界出现了许多区块链项目。这些项目是区块链技术的具体实现,既有相似之处又各具特点,本节将根据前文所述层次化结构对比特币、以太坊和超级账本Fabric项目进行分析,然后简要介绍其他代表性项目并归纳和对比各项目的技术选型及特点。
4.1 比特币
比特币是目前规模最大、影响范围最广的非许可链开源项目。图9为比特币项目以账本为核心的运行模式,也是所有非许可链项目的雏形。比特币网络为用户提供兑换和转账业务,该业务的价值流通媒介由账本确定的交易数据——比特币支撑。为了保持账本的稳定和数据的权威性,业务制定奖励机制,即账本为节点产生新的比特币或用户支付比特币,以此驱动节点共同维护账本。
图9
新窗口打开|
下载原图ZIP|
生成PPT
图9
比特币运行模式
比特币网络主要由2种节点构成:全节点和轻节点。全节点是功能完备的区块链节点,而轻节点不存储完整的账本数据,仅具备验证与转发功能。全节点也称为矿工节点,计算证明依据的过程被称为“挖矿”,目前全球拥有近 1 万个全节点;矿池则是依靠奖励分配策略将算力汇集起来的矿工群;除此之外,还有用于存储私钥和地址信息、发起交易的客户端(钱包)。
1) 网络层
比特币在网络层采用非结构化方式组网,路由表呈现随机性。节点间则采用多点传播方式传递数据,曾基于Gossip协议实现,为提高网络的抗匿名分析能力改为基于Diffusion协议实现[33]。节点利用一系列控制协议确保链路的可用性,包括版本获取(Vetsion/Verack)、地址获取(Addr/GetAddr)、心跳信息(PING/PONG)等。新节点入网时,首先向硬编码 DNS 节点(种子节点)请求初始节点列表;然后向初始节点随机请求它们路由表中的节点信息,以此生成自己的路由表;最后节点通过控制协议与这些节点建立连接,并根据信息交互的频率更新路由表中节点时间戳,从而保证路由表中的节点都是活动的。交互逻辑层为建立共识交互通道,提供了区块获取(GetBlock)、交易验证(MerkleBlock)、主链选择(CmpctBlock)等协议;轻节点只需要进行简单的区块头验证,因此通过头验证(GetHeader/Header)协议和连接层中的过滤设置协议指定需要验证的区块头即可建立简单验证通路。在安全机制方面,比特币网络可选择利用匿名通信网络Tor作为数据传输承载,通过沿路径的层层数据加密机制来保护对端身份。
2) 数据层
比特币数据层面的技术选型已经被广泛研究,使用UTXO信息模型记录交易数据,实现所有权的简单、有效证明,利用 MKT、散列函数和时间戳实现区块的高效验证并产生强关联性。在加密机制方面,比特币采用参数为Secp256k1的椭圆曲线数字签名算法(ECDSA,elliptic curve digital signature algorithm)生成用户的公私钥,钱包地址则由公钥经过双重散列、Base58Check 编码等步骤生成,提高了可读性。
3) 共识层
比特币采用 PoW 算法实现节点共识,该算法证明依据中的阈值设定可以改变计算难度。计算难度由每小时生成区块的平均块数决定,如果生成得太快,难度就会增加。该机制是为了应对硬件升级或关注提升引起的算力变化,保持证明依据始终有效。目前该阈值被设定为10 min产出一个区块。除此之外,比特币利用奖惩机制保证共识的可持续运行,主要包括转账手续费、挖矿奖励和矿池分配策略等。
4) 控制层
比特币最初采用链上处理模型,并将控制语句直接记录在交易中,使用自动化锁定/解锁脚本验证UTXO模型中的比特币所有权。由于可扩展性和确认时延的限制,比特币产生多个侧链项目如Liquid、RSK、Drivechain等,以及链下处理项目Lightning Network等,从而优化交易速度。
4.2 以太坊
以太坊是第一个以智能合约为基础的可编程非许可链开源平台项目,支持使用区块链网络构建分布式应用,包括金融、音乐、游戏等类型;当满足某些条件时,这些应用将触发智能合约与区块链网络产生交互,以此实现其网络和存储功能,更重要的是衍生出更多场景应用和价值产物,例如以太猫,利用唯一标识为虚拟猫赋予价值;GitCoin,众筹软件开发平台等。
1) 网络层
以太坊底层对等网络协议簇称为DEVP2P,除了满足区块链网络功能外,还满足与以太坊相关联的任何联网应用程序的需求。DEVP2P将节点公钥作为标识,采用 Kademlia 算法计算节点的异或距离,从而实现结构化组网。DEVP2P主要由3种协议组成:节点发现协议RLPx、基础通信协议Wire和扩展协议Wire-Sub。节点间基于Gossip实现多点传播;新节点加入时首先向硬编码引导节点(bootstrap node)发送入网请求;然后引导节点根据Kademlia 算法计算与新节点逻辑距离最近的节点列表并返回;最后新节点向列表中节点发出握手请求,包括网络版本号、节点ID、监听端口等,与这些节点建立连接后则使用Ping/Pong机制保持连接。Wire子协议构建了交易获取、区块同步、共识交互等逻辑通路,与比特币类似,以太坊也为轻量级钱包客户端设计了简易以太坊协议(LES,light ethereum subprotocol)及其变体PIP。安全方面,节点在RLPx协议建立连接的过程中采用椭圆曲线集成加密方案(ECIES)生成公私钥,用于传输共享对称密钥,之后节点通过共享密钥加密承载数据以实现数据传输保护。
2) 数据层
以太坊通过散列函数维持区块的关联性,采用MPT实现账户状态的高效验证。基于账户的信息模型记录了用户的余额及其他 ERC 标准信息,其账户类型主要分为2类:外部账户和合约账户;外部账户用于发起交易和创建合约,合约账户用于在合约执行过程中创建交易。用户公私钥的生成与比特币相同,但是公钥经过散列算法Keccak-256计算后取20 B作为外部账户地址。
3) 共识层
以太坊采用 PoW 共识,将阈值设定为 15 s产出一个区块,计划在未来采用PoS或Casper共识协议。较低的计算难度将导致频繁产生分支链,因此以太坊采用独有的奖惩机制——GHOST 协议,以提高矿工的共识积极性。具体而言,区块中的散列值被分为父块散列和叔块散列,父块散列指向前继区块,叔块散列则指向父块的前继。新区块产生时,GHOST 根据前 7 代区块的父/叔散列值计算矿工奖励,一定程度弥补了分支链被抛弃时浪费的算力。
4) 控制层
每个以太坊节点都拥有沙盒环境 EVM,用于执行Solidity语言编写的智能合约;Solidity语言是图灵完备的,允许用户方便地定义自己的业务逻辑,这也是众多分布式应用得以开发的前提。为优化可扩展性,以太坊拥有侧链项目 Loom、链下计算项目Plasma,而分片技术已于2018年加入以太坊源码。
4.3 超级账本Fabric
超级账本是Linux基金会旗下的开源区块链项目,旨在提供跨行业区块链解决方案。Fabric 是超级账本子项目之一,也是影响最广的企业级可编程许可链项目;在已知的解决方案中,Fabric 被应用于供应链、医疗和金融服务等多种场景。
1) 网络层
Fabric 网络以组织为单位构建节点集群,采用混合式对等网络组网;每个组织中包括普通节点和锚节点(anchor peer),普通节点完成组织内的消息路由,锚节点负责跨组织的节点发现与消息路由。Fabric网络传播层基于Gossip实现,需要使用配置文件初始化网络,网络生成后各节点将定期广播存活信息,其余节点根据该信息更新路由表以保持连接。交互逻辑层采用多通道机制,即相同通道内的节点才能进行状态信息交互和区块同步。Fabric 为许可链,因此在网络层采取严苛的安全机制:节点被颁发证书及密钥对,产生PKI-ID进行身份验证;可选用 TLS 双向加密通信;基于多通道的业务隔离;可定义策略指定通道内的某些节点对等传输私有数据。
2) 数据层
Fabric的区块中记录读写集(read-write set)描述交易执行时的读写过程。该读写集用于更新状态数据库,而状态数据库记录了键、版本和值组成的键值对,因此属于键值对信息模型。一方面,散列函数和 MerkleTree 被用作高效关联结构的实现技术;另一方面,节点还需根据键值验证状态数据库与读写集中的最新版本是否一致。许可链场景对匿名性的要求较低,但对业务数据的隐私性要求较高,因此Fabric 1.2版本开始提供私有数据集(PDC,private data collection)功能。
3) 共识层
Fabric在0.6版本前采用PBFT 共识协议,但是为了提高交易吞吐量,Fabric 1.0 选择降低安全性,将共识过程分解为排序和验证2种服务,排序服务采用CFT类协议Kafka、Raft(v1.4之后)完成,而验证服务进一步分解为读写集验证与多签名验证,最大程度提高了共识速度。由于Fabric针对许可链场景,参与方往往身份可知且具有相同的合作意图,因此规避了节点怠工与作恶的假设,不需要奖惩机制调节。
4) 控制层
Fabric 对于扩展性优化需求较少,主要得益于共识层的优化与许可链本身参与节点较少的前提,因此主要采用链上处理模型,方便业务数据的存取;而 PDC 中仅将私有数据散列值上链的方式则属于链下处理模型,智能合约可以在本地进行数据存取。Fabric 节点采用模块化设计,基于 Docker构建模块执行环境;智能合约在Fabric中被称为链码,使用GO、Javascript和Java语言编写,也是图灵完备的。
4.4 其他项目
除了上述3种区块链基础项目外,产业界还有许多具有代表性的项目,如表1所示。
5 区块链应用研究
区块链技术有助于降低金融机构间的审计成本,显著提高支付业务的处理速度及效率,可应用于跨境支付等金融场景。除此之外,区块链还应用于产权保护、信用体系建设、教育生态优化、食品安全监管、网络安全保障等非金融场景。
根据这些场景的应用方式以及区块链技术特点,可将区块链特性概括为如下几点。1) 去中心化。节点基于对等网络建立通信和信任背书,单一节点的破坏不会对全局产生影响。2) 不可篡改。账本由全体节点维护,群体协作的共识过程和强关联的数据结构保证节点数据一致且基本无法被篡改,进一步使数据可验证和追溯。3) 公开透明。除私有数据外,链上数据对每个节点公开,便于验证数据的存在性和真实性。4) 匿名性。多种隐私保护机制使用户身份得以隐匿,即便如此也能建立信任基础。5) 合约自治。预先定义的业务逻辑使节点可以基于高可信的账本数据实现自治,在人-人、人-机、机-机交互间自动化执行业务。
鉴于上述领域的应用在以往研究中均有详细描述,本文将主要介绍区块链在智慧城市、边缘计算和人工智能领域的前沿应用研究现状。
表1
表1
代表性区块链项目
技术选型CordaQuorumLibraBlockstackFilecoinZcash控制合约Kotlin,JavaGOMoveClarity非图灵完备非图灵完备非图灵完备执行环境JVMEVMMVM源码编译源码编译源码编译处理模型链上链上/链下(私有数据)链上链下(虚拟链)链下(IPFS)链上奖惩机制——Libra coinsStacks tokenFilecoinZcash/Turnstiles共识算法Notary 机制/RAFT,BFT-SMaRtQuorum-Chain,RAFTLibraBFTTunable Proofs,proof-of-burnPoRep,PoETPoW信息模型UTXO基于账户基于账户基于账户基于账户UTXO关联验证结构散列算法MKT散列算法MPT散列算法MKT散列算法Merklized Adaptive Radix Forest (MARF)散列算法MKT散列算法MKT加密机制Tear-offs机制、混合密钥基于EnclaveSHA3-256/EdDSA基于Gaia/Blockstack AuthSECP256K1/BLSzk-SNARK组网方式混合型结构化混合型无结构结构化/无结构无结构通信机制AMQP1.0/单点传播Wire/GossipNoise-ProtocolFramework/GossipAtlas/GossipLibp2p/GossipBitcoin-Core/Gossip安全机制Corda加密套件/TLS证书/HTTPSDiffie-HellmanSecure BackboneTLSTor区块链类型许可链许可链许可链非许可链非许可链非许可链特点只允许对实际参与给定交易的各方进行信息访问和验证功能基于以太坊网络提供公共交易和私有交易2种交互渠道稳定、快速的交易网络剔除中心服务商的、可扩展的分布式数据存储设施,旨在保护隐私数据激励机制驱动的存储资源共享生态基于比特币网络提供零知识证明的隐私保护应用场景金融业务平台分布式应用加密货币互联网基础设施文件存储与共享加密货币
新窗口打开|
下载CSV
5.1 智慧城市
智慧城市是指利用 ICT 优化公共资源利用效果、提高居民生活质量、丰富设施信息化能力的研究领域,该领域包括个人信息管理、智慧医疗、智慧交通、供应链管理等具体场景。智慧城市强调居民、设施等各类数据的采集、分析与使能,数据可靠性、管理透明化、共享可激励等需求为智慧城市带来了许多技术挑战。区块链去中心化的交互方式避免了单点故障、提升管理公平性,公开透明的账本保证数据可靠及可追溯性,多种匿名机制利于居民隐私的保护,因此区块链有利于问题的解决。Hashemi等[62]将区块链用于权限数据存储,构建去中心化的个人数据接入控制模型;Bao等[63]利用区块链高效认证和管理用户标识,保护车主的身份、位置、车辆信息等个人数据。
5.2 边缘计算
边缘计算是一种将计算、存储、网络资源从云平台迁移到网络边缘的分布式信息服务架构,试图将传统移动通信网、互联网和物联网等业务进行深度融合,减少业务交付的端到端时延,提升用户体验。安全问题是边缘计算面临的一大技术挑战,一方面,边缘计算的层次结构中利用大量异构终端设备提供用户服务,这些设备可能产生恶意行为;另一方面,服务迁移过程中的数据完整性和真实性需要得到保障。区块链在这种复杂的工作环境和开放的服务架构中能起到较大作用。首先,区块链能够在边缘计算底层松散的设备网络中构建不可篡改的账本,提供设备身份和服务数据验证的依据。其次,设备能在智能合约的帮助下实现高度自治,为边缘计算提供设备可信互操作基础。Samaniego等[64]提出了一种基于区块链的虚拟物联网资源迁移架构,通过区块链共享资源数据从而保障安全性。Stanciu[65]结合软件定义网络(SDN)、雾计算和区块链技术提出分布式安全云架构,解决雾节点中SDN控制器流表策略的安全分发问题。Ziegler等[66]基于 Plasma 框架提出雾计算场景下的区块链可扩展应用方案,提升雾计算网关的安全性。
5.3 人工智能
人工智能是一类智能代理的研究,使机器感知环境/信息,然后进行正确的行为决策,正确是指达成人类预定的某些目标。人工智能的关键在于算法,而大部分机器学习和深度学习算法建立于体积庞大的数据集和中心化的训练模型之上,该方式易受攻击或恶意操作使数据遭到篡改,其后果为模型的不可信与算力的浪费。此外,数据采集过程中无法确保下游设备的安全性,无法保证数据来源的真实性与完整性,其后果将在自动驾驶等场景中被放大。区块链不可篡改的特性可以实现感知和训练过程的可信。另外,去中心化和合约自治特性为人工智能训练工作的分解和下放奠定了基础,保障安全的基础上提高计算效率。Kim等[67]利用区块链验证联合学习框架下的分发模型的完整性,并根据计算成本提供相应的激励,优化整体学习效果。Bravo-Marquez 等[68]提出共识机制“学习证明”以减轻PoX类共识的计算浪费,构建公共可验证的学习模型和实验数据库。
6 技术挑战与研究展望
6.1 层次优化与深度融合
区块链存在“三元悖论”——安全性、扩展性和去中心化三者不可兼得,只能依靠牺牲一方的效果来满足另外两方的需求。以比特币为代表的公链具有较高的安全性和完全去中心化的特点,但是资源浪费等问题成为拓展性优化的瓶颈。尽管先后出现了PoS、BFT等共识协议优化方案,或侧链、分片等链上处理模型,或Plasma、闪电网络等链下扩展方案,皆是以部分安全性或去中心化为代价的。因此,如何将区块链更好地推向实际应用很大程度取决于三元悖论的解决,其中主要有2种思路。
1) 层次优化
区块链层次化结构中每层都不同程度地影响上述3种特性,例如网络时延、并行读写效率、共识速度和效果、链上/链下模型交互机制的安全性等,对区块链的优化应当从整体考虑,而不是单一层次。
网络层主要缺陷在于安全性,可拓展性则有待优化。如何防御以 BGP 劫持为代表的网络攻击将成为区块链底层网络的安全研究方向[19]。信息中心网络将重塑区块链基础传输网络,通过请求聚合和数据缓存减少网内冗余流量并加速通信传输[69]。相比于数据层和共识层,区块链网络的关注度较低,但却是影响安全性、可拓展性的基本因素。
数据层的优化空间在于高效性,主要为设计新的数据验证结构与算法。该方向可以借鉴计算机研究领域的多种数据结构理论与复杂度优化方法,寻找适合区块链计算方式的结构,甚至设计新的数据关联结构。实际上相当一部分项目借鉴链式结构的思想开辟新的道路,例如压缩区块空间的隔离见证、有向无环图(DAG)中并行关联的纠缠结构(Tangle),或者Libra项目采用的状态树。
共识机制是目前研究的热点,也是同时影响三元特性的最难均衡的层次。PoW牺牲可拓展性获得完全去中心化和安全性,PoS高效的出块方式具备可扩展性但产生了分叉问题,POA结合两者做到了3种特性的均衡。以此为切入的Hybrid类共识配合奖惩机制的机动调节取得了较好效果,成为共识研究的过渡手段,但是如何做到三元悖论的真正突破还有待研究。
控制层面是目前可扩展性研究的热点,其优势在于不需要改变底层的基础实现,能够在短期内应用,集中在产业界的区块链项目中。侧链具有较好的灵活性但操作复杂度高,分片改进了账本结构但跨分片交互的安全问题始终存在,而链下处理模型在安全方面缺少理论分析的支撑。因此,三元悖论的解决在控制层面具有广泛的研究前景。
2) 深度融合
如果将层次优化称为横向优化,那么深度融合即为根据场景需求而进行的纵向优化。一方面,不同场景的三元需求并不相同,例如接入控制不要求完全去中心化,可扩展性也未遇到瓶颈,因此可采用BFT类算法在小范围构建联盟链。另一方面,区块链应用研究从简单的数据上链转变为链下存储、链上验证,共识算法从 PoW 转变为场景结合的服务证明和学习证明,此外,结合 5G 和边缘计算可将网络和计算功能移至网络边缘,节约终端资源。这意味着在严格的场景建模下,区块链的层次技术选型将与场景特点交叉创新、深度融合,具有较为广阔的研究前景。
6.2 隐私保护
加密货币以匿名性著称,但是区块链以非对称加密为基础的匿名体系不断受到挑战。反匿名攻击从身份的解密转变为行为的聚类分析,不仅包括网络流量的IP聚类,还包括交易数据的地址聚类、交易行为的启发式模型学习,因此大数据分析技术的发展使区块链隐私保护思路发生转变。已有Tor网络、混币技术、零知识证明、同态加密以及各类复杂度更高的非对称加密算法被提出,但是各方法仍有局限,未来将需要更为高效的方法。此外,随着区块链系统的可编程化发展,内部复杂性将越来越高,特别是智能合约需要更严格、有效的代码检测方法,例如匿名性检测、隐私威胁预警等。
6.3 工业区块链
工业区块链是指利用区块链夯实工业互联网中数据的流通和管控基础、促进价值转换的应用场景,具有较大的研究前景。
工业互联网是面向制造业数字化、网络化、智能化需求,构建基于海量数据采集、汇聚、分析的服务体系,支撑制造资源泛在连接、弹性供给、高效配置的重要基础设施。“工业互联网平台”是工业互联网的核心,通过全面感知、实时分析、科学决策、精准执行的逻辑闭环,实现工业全要素、全产业链、全价值链的全面贯通,培育新的模式和业态。
可以看到,工业互联网与物联网、智慧城市、消费互联网等场景应用存在内在关联,例如泛在连接、数据共享和分析、电子商务等,那么其学术问题与技术实现必然存在关联性。区块链解决了物联网中心管控架构的单点故障问题,克服泛在感知设备数据的安全性和隐私性挑战,为智慧城市场景的数据共享、接入控制等问题提供解决方法,为激励资源共享构建了新型互联网价值生态。尽管工业互联网作为新型的产业生态系统,其技术体系更复杂、内涵更丰富,但是不难想象,区块链同样有利于工业互联网的发展。
“平台+区块链”能够通过分布式数据管理模式,降低数据存储、处理、使用的管理成本,为工业用户在工业 APP 选择和使用方面搭建起更加可信的环境,实现身份认证及操作行为追溯、数据安全存储与可靠传递。能够通过产品设计参数、质量检测结果、订单信息等数据“上链”,实现有效的供应链全要素追溯与协同服务。能够促进平台间数据交易与业务协同,实现跨平台交易结算,带动平台间的数据共享与知识复用,促进工业互联网平台间互联互通。
当然,工业是关乎国计民生的产业,将区块链去中心化、匿名化等特性直接用于工业互联网是不可取的,因此需要研究工业区块链管理框架,实现区块链的可管可控,在一定范围内发挥其安全优势,并对工业互联网的运转提供正向激励。
7 结束语
区块链基于多类技术研究的成果,以低成本解决了多组织参与的复杂生产环境中的信任构建和隐私保护等问题,在金融、教育、娱乐、版权保护等场景得到了较多应用,成为学术界的研究热点。比特币的出现重塑了人们对价值的定义,伴随着产业界的呼声,区块链技术得到了快速发展,而遵循区块链层次化分析方法,能够直观地区别各项目的技术路线和特点,为优化区块链技术提供不同观察视角,并为场景应用的深度融合创造条件,促进后续研究。未来的发展中,区块链将成为更为基础的信任支撑技术,在产业互联网等更广阔的领域健康、有序地发展。
The authors have declared that no competing interests exist.
作者已声明无竞争性利益关系。
参考文献
View Option
原文顺序
文献年度倒序
文中引用次数倒序
被引期刊影响因子
[1]
袁勇, 王飞跃 . 区块链技术发展现状与展望[J]. 自动化学报, 2016,42(4): 481-494.
[本文引用: 1]
YUAN Y , WANG F Y . Blockchain:the state of the art and future trends[J]. Acta Automatica Sinica, 2016,42(4): 481-494.
[本文引用: 1]
[2]
邵奇峰, 张召, 朱燕超 ,等. 企业级区块链技术综述[J]. 软件学报, 2019,30(9): 2571-2592.
[本文引用: 1]
SHAO Q F , ZHANG Z , ZHU Y C ,et al. Survey of enterprise blockchains[J]. 2019,30(9): 2571-2592.
[本文引用: 1]
[3]
YANG W , AGHASIAN E , GARG S ,et al. A survey on blockchain-based internet service architecture:requirements,challenges,trends,and future[J]. IEEE Access, 2019,7: 75845-75872.
[本文引用: 1]
[4]
韩璇, 袁勇, 王飞跃 . 区块链安全问题:研究现状与展望[J]. 自动化学报, 2019,45(1): 208-227.
[本文引用: 1]
HAN X , YUAN Y , WANG F Y . Security problems on blockchain:the state of the art and future trends[J]. Acta Automatica Sinica, 2016,45(1): 208-227.
[本文引用: 1]
[5]
ALI M , VECCHIO M , PINCHEIRA M ,et al. Applications of blockchains in the Internet of things:a comprehensive survey[J]. IEEE Communications Surveys & Tutorials, 2019,21: 1676-1717.
[本文引用: 1]
[6]
CHAUM D . Blind signature system[M]. Advances in Cryptology: Proceedings of Crypto 83.Springer USPress, 1984.
[本文引用: 1]
[7]
LAW L , SABEET S , SOLINAS J . How to make a mint:the cryptography of anonymous electronic cash[J]. The American University Law Review, 1997,46: 1131-1162.
[本文引用: 1]
[8]
JAKOBSSON M , JUELS A . Proofs of work and bread pudding protocols[C]// IFIP TC6/TC11 Joint Working Conference on Communications and Multimedia Security. IFIP, 1999: 258-272.
[本文引用: 1]
[9]
王学龙, 张璟 . P2P 关键技术研究综述[J]. 计算机应用研究, 2010,27(3): 801-805.
[本文引用: 1]
WANG X L , ZHANG J . Survey on peer-to-peer key technologies[J]. Application Research of Computers, 2010,27(3): 801-805.
[本文引用: 1]
[10]
DEMERS A , GREENE D , HOUSER C ,et al. Epidemic algorithms for replicated database maintenance[J]. ACM SIGOPS Operating Systems Review, 1988,22: 8-32.
[本文引用: 1]
[11]
DECKER C , WATTENHOFER R . Information propagation in the bitcoin network[C]// IEEE Thirteenth International Conference on Peer-to-peer Computing. IEEE, 2013: 1-10.
[本文引用: 1]
[12]
FADHIL M , OWENSON G , ADDA M . Locality based approach to improve propagation delay on the bitcoin peer-to-peer network[C]// 2017 IFIP/IEEE Symposium on Integrated Network and Service Management (IM). IEEE, 2017: 556-559.
[本文引用: 1]
[13]
KANEKO Y , ASAKA T . DHT clustering for load balancing considering blockchain data size[C]// 2018 Sixth International Symposium on Computing and Networking Workshops (CANDARW). IEEE Computer Society, 2018: 71-74.
[本文引用: 1]
[14]
KOSHY P , KOSHY D , MCDANIEL P . An analysis of anonymity in bitcoin using P2P network traffic[C]// Financial Cryptography and Data Security:18th International Conference. Springer, 2014: 469-485.
[15]
BIRYUKOV A , KHOVRATOVICH D , PUSTOGAROV I . Deanonymisation of clients in bitcoin P2P network[C]// ACM SIGSAC Conference on Computer and Communications Security. ACM, 2014: 15-29.
[16]
VENKATAKRISHNAN S B , FANTI G , VISWANATH P . Dandelion:redesigning the bitcoin network for anonymity[C]// The 2017 ACM SIGMETRICS. ACM, 2017:57.
[本文引用: 1]
[17]
FANTI G , VENKATAKRISHNAN S B , BAKSHI S ,et al. Dandelion++:lightweight cryptocurrency networking with formal anonymity guarantees[J]. ACM SIGMETRICS Performance Evaluation Review, 2018,46: 5-7.
[本文引用: 1]
[18]
HEILMAN E , KENDLER A , ZOHAR A ,et al. Eclipse attacks on Bitcoin’s peer-to-peer network[C]// USENIX Conference on Security Symposium. USENIX Association, 2015: 129-144.
[本文引用: 1]
[19]
APOSTOLAKI M , ZOHAR A , VANBEVER L . Hijacking bitcoin:routing attacks on cryptocurrencies[C]// 2017 IEEE Symposium on Security and Privacy (SP). IEEE, 2017: 375-392.
[本文引用: 2]
[20]
REYZIN L , IVANOV S . Improving authenticated dynamic dictionaries,with applications to cryptocurrencies[C]// International Conference on Financial Cryptography & Data Security. Springer, 2017: 376-392.
[本文引用: 1]
[21]
ZHANG C , XU C , XU J L ,et al. GEM^2-tree:a gas-efficient structure for authenticated range queries in blockchain[C]// IEEE 35th International Conference on Data Engineering (ICDE). IEEE, 2019: 842-853.
[本文引用: 1]
[22]
REID F , HARRIGAN M . An analysis of anonymity in the bitcoin system[C]// 2011 IEEE Third International Conference on Privacy,Security,Risk and Trust. IEEE, 2011: 1318-1326.
[本文引用: 1]
[23]
MEIKLEJOHN S , POMAROLE M , JORDAN G ,et al. A fistful of bitcoins:characterizing payments among men with no names[C]// The 2013 Conference on Internet Measurement Conference. ACM, 2013: 127-140.
[本文引用: 1]
[24]
AWAN M K , CORTESI A . Blockchain transaction analysis using dominant sets[C]// IFIP International Conference on Computer Information Systems and Industrial Management. IFIP, 2017: 229-239.
[本文引用: 1]
[25]
SAXENA A , MISRA J , DHAR A . Increasing anonymity in bitcoin[C]// International Conference on Financial Cryptography and Data Security. Springer, 2014: 122-139.
[本文引用: 1]
[26]
MIERS I , GARMAN C , GREEN M ,et al. Zerocoin:anonymous distributed e-cash from bitcoin[C]// 2013 IEEE Symposium on Security and Privacy. IEEE, 2013: 397-411.
[本文引用: 1]
[27]
SASSON E B , CHIESA A , GARMAN C ,et al. Zerocash:decentralized anonymous payments from bitcoin[C]// 2014 IEEE Symposium on Security and Privacy (SP). IEEE, 2014: 459-474.
[本文引用: 1]
[28]
YIN W , WEN Q , LI W ,et al. A anti-quantum transaction authentication approach in blockchain[J]. IEEE Access, 2018,6: 5393-5401.
[本文引用: 1]
[29]
DOUCEUR J R , . The sybil attack[C]// The First International Workshop on Peer-to-Peer Systems(IPTPS’ 01). Springer, 2002: 251-260.
[本文引用: 1]
[30]
KARAME G O , ANDROULAKI E , CAPKUN S . Double-spending fast payments in bitcoin[C]// The 2012 ACM conference on Computer and communications security. ACM, 2012: 906-917.
[本文引用: 1]
[31]
LAMPORT L , SHOSTAK R , PEASE M . The byzantine generals problem[J]. ACM Transactions on Programming Languages and Systems, 1982,4: 382-401.
[本文引用: 1]
[32]
BANO S , SONNINO A , AL-BASSAM M ,et al. Consensus in the age of blockchains[J]..03936,2017. arXiv Preprint,arXiv:1711.03936,2017.
[本文引用: 1]
[33]
DWORK C , LYNCH N , STOCKMEYER L . Consensus in the presence of partial synchrony[J]. Journal of the ACM, 1988,35: 288-323.
[本文引用: 2]
[34]
TSCHORSCH F , SCHEUERMANN B . Bitcoin and beyond:a technical survey on decentralized digital currencies[J]. IEEE Communications Surveys & Tutorials, 2016,18: 2084-2123.
[本文引用: 1]
[35]
CACHIN C VUKOLIĆ M . Blockchains consensus protocols in the wild[J]. arXiv Preprint,arXiv:1707.01873, 2017.
[本文引用: 1]
[36]
CASTRO M , LISKOV B . Practical byzantine fault tolerance and proactive recovery[J]. ACM Transactions on Computer Systems, 2002,20: 398-461.
[本文引用: 1]
[37]
ONGARO D , OUSTERHOUT J . In search of an understandable consensus algorithm[C]// The 2014 USENIX Conference on USENIX Annual Technical Conference. USENIX Association, 2015: 305-320.
[本文引用: 1]
[38]
BALL M , ROSEN A , SABIN M ,et al. Proofs of useful work[R]. Cryptology ePrint Archive:Report 2017/203.
[本文引用: 1]
[39]
MIHALJEVIC B , ZAGAR M . Comparative analysis of blockchain consensus algorithms[C]// International Convention on Information and Communication Technology,Electronics and Microelectronics (MIPRO). IEEE, 2018: 1545-1550.
[本文引用: 1]
[40]
KIAYIAS A , RUSSELL A , DAVID B ,et al. Ouroboros:a provably secure proof-of-stake blockchain protocol[C]// Advances in Cryptology - CRYPTO 2017. Springer, 2017: 357-388.
[本文引用: 1]
[41]
FISCH B . Tight proofs of space and replication[J].,ePrint-2018-702. IACR Cryptology ePrint Archive,ePrint-2018-702.
[本文引用: 1]
[42]
BELOTTI M , BOŽIĆ N , PUJOLLE G ,et al. A vademecum on blockchain technologies:when,which,and how[J]. IEEE Communications Surveys & Tutorials, 2019,21: 3796-3838.
[本文引用: 1]
[43]
WANG W B , HOANG D T , HU P Z ,et al. A survey on consensus mechanisms and mining strategy management in blockchain networks[J]. IEEE Access, 2019,7: 22328-22370.
[本文引用: 1]
[44]
YOO J H , JUNG Y L , SHIN D H ,et al. Formal modeling and verification of a federated byzantine agreement algorithm for blockchain platforms[C]// IEEE International Workshop on Blockchain Oriented Software Engineering. 2019: 11-21.
[本文引用: 1]
[45]
ZHENG Z B , XIE S , DAI H ,et al. An overview of blockchain technology:architecture,consensus,and future trends[C]// 6th IEEE International Congress on Big Data. IEEE, 2017: 557-564.
[本文引用: 1]
[46]
YIN M , MALKHI D , REITER M K ,et al. HotStuff:BFT consensus in the lens of blockchain[C]// ACM Symposium on Principles of Distributed Computing. ACM, 2019: 347-356.
[本文引用: 1]
[47]
ALI S , WANG G , WHITE B ,et al. Libra critique towards global decentralized financial system[C]// Communications in Computer and Information Science. Springer, 2019: 661-672.
[本文引用: 1]
[48]
BENTOV I , LEE C , MIZRAHI A ,et al. Proof of activity:extending bitcoin’s proof of work via proof of stake[J]. IACR Cryptology ePrint Archive,ePrint-2014-25478.
[本文引用: 1]
[49]
DECKER C , SEIDEL J , WATTENHOFER R . Bitcoin meets strong consistency[J].,2014. arXiv Preprint,arXiv:1412.7935,2014.
[本文引用: 1]
[50]
KOKORIS-KOGIAS E , JOVANOVIC P , GAILLY N ,et al. Enhancing bitcoin security and performance with strong consistency via collective signing[J]. Applied Mathematical Modelling, 2016,37: 5723-5742.
[本文引用: 1]
[51]
BUTERIN V , GRIFFITH V . Casper the friendly finality gadget[J]. arXiv Preprint,arXiv:1710.09437,2017.
[本文引用: 1]
[52]
TSCHORSCH F , SCHEUERMANN B . Bitcoin and beyond:a technical survey on decentralized digital currencies[J]. IEEE Communications Surveys & Tutorials, 2016,18: 2084-2023,2017.
[本文引用: 1]
[53]
KIAYIAS A , MILLER A , ZINDROS D . Non-interactive proofs of proof-of-work[J]. IACR Cryptology ePrint Archive,ePrint-2017-963.
[本文引用: 1]
[54]
LUU L , NARAYANAN V , ZHENG C ,et al. A secure sharding protocol for open blockchains[C]// The 2016 ACM SIGSAC Conference on Computer and Communications Security(CCS’16). ACM, 2016: 17-30.
[本文引用: 1]
[55]
KOKORIS-KOGIAS E , JOVANOVIC P , GASSER L ,et al. OmniLedger:a secure,scale-out,decentralized ledger via sharding[C]// IEEE Symposium on Security and Privacy (SP). IEEE Computer Society, 2018: 583-598.
[本文引用: 1]
[56]
LI S , YU M , AVESTIMEHR S ,et al. PolyShard:coded sharding achieves linearly scaling efficiency and security simultaneously[J]. arXiv Preprint,arXiv:1809.10361,2018.
[本文引用: 1]
[57]
XIE J F , YU F R , HUANG T ,et al. A survey on the scalability of blockchain systems[J]. IEEE Network, 2019,33: 166-173.
[本文引用: 1]
[58]
BURCHERT C , DECKER C , WATTENHOFER R . Scalable funding of bitcoin micropayment channel networks[C]// Stabilization,Safety,and Security of Distributed Systems. Springer, 2017: 361-377.
[本文引用: 1]
[59]
LUU L , CHU D , OLICKEL H ,et al. Making smart contracts smarter[C]// The 2016 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2016: 254-269.
[本文引用: 1]
[60]
BRENT L , JURISEVIC A , KONG M ,et al. Vandal:a scalable security analysis framework for smart contracts[J]. arXiv Preprint,arXiv:1809.039812018.
[本文引用: 1]
[61]
JIANG B , LIU Y , CHAN W K . ContractFuzzer:fuzzing smart contracts for vulnerability detection[J]. arXiv Preprint,arXiv:1807.03932,2018.
[本文引用: 1]
[62]
HASHEMI S H , FAGHRI F , CAMPBELL R H . Decentralized user-centric access control using pubsub over blockchain[J]. arXiv Preprint,arXiv:1710.00110,2017.
[本文引用: 1]
[63]
BAO S.CAO Y , LEI A ,et al. Pseudonym management through blockchain:cost-efficient privacy preservation on intelligent transportation systems[J]. IEEE Access, 2019,7: 80390-80403.
[本文引用: 1]
[64]
SAMANIEGO M , DETERS R . Hosting virtual IoT resources on edge-hosts with blockchain[C]// IEEE International Conference on Computer & Information Technology. IEEE, 2016: 116-119.
[本文引用: 1]
[65]
STANCIU A , . Blockchain based distributed control system for edge computing[C]// International Conference on Control Systems &Computer Science. IEEE, 2017: 667-671.
[本文引用: 1]
[66]
ZIEGLER M H , GROMANN M , KRIEGER U R . Integration of fog computing and blockchain technology using the plasma framework[C]// 2019 IEEE International Conference on Blockchain and Cryptocurrency (ICBC). IEEE, 2019: 120-123.
[本文引用: 1]
[67]
KIM H , PARK J , BENNIS M ,et al. Blockchained on-device federated learning[J]. arXiv Preprint,arXiv:1808.03949, 2018.
[本文引用: 1]
[68]
BRAVO-MARQUEZ F , REEVES S , UGARTE M . Proof-of- learning:a blockchain consensus mechanism based on machine learning competitions[C]// 2019 IEEE International Conference on Decentralized Applications and Infrastructures. IEEE, 2019: 119-124.
[本文引用: 1]
[69]
刘江, 霍如, 李诚成 ,等. 基于命名数据网络的区块链信息传输机制[J]. 通信学报, 2018,39(1), 24-33.
[本文引用: 1]
LIU J , HUO R , LI C C ,et al. Information transmission mechanism of Blockchain technology based on named-data networking[J]. Journal on Communications, 2018,39(1): 24-33.
[本文引用: 1]
区块链技术发展现状与展望
1
2016
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
区块链技术发展现状与展望
1
2016
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
企业级区块链技术综述
1
2019
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
企业级区块链技术综述
1
2019
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
A survey on blockchain-based internet service architecture:requirements,challenges,trends,and future
1
2019
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
区块链安全问题:研究现状与展望
1
2016
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
区块链安全问题:研究现状与展望
1
2016
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
Applications of blockchains in the Internet of things:a comprehensive survey
1
2019
... 区块链涵盖多种技术,相关概念易混淆,且应用场景繁多,为此,已有相关综述主要从技术体系结构、技术挑战和应用场景等角度来梳理区块链的最新进展、技术差异和联系,总结技术形态和应用价值.袁勇等[1]给出了区块链基本模型,以比特币为例将非许可链分为数据层、网络层、共识层、激励层、合约层和应用层;邵奇峰等[2]结合开源项目细节,对比了多种企业级区块链(许可链)的技术特点;Yang等[3]总结了基于区块链的网络服务架构的特点、挑战和发展趋势;韩璇等[4]系统性归纳了区块链安全问题的研究现状;Ali等[5]总结了区块链在物联网方面的应用研究进展、趋势.上述文献虽然归纳得较为完整,但是都没有从许可链与非许可链共性技术的角度进行通用的层次结构分析,没有体现出区块链技术与组网路由、数据结构、同步机制等已有技术的关联性,且缺少对区块链项目的差异分析.本文则对有关概念进行区分,探讨了通用的层次化技术结构及其与已有技术的关联性,并针对该结构横向分析相关学术研究进展;根据分层结构对比部分区块链项目的技术选型;最后以智慧城市场景、边缘计算和人工智能技术为代表介绍区块链应用研究现状,给出区块链技术挑战与研究展望. ...
Blind signature system
1
1984
... 加密货币的概念起源于一种基于盲签名(blind signature)的匿名交易技术[6],最早的加密货币交易模型“electronic cash”[7]如图1所示. ...
How to make a mint:the cryptography of anonymous electronic cash
1
1997
... 加密货币的概念起源于一种基于盲签名(blind signature)的匿名交易技术[6],最早的加密货币交易模型“electronic cash”[7]如图1所示. ...
Proofs of work and bread pudding protocols
1
1999
... 最早的加密货币构想将银行作为构建信任的基础,呈现中心化特点.此后,加密货币朝着去中心化方向发展,并试图用工作量证明(PoW,poof of work)[8]或其改进方法定义价值.比特币在此基础上,采用新型分布式账本技术保证被所有节点维护的数据不可篡改,从而成功构建信任基础,成为真正意义上的去中心化加密货币.区块链从去中心化加密货币发展而来,随着区块链的进一步发展,去中心化加密货币已经成为区块链的主要应用之一. ...
P2P 关键技术研究综述
1
2010
... 对等网络的体系架构可分为无结构对等网络、结构化对等网络和混合式对等网络[9],根据节点的逻辑拓扑关系,区块链网络的组网结构也可以划分为上述3种,如图3所示. ...
P2P 关键技术研究综述
1
2010
... 对等网络的体系架构可分为无结构对等网络、结构化对等网络和混合式对等网络[9],根据节点的逻辑拓扑关系,区块链网络的组网结构也可以划分为上述3种,如图3所示. ...
Epidemic algorithms for replicated database maintenance
1
1988
... 传播层实现对等节点间数据的基本传输,包括2 种数据传播方式:单点传播和多点传播.单点传播是指数据在2个已知节点间直接进行传输而不经过其他节点转发的传播方式;多点传播是指接收数据的节点通过广播向邻近节点进行数据转发的传播方式,区块链网络普遍基于Gossip协议[10]实现洪泛传播.连接层用于获取节点信息,监测和改变节点间连通状态,确保节点间链路的可用性(availability).具体而言,连接层协议帮助新加入节点获取路由表数据,通过定时心跳监测为节点保持稳定连接,在邻居节点失效等情况下为节点关闭连接等.交互逻辑层是区块链网络的核心,从主要流程上看,该层协议承载对等节点间账本数据的同步、交易和区块数据的传输、数据校验结果的反馈等信息交互逻辑,除此之外,还为节点选举、共识算法实施等复杂操作和扩展应用提供消息通路. ...
Information propagation in the bitcoin network
1
2013
... 随着近年来区块链网络的爆炸式发展以及开源特点,学术界开始关注大型公有链项目的网络状况,监测并研究它们的特点,研究对象主要为比特币网络.Decker等[11]设计和实现测量工具,分析传播时延数据、协议数据和地址数据,建模分析影响比特币网络性能的网络层因素,基于此提出各自的优化方法.Fadhil等[12]提出基于事件仿真的比特币网络仿真模型,利用真实测量数据验证模型的有效性,最后提出优化机制 BCBSN,旨在设立超级节点降低网络波动.Kaneko 等[13]将区块链节点分为共识节点和验证节点,其中共识节点采用无结构组网方式,验证节点采用结构化组网方式,利用不同组网方式的优点实现网络负载的均衡. ...
Locality based approach to improve propagation delay on the bitcoin peer-to-peer network
1
2017
... 随着近年来区块链网络的爆炸式发展以及开源特点,学术界开始关注大型公有链项目的网络状况,监测并研究它们的特点,研究对象主要为比特币网络.Decker等[11]设计和实现测量工具,分析传播时延数据、协议数据和地址数据,建模分析影响比特币网络性能的网络层因素,基于此提出各自的优化方法.Fadhil等[12]提出基于事件仿真的比特币网络仿真模型,利用真实测量数据验证模型的有效性,最后提出优化机制 BCBSN,旨在设立超级节点降低网络波动.Kaneko 等[13]将区块链节点分为共识节点和验证节点,其中共识节点采用无结构组网方式,验证节点采用结构化组网方式,利用不同组网方式的优点实现网络负载的均衡. ...
DHT clustering for load balancing considering blockchain data size
1
2018
... 随着近年来区块链网络的爆炸式发展以及开源特点,学术界开始关注大型公有链项目的网络状况,监测并研究它们的特点,研究对象主要为比特币网络.Decker等[11]设计和实现测量工具,分析传播时延数据、协议数据和地址数据,建模分析影响比特币网络性能的网络层因素,基于此提出各自的优化方法.Fadhil等[12]提出基于事件仿真的比特币网络仿真模型,利用真实测量数据验证模型的有效性,最后提出优化机制 BCBSN,旨在设立超级节点降低网络波动.Kaneko 等[13]将区块链节点分为共识节点和验证节点,其中共识节点采用无结构组网方式,验证节点采用结构化组网方式,利用不同组网方式的优点实现网络负载的均衡. ...
An analysis of anonymity in bitcoin using P2P network traffic
2014
Deanonymisation of clients in bitcoin P2P network
2014
Dandelion:redesigning the bitcoin network for anonymity
1
2017
... 匿名性是加密货币的重要特性之一,但从网络层视角看,区块链的匿名性并不能有效保证,因为攻击者可以利用监听并追踪 IP 地址的方式推测出交易之间、交易与公钥地址之间的关系,通过匿名隐私研究可以主动发掘安全隐患,规避潜在危害.Koshy 等[16,17]从网络拓扑、传播层协议和作恶模型3个方面对比特币网络进行建模,通过理论分析和仿真实验证明了比特币网络协议在树形组网结构下仅具备弱匿名性,在此基础上提出 Dandelion 网络策略以较低的网络开销优化匿名性,随后又提出 Dandelion++原理,以最优信息理论保证来抵抗大规模去匿名攻击. ...
Dandelion++:lightweight cryptocurrency networking with formal anonymity guarantees
1
2018
... 匿名性是加密货币的重要特性之一,但从网络层视角看,区块链的匿名性并不能有效保证,因为攻击者可以利用监听并追踪 IP 地址的方式推测出交易之间、交易与公钥地址之间的关系,通过匿名隐私研究可以主动发掘安全隐患,规避潜在危害.Koshy 等[16,17]从网络拓扑、传播层协议和作恶模型3个方面对比特币网络进行建模,通过理论分析和仿真实验证明了比特币网络协议在树形组网结构下仅具备弱匿名性,在此基础上提出 Dandelion 网络策略以较低的网络开销优化匿名性,随后又提出 Dandelion++原理,以最优信息理论保证来抵抗大规模去匿名攻击. ...
Eclipse attacks on Bitcoin’s peer-to-peer network
1
2015
... 区块链重点关注其数据层和共识层面机制,并基于普通网络构建开放的互联环境,该方式极易遭受攻击.为提高区块链网络的安全性,学术界展开研究并给出了相应的解决方案.Heilman 等[18]对比特币和以太坊网络实施日蚀攻击(eclipse attack)——通过屏蔽正确节点从而完全控制特定节点的信息来源,证实了该攻击的可行性.Apostolaki等[19]提出针对比特币网络的 BGP(border gateway protocal)劫持攻击,通过操纵自治域间路由或拦截域间流量来制造节点通信阻塞,表明针对关键数据的沿路攻击可以大大降低区块传播性能. ...
Hijacking bitcoin:routing attacks on cryptocurrencies
2
2017
... 区块链重点关注其数据层和共识层面机制,并基于普通网络构建开放的互联环境,该方式极易遭受攻击.为提高区块链网络的安全性,学术界展开研究并给出了相应的解决方案.Heilman 等[18]对比特币和以太坊网络实施日蚀攻击(eclipse attack)——通过屏蔽正确节点从而完全控制特定节点的信息来源,证实了该攻击的可行性.Apostolaki等[19]提出针对比特币网络的 BGP(border gateway protocal)劫持攻击,通过操纵自治域间路由或拦截域间流量来制造节点通信阻塞,表明针对关键数据的沿路攻击可以大大降低区块传播性能. ...
... 网络层主要缺陷在于安全性,可拓展性则有待优化.如何防御以 BGP 劫持为代表的网络攻击将成为区块链底层网络的安全研究方向[19].信息中心网络将重塑区块链基础传输网络,通过请求聚合和数据缓存减少网内冗余流量并加速通信传输[69].相比于数据层和共识层,区块链网络的关注度较低,但却是影响安全性、可拓展性的基本因素. ...
Improving authenticated dynamic dictionaries,with applications to cryptocurrencies
1
2017
... 高效验证的学术问题源于验证数据结构(ADS,authenticated data structure),即利用特定数据结构快速验证数据的完整性,实际上 MKT 也是其中的一种.为了适应区块链数据的动态性(dynamical)并保持良好性能,学术界展开了研究.Reyzin等[20]基于AVL树形结构提出AVL+,并通过平衡验证路径、缺省堆栈交易集等机制,简化轻量级节点的区块头验证过程.Zhang等[21]提出GEM2-tree结构,并对其进行优化提出 GEM2כ-tree 结构,通过分解单树结构、动态调整节点计算速度、扩展数据索引等机制降低以太坊节点计算开销. ...
GEM^2-tree:a gas-efficient structure for authenticated range queries in blockchain
1
2019
... 高效验证的学术问题源于验证数据结构(ADS,authenticated data structure),即利用特定数据结构快速验证数据的完整性,实际上 MKT 也是其中的一种.为了适应区块链数据的动态性(dynamical)并保持良好性能,学术界展开了研究.Reyzin等[20]基于AVL树形结构提出AVL+,并通过平衡验证路径、缺省堆栈交易集等机制,简化轻量级节点的区块头验证过程.Zhang等[21]提出GEM2-tree结构,并对其进行优化提出 GEM2כ-tree 结构,通过分解单树结构、动态调整节点计算速度、扩展数据索引等机制降低以太坊节点计算开销. ...
An analysis of anonymity in the bitcoin system
1
2011
... 区块数据直接承载业务信息,因此区块数据的匿名关联性分析更为直接.Reid等[22]将区块数据建模为事务网络和用户网络,利用多交易数据的用户指向性分析成功降低网络复杂度.Meiklejohn等[23]利用启发式聚类方法分析交易数据的流动特性并对用户进行分组,通过与这些服务的互动来识别主要机构的比特币地址.Awan 等[24]使用优势集(dominant set)方法对区块链交易进行自动分类,从而提高分析准确率. ...
A fistful of bitcoins:characterizing payments among men with no names
1
2013
... 区块数据直接承载业务信息,因此区块数据的匿名关联性分析更为直接.Reid等[22]将区块数据建模为事务网络和用户网络,利用多交易数据的用户指向性分析成功降低网络复杂度.Meiklejohn等[23]利用启发式聚类方法分析交易数据的流动特性并对用户进行分组,通过与这些服务的互动来识别主要机构的比特币地址.Awan 等[24]使用优势集(dominant set)方法对区块链交易进行自动分类,从而提高分析准确率. ...
Blockchain transaction analysis using dominant sets
1
2017
... 区块数据直接承载业务信息,因此区块数据的匿名关联性分析更为直接.Reid等[22]将区块数据建模为事务网络和用户网络,利用多交易数据的用户指向性分析成功降低网络复杂度.Meiklejohn等[23]利用启发式聚类方法分析交易数据的流动特性并对用户进行分组,通过与这些服务的互动来识别主要机构的比特币地址.Awan 等[24]使用优势集(dominant set)方法对区块链交易进行自动分类,从而提高分析准确率. ...
Increasing anonymity in bitcoin
1
2014
... 隐私保护方面,Saxena等[25]提出复合签名技术削弱数据的关联性,基于双线性映射中的Diffie-Hellman假设保证计算困难性,从而保护用户隐私.Miers 等[26]和 Sasson 等[27]提出 Zerocoin 和Zerocash,在不添加可信方的情况下断开交易间的联系,最早利用零知识证明(zero-knowledge proof)技术隐藏交易的输入、输出和金额信息,提高比特币的匿名性.非对称加密是区块链数据安全的核心,但在量子计算面前却显得“捉襟见肘”,为此Yin等[28]利用盆景树模型(bonsai tree)改进晶格签名技术(lattice-based signature),以保证公私钥的随机性和安全性,使反量子加密技术适用于区块链用户地址的生成. ...
Zerocoin:anonymous distributed e-cash from bitcoin
1
2013
... 隐私保护方面,Saxena等[25]提出复合签名技术削弱数据的关联性,基于双线性映射中的Diffie-Hellman假设保证计算困难性,从而保护用户隐私.Miers 等[26]和 Sasson 等[27]提出 Zerocoin 和Zerocash,在不添加可信方的情况下断开交易间的联系,最早利用零知识证明(zero-knowledge proof)技术隐藏交易的输入、输出和金额信息,提高比特币的匿名性.非对称加密是区块链数据安全的核心,但在量子计算面前却显得“捉襟见肘”,为此Yin等[28]利用盆景树模型(bonsai tree)改进晶格签名技术(lattice-based signature),以保证公私钥的随机性和安全性,使反量子加密技术适用于区块链用户地址的生成. ...
Zerocash:decentralized anonymous payments from bitcoin
1
2014
... 隐私保护方面,Saxena等[25]提出复合签名技术削弱数据的关联性,基于双线性映射中的Diffie-Hellman假设保证计算困难性,从而保护用户隐私.Miers 等[26]和 Sasson 等[27]提出 Zerocoin 和Zerocash,在不添加可信方的情况下断开交易间的联系,最早利用零知识证明(zero-knowledge proof)技术隐藏交易的输入、输出和金额信息,提高比特币的匿名性.非对称加密是区块链数据安全的核心,但在量子计算面前却显得“捉襟见肘”,为此Yin等[28]利用盆景树模型(bonsai tree)改进晶格签名技术(lattice-based signature),以保证公私钥的随机性和安全性,使反量子加密技术适用于区块链用户地址的生成. ...
A anti-quantum transaction authentication approach in blockchain
1
2018
... 隐私保护方面,Saxena等[25]提出复合签名技术削弱数据的关联性,基于双线性映射中的Diffie-Hellman假设保证计算困难性,从而保护用户隐私.Miers 等[26]和 Sasson 等[27]提出 Zerocoin 和Zerocash,在不添加可信方的情况下断开交易间的联系,最早利用零知识证明(zero-knowledge proof)技术隐藏交易的输入、输出和金额信息,提高比特币的匿名性.非对称加密是区块链数据安全的核心,但在量子计算面前却显得“捉襟见肘”,为此Yin等[28]利用盆景树模型(bonsai tree)改进晶格签名技术(lattice-based signature),以保证公私钥的随机性和安全性,使反量子加密技术适用于区块链用户地址的生成. ...
The sybil attack
1
2002
... 区块链网络中每个节点必须维护完全相同的账本数据,然而各节点产生数据的时间不同、获取数据的来源未知,存在节点故意广播错误数据的可能性,这将导致女巫攻击[29]、双花攻击[30]等安全风险;除此之外,节点故障、网络拥塞带来的数据异常也无法预测.因此,如何在不可信的环境下实现账本数据的全网统一是共识层解决的关键问题.实际上,上述错误是拜占庭将军问题(the Byzantine generals problem)[31]在区块链中的具体表现,即拜占庭错误——相互独立的组件可以做出任意或恶意的行为,并可能与其他错误组件产生协作,此类错误在可信分布式计算领域被广泛研究. ...
Double-spending fast payments in bitcoin
1
2012
... 区块链网络中每个节点必须维护完全相同的账本数据,然而各节点产生数据的时间不同、获取数据的来源未知,存在节点故意广播错误数据的可能性,这将导致女巫攻击[29]、双花攻击[30]等安全风险;除此之外,节点故障、网络拥塞带来的数据异常也无法预测.因此,如何在不可信的环境下实现账本数据的全网统一是共识层解决的关键问题.实际上,上述错误是拜占庭将军问题(the Byzantine generals problem)[31]在区块链中的具体表现,即拜占庭错误——相互独立的组件可以做出任意或恶意的行为,并可能与其他错误组件产生协作,此类错误在可信分布式计算领域被广泛研究. ...
The byzantine generals problem
1
1982
... 区块链网络中每个节点必须维护完全相同的账本数据,然而各节点产生数据的时间不同、获取数据的来源未知,存在节点故意广播错误数据的可能性,这将导致女巫攻击[29]、双花攻击[30]等安全风险;除此之外,节点故障、网络拥塞带来的数据异常也无法预测.因此,如何在不可信的环境下实现账本数据的全网统一是共识层解决的关键问题.实际上,上述错误是拜占庭将军问题(the Byzantine generals problem)[31]在区块链中的具体表现,即拜占庭错误——相互独立的组件可以做出任意或恶意的行为,并可能与其他错误组件产生协作,此类错误在可信分布式计算领域被广泛研究. ...
Consensus in the age of blockchains
1
... 状态机复制(state-machine replication)是解决分布式系统容错问题的常用理论.其基本思想为:任何计算都表示为状态机,通过接收消息来更改其状态.假设一组副本以相同的初始状态开始,并且能够就一组公共消息的顺序达成一致,那么它们可以独立进行状态的演化计算,从而正确维护各自副本之间的一致性.同样,区块链也使用状态机复制理论解决拜占庭容错问题,如果把每个节点的数据视为账本数据的副本,那么节点接收到的交易、区块即为引起副本状态变化的消息.状态机复制理论实现和维持副本的一致性主要包含2个要素:正确执行计算逻辑的确定性状态机和传播相同序列消息的共识协议.其中,共识协议是影响容错效果、吞吐量和复杂度的关键,不同安全性、可扩展性要求的系统需要的共识协议各有不同.学术界普遍根据通信模型和容错类型对共识协议进行区分[32],因此严格地说,区块链使用的共识协议需要解决的是部分同步(partial synchrony)模型[33]下的拜占庭容错问题. ...
Consensus in the presence of partial synchrony
2
1988
... 状态机复制(state-machine replication)是解决分布式系统容错问题的常用理论.其基本思想为:任何计算都表示为状态机,通过接收消息来更改其状态.假设一组副本以相同的初始状态开始,并且能够就一组公共消息的顺序达成一致,那么它们可以独立进行状态的演化计算,从而正确维护各自副本之间的一致性.同样,区块链也使用状态机复制理论解决拜占庭容错问题,如果把每个节点的数据视为账本数据的副本,那么节点接收到的交易、区块即为引起副本状态变化的消息.状态机复制理论实现和维持副本的一致性主要包含2个要素:正确执行计算逻辑的确定性状态机和传播相同序列消息的共识协议.其中,共识协议是影响容错效果、吞吐量和复杂度的关键,不同安全性、可扩展性要求的系统需要的共识协议各有不同.学术界普遍根据通信模型和容错类型对共识协议进行区分[32],因此严格地说,区块链使用的共识协议需要解决的是部分同步(partial synchrony)模型[33]下的拜占庭容错问题. ...
... 比特币在网络层采用非结构化方式组网,路由表呈现随机性.节点间则采用多点传播方式传递数据,曾基于Gossip协议实现,为提高网络的抗匿名分析能力改为基于Diffusion协议实现[33].节点利用一系列控制协议确保链路的可用性,包括版本获取(Vetsion/Verack)、地址获取(Addr/GetAddr)、心跳信息(PING/PONG)等.新节点入网时,首先向硬编码 DNS 节点(种子节点)请求初始节点列表;然后向初始节点随机请求它们路由表中的节点信息,以此生成自己的路由表;最后节点通过控制协议与这些节点建立连接,并根据信息交互的频率更新路由表中节点时间戳,从而保证路由表中的节点都是活动的.交互逻辑层为建立共识交互通道,提供了区块获取(GetBlock)、交易验证(MerkleBlock)、主链选择(CmpctBlock)等协议;轻节点只需要进行简单的区块头验证,因此通过头验证(GetHeader/Header)协议和连接层中的过滤设置协议指定需要验证的区块头即可建立简单验证通路.在安全机制方面,比特币网络可选择利用匿名通信网络Tor作为数据传输承载,通过沿路径的层层数据加密机制来保护对端身份. ...
Bitcoin and beyond:a technical survey on decentralized digital currencies
1
2016
... 区块链网络中主要包含PoX(poof of X)[34]、BFT(byzantine-fault tolerant)和 CFT(crash-fault tolerant)类基础共识协议.PoX 类协议是以 PoW (proof of work)为代表的基于奖惩机制驱动的新型共识协议,为了适应数据吞吐量、资源利用率和安全性的需求,人们又提出PoS(proof of stake)、PoST (proof of space-time)等改进协议.它们的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错.BFT类协议是指解决拜占庭容错问题的传统共识协议及其改良协议,包括PBFT、BFT-SMaRt、Tendermint等.CFT类协议用于实现崩溃容错,通过身份证明等手段规避节点作恶的情况,仅考虑节点或网络的崩溃(crash)故障,主要包括Raft、Paxos、Kafka等协议. ...
Blockchains consensus protocols in the wild
1
2017
... 非许可链和许可链的开放程度和容错需求存在差异,共识层面技术在两者之间产生了较大区别.具体而言,非许可链完全开放,需要抵御严重的拜占庭风险,多采用PoX、BFT类协议并配合奖惩机制实现共识.许可链拥有准入机制,网络中节点身份可知,一定程度降低了拜占庭风险,因此可采用BFT类协议、CFT类协议构建相同的信任模型[35]. ...
Practical byzantine fault tolerance and proactive recovery
1
2002
... PBFT是 BFT经典共识协议,其主要流程如图8 所示.PBFT将节点分为主节点和副节点,其中主节点负责将交易打包成区块,副节点参与验证和转发,假设作恶节点数量为f.PBFT共识主要分为预准备、准备和接受3个阶段,主节点首先收集交易后排序并提出合法区块提案;其余节点先验证提案的合法性,然后根据区块内交易顺序依次执行并将结果摘要组播;各节点收到2f个与自身相同的摘要后便组播接受投票;当节点收到超过2f+1个投票时便存储区块及其产生的新状态[36]. ...
In search of an understandable consensus algorithm
1
2015
... Raft[37]是典型的崩溃容错共识协议,以可用性强著称.Raft将节点分为跟随节点、候选节点和领导节点,领导节点负责将交易打包成区块,追随节点响应领导节点的同步指令,候选节点完成领导节点的选举工作.当网络运行稳定时,只存在领导节点和追随节点,领导节点向追随节点推送区块数据从而实现同步.节点均设置生存时间决定角色变化周期,领导节点的心跳信息不断重置追随节点的生存时间,当领导节点发生崩溃时,追随节点自动转化为候选节点并进入选举流程,实现网络自恢复. ...
Proofs of useful work
1
2017
... 如前文所述,PoX类协议的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错.uPoW[38]通过计算有意义的正交向量问题证明节点合法性,使算力不被浪费.PoI (proof-of-importance)[39]利用图论原理为每个节点赋予重要性权重,权重越高的节点将越有可能算出区块.PoS(poof-of-stake)为节点定义“币龄”,拥有更高币龄的节点将被分配更多的股份(stake),而股份被作为证明依据用于成块节点的选举.Ouroboros[40]通过引入多方掷币协议增大了选举随机性,引入近乎纳什均衡的激励机制进一步提高PoS 的安全性.PoRep(proof-of-replication)[41]应用于去中心化存储网络,利用证明依据作为贡献存储空间的奖励,促进存储资源再利用. ...
Comparative analysis of blockchain consensus algorithms
1
2018
... 如前文所述,PoX类协议的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错.uPoW[38]通过计算有意义的正交向量问题证明节点合法性,使算力不被浪费.PoI (proof-of-importance)[39]利用图论原理为每个节点赋予重要性权重,权重越高的节点将越有可能算出区块.PoS(poof-of-stake)为节点定义“币龄”,拥有更高币龄的节点将被分配更多的股份(stake),而股份被作为证明依据用于成块节点的选举.Ouroboros[40]通过引入多方掷币协议增大了选举随机性,引入近乎纳什均衡的激励机制进一步提高PoS 的安全性.PoRep(proof-of-replication)[41]应用于去中心化存储网络,利用证明依据作为贡献存储空间的奖励,促进存储资源再利用. ...
Ouroboros:a provably secure proof-of-stake blockchain protocol
1
2017
... 如前文所述,PoX类协议的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错.uPoW[38]通过计算有意义的正交向量问题证明节点合法性,使算力不被浪费.PoI (proof-of-importance)[39]利用图论原理为每个节点赋予重要性权重,权重越高的节点将越有可能算出区块.PoS(poof-of-stake)为节点定义“币龄”,拥有更高币龄的节点将被分配更多的股份(stake),而股份被作为证明依据用于成块节点的选举.Ouroboros[40]通过引入多方掷币协议增大了选举随机性,引入近乎纳什均衡的激励机制进一步提高PoS 的安全性.PoRep(proof-of-replication)[41]应用于去中心化存储网络,利用证明依据作为贡献存储空间的奖励,促进存储资源再利用. ...
Tight proofs of space and replication
1
... 如前文所述,PoX类协议的基本特点在于设计证明依据,使诚实节点可以证明其合法性,从而实现拜占庭容错.uPoW[38]通过计算有意义的正交向量问题证明节点合法性,使算力不被浪费.PoI (proof-of-importance)[39]利用图论原理为每个节点赋予重要性权重,权重越高的节点将越有可能算出区块.PoS(poof-of-stake)为节点定义“币龄”,拥有更高币龄的节点将被分配更多的股份(stake),而股份被作为证明依据用于成块节点的选举.Ouroboros[40]通过引入多方掷币协议增大了选举随机性,引入近乎纳什均衡的激励机制进一步提高PoS 的安全性.PoRep(proof-of-replication)[41]应用于去中心化存储网络,利用证明依据作为贡献存储空间的奖励,促进存储资源再利用. ...
A vademecum on blockchain technologies:when,which,and how
1
2019
... BFT协议有较长的发展史,在区块链研究中被赋予了新的活力.SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识.Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性.HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致.LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能. ...
A survey on consensus mechanisms and mining strategy management in blockchain networks
1
2019
... BFT协议有较长的发展史,在区块链研究中被赋予了新的活力.SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识.Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性.HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致.LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能. ...
Formal modeling and verification of a federated byzantine agreement algorithm for blockchain platforms
1
2019
... BFT协议有较长的发展史,在区块链研究中被赋予了新的活力.SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识.Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性.HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致.LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能. ...
An overview of blockchain technology:architecture,consensus,and future trends
1
2017
... BFT协议有较长的发展史,在区块链研究中被赋予了新的活力.SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识.Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性.HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致.LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能. ...
HotStuff:BFT consensus in the lens of blockchain
1
2019
... BFT协议有较长的发展史,在区块链研究中被赋予了新的活力.SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识.Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性.HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致.LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能. ...
Libra critique towards global decentralized financial system
1
2019
... BFT协议有较长的发展史,在区块链研究中被赋予了新的活力.SCP[42]和Ripple[43]基于联邦拜占庭共识[44]——存在交集的多池(确定规模的联邦)共识,分别允许节点自主选择或与指定的节点构成共识联邦,通过联邦交集达成全网共识.Tendermint[45]使用Gossip通信协议基本实现异步拜占庭共识,不仅简化了流程而且提高了可用性.HotStuff[46]将BFT与链式结构数据相结合,使主节点能够以实际网络时延及 O(n)通信复杂度推动协议达成一致.LibraBFT[47]在HotStuff的基础上加入奖惩机制及节点替换机制,从而优化了性能. ...
Proof of activity:extending bitcoin’s proof of work via proof of stake
1
... Hybrid 类协议是研究趋势之一.PoA[48]利用PoW产生空区块头,利用PoS决定由哪些节点进行记账和背书,其奖励由背书节点和出块节点共享.PeerCensus[49]由节点团体进行拜占庭协议实现共识,而节点必须基于比特币网络,通过 PoW 产出区块后才能获得投票权力.ByzCoin[50]利用PoW的算力特性构建动态成员关系,并引入联合签名方案来减小PBFT的轮次通信开销,提高交易吞吐量,降低确认时延.Casper[51]则通过PoS的股份决定节点构成团体并进行BFT共识,且节点可投票数取决于股份. ...
Bitcoin meets strong consistency
1
... Hybrid 类协议是研究趋势之一.PoA[48]利用PoW产生空区块头,利用PoS决定由哪些节点进行记账和背书,其奖励由背书节点和出块节点共享.PeerCensus[49]由节点团体进行拜占庭协议实现共识,而节点必须基于比特币网络,通过 PoW 产出区块后才能获得投票权力.ByzCoin[50]利用PoW的算力特性构建动态成员关系,并引入联合签名方案来减小PBFT的轮次通信开销,提高交易吞吐量,降低确认时延.Casper[51]则通过PoS的股份决定节点构成团体并进行BFT共识,且节点可投票数取决于股份. ...
Enhancing bitcoin security and performance with strong consistency via collective signing
1
2016
... Hybrid 类协议是研究趋势之一.PoA[48]利用PoW产生空区块头,利用PoS决定由哪些节点进行记账和背书,其奖励由背书节点和出块节点共享.PeerCensus[49]由节点团体进行拜占庭协议实现共识,而节点必须基于比特币网络,通过 PoW 产出区块后才能获得投票权力.ByzCoin[50]利用PoW的算力特性构建动态成员关系,并引入联合签名方案来减小PBFT的轮次通信开销,提高交易吞吐量,降低确认时延.Casper[51]则通过PoS的股份决定节点构成团体并进行BFT共识,且节点可投票数取决于股份. ...
Casper the friendly finality gadget
1
... Hybrid 类协议是研究趋势之一.PoA[48]利用PoW产生空区块头,利用PoS决定由哪些节点进行记账和背书,其奖励由背书节点和出块节点共享.PeerCensus[49]由节点团体进行拜占庭协议实现共识,而节点必须基于比特币网络,通过 PoW 产出区块后才能获得投票权力.ByzCoin[50]利用PoW的算力特性构建动态成员关系,并引入联合签名方案来减小PBFT的轮次通信开销,提高交易吞吐量,降低确认时延.Casper[51]则通过PoS的股份决定节点构成团体并进行BFT共识,且节点可投票数取决于股份. ...
Bitcoin and beyond:a technical survey on decentralized digital currencies
1
2016
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
Non-interactive proofs of proof-of-work
1
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
A secure sharding protocol for open blockchains
1
2016
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
OmniLedger:a secure,scale-out,decentralized ledger via sharding
1
2018
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
PolyShard:coded sharding achieves linearly scaling efficiency and security simultaneously
1
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
A survey on the scalability of blockchain systems
1
2019
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
Scalable funding of bitcoin micropayment channel networks
1
2017
... 侧链(side-chain)在比特币主链外构建新的分类资产链,并使比特币和其他分类资产在多个区块链之间转移,从而分散了单一链的负荷.Tschorsch等[52]利用Two-way Peg机制实现交互式跨链资产转换,防止该过程中出现双花.Kiayias 等[53]利用NIPoPoW机制实现非交互式的跨链工作证明,并降低了跨链带来的区块冗余.分片(sharding)是指不同节点子集处理区块链的不同部分,从而减少每个节点的负载.ELASTICO[54]将交易集划分为不同分片,每个分片由不同的节点集合进行并行验证.OmniLedger[55]在前者的基础上优化节点随机选择及跨切片事务提交协议,从而提高了切片共识的安全性与正确性.区别于 OmniLedger,PolyShard[56]利用拉格朗日多项式编码分片为分片交互过程加入计算冗余,同时实现了可扩展性优化与安全保障.上述研究可视为链上处理模型在加密货币场景下的可扩展性优化方案.实际上,链下处理模型本身就是一种扩展性优化思路,闪电网络[57]通过状态通道对交易最终结果进行链上确认,从而在交易过程中实现高频次的链外支付.Plasma[58]在链下对区块链进行树形分支拓展,树形分支中的父节点完成子节点业务的确认,直到根节点与区块链进行最终确认. ...
Making smart contracts smarter
1
2016
... 一方面,沙盒环境承载了区块链节点运行条件,针对虚拟机展开的攻击更为直接;另一方面,智能合约直接对账本进行操作,其漏洞更易影响业务运行,因此控制层的安全防护研究成为热点.Luu等[59]分析了运行于EVM中的智能合约安全性,指出底层平台的分布式语义差异带来的安全问题.Brent 等[60]提出智能合约安全分析框架 Vandal,将EVM 字节码转换为语义逻辑关,为分析合约安全漏洞提供便利.Jiang 等[61]预先定义用于安全漏洞的特征,然后模拟执行大规模交易,通过分析日志中的合约行为实现漏洞检测. ...
Vandal:a scalable security analysis framework for smart contracts
1
2018
... 一方面,沙盒环境承载了区块链节点运行条件,针对虚拟机展开的攻击更为直接;另一方面,智能合约直接对账本进行操作,其漏洞更易影响业务运行,因此控制层的安全防护研究成为热点.Luu等[59]分析了运行于EVM中的智能合约安全性,指出底层平台的分布式语义差异带来的安全问题.Brent 等[60]提出智能合约安全分析框架 Vandal,将EVM 字节码转换为语义逻辑关,为分析合约安全漏洞提供便利.Jiang 等[61]预先定义用于安全漏洞的特征,然后模拟执行大规模交易,通过分析日志中的合约行为实现漏洞检测. ...
ContractFuzzer:fuzzing smart contracts for vulnerability detection
1
2018
... 一方面,沙盒环境承载了区块链节点运行条件,针对虚拟机展开的攻击更为直接;另一方面,智能合约直接对账本进行操作,其漏洞更易影响业务运行,因此控制层的安全防护研究成为热点.Luu等[59]分析了运行于EVM中的智能合约安全性,指出底层平台的分布式语义差异带来的安全问题.Brent 等[60]提出智能合约安全分析框架 Vandal,将EVM 字节码转换为语义逻辑关,为分析合约安全漏洞提供便利.Jiang 等[61]预先定义用于安全漏洞的特征,然后模拟执行大规模交易,通过分析日志中的合约行为实现漏洞检测. ...
Decentralized user-centric access control using pubsub over blockchain
1
2017
... 智慧城市是指利用 ICT 优化公共资源利用效果、提高居民生活质量、丰富设施信息化能力的研究领域,该领域包括个人信息管理、智慧医疗、智慧交通、供应链管理等具体场景.智慧城市强调居民、设施等各类数据的采集、分析与使能,数据可靠性、管理透明化、共享可激励等需求为智慧城市带来了许多技术挑战.区块链去中心化的交互方式避免了单点故障、提升管理公平性,公开透明的账本保证数据可靠及可追溯性,多种匿名机制利于居民隐私的保护,因此区块链有利于问题的解决.Hashemi等[62]将区块链用于权限数据存储,构建去中心化的个人数据接入控制模型;Bao等[63]利用区块链高效认证和管理用户标识,保护车主的身份、位置、车辆信息等个人数据. ...
Pseudonym management through blockchain:cost-efficient privacy preservation on intelligent transportation systems
1
2019
... 智慧城市是指利用 ICT 优化公共资源利用效果、提高居民生活质量、丰富设施信息化能力的研究领域,该领域包括个人信息管理、智慧医疗、智慧交通、供应链管理等具体场景.智慧城市强调居民、设施等各类数据的采集、分析与使能,数据可靠性、管理透明化、共享可激励等需求为智慧城市带来了许多技术挑战.区块链去中心化的交互方式避免了单点故障、提升管理公平性,公开透明的账本保证数据可靠及可追溯性,多种匿名机制利于居民隐私的保护,因此区块链有利于问题的解决.Hashemi等[62]将区块链用于权限数据存储,构建去中心化的个人数据接入控制模型;Bao等[63]利用区块链高效认证和管理用户标识,保护车主的身份、位置、车辆信息等个人数据. ...
Hosting virtual IoT resources on edge-hosts with blockchain
1
2016
... 边缘计算是一种将计算、存储、网络资源从云平台迁移到网络边缘的分布式信息服务架构,试图将传统移动通信网、互联网和物联网等业务进行深度融合,减少业务交付的端到端时延,提升用户体验.安全问题是边缘计算面临的一大技术挑战,一方面,边缘计算的层次结构中利用大量异构终端设备提供用户服务,这些设备可能产生恶意行为;另一方面,服务迁移过程中的数据完整性和真实性需要得到保障.区块链在这种复杂的工作环境和开放的服务架构中能起到较大作用.首先,区块链能够在边缘计算底层松散的设备网络中构建不可篡改的账本,提供设备身份和服务数据验证的依据.其次,设备能在智能合约的帮助下实现高度自治,为边缘计算提供设备可信互操作基础.Samaniego等[64]提出了一种基于区块链的虚拟物联网资源迁移架构,通过区块链共享资源数据从而保障安全性.Stanciu[65]结合软件定义网络(SDN)、雾计算和区块链技术提出分布式安全云架构,解决雾节点中SDN控制器流表策略的安全分发问题.Ziegler等[66]基于 Plasma 框架提出雾计算场景下的区块链可扩展应用方案,提升雾计算网关的安全性. ...
Blockchain based distributed control system for edge computing
1
2017
... 边缘计算是一种将计算、存储、网络资源从云平台迁移到网络边缘的分布式信息服务架构,试图将传统移动通信网、互联网和物联网等业务进行深度融合,减少业务交付的端到端时延,提升用户体验.安全问题是边缘计算面临的一大技术挑战,一方面,边缘计算的层次结构中利用大量异构终端设备提供用户服务,这些设备可能产生恶意行为;另一方面,服务迁移过程中的数据完整性和真实性需要得到保障.区块链在这种复杂的工作环境和开放的服务架构中能起到较大作用.首先,区块链能够在边缘计算底层松散的设备网络中构建不可篡改的账本,提供设备身份和服务数据验证的依据.其次,设备能在智能合约的帮助下实现高度自治,为边缘计算提供设备可信互操作基础.Samaniego等[64]提出了一种基于区块链的虚拟物联网资源迁移架构,通过区块链共享资源数据从而保障安全性.Stanciu[65]结合软件定义网络(SDN)、雾计算和区块链技术提出分布式安全云架构,解决雾节点中SDN控制器流表策略的安全分发问题.Ziegler等[66]基于 Plasma 框架提出雾计算场景下的区块链可扩展应用方案,提升雾计算网关的安全性. ...
Integration of fog computing and blockchain technology using the plasma framework
1
2019
... 边缘计算是一种将计算、存储、网络资源从云平台迁移到网络边缘的分布式信息服务架构,试图将传统移动通信网、互联网和物联网等业务进行深度融合,减少业务交付的端到端时延,提升用户体验.安全问题是边缘计算面临的一大技术挑战,一方面,边缘计算的层次结构中利用大量异构终端设备提供用户服务,这些设备可能产生恶意行为;另一方面,服务迁移过程中的数据完整性和真实性需要得到保障.区块链在这种复杂的工作环境和开放的服务架构中能起到较大作用.首先,区块链能够在边缘计算底层松散的设备网络中构建不可篡改的账本,提供设备身份和服务数据验证的依据.其次,设备能在智能合约的帮助下实现高度自治,为边缘计算提供设备可信互操作基础.Samaniego等[64]提出了一种基于区块链的虚拟物联网资源迁移架构,通过区块链共享资源数据从而保障安全性.Stanciu[65]结合软件定义网络(SDN)、雾计算和区块链技术提出分布式安全云架构,解决雾节点中SDN控制器流表策略的安全分发问题.Ziegler等[66]基于 Plasma 框架提出雾计算场景下的区块链可扩展应用方案,提升雾计算网关的安全性. ...
Blockchained on-device federated learning
1
2018
... 人工智能是一类智能代理的研究,使机器感知环境/信息,然后进行正确的行为决策,正确是指达成人类预定的某些目标.人工智能的关键在于算法,而大部分机器学习和深度学习算法建立于体积庞大的数据集和中心化的训练模型之上,该方式易受攻击或恶意操作使数据遭到篡改,其后果为模型的不可信与算力的浪费.此外,数据采集过程中无法确保下游设备的安全性,无法保证数据来源的真实性与完整性,其后果将在自动驾驶等场景中被放大.区块链不可篡改的特性可以实现感知和训练过程的可信.另外,去中心化和合约自治特性为人工智能训练工作的分解和下放奠定了基础,保障安全的基础上提高计算效率.Kim等[67]利用区块链验证联合学习框架下的分发模型的完整性,并根据计算成本提供相应的激励,优化整体学习效果.Bravo-Marquez 等[68]提出共识机制“学习证明”以减轻PoX类共识的计算浪费,构建公共可验证的学习模型和实验数据库. ...
Proof-of- learning:a blockchain consensus mechanism based on machine learning competitions
1
2019
... 人工智能是一类智能代理的研究,使机器感知环境/信息,然后进行正确的行为决策,正确是指达成人类预定的某些目标.人工智能的关键在于算法,而大部分机器学习和深度学习算法建立于体积庞大的数据集和中心化的训练模型之上,该方式易受攻击或恶意操作使数据遭到篡改,其后果为模型的不可信与算力的浪费.此外,数据采集过程中无法确保下游设备的安全性,无法保证数据来源的真实性与完整性,其后果将在自动驾驶等场景中被放大.区块链不可篡改的特性可以实现感知和训练过程的可信.另外,去中心化和合约自治特性为人工智能训练工作的分解和下放奠定了基础,保障安全的基础上提高计算效率.Kim等[67]利用区块链验证联合学习框架下的分发模型的完整性,并根据计算成本提供相应的激励,优化整体学习效果.Bravo-Marquez 等[68]提出共识机制“学习证明”以减轻PoX类共识的计算浪费,构建公共可验证的学习模型和实验数据库. ...
基于命名数据网络的区块链信息传输机制
1
2018
... 网络层主要缺陷在于安全性,可拓展性则有待优化.如何防御以 BGP 劫持为代表的网络攻击将成为区块链底层网络的安全研究方向[19].信息中心网络将重塑区块链基础传输网络,通过请求聚合和数据缓存减少网内冗余流量并加速通信传输[69].相比于数据层和共识层,区块链网络的关注度较低,但却是影响安全性、可拓展性的基本因素. ...
基于命名数据网络的区块链信息传输机制
1
2018
... 网络层主要缺陷在于安全性,可拓展性则有待优化.如何防御以 BGP 劫持为代表的网络攻击将成为区块链底层网络的安全研究方向[19].信息中心网络将重塑区块链基础传输网络,通过请求聚合和数据缓存减少网内冗余流量并加速通信传输[69].相比于数据层和共识层,区块链网络的关注度较低,但却是影响安全性、可拓展性的基本因素. ...
/
〈
〉
期刊网站版权所有 © 2021 《通信学报》编辑部
地址:北京市丰台区东铁匠营街道顺八条1号院B座“北阳晨光大厦”2层 邮编:100079
电话:010-53878169、53859522、53878236 电子邮件:xuebao@ptpress.com.cn; txxb@bjxintong.com.cn
期刊网站版权所有 © 2021 《通信学报》编辑部
地址:北京市丰台区东铁匠营街道顺八条1号院B座“北阳晨光大厦”2层
邮编:100079 电话:010-53878169、53859522、53878236
电子邮件:txxb@bjxintong.com.cn
区块链原理 - 廖雪峰的官方网站
区块链原理 - 廖雪峰的官方网站
Index
廖雪峰的官方网站
Blog
Java教程
手写Spring
手写Tomcat
Makefile教程
Python教程
JavaScript教程
区块链教程
SQL教程
Git教程
文章
问答
More
Java教程
手写Spring
手写Tomcat
Makefile教程
Python教程
JavaScript教程
区块链教程
SQL教程
Git教程
文章
问答
Java教程
手写Spring
手写Tomcat
Makefile教程
Python教程
JavaScript教程
区块链教程
SQL教程
Git教程
文章
问答
Profile
Passkey
Sign Out
Sign In
English
简体中文
Index
区块链教程
比特币
区块链原理
P2P交易原理
私钥
公钥和地址
签名
挖矿原理
可编程支付原理
多重签名
UTXO模型
Segwit地址
HD钱包
钱包层级
助记词
地址监控
以太坊
账户
区块结构
交易
智能合约
编写合约
部署合约
调用合约
编写Dapp
常用合约
ERC20
Wrapped Ether
关注公众号不定期领红包:
加入知识星球社群:
关注微博获取实时动态:
区块链原理
Last updated: ...
/
Reads: 8969978
Edit
区块链就是一个不断增长的全网总账本,每个完全节点都拥有完整的区块链,并且,节点总是信任最长的区块链,伪造区块链需要拥有超过51%的全网算力。
区块链的一个重要特性就是不可篡改。为什么区块链不可篡改?我们先来看区块链的结构。
区块链是由一个一个区块构成的有序链表,每一个区块都记录了一系列交易,并且,每个区块都指向前一个区块,从而形成一个链条:
如果我们观察某一个区块,就可以看到,每个区块都有一个唯一的哈希标识,被称为区块哈希,同时,区块通过记录上一个区块的哈希来指向上一个区块:
每一个区块还有一个Merkle哈希用来确保该区块的所有交易记录无法被篡改。
区块链中的主要数据就是一系列交易,第一条交易通常是Coinbase交易,也就是矿工的挖矿奖励,后续交易都是用户的交易。
区块链的不可篡改特性是由哈希算法保证的。
哈希算法
我们来简单介绍一下什么是哈希算法。
哈希算法,又称散列算法,它是一个单向函数,可以把任意长度的输入数据转化为固定长度的输出:
h=H(x)
例如,对morning和bitcoin两个输入进行某种哈希运算,得到的结果是固定长度的数字:
H("morning") = c7c3169c21f1d92e9577871831d067c8
H("bitcoin") = cd5b1e4947e304476c788cd474fb579a
我们通常用十六进制表示哈希输出。
因为哈希算法是一个单向函数,要设计一个安全的哈希算法,就必须满足:通过输入可以很容易地计算输出,但是,反过来,通过输出无法反推输入,只能暴力穷举。
H("???????") = c7c3169c21f1d92e9577871831d067c8
H("???????") = cd5b1e4947e304476c788cd474fb579a
想要根据上述结果反推输入,只能由计算机暴力穷举。
哈希碰撞
一个安全的哈希算法还需要满足另一个条件:碰撞率低。
碰撞是指,如果两个输入数据不同,却恰好计算出了相同的哈希值,那么我们说发生了碰撞:
H("data-123456") = a76b1fb579a02a476c789d9115d4b201
H("data-ABCDEF") = a76b1fb579a02a476c789d9115d4b201
因为输入数据长度是不固定的,所以输入数据是一个无限大的集合,而输出数据长度是固定的,所以,输出数据是一个有限的集合。把一个无限的集合中的每个元素映射到一个有限的集合,就必然存在某些不同的输入得到了相同的输出。
哈希碰撞的本质是把无限的集合映射到有限的集合时必然会产生碰撞。我们需要计算的是碰撞的概率。很显然,碰撞的概率和输出的集合大小相关。输出位数越多,输出集合就越大,碰撞率就越低。
安全哈希算法还需要满足一个条件,就是输出无规律。输入数据任意一个bit(某个字节的某一个二进制位)的改动,会导致输出完全不同,从而让攻击者无法逐步猜测输入,只能依赖暴力穷举来破解:
H("hello-1") = 970db54ab8a93b7173cb48f55e67fd2c
H("hello-2") = 8284353b768977f05ac600baad8d3d17
哈希算法有什么作用?假设我们相信一个安全的哈希算法,那么我们认为,如果两个输入的哈希相同,我们认为两个输入是相同的。
如果输入的内容就是文件内容,而两个文件的哈希相同,说明文件没有被修改过。当我们从网站上下载一个非常大的文件时,我们如何确定下载到本地的文件和官方网站发布的原始文件是完全相同,没有经过修改的呢?哈希算法就体现出了作用:我们只需要计算下载到本地的文件哈希,再和官方网站给出的哈希对比,如果一致,说明下载文件是正确的,没有经过篡改,如果不一致,则说明下载的文件肯定被篡改过。
大多数软件的官方下载页面会同时给出该文件的哈希值,以便让用户下载后验证文件是否被篡改:
和文件类似,如果两份数据的哈希相同,则可以100%肯定,两份数据是相同的。比特币使用哈希算法来保证所有交易不可修改,就是计算并记录交易的哈希,如果交易被篡改,那么哈希验证将无法通过,说明这个区块是无效的。
常用哈希算法
常用的哈希算法以及它们的输出长度如下:
哈希算法输出长度(bit)输出长度(字节)
MD5128 bit16 bytes
RipeMD160160 bits20 bytes
SHA-1160 bits20 bytes
SHA-256256 bits32 bytes
SHA-512512 bits64 bytes
比特币使用的哈希算法有两种:SHA-256和RipeMD160
SHA-256的理论碰撞概率是:尝试2的130次方的随机输入,有99.8%的概率碰撞。注意2130是一个非常大的数字,大约是1361万亿亿亿亿。以现有的计算机的计算能力,是不可能在短期内破解的。
比特币使用两种哈希算法,一种是对数据进行两次SHA-256计算,这种算法在比特币协议中通常被称为hash256或者dhash。
另一种算法是先计算SHA-256,再计算RipeMD160,这种算法在比特币协议中通常被称为hash160。
const
bitcoin = require('bitcoinjs-lib'),
createHash = require('create-hash');
----
function standardHash(name, data) {
let h = createHash(name);
return h.update(data).digest();
}
function hash160(data) {
let h1 = standardHash('sha256', data);
let h2 = standardHash('ripemd160', h1);
return h2;
}
function hash256(data) {
let h1 = standardHash('sha256', data);
let h2 = standardHash('sha256', h1);
return h2;
}
let s = 'bitcoin is awesome';
console.log('ripemd160 = ' + standardHash('ripemd160', s).toString('hex'));
console.log(' hash160 = ' + hash160(s).toString('hex'));
console.log(' sha256 = ' + standardHash('sha256', s).toString('hex'));
console.log(' hash256 = ' + hash256(s).toString('hex'));
运行上述代码,观察对一个字符串进行SHA-256、RipeMD160、hash256和hash160的结果。
区块链不可篡改特性
有了哈希算法的预备知识,我们来看比特币的区块链如何使用哈希算法来防止交易记录被篡改。
区块本身记录的主要数据就是一系列交易,所以,区块链首先要保证任何交易数据都不可修改。
Merkle Hash
在区块的头部,有一个Merkle Hash字段,它记录了本区块所有交易的Merkle Hash:
Merkle Hash是把一系列数据的哈希根据一个简单算法变成一个汇总的哈希。
假设一个区块有4个交易,我们对每个交易数据做dhash,得到4个哈希值a1,a2,a3和a4:
a1 = dhash(tx1)
a2 = dhash(tx2)
a3 = dhash(tx3)
a4 = dhash(tx4)
注意到哈希值也可以看做数据,所以可以把a1和a2拼起来,a3和a4拼起来,再计算出两个哈希值b1和b2:
┌───────────────┐ ┌───────────────┐
│b1=dhash(a1+a2)│ │b2=dhash(a3+a4)│
└───────────────┘ └───────────────┘
▲ ▲
┌───────┴───────┐ ┌───────┴───────┐
│ │ │ │
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│a1=dhash(tx1)│ │a2=dhash(tx2)│ │a3=dhash(tx3)│ │a4=dhash(tx4)│
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
最后,把b1和b2这两个哈希值拼起来,计算出最终的哈希值,这个哈希就是Merkle Hash:
┌───────────────────┐
│merkle=dhash(b1+b2)│
└───────────────────┘
▲
┌───────────────┴───────────────┐
│ │
┌───────────────┐ ┌───────────────┐
│b1=dhash(a1+a2)│ │b2=dhash(a3+a4)│
└───────────────┘ └───────────────┘
▲ ▲
┌───────┴───────┐ ┌───────┴───────┐
│ │ │ │
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│a1=dhash(tx1)│ │a2=dhash(tx2)│ │a3=dhash(tx3)│ │a4=dhash(tx4)│
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
如果交易的数量不恰好是4个怎么办?例如,只有3个交易时,第一个和第二个交易的哈希a1和a2可以拼起来算出b1,第三个交易只能算出一个哈希a3,这个时候,就把a3直接复制一份,算出b2,这样,我们也能最终计算出Merkle Hash:
┌───────────────────┐
│merkle=dhash(b1+b2)│
└───────────────────┘
▲
┌───────────────┴───────────────┐
│ │
┌───────────────┐ ┌───────────────┐
│b1=dhash(a1+a2)│ │b2=dhash(a3+a3)│
└───────────────┘ └───────────────┘
▲ ▲
┌───────┴───────┐ ┌───────┴───────┐
│ │ │ │
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌ ─ ─ ─ ─ ─ ─ ┐
│a1=dhash(tx1)│ │a2=dhash(tx2)│ │a3=dhash(tx3)│
└─────────────┘ └─────────────┘ └─────────────┘ └ ─ ─ ─ ─ ─ ─ ┘
如果有5个交易,我们可以看到,a5被复制了一份,以便计算出b3,随后b3也被复制了一份,以便计算出c2。总之,在每一层计算中,如果有单数,就把最后一份数据复制,最后一定能计算出Merkle Hash:
┌─────────┐
│ merkle │
└─────────┘
▲
┌───────────┴───────────┐
│ │
┌───┐ ┌───┐
│c1 │ │c2 │
└───┘ └───┘
▲ ▲
┌─────┴─────┐ ┌─────┴─────┐
│ │ │ │
┌───┐ ┌───┐ ┌───┐ ┌ ─ ┐
│b1 │ │b2 │ │b3 │ b3
└───┘ └───┘ └───┘ └ ─ ┘
▲ ▲ ▲
┌──┴──┐ ┌──┴──┐ ┌──┴──┐
│ │ │ │ │ │
┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌───┐ ┌ ─ ┐
│a1 │ │a2 │ │a3 │ │a4 │ │a5 │ a5
└───┘ └───┘ └───┘ └───┘ └───┘ └ ─ ┘
从Merkle Hash的计算方法可以得出结论:修改任意一个交易哪怕一个字节,或者交换两个交易的顺序,都会导致Merkle Hash验证失败,也就会导致这个区块本身是无效的,所以,Merkle Hash记录在区块头部,它的作用就是保证交易记录永远无法修改。
Block Hash
区块本身用Block Hash——也就是区块哈希来标识。但是,一个区块自己的区块哈希并没有记录在区块头部,而是通过计算区块头部的哈希得到的:
区块头部的Prev Hash记录了上一个区块的Block Hash,这样,可以通过Prev Hash追踪到上一个区块。
由于下一个区块的Prev Hash又会指向当前区块,这样,每个区块的Prev Hash都指向自己的上一个区块,这些区块串起来就形成了区块链。
区块链的第一个区块(又称创世区块)并没有上一个区块,因此,它的Prev Hash被设置为00000000...000。
如果一个恶意的攻击者修改了一个区块中的某个交易,那么Merkle Hash验证就不会通过。所以,他只能重新计算Merkle Hash,然后把区块头的Merkle Hash也修改了。这时,我们就会发现,这个区块本身的Block Hash就变了,所以,下一个区块指向它的链接就断掉了。
由于比特币区块的哈希必须满足一个难度值,因此,攻击者必须先重新计算这个区块的Block Hash,然后,再把后续所有区块全部重新计算并且伪造出来,才能够修改整个区块链。
在后面的挖矿中,我们会看到,修改一个区块的成本就已经非常非常高了,要修改后续所有区块,这个攻击者必须掌握全网51%以上的算力才行,所以,修改区块链的难度是非常非常大的,并且,由于正常的区块链在不断增长,同样一个区块,修改它的难度会随着时间的推移而不断增加。
小结
区块链依靠安全的哈希算法保证所有区块数据不可更改;
交易数据依靠Merkle Hash确保无法修改,整个区块依靠Block Hash确保区块无法修改;
工作量证明机制(挖矿)保证修改区块链的难度非常巨大从而无法实现。
Comments
Make a comment
Sign in to
make a comment
Index
区块链教程
比特币
区块链原理
P2P交易原理
私钥
公钥和地址
签名
挖矿原理
可编程支付原理
多重签名
UTXO模型
Segwit地址
HD钱包
钱包层级
助记词
地址监控
以太坊
账户
区块结构
交易
智能合约
编写合约
部署合约
调用合约
编写Dapp
常用合约
ERC20
Wrapped Ether
廖雪峰的官方网站
©Copyright 2019-2021
Powered by iTranswarp
Feedback
License
什么是区块链技术? - IBM Blockchain
什么是区块链技术? - IBM Blockchain
什么是区块链技术?
区块链是一种不可篡改的共享账本,用于记录交易、跟踪资产和建立信任
区块链的优点
区块链成功从这里开始
IBM《区块链傻瓜书》现已发行第 3 版,已向超过 6.8 万名读者介绍了区块链。
内容:
区块链基础
区块链如何运作
区块链的实践应用:用例
由 Linux 基金会主导的 Hyperledger 项目
第一次区块链应用的十个步骤
区块链技术概述
区块链定义:区块链是一个共享的、不可篡改的账本,旨在促进业务网络中的交易记录和资产跟踪流程。 资产可以是有形的(如房屋、汽车、现金、土地),也可以是无形的(如知识产权、专利、版权、品牌)。几乎任何有价值的东西都可以在区块链网络上跟踪和交易,从而降低各方面的风险和成本。
为什么区块链很重要:业务运营依靠信息。信息接收速度越快,内容越准确,越有利于业务运营。区块链是用于传递这些信息的理想之选,因为它可提供即时、共享和完全透明的信息,这些信息存储在不可篡改的账本上,只能由获得许可的网络成员访问。区块链网络可跟踪订单、付款、帐户、生产等信息。由于成员之间共享单一可信视图,因此,您可采取端到端方式查看交易的所有细节,从而增强信心,提高效率并获得更多的新机会。
区块链的关键元素
分布式账本技术
所有网络参与者都有权访问分布式账本及其不可篡改的交易记录。 借助这个共享账本,交易只需记录一次,从而消除了传统业务网络中典型的重复工作。
不可篡改的记录
当交易被记录到共享账本之后,任何参与者都不能更改或篡改相关信息。 如果交易记录中有错误,则必须添加新交易才能撤消错误,这两个交易随后都是可视的。
智能合约
为了加快交易速度,区块链上存储了一系列自动执行的规则,称为 "智能合约" 。 智能合约可以定义企业债券转让的条件,包括有关要支付的旅行保险的条款等等。
区块链如何运作
每个交易发生时,都会被记录为一个数据“区块”
这些交易表明资产的流动情况,资产可以是有形的(如产品),也可以是无形的(如知识产权)。 数据区块可以记录您选择的信息:人、事、时、地、数甚至条件(例如食品运输温度)。
每个区块都与其前后的区块连接
随着资产从一地移至另一地或所有权的变更,这些数据区块形成了数据链。 数据区块可以确认交易的确切时间和顺序,通过将数据区块安全地链接在一起,可以防止任何数据区块被篡改或在两个现有数据区块之间插入其他数据区块。
交易以区块形式组合成不可逆的链:区块链
每添加一个数据区块都会增强对前一个区块的验证,从而也增强对整条区块链的验证。 因此,篡改区块链很容易就会被发现,这也是不可篡改性的关键优势所在。 这不但消除了恶意人员进行篡改的可能性,还建立了您和其他网络成员可以信任的交易账本。
区块链技术的优点
需要改变的方面:运营人员常常在保留重复记录和执行第三方验证等方面浪费精力。 记录保存系统容易受到欺诈和网络攻击的威胁。 有限的透明度会延缓数据验证速度。 随着物联网的到来,交易量呈爆炸式激增。 所有这些因素都会影响开展业务的速度并侵蚀利润,因此我们需要更好的方法。 于是区块链闪亮登场。
更高的信任度
通过使用区块链技术,作为会员制网络中的一员,您可以确信自己收到准确、及时的数据,并且您的机密区块链记录只能与您特别授予访问权限的网络成员共享。
更高的安全性
所有的网络成员都需要就数据准确性达成共识,并且所有经过验证的交易都将永久记录在案,不可篡改。 没有人可以删除交易,即便是系统管理员也不例外。
更高的效率
通过在网络成员之间共享分布式账本,可避免在记录对账方面浪费时间。 为了加快交易速度,区块链上存储了一系列自动执行的规则,称为“智能合约”。
区块链基础知识五分钟简介
1
深入了解区块链技术的基础知识:数据块中如何包含代表任何有价值事物的数据,它们如何在不可篡改的数据链中按时间顺序连接在一起,以及区块链与比特币等加密货币之间有何差异。
2
了解区块链的分散性质如何使其有别于传统的记录保存,探索许可区块链在商业交易中的价值,以及区块链如何使信任和透明度达到新的水平。
3
食品行业只是通过区块链技术实现转型的行业之一。 了解如何在保护网络参与者数据的前提下,追溯食品的种植、收获、运输和加工的时间、地点和方式。
4
区块链之所以能建立信任,是因为它代表了真实的共享记录。每个人都能相信的数据将有助于推动其他新技术的发展,从而能大幅提高效率、透明度和置信度。
区块链网络的类型
可采用多种方式建立区块链网络。 它们可以是公有、私有、许可式区块链网络,或由联盟建立。
公有区块链网络
公有区块链是任何人都可以加入和参与的区块链,如比特币。 缺点可能包括需要大量计算能力,交易的私密性极低或根本没有私密性可言,以及安全性较弱。 而这些都是区块链的企业用例的重要考虑因素。
私有区块链网络
私有区块链网络与公有区块链网络相似,也是分散的点对点网络。 但是,在私有区块链网络中,由一个组织负责管理网络,控制谁获准参与网络,并执行共识协议,维护共享账本。 这有助于显著提高参与者之间的信任和信心,具体取决于用例。 私有区块链可在企业防火墙后运行,甚至可在企业内部托管。
许可式区块链网络
建立私有区块链的企业通常也会建立许可式区块链网络。 需要注意的是,公有区块链网络也可以成为许可式网络。 这种模式对获准参与网络和执行特定交易的人员施加限制。 参与者需要获得邀请或许可才能加入。
联盟区块链
多个组织可以分担维护区块链的责任。 这些预先挑选的组织决定谁可以提交交易或访问数据。 如果所有参与者都必须获得许可才能参与,并且对区块链共担责任,那么对于企业而言,联盟区块链是理想之选。
区块链安全性
区块链网络的风险管理系统
在构建企业区块链应用时,必须制定全面的安全战略,通过使用网络安全框架、保证服务以及最佳实践,缓解攻击和欺诈带来的风险。
了解有关区块链安全性的更多信息
区块链用例和应用
IBM Food Trust 通过从海洋一直到超市和餐馆全程跟踪捕捞的每一批海鲜,帮助 Raw Seafoods 增强整个食品供应链的信任度。
INBLOCK 发行了基于 Hyperledger Fabric 的 Metacoin 加密货币,旨在更迅速、更方便、更安全地开展数字资产交易。
利用区块链技术,实现变革性的医疗成果
IBM Blockchain Platform 帮助生态系统改变确保信任、数据来源和效率的方式,从而改善患者治疗和组织盈利能力。
阅读:实现变革性的医疗成果 (PDF, 188 KB)
了解 Golden State Foods 如何利用区块链的不可篡改性,跟踪供应链中的货物,帮助保障食品质量。
Vertrax 和 Chateau Software 推出了第一个基于 IBM Blockchain Platform 的多云区块链解决方案,旨在帮助防止大宗石油和天然气分销的供应链中断。
Home Depot 采用 IBM Blockchain 技术,获取有关发货和收货的共享可信信息,从而减少供应商争议并加速解决争议。
行业区块链
行业领军企业使用 IBM Blockchain 消除摩擦,建立信任,实现新的价值。 选择细分行业以了解详细信息。
供应链
医疗保健
政府
零售
媒体和广告
石油和天然气
电信
制造
保险
金融服务
旅游和交通运输 (PDF, 340 KB)
区块链常见问题解答
区块链和比特币有何区别?
比特币是一种不受监管的数字货币。 比特币使用区块链技术作为其交易账本。
这段视频说明了两者之间的差异。
IBM Blockchain Platform 与 Hyperledger 有何关系?
IBM Blockchain Platform 由 Hyperledger 技术提供支持。
这种区块链解决方案可以帮助任何开发人员顺利转变为区块链开发人员。
请访问 Hyperledger 网站以了解详细信息。
了解有关 Hyperledger 的更多信息
我可以在自己期望的任何云上进行部署吗?
IBM Blockchain Platform 软件经过优化处理,可以部署在 Red Hat 最先进的企业级 Kubernetes 平台 Red Hat® OpenShift® 之上。
这意味着您可以更灵活地选择在何处部署区块链网络组件,无论是本地、公有云还是混合云架构。
信息图:在自己选择的云环境中进行部署
我需要更多详细信息。 可从哪里获得?
如需更详细地了解区块链网络的运作方式以及使用方法,请阅读《分布式账本简介》(Introduction to Distributed Ledgers)。
学习 IBM Developer 上的区块链教程,了解更多信息
探索 IBM Blockchain Platform 的功能,这是唯一完全集成的企业级区块链平台,旨在帮助您加速多机构业务网络的开发、治理和运营。
立即注册,下载 IBM Blockchain Platform 白皮书 (PDF, 616 KB)
获取有关 Hyperledger Fabric 的详细信息,了解其独到之处、为何对业务网络至关重要以及如何开始使用。
访问 IBM Developer 上的 Hyperledger 页面
这份开发人员快速入门指南解释了如何使用 IBM Blockchain Platform Starter Plan 构建入门级区块链网络并开始编写代码。
查看开发人员快速入门指南
区块链解决方案
IBM Blockchain 解决方案
IBM Blockchain Platform 属于领先的 Hyperledger Fabric 平台。区块链创新者可充分利用这一平台,通过 Red Hat® OpenShift® 在任何计算环境中构建、运营、管理和发展区块链解决方案。
了解有关 IBM Blockchain Platform 的信息
区块链咨询
作为顶级区块链服务提供商,IBM Blockchain Services 拥有丰富的专业知识,可帮助您基于最佳技术构建强大的解决方案。超过 1,600 名区块链专家使用来自 100 多个实时网络的洞察,帮助您构建和发展。
了解有关区块链咨询的信息
所有 IBM Blockchain 解决方案
采用 IBM Blockchain 解决方案是区块链取得成功的最佳捷径。 IBM 融合了各种网络,使您能够轻松让其他成员加入,共同推动食品供应、供应链、贸易融资、金融服务、保险以及媒体和广告等领域的转型。
查看我们快速发展的区块链解决方案
区块链技术资源
通过艺术诠释区块链技术
我们请来五位对区块链技术知之甚少的艺术家,创作有关区块链主要优点的艺术作品。查看他们的作品,然后在我们最新网络研讨会系列 Blockparty 中,从 IBM 客户和业务合作伙伴那里了解更多信息。
区块链技术博客
网络上有关区块链技术的内容并不缺乏。但对于 100 多万的读者来说,IBM Blockchain Pulse 博客是区块链思想领导力和洞察分析最值得信赖的来源之一。
区块链技术播客
戴上耳机,通过聆听区块链创新者的知识来充实自我。了解区块链技术如何帮助个人重新获得对身份的控制权限、消除全球贫困和减少污染等难题。
区块链技术用例
通过了解创新者如何使用区块链技术 IBM Blockchain Platform 变革业务来获得启发。您可以加入现有的区块链网络,也可以与我们合作创建您自己的区块链网络。
客户成功案例
了解我们的客户如何运用 IBM Blockchain 区块链技术,对组织进行革新,从而获得切实可行的业务成果。
区块链技术后续步骤
浏览我们的参考指南,更深入地了解区块链的各个方面,包括运作方式、使用方法以及实施注意事项。
区块链技术主题
区块链技术的优点
智能合约
面向企业的区块链
区块链安全性
社会公益区块链
区块链和物联网
Hyperledger
区块链的原理是什么? - 知乎
区块链的原理是什么? - 知乎首页知乎知学堂发现等你来答切换模式登录/注册分布式系统区块链的原理是什么?有大神能详细讲下区块链的原理么?网上没找到,越详细越好!拜托不要再举比特币应用了显示全部 关注者2,147被浏览810,522关注问题写回答邀请回答好问题 164 条评论分享113 个回答默认排序萧萧 关注区块链的定义业界并没有一个特别明确和唯一的回答, 这里先给出个人根据所读论文而总结出的“区块链”应有特质:使用了具有 "哈希链" (下文有解释) 形式的数据结构保存基础数据有多个结点参与系统运行(分布式)通过一定的协议或算法对于基础数据的一致性达成共识(共识协议/算法)。介于比特币目前是区块链最典型且最有影响力的应用之一, 理解比特币如何使用区块链后, 再去理解其他形式各样的区块链应用就会容易很多。 ----------------以下引自我在知乎中另外一个区块链问题的答案在谈应用之前,最重要的是先理解它的技术本质是什么, 所有介绍区块链的答案里, 都最先提到了区块链不可篡改的特性, 所以第一个要理解的是它到底是怎么实现不可篡改性的。 先修知识;密码学Hash()函数的单向性: Hash(x) =y , 通过y很难找到x 哈希链: 假如现在有顺序产生的数据块 A, B , C 。 那么我们可以这样计算一个hash 。 注意 “||” 表示拼接h0= Hash(A)
h1 = Hash(B || h0)
h2 = Hash(C || h1)h2是我们计算的hash头部,现在来看, 为什么我们管这个东西叫Hash链, 因为h2 的值依赖于之前一系列数据的内容和计算顺序。 假如说现在你知道了h2 , 别人拿着A,B, C, 他不管是修改A,B, C的任一点内容还是A,B, C的出现顺序,你都无法再次计算出正确的h2 好的, 其实到这里区块链的概念就有点感觉了不是吗。"区块链"这个词是英文 Block Chain 的翻译, 如果从字面上理解, "数据块组成的链条" 就足以阐释它的基本内涵了。比特币区块链其实就是哈希链的一个变种(注意, 下文描述的这种添加随机数以及对随机数有特殊要求的规则是比特币为了实现工作量证明 Proof of Work 的共识机制而添加的, 并不是区块链的一个必要特征)。 怎么变? 添加一个随机数(Nonce)假如现在有顺序产生的数据块 A, B , C 。 我们来这样计算hash头。 注意 “||” 表示拼接h0= Hash(A|| Nonce0)
h1 = Hash(B || h0 || Nonce1)
h2 = Hash(C || h1 || Nonce2)这里我们还添加一个额外的要求, 就是 h0, h1, h2 必须都得是以指定数目的0 bit开头的,例如要求每个哈希值都必须以5个0开头,则h0,h1,h2都应该是这样的形式(00000*****************)添加了这个要求以后, h0, h1, h2就都不是那么容易计算的了, 因为你不能根据输出的形式来反推输入是什么, 而A, B, C又是给定的, 那只能不断更改Nonce来穷举计算, 然后找到一个可以满足要求的Nonce值 ,使得h0, h1, h2符合要求到这里大家就知道所谓的矿工是在干什么了, 就是接受广播出来的数据块,然后计算当前最新的哈希链的头部, 当成功计算出了一个符合要求的Hash后, 就告诉所有人,自己找到了, 让别人再去计算下一个哈希头部。其实到这里, 区块链的本质就已经差不多了, 假如网络中大家都默认遵守协议, 只在最长的哈希链后计算新的头部,那么一切都很好, 但是如果有人想搞不一样,那他就得拥有更强的计算能力, 在诚实者都遵守规则的情况下, 自己能够计算出一个链条分叉甚至说直接计算出一个新的链条,让大家都承认。 为了保证不诚实者计算出新链的难度足够大,中本聪建立了一个泊松分布的概率模型, 假设了诚实结点计算出新的哈希头的概率为p, 不诚实结点计算出新的哈希头的概率为 q 后,算出了一个 N 值。 这个 N 值的含义是当一个新的哈希头部 h1 计算出来后,其后追加N个头部(h2,h3,h4....)后,网络才应该承认这个新的头部 h1. 因为此时, 攻击者要想成功发动攻击, 需要在诚实节点继续追加哈希头部前, 计算出一个长度大于N的分支, 这个概率在攻击者没有掌握全网算力50%的时候是小到可以忽略的。 所以到这里, 区块链就已经清楚了,就是一个密码学工具的一种巧妙应用而已。那这里思考一下, 不可篡改性其实并不是一个什么神奇的特性,密码学的签名技术就能提供不可篡改性呀, 区块链到底解决了一个什么问题。答案是信任问题 区块链提供了一种方案, 让一个网络中,所有的结点都有能力去用计算能力投票, 从而保证了得到承认的结果是大多数人公认的结果, 不会因为少数结点作恶,而修改结果传统的交易建立在什么基础上, 我们对于金融机构的信任, 对于中央银行的信任, 或者对于交易对手的信任, 对于第三方中间人的信任。 这里其实就引出了很多安全技术应用,或者说很多制度建立的本质, 如果你信任的越多, 需要做的工作就越少。区块链就是因为不想信任网络中的任意一个单一结点, 所以让大多数人具有公平的投票权利, 而这个投票权利,不是按人头算的, 是按CPU算的, 每个CPU有一票。区块链的最难以克服的缺点1: 效率问题 前面说过, 当你信任的越多, 需要做的工作越少, 就好比你和一个人做生意, 如果你完全信任对方, 那么合同都不用签, 口头约定就行。 如果不太信任, 签一个简单的合同, 规定最重要的事项。 如果特别不信任, 让律师对交易中所有存在风险的地方列出条款,规定责任, 签一个大大的合同。所以看出来了吧, 信任越多, 效率越高。 信任越少, 效率越低。 区块链也是一样,因为没有单一结点可以信任,通过计算来换取信任。 所以简单的一个承认交易的操作, 需要大量的计算参与进来, 结果是什么, Bitcoin平均交易速度只有7笔每秒。 比特币的最难以克服的缺点2: 宏观金融的适应性金融学和经济学作为人类多年来发展出来的科学具有不可替代的地位, 比特币的流通货币量是存在上限且增加速度基本固定的, 这符合经济规律吗? 显然不符合。 因为学过经济的人都知道, 货币只是对实物财富的衡量, 货币增长速度快于商品增长数量, 则发生通胀, 货币增长速度慢于增长速度则发生通缩。 比特币的最难以克服的缺点3: 匿名引发的安全性想一想匿名对于罪犯的好处,就不难理解比特币的洗钱风险比特币作为信息安全学者的发明产物, 现在常被应用于黑客入侵之后勒索的交易手段, 想起来也真是讽刺比特币的最难以克服的缺点4: 用户的易用性比特币的技术是基于密码学签名技术的, 你的账户安全由你的私钥保护, 如果不添加别的手段,比如在别人那里备份, 或者在别的地方备份, 你丢失了密钥, 账户里的 钱是没有人能给你找回来的。 想想人们丢银行卡, 忘记密码的频率, 这个问题有多大, 不用我说大家也懂说了这么多缺点, 区块链技术和比特币技术就不行了吗? 显然不是,不然那些国际金融机构也不会下大功夫研究它, 但其实, 和其他所有的技术一样, 大家都只是在寻找一种能够更高效解决信任问题的手段而已, 金融机构的核心是什么, 交易投资与风险控制呗。 其实也都是围绕信任问题展开的。信任问题的解决在金融机构本来其实就是耗费了大量的成本的, 只不过很多成本在后台, 或者在人工的耗费上, 很多人看不到而已。 总结 :区块链的技术有望以一个更低的成本解决更广泛的信任问题所以备受关注最后说点闲话, 本人是硕士阶段出来留学的, 对比国内外,发现中国人的技术分享氛围真的比国外差很多, 不是国内的人水平没有,懂的人都自己掖着 , 或者说也懒得做清晰的分享, 我想这一点也不能怪我们国人自己, 毕竟是由于人太多, 资源匮乏导致的竞争心态过于强烈。 但是衷心希望, 随着国家实力的进步, 咱们中国人可以有一天不需要再把英语当成学习技术道路上的必须逾越的坎编辑于 2020-11-13 12:59赞同 141286 条评论分享收藏喜欢收起知乎用户要讲区块链却不讲数字货币是不可能的。毕竟区块链是为了满足比特币独特的需求才被创造出来的。比特币的目标是能够替代传统货币,作为货币,它就必须有流通能力。简单地说,比特币用户之间可以互相转移比特币。而为了保证比特币的流通能够正常的进行,比特币软件必须提供一些最基本的安全上的保证。比如说,如果A给了你一个比特币,这一个比特币就是你的了。要是A能随随便便把这个比特币抢回去,那肯定不行。如果你使用的是纸质货币,A要拿回给了你的东西,就必须在物理上把它抢回去。那只要使用物理上的方法保护好这个东西就好了。但是如果你用的是支付宝怎么办?支付宝上的转账无非是数字上的加加减减,并不涉及物理实体的转移。你所需要做的无非是信任支付宝这个第三方的机构,相信支付宝没有和A串通好,一起坑你的钱。但是这两条到了比特币身上就都行不通了。比特币不是物理实体,同时也不存在一个所有人都信任的第三方(比特币的设计目标就是创造一种用户可以完全匿名的货币,自然不可能去依赖一个这样的第三方)。那应该怎么办呢?其实思路很简单:如果A在大庭广众之下,当着一千个人的面答应把钱给你,那么就算没有第三方的保证,A也很难抵赖。从实现上来说,每当用户使用比特币进行了交易,关于这次交易的信息就会被广播给所有的比特币用户。这样就算有人想要抵赖,也会被抓到证据。好了,讲了这么多,好像问题都解决了,那么这里面有区块链什么事呢?我们可以从一个新生节点的角度看一下这个问题。新生节点要加入比特币网络,就必须对整个网络的情况有所了解。它必须知道网络中的整个交易历史,因为只有这样它才能知道当前其他所有节点各持有多少比特币。而这些交易历史所构成的结构就是区块链。区块链是一系列区块按照时间构成的一个链条,链条中每一个区块都包含数条交易记录。因为比特币本身在安全上的要求(见前文),区块链必须满足一些特性。简而言之,就是不能让人有修改历史的能力。假设有一个区块链A->B->C,任何接收到这个区块链的新生节点,必须能够很方便的验证交易A之后确实发生了交易B,交易B之后确实发生了交易C。在密码学中,防止数据被改动有一个很方便的工具,就是hash。如果C之中包含了B的hash值(如sha256值),那么如果有任何人尝试发送改动过的B(不妨称为B')给新节点,新节点立刻就能发现B'的hash值和C中记录的不符。所以只要新节点获取到了区块链中最新的一个块,它就能往回验证整个历史的合法性。那么,新节点要怎么知道最新的块是否合法呢?答案其实是:“它并不能知道。”打个比方说,要是你身边的所有人都商量好了合起伙来骗你,你就没办法判断你听到的是不是假话。但是比特币网络存在这样一个假设:“好人总是占大多数的”。也就是说,当新生节点向网络发出请求,它收到的最常见的回复就是合法的回复。我们解决掉了历史验证的问题,但还有另一个问题:谁有权利往区块链上添加新的块?如果有恶意节点将“A给C一个比特币”改成了“A给B一个比特币”,其他节点应该怎么区分?答案和之前一样:“它并不能区分。”但是不要忘了,我们假设网络中的好人是占大多数的。在大家的计算能力差不多的情况下,这等同于假设网络中的好人们拥有更多的计算力资源。也就是说,如果我们把“往区块链上增加区块”这件事变成一件需要大量计算的工作,那么拥有更多计算力资源的好人们就能抢在坏人之前加入新区块。而这个计算量巨大的工作,仍然是hash。所有的节点会达成一个共识:“只接受hash值前几位符合条件的区块”(比如只接收hash值第一位是0的区块)。节点可以通过改动区块中的padding来凑hash值。只要hash算法是安全的,节点就没办法高效的凑对hash值,只能暴力尝试所有的padding来碰运气。运气好凑上了的节点,还可以在区块中增加一条给自己一个比特币的交易记录作为对自己的奖励。这个策略还很适合于控制新区块出现的速度(比特币需要在计算力变动的情况下维持匀速增长),只要增强对hash值的要求(比如原先要求第一位是0,现在要求头两位都是0),就能减慢区块链增长的速度。区块链的设计目标和工作原理大概是这样。如果有讲的不清楚的地方,或是有错漏的地方,欢迎在评论中指出。发布于 2015-12-29 23:06赞同 26232 条评论分享收藏喜欢
区块链的工作原理是什么?-腾讯云开发者社区
工作原理是什么?-腾讯云开发者社区腾讯云开发者社区文档建议反馈控制台首页学习活动专区工具TVP最新优惠活动技术百科搜索技术百科搜索技术百科搜索关闭发布登录/注册首页学习活动专区工具TVP最新优惠活动返回腾讯云官网技术百科首页 >区块链 >区块链的工作原理是什么?区块链的工作原理是什么?修改于 2023-07-25 20:39:0035词条归属:区块链区块链的工作原理可以简单概括为以下几个步骤:交易区块链上的交易包括转账、存储和执行智能合约等,每个交易都被广播到整个网络中。验证所有的节点都会验证交易的有效性,包括交易的数字签名、账户余额等,以确保交易的合法性。打包验证通过的交易将被打包成一个区块,并且区块包含了前一个区块的哈希值。 共识所有的节点都会对新区块进行共识,通过共识算法确定新区块的添加顺序和有效性,以保证所有节点的账本都是一致的。添加经过共识的新区块将被添加到区块链中,整个网络的账本将被更新。激励为了激励节点参与验证和打包,区块链通常会设置一定的奖励机制,如比特币的挖矿奖励等。 相关文章区块链:它是什么,它是如何工作的其他编者按:本报告是由《威胁镜头》,Stratfor的独特保护情报产品制作的。以企业安全领导者的头脑设计,威胁镜头使行业专业人士能够预测、识别、衡量和减轻世界各地的人们和资产面临的威胁。首席架构师智库2018-07-255640区块链101:区块链技术是如何工作的?区块链分布式安全比特币正如我们的指南中所说的“区块链技术是什么?”有三种主要的技术可以组合成区块链。没有一个是新的。相反,它是他们的业务流程和应用程序。这些技术包括:1)私有密钥加密,2)分布式网络,共享分类账和3)激励首席架构师智库2018-04-096.2K0区块链技术(四):区块链是什么?区块链区块链是什么?
区块链是一种新型去中心化协议,通过分布式账本(或者叫数据库)这个载体,能安全地存储比特币交易或其它数据,通过分布在全球的网络确保信息不可伪造和篡改,可以自动执行智能合约,无需任何中心化机构的审核。交易既可以是比特币这样的数字货币,也可以是股权、知识产权这样的数字资产。大大降低了经济运行的信任和会计成本。
区块链有2个核心概念:交易/事务和区块
什么是交易/事务?
区块链是一个全局共享的,事务性的数据库。这个网络的每一个人都可以读取其中的记录。如果你想修改这个数据库中的东西,就必须创建一个企鹅号小编2018-01-1014.6K0区块链是什么分布式编程算法比特币数字货币 区块链的概念这几年越来越火,大家看到各种文章和新闻,但是总是搞不清区块链到底是什么东东。我今天试着给大家讲一讲我的理解。我们看待一个新事物的时候,搞清楚他是怎么来的,能帮助我们更好的理解他是什么。zhanyd2022-05-161.7K0我仅用50 行 JavaScript 代码从头构建区块链,向你介绍区块链的工作原理编程算法区块链unix区块链,区块链,区块链!在过去的十年里,我们一次又一次地听到这个技术流行语。它被认为是 21 世纪最重要的发明之一。winty2021-12-101K0点击加载更多词条知识树 9个知识点更多什么是区块链?区块链的工作原理是什么?区块链有哪些优势?区块链有什么应用场景?区块链中的加密技术有哪些?区块链中的智能合约如何确保安全? 区块链隐私保护技术有哪些?区块链如何实现去中心化?区块链如何确保数据的完整性和不可篡改性?社区专栏文章阅读清单互动问答技术沙龙技术视频团队主页腾讯云TI平台活动自媒体分享计划邀请作者入驻自荐上首页技术竞赛资源技术周刊社区标签开发者手册开发者实验室关于社区规范免责声明联系我们友情链接腾讯云开发者扫码关注腾讯云开发者领取腾讯云代金券热门产品域名注册云服务器区块链服务消息队列网络加速云数据库域名解析云存储视频直播热门推荐人脸识别腾讯会议企业云CDN加速视频通话图像分析MySQL 数据库SSL 证书语音识别更多推荐数据安全负载均衡短信文字识别云点播商标注册小程序开发网站监控数据迁移Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有 深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归