DAG区块链技术:原理与实践(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-29 02:57:17

点击下载

作者:曹源

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

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

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

前言

为什么要写这本书

十余年前,攻读硕士期间在做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的生态建设和发展趋势进行了探讨。

希望本书能够为读者提供原理性指导和工程实践参考。勘误和支持

除封面署名的作者外,参加本书编写工作的还有张晓斌、康来、荀长庆、何速、龙军、张子文、刘晓铖、徐浩、彭磊、左晓亮、刘星、邢志、陈政、张硕云、甘卫、文冉、邓长青等。由于作者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。书中的全部源文件可以从华章网站下载,我会将相应的功能更新并及时发布出来。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱caoyuan@nudt.edu.cn,期待能够得到你们的真挚反馈。致谢

感谢比特币之父中本聪,他开创了一款影响我整个人生的软件。

感谢国防科技大学十数年的教育,我在这里度过了学生生涯并留校任教数年,让我有幸在我感兴趣的技术领域开展研究。

感谢公司的所有小伙伴——邵炳春、郭乐、钟磊、向妍、杨祝建、陈丽沙、李海平、

于存威、张文政、叶永学、彭韬、刘轶、张超、杜玺麟、施雨良、丁继刚、郭芳琪、高迪、胡慧、阳昕丽、黄召戎、文德英、克雷蒙、康纯、张静、李爱军、贺文军、余增辉、李旭、刘欣如、熊季、彭毓妍、曹恒、邱颖、彭飞、李进、杨坚、张航、李帅、张小苗、代祥、

金多多、万舸、徐斯洁、肖春宇,以及名单之外的更多朋友,感谢你们长期对公司的支持和贡献。

感谢机械工业出版社华章公司的杨福川老师,在这半年多的时间中始终支持我的写作,你的鼓励和帮助引导我能顺利完成全部书稿。

最后感谢我的父母及亲人,感谢你们将我培养成人,并时时刻刻为我灌输着信心和力量!

谨以此书献给我最亲爱的家人,以及众多热爱区块链尤其是DAG技术的朋友们!湖南宸瀚信息科技有限公司董事长哈希奈特(北京)科技股份有限公司董事长四川宸瀚科技有限公司董事长曹源写于湖南长沙第1章区块链基础

互联网给整个社会带来了颠覆式的影响,是电气时代后最伟大的创新技术之一。每一轮新技术都会推动生产力的发展和社会经济的进步,并在这种进步的过程中逐渐蜕化和演进。随着互联网技术在社会各方面渗透应用的极致深化,互联网红利逐渐消失,而区块链有望带动新一轮行业革新和创新应用。达沃斯论坛创始人克劳斯施瓦布认为,区块链作为继蒸汽机、电气化、计算机之后第四次工业革命的重要成果,预计到2025年之前,全球GDP总量的10%将利用区块链技术储存。因此,区块链是继互联网之后的一项革命性的创新技术,它将改变人类社会价值的传递方式,重塑组织形态,促进资源重新整合,改变行业运行逻辑。

本章将介绍区块链的基础概念,主要包括区块链的定义与相关概念,分类、应用价值,以及相关技术简介。1.1 区块链简介

区块链技术作为一种使数据库安全而不需要行政机构授信的解决方案首先被应用于比特币。中本聪(Satoshi Nakamoto)在2008年于《比特币白皮书》中提出“区块链”概念,并在2009年创立了比特币社会网络,开发出第一个区块。1.1.1 基本概念1.区块链

关于区块链的概念目前还没有一个共同的认识,维基百科给出的解释为:区块链是用于分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。

从本质上讲,区块链技术是一种使用去中心化共识机制去维护一个完整的、分布式的、不可篡改的账本数据库的技术,它能够让区块链中的参与者在无需建立信任关系的前提下实现一个统一的账本系统。区块是公共账本,多点维护;链是盖上时间戳,不可伪造。

区块链本质上是一个注重安全和可信度胜过效率的一项技术。目前所有的系统背后都有一个数据库,也就是一个大账本。那么谁来记这个账本就变得很重要。现在就是谁的系统谁来记账,各个银行的账本就是各个银行在记,支付宝的账本就是阿里巴巴在记。但在区块链系统中,系统中每个人都有机会参与记账。在一定时间段内如果有新的交易数据变化,系统会评判这段时间内记账最快最好的人,将其记录的内容写到账本,并将这段时间内账本内容发给系统内的其他人进行备份。这样系统中的每个人都有一本完整的账本。因此,这些数据就会变得非常安全。篡改者需要同时修改超过半数的系统节点数据才能真正地篡改数据。这种篡改的代价极高,几乎不可能发生。例如,比特币运行已经超过9年,全球无数的黑客尝试攻击比特币,但是至今为止没有出现过交易错误,可以认为比特币区块链是一个非常安全可靠的系统。因此可以认为,区块链技术就是一个全民参与记账的方式,它将带来的是记账方式的革新。2.哈希函数

哈希函数是可以将原始数据编码为特定长度的、由数字和字母组成的字符串。哈希函数有着很多适合存储区块链数据的优点:1)哈希函数处理过的数据是单向性的,通过处理过的输出值几乎不可能计算出原始的输入值;2)哈希函数处理不同长度的数据所耗费的时间是一致的,输出值也是定长的;3)哈希函数的输入值即使只相差一个字节,输出值的结果也会迥然不同。3.P2P网络

