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 攻击。我们的设计方法采用了最终性和无效规则的装置。

  1. 最终性是指不允许在某个固定深度以下进行重组的做法,未最终确定的区块可能不会被修剪。另一方面,一般来说,最终确定的区块也不一定可以被修剪,因为它们包含的数据可能需要用于计算传入区块的未花费交易输出(UTXO)集。
  2. 无效规则:第一条规则:如果一个区块无效,那么指向它的任何区块也无效。由于我们丢弃这样的区块,我们不能信任指向它们的区块,因为数据不可用。第二条规则:如果在区块 B 的过去中有一个区块 D 在 B 的反锥中,并且没有合规化区块,那么区块 B 无效。第三条规则:有界合并,或限制合并区块集的大小,使得定义为 B 的过去中既不是 B 的选定父区块也不在 B 的选定父区块的过去中的区块集受到固定参数 L 的约束。

参考链接[编辑 | 编辑源代码]

  1. About Kaspa - Kaspa
  2. Features - Kaspa