猜你喜欢
DAG区块链技术:原理与实践

DAG区块链技术:原理与实践

书籍作者:曹源 ISBN:9787111611776
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:7964
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

内容简介
本书由区块链4.0明星项目InterValue(也是目前技术更先进的基于DAG的区块链项目)核心团队撰写,它从底层原理和工程实践两个维度深入浅出地讲解和剖析了DAG这一新兴的区块链技术,能为基于DAG的技术研发、场景落地、链上应用和生态构建提供全方位的指导。
全书共11章,逻辑上分为三个部分:
部分(第1~6章) 技术原理篇
首先从宏观上对区块链及DAG技术做了整体性介绍,然后从微观上详细讲解了DAG区块链技术的通信机制、共识机制、智能合约、密码学技术和安全技术,这部分内容将从理论和技术的角度为读者打下坚实的基础。
第二部分(第7~9章) 工程实践篇
从原理实现和应用开发两个维度深入剖析了目前具有代表性的3个基于DAG技术的区块链项目:IOTA、ByteBall和InterValue。不仅能让读者了解这3个项目的核心技术实现细节,而且还能从中学习和借鉴DAG技术的开发方法和技巧。
第三部分(第10~11章) 展望篇
首先介绍了典型的基于DAG技术的区块链应用和DAG区块链技术的应用场景,然后对DAG技术的发展脉络进行了梳理,*后对DAG技术未来的发展趋势做了前瞻性的分析和探讨。

作者简介
作者简介
曹源(Barton Chao,博士)
区块链技术专家和网络安全专家,从事区块链技术研究与应用近10年,对DAG技术有深入研究,基于DAG技术的明星区块链项目InterValue的创始人兼CEO。
西安电子科技大学区块链应用与评测实验室副主任、浙江大学计算机学院区块链研究中心特聘研究员、湘江区块链研究院副院长、矩阵数字经济智库专家成员。
此外,他还是北京理工大学机电学院特聘研究员、湘潭大学硕士生导师、湖南宸瀚信息科技有限公司董事长、哈希奈特(北京)科技股份有限公司董事长、四川宸瀚信息科技有限公司董事长、浙江物信科技有限公司董事长。
编辑推荐
适读人群 :所有区块链开发者和区块链技术爱好者。

(1)InterValue 是继IOTA、ByteBall、XDAG、Hedra Hashgraph等之后的新一代基于DAG技术的项目,技术更先进,效率更高,更安全,作者团队由InterValue的CEO、CTO和核心成员构成。
(2)技术理论维度,本书系统讲解了DAG区块链技术的通信机制、智能合约、共识机制、密码学技术和安全技术;工程时间维度,本书深入剖析了目前具有代表性的3个基于DAG技术的区块链项目:IOTA、ByteBall和InterValue。

前言

