这大概是比特币除了赚钱以外,最有用的一集啊。
Cap 是一个轻量级的开源 CAPTCHA 人机验证工具,只有 20kb,与传统验证码主要考验人类不同,它无需用户拼图、选字,只需一键验证,仅仅消耗1秒钟左右。@Appinn
Cap 采用与比特币相同的 SHA-256 工作量证明算法,通过消耗机器(浏览器或机器人)的算力,有效提升机器刷流量成本,从根本上减少机器人访问。
[PoW 验证码来了!Cap 用比特币同款算法完成 CAPTCHA 人机验证 7]
直接上演示
通过鼠标点击验证码之后,会有一个计算的过程。这个过程就是正在进行的 SHA-256 工作量证明:
Cap 工作原理
1. 初始化
* 当 Cap 加载时,会在网页中注册一个专属的验证码组件,并通过 Shadow DOM 技术与页面其他部分隔离,保证安全和独立性。
2. 发起验证
* 当需要验证时,Cap 会向服务器请求生成一个包含多个挑战的“挑战集合”。
* 每个挑战包含一个独特的“盐值”(salt)和一个哈希目标前缀。
* 用户需要找到一个“随机数”(nonce),把它和盐值组合后,经过 SHA-256 算法哈希,要求结果以指定前缀开头。
* Cap 会同时产生多个挑战,以便更快、更稳定地计算和显示进度。
3. 计算答案
* Cap 利用浏览器中的 Web Worker 并行计算,加快解题速度。
* 计算方式就是不断尝试不同的随机数(nonce),把它与盐值拼在一起,用 SHA-256 算法算出哈希值,检查前缀是否符合目标。
* 成功找到符合要求的哈希值后,解题过程结束。
4. 兑换令牌
* 成功解题后,Cap 会把结果发送回服务器进行验证。
* 验证通过后,服务器会发放一个令牌,作为人机验证成功的证明。
[PoW 验证码来了!Cap 用比特币同款算法完成 CAPTCHA 人机验证 8]
Cap 用和比特币“挖矿”类似的方式,要求你的浏览器做一小段运算,通过后就证明你不是机器人,整个过程高效、安全、无需传统验证码的繁琐操作。
注意:用后即抛,无需担心用户浏览器的挖矿问题,Cap 需要自己部署在自己的服务器中。
一反常态
Cap 的验证过程非常有意思,它不再要求用户证明自己是人类,可以看懂人类的文字、图片,因为现在 AI 也能看懂了。反而要求用户使用算力,无需证明什么。
这样的情况下,正常用户访问几个页面所消耗的算力可以忽略不计,但机器人用户同时访问成千上万个页面所消耗的算力,就需要真金白银了。
而眼下,算力就是黄金啊。
这将从根本上提升机器用户成本,让其得不偿失。
妙啊。
基准测试
Cap 文档提供了一个基准测试结果,在不同设备下:
─────────┬──────────────────┬───────────────┬───────────────
Tier │设备 │Chrome 消耗时间│Safari 消耗时间
─────────┼──────────────────┼───────────────┼───────────────
Low-end │Samsung Galaxy A11│4.583s │–
─────────┼──────────────────┼───────────────┼───────────────
Low-end │iPhone SE (2020) │– │1.282s
─────────┼──────────────────┼───────────────┼───────────────
Mid-range│Google Pixel 7 │1.027s │–
─────────┼──────────────────┼───────────────┼───────────────
Mid-range│iPad (9th gen) │– │1.401s
─────────┼──────────────────┼───────────────┼───────────────
High-end │Google Pixel 9 │0.894s │–
─────────┼──────────────────┼───────────────┼───────────────
High-end │MacBook Air M3 │0.312s │0.423s
─────────┴──────────────────┴───────────────┴───────────────
测试条件:
* 挑战难度: 4
* 挑战数量: 50
* 盐/挑战大小: 32
* 基准数量: 50
意味着一台比较现代的手机,大概会消耗1秒钟的时间,就能完成以上测试条件下的计算。难度可调。
获取
感兴趣的同学,可以前往研究。
* Cap 官网
原文:https://www.appinn.com/cap-pow-captcha/
CAPTCHA 是什么?
全自动区分计算机和人类的图灵测试(英语:Completely Automated Public Turing test to tell Computers and Humans Apart,简称 CAPTCHA),又称验证码或确认码,是一种区分用户是机器或人类的公共全自动程序。在 CAPTCHA 测试中,作为服务器的计算机会自动生成一个问题由用户来解答。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于机器无法解答 CAPTCHA 的问题,回答出问题的用户即可视为人类。
实际上,在 Cap 下的 CAPTCHA,可能需要换一个名字了
PoW 是什么?
工作量证明(Proof-of-Work,PoW)是一种对应服务与资源滥用、或是拒绝服务攻击的经济对策。
一般要求用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。此概念最早由Cynthia Dwork和Moni Naor于1993年的学术论文提出,而工作量证明一词则是在1999年由Markus Jakobsson与Ari Juels. 所发表。现时此技术成为了加密货币的主流共识机制之一,如比特币所采用的技术。
关注我们
* 微博:https://weibo.com/appinncom
* B站:https://space.bilibili.com/10979326
* 小红书:https://kutt.appinn.com/6QwshF
* Facebook:https://www.facebook.com/appinncom/
* BlueSky:https://bsky.app/profile/appinn.bsky.social
* X:https://x.com/appinn
* 微信公众号:搜索「小众软件」
* TG频道:@appinnfeed
爱发电:https://afdian.com/a/qingxwa (打赏我们,让我们更好的创作)
[ 点击前往获取链接 ]