猜你喜欢
白话区块链

白话区块链

书籍作者:蒋勇 ISBN:9787111582984
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9581
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
以全方位视角,结合通俗生活化的示例与图生动讲解,从技术、应用到系统设计。涵盖区块链的底层技术、典型业务场景思路、主流框架与应用,并手把手教你从零构建区块链系统(微链)。本书共9章,以下为涉猎的内容。
  第1章通过村民记账的场景巧妙串起区块链的技术思想、技术组成,并以比特币为例介绍了基础技术原理。
  第2章综合介绍了典型区块链应用场景与流程。
  第3章介绍了现代密码算法在区块链中的作用与场景。
  第4章介绍了主流网络共识算法及其社会学价值。
  第5章介绍了区块链的链内外互联扩展技术的思路与主流做法。
  第6章详细介绍了以太坊的技术结构以及智能合约开发。
  第7章详细介绍了超级账本项目以及Fabric的配置与使用。
  第8章详细介绍了如何从零开始设计一个微型区块链系统(微链),加深理解并提升动手能力。
  第9章介绍了目前出现的各种区块链技术问题,多关于性能与安全。

作者简介
蒋勇 ,某集团企业信息技术开发部主管。12年软件设计开发经历,专注于分布式系统设计,2012年始接触比特币底层技术,熟悉比特币、以太坊、超级账本等区块链技术实现,并进行过源码级原理研究。目前在进行智能合约安全编码的工具设计开发。多次进行线上线下会议的分享。

  文延(覃文延) ,某知名私募投行区块链事业部总经理,是多个自有知识产权的区块链底层技术构架专家委员会和技术白皮书组织者和参与者,北京某央企基金公司区块链研究院副院长。著名DB2 DBA和大数据专家,大数据博览会和数博会特邀嘉宾,多次参与国内外国家*数据平台项目研发与管理。在数据库领域深耕多年,曾创立数据库公司raindb Technologies Inc.和rdb.io Inc.,曾在IBM多伦多实验室从事DB2和SAP架构、协议、系统层面研发与技术管理工作。

  嘉文, 某知名慕课网站架构师,曾长期担任加拿大贝尔在线营销部门与大数据产品部门的经理和技术架构师。加拿大McGill大学信息学硕士、多伦多大学罗特曼商学院MBA。专注于大数据与分布式数据库系统的分析和研究,从2012年开始先后对比特币、以太坊、雷欧币、瑞波、超级账本进行了代码级研究,并开发了基于瑞波的支付网关,基于以太坊的智能合约产品等。目前从事基于区块链的量化交易系统的设计和开发。
编辑推荐
以全方位视角,结合通俗生活化的示例与图生动讲解,从技术、应用到系统设计
  涵盖区块链底层技术、典业务场景设计、主流框架与应用,并手把手教你从零构建区块链系统(微链)
  区块链技术的思想,可以在非信任环境建立信任关系、传递信用与价值,它和具有时代影响力的其他技术一样,盘活了一系列的商业场景,比如防伪、溯源、数据治理、行业链条打通与监控,等等。但是区块链技术的发展尚处于早期,而且其技术栈(分布式系统、共识、加密、分布式账本等)是一种相对紧耦合的状态,且技术门槛不低。
  针对以上问题,本书致力于降低学习曲线,以让更多人了解区块链,在设计和写作本书师,突出了以下几个特点。
  由浅入深:从比特币开始,到区块链技术的骨骼(密码算法)和灵魂(共识算法),再到目前知名的区块链框架介绍,到最后从零构建一个微型区块链系统(微链),循序渐进。
  多图多表:各种示例以及图表,通过流程图与示意图介绍比特币的源码编译、以太坊智能合约的开发部署、超级账本Fabric的配置使用、模拟比特币的微型区块链系统的设计实现等,形象而直观。
  白话通俗:通过“村民账本记账”、“百花村选举记账”等生活化示例,避免多技术组合与新概念上的理解障碍与阅读枯燥感。

