通过Gitcoin数据实现去中心化的抗女巫攻击

时间:2022.9.7

原文:https://mirror.xyz/jmcook.eth/Ltq1Hwpk2qX4PEyFfTe4r1XQCDuKVTCzbwvpDjgHJTI

几乎所有非DeFi项目,从DAO到游戏,从空投到 Gitcoin 等项目对公共产品的支持,似乎都依赖于某种身份的概念来做出决策。然而,这些系统往往会受到攻击者的攻击,这些攻击者试图放大他们的投票权、操纵游戏、获取空投,甚至将公共产品的资金转移至他们自己的项目。这些攻击依赖于数千个看似独立的身份的冒名顶替,实际上是被协调管理的,称为 Sybil(女巫) 攻击,它们在 Web3 的许多领域都是一个不断增长的威胁。这是因为可互换代币可以轻易地分散在多个钱包中,这种策略可以使一个人分裂成多个虚拟人物,每个人物都有一些投票权。如果创建一个新身份的成本低于这个新身份可以带来的回报,用户就会被激励分裂自己。发动 Sybil 攻击的能力破坏了许多项目理想情况下实施的一个人一票模型。

由于 Sybil 攻击是 Web3 中的一个大问题,许多项目已经独立开发了自己的 Sybil 防御系统。这导致了有用的方法多样性,但缺乏许多可组合、可转移的工具。这导致许多开发者花费了大量时间和金钱重新发明轮子,或者错过了在项目之间协同发展的机会。组合性和开放性是 Web3 的核心原则,但 Sybil 防御到目前为止仍然奇怪地孤立。Web3 本地人拥有分散的基础设施、工具和开源的道德要求来解决这个问题。明确利用 Web3 本地社区的力量一起构建开放、可组合的工具,可以带来一个更健康、更抵御 Sybil 的行业。

在开放的环境中一起构建以抵御恶意行为者是Web3的自然状态!

Gitcoin 的 Sybil 问题

Gitcoin 是一个公共产品资金筹集平台,目前采用二次方投票机制,从匹配池中提供资金来增加对个别项目的捐赠。二次方投票机制旨在将更多的匹配池资金投入到更受欢迎的项目中。受欢迎程度是以投票支持某个项目的个人数量来衡量,而不是简单地以代币投票的数量来衡量。Sybil 攻击者因此可以将其捐款分散到多个地址,以增加 Gitcoin 分配从匹配池中的资金数量。这样的效果是扭曲了 Gitcoin 对每个项目的社区偏好,导致资金被错误地分配到看似不太受欢迎的项目中。

在最近的资助轮中,高达 26%(> 16k 账户)的用户总人口被估计为 Sybil,远高于以前的轮次。此外,空投 farming 也有了显著的增长,即鼓励个人创建钱包并捐赠给项目,以期望获得代币空投的回报。无论 Sybil 攻击者是针对匹配池还是未来的空投,他们的目标都是通过欺骗资助轮来过度加权某个项目,从而最大化投资回报。

防御 Sybil 攻击有助于重新调整资本分配和真实人类投票的分配。对于 Gitcoin 来说,Sybil 防御问题可归结为:

“检测到正在操纵二次方资金机制的用户,并最小化他们对资本分配的影响。”

当前的 Sybil 防御措施

Gitcoin 目前采用了两种独立开发的 Sybil 防御策略。一种是人工智能算法识别为 Sybil 的账户的回溯性“压制”。另一种是一种主动系统,通过护照印记收集人性证据,并使用这些证据来权衡个人对资本分配的影响力。

护照(Passport)项目是开源的,由 Gitcoin 开发成为任何项目都可以采用的协议。除了护照之外,我们还有兴趣与广泛社区分享我们的机器学习、数据清理、数据集和其他方法来发现和对抗 Sybil 攻击。

我们需要建立什么?

Gitcoin Passport和回溯性 Sybil 防御需要成为可互操作、协同和适用于小型独立项目的工具。随着 Gitcoin 实施 Grants 2.0(旨在使个人拥有对自己项目的管理权),Sybil 防御进化成为一套可轻松部署和配置的工具集合,对于个人项目至关重要。

