大家好,我是Frozen,今天很有幸和大家一起分享XDAG,感谢计然研究院的邀请!

之前计然研究院多次邀请来做关于XDAG项目技术介绍,一直没有找到合适的时间,今天总算找到合适的时间合适的地点和大家一起分享。

友情提醒!

今晚的分享内容很干,默认诸位已经对区块链相关知识了解较为深入。

下面咱们开始分享。

先介绍下XDAG项目的概要情况,XDAG是一种基于PoW共识算法和DAG技术的加密货币。XDAG项目是在2017年9月份前后由俄罗斯匿名数学家Daniel开始独自开发,2018年1月5日主网正式上线,2018年2月2日XDAG代码移交社区,由社区开始进行开发和维护。项目没有ICO,没有预挖,完全由社区驱动。

目前社区由各国各地区的爱好者组成,社区开发者团队共有17人,分别负责核心代码开发、显卡矿机软件、钱包开发、区块浏览器、矿池脚本工具以及各种小工具开发。

比特币开创了区块链的先河,公认是区块链1.0时代,Ethereum将全球计算机的概念带入现实,被认为是区块链2.0时代,当前的EOS则将blockchain的技术发扬广大,有人认为是区块链3.0时代的开篇。

虽然行业经过多年发展,但是基于blockchain的区块链技术本身也面临诸多问题,并且随着普及范围扩大这些问题也越来越突出。尽管业内众多blockchain开发者都在尝试寻找各种技术手段来解决当前遇到的这些问题,但是从当前技术发展现状来看各种尝试并没有取得突破性进展。

目前遇到的问题主要有以下两个方面

1、blockchain本身的TPS瓶颈限制了区块链技术的性能

2、blockchain较长的确认时间也限制了区块链技术的广泛使用

针对以上两个问题,不管是EOS偏中心化的解决方案,还是目前如火如荼的分片技术、侧链技术都存在一些无法解决的问题。

这一现状间接说明基于blockchain本身再去扩展将面临巨大困难和挑战。

那除了blockchain上再进行扩展是否还有其他的方向可以去突破?答案是有的。

那就是DAG技术!

DAG (Directed Acyclic Graph 有向无环图) 并不是一个刚出现的技术,而是在数学的一个分支—图论中的数学概念,早在1736年被提出,在计算机技术中则是在计算机科学与技术初期就已经存在的一种数据存储结构。从理论上而言DAG结构比单链结构更复杂,但拥有更好的扩展性。

目前业内已经有一些基于DAG数据结构的公链存在,但是每个公链都因为对于DAG技术的理解不同实现路线和适用场景不尽相同。

这是NANO的实现方式,主要思路是每个账户拥有自己的一条链,不同账户之间根据交易记录串联起来,从而形成DAG。

这是IOTA的DAG样子,主要思路是根据交易不同的高度和权重让使用者来确定交易有效性。

这是Hashgraph的DAG样子,主要思路在于利用节点间的修改过的gossip算法传播的交易信息构成时间上的序列,从而构成DAG。

这是Byteball的DAG样子,他的思路在于利用见证人节点向每一个交易后追加见证人单元来增加分支上的权重,从而确定当前DAG中的主链。

而以上的多种DAG实现并没有很好的解决去中心化、高TPS和低确认时间。

与众不同的是XDAG尝试通过从区块链技术底层的数据结构开始重新设计,并采用另外一种DAG构成方式,巧妙的将PoW共识算法和DAG技术相结合,并同时提供了不同节点之间交易并发处理方式,在确保的网络安全性和公平性的前提下提高TPS降低确认时间。

此图展示了XDAG中一个局部的DAG组成。

A 表示钱包地址块,Tx表示交易块,M表示PoW产生的主块,W我将其命名为见证块。在XDAG中一直有个特点,就是区块= 交易= 地址

在XDAG中区块的数据结构如上图中所示,这个数据结构是用来持久化存储数据使用。

块结构通过16个名为xdag_field的结构组成,每个xdag_field都是一个结构体,其中由结构体和联合体组成。

transport_header在传输时用来表示序列号,在接收后处理时用来保存下一个块的地址。

type是一个64位的字段,用来表示一个块中16个field的类型,其中划分成16部分,每部分4bit,也就是半个字节,4位可以表示16种类型,因此type这个字段每4位表示一个field对应的类型。

time是用来表示块产生的时间,采用的格式是1/1024秒,一秒钟在其中表示为2^10。同时在节点间数据交换时作为请求时间范围的起始时间点。

hash是一个24字节的截断哈希值,通常是另一个区块的截断哈希值。

amount是以cheato为单位的数量值,用来记录XDAG数量,cheato是XDAG中的基本单位,1个XDAG包含有2^32个cheato。

end_time 用来表示节点间数据交换时作为请求时间范围的终止时间点。

data 是32字节的哈希值

在XDAG中以上描述的块是完全由每个节点、每个钱包自己独立生成,不会受其他干扰,从而在基础设计上保证了区块处理的独立性,也为后续提到的高TPS打下基础。