P2P是英文Peer-to-Peer的缩写,称为“对等网”或“点对点”技术。IBM为P2P下了如下定义:“P2P系统由若干互联协作的计算机构成,且至少具有如下特征之一的系统依存于边缘化(非中央式服务器)设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益;系统中成员同时扮演服务器与客户端的角色;系统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体。”而Intel将P2P技术定义为“通过系统间的直接交换达成计算机资源与信息的共享”。

在P2P系统中,每一个Peer都是平等的参与者,扮演着服务使用者和服务提供者两个角色。资源的所有权和控制权被分散到网络的每一个节点中。简单来说,P2P技术是一种用于不同用户之间,通过计算机网络“直接”交换数据或者共享服务的技术。它允许每个人直接连接到另外一台计算机上交换文件,而不再登录到服务器下载文件。1.1.2 分类

按开放对象范围的不同,区块链可以分为以下三类。(1)公有区块链(简称公链)

公有区块链:世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。公有区块链是最早且当前应用最广泛的区块链。公链特征是访问门槛低,任何人都可以自由加入和退出;可以保护使用其开放程序的用户,参与者身份隐藏但所有数据默认公开。公链的应用包括比特币、以太坊、超级账本、大多数山寨币以及智能合约,公链的始祖是比特币,其应用已经工业化。(2)联盟/行业区块链(简称联盟链)

联盟区块链又称行业区块链:由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程,其他任何人可以通过该区块链开放的API进行限定查询。联盟链需通过授权才能加入和退出。(3)私有区块链(简称私链)

私有区块链:仅仅使用区块链的总账技术进行记账,公司或个人独享该区块链的写入权限。私链特征是交易速度快、数据不会公开地被拥有网络连接的人获得、交易成本大幅降低甚至为零。目前传统金融巨头都在尝试私有区块链,私链应用产品还在摸索当中。1.1.3 应用与价值

区块链作为一种创新技术,颠覆了商业逻辑和运行规则。区块链分布式账本技术和共识机制,构建了低成本的互信机制,建立了“去中心化”的交易体系,实现了价值的直接传递。这有助于很多行业提高运营效率、实现业务场景的创新。比如在金融领域,区块链技术不仅可以为支付、数字资产交易、智能合约保险等新兴金融商业模式提供底层技术支撑,同时,借助区块链构建低成本的生态信任体系,可大大降低金融交易成本,提高金融运行效率。(1)区块链1.0时代

