AITD,基于DAG的又一次创新:吞吐缓存共识层

区块链常用的是“区块+链”的数据结构,简单来说,所谓的“区块”指的是单位时间内由记账者将交易整体打包,新生区块与上一个区块衔接在一起,形成区块链。

而这种链状结构虽然具备比较简单、快速确认等优点,但也存在固有的顽疾。首当其冲的就是链状结构难以提升吞吐量,所以效率一直很低,而且整个网络中只能存在一条单链,无法并发执行。如果区块过小,势必造成交易的大幅延迟,而如果区块过大,又会造成数据量膨胀,普通节点用户将不堪重负,受到DDos攻击等问题。此外,还存在能耗问题、安全问题等潜在的问题。

DAG(Directed Acyclic Graph,有向无环图)原本是计算机领域的一种常用的数据结构,由于其具备良好的多线程特点,能够将区块链从一维的线状单点写入升级为三维多点并行工作,现在成为区块链世界中越来越重要的发展方向。

AITD Blockchain采用了多层共识方法,即请求网络吞吐时使用DAG,确认时使用链式结构。因为DAG属于异步通讯方式,如果把事务操作进行异步处理,那么就可以显著的增加网络吞吐量。为此AITD设计了DAG的吞吐缓存共识层。

这里解释一下同步&异步通讯。同步通讯意味着客户端和服务强耦合,与同步通讯相反,异步通讯不要求捆绑所有的服务和层,允许存在一定的时间差。

AITD针对现有区块链系统容易出现双花、重放攻击、交易速度慢、Coordinator的引入导致中心化等问题。以流式图计算为基础,设计出的一套新的DAG共识层。

在AITD设计的DAG共识层中,它的每个节点(site)代表一个交易,而有向边则代表交易之间的确认关系。如下图所示,site0表示创世交易(Genesis),理论上讲是100%被确认的交易。在图中,site1表示其中的第一笔交易,被后续的site2,3,4确认。而未被确认的交易我们称之为tip,如site6,就是一个tip。

与链式结构相比,DAG结构的交易速率得到了显著的提升,但随之而来的问题是,如何选择未被确认过的新交易(tip)呢?

一、DAG中的交易共识

目前交易的确认在AITD所设计的DAG共识层中主要有三种方式:

第一种方式:所有tip覆盖到的公共节点是被完全确认的。举一个例子,下图中,tip1引用或间接引用的交易为蓝线条和黄线条覆盖,而tip2引用或间接引用的交易为黄线条覆盖。那么被tip1和tip2共同覆盖

圈主 管理员

热门评论
:
讨论
    阅读剩余条回复 加载中...
没有讨论,您有什么看法?
图片审查中...
编辑答案: 我的回答: 最多上传一张图片和一个附件
x
x
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索