前言
为什么要写这本书
  想要写一本综合介绍区块链的书,这个想法是从2016年年底开始有的。一直以来,关于这方面的资料比较少,能够找到的资料,或着眼于经济金融方面的发展远景,或着重介绍区块链的发展历史,或阐述纯技术化的内容,读来总是有一种意犹未尽的感觉。而身边的朋友或对区块链完全陌生,或是有很多误解,还有些朋友甚至简单地认为区块链就等于比特币。笔者也曾多次在一些类似读书会的场合对区块链进行较为通俗的介绍,然而很多感兴趣的朋友来自银行、投融资等行业,他们并非都有完备的计算机知识背景,当然也不乏一些希望从事区块链技术开发的程序员。然而即便是用了自认为很通俗的文字和语言来介绍,也难以在短短的一两个小时内讲清楚,对于各种名词术语、各种新鲜概念,每当他们希望我推荐一些资料的时候,我都很头疼。对于一个还没有广为人知的事物,大家的求知欲是很强烈的,并不满足于囫囵吞枣地了解概念,但也不喜欢去啃枯燥深入的技术文字,他们只是希望能有一个系统化的介绍,白话点的,通俗些的,能把每个点都讲到,把技术原理、应用场景、发展历史、当前现状等都贯穿起来。鉴于此,写这么一本书的想法就愈发强烈了。
  我自2012年由比特币开始关注区块链技术,一直只在一个小范围的技术圈内进行讨论交流,每每为理解了一个技术概念而欣喜不已。区块链技术绝不仅仅代表一种数字货币,某种程度上,与其说是一门技术不如说是一类思想或者价值观。比特币把区块链技术带入了世人的眼中,以一种“货币”的身份降临,着实带来了不少的神秘感,其带来的理念为后来者所发扬光大,闪电网络、比特股、以太坊、超级账本等,不断冒出各种新的理念和产品,它们都是为了解决某一特定问题以及应用到更多领域而发展起来的。区块链技术的各种特点(分布式、可信任、不可篡改、智能合约等),在与传统技术领域结合的过程中,一定会显示出巨大的优势。事实上这两年区块链技术的发展可以说是势如破竹,相当迅猛,国内外都开始有大量的机构或者企业投入研究,力图能够抓住这未来的一缕阳光。
  这一切,都要从全面了解区块链开始。
  本书将呈现给读者一个全方位的视角,从技术到应用以及未来展望,以通俗的语言阐述区块链的各个技术点,力求给读者一个通透的讲解,并希望能抛砖引玉,引导读者拓展出新颖而有价值的思路。
  本书特色
  从章节安排来说,本书从比特币开始,到区块链技术的骨骼(密码算法)和灵魂(共识算法),再到目前知名的系统,最后到从零开始构建一个微型区块链系统。读者的学习是一个由生到熟的渐进过程,对区块链完全陌生的读者,可以先从章节中的非专业技术部分读起,对于已经有一定基础的读者,可以从中挑选感兴趣的内容。
  从内容安排来说,除了概念与原理的介绍之外,更多的是各种示例以及图表,以大量示例介绍比特币的源码编译、以太坊智能合约的开发部署、超级账本Fabric的配置使用、模拟比特币的微型区块链系统的设计实现等。阐述中会使用各种示意图,形象、直观地帮助读者理解各个概念和过程。
  行文风格方面,力求白话通俗,避免枯燥感,使阅读体验更好。
  读者对象
  希望进行区块链开发的程序员。
  希望投资或参与区块链项目的人员。
  对区块链感兴趣的爱好者。
  如何阅读本书
  第1章介绍区块链的技术组成,并以比特币为例介绍各种基础技术原理。
  第2章综合介绍目前的各种区块链应用,为后面的技术介绍铺垫场景。
  第3章介绍现代密码算法在区块链中的作用。
  第4章介绍各种网络共识算法。
  第5章介绍区块链的链内外互联扩展技术。
  第6章详细介绍以太坊的技术结构以及智能合约开发。
  第7章详细介绍超级账本项目以及Fabric的配置使用。
  第8章详细介绍如何从零开始设计一个微型区块链系统(简称微链)。
  第9章介绍目前出现的各种区块链技术问题。
  勘误和支持
  由于笔者水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,欢迎通过微信或邮件进行讨论。你可以通过微信Cshen003、微博@行者C神,或者发送邮件到邮箱[email protected]联系到我,我会尽量给出满意的解答,期待能够得到你们的真挚反馈,在技术之路上互勉共进。
  致谢
  感谢我的作者伙伴——文延和嘉文,他们在工作之余,挤出宝贵的时间为本书贡献了他们对区块链技术的深入理解以及应用的展望分析,他们的专业和敬业令我感到钦佩。
  感谢韩璐女士为本书做的审核工作,为书稿的内容质量付出了辛勤的劳动。
  感谢比特币社区、以太坊社区、超级账本社区以及巴比特论坛各位技术专家,每次阅读他们的技术文章都让我有所收获,本书也多处引用了他们的观点和思想。
  感谢中本聪,是他带来了区块链!
  特别致谢
  最后,感谢父母从小对我的培养,他们为我创造了良好的学习环境并培养了我爱好读书的习惯,这个习惯将伴随我终生并使我受益匪浅。因为工作和写书,牺牲了很多陪伴家人的时间,所以我更要感谢太太王晓英长期以来对我的默默支持,以及女儿Cindy对我工作的
  理解。
  谨以此书献给我最亲爱的家人,多年以来帮助、支持我的朋友们,以及众多热爱区块链技术的朋友们!
  蒋勇

