美文网首页
XDAG: A new DAG-based cryptocurr

XDAG: A new DAG-based cryptocurr

作者: 爱写作的harry | 来源:发表于2019-04-25 12:56 被阅读0次

导读

XDAG是第一个真正意义上可以挖矿的DAG项目,在2018年1月主网上线。XDAG虽然是一个DAG项目,但它的交易模型用的是和比特币类似的UTXO,而项目的发展也和比特币的发展有几分相似之处。

文章内容整理自XDAG的中国Maintainer Frozen(谢锐)在RebaseTalk《新一代公链技术前瞻DAG专题》的分享。

XDAG的传奇故事

XDAG是俄罗斯一个大学的数学教授在2017年9月开始实施的,他的网名叫Daniel。因为觉得当前的加密货币项目自己不是非常满意,而且他自己在工程和数学方面也有一些积累,所以就想自己做一个加密货币的项目,他选择了DAG,用POW是因为它认为POW代表了区块链的精神,开放并且任何人都可以加入做贡献,Daniel花了3个月的时间做完了这个项目,2017年12月份尝试上线,然后失败了,又花了几天时间,解决问题后在2018年1月再次上线了,这次使得XDAG成功上线。

对于Daniel这个网名,是因为作者当年老来得子,给自己的儿子起了个名字,叫Daniel,然后自己的网名就叫Daniel。

当时大家都在bitcointalk上交流,2018年2月,Daniel把项目开源出来让社区参与贡献,之后大家把项目迁移到了github上,再之后Daniel就完全消失了,完全把项目交给社区去管理。这个经历和当年的中本聪很像。

当前的问题和尝试

各个公链在经过了几年的发展之后,取得了一定的进展,但同时也面临着一些问题,比如POW对于资源的消耗问题,还有tps慢的问题,目前行业也在从各个方面来解决这个问题。


目前尝试的方式包括:

  • Layer 1
    • PoS/DPoS等共识方面的探索
    • Sharding(分片计算)
  • Layer 2
    • Side Chain
    • State Channels
    • Multi Chains
  • DAG

DAG项目介绍

DAG项目中有几个比较有代表性的项目:Nano,IOTA,Byteball,XDAG。

Nano把每一个账户作为一个链,然后通过转账的记录把不同账户的链拼接在一起,然后形成一个DAG的结构,Nano是最早期的一个项目。

IOTA主打的是物联网的概念,在物联网的设备上进行一个简单的POW来确认交易,同时在交易的时候要选择它的父亲节点是谁,形成一个tangle结构,IOTA的主要特点是在选父亲节点上面有自己的规则和算法。

Byteball中有12个节点,每个节点在收到交易的时候在后面加一个ball作为见证,当每一个分支上有7个见证的ball的话,这个分支就会被认为是一个Main Chain,这样就确定了交易的排序。

XDAG是有些不一样的地方,是第一个支持挖矿的DAG(IOTA不算真正的挖矿),同时没有预挖,没有1c0,并且完全是由社区驱动的,没有公司去推动,开发者都是全球各地大家找业余的时间来做,和bitcoin类似。

XDAG详解

XDAG的特点:

  • 支持POW挖矿
  • 去中心化
  • tps高。之前遇到交易风暴的时候,交易量可以达到几千
  • Block = Transaction = Address。在XDAG中提到的块也是一笔交易,后面提到的块也可以作为交易来理解,钱包所生成的地址(Address)也会在网络中生成一笔交易
  • 对区块链技术友好。目前在比特币和以太坊做的一些实验都可以在XDAG上去做,因为创始人自己做过操作系统,所以在设计上也考虑到了这些。
XDAG的网络结构

我们知道DAG中都是有主链的一个概念的,因为DAG中的交易需要一个排序,要不然解决不了双花的问题。XDAG里面的主链,是有一个按照时间的分片,每一个分片中都会对交易进行打包,绿色是主链上的主块,黄色是见证块,蓝色是转账交易,黑色是地址块。

Bitcoin和XDAG的UTXO模型对比

XDAG和Bitcoin类似,也是UTXO的模型,图形可能不太一样,其实本质上是一样的,图中的Block是前面提到的连接块,Tx0,Tx1,Tx2是真正的交易,Block A - D是地址。

区块链的默克尔树

从图中可以看到,区块链中有默克尔树,XDAG中也有类似的结构。

XDAG的默克尔树

上图中绿色的Main Block存的是交易的hash,和默克尔树类似。

XDAG 中POW的计算任务是变化的,矿工把收到的交易加入到自己的hash计算当中,每个节点都会做计算,最终比拼谁的算力最强,然后生成Main Chain的块。