为什么要写这本书
十余年前,攻读硕士期间在做P2P应用系统时,分布式的内容分发和文件共享均相对较容易实现,但却一直为P2P节点的信誉机制和信任体系的建立绞尽脑汁而不可得。博士阶段研究方向转为网络安全,在寻找研究方向时,因长期以来对网络对抗、密码学的研究有兴趣,机缘巧合,在2008年年底恰逢中本聪、哈尔芬尼等人在密码学邮件组讨论比特币设计并在讨论组里发布了比特币的原始论文,自此,开始了我的区块链研究生涯。
区块链行业近年来发展迅速,作为行业较早的从业者,我一直和行业一起成长,并实际参与了区块链行业,进行了诸多工程实践。人们基于块链式结构的分布式账本技术设计了很好的经济模型,解决了分布式环境下达成一致性之后的节点激励问题,但现有块链式结构的设计因需要将单笔交易的全部阶段作为原子操作来完成,所以先天性难以并行出块,存在难以提高系统吞吐量等问题。人们在如何提高块链式分布式账本的TPS上做了很多工作,典型的如闪电网络等,但由于块链式数据结构本身的限制,始终难以实现彻底的性能提升。
在数学和计算机科学的诸多领域,图(网)这种数据结构在解决诸多复杂应用问题时相较于链表结构具备先天性的优势,这在诸多科学问题和实际应用领域中已经得到证明。在区块链或者说分布式账本技术领域,我认为该规律依然适用。2013年,在bitcointalk.org论坛上关于NXT的讨论帖中,就有用户提出以有向无环图(Directed Acyclic Graph,DAG)作为区块链的底层数据结构以提高系统整体性能,此时提出的DAG底层依然用区块,但把区块的链式存储结构改成DAG存储,即变成区块DAG。此时人们的思路还停留在侧链的思路上,不同类型的交易并行在不同链上进行,即DAG和区块结合使用。但DAG区块仍受限于出块速度这个指标,因此2015年人们提出Blockless DAG的概念,此时的DAG把区块和交易进行了融合,交易发起后没有产生区块的阶段,而是直接对交易进行全网交易排序。后续人们逐渐在DAG技术路线上进行了探索,出现了IOTA、ByteBall、XDAG、Hedra Hashgraph、InterValue等项目,DAG几乎在每个维度上都能显露出比区块链更优的特性,在效率、确定性、避免中心化、能耗等方面尤为明显,但如何设计安全、高效的基于DAG的共识机制以实现对交易全网排序并确保排序的唯一性和一致性是个技术难点。上述项目在DAG共识机制上做了迭代性的探索,尤其是InterValue项目在共识机制设计上,创新性地提出的分层分片的Gossip共识机制HashNet。HashNet有望较好地平衡“不可能三角”,即平衡区块链基础设施的去中心化、性能和安全性。
由于区块链行业尚处于早期阶段,尤其是在技术方向的探索上,诸多项目依然在进行块链式区块链的研究,行业内尚未在能支持大规模分布式应用(DApp)的区块链基础设施应该走什么样的技术路径这个问题上达成共识,基于我对DAG技术的理解和应用实践,我认为非常有必要撰写一本关于DAG技术原理与工程实践的图书:首先让区块链爱好者对DAG这条技术路径的发展历程、现状和趋势有深度了解;其次让区块链从业者在从事区块链相关研究和开发过程中掌握DAG的技术原理并能够将该技术用于工程实践;最后希望能够将各类区块链行业大规模应用和基础设施研发团队的技术路径引到DAG技术路径上来,通过各团队的努力,在实用化区块链基础设施研发和基于实用化区块链基础设施构建的用户量级达到千万级以上的分布式应用研发上,尽早取得里程碑式的成果,实现现象级区块链基础设施和现象级区块链应用的落地。
读者对象
区块链技术爱好者
DAG相关项目的用户
DAG技术爱好者
DAG项目实际开发者
DAG相关应用开发者
开设区块链相关课程的大专院校的学生
如何阅读本书
本书可归纳为三大部分。
第一部分为基础原理(第1章~第5章),依次对DAG技术原理,包括数据结构、共识机制、智能合约、密码学技术进行了介绍,帮助读者掌握DAG的原理性知识。
第二部分为工程实践(第6章~第9章),着重讲解DAG技术工程实践中的三个具有代表性的项目,即IOTA、ByteBall和InterValue,尤其是对InterValue项目进行了详细介绍,并对DAG技术安全原理和实践进行了探讨。
第三部分为展望(第10章~第11章),对DAG的生态建设和发展趋势进行了探讨。
希望本书能够为读者提供原理性指导和工程实践参考。
勘误和支持
除封面署名的作者外,参加本书编写工作的还有张晓斌、康来、荀长庆、何速、龙军、张子文、刘晓铖、徐浩、彭磊、左晓亮、刘星、邢志、陈政、张硕云、甘卫、文冉、邓长青等。由于作者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。书中的全部源文件可以从华章网站下载,我会将相应的功能更新并及时发布出来。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱[email protected],期待能够得到你们的真挚反馈。
致谢
感谢比特币之父中本聪,他开创了一款影响我整个人生的软件。
感谢国防科技大学十数年的教育,我在这里度过了学生生涯并留校任教数年,让我有幸在我感兴趣的技术领域开展研究。
感谢公司的所有小伙伴—邵炳春、郭乐、钟磊、向妍、杨祝建、

