XDAG技术详解1-概要

作者: 老五笔记 | 来源:发表于2019-10-17 18:07 被阅读0次

xdag是什么

根据官网介绍,xdag是一种依据DAG模型实现的加密货币。

xdag的目的

在比特币模式的区块链系统中,为了解决一致性问题,强制要求任一时刻只能有单个算力胜出块有效,导致系统吞吐量放在了一个单点上,其他并行跑的算力结点工作浪费了。

虽然这个单点可以变化,也可以增强,但是单点始终存在,对一个分布式系统来说,无法并行交易,对吞吐量来说是很致命的。

为了解决这个单点问题,业界提了很多方案,包括增大出块速度、加大块长、DAG模型。xdag是DAG模型中比较有特色的一个项目。

xdag项目有很多值得学习的地方,但是这个项目文档写的比较简单,很多特色概念都只是简单的讲了几句,很少有资料描述的比较清楚。本文的目的,就是把我自己学习中了解到的知识都整理出来,促进大家更快更好的了解xdag。

xdag模型

在看xdag模型之前,我们先看一个传统的交易模型。

image-20190922163313118.png

传统的交易模型非常好理解,一个transaction是从accout1向account2的一次转账。

在传统交易模型中,account与transacion是两个不同的概念,account是资金容器,transaction是转账流水。xdag创新性的把这两个概念合二为一,transaction就是account,或者说transaction的id可以当做account的id用。这样就导致上面的模型变成了下面的样子。

image-20190922164539238.png

这个模型简称为交易即账户

  1. 每一个transanction在不同场景下有不同的角色。

    tx1和tx2是在tx3之前就存在的。

    在tx3创建的时候,tx1和tx2是account角色。

    在先前生成tx1和tx2的过程中,tx1和tx2本身是transaction角色。

  2. transaction作为account角色时的余额从哪来?这有好几种情况会产生余额,拿tx3举例。

    1. 在tx3生成过程中,如果in的金额比out的金额大,那么in-out留下的金额,会加入到tx3作为account角色下的余额里去。
    2. 在tx3生成后,tx3从此会多了一个account角色,也就是说从此以后,tx3的id可以作为out的目标接收其他交易的转账了,这些转账的金额会加入到tx3作为account角色的余额里去。
    3. 还有一种特殊情况,如果tx3被系统判定为主块(挖矿导致的难度最大块),那么会被系统自动增加一个固定的金额到tx3作为account角色的余额里去。

交易即账户模型,是一个比较难理解的概念,与UTXO模型相同点是,新的交易需要把先前的UTXO交易当做输入,但不同点在于:

  1. 比特币中的账户地址是独立的,与UTXO无关,xdag中直接用了交易块地址当做账户地址。
  2. 比特币的UTXO模型要求,in和out必须相等,xdag要求in大于out+fee,多出来的就属于这个transanction账户。
  3. 比特币中新的交易要用先前的UTXO做输入,但输出用的是账户地址,xdag需要先前的交易账户做输出。

所以在xdag中的,多个交易完成后的模型变成了下面这样:

image-20190922174129001.png

在xdag中,属于自己的交易块地址才是账户地址,归属关系的判断与秘钥有关。用户可以有多个秘钥,也可以只有一个,不需要因为需要多个地址,就生成多个秘钥。

相关文章

  • XDAG技术详解1-概要

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

  • XDAG技术详解4-块类型

    在xdag网络协议中,block分类两种大的类型,普通块和伪块。 伪块是一种command类型的块,主要目的是用来...

  • XDAG技术详解3-主链

    根据定义,主链是链难度最大的的链(chain),所以,如何计算链难度(chain-diff)是关键。 链难度(ch...

  • XDAG技术详解7-挖矿POW

    难度与算力 难度根据block hash计算所得:(power(2, 128)-1)/(little-endian...

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

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

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

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

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

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

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

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

  • XDAG技术详解5-块格式(普通块)

    xdag的每个块定长512个字节,分为固定的16个field,每个field为32字节。 具体到每个field的细...

  • XDAG技术详解6-块格式(伪块)

    伪块是一些命令请求和响应,格式上相对随意,每一个都有点细节上的不同,但总体风格类似。 说明: 第一个8字节:仍然是...

网友评论

    本文标题:XDAG技术详解1-概要

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