# [TokenMore]币萌投研 -Zkaptcha

By [TokenMore](https://paragraph.com/@tokenmore-2) · 2023-09-04

---

本文数据更新日期：2023/08/24

项目简述
====

Zkaptcha 专注于解决 Web3 中的机器人问题。它为智能合约提供验证码服务，保护其免受机器人攻击。Zkaptcha利用零知识证明技术创建抗女巫攻击的智能合约。大致流程为用户完成验证码，证明是真人，验证者核实，智能合约访问。未来，Zkaptcha 还将推出类似于现有 Web 2 验证码的功能，包括分析鼠标移动等行为。

官网：[https://www.absinthelabs.xyz/](https://www.absinthelabs.xyz/)

推特：[https://twitter.com/zkaptcha](https://twitter.com/zkaptcha)

技术背景
====

### 女巫攻击（Sybil Attack）

女巫攻击是一种在网络环境中的恶意行为，它涉及伪造多个虚假身份或节点，以欺骗系统、操纵数据和影响决策。该攻击形式最早可以追溯到Web1时代，但在Web2和Web3的世界中变得更为严重。女巫攻击的影响范围广泛，涵盖了许多领域，对系统的安全性、可信性和公平性都产生了巨大的威胁。

女巫攻击的例子如下：

*   数据冗余破坏： 在P2P系统中，攻击者通过伪造虚假身份，破坏了数据冗余机制，导致数据备份失效，进而影响系统的稳定性和数据完整性。
    
*   投票和民主治理受损： 在以投票为竞争模型的网络中，女巫攻击可能导致虚假身份的投票影响投票结果，破坏了系统的公平性和民主原则。
    
*   扭曲舆论和推荐系统： 通过伪造虚假身份，攻击者可以在去中心化网络中集中权力，影响社交媒体平台上的舆论和推荐系统，可能操纵意见和干扰用户体验。
    
*   交易和数据篡改： 在P2P系统中，攻击者可以通过控制虚假身份的节点，干扰交易和篡改数据，从而威胁数据的安全性和应用的可靠性。
    
*   51%攻击： 大规模的女巫攻击可能演变为51%攻击，使攻击者能够控制区块链等系统的大部分，从而修改数据、拒绝交易等，对整个系统造成严重威胁。
    
*   项目方损失： 甚至小规模的女巫攻击也可能导致项目方遭受损失，例如虚假身份滥用项目空投，使项目方遭受不必要的经济损失。
    

女巫攻击尤其在Web3时代变得更为复杂和隐匿，防范和解决该问题需要综合考虑技术、策略和社区的参与。保障网络的安全、可信和公正是防范女巫攻击的关键目标。

### 验证码技术

验证码作为人机交互界面的核心组成，被广泛应用于视频、教育、金融、电商、航旅、互联网、公共服务等领域的网站和App中。它是身份核验和风险防范的关键工具，也是用户与平台互动的首要屏障。

"验证码" 即 "全自动区分计算机和人类的图灵测试"，利用 "人类能够轻松识别图像中的文字" 这一特性，区分真实操作者与计算机程序。在注册、登录、交易等情境中，验证码扮演着至关重要的角色。它有效防止机器软件进行垃圾注册、伪造登录、信息窃取、虚假领取权益、虚假兑换奖品、密码破解等行为，从而确保了企业的财务、市场和信息的安全。

不同时代的验证码演进：

*   第一代验证码：图文展示类
    

最早的验证码是图文识别。用户需要辨认扭曲、混淆的图文，并输入正确内容来通过验证。简单易懂，但容易被攻击者破解。

*   第二代验证码：知识问答类
    

这一代的验证码是问题回答。用户需计算或判断问题及选项，然后输入正确答案。更复杂，能防止常规暴力破解，但也因此操作不便。

*   第三代验证码：行为轨迹类
    

行为轨迹成为验证核心。用户通过拖动、点击、拼接等动作，完成图文合成或移动。兼顾安全和体验，但老年用户可能操作失误。

*   第四代验证码：智能验证类
    

不再依赖单一维度验证。根据环境智能分析和判断。合法用户免验证，异常用户根据风险需进行二次验证。解决前几代问题，兼顾安全和用户体验，通过数据分析和人工智能降低破解风险。

第四代验证码在保障安全的同时，最大限度地减少了用户被干扰的可能性，实现了易用性和安全性的平衡。

验证码的主要目的是防止恶意行为，特别是防止女巫攻击。女巫攻击者会创建大量虚假身份或虚假节点，以欺骗系统。验证码通过要求用户进行各种验证操作（如输入验证码、点击图像、解决数学问题等），让攻击者难以自动化地操作，从而降低女巫攻击的风险。

### 链下验证码

在网络安全领域中，平衡保护机制与开放性一直是个挑战。传统手段如验证码用于确认用户身份和限制访问，但在智能合约情境下，链下验证码显然不适用。

智能合约作为公开、不可篡改的代码存储在区块链上，其执行逻辑对所有人开放。这使得保护需更严密，传统验证码在这一点上显得有限。原本验证码设计用于验证人类用户，但在智能合约中，攻击者可绕过验证码，直接访问合约内容和逻辑，因而无法有效阻止恶意攻击。

### Web3身份验证

在Web3领域，尽管已努力提供增强网络安全性的解决方案，但当前仍存在限制。有个主要问题是，尽管试图验证用户账户，但仍可能被机器人控制。这意味着虽然正在进行账户验证，但无法完全确保只有真实人类用户才能访问和使用这些账户。

此外，在试图限制用户账户身份时，可能会遇到问题。这种限制可能会对拥有多个合法账户的用户造成不利影响。例如，某些用户可能出于不同目的拥有多个账户，而这在某些情况下是合理的。然而，身份限制可能会对他们造成困扰，甚至可能剥夺他们正常使用多个账户的权利。

项目解读
====

在Web3领域，机器人滥用问题严重，影响了NFT发售、Token上市和Web3游戏体验。传统Web2解决方案难以防止智能合约功能的滥用，因为智能合约通过RPC端点公开。

ZKaptcha是Absinthe Labs的三大项目之一，基于零知识证明，能够直接保护智能合约。通过ZKaptcha，DApp开发者可以防止垃圾调用影响智能合约功能。

运作方式简单：比如Alice想铸造NFT，在NFT网站点击“铸造”按钮，系统会要求她完成一个文本挑战。完成后，系统会在铸造请求中加入额外信息，验证合法性。如果信息不正确，操作终止，防止未授权操作。

这里的额外信息包括：零知识证明（证明知道挑战答案）和默克尔证明（证明答案有效）。这些证明防止机器人提前解决挑战，保护智能合约免受垃圾操作影响，同时保持安全和用户体验的平衡。

### 产品架构

ZKaptcha系统由三个重要的部分组成：后台服务器、客户端证明器和链上验证器。

首先，有一个后台服务器，使用OpenCV生成验证码图片。每个用户都会有一组预先准备好的验证码图片，每张图片都有一个对应的“哈希”。这些“哈希”构成了一个Merkle树，而每个验证码的Merkle证明被保存在一个表格里。这些元素都被存放在一个S3存储桶中，可以通过API端点进行访问。第二个部分是客户端证明器，嵌入在网页前端的JavaScript代码中。当调用受到ZKaptcha保护的智能合约函数时，会触发后台的响应，同时显示一个验证码给用户。用户在弹出框中输入验证码后，它的预先准备的信息和“哈希”会被传递到一个名为Aztec's Noir DSL的ZK证明生成器中。生成的ZK证明和Merkle证明会被添加到智能合约函数中。

用户的智能合约包含了一个ZKaptcha验证器的接口。借助已经部署的合约地址，用户能够在他们的合约函数中调用链上验证器。验证器在Scroll的alpha测试网络上部署，具有相当快的区块时间。ZKaptcha验证器还有一个白名单，只允许已经订阅的客户调用它。每个客户都有一组独立的有效Merkle根，后台会定期更新，以防止用户将一个客户的验证码复用到另一个客户。

此外，ZKaptcha还能为用户生成可信的防机器人攻击的声誉评分，有助于NFT社区生态的增长。

通过与Optimism的attestation station合作，实现了SybilRank功能（一个排名系统），将账户地址映射到声誉分数，以帮助识别用户的身份。每次ZKaptcha验证用户完成验证码时，会调用attestation station更新账户的SybilScore。这个评分可以直接从区块链上读取，供智能合约和DApp使用。

团队/合作伙伴/融资
==========

### 团队

暂无披露

### 合作伙伴

![](https://storage.googleapis.com/papyrus_images/ab84338dc5a87a73d38d15d0a4ac72971515e407839003afa818adc7eb77add6.png)

### 融资

暂无披露

项目小结
====

ZKaptcha是一个利用零知识证明技术的项目，旨在通过将验证码与区块链智能合约逻辑相结合，保护智能合约免受机器人和垃圾信息的干扰。该项目的核心理念是为用户提供一种证明自身身份的方式，以防止机器人滥用。通过使用ZKaptcha，用户可以通过完成验证码来证明自己是真实的人类，从而防止机器人在NFT铸造、Web3游戏资产收集、社交内容发布等方面的滥用。

Zkaptcha是一个具有潜力的项目，它具备与各种链上项目合作的能力，从而增强安全性。该项目在发展方面有着较为广阔的空间景，还有很多待开发和实现的验证方式。目前Zkaptcha的知名度相对较低，且其社交媒体平台上的关注者数量不足千位，意味着它在推广和市场拓展方面还有待成长。

---

*Originally published on [TokenMore](https://paragraph.com/@tokenmore-2/tokenmore-zkaptcha)*