XDAG的POW过程

如何做hash呢,就是把局部的区块/交易都进行hash计算,一层一层的做hash计算,最后填入到新的区块当中(Main Block 2),然后进行sha256的计算,sha256做的事情就是做迭代的计算和混淆。对于结果的发送,只需要发送计算出来的sha256的值,而不需要发送所有的交易,大小只有32byte,这样会非常节省带宽资源,这样的话矿工只需要继续计算sha256,最终发现一个最小的hash,从而得到nonce值,确定主链(Main Chain)上新的主块(Main Block),通过这样的方式形成了主链的结构。

如何解决双花

正常交易

如果A1和A2之间产生交易的话,会有一个新的连接块产生去确认他们之间的交易,连接块的产生来自于矿工。

双花:两笔交易发送给同样的节点

因为用户可以选择自己的交易发送给哪个节点做验证,这里假设如果这两个交易都发送给了同一个节点,第一个被连接块引用的交易就是有效交易,第二个就是无效交易了,通过这样的一种方式来解决简单的双花问题。

双花:两笔交易发送给不同的节点

如果遇到有个用户要作弊,发送了这两个交易给不同的节点的话,这个时候就需要通过POW生成的主块(M1'')来解决这个问题了,从上图中可以看到M1''是通过矿工POW算力竞争而生成的主块,而M1'不是,因为主块优先,这样的话,被M1''间接引用的Tx2就是有效交易了,从而解决了双花问题。

XDAG的高tps

XDAG当中为什么可以做到很高的tps呢?是因为它把DAG拆成了多个局部的小块,所以可以达到类似于分片计算的效果,从而达到一个高的tps。

XDAG目前的状态

钱包

  • 主网2018.1.5上线,目前版本0.3.0
  • 钱包发布了window,linux,mac,android和ios版本
  • rpc在测试中,近期计划发布
  • 有超过10个交易所上线了XDAG的交易

XDAG下一步

Frozen还谈到了具体的XDAG的下一步计划。

XDAG下一步会支持智能合约,对于DAG的话,支持智能合约是一个挑战。不过Frozen目前的团队在智能合约方面已经有了一定的积累,所以谈到对于合约的开发方面,Frozen也是蛮有信心的。

另外,XDAG希望未来支持匿名交易,同时也通过匿名交易来解决DAG中数据过于庞大的问题。

最后,XDAG在未来会做一些hash算法的调整。

如何加入社区做贡献

对于完全由社区驱动的一个项目,目前的贡献者都是自发的利用自己的业余时间去做贡献,所以各个方面的贡献都是欢迎的。你可以传播XDAG,可以去社区讨论提案,也可以给github提issue,还可以做一些多国语言的翻译,如果你是开发者还可以贡献代码。

Frozen分享的视频地址:https://v.qq.com/x/page/o086370xxx4.html

相关文章

  • XDAG: A new DAG-based cryptocurr

    导读 XDAG是第一个真正意义上可以挖矿的DAG项目,在2018年1月主网上线。XDAG虽然是一个DAG项目,但它...

  • XDAG技术详解1-概要

    xdag是什么 根据官网介绍,xdag是一种依据DAG模型实现的加密货币。 xdag的目的 在比特币模式的区块链系...

  • XDAG技术详解0-写作计划

    对xdag项目感兴趣有段时间了,也陆续学习研究了xdag项目的代码和资料,体会颇多。 xdag是个好项目,但是,这...

  • 2019-01-05

    领XDAG了,注册即送,签到也有哦

  • XDAG笔记

    BI_EXTRA 附加块实质上是还未确定的主块候补(不知道理解的对不对) orphan链(孤块池 orphan链1...

  • XDAG技术详解8-文件存储结构

    时间格式 因为xdag的文件存储命名使用了时间戳,需要先描述时间戳的格式。 时间戳xdag用的时间戳是一个64位的...

  • XDAG: PoW + DAG

    https://www.jianshu.com/p/32836b4454b6

  • XDAG技术详解2-基本概念

    Block(块) xdag系统的基本数据结构,固定为512个字节。每个block代表一个transaction,图...

  • 2019-01-10|区块链技术头条

    今日区块链技术头条 1.今晚区块链技术工坊|漫谈区块图技术之XDAG和Conflux 2.Solidity智能合约...

  • XDAG源码解析-1 block.c

    常规方法 block_internal 是xdag区块在内存中的结构形态在文中统一 link为链接 即A的link...

网友评论

      本文标题:XDAG: A new DAG-based cryptocurr

      本文链接:https://www.haomeiwen.com/subject/jnuagqtx.html