mt logoMyToken
总市值:
0%
恐慌指数:
0%
币种:--
平台 --
ETH Gas:--
EN
USD
APP
Ap Store QR Code

Scan Download

Tangle 分布式账本的另类存在

收藏
分享

Tangle 是一种分布式账本组织方式,但不能叫区块链,因为既没有区块,也没有链。取而代之的是 DAG 和交易,而交易就是 DAG 图(后面成为 tangle 网络)中的各个顶点。当需要加入新的交易到 Tangle 中时,就需要选择认可 Tangle 中已有的两个交易,具体的方式就是该交易要有有向边指向认可的交易。

没有被认可的交易叫 tips,如图一中 节点 8 和 9 都是 tips,新加入的交易就需要从这些 tips 中间选择两个来认可。所以新交易如何选择 tips 是 tangle 的关键。图一:tangle 网络 核心参数 — 交易总个数:20;交易速率:2;alpha(标记交易 weight 的重要性):0.05

如何选择交易来认可

整体的思路是通过随机遍历来为新加入的交易选择需要其认可的交易。但 Uniform Random 和 Unweighted Random Walk 算法都解决不了 lazy tips 的问题。

lazy tips 是指那些新加入的交易只选择认可 tangle 网络中非常老的交易,但不选择最新的 tips。拒绝 lazy tips 加入网络的原因是:1)lazy tips 对网络没有任何贡献(tangle 的原则是新加入的交易需要认可等待被认可的交易);2)把 lazy tips 加入网络会带来长距离攻击安全风险。


图二 lazy tips 示例(节点14)

所以交易选择算法的核心是要把 lazy tips 排查在外。tangle 现有算法是 Weighted Random Walk,核心思想是为每个在网络中的交易引入 weight 和 cumulative weight。交易自身 weight 是一个全网统一的固定值(浮动值同样会给网络带来安全风险),目前设置为 1。cumulative weight 是交易自身的 weight 加上 tangle 中直接或者间接认可该交易的交易的 weight,主要作用用来标记交易在网络中的重要性,cumulative weight 越高遍历的时候被选择的概率越大,从而解决了 lazy tips 问题。

但这里还是加入了一定的随机性,主要原因是如果只是按 cumulative weight 遍历,不加随机性的话,tangle 中就会产生大量没被认可的交易,交易确认度会比较低。所以为了在惩罚 lazy tips 和保证交易确认率之间找到平衡点,tangle 引入了 alpha 参数来调节。

如何最终确认交易

首先需要保证在交易初始验证环节是有效的,具体做法是新加入的交易在选中即将认可的交易时,会从 genesis 交易开始对所有交易进行回放,然后验证当前交易是否合法。如果交易不合法就不能认可该交易。新加入的交易都不认可非法交易,这类交易就会一直是 tips 状态不会被确认。

但交易被新加入的交易认可之后也不能代表最终确认,确认程度取决于该交易在 tangle 网络中新的交易直接或者间接对其的认可程度。tangle 引入了 confirmation confidence 来量化交易被确认的程度,可以理解为运行100次遍历算法,其中有多少次是接受该交易的。confirmation confidence 为 100% 就可以最终确认交易。

如何防止 double-spending

Tangle 中 double-spending 的原理如下图所示,解决的思路类似 PoS 中解决长距离攻击,也是通过引入 checkpoint 机制。tangle 的做法是在网络比较小的时候,通过引入 coordinator,社区每两分钟发布一条 milestone 交易,被 milestone 认可的交易可以认为是 confirmation confidence 100%。在网络中的有效交易到达一定安全数量级之后,可以去掉 coordinator 机制了。tangle 特性分析

基于 tangle 的 IOTA 项目定位是:machine-to-machine 的微支付场景。所以在 tangle 中没有专门的矿工,而是由用户在发布交易时做轻量的 PoW,同时发布交易也没有手续费,更多的是网络参与者之间的互助行为。

tangle 的安全假设是:网络中诚实交易代表的 PoW 要大于攻击者所能拥有的算力,本质上还是一种 PoW;但这个安全假设其实是比较弱的,对参与者不具备很强的约束性,同时也没有任何经济激励。

虽然 tangle 现在可以达到 500-800 的 tps,大部分交易的确认时间也相对较短,但如何保证每个参与者都按协议规定的 MCMC 算法来选择交易,以及如何保证诚实交易会持续在网络中提交来保证安全性是值得深入探讨的问题。

最后推荐一个 IOTA tangle 在线模拟器,可以调节核心参数和选择算法来更深入理解 tangle: https://public-krwdbaytsx.now.sh/

参考文献

《The Tangle》:IOTA whitepaper
https://blog.iota.org/the-tangle-an-illustrated-introduction-4d5eae6fe8d4
https://public-krwdbaytsx.now.sh/


免责声明:本文版权归原作者所有,不代表MyToken(www.mytokencap.com)观点和立场;如有关于内容、版权等问题,请与我们联系。