• 微课视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
微课江湖
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 微课视频
  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链
您的位置:首页 > 网络安全 >区块链 > DAG与区块链简介(从零开始学区块链 184)

DAG与区块链简介(从零开始学区块链 184)

作者:区块链大师 字体:[增加 减小] 来源:互联网 时间:2018-11-03

区块链大师向大家分享了DAG与区块链简介(从零开始学区块链 184),其中包含DAG,区块链简介,学区块链等知识点,遇到此问题的同学们可以参考下
最近有人问DAG相关的东西,今天就来说说关于DAG的话题,DAG是一个数据结构名词,有项目用了这种复杂的结构来存储交易数据,本文只能粗略探讨一下

如果你还记得大学开设的《数据结构》科目,DAG出现在那本书的最后一章“图论”中,图应该是最复杂的数据结构了,所以当时我们学校并没有教最后一章,只是让感兴趣的人自学,由于后来的工作中最多用到B+树,对于图的学习只是停留在表面,只是记得存储图最好的方式是采用“邻接多重表”这种结构。

什么是DAG

图和树一样,是一种数据结构,在计算机科学中往往为了避免复杂的数据结构影响开发和数学建模会将结构进行简化或者约束,比如“树”这种结构其实根据定义也是很复杂的,当时真正用的时候“二叉树”用的最广泛,二叉树就是规定一个根只能有两个叶子。

所以在图论中,为了简化这种结构,分为有向图和无向图两大类,在无向图中进一步进行约束形成了DAG(有向无环图),所谓无环是指它是由集合的顶点和有向边构成,每条边连接一个顶点到另一个,这样,在一些顶点v开始,沿着有序的边,最终循环回再次到V是不可能的,其实图是树的一种泛化,真正在用的时候一般会通过深度优先或者广度优先规则把图拆成“森林”就是多颗“树”,而DAG图由于规则的定义更容易拆成一颗“树”,这也就是为什么图有很多种,而DAG应用最为广泛的原因。

上图从左到右分别是二叉树、DAG图、和普通有向图的图例,可以在最右侧的图明显看到存在一个“环”,此图可以非常容易的理解什么叫DAG图了。


DAG与区块链

目前采用DAG作为存储结构的代表项目有dagcoin、Byteball、Iota,我看过前两个的白皮书,dagcoin和byteball白皮书在DAG部分完全一致看其中一个即可,很多人说采用了DAG已经不属于区块链了,因为传统区块链采用“链”式结构,其实传统区块链中存在多条链的分支更类似一棵树,而最终确认的是最长链,也就是在树的结构中找到一条合法的链而已。


而采用了DAG结构的项目,为了避免双花问题,还是有所谓的”主链“概念,其实就是经过见证人认定的最短路径了,所以我认为DAG还是应该归类到区块链范畴,其本质没有大的改变,只是采用了DAG结构,效率更好,对于没有”异议“的交易,可以采用DAG进行打包,Byteball将其定义为”球“,图论中有详细的描述,也是为了减少复杂度,如下图:


相比传统链式结构,采用DAG面临的双花问题会非常复杂,根据Byteball的描述,采用了见证人主链概念,维持一条公认的主链作为凭证,而其他分支只要不和主链冲突都可以视为有效交易,我个人认为采用DAG并不能减少目前区块链面临的存储空间问题,当然DAG可以提升效率,由于其数据结构非常复杂,对编码要求更高,安全性有待观察,对于算力攻击问题,我有个担忧,希望与DAG研究深入的人交流,就是传统链式结构,你必须保持持续的算力优势才能更改交易,否则最终长链可以将短期算力优势形成的链废掉,但是采用DAG分块的方式,你只需要在一定时间内的算力保持优先形成一个DAG块,那么是不是今后所有的交易都会继承这个错误呢?

区块链最让人感兴趣的地方就是不断的创新和敢于利用新技术,当然就数据结构理论从70年代以来基本上没有什么变化,只是传统的软件项目很少利用到这些理论,计算机图形学是我看到的利用复杂数据结构最多的地方,而且商业项目能用到B+树已经是极限了,而区块链的发展让人惊喜,理论联系实际的好榜样!

最后说一句,区块链技术终究是计算机技术的一种,没有必要将其神话,所有的结构和实现都可以在《数据结构》本科教材中找到,但是要灵活运用在业务场景中,需要取舍和经过实践检验,另外我会持续关注DAG结构在新型项目的应用,有机会和大家进一步交流


来源:区块链大师   微信号 :DACMaster

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • DAG与区块链简介(从零开始学区块链 184)

相关文章

  • 2018-11-03区块链简介-什么是私有链
  • 2018-11-03数字资产钱包有哪些类型?平时使用需要注意哪些事项?
  • 2018-11-03公有链私有链的合作基点可能近在咫尺
  • 2018-11-03DECENT网络播种机制说明
  • 2018-11-03parity多签名合约漏洞分析
  • 2018-11-03Cobo钱包使用教程(双语版)
  • 2018-11-03基于哈希函数的签名
  • 2018-11-03精确解析的EOS.io与Block.one
  • 2018-11-03Kraken比特币交易所图文教程——注册与认证
  • 2018-11-03Keepkey硬件钱包使用教程

文章分类

  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链

最近更新的内容

    • 中本聪与比特币
    • 比特币现金(BCH)就是比特币
    • 如何审核智能合约
    • 关于 IPFS 星际文件系统介绍
    • imToken EOS 钱包映射教程
    • 以太坊到底是什么?有何价值?
    • 用Python从零开始创建区块链
    • 分布式存储中的元数据管理(从零开始学区块链 )
    • BU(Bitcoin Unlimited )融合石墨烯区块传播技术
    • 区块链数字货币新手如何辨别传销币?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2015-2018 All Rights Reserved. 微课江湖 版权所有