这是“纠缠图解”系列文章的第一篇,通过这个系列的文章,你将能够理解IOTA的内在原理。
我们将会以IOTA的白皮书为参考,并添加一些图片来解释一些基本的概念。在这篇文章里,我们将介绍“缠结”,解释它是什么,以及IOTA研究团队是如何用数学方法来研究它的。
首先,我们需要知道计算机领域内的一个概念:有向图。一个有向图有许多顶点(图中的方块)构成,他们彼此通过边(图中的箭头)相连。像下图这样:
缠结,是IOTA里面的数据结构,它是一种特殊的有向图,它用来保存交易数据。每一个交易代表图中的一个顶点。当新的交易加近来的时候,它选择两个以前的交易,并验证他们,同时增加两条边。
在上面的例子中,5号交易验证2号和3号交易。所谓交易,和你想象的差不多,类似于“Alice给了Bob10枚IOTAs”。暂时我们先不用担心验证是什么意思,我们后面将会细说。
我们把未被验证的交易成为tips,在这个例子中,6号交易是一个tip,因为还没有人验证它。每一个近来的交易都需要选择两个tip并加以验证(至少一个)。至于选择哪两个tips来验证是非常重要的,它是IOTA特有的。不过,为了简单起见,我们先用一个最简单的选择策略:随机选择两个可用的tips。即:每个新交易都检查一下当前未被验证的交易,然后随机的选择两个。
在使用随机选择的策略下,缠结是什么样的呢?我们特意做了一个视觉仿真。建议点开这个视觉仿真看一下。
这个仿真随机生产一个缠结,第一个交易(也叫做创世交易)在左边,最近的交易在右边。灰色的方块代表tips。当你把你的鼠标放在一个交易上的时候,所有被它验证的方块都会变成红色,所有验证它的都会变成蓝色。
今天就这么吧。你可以玩玩这个仿真,试试不同的配置,有问题请留言提问。在下篇文章中,我们将会解释交易速率(\lambda),介绍间接验证者、隐式tips这些概念,以及稍微复杂点的tip选择策略:无权中随机漫步