1.0时代是以比特币为代表的数字货币应用,数字货币的价值由用户协商而得。其应用场景包括支付、流通等货币职能,比特币是区块链1.0的典型应用。中本聪在2008年11月发表了著名论文《比特币:点对点的电子现金系统》,该文提出了一种完全通过点对点技术实现的电子现金系统,它基于密码学原理而不基于信用,使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。

紧接着在2009年一月,他使用自己写出的第一版的软件挖掘出了创始区块,其包含着一句不可被修改的语句:“The Times 03/Jan/2009Chancellor on brink of second bailout for banks(2009年1月3日,财政大臣正站在第二轮救助银行业的边缘)”,正式开启了比特币乃至区块链的时代。(2)区块链2.0时代

2.0时代是数字货币与智能合约相结合,对金融领域更广泛的场景和流程进行优化的应用。区块链2.0在数字货币的基础上加入了智能合约功能,智能合约算法可以利用程序算法代替人执行合同,通过转让来创建不同资产单元的价值,使区块链从货币体系扩展到股权、债券乃至金融合约的交易和执行等。区块链2.0在货币市场去中心化后,对整体市场完成了去中心化,区块链技术的去中心化账本功能可以被用来注册、确认、转移各种不同类型的资产及合约。所有的金融交易都可以被改造成在区块链上使用,包括股票、私募股权、众筹、债券、对冲基金和所有类型的金融衍生品如期货、期权等。(3)区块链3.0时代

3.0时代是超越货币和金融范围的泛行业去中心化应用,特别是在医疗、政府、科学、文化和艺术等领域的应用。3.0时代的区块链将彻底超越金融领域的应用,向社会生活各方面扩展,延伸到包括医疗、身份认证、公证、仲裁、审计、邮件、签证等社会治理领域。1.2 区块链相关技术简介1.2.1 底层通信技术

区块链底层通信一般采用P2P通信。P2P技术使得网络上的沟通变得很容易、很直接,并且把对中间服务器的依赖减少到最小。P2P技术改变了“内容”所在的位置,使其从“中心”走向“边缘”。也就是说它改变了互联网现在以集中式的网站为中心的状态,资源不保存在服务器上,而保存在所有用户的PC机上。P2P技术使得其不再是被动的客户端,而成为具有服务器和客户端双重特征的设备。

P2P不是一项全新的技术,而是一个新的概念和应用。TCP/IP是现代互联网整体架构的基础,但在TCP/IP中并没有客户端和服务器的概念,所有的设备都是通信中平等的一端。只是由于网络带宽及计算机处理能力等的限制,才使得我们在沟通中出现了很多的中间环节,例如电子邮件系统中必须存在邮件服务器。现在,廉价的计算能力、网络通信能力、PC的存储能力强有力地推动了技术的迅速发展。

P2P技术有如下的特点。

非中心化:网络中的资源和服务分散在所有节点上,信息的传输和服务的实现都直接在节点之间进行,无需中间环节和服务器的介入,避免了可能的瓶颈。P2P非中心化的基本特点,带来了其在可扩展性、健壮性等方面的优势。

可扩展性:在P2P网络中,随着用户的加入,不仅服务的需求增加了,系统整体的资源和服务能力也在同步地扩充,始终能比较容易地满足用户的需要。理论上其可扩展性几乎可以认为是无限的。例如,在传统的通过FTP的文件下载方式中,当下载用户增加之后,下载速度会变得越来越慢,然而P2P网络却正好相反,加入的用户越多,P2P网络中提供的资源就越多,下载的速度反而越快。

健壮性:P2P架构天生具有耐攻击、高容错的优点。P2P网络通常都是以自组织的方式建立起来的,并允许节点自由地加入和离开。P2P网络一般在部分节点失效时能够自动调整整体拓扑,保持其他节点的连通性。

