贡献证明——OSS影响力的衡量和排名
您可能听说过工作量证明和权益证明,但是贡献证明是什么?新颖的排名算法是tea Protocol的创新解决方案,用于识别和评估所有开源软件的影响并向注册的OSS项目分配奖励。贡献证明旨在使 OSS 开发人员能够捕获他们创造的价值。
tea正在带头开发贡献证明,以建立一个去中心化的技术框架,奖励有影响力的 OSS 项目,甚至是那些位于技术堆栈基础的项目。继续阅读以深入了解贡献证明,以及它如何评估您的 OSS 贡献的影响并驱动tea Protocol奖励分配系统。
什么是贡献证明?
贡献证明是一种由tea设计的算法,根据每个开源软件项目在 OSS 生态系统中的影响力和价值,不断评估和评分。tea的算法受到 Google PageRank 的启发,旨在通过将开源软件建模为有向图,准确量化每个 OSS 项目随时间的影响。
贡献证明实现了Tea Protocol 的几个重要目标:
随着时间的推移,根据项目在软件生态系统中的定位和利用情况,量化 OSS 项目的影响;
为每个项目分配一个动态分数——称为项目的teaRank;和
根据teaRank向注册项目分配TEA代币奖励。
贡献证明排名算法旨在使远离应用层的基础软件受益——这些软件往往是最关键的,但对公众来说最不可见,吸引的支持也最少。贡献证明扩展了奖励机制,以确保软件项目的所有 OSS 组件都因其贡献而获得奖励。此外,开源软件还面临着一系列独特的垃圾邮件挑战。贡献证明可以识别并隔离垃圾邮件软件,以确保只有有影响力的项目才能获得公平的奖励。
什么是茶等级?
teaRank 是 OSS 项目对软件生态系统影响的衡量标准。teaRank 用于完成几个重要的功能:
量化每个 OSS 项目对软件生态系统的影响
确定每个项目从Tea Protocol接收 TEA 代币的资格
项目的 teaRank 是tea Protocol 中最显着的功能之一。贡献证明为受支持的包管理器中包含的每个开源软件项目分配一个 teaRank,无论它是否已在tea中注册。
贡献证明的 5 个关键设计要素
贡献证明是一种公平、公正且防垃圾邮件的影响衡量算法。让我们通过探索贡献证明的关键设计特征来更深入地了解它。
1. 贡献证明分数影响
贡献证明通过将开源软件包、其版本及其依赖项建模为图中的节点和边来衡量项目影响。该算法使用概率分布为节点分配分数——teaRank 分数,它表示随机导航到特定节点的可能性。
贡献证明使用各种输入和反垃圾邮件机制来准确衡量软件项目的影响。为了输出 teaRank 分数,算法可能会考虑软件项目的以下方面:
项目影响力,使用项目的受抚养人数量作为代理
项目随时间的影响,使用项目的年龄作为代理
2. 贡献证明衡量累积影响
贡献证明评估 OSS 生态系统中每个项目的影响如何随时间变化——这种分析表明哪些 OSS 项目始终如一地提供实质性价值。为了衡量这一点,它将开源图分成不同的时间段,或 delta (δ)。
对于每个时间段,算法使用之前时间段的信息计算每个项目的 teaRank,以告知当前时间段的 teaRank 计算。这提供了项目重要性的细致且长期的历史记录,并且在确定其影响时纳入了软件项目的所有版本。
贡献证明用于分析的 δ 时间段的数量是一个重要的设计选择。使用太少的 δ 区间可能无法量化 OSS 项目的全部影响,而使用太多的区间会显着抑制新建立的项目。使用过多的 δ 间隔也会造成计算负担,因为需要tea Protocol 重建整个开源图 δ 次才能生成 teaRank。
3. 贡献证明对抗树和宽度攻击
贡献证明基于两个主要框架(树攻击和宽度攻击)进行建模,以抵御垃圾邮件。采用这种方法来打击垃圾邮件是有效的,因为开源软件的垃圾邮件技术经常涉及劫持现有软件项目或创建包含恶意代码的复杂依赖网络。
让我们检查一下树和宽度攻击:
树攻击:想象一下软件依赖者的金字塔。恶意行为者创建一长串依赖项目,人为地夸大链中每个项目的重要性,旨在为每个软件依赖项不公平地产生奖励。
宽度攻击:想象一个被许多依赖项目包围的单个软件项目。恶意行为者创建大量虚假依赖者,人为地夸大中心项目的影响力。
贡献证明通过量化软件项目跟踪到没有依赖项的项目的最长依赖路径(称为树限制)来部分对抗树攻击。该算法部分通过计算软件项目的宽度限制或其软件依赖项的总数来防御宽度攻击。贡献证明在 δ 时间间隔内持续监控树和宽度限制,以识别(并可能标记为垃圾邮件)软件项目在 OSS 生态系统中的位置的任何突然变化。
贡献证明还通过使用高级符号 Kappa 或 κ 来防御树攻击,以遏制开源软件项目的影响。κ 是自我影响力的衡量标准,源自贡献证明对自我边的使用——从节点(OSS 项目)到自身的边。Kappa 的值范围为 0 到 1。
让我们来看看 κ 最重要的特征:
限制从软件项目到其依赖项的等级流动
旨在通过遏制技术堆栈深处软件项目的影响,以平衡的方式分配价值
将不同项目之间的边权重归一化为 1−κ 之和,限制任何单个项目影响另一个项目排名的程度
4. 贡献证明通过影响测量平衡影响节流
贡献证明算法结合了 δ 和 κ 来输出公平且准确的 teaRank 分数,尽管过度依赖一个指标或另一个指标可能会产生不需要的结果。贡献证明旨在平衡影响力限制 (κ) 与基于时间的影响测量 (δ),以同时实现两个目标:
公平地代表每个 OSS 项目随着时间的推移所产生的影响;和
为新的、可能具有颠覆性的项目创造一个受欢迎的环境。
为 κ 分配过多的计算权限可能会使奖励的分配严重偏向已建立的开源软件项目,而过度依赖 δ 可能会因为不利于刚刚兴起的 OSS 项目而扼杀创新。贡献证明算法经过校准以避免这些陷阱,同时以资源高效的方式运行。
δ 和 κ 的初始值是通过进行大量数据分析来定义的,但可以进行调整。从tea的测试网阶段开始, tea开发人员将密切监控 teaRank 的性能,并可能建议对 teaDAO 的 δ 或 κ 进行调整。
5. 贡献证明使用阈值和限制
贡献证明结合使用阈值和限制来进一步增强其对垃圾邮件的抵抗力。该算法的阈值和限制机制主要围绕项目 teaRank 分数。
teaRank 分数阈值: tea协议使用贡献证明来计算和分配 teaRank 奖励,仅分配给 TeaRank 分数高于治理定义阈值的协议注册 OSS 项目。
teaRank 分数限制:贡献证明应用边权重并使用自身边来确定软件项目可以获得的 teaRank 分数的上限。
在tea协议中注册的软件项目受益于贡献证明对阈值和限制的使用,这确保了 TEA 代币仅在具有重大影响的 OSS 项目之间公平分配。teaRank 分数阈值可以阻止垃圾邮件发送者,而 teaRank 分数限制则限制了垃圾邮件项目获得不应有的奖励的能力。使用阈值和限制也有助于垃圾邮件检测。
贡献证明旨在将 teaRank 分数阈值设置为精确的水平,消除向恶意行为者分配代币奖励,同时最大限度地减少 teaRank 分数低于该阈值的合法、有影响力的包的实例。该算法旨在将 teaRank 分数限制设置到一个水平,同时奖励长期存在的、有影响力的 OSS 项目,并欢迎重要的新项目加入 OSS 生态系统。
贡献证明是 OSS 的 Google PageRank
贡献证明以 Google PageRank 算法的设计为基础,创建适合 OSS 需求的排名算法。在将 Google PageRank与开源软件的贡献证明进行比较之前,让我们先了解一下有关Google PageRank的更多信息:
Google PageRank 是一种概率分布算法,可为图表(互联网)中的节点(网页)分配分数
PageRank 分数表示通过随机导航图形(互联网)到达特定节点(网页)的可能性
Google PageRank 根据每个节点(网页)的边(链接)的数量和质量来量化其影响
PageRank 算法随着时间的推移进行了修改,以更好地识别网络拓扑并识别网页之间的欺诈链接,从而减轻各种垃圾邮件攻击。这对互联网用户来说是件好事,尽管 PageRank 用来打击垃圾邮件的精确策略在应用于 OSS 时效果较差。
贡献证明通过使用 κ 和 δ 修改了 Google PageRank 算法,以最好地满足 OSS 生态系统的独特需求,从而确保有影响力的项目得到公平的奖励,并大规模识别和解决垃圾邮件项目。
贡献证明的未来
贡献证明旨在通过解决如何衡量和奖励 OSS 影响来提高软件供应链的可持续性。虽然贡献证明最初是集中建立的,以确保适当的垃圾邮件防护和公平价值归属,但贡献证明的开发和维护将逐步分散。
贡献证明使用的影响指标也将随着时间的推移进行校准,以进行更细致的评估。该算法的未来版本可能会包含更多不同类型的贡献和依赖性,同时解决代码和非代码因素。垃圾邮件检测和抵抗仍将是算法设计的中心焦点。
贡献证明不仅仅是一种算法,它还代表了更加公平和社区驱动的 OSS 格局的愿景。贡献证明的不断完善旨在让所有人受益,从个人开发者到整个软件生态系统。