

简单介绍什么是区块图
DAG是英文Directed Acyclic Graph的缩写。中文叫有向无环图,特点是任意一条边有方向,且不存在环路。DAG是一个有向图,它具有拓扑顺序,顶点的序列使得每个边在序列中都是由前到后定向的。

在区块链中,每一个块都是链接到前一个块,一直延伸到Genesis (创世块)。经常会有些小的分支(side-chains)出现,但是最终会被剪掉。在区块链技术中,有向无环图意味着块与块之间的链接会更加自由,一个块可以有不止一个父辈(parent block),父辈还可以在不同的区块高度 (height)。
在Soteria项目中,我们称BlockDAG为区块图。
区块图长什么样子?
下面是一个很活跃的区块图,Genesis Block就是最下方没有颜色的块,tips是最上面的块(没有任何其他的块链接“到”这个块)。在这个例子中,不同miner产生的块被染成不同的颜色,以便直观的看到每一个miner对网络的贡献。

Soteria的测试网(testnet)有一个对外开放的soterdash application,可以显示测试网的实时状况。比如:http://134.209.56.88:5072/dag?min=959&max=975
区块图(blockDAG)是中本聪共识的延续,在原有的特性基础之上,提供了更强的包容性+安全性+可扩展性。
包容性:
在区块图的设计理念中,所有有效的区块都会被接受,被连接到blockDAG。对比起区块链,区块图会接受所有有效的区块,而区块链只保留最长的链,所有侧链上的区块都会被抛弃。
在工程实现上,通过测试网实测,我们引入了以下限制,以提高系统的效率。
通过接受更多的区块到整个网络,会有更多的人参与到网络建设,比如mining。比较小的miner也可以从网络中获取利益,区块图还可以使用一种比现有SHA256(bitcoin use it) 更公平的POW算法,具体算法我们将在以后的章节中讲解。
既然我们会接受所有有效的区块,一个区块的合法性就变得非常重要,尤其是从整个网络的视角来看,以防止恶意攻击(比如双花)。在这里,我们用到了Phantom 和 Greedy Phantom.
请看下一章,Phantom and Greedy Phantom.