高性价比:性能优势是P2P被广泛关注的一个重要原因。随着硬件技术的发展,个人计算机的计算和存储能力以及网络带宽等性能依照摩尔定理高速增长。采用P2P架构可以有效地利用互联网中散布的大量普通节点,将计算任务或存储资料分布到所有节点上。利用其中闲置的计算能力或存储空间,达到高性能计算和海量存储的目的。目前,P2P在这方面的应用多在学术研究方面,一旦技术成熟,能够在工业领域推广,则可以为许多企业节省购买大型服务器的成本。

隐私保护:在P2P网络中,由于信息的传输分散在各节点之间进行而无需经过某个集中环节,用户的隐私信息被窃听和泄漏的可能性将大大缩小。此外,目前解决Internet隐私问题主要采用中继转发的技术方法,从而将通信的参与者隐藏在众多的网络实体之中。在传统的一些匿名通信系统中,实现这一机制依赖于某些中继服务器节点。而在P2P中,所有参与者都可以提供中继转发的功能,因而大大提高了匿名通讯的灵活性和可靠性,能够为用户提供更好的隐私保护。

负载均衡:P2P网络环境下由于每个节点既是服务器又是客户机,减少了对传统C/S结构服务器计算能力、存储能力的要求,同时因为资源分布在多个节点,更好地实现了整个网络的负载均衡。1.2.2 共识技术

共识机制是指在一个时间段内对事物的前后顺序达成共识的一种算法。共识机制是区块链的灵魂,它维系着区块链世界的正常运转。常用的共识机制包括三种。

工作量证明机制(Proof of Work,PoW),主要形式是猜数字,谁能最快猜出这个唯一数字,谁就能做信息公示人。

权益证明机制(Proof of Stake,PoS),类似股权凭证和投票系统,因此也叫“股权证明算法”,由持有最多(token)的人来公示最终信息。

拜占庭共识算法(Practical Byzantine Fault Tolerance,PBFT),它以计算为基础,没有代币奖励,由链上所有人参与投票,少于(N-1)/3个节点反对时就获得公示信息的权利。

达成共识需要50%以上的节点同意,篡改数据需要极大的成本,或者无法完成(节点数量非常多)。共识机制确保了信息的唯一性,数据不可被篡改。利用这一点区块链技术可被广泛应用于智能型资产管理,如知识产权保护、化合约,域名管理保证合约不被篡改,可应用于社会中的积分管理等领域等。1.2.3 智能合约

智能合约的理念可以追溯到1994年,几乎与互联网同时出现。曾经为比特币打下基础,从而备受赞誉的密码学家尼克萨博首次提出了“智能合约”(smart contract)这一术语,他对于智能合约的定义是:“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。”

从本质上讲,这些智能合约的工作原理类似于其他计算机程序的if-then语句。智能合约只是以这种方式与真实世界的资产进行交互。当一个预先编好的条件被触发时,智能合约便执行相应的合同条款。

这里的“智能”,在英语中对应的单词是“smart”,但不等同于人工智能(Artificial Intelligence,AI)。Smart代表的意思是聪明的、能够灵活多变的,但还没有能够达到“人工智能”这样的级别。所以有些人仅仅从中文字面上理解,认为必须要达到“人工智能”才能算是智能合约,其实就和“智能手机”一样,这里的“智能”仅仅是指可以灵活定义和操作。1.2.4 加密与签名

区块链中通常使用非对称加密算法,指的就是存在一对数学相关的密钥,使用其中一个密钥进行加密的数据信息,只有使用另一个密钥才能对该信息进行解密。在这对密钥中,对外公开的密钥叫作公钥,不公开的密钥就叫作私钥。打个比方来说,公钥就像银行的账户,私钥就像是该账户的密码或者账户所有者的签名。区块链上的有效交易有一个用于交易发起方私钥签名有效的数字签名,而该交易的签名可以通过使用交易发起方的公钥进行验证。公钥可以通过算法从私钥中计算得出,但私钥却不能从公钥中推出。