对于 Sybil 防御,回溯性压制和主动评分是两种已经确立的方法,它们解决了两个基本思路:寻找不良行为信号(相似的钱包名称、捐赠模式等)和寻找良好行为信号(护照印记、高成本的伪造、个人身份评分等)。这些概念需要成为构建可组合的防 Sybil 工具的基础。我们能否开发轻量级工具,将这些线索集成到 Sybil 检测中,以一种可配置的方式,适用于 Gitcoin 内外的许多项目?我们现在可以采取哪些步骤,以尽快实现这一目标?

利用现有数据

存储

区块链的主要特征之一是当前和历史数据的不可变和公开账本。对于以太坊,每个完整节点都存储了至少 128 个块的全局状态,可以通过查询归档节点获取更早的块。大多数执行客户端 Geth 目前需要超过 650GB 的免费磁盘空间,并以默认缓存配置每周增长约 14GB。归档节点需要多个 TB 的磁盘空间,而且无法修剪。这是大多数数据下游用户的阻碍因素,特别是因为直接搜索链上数据可能会很慢、计算成本高且不直观。

除了链上数据之外,Gitcoin 自己的离线数据资源中还可以找到有关个别资助和用户的丰富信息。这包括有关个别项目的元数据、特定操作的包含条件和条件、项目信息、Gitcoin 护照分数、Sybil 防御分数等。

显然,有一个庞大的数据库,其中一些存储在链上,一些存储在链下,可以在 Sybil 防御服务中加以利用。然而,瓶颈目前在于,这些数据需要进行大量的清理、组织和整理,以使数据科学家可以从中提取有用的 Sybil 信号。这是企业数据工程中众所周知的重要痛点。此外,数据目前主要集中在 Gitcoin 控制之下,这不仅违反 Gitcoin 的核心理念,而且限制了社区参与数据挖掘的能力。

致力于建立数据和智能共享基础设施的努力可以很好地解决这些痛点,并最大化用户可以从可用数据中提取的价值。在以下部分中,我们将研究从这些数据资源中提取最大价值所需的基础设施要求,以及如何将其用于开发可组合的 Sybil 防御。

基础设施

存储

让数据更易于向社区提供的系统的基础设施是存储。使用云提供商是易用但昂贵和集中化的选择。更便宜的解决方案是在Gitcoin内部建立和维护硬件存储,并将数据提供给社区,但这只是将集中化的权力转移到Gitcoin。去中心化的选择是利用去中心化数据平台,如IPFS、Arweave、Filecoin、BitTorrent等。这些平台通常需要用户“租用”本地存储的一部分,有时会以某种形式的代币化奖励作为回报。

但不仅仅是存储原始数据。更有用的是分发经过清理的数据,这些数据可以被迅速分析或潜在地直接用作机器学习模型的特征,从Feature Store等平台中获取灵感。这种基础设施将使开放数据更易于分享,特别是与组合计算选项相结合。

计算

让数据可用是很好的,但如果从数据中提取价值的工具也是可组合的,社区就可以真正升级。对于链上数据,数据探索的基础工具是客户端追踪器和网络分析工具,但这些工具需要专业的技术知识才能有效使用,并且可能需要计算量很大。

值得庆幸的是,有一些第三方服务,如TheGraph,可以将区块链数据整理成类似SQL的数据库,可以比区块链本身更容易和更便宜地查询。这些数据可以包括个人账户和合约之间的交互(例如在DAO中投票、委托、质押)以及数字资产的所有权(例如POAP、NFT、ENS、治理代币),这些可以用来建立Web3交互的拓扑结构和Web3“指纹”,这可能会揭示Sybil/非Sybil用户的诊断信号。这是一个丰富的数据资源,可以通过激励子图构建者社区来提供,他们为区块链中的有用数据生成快速访问的数据库,并将其向下游提供。Dune Analytics是链上数据的另一个提供者-它用于生成区块链指标的用户友好型仪表板,可以包括复杂查询。这些仪表板和底层数据可以轻松地在数据分析师之间共享,或直接提供给最终用户。Grants 2.0的发布将包括发布子图或一组子图,以暴露重要的链上数据-这是迈向社区动力的Sybil防御的重要一步。