此图则展示了在构建DAG时XDAG采用内部块的方式来简化交易状态以及区块余额的处理逻辑。此内部块只在XDAG逻辑处理过程中才会使用到,并不会持久化存储。

这里展示了一个最简单的XDAG转账处理结构。

A表示地址,M表示主块,Tx1 记为A1地址向A2地址进行的一笔转账,W我将其命名为见证块。

上图展示了一个典型的双花检测。

假设A1地址有10个XDAG,A1的钱包被人恶意拷贝了两份,同时发起了两笔转账,一笔Tx1从A1转了5个XDAG到A2地址,另外一笔Tx2从A1转了7个XDAG到A2地址。两笔转账合计12个XDAG,超出了A1地址原有的10个XDAG,是个典型双花。

在XDAG检测的逻辑是在节点同一时间收到Tx1和Tx2时,节点生成的W块会引用Tx1和Tx2,根据稳定的排序规则Tx2会在被W块引用时填充到了顺序编号更小的field中,从而Tx2优先被处理,而Tx1则后处理,从而检验出Tx1的花费是一次双花,从而在内部块中将这个哈希值指向的交易块标记为拒绝状态,而Tx1这个交易块永远记录在DAG中,不会删除。

上图则展示了一个更加复杂的双花检测。

前提条件和上一个一样,假设A1地址有10个XDAG,A1的钱包被人恶意拷贝了两份,同时发起了两笔转账,一笔Tx1从A1转了5个XDAG到A2地址,另外一笔Tx2从A1转了7个XDAG到A2地址。两笔转账合计12个XDAG,超出了A1地址原有的10个XDAG,是个典型双花。但是这次情况有变化,那就是此人恶意采用技术手段将钱包连接到不同的节点上,因此就会产生不同节点之间的双花检测。

接收到Tx1交易的节点此时并不知道Tx2交易的存在,而接收到Tx2交易的节点同样不知道Tx1交易的存在,因此这种情况下就需要节点之间的数据交互才能检测。

此时PoW共识就产生作用了,在XDAG每隔64秒即产生一个主块,通过主块M1’ M1’’比较难度,确定出M1’’的难度更高,因此M1’’引用的块Tx2在排序时优先于M1’引用的Tx1,如此检测出Tx1为双花,从而在内部块中将这个哈希值指向的交易块标记为拒绝状态,而Tx1这个交易块永远记录在DAG中,不会删除。

如图是XDAG更全面的DAG结构,其中为了简单起见将前面几张图里的钱包地址块省略展示。

Node表示不同的节点,M 表示PoW挖到的主块,W标示额外的块,我将其命名为见证块。Tx是交易块。

不同节点分别接收各自的交易块,将交易块拼接到DAG中的行为相互之间耦合度较低,通过节点间的数据交互建立之间的联系,从而能够让不同节点很好地吸收较高的并发来达到高TPS。

同时每64秒通过PoW产生一个主块,让去中心化公链的交易确认时间也大大缩短,一般在1到2分钟即可被确认。

XDAG未来的方向不仅仅是做一个高TPS的去中心化公链,同时也计划带来交易的匿名性和智能合约,让XDAG具有支付属性以外具有更广阔的应用场景。

目前社区开发计划中的Android钱包和iOS钱包已经发布测试版本,在收集社区的反馈,并及时提供更新版本。

轻钱包和全节点钱包还在计划之中。

Golang版本实现已经着手进行基础开发,C++版本也在进行相关基础开发。

Python版本用于教学和入门XDAG开发,目前已经有了Python的矿机实现。

当前XDAG社区急需更多贡献者加入,也急需得到更多人的帮助。

帮助XDAG的方式有分享传播XDAG相关知识、和社区一起讨论各种提议、向社区报告问题、帮助社区做本地化翻译、直接参与XDAG项目开发贡献代码!

感谢所有的曾经帮助过和现在正在帮助XDAG的开发者们,他们有

Daniel, Evgeniy, Frozen, sgaragaghu, trueserve, amazingMan2017, ssyijiu, Solar, Wendy, czslience, rubencm, kbs1

感谢所有的矿工、矿池主和所有其他的贡献者们!

有他们的无私奉献才有XDAG这样一个项目存在!

https://jq.qq.com/?_wv=1027&k=5nOyPQ9 (二维码自动识别)

可以扫码关注微信公众号获取最新XDAG进展

扫码加入开发者QQ群,共同讨论XDAG技术路线。

感谢计然研究提供这样一个同大家交流的机会!

大家有什么问题可以现在提问或微信交流。

Q&A:

Q1: 这个见证块能否细说说,它既不是交易也不是地址吧?

A1: 见证块是由节点生成的,当节点有收到新的块时,这个块并没有连接到DAG中,而是通过节点生成的见证块,将接收到的新块加入到DAG中。

Q2: 看起来xdag里面的排序规则对于确定双花交易特别重要,里面的排序规则有哪些?