数字签名就是在信息后面加上另一段内容,作为发送者的证明并且证明信息没有被篡改。一般是发送者将信息用哈希算法处理得出一个哈希值,然后用私钥对该哈希值进行加密,得出一个签名。然后发送者再将信息和签名一起发送给接收者。接收者使用发送者的公钥对签名进行解密,还原出哈希值,再通过哈希算法来验证信息的哈希值和解密签名还原出来的哈希值是否一致,从而可以鉴定信息是否来自发送者或验证信息是否被篡改。1.2.5 匿名保护

匿名保护分为通信匿名保护和交易匿名保护。

通信匿名保护主要是对交易主体的网络地址进行隐藏,以防止将网络地址与钱包地址相关联。基本技术思路为在请求者与被请求者之间加入代理,这个代理可以是一个节点,也可以是多个节点组成的多跳网络。这里重点介绍一下Tor网络。作为知名的匿名网络,Tor一直是一些喜欢匿名上网,或关注网络隐私人士的最爱。截至2016年5月,已有超过100万用户使用Tor访问Facebook,包括通过Tor浏览器、通过Facebook的Onion站点登录等。而在2015年6月时,通过Tor来访问Facebook的用户数量仅为52.5万。Tor网络是一种覆盖网络,每个洋葱路由器(onionrouter,OR)作为一个没有任何特权的用户层正常程序运行,与其他所有节点维持一个TLS链接。每个用户运行自己的洋葱代理程序:获取目录、建立路径、处理连接。这些代理接受TCP数据流,并且在同一条线路上复用它们。每个洋葱路由器维护一个长期的验证密钥和短期的洋葱密钥。验证密钥来签署TLS的证书,签署OR的描述符(包含了当前节点的keys、地址、带宽、退出策略等),还被目录服务器用来签署目录。洋葱密钥则用来解码用户发送来的请求,以便建立一条通路的同时协商临时的密钥。TLS协议还在通讯的OR之间使用了短期的连接密钥,周期性独立变化,来减少密钥泄漏的影响。

交易匿名保护是不让除交易双方之外的人能够查询到本笔交易,是对交易信息的保护。此处有两个概念,无关联性(Unlinkability)和不可追踪性(Untraceablility)。无关联性是指对于任何两笔外部交易,不能证明将其发送给同一个人,不可追踪性是指对于每个内部交易,所有可能的发件人从概率上是相等的。无关联性和不可追踪性是完全匿名电子现金模型必须满足的属性,这两个属性可通过一次密钥(One-time Secret Key)和环签名(Ring Signature)技术实现。同时,设计并实现严格的零知识证明(Zero-knowledge Proof)模型,可进一步增强交易匿名性。1.3 DAG区块链1.3.1 起源

DAG最初出现是为了解决区块链的效率问题。比特币的效率一直比较低,基于工作量证明共识下的出块机制是一个原因,由于链式的存储结构,整个网络中同时只能有一条链,导致出块无法并发执行。针对此问题,Nxt社区提出改变区块的链式存储结构,变成区块DAG。在区块打包时间不变的情况下,网络中可以并行打包N个区块,网络中的交易就可以容纳N倍。但此种方式仍停留在类似侧链的解决思路,不同的链存储不同类型的交易,这样降低出现双花的可能,在之后某个节点需要合并的时候,几个分支再归并到一个区块。

