开发团队目前正在构建新一代共识协议体系下的Kaspa,即从 Phantom DAG 升级为 DAG Knight ,那么升级后有哪些进步?
为了方便书写,我们使用 pd 协议简称 Phantom DAG,使用 dk 协议简称 DAG Knight 协议。
当然,读者可能更了解“幽灵协议”,即 GHOSTDAG,它是 pd 协议的贪心演绎形式。
前情提要,目前我们尚未完全翻译 Phantom DAG,若有疏漏,还请指点。
自适应Anticone集合大小设置(下面简称为参数k)
什么是Anticone集合?
图中黄色块就是所谓的Anticone集,对于H来说
如图所示,H 的 Anticone 集合的意义是显然的,DAG 算法的难点就在于让每个块与它对应的 Anticone 集合达成共识。
pd协议需要硬编码一个重要参数 k,简单说,参数 k 是决定交易确认速度,网络安全性的重要参数,事实上,k 是每个区块的Anticone集所允许的大小上限。例如,假设 k=3,那么每个块的Anticone集不能多于三个元素。
当 k=0,读者便能得到一条单链,即Nakamoto协议所规定那样。
当前所有DAG算法都是根据最坏延迟来设置一个保守的 k 值,但 dk协议完成了一件伟大的事 — — 允许协议自主根据延迟(包括网络和客户端)调整参数k。
这意味着,在高响应网络中,dk协议不受参数k的约束,速度最大化。至于在低响应网络中,dk协议也能维持客观的速度。
区块Markovian性质
pd协议的区块具有无后效性,这是马尔科夫链的性质之一,而dk协议的巧妙算法赋予区块完整的马尔科夫链性质。
简单说,攻击者需要面对新的状态,即新加入的块,如果试图掌控区块链,攻击者很快就会发现之前所做的努力和之前的状态已经不再重要,也不会对当前状态产生影响。
这意味着,攻击的唯一机会是在区块创建的间隙发动51%算力攻击,我们认为这个条件及其苛刻,攻击者几乎不可能做到。
dk协议满足可拓展性、安全性、自稳定性、自适应性
pd协议不满足自适应性要求,而dk协议满足。
可拓展性与安全性不再重复,读者可参考DAG KNIGHT协议是如何解决虚拟货币“三难困境”的?。
即使遭受51%算力攻击,dk协议也能自我修复并稳定下来,这是其他Pow协议做不到的因此它是自稳定的。
另一方面,dk协议的威胁函数收敛取决于最近延迟而非历史延迟,因此它是自适应的。
dk协议算法收敛速度更快
两个算法收敛速度对比
由于Dt ≤ Dmax,我们可以看出,在 Visible attack 情况下,dk协议优于pd协议。
在 No visible attack 情况下,dk协议相对于 pd协议多了一个尾项——(Dtλ)²(当然,仍有 Dt ≤ Dmax),考虑到 (Dtλ)² 不会很大,对整体结构几乎没有影响,我们仍然可以说在此情况下 dk协议是要优于 pd协议的。