Jupyter Notebooks是为提供利用离线数据的用户界面应用程序的优秀选择。这些是可共享、可执行的Notebooks,包含(通常)在浏览器中的运行时环境中的Python代码-这是一种非常易于访问的方式,共享模型代码和分析。笔记本可以由分析师社区编写和共享,允许Gitcoin数据的易于编程访问。Notebooks可以被修改并用作不同组之间的代码积木。Jupyter Notebooks也非常适合在云中运行,使访问大型计算资源相对简单。这对于需要批量处理和大型计算资源的机器学习和AI管道非常重要,例如SAD模型使用的管道。

为了最大化堆栈的功能,数据存储基础设施应该公开一个API,可以在Jupyter Notebooks或类似可共享的代码或Web应用程序中轻松调用,其中包括去中心化的前端。这可能会导致一个可组合的数据科学堆栈,其中包括链上和链下数据,并建立一个分析师和开发者社区,可以不断改进和适应彼此的工作。扩展这个想法,人们可以想象未来会有pip install sybil-defense

最终,这项工作需要进入Gitcoin Passport,以便从社区数据科学活动到Sybil防御有清晰的管道。链上数据中有许多有用的Sybil信号,但这些信号如何转化为可用于Sybil防御的明确标志并不立即清楚。需要一些中间件,将社区领导的数据分析的见解转化为Gitcoin Passport印章。这个中间件需要评估社区数据分析的证据,支持某个信号是Sybil行为的诊断信号,并将其转化为印章或对用户的信任分数产生影响。

激励机制

一个特殊的挑战是启动一个活跃的社区。激励用户的策略包括品牌推广、营销和参与的经济/非经济奖励。用户还应该受到潜在结果的激励,这些结果对项目所有者有价值 - 具体来说,是一个可组合的反Sybil工具集的改进用户体验和灵活性,以将它们定制应用于自己的项目。奖励可以以Ethereum上的自定义代币的形式出现,或者可以使用现有的代币,例如$GTC进行启动。非经济奖励可以包括POAPNFT,然后可以成为Gitcoin Passport印章或用户Gitcoin Passport信任分数的特性。还可以有其他的激励计划,如数据科学竞赛、赏金和专门的拨款轮次、排行榜和其他形式的游戏化。

结果

这种基础设施的关注的最终目标是建立最有效和可访问的轨道,以免费提供我们的数据。然后,我们可以鼓励社区通过新颖的方式来使用它,以服务于Sybil防御。这可能包括从数据中生成模型和见解,并将它们作为更多创新的构建块返回给社区,特别是将数据见解转化为Gitcoin Passport印章。

这样做的潜在具体结果是一个更可组合和更高性能的Sybil防御工具集。在Grants 2.0的背景下,项目负责人负责使用一组软件工具管理自己的拨款轮次,他们还可以负责自己的Sybil防御。数据和从数据中分析和做出决策的工具将可用和可访问,以便它们可以根据个人项目的需求进行调整,并更好地满足其特定需求,而不是像当前拨款系统中一样拥有一个单一的Sybil防御策略。总的来说,结果是赋予社区建立自己定制防御的权力。

接下来该怎么做?

通过开放数据赋予社区权力可能对Gitcoin来说是一个重要的突破,因为它将Sybil防御的参与扩大到整个社区。整个社区变得负责保护自己和他们的同伴,而不是一个专门的个人团队负责保护整个空间。

实现这个目标的第一步是定义一个路线图,建立一个开放数据基础设施,使Gitcoin数据公开可用(这将成为启动Grants 2.0的一个自然部分),并且至关重要的是,尽可能地让更多人可以访问和使用它。这意味着审计可用的数据,制定组织和传播计划,创建强大的文档,围绕数据整理和分析开始社区,确定激励结构。

Subscribe to jackygu's blog
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.