换一种思路,上述方案都属于有区块的情况,无论是在比特币还是以太坊中,我们都会提到出块速度这样的概念,比特币每十分钟出一个块,6个出块确认需要一个小时,以太坊好很多,但是出块速度也要十几秒。能否舍弃区块的概念呢?2015年社区提出DAGCoin的概念,把区块和交易融合到了一起。回想下比特币网络中区块和交易的概念,很多笔交易先打包到区块中,区块和区块之间通过PreHash来维护全网的交易顺序。而DAGCoin的思路是让每一笔交易直接参与维护全网的交易顺序。这样交易被发起后直接跳过打包区块的阶段,直接融入全网,如此达到无区块效果,且连打包交易出块的时间都省去了。如前所述,DAG最初跟区块链的结合就是为了解决效率问题,现在不用打包确认,交易发起后直接进入确认网络,理论上效率自然会提高很多。1.3.2 DAG区块链与单链技术的对比1.单链技术的几个问题

效率问题:传统区块链技术基于区块,比特币的效率一直比较低,由于BlockChain链式的存储结构,整个网络同时只能有一条单链,基于PoW共识机制出块无法并发执行。

确定性问题:比特币和以太坊存在51%算力攻击问题,基于PoW共识的最大问题隐患,就是没有一个确定的不可更改的最终状态;如果某群体控制51%算力,并发起攻击,比特币体系一定会崩溃;考虑到现实世界中的矿工集团,以及正在快速发展量子计算机的逆天算力,这种危险现实中会存在。

中心化问题:基于区块的PoW共识中,矿工一方面可以形成集中化的矿场集团,另一方面,获得打包交易权的矿工拥有巨大权力,可以选择哪些交易进入区块,哪些交易不被处理,甚至可以只打包符合自己利益的交易,这样的风险目前已经是事实存在。

能耗问题:由于传统区块链基于PoW算力工作量证明,达成共识机制,比特币的挖矿能耗已经与阿根廷整个国家的耗电量持平,IMF和多国政府对虚拟货币挖矿能源消耗持批评态度。Digiconomist数据表明:全球挖矿业务总计,每年产生约2.9亿吨碳排放。2.DAG区块链的与单链的区别

单元:区块链组成单元是Block(区块),DAG组成单元是TX(交易)。

拓扑:区块链是由Block区块组成的单链,只能按出块时间同步依次写入,类似于单核单线程CPU;DAG是由交易单元组成的网络,可以异步并发写入交易,类似于多核多线程CPU。

粒度:区块链每个区块单元记录多个用户的多笔交易,DAG每个单元记录单个用户交易。1.3.3 DAG区块链的优势与价值

DAG区块链与传统区块链工作机制的不同之处在于,后者需要矿工完成工作量证明(PoW)来执行每一笔交易,而DAG区块链能摆脱区块链的限制来完成这样的操作。不同的是,在DAG区块链中一笔交易接着另外一笔,这意味着一笔交易能够对下一笔交易提供证明,由此一直排序下去。这些交易之间的连接就是DAG,就像区块通过哈希值来向整条区块链提供它们的名字一样。

在传统块链式区块链中,每笔交易都要花费不少时间,而对于DAG区块链来说,交易时间将变得微不足道。由于每笔交易都与下一笔交易相连,且矿工被排除在外,交易时长会随着越来越多用户加入系统而缩短。

在DAG系统中,剔除矿工的设置能够避免像区块链系统中某一个矿池集合全网50%算力的威胁,与双重攻击的隐忧。没有了区块链中的工作量证明共识机制,DAG的交易指令能够极快地扩散通知至全网,大部分双重支付的攻击尝试将会被系统捕捉到并立即拒绝执行。

和以太坊相比,DAG网络虽然不具备智能合约强制执行的特性,但它能为用户提供一个相对简单、清晰易辨的架构,以太坊的系统则要复杂许多。这不仅使得用户能更容易去理解DAG区块链上的虚拟货币什么时候以及怎样进行支付,而非依靠着一个满是程序员和合约的世界。从这个角度来看,可以把DAG网络看成是一个智能合约缺席执行者和旁观者的版本。

如果DAG区块链能得到更为广泛的应用,它在几乎每个级别都能显露出比传统区块链更优的特性。在目前区块链系统中,随着交易时长这样的问题显现出来,DAG区块链势必将受到越来越广泛的关注。1.4 本章小结

