本文数据更新日期:2023/08/24
Zkaptcha 专注于解决 Web3 中的机器人问题。它为智能合约提供验证码服务,保护其免受机器人攻击。Zkaptcha利用零知识证明技术创建抗女巫攻击的智能合约。大致流程为用户完成验证码,证明是真人,验证者核实,智能合约访问。未来,Zkaptcha 还将推出类似于现有 Web 2 验证码的功能,包括分析鼠标移动等行为。
官网:https://www.absinthelabs.xyz/
推特:https://twitter.com/zkaptcha
女巫攻击是一种在网络环境中的恶意行为,它涉及伪造多个虚假身份或节点,以欺骗系统、操纵数据和影响决策。该攻击形式最早可以追溯到Web1时代,但在Web2和Web3的世界中变得更为严重。女巫攻击的影响范围广泛,涵盖了许多领域,对系统的安全性、可信性和公平性都产生了巨大的威胁。
女巫攻击的例子如下:
数据冗余破坏: 在P2P系统中,攻击者通过伪造虚假身份,破坏了数据冗余机制,导致数据备份失效,进而影响系统的稳定性和数据完整性。
投票和民主治理受损: 在以投票为竞争模型的网络中,女巫攻击可能导致虚假身份的投票影响投票结果,破坏了系统的公平性和民主原则。
扭曲舆论和推荐系统: 通过伪造虚假身份,攻击者可以在去中心化网络中集中权力,影响社交媒体平台上的舆论和推荐系统,可能操纵意见和干扰用户体验。
交易和数据篡改: 在P2P系统中,攻击者可以通过控制虚假身份的节点,干扰交易和篡改数据,从而威胁数据的安全性和应用的可靠性。
51%攻击: 大规模的女巫攻击可能演变为51%攻击,使攻击者能够控制区块链等系统的大部分,从而修改数据、拒绝交易等,对整个系统造成严重威胁。
项目方损失: 甚至小规模的女巫攻击也可能导致项目方遭受损失,例如虚假身份滥用项目空投,使项目方遭受不必要的经济损失。
女巫攻击尤其在Web3时代变得更为复杂和隐匿,防范和解决该问题需要综合考虑技术、策略和社区的参与。保障网络的安全、可信和公正是防范女巫攻击的关键目标。
验证码作为人机交互界面的核心组成,被广泛应用于视频、教育、金融、电商、航旅、互联网、公共服务等领域的网站和App中。它是身份核验和风险防范的关键工具,也是用户与平台互动的首要屏障。
"验证码" 即 "全自动区分计算机和人类的图灵测试",利用 "人类能够轻松识别图像中的文字" 这一特性,区分真实操作者与计算机程序。在注册、登录、交易等情境中,验证码扮演着至关重要的角色。它有效防止机器软件进行垃圾注册、伪造登录、信息窃取、虚假领取权益、虚假兑换奖品、密码破解等行为,从而确保了企业的财务、市场和信息的安全。
不同时代的验证码演进:
第一代验证码:图文展示类
最早的验证码是图文识别。用户需要辨认扭曲、混淆的图文,并输入正确内容来通过验证。简单易懂,但容易被攻击者破解。
第二代验证码:知识问答类
这一代的验证码是问题回答。用户需计算或判断问题及选项,然后输入正确答案。更复杂,能防止常规暴力破解,但也因此操作不便。
第三代验证码:行为轨迹类
行为轨迹成为验证核心。用户通过拖动、点击、拼接等动作,完成图文合成或移动。兼顾安全和体验,但老年用户可能操作失误。
第四代验证码:智能验证类
不再依赖单一维度验证。根据环境智能分析和判断。合法用户免验证,异常用户根据风险需进行二次验证。解决前几代问题,兼顾安全和用户体验,通过数据分析和人工智能降低破解风险。
第四代验证码在保障安全的同时,最大限度地减少了用户被干扰的可能性,实现了易用性和安全性的平衡。
验证码的主要目的是防止恶意行为,特别是防止女巫攻击。女巫攻击者会创建大量虚假身份或虚假节点,以欺骗系统。验证码通过要求用户进行各种验证操作(如输入验证码、点击图像、解决数学问题等),让攻击者难以自动化地操作,从而降低女巫攻击的风险。
在网络安全领域中,平衡保护机制与开放性一直是个挑战。传统手段如验证码用于确认用户身份和限制访问,但在智能合约情境下,链下验证码显然不适用。
智能合约作为公开、不可篡改的代码存储在区块链上,其执行逻辑对所有人开放。这使得保护需更严密,传统验证码在这一点上显得有限。原本验证码设计用于验证人类用户,但在智能合约中,攻击者可绕过验证码,直接访问合约内容和逻辑,因而无法有效阻止恶意攻击。
在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使用。
暂无披露

暂无披露
ZKaptcha是一个利用零知识证明技术的项目,旨在通过将验证码与区块链智能合约逻辑相结合,保护智能合约免受机器人和垃圾信息的干扰。该项目的核心理念是为用户提供一种证明自身身份的方式,以防止机器人滥用。通过使用ZKaptcha,用户可以通过完成验证码来证明自己是真实的人类,从而防止机器人在NFT铸造、Web3游戏资产收集、社交内容发布等方面的滥用。
Zkaptcha是一个具有潜力的项目,它具备与各种链上项目合作的能力,从而增强安全性。该项目在发展方面有着较为广阔的空间景,还有很多待开发和实现的验证方式。目前Zkaptcha的知名度相对较低,且其社交媒体平台上的关注者数量不足千位,意味着它在推广和市场拓展方面还有待成长。

