欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    区块链原理、设计与应用.docx

    • 资源ID:676653       资源大小:2.81MB        全文页数:430页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    区块链原理、设计与应用.docx

    区块链原理、设计与应用1. 第1章区块链思想的诞生2. 1.1从实体货币到数字货币3. 1.2站在巨人的肩膀上4. 1.3了不起的社会学实验5. 1.4潜在的商业价值6. 1.5本章小结7. 第2章核心技术概览8. 28定义与原理9. 2.2技术的演化与分类10. 2.3关键问题和挑战11. 2.4趋势与展望12. 2.5认识上的误区13. 2.6本章小结14. 第3章典型应用场景15. 3.1应用场景概览16. 3.2金融服务17. 3.3征信和权属管理18. 3.4资源共享19. 3.5贸易管理20. 3.6物联网21. 3.7其他场景22. 3.8本章小结23. 第4章分布式系统核心问题24. 4.1一致性问题25. 4.2共识算法26. 应ELB丕可能原理27. 4.4CAP原理28. 4.5AeID原则29. 4.6PaXOS算法与Raft算法30. 37拜占庭问题与算法31. 4.8可靠性指标32. 39本章小结33. 第5章密码学与安全技术34. 5.1HaSh算法与数字摘要35. 5.2加解密算法36. 5.3消息认证码与数字签名37. 5.4数字证书38. 5.5PKl体系39. 5.6MerkIe树结构40. 5。布隆过滤器41. 5.8同态加密42. 5.9其他向题43. 5.10本童小结44. 第6章比特币区块链思想诞生的摇篮45. 6.1比特币项目简介46. 6.2原理和设计47. 6.3挖矿48. 6.4共识机制49. 6.5闪电网络50. 6.6侧密51. 6.7热点问题52. 6.8相关工具53. 6.9本章小结54. 第7章以太坊一挣脱数字货币的枷锁55. 7.1以太坊项目简介56. 7.2核心概念57. 7.3主要设计58. 7.4相关工具59. 7.5安装客户端60. 7.6使用智能合约61. 7.7智能合约案例:投票62. 7.8本章小结63. 第8章超级账本一面向企业的分布式账本64. 8.1超级账本项目简介65. 8.2社区组织结构66. 8.3顶级项目介绍67. 8.4开发必备工具68. 8.5贡献代码69. 8.6本章小结70. 实践篇71. 第9章超级账本Fabrie部署和使用72. 9.1简介73. 9.2本地编译安装74. 9.3使用DoCker镜像75. 启动FabIi网络76. 9.5链码的概念与使用77. 9.6使用多通道78. 9.7SDK支持79. 9.8生产环境注意事项80. 9.9本章小结81. 第10章超级账本FabriC配置管理82. 10.1简介83. 10.2Peer配置剖析84. 10.3Orderer配置剖析85. 10.4CryPtOgen生成组织身份配置86. 10.5ConfigtXgerl生成通道配置87. IQfCQnfigixIato豪痍配置88. 10.7本章小结89. 第11章超级账本FabriCCA应用与配置90. 11.1简介91. 11.2安装服务端和客F92. 11.3启动CA服务93. 11.4服务端命令剖析94. 11.5服务端配置文件®95. 11.6与服务端进行交296. 11.7客户端命令剖析97. 1L8客户端配置文件®98. 11.9生产环境部署99. ILIo本章小结100. 第12章超级账本Fabrh101. 12.1整体乘构概览102. 12.2核心概念与组件103. 12.3gRPC消息协议104. 12.4权限管理和策略105. 12.5用户链码106. 12.6系统链码107. 12.7排序服务108. 12.8水五小结109. 第13章区块链应用开;110. 13.1简介111. 13.2链码的原理、接匚112. 13.31码开发APl113. 13.4应用开发案例一单析鹏析二架构与设计:)与结构转账114.13.5应用开发案例二资产权属管理115.13.6应用开发案例三调用其他链码116.13.7应用开发案例四发送事件117. 13.8开发最佳实践小结118. 13.9本叠小结119. 第14章区块链服务平台设计120. 14.1简介121. 14.2IBMBkIemiX云区块镇服务122. 14.3微软AZUre云区块链服务123. 14.4使用超级账本CellO搭建区块链服务124. 14.5本正小结125. ffi126. 附录A术语表127. 附录B常见问题解答128. 附录CG。Iang开发相关129. 附录DPrOtoBUf与gRPC130. 附录E参考资源第1章区块链思想的诞生新事物往往不是凭空而生,其发展过程也并非一蹴而就。认识一个从未见过的新事物,最重要的是弄清楚它的来龙去脉,知其出身,方能知其所以然。区块链(blockchain)思想最早出现在大名鼎鼎的比特币(Bitcoin)开源项目中。比特币项目在诞生和发展过程中,借鉴了来自数字货币、密码学、博弈论、分布式系统、控制论等多个领域的技术成果,可谓博采众家之长于一身,作为其核心支撑结构的区块链技术更是令人瞩目的创新成果。本章将从数字货币的历史讲起,简要介绍区块链思想诞生的摇篮比特币项目的诞生和发展过程,并初步剖析区块链技术带来的潜在商业价值。通过阅读本章内容,读者可以了解区块链技术产生的背景、原因,以及在诸多商业应用场景中的潜在价值。区块链最初的思想诞生于无数先哲对于用数字货币替代实体货币的探讨和设计中。1 .货币的历史演化众所周知,货币是人类文明发展过程中的一大发明。其最重要的职能包括价值尺度、流通手段、贮藏手段等。很难想象离开了货币,现代社会庞大而复杂的经济和金融体系如何保持运转。也正是因为它如此重要,货币的设计和发行机制是关系到国计民生的大事。历史上,在自然和人为因素的干预下,货币的形态经历了多个阶段的演化,包括实物货币、金属货币、代用货币、信用货币、电子货币、数字货币等。近代以前相当长的一段时间里,货币的形态一直是以实体的形式存在,可统称为“实体货币”。计算机诞生后,为货币的虚拟化提供了可能性。同时,货币自身的价值依托也不断发生演化,从最早的实物价值、发行方信用价值,直到今天的对科学技术和信息系统(包括算法、数学、密码学、软件等)的信任价值。覆提示中国最早关于货币的确切记载“夏后以玄币”,出现在恒宽的盐铁论错币。2 .纸币的缺陷理论上,一般等价物都可以作为货币使用。当今世界最常见的货币制度是纸币本位制,因为纸质货币既方便携带、不易仿制,又相对容易辨伪。或许有人会认为信用卡等电子方式相对于纸币等货币形式使用起来更为方便。确实,信用卡在某些场景下会更为便捷,但它依赖背后的集中式支付体系,一旦碰到支付系统故障、断网、缺乏支付终端等情况,信用卡就无法使用。另外,货币形式相对电子支付方式还可以提供更好的匿名性。目前,无论是货币形式,还是信用卡形式,都需要额外的支持机构(例如银行)来完成生产、分发、管理等操作。中心化的结构固然易于管理,但也带来了额外成本和安全风险。诸如伪造、信用卡诈骗、盗刷、转账骗局等安全事件屡见不鲜。很显然,如果能实现一种数字货币,既有货币方便易用的特性,又能消除纸质货币的缺陷,无疑将极大提高社会整体经济活动的运作效率。让我们来对比一下现有的数字货币(以比特币为例)和现实生活中的纸币,两者的优劣见表表1-1数字货币和纸币的对比属性分析优势方便携大部分场景(特别是较大数额支付时)卜数字货币将具备更好的便携性数字货币防伪两者各有千秋,但数字货币整体上会略胜-筹纸币依轼的是各种设计(纸张、油鼻、暗纹、夹层等)上的精巧,数字货币依糕的则是密码学上的保障事实上.纸币的伪造时有发生,但数字货币的伪造目前还无法实现数字货币辨伪纸币即使依托验钞机等用设备仍会有谈判情况.数字货币依称密码学易于校验数字货币匿名通常情况卜,两并都能提供很好的匿名性但都无法防御有意的追踪持平交易对纸而来说,谁持有纸币谁就是合法拥疗者.交易通过纸币自身的转移即可完成.无法复制对数字货币来说则史杂得多,因为任何数字物茄都是可以被复制的,但数字形式也意味粉转移成本会更低总体上行.两齐适用不同的情景持平资源通常情况卜二纸币的生产成本要远低于面额数字货币消耗资源的il5则发杂得多以比特币为例,最坏情况卜可能需要消耗接近战至超过面值的电能纸币发行纸币的发行需要第三方机构的参。.数字货币则通过分布式算法来完成发行在人类历史匕通胀和通缩往往是不合理地发行货币造成的,而数字货币尚缺乏大规模验iiE.还行待观察持平可见,数字货币并非在所有领域都优于已有的货币形式。要比较两者的优劣应该针对具体情况具体分析。不带前提地鼓吹数字货币并不是一种科学和严谨的态度。实际上,仔细观察数字货币的应用情况就会发现,虽然以比特币为代表的数字货币已在众多领域得到应用,但目前还没有任何一种数字货币能完全替代已有货币。另外,虽然当前的数字货币“实验”已经取得了巨大成功,但局限也很明显:其依赖的区块链和分布式账本技术还缺乏大规模场景的考验;系统的性能和安全性还有待提升;资源的消耗还过高等。这些问题的解决,有待金融科技的进一步发展。Q注意严格来讲,货币(money)不等于现金或通货(cash/currency),货币的含义范围更广。3 .“去中心化”的技术难关虽然数字货币带来的预期优势可能很美好,但要设计和实现一套能经得住实用考验的数字货币并非易事。现实生活中常用的纸币具备良好的可转移性,可以相对容易地完成价值的交割。但是对于数字货币来说,数字化内容容易被复制,数字货币持有人可以将同一份货币发给多个接收者,这种攻击称为“双重支付攻击”(double-spend)。也许有人会想到,银行中的货币实际上也是数字化的,因为通过电子账号里面的数字记录了客户的资产。说的没错,有人称这种电子货币模式为“数字货币L0”,它实际上依赖于一个前提:假定存在一个安全可靠的第三方记账机构负责记账,这个机构负责所有的担保环节,最终完成交易。中心化控制下,数字货币的实现相对容易。但是,很多时候很难找到一个安全可靠的第三方记账机构来充当这个中心管控的角色。例如,发生贸易的两国可能缺乏足够的外汇储备用以支付;汇率的变化等导致双方对合同有不同意见;网络上的匿名双方进行直接买卖而不通过电子商务平台;交易的两个机构彼此互不信任,找不到双方都认可的第三方担保;使用第三方担保系统,但某些时候可能无法连接;第三方的系统可能会出现故障或受到篡改攻击这个时候,就只有实现去中心化(de-centralized)或多中心化(multi-centralized)的数字货币系统。在“去中心化”的场景下,实现数字货币存在如下几个难题: 货币的防伪:谁来负责对货币的真伪进行鉴定; 货币的交易:如何确保货币从一方安全转移到另外一方; 避免双重支付:如何避免同一份货币支付给多个接收者。可见,在不存在第三方记账机构的情况下,实现一个数字货币系统的挑战着实不小。能否通过技术创新来解决这个难题呢?众多金融专家、科研人员向着这个方向不懈努力了数十年,创造出了许多具有深远影响的巧妙设计。从上世纪80年代开始,数字货币技术就一直是研究的热门,前后经历了几代演进,比较典型的成果包括eCash、HashCashxB-money等。1983年,DavidChaUm最早在论文BlindSignatureforUntraceablePayments中提出了e-Cash,并于1989年创建了DigiCaSh公司。eCash系统是首个匿名化的数字加密货币(anonymouscryptographicelectronicmoney或electroniccashsystem),基于DaVidChaum自己发明的盲签名技术,曾被应用于部分银行的小额支付系统中。eCash依赖于一个中心化的中介机构,这导致它最终失败。1997年,AdamBaCk发明了HaShCash,来解决邮件系统中DOS攻击问题。HaShCaSh首次提出用工作量证明(ProofofWork,PoW)机制来获取额度,该机制后来被随后出现的数字货币技术所采用。1998年,WeiDai提出了B-money,将POW引入数字货币生成过程中。B-money同时是首个面向去中心化设计的数字货币。从概念上看Bmoney已经比较完善,但是很遗憾,其未能提出具体的设计实现。上面这些数字货币都或多或少地依赖于一个第三方的信用担保系统。直到比特币的出现,将P。W与共识机制联系在一起,首次从实践意义上实现了一套去中心化的数字货币系统。比特币依托的分布式网络无需任何管理机构,自身通过数学和密码学原理来确保所有交易的成功进行,并且,比特币自身的价值通过背后的计算力进行背书。这也促使人们开始思考,在越来越数字化的世界中,应该如何发行货币,以及如何衡量价值。目前,除了像比特币这样完全丢弃已有体系的分布式技术之外,仍然存在中心化代理模式的数字货币机制,包括类似PayPal这样的平台,通过跟已有的支付系统合作,代理完成交易。现在还很难讲哪种模式将会成为日后的主流,未来甚至还可能出现更先进的技术。但毫无疑问,这些成果都为后来的数字货币设计提供了极具价值的参考;而站在巨人们肩膀上的比特币,必将在人类货币史上留下难以磨灭的印记。1 .比特币的诞生2008年10月31日,一位化名SatoShiNakamOtO(中本聪)的人在metzdowd密码学邮件列表中提由了比特币(BitCOin)的设计白皮书Bitcoin:APeer-to-PeerElectronicCaShSyStem,并在2009年公开了最初的实现代码。首个比特币于UTC时间2009年1月3日18:15:05生成。但比特币真正流行开来并被人们所关注则是至少两年以后了。作为开源项目,比特币很快吸引了大量开发者的加入,目前的官方网站bitcoin.org提供了比特币相关的代码实现和各种工具软件。除了精妙的设计理念外,比特币最为人津津乐道的一点是发明人“中本聪”到目前为止尚无法确认真实身份。也有人推测,“中本聪”背后可能不止一个人,而是一个团队。这些猜测都为比特币项目带来了不少传奇色彩。2 .比特币的意义和价值直到今天,关于比特币的话题仍充满了不少争议。但大部分人应该都会认可,比特币是数字货币历史上,甚至整个金融历史上一次了不起的社会学实验。比特币网络自2009年上线以来,在无人管理的情况下,已经在全球范围内7x24小时运行超过8年时间,成功处理了几百万笔交易,甚至支持过单笔1.5亿美元的交易。更为难得的是,比特币网络从未出现过重大的系统故障。比特币网络目前由数千个核心节点参与构成,不需要任何中心化的支持机构参与,纯靠分布式机制支持了稳定上升的交易量。比特币首次真正从实践意义上实现了安全可靠的去中心化数字货币机制,这也是它受到无数金融科技从业者热捧的根本原因。作为一种概念货币,比特币主要希望解决已有货币系统面临的几个核心问题: 被掌控在单一机构手中,容易被攻击; 自身的价值无法保证,容易出现波动; 无法匿名化交易,不够隐私。在前文中曾探讨过,要实现一套去中心化的数字货币机制,最关键的是要建立一套可靠的交易记录系统,以及形成一套合理的货币发行机制。这个交易记录系统要能准确、公正地记录发生过的每一笔交易,并且无法被恶意篡改。对比已有的银行系统,可以看出,现有的银行机制作为金融交易的第三方中介机构,有代价地提供了交易记录服务。如果参与交易的多方都完全相信银行的记录(数据库),就不存在信任问题。可是如果是更大范围(甚至跨多家银行)进行流通的货币呢?哪家银行的系统能提供完全可靠不中断的服务呢?唯一可能的方案是一套分布式账本。这个账本可以被所有用户自由访问,而且任何个体都无法对所记录的数据进行恶意篡改和控制。为了实现这样一个前所未有的账本系统,比特币网络巧妙地设计了区块链结构,提供了可靠、无法被恶意篡改的数字货币账本功能。比特币网络中,货币的发行是通过比特币协议来规定的。货币总量受到控制,发行速度随时间自动进行调整。既然总量一定,那么单个比特币的价值会随着越来越多的经济实体认可比特币而水涨船高。发行速度的自动调整则避免出现通胀或者滞涨的情况。另一方面,也要冷静地看到,作为社会学实验,比特币已经获得了巨大的成功,特别是基于区块链技术,已经出现了许多颇有价值的商业场景和创新技术。但这绝不意味着比特币自身必然能够进入未来的商业体系中。3.更有价值的区块链技术如果说比特币是影响力巨大的社会学实验,那么从比特币核心设计中提炼出来的区块链技术,则让大家看到了塑造更高效、更安全的未来商业网络的可能。2014年开始,比特币背后的区块链技术开始逐渐受到大家关注,并进一步引发了分布式记账本(distributedledger)技术的革新浪潮。实际上,人们很早就意识到,记账相关的技术对于资产(包括有形资产和无形资产)的管理(包括所有权和流通)十分关键;而去中心化或多中心化的分布式记账本技术,对于当前开放、多维化的商业模式意义重大。区块链的思想和结构,正是实现这种分布式记账本系统的一种极具可行潜力的技术。区块链技术现在已经脱离比特币网络自身,在金融、贸易、征信、物联网、共享经济等诸多领域崭露头角。现在,除非特别指出是“比特币区块链”,否则当人们提到“区块链技术”时,往往所指已经与比特币没有什么必然联系了。1.4 潜在的商业价值商业行为的典型模式为:交易的多方通过协商和执行合约,完成交易过程。区块链擅长的正是在多方之间达成合约,并确保合约的顺利执行。根据类别和应用场景不同,区块链所体现的特点和价值也不同。从技术角度一般认为,区块链具有如下特点: 分布式容错性:分布式网络极其鲁棒,能够容忍部分节点的异常状态; 不可篡改性:一致提交后的数据会一直存在,不可被销毁或修改; 隐私保护性:密码学保证了数据隐私,即便数据泄露,也无法解析。随之带来的业务可能包括如下特性: 可信任性:区块链技术可以提供天然可信的分布式账本平台,不需要额外第三方中介机构参与; 降低成本:跟传统技术相比,区块链技术可能需要的时间、人力和维护成本更少; 增强安全:区块链技术将有利于安全、可靠的审计管理和账目清算,减少犯罪风险。区块链并非凭空诞生的新技术,而更像是技术演化到一定程度突破应用阈值后的产物,因此,其商业应用场景也跟促生其出现的环境息息相关。对于基于数字方式的交易行为,区块链技术能潜在地降低交易成本、加快交易速度,同时能提高安全性。能否最终带来成本的降低,将是一项技术能否得到深入应用的关键。所有跟信息、价值(包括货币、证券、专利、版权、数字商品、实际物品等)、信用等相关的交换过程,都将可能从区块链技术中得到启发或直接受益(见图1-1)。但这个过程绝不是一蹴而就的,可能需要较长时间的探索和论证。具体的商业应用案例可以参考本书后续的应用场景章节。信息图11区块链影响的交换过程目前,区块链技术已经得到了众多金融机构和商业公司的关注,包括大量金融界和信息技术界的领军性企业和团体。典型企业组织如下(排名不分先后): Visa国际组织; 美国纳斯达克证券交易所(Nasdaq); 高盛投资银行(GOIdmanSaChS); 花旗银行(CitiBank); 美国富国银行(WeIlSFargO); 中国人民银行; 中国浦发银行;,日本三菱日联金融集团; 瑞士联合银行; 德意志银行; 美国证券集中保管结算公司(DTCC); 全球同业银行金融电讯协会(SWIFT); 国际商业机器公司(IBM);微软(MiCrOSOft); 英特尔(Intel);,思科(Cisco); 埃森哲(ACCentUre)。1.5 本章小结区块链思想诞生于数字货币长达三十多年的发展过程中,它支持了首个试图自带信任、防篡改的分布式记账本一比特币网络。这也第一次让大家意识到,除了互联网这样的尽力而为(不保证可信)的基础设施外,基于区块链技术还将可能打造一个实现彼此信任的基础网络设施。当然,从应用角度讲,比特币也只是基于区块链技术的一种金融应用。区块链技术其实还能带来更通用的计算能力和商业价值。本书后续章节将介绍更多的商业应用案例,并介绍开源界打造的区块链平台项目,包括“以太坊”和“超级账本”等项目。这些开源项目加速释放了区块链技术的威力,为更多更复杂的区块链应用场景提供了技术支持。第2章核心技术概览运用之妙夺造化,存乎一心胜天工。有人可能会遇到这样的问题: 跨境商贸合作中签订的合同,怎么确保对方能严格遵守和及时执行? 酒店宣称刚打捞上来的三文鱼,怎么追踪捕捞和运输过程中的时间和卫生? 现代数字世界里,怎么证明你是谁?怎么证明某个资产属于你? 经典囚徒困境中的两个人,怎样才能达成利益的最大化? 宇宙不同文明之间的“黑暗森林”猜疑链,有没有可能被彻底打破?这些看似很难解决的问题,在区块链的世界里已经有了初步的答案。本章将带领大家探索区块链的核心技术,包括其定义与原理、关键的问题等,还将探讨区块链技术的演化,并对未来发展的趋势进行展望。最后,对一些常见的认识误区进行了澄清。L定义公认的最早关于区块链的描述性文献是中本聪所撰写的文章Bitcoin:APeer-toPeerElectronicCachSystem,但该文献重点在于讨论比特币系统,实际上并没有明确提出区块链的定义和概念,在其中指出,区块链是用于记录比特币交易账目历史的数据结构。另外,WikiPedia上给出的定义中,将区块链类比为一种分布式数据库技术,通过维护数据块的链式结构,可以维持持续增长的、不可篡改的数据记录。区块链技术最早的应用出现在比特币项目中。作为比特币背后的分布式记账平台,在无集中式管理的情况下,比特币网络稳定运行了八年时间,支持了海量的交易记录,并且从未出现严重的漏洞,这些都与巧妙的区块链结构分不开的。区块链技术自身仍然在飞速发展中,目前相关规范和标准还在进一步成熟中。2 .基本原理区块链的基本原理理解起来并不复杂。首先,区块链包括三个基本概念: 交易(transaction):一次对账本的操作,导致账本状态的一次改变,如添加一条转账记录; 区块(block):记录一段时间内发生的所有交易和状态结果,是对当前账本状态的一次共识; 链(chain):由区块按照发生顺序串联而成,是整个账本状态变化的日志记录。如果把区块链作为一个状态机,则每次交易就是试图改变一次状态,而每次共识生成的区块,就是参与者对于区块中交易导致状态改变的结果进行确认。在实现上,首先假设存在一个分布式的数据记录账本,这个账本只允许添加、不允许删除。账本底层的基本结构是一个线性的链表,这也是其名字“区块链”的来源。链表由一个个“区块”串联组成(如图2-1所示),后继区块记录前导区块的哈希值(prehash)o新的数据要加入,必须放到一个新的区块中。而这个块(以及块里的交易)是否合法,可以通过计算哈希值的方式快速检验出来。任意维护节点都可以提议一个新的合法区块,然而必须经过一定的共识机制来对最终选择的区块达成一致。_pre_hash_ansactions- metadataj pre hash, transactions metadatapre hashtransactionsmetadata图2-1区块链结构示例3 .以比特币为例理解区块链工作过程以比特币网络为例,可以具体看其中如何使用了区块链技术。首先,比特币客户端发起一项交易,广播到比特币网络中并等待确认。网络中的节点会将一些收到的等待确认的交易记录打包在一起(此外还要包括前一个区块头部的哈希值等信息),组成一个候选区块。然后,试图找到一个nonce串(随机串)放到区块里,使得候选区块的哈希结果满足一定条件(比如小于某个值)。这个nonce串的查找需要一定的时间去进行计算尝试。一旦节点算出来满足条件的nonce串,这个区块在格式上就被认为是“合法”了,就可以尝试在网络中将它广播出去。其他节点收到候选区块,进行验证,发现确实符合约定条件7,就承认这个区块是一个合法的新区块,并添加到自己维护的区块链上。当大部分节点都将区块添加到自己维护的区块链结构上时,该区块被网络接受,区块中所包括的交易也就得到确认。当然,在实现上还会有很多额外的细节。这里面比较关键的步骤有两个:一个是完成对一批交易的共识(创建区块结构);一个是新的区块添加到区块链结构上,被大家认可,确保未来无法被篡改。比特币的这种基于算力寻找nonce串的共识机制称为工作量证明(ProofofWork,PoW)o目前,要让哈希结果满足一定条件,并无已知的快速启发式算法,只能进行尝试性的暴力计算,尝试的次数越多(工作量越大),算出来的概率越大。通过调节对哈希结果的限制,比特币网络控制平均约10分钟产生一个合法区块。算出区块的节点将得到区块中所有交易的管理费和协议固定发放的奖励费(目前是12.5比特币,每四年减半),这个计算新区块的过程俗称为挖矿。读者可能会关心,比特币网络是任何人都可以加入的,如果网络中存在恶意节点单,能否进行恶意操作来对区块链中的记录进行篡改,从而破坏整个比特币网络系统。比如最简单的,故意不承认收到的别人产生的合法候选区块,或者干脆拒绝来自其他节点的交易等。实际上,比特币网络中存在大量(据估计数千个)的维护节点,而且大部分节点都是正常工作的,默认都只承认所看到的最长的链结构。只要网络中不存在超过一半的节点提前勾结一起采取恶意行动,则最长的链将很大概率上成为最终合法的链。而且随着时间增加,这个概率会越来越大。例如,经过6个区块生成后,即便有一半的节点联合起来想颠覆被确认的结果,其概率也仅为(1/2)61.6%,即低于1/60的可能性。当然,如果整个网络中大多数的节点都联合起来作恶,可以导致整个系统无法正常工作。要做到这一点,往往意味着付出很大的代价,跟通过作恶得到的收益相比,得不偿失。函提示区块链结构与Git版本管理的有向无环图数据结构,在设计上有异曲同工之妙。2.2技术的演化与分类区块链技术自比特币网络设计中被大家发掘关注,从最初服务数字货币系统,到今天在分布式账本场景下发挥着越来越大的技术潜力。1.区块链的演化比特币区块链已经支持了简单的脚本计算,但仅限于数字货币相关的处理。除了支持数字货币外,还可以将区块链上执行的处理过程进一步泛化,即提供智能合约(smartcontract)o智能合约可以提供除了货币交易功能外更灵活的合约功能,执行更为复杂的操作。这样,扩展之后的区块链已经超越了单纯数据记录的功能,实际上带有一点“智能计算”的意味;更进一步,还可以为区块链加入权限管理和高级编程语言支持等,实现更强大的、支持更多商用场景的分布式账本。从计算特点上,可以看到现有区块链技术的三种典型演化场景,如表21所示。表2“区块链技术的三种典型演化场景场景功能智能合约一致性权限类型性能编程语言代表公信的数字货币记咪功能不带有或较弱PoW无公有链较低简单脚本比特币网络公信的交易处理钟能合约图灵完希PoW.PoS无公有链受限特定语言以太坊络带权限的分布式账本处理商业处理多种语就图灵完备包括CFT.BFT住内的名种机制,可插拔支持联盟储可扩展高级编程语言超级账本2.区块链与分布式记账记账技术历史悠久,古老的账本见图2-2。图22古老的账本现代复式记账系统(doubleentrybookkeeping)由意大利数学家卢卡帕西奥利于1494年在Summadearithmetica,geometrica,PrOPortiOnieIPrOPOrtiOnaIi。一书中最早制定。复式记账法对每一笔账目同时记录来源和去向,首次将对账验证功能引入记账过程,提升了记账过程的可靠性。从这个角度来看,区块链是首个自带对账功能的数字记账技术实现。更广泛地看,区块链属于一种去中心化的记录技术。参与到系统上的节点,可能不属于同一组织,彼此无需信任;区块链数据由所有节点共同维护,每个维护节点都能复制获得一份完整或部分记录的拷贝。跟传统的记账技术相比,基于区块链的分布式账本应该包括如下特点: 维护一条不断增长的链,只可能添加记录,而发生过的记录都不可篡改; 去中心化,或者说多中心化,无需集中控制而能达成共识,实现上尽量采用分布式; 通过密码学的机制来确保交易无法被抵赖和破坏,并尽量保护用户信息和记录的隐私性。3.分类根据参与者的不同,可以分为公开(public)链、联盟(consortium)链和私有(private)链。 公有链,顾名思义,任何人都可以参与使用和维护,如比特币区块链,信息是完全公开的;如果进一步引入许可机制,可以实现私有链和联盟链两种类型: 私有链,由集中管理者进行管理限制,只有内部少数人可以使用,信息不公开; 联盟链则介于两者之间,由若干组织一起合作维护一条区块链,该区块链的使用必须是带有权限的限制访问,相关信息会得到保护,如供应链机构或银行联盟。目前来看,公有链更容易吸引市场和媒体的眼球,但更多的商业价值会在联盟链和私有链上落地。根据使用目的和场景的不同,又可以分为以数字货币为目的的货币链,以记录产权为目的的产权链,以众筹为目的的众筹链等,也有不局限特定应用场景的通用链。现有大部分区块链实现都至少包括了网络层、共识层、智能合约和应用层等结构,联盟链实现往往还会引入一定的权限管理机制。2.3关键问题和挑战从技术角度讲,区块链所涉及的领域比较繁杂,包括分布式系统、存储、密码学、心理学、经济学、博弈论、控制论、网络协议等,这也就意味着大量工程实践上的技术挑战。下面列出了目前业内关注较多的一些技术话题。1 .抗抵赖与隐私保护 怎么防止交易记录被篡改? 怎么证明交易双方的身份? 怎么保护交易双方的隐私?密码学的发展为解决这些问题提供了不少手段。传统方案包括HaSh算法、加解密算法、数字证书和签名(盲签名、环签名)等。随着区块链技术的应用,新出现的需求将刺激密码学的进一步发展,包括更高效的随机数产生、更高强度的加密、更快速的加解密处理等。同时,量子计算等新技术的出现,也会带来更多的挑战,例如,RSA算法等目前商用的加密算法,在未来可能无法提供足够的安全性。能否满足这些新的需求,将依赖于数学科学的进一步发展和新一代计算技术的突破。2 .分布式共识这是个经典的技术难题,学术界和业界都已有大量的研究成果(包括PaXos、拜占庭系列算法等)。问题的核心在于如何解决某个变更在分布式网络中得到一致的执行结果,是被参与多方都承认的,同时这个信息是被确定的,不可推翻的。该问题在公开匿名场景下和带权限管理的场景下需求差异较大,从而导致了基于概率的算法和确定性算法两类思想。最初,比特币区块链考虑的是公开匿名场景下的最坏保证。通过引入了“工作量证明”策略来规避少数人的恶意行为,并通过概率模型保证最后参与方共识到最长链。算法在核心思想上是基于经济利益的博弈,让恶意破坏的参与者损失经济利益,从而保证大部分人的合作。同时,确认必须经过多个区块的生成之后达成,从概率上进行保证。这类算法的主要问题在于效率的低下。类似算法还有以权益为抵押的PoS、DPOS和CaSPer等。后来更多的区块链技术(如超级账本)在带权限管理的场景下,开始考虑支持更多的确定性的共识机制,包括经典的拜占庭算法等,可以解决快速确认的问题。共识问题在很长一段时间内都将是极具学术价值的研究热点,核心的指标将包括容错的节点比例、决策收敛速度、出错后的恢复、动态特性等。P。W等基于概率的系列算法理论上允许少于一半的不合作节点,PBFT等确定性算法理论上则允许不超过1/3的不合作节点。3 .交易性能虽然一般来说,区块链不适用于高频交易的场景,但由于金融系统的需求,业界目前十分关心如何提高区块链系统交易的吞吐量,同时降低交易的确认延迟。目前,公开的比特币区块链只能支持平均每秒约7笔的吞吐量,一般认为对于大额交易来说,安全的交易确认时间为一个小时左右。以太坊区块链的吞吐量略高一些,但交易性能也被认为是较大的瓶颈。提示实际上,小额交易只要确认被广播到网络中并带有合适的交易服务费用,即有较大概率被最终打包。区块链系统跟传统分布式系统不同,其处理性能很难通过单纯增加节点数来进行横向扩展。实际上,传统区块链系统的性能,在很大程度上取决于单个节点的处理能力。高性能、安全、稳定性、硬件辅助加解密能力,都将是考查节点性能的核心要素。这种场景下,为了提高处理性能,一方面可以提升单个节点的性能(如采用高配置的硬件),同时设计优化的策略和算法;另外一方面试图将大量高频的交易放到链外来,只用区块链记录最终交易信息,如比特币社区提出的“闪电网络”等设计。类似地,侧链(sidechain)s影子链(shadowchain)等思路在当前阶段也有一定的借鉴意义。类似设计可以将交易性能提升2个数量级。此外,在联盟链的场景下,参与多方存在一定的信任前提和利益约束,可以采取更优化的设计,换来性能的提升。以超级账本FabriC项目为例,在普通虚拟机配置下,单客户端交易吞吐量可达几百次每秒(transactionspersecond,tps);在有一定工程优化或硬件加速情况下可以达到每秒数千次的吞吐量。客观地说,目前开源区块链系统已经可以满足不少应用场景的性能需求,但离大规模交易系统在峰值每秒数万笔的吞吐性能还有较大差距。函提示据公开的数据,VISA系统的处理均值为2000tps,号称的峰值为56000tps;某金融支付系统的处理峰值超过了8500OtPS;某大型证券交易所号称的处理均(峰)值在8000OtPS左右。4 .扩展性常见的分布式系统可以通过增加节点来横向扩展整个系统的处理能力。对于区块链网络系统来说,根据共识机制的不同,这个问题往往并非那么简单。例如,对于比特币和以太坊区块链而言,网络中每个参与维护的核心节点都要保持一份完整的存储,并且进行智能合约的处理。此时,整个网络的总存储和计算能力取决于单个节点的能力。甚至当网络中节点数过多时,可能会因为一致性的达成过程延迟降低整个网络的性能。尤其在公有网络中,由于存在大量低性能处理节点,导致这个问题将更加明显。要解决这个问题,根本上是放松对每个节点都必须参与完整处理的限制(当然,网络中节点要能合作完成完整的处理),这个思路已经在超级账本中得到应用;同时尽

    注意事项

    本文(区块链原理、设计与应用.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开