本章作为DAG区块链基础,主要讲述了区块链的基本概念及相关技术简介,为后续深入论述DAG区块链进行铺垫。第2章DAG区块链通信机制

区块链技术目前正在经历前所未有的变革,基于DAG数据结构的全新区块链技术相对于传统区块链技术的优势正在显现。从底层网络角度来看,所有的区块链都是由相互连接的多种类型的节点构成的通信网络。为了便于读者更加深入地了解新型DAG区块链的通信机制,本章将首先介绍计算机网络的基本概念和技术,然后分别剖析IOTA、Byteball以及InterValue的通信机制的相关技术。在通信机制的介绍方面,本章不求面面俱到,而是重点分析各项目的特色和优势。2.1 计算机网络的基本概念和技术

为便于理解区块链项目中网络节点的组织和通信模式。本节将介绍计算机通信网络中的部分重要概念和基本技术方法,主要内容包括计算机网络体系结构、P2P对等网络、网络安全技术。2.1.1 计算机网络体系结构

计算机网络体系结构(architecture)是计算机网络的一种抽象的、层次化的功能模型。这种模型具体是指计算机网络的分层、各层协议和层间接口的集合,也就是网络及其部件所对应完成的功能的精确定义。它是设计计算机网络系统软件的依据,只有全球网络行业都执行这些协议,才能使全世界的计算机实现互连互通。1.计算机网络体系结构的形成

1977年,国际标准化组织(International Standards Organization,ISO)成立了专门组织,制定了开放系统互连参考模型(OSI/RM),即通常所称的七层协议模型(简称OSI),这是以分层的思想制定的计算机网络协议和标准。所谓开放就是任何厂家的产品,只要遵守OSI标准,就能够互连互通。所以,OSI的出台为推进全球计算机网络互连和标准化做出了巨大的贡献。

20世纪80年代以前,全球的主要计算机厂商大都支持OSI,但在其发展过程中却遇到了TCP/IP的强烈挑战。这是因为早在20世纪60年代美苏对抗的冷战时期,美国出于自身安全的考虑,就开始研制一种可使异构机型互连互通的、类似渔网那样的切不断的网络。1969年美国国防部建立了世界上第一个分组交换网APANET,1983年TCP/IP成为APANET的标准协议,在20世纪90年代初期已经覆盖了全球很多国家。TCP/IP经过不断的发展与完善,逐步成为计算机网络的事实上的标准或称为工业标准。2.TCP/IP的体系结构

TCP/IP即传输控制协议(Transmission Control Protocol,TCP)和网际协议(Internet Protocol,IP)。TCP/IP包括许多协议,所以称为协议簇。它有一个TCP/IP开放论坛,负责对TCP/IP进行修改,后来又成立了因特网工程任务组(Internet Engineering Task Force,IETF),以开放与自由变革的精神进行工作,不受政府与任何人的限制,任何人都可以把自己的协议成果提出作为认证请求(Request For Comment,RFC),这种RFC会得到许多人的测试,只有确认正确可靠的协议才能最终获得认可而成为因特网的协议。RFC的存在为因特网协议的发展和完善做出了杰出的贡献。

图2-1所示为TCP/IP的分层结构。TCP/IP本身只有三层,即应用层、传输层、网络层,名义上还有一个网络接口层,但网络接口层没有定义具体的协议,而是利用了OSI的物理层、链路层和其他可供利用的协议。下面分别对应用层、传输层和网络层进行概括性的介绍。(1)应用层

TCP/TP的应用层包含了OSI的上三层的功能,既能识别用户进程的性质以满足服务需求,又能提供表示层的语义上的信息交换和转换功能。在应用层中主要包含以下协议:

·简单消息传送协议(Simple Message Transfer Protocol,SMTP);

·文件传输协议(File Transport Protocol,FTP);

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载