区块链的什么和DAG的由来

想知道更多区块链技术,请百度【链客区块链技术问答社区】

区块链系统中,区块是由区块头连接,从而形成链状的数据存储结构,随着发展,对链的结构提出新的模式。当然也有人认为这不是区块链技术了,不过个人认为还是算是,那么就简单的说明DAG,理解不当请指正。

图(Graph)是由定点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),这个表示里G就表示一个图,V是G的顶点的集合,E是G中边的集合。数据结构中线性表和树一般是一对一或者一对多的关系,图就理解为多对多关系。
通讯链路的符号来标记节点间的互联,图是多对多的关系,在节点互联的时候加一个方向,那就分为有向图和无向图。关于树的数据结构算法分析比较 复杂,包括遍历,最小生成树、最短路径等。DAG图称为有向无环图:树、DAG图、有向图。

任意一个节点出发,根据方向无法回到原节点的图就叫做有向无环图,区块链中说区块 通过区块头链接,各个区块的长链,并且新区块顺序产生下去。现在由些分布式系统通过DAG的存储模式来存储数据,且形成数据间的关联。

去一个去中心化分布式系统中,要求数据防篡改,那数据存储通过DAG图的形式,允许添加新记录作一个新单元,但需要支付一定的费用。随着新单元的添加,每个单元,包括散列值,直接或间接的接收越来越多后来单元的确认。

这里把单元也理解为父母单元,根据图的特性,我们不能要求单独的父子关系,只能沿着父子关系推导下去,发现多个分叉,并引用先前单元的时候,多个单元就已经出现了融合,然后就会发现DAG链是通过最长链来确认,通过每个节点多分叉的时候,因为是图的特性,分叉后又会快速融合。

每个新单元确认先前单元,之后再确认先前单元,步步推导,这种模式中,一旦改变一个,导致hash值破坏,一旦一个单元被广播到网络中,并且用户开始在它上面构建单元,重新编辑这个单元所要的二次修改就和雪球一样增长。

这种DAG模式通过单元发布后,累计确认,没有矿工的概念。网络中各个节点互相之间互助,添加新的单元,确认新的单元。
之前比特币系统中提到防止双重支付的点对点数字货币系统,在DAG模式中通过下面方式来防止双重支付:
1.如果节点恶意发布一样顺序的两个单元,不管这两个单元输出中有没有一样的字符按照全网总顺序处理,后续单元无效。
2.如果用户按照协议,还是尝试同一输出两次排序后生成单元,那么就按照本身顺序,晚生成单元无效。
3.两个一样输出的单元,没有先后顺序,那么在整个DAG系统中,建立总顺序后,在总顺序中出现早的确认,晚的无效。
4.设置一个总顺序的定义:相同地址发布超过一个单元,那么要求每个后续单元包含所有先前单元。这就理解,你要发布一组单元,你先给这些单元排好顺序。
5.节点尝试使用两个一样的输出的单元的时候,那么这两个单元中一个包含另一个单元的时候,并且有一个先后顺序,那么直接拒绝后面的单元。

最后说下为什么有人认为DAG不是区块链,又有人认为是,因为在DAG中有一个主链的概念。
人们将他们的新单元连接到略小的最近单元上,意味着DAG仅在一个方向上增长,所有的单元要么将直接位于这条我们称为主链的链上,要么沿用DAG的边缘从相对少量的跃点到达,就像一条连接着侧面道路的公路。
好了,今天就讲到这里,也许由错误,希望大家指出。

猜你喜欢

转载自blog.csdn.net/weixin_44172023/article/details/85774331