目录
技术审校
前言
第1章 初识区块链 1
1.1 例说区块链 1
1.1.1 从一本账本说起 1
1.1.2 区块链技术理念 3
1.1.3 一般工作流程 4
1.2 区块链技术栈 5
1.3 区块链分类与架构 10
1.3.1 区块链架构 10
1.3.2 区块链分类 13
1.4 一切源自比特币 16
1.4.1 比特币技术论文介绍 16
1.4.2 比特币核心程序:中本聪客户端 18
1.4.3 比特币的发行:挖矿 30
1.4.4 比特币钱包:核心钱包与轻钱包 35
1.4.5 比特币账户模型:UTXO 39
1.4.6 动手编译比特币源码 41
1.5 区块链的技术意义 48
1.6 知识点导图 51
第2章 区块链应用发展 53
2.1 比特币及其朋友圈:加密数字货币 53
2.1.1 以太坊 54
2.1.2 比特币现金 56
2.1.3 莱特币 57
2.1.4 零币 57
2.1.5 数字货币发展总结 59
2.2 区块链扩展应用:智能合约 61
2.2.1 比特币中包含的合约思想 61
2.2.2 以太坊中图灵完备的合约支持 62
2.3 交易结算 62
2.3.1 银行结算清算 62
2.3.2 瑞波 :开放支付网络 64
2.4 IPFS:星际文件系统 65
2.5 公证防伪溯源 66
2.6 供应链金融 70
2.7 区块链基础设施:可编程社会 74
2.8 链内资产与链外资产 76
2.9 知识点导图 77
第3章 区块链骨骼:密码算法 79
3.1 哈希算法 79
3.1.1 什么是哈希计算 79
3.1.2 哈希算法的种类 80
3.1.3 区块链中的哈希算法 81
3.2 公开密钥算法 83
3.2.1 两把钥匙:公钥和私钥 83
3.2.2 RSA算法 84
3.2.3 椭圆曲线密码算法 85
3.3 编码/解码算法 86
3.3.1 Base64 87
3.3.2 Base58 88
3.3.3 Base58Check 89
3.4 应用场景 90
3.5 知识点导图 91
第4章 区块链灵魂:共识算法 92
4.1 分布式系统的一致性 92
4.1.1 一致性问题 93
4.1.2 两个原理:FLP与CAP 94
4.1.3 拜占庭将军问题 95
4.1.4 共识算法的目的 96
4.2 Paxos算法 98
4.3 Raft算法 99
4.4 PBFT算法 101
4.5 工作量证明——PoW 102
4.6 股权权益证明——PoS 104
4.7 委托权益人证明机制——DPoS 104
4.8 共识算法的社会学探讨 106
4.9 知识点导图 107
第5章 区块链扩展:扩容、侧链和闪电网络 108
5.1 比特币区块扩容 108
5.2 侧链技术 113
5.3 闪电网络的设计 116
5.4 多链:区块链应用的扩展交互 121
5.5 知识点导图 122
第6章 区块链开发平台:以太坊 123
6.1 项目介绍 123
6.1.1 项目背景 123
6.1.2 以太坊组成 125
6.1.3 关键概念 127
6.1.4 官方钱包使用 143
6.2 以太坊应用 151
6.2.1 测试链与私链 151
6.2.2 编写一个代币合约 158
6.3 知识点导图 164
第7章 区块链开发平台:超级账本 166
7.1 项目介绍 166
7.1.1 项目背景 166
7.1.2 项目组成 167
7.2 Fabric项目 169
7.2.1 Fabric基本运行分析 169
7.2.2 Fabric安装 170
7.3 Fabric示例 173
7.3.1 部署准备 173
7.3.2 启动Fabric网络 178
7.3.3 Fabric智能合约 180
7.3.4 Fabric部署总结 187
7.4 知识点导图 187
第8章 动手做个实验:搭建微链 189
8.1 微链是什么 189
8.2 开发环境准备 190
8.3 设计一个简单的结构 191
8.4 源码解析 193
8.4.1 目录结构 193
8.4.2 代码之旅 194
8.5 微链实验的注意问题 214
8.6 知识点导图 214
第9章 潜在的问题 216
9.1 两个哭泣的婴儿:软分叉与硬分叉 217
9.2 达摩克利斯剑:51%攻击 220
9.3 简单的代价:轻钱包的易攻击性 222
9.4 忘了保险箱密码:私钥丢失 223
9.5 重放攻击:交易延展性 225
9.6 代码漏洞:智能合约之殇 227
9.6.1 说说TheDAO事件 227
9.6.2 Parity多重签名漏洞 228
9.7 网络拥堵:大量交易的确认延迟 229
9.8 容量贪吃蛇:不断增长的区块数据 231
9.9 知识点导图 232
后记 区块链与可编程社会 234