A2: 排序规则就比较复杂了。。可能单独得需要一个时间来分享

XDAG: PoW + DAG相关推荐

  1. Conflux伍鸣:用DAG结构提升中本聪共识的吞吐率

    嘉宾简介: Conflux CTO:伍鸣博士 本科毕业于中国科技大学,中科院计算机系统结构博士,曾为微软亚洲研究院(MSRA)系统研究组的高级研究员,研究方向包括分布式事务处理系统.图计算引擎和人工智 ...

  2. 联想基于Apache DolphinScheduler构建统一调度中心的应用实践

    导读 随着业务不断增长以及定时任务类型的多样化,联想内部需要一个统一的调度中心对任务生命周期进行管理.Apache DolphinScheduler 是一个分布式.易扩展的可视化 DAG 工作流任务调 ...

  3. 区块链共识机制分析——论PoW,PoS,DPos和DAG的优缺点

    近期,随着区块链技术在社区中的声音越来越大,业界已经开始从技术角度对区块链进行全方位的解读.作为第一批区块链技术的实现,传统比特币与以太坊在共识机制.存储机制.智能合约机制.跨链通讯机制等领域并没有非 ...

  4. 【超越白皮书3】DAG技术解析与实测

    本报告由火币区块链研究院出品,作者:袁煜明.胡智威.原文地址 相关报告: [超越白皮书2]EOS主网上线前夕的实测分析与技术建议 [超越白皮书1]EOSIO程序实测分析与技术建议 火币区块链应用研究院 ...

  5. 【译】Introduction to Byteball — Part 2: The DAG

    这是关于Byteball的系列文章的第2部分. 第1部分介绍了Byteball的原因 ,所以如果你错过了,先阅读,然后再回到这个. 宁可观看视频,而不要读故事? 然后观看下面的YouTube链接. 如 ...

  6. 【区块链基础知识系列】 第9课 一文诠释什么是DAG

    一.什么是DAG? 有向无环图(Direct Acyclic Graph或DAG)是可以说是近几年区块链项目的技术热点之一.不少业内人士都认为这项技术有可能在根本上解决区块链的扩容问题,因此相关的项目 ...

  7. 以太坊 2.0、分片、DAG、链下状态通道……概述区块链可扩展性的解决方案!

    封面 | CSDN 付费下载于视觉中国 作者 | Rohit Chatterjee 责编 | 徐威龙 出品 | 区块链大本营(blockchain_camp) 事实证明,可扩展性是当今采用区块链技术的 ...

  8. 让POW的共识机制不再成为公链系统吞吐率的瓶颈 | Conflux CTO伍鸣

    Conflux项目的CTO 伍鸣在Odaily星球日报与36Kr集团共同主办的2018 P.O.D New BlockTrend新区势区块链峰会上就<Scaling Nakamoto Conse ...

  9. 关于DAG共识的调研

    内容目录 前言 why DAG ? DAG 是什么 常见共识机制 主链DAG共识 朴素DAG 平行链DAG 问题与挑战 这是自己看的一篇综述,参考里面的分类并对现在的一些DAG共识做的简要理解,后面会 ...

最新文章

  1. SpringBoot+zxing+Vue实现前端请求后台二维码图片
  2. [转]关于java 内存泄露
  3. 前端学习(2877):原生js模块化+绘制弹幕与动画video联动
  4. 转:html id与name区别
  5. 10月25日-10月29日一周宣讲会安排
  6. java调优随记-java对象大小
  7. Android Handler异步通信:深入详解Handler机制源码
  8. c 语言车牌识别系统课题设计,基于图像的车牌识别系统的设计和实现
  9. 解决 手心输入法 导致 Navicat 闪退问题
  10. 阿里巴巴矢量字体转Image图片(建议收藏)
  11. 2022 区块链(GameFi)游戏行业研究报告
  12. Stata数据处理: 面板数据填充和补漏
  13. 将手机、平板变成电脑第二屏
  14. raw data convert and play
  15. Flutter 中神奇的 AbsorbPointer 组件
  16. 企业邮箱哪家好用,常见的企业邮箱品牌测评
  17. string数据库使用和实践第一部分string数据库介绍
  18. 【科普】视频剪辑中的关键帧是什么?
  19. BP神经网络学习笔记
  20. 海关数据:外贸主动营销工具有哪些?

热门文章

  1. Lake Shore—325 型低温温度控制器
  2. TikTok Shop跨境英国市场商品入仓模式更新啦,单多多跨境提醒您应注意以下几点
  3. 15 张令人喷饭的 IT 趣图(第1季)
  4. AD16快速查找器件常用封装
  5. 陇萃堂:CRM系统赋能业务人员以及渠道商,线上线下快速突破和拓展
  6. 猫客页面内组件的动态化方案-Tangram 2.0
  7. 农信银新版系统使用手册-个人网银-配置项(控件类)IE浏览器
  8. 网络改造--光猫更换升级
  9. 强推——乔新亮CTO成长复盘
  10. miracl常用函数手册