目录
序一
序二
序三
序四
前言
第1章 区块链基础1
1.1 区块链简介1
1.1.1 基本概念1
1.1.2 分类3
1.1.3 应用与价值3
1.2 区块链相关技术简介4
1.2.1 底层通信技术4
1.2.2 共识技术6
1.2.3 智能合约6
1.2.4 加密与签名6
1.2.5 匿名保护7
1.3 DAG区块链8
1.3.1 起源8
1.3.2 DAG区块链与单链技术的对比8
1.3.3 DAG区块链的优势与价值9
1.4 本章小结10
第2章 DAG区块链通信机制11
2.1 计算机网络的基本概念和技术11
2.1.1 计算机网络体系结构11
2.1.2 P2P对等网络19
2.1.3 网络安全技术24
2.2 IOTA通信机制28
2.2.1 网络结构及特性28
2.2.2 掩码认证消息29
2.2.3 交易隐私保护34
2.3 Byteball通信机制37
2.3.1 Byteball网络结构37
2.3.2 Byteball网络节点通信协议38
2.3.3 Byteball加密通信原理与实现40
2.3.4 Byteball私有不可追踪的支付41
2.4 InterValue通信机制42
2.4.1 网络结构42
2.4.2 大规模组网方法43
2.4.3 匿名通信机制44
2.4.4 跨链通信机制46
2.5 本章小结49
第3章 DAG区块链的共识机制50
3.1 IOTA共识机制50
3.1.1 Tangle确认规则50
3.1.2 轻量化的PoW52
3.1.3 蒙特卡洛马尔可夫链52
3.1.4 双花问题54
3.2 Byteball共识机制56
3.2.1 单元确认规则56
3.2.2 主链57
3.2.3 稳定点扩展 58
3.2.4 双花问题58
3.3 Hashgraph共识机制59
3.3.1 Gossip协议59
3.3.2 witness选择60
3.3.3 投票规则62
3.3.4 双花问题64
第4章 DAG区块链的智能合约65
4.1 Byteball智能合约65
4.1.1 Smart Payments简介66
4.1.2 Smart Payments原理68
4.1.3 实战Byteball智能合约75
4.2 DAG图灵完备智能合约探索86
4.2.1 DAG图灵完备智能合约的挑战87
4.2.2 Vite项目90
4.2.3 InterValue项目92
4.3 本章小结94
第5章 DAG区块链中的密码学技术95
5.1 DAG区块链中的Hash函数95
5.1.1 Hash函数的基本模型95
5.1.2 SHA256密码算法97
5.1.3 SHA3计划胜选Hash函数99
5.1.4 中国商用密码Hash函数SM3101
5.1.5 Merkle哈希树103
5.2 DAG区块链中的非对称加密机制104
5.2.1 RSA加密算法104
5.2.2 EIGamal公钥加密算法107
5.2.3 椭圆曲线公钥加密算法108
5.3 区块链中的数字签名机制110
5.3.1 RSA数字签名110
5.3.2 DSA数字签名111
5.3.3 ECDSA数字签名112
5.3.4 EIGamal数字签名113
5.3.5 SM2数字签名114
5.3.6 Schnorr数字签名116
5.3.7 特殊数字签名117
5.3.8 零知识证明122
5.4 后量公钥密码体制124
5.4.1 基于Hash函数抗量子密码124
5.4.2 基于纠错码抗量子密码125
5.4.3 多变量密码125
5.4.4 格密码126
第6章 DAG区块链安全原理与实践130
6.1 区块链安全介绍131
6.1.1 背景131
6.1.2 威胁模型132
6.1.3 安全目标132
6.2 数据安全与防护133
6.2.1 交易匿名133
6.2.2 隐私保护133
6.3 算法安全与分析134
6.3.1 签名算法134
6.3.2 共识机制135
6.3.3 智能合约135
6.4 代码安全与缓解136
6.4.1 模糊测试137
6.4.2 符号执行137
6.4.3 自动化漏洞挖掘138
6.4.4 攻击缓解139
6.5 基础设施安全威胁与防护140
6.6 典型漏洞分析与实践141
6.6.1 重入漏洞141
6.6.2 访问控制漏洞143
6.6.3 整数溢出漏洞146
6.6.4 底层函数返回值未检查漏洞148
6.6.5 拒绝服务漏洞149
6.6.6 随机性不当漏洞150
6.6.7 提前交易漏洞151
6.6.8 时间篡改漏洞152
6.6.9 短地址漏洞153
6.7 区块链生态安全的未来155
6.8 本章小结155
第7章 IOTA详解156
7.1 IOTA原理分析156
7.1.1 IOTA简介156
7.1.2 IOTA数据结构157
7.1.3 IOTA系统稳定性分析162
7.1.4 IOTA安全性分析166
7.2 IOTA实战开发172
7.2.1 IOTA钱包安装 172
7.2.2 IOTA API176
7.2.3 IOTA私有测试链搭建180
7.2.4 第一个简单小程序184
7.2.5 IOTA应用实例186
第8章 Byteball详解189
8.1 Byteball原理分析189
8.1.1 Byteball简介189
8.1.2 Byteball区块链结构190
8.1.3 Byteball地址和脚本192
8.1.4 Byteball网络结构199
8.1.5 Byteball应用方法203
8.2 Byteball实战开发211
8.2.1 Byteball安装部署211
8.2.2 Byteball应用实例218
8.3 本章小结220
第9章 InterValue详解222
9.1 InterValue原理分析222
9.1.1 InterValue简介222
9.1.2 InterValue数据结构228
9.1.3 InterValue共识机制233
9.1.4 InterValue智能合约241
9.1.5 InterValue安全机制245
9.1.6 InterValue匿名通信技术250
9.2 InterValue生态圈251
9.2.1 InterValue跨链技术和多链融合252
9.2.2 全节点适配器多链融合253
9.2.3 InterValue跨链通信254
9.2.4 InterValue跨链资产交换255
9.2.5 InterValue跨链资产转移256
9.3 本章小结256
第10章 DAG区块链与区块链3.0生态259
10.1 DAG区块链链上应用259
10.1.1 分布式社交网络应用259
10.1.2 分歧合约应用260
10.1.3 文件存储网格应用261
10.2 DAG区块链应用场景262
10.2.1 应用场景概述262
10.2.2 实物资产交易确权264
10.2.3 去中心化旅行服务平台264
10.2.4 资产分红权利交易区块链266
第11章 DAG区块链展望269
11.1 从1.0到4.0269
11.2 未来展望270