Kaspa(KAS)
Kaspa 是一种工作量证明(PoW)加密货币,基于 GhostDAG/PHANTOM 协议。与传统区块链不同, GhostDAG 不会使并行创建的区块成为孤块,而是允许它们共存并在共识中对其排序。Kaspa 区块链实际上是一个区块有向无环图(blockDAG)。这种对中本聪共识的泛化允许在保持非常高的区块生成速率(目前每秒一个区块,目标是每秒 10 个, 梦想是每秒 100 个)和由网络延迟主导的极小确认时间的同时进行安全操作[1]。
Kaspa 的实现包含许多很酷的功能, 例如用于查询 DAG 拓扑的可达性、区块数据修剪 (近期有区块头修剪的计划)、 简单支付验证(SPV)证明,以及稍后的子网支持,这将使未来第二层解决方案的实现更加容易。
发展历程
Kaspa 由研发公司 DAGLabs 构想,通过 PolyChain 投资。Kaspa 是一个社区项目,完全开源,没有中央治理,也没有商业模式。
创始人是 Yonatan Sompolinsky,他是哈佛大学 MEV 研究团队的计算机科学博士后。
Kaspa 的核心开发者和贡献者包括量子密码学博士 Shai Wyborski、计算机科学硕士 Michael Sutton、计算机科学本科生 Mike Zak、密码学研究员 Elichai Turkel 和开发者 Ori Newman——他们都为网络的实现和稳定做出了巨大贡献。此外还有来自世界各地的数十名贡献者,您可以在 Kaspa 的 GitHub 上看到他们——而这些只是那些为 Kaspa 核心做出贡献的人,同时还有各种 Kaspa 相关项目的生态系统开发者,从钱包和浏览器,到游戏、实用工具和基于 Kaspa 的扩展。
技术细节
中本聪共识引擎
中本聪共识,是第一个基于工作量证明机制的共识引擎,至今仍在保障比特币网络的安全,以及许多其他工作量证明加密货币,包括但不限于莱特币、比特币现金和 ZCash 等知名加密货币。
中本聪共识的安全特性已在数学上得到证明,在理论上被认为是合理的,并且在过去 14 年中在比特币及其变体中经过了实践的检验,没有发生任何重大事件。操纵区块链的界限既简单又可验证;任何希望利用区块链的行为者必须控制网络上 50%以上的哈希率(即计算能力)。随着网络的发展,这被认为越来越不可行。
BlockDAG
“DAG”这个术语代表有向无环图,这是一个数学概念,指的是没有有向环的有向图。它由顶点和边组成,每条边都从一个顶点指向另一个顶点。在分布式账本的背景下,BlockDag 是一种 DAG,其顶点是区块,边是区块对其前驱的引用。区块有向无环图试图解决线性区块链和中本聪共识的问题。这些问题包括缺乏可扩展性、自私挖矿和孤块。与传统区块链不同,区块有向无环图可以引用多个前驱,而不是单个前驱,并且区块引用图的所有顶点,而不仅仅是最长链的顶点。通过引用图的所有顶点,区块有向无环图纳入了来自不同分支的区块,而不仅仅是引用最长链。
因此,在区块有向无环图中,没有区块被浪费或成为孤块,所有区块都被发布到账本上,并且没有挖矿能力被浪费。由于这种结构,允许更频繁地生成区块,促进更多交易,并实现几乎即时的确认。这一切是如何实现的?通过偏离最长链共识方法,并利用 Kaspa 的新型 GhostDAG(Phantom 2.0)共识机制。
由于最大揭示原则,区块有向无环图优于单一或并行区块链。当您挖掘一个区块,并共享您所知道的区块的所有顶点时,您最大限度地发送了信息。
GhostDAG
GhostDAG 是 Kaspa 目前使用的共识机制,是对 PHANTOM 共识的改进。PHANTOM 需要解决一个 NP 难题,本身并不适合实际应用。相反,我们利用 PHANTOM 背后的直觉设计了一种贪婪算法 GHOSTDAG,它可以更有效地实现。我们正式证明 GHOSTDAG 是安全的,也就是说,随着时间的推移,其区块的排序变得越来越难以逆转。GHOSTDAG 的主要成就可以总结如下:给定两个在某个时间点发布并嵌入到区块有向无环图中的交易 tx1、tx2,随着时间的推移,GHOSTDAG 中 tx1 和 tx2 之间的顺序发生变化的概率会随着时间呈指数级下降,即使在相对于网络传播延迟不可忽略的高区块生成率下,假设大部分计算能力由诚实节点持有[2]。
与 PHANTOM 类似,GHOSTDAG 协议选择一个 k 簇,这会导致区块的着色为蓝色(所选簇中的区块)和红色(簇外的区块)。然而,GHOSTDAG 不是寻找最大的 k 簇,而是使用贪婪算法找到一个 k 簇。该算法通过首先继承最佳顶点 Bmax(即过去具有最大蓝色集的顶点)的蓝色集来构建 DAG 的蓝色集,然后以保持 k 簇属性的方式将 Bmax 过去之外的区块添加到蓝色集中。 请注意,这种贪婪继承规则诱导了一条链:链的最后一个区块是 G 的选定顶点 Bmax;链中的下一个区块是 DAG 过去(Bmax)的选定顶点;依此类推直到创世区块。我们将这条链表示为 Chn(G) =(创世区块 = Chn0(G),Chn1(G),...,Chnh(G))。在 GHOSTDAG 中,所有区块的最终顺序遵循与着色过程类似的路径:我们首先继承 Bmax 在过去(Bmax)区块上的顺序来对区块有向无环图进行排序,然后将 Bmax 本身添加到顺序中,最后根据某种拓扑排序添加过去(Bmax)之外的区块。因此,本质上,随着着色过程,区块的顺序变得稳健。
Pruning
Pruning 是 Kaspa 中采用的一种方法,用于减小区块有向无环图的大小。这防止节点必须保存大量的区块有向无环图数据的记录。由于 Pruning 机制,Kaspa 节点每个去中心化机器只需要存储约 3 天的先前历史。这使得我们的网络可以创建许多节点,而无需大量的存储需求。
Kaspa 采用的 Pruning 机制对于我们的区块有向无环图和 GhostDAG 共识方法是独特的。目标是设计一种 Pruning 算法,能够抵抗 49%攻击者的 Pruning 攻击。我们的设计方法采用了最终性和无效规则的装置。
- 最终性是指不允许在某个固定深度以下进行重组的做法,未最终确定的区块可能不会被修剪。另一方面,一般来说,最终确定的区块也不一定可以被修剪,因为它们包含的数据可能需要用于计算传入区块的未花费交易输出(UTXO)集。
- 无效规则:第一条规则:如果一个区块无效,那么指向它的任何区块也无效。由于我们丢弃这样的区块,我们不能信任指向它们的区块,因为数据不可用。第二条规则:如果在区块 B 的过去中有一个区块 D 在 B 的反锥中,并且没有合规化区块,那么区块 B 无效。第三条规则:有界合并,或限制合并区块集的大小,使得定义为 B 的过去中既不是 B 的选定父区块也不在 B 的选定父区块的过去中的区块集受到固定参数 L 的约束。
参考链接
- ↑ About Kaspa - Kaspa
- ↑ Features - Kaspa