Live edition loading…

PXke Algorand

Independent daily coverage of the Algorand ecosystem — verified reporting on wallets, DeFi, NFTs and infrastructure, fact-checked on-chain before it publishes.

← Latest stories

Biatec Wallet 的公开 AI 审计发现了一个关键的交换签名缺陷

· · · · · · ·

Biatec Wallet 的公开 AI 审计发现了一个关键的交换签名缺陷

由机器生成的审计记录

2021年5月,名为Biatec Wallet的项目发布了其首个公开版本:在浏览器标签页内创建钱包、用密码保护钱包、查看基本账户信息——这一切都在浏览器标签页内完成。五年后,在Biatec品牌下重命名并扩建的同一代码库,仍然完全在浏览器中运行,而且它采取了一种不常见的做法,为小型社区钱包:在公共GitHub仓库中直接发布由AI模型撰写的日期标注的安全审计报告,并附有这些审计发现的每项风险的实时记录。

这份最新的报告日期为8月4日,开头便警告了大多数项目更愿意隐瞒的事实:“最终结果是负面的:本次审计发现了1项关键性问题和1项高风险问题,这两项问题都可能导致账户资金完全损失。” 这两项问题都与交换功能有关——这是钱包中用户私钥短暂暴露于远程服务器输出的一处地方——而它们是如何发现和修复的,则恰如其分地衡量了这种自发布审计程序能够且无法保证什么。

一款从不接触钥匙的钱包

Biatec Wallet 是由斯洛伐克布拉迪斯拉发 Scholtz & Company (公司 ID 51 882 272, 增值税号 SK2120828105) 创办、以 Biatec 品牌开发的一款免费、开源、非托管 Algorand 钱包。非托管意味着第三方永远不会持有私钥:没有后端服务器、没有注册表单、也没有 KYC,钱包文件使用 AES-256 加密并存储在浏览器的 IndexedDB 中。密码仅用于本地加密和解密 — 绝不会传输到任何地方,包括 Biatec 自己的基础设施 — 钱包在最后一次活动后五分钟会自动锁定,并清除内存中的解密密钥。该项目自称是首款开源 Algorand 钱包;新闻报道记录显示,Algorand 官方钱包直到 2021 年 6 月才完全开源,而 AWallet 的第一个公开版本则是在 2021 年 6 月前一个月发布。

使用它需要浏览器和密码:打开 wallet.biatec.io — 该项目的 README 将较老的 a-wallet.net 域名标记为同一部署的过时镜像 — 选择一个钱包名称和密码(应用程序建议使用 12 个或更多个字符,并包含大小写、数字和特殊字符),钱包文件便会在本地生成。默认情况下,该应用程序运行在 mainnet 上,指向 AlgoNode 的公有节点,并提供切换提供商的设置 — 包括 Biatec 自己的 Algorand 节点和 indexer 基础设施。

审计程序如何运行

这一流程在 ai-audit-instructions.md 文件中进行了规范:在存储库中输入“do new audit”即可触发 AI 模型进行一次新的审核,该模型必须像“专业智能合约/钱包安全审计公司”那样行事——持怀疑态度、对抗性,并对严重程度进行精确判断,每项发现都与特定的文件路径和行号相关。每个报告记录了被审核的提交、执行该审核的模型以及使用的指令版本;风险注册表将每项发现永久保留,不删除行,并保留已关闭的行以供追溯。

概念 |现实世界中的应用 |

2026年7月9日至8月4日期间,由三个不同的AI模型(sonnet-5、fable-5、grok-4-5)运行的六份报告没有单一模型定义该程序;预计每次迭代都会根据当前源代码重新验证先前的发现
8月4日的报告审查了自上一份报告以来提交的21个提交和48个文件(+2,407/−564行)。审查范围为差异范围——不仅检查每个发布周期,还检查所有新功能
依赖性扫描发现了15条建议(0条严重、9条高危、4条中危、2条低危)。钱包使用了一个包含已知高危建议的依赖树,其中没有一条是严重的
8月4日后,注册表上仍有20项未解决的技术风险。该项目的自有账本显示,仍有二十多项代码级风险未解决
Cypress E2E 和实时测试(Ledger、[WalletConnect](/glossary/walletconnect "一种协议,允许 Web 应用通过扫描二维码连接到加密货币钱包(如 Pera 或 Defly on Algorand),以便 Web 应用可以读取 w)以及实际交换)未运行关键和高风险的发现是在静态源代码中发现的,而非在运行中的部署中演示

结果:盲签掉期

这项关键发现,编号为AW-2026-043,涉及钱包中有一部分功能必须在设计上信任陌生人。当用户将一种资产换成另一种资产时,钱包会请求聚合器(Deflex、Folks Router或Biatec Router)计算路由并返回交易的未签名交易。钱包会解码这些交易,并直接使用账户的原始私钥对其进行签名。审计发现,这三条路径均未验证任何与服务器提供交易相关的信息:既未验证发送方是用户自己的账户,也未验证接收方或金额与显示报价相符,甚至未验证网络创世 ID——而且在签名之前,这些交易从未显示给用户。用户点击“执行”按钮,便会使用其密钥对一串不透明的远程交易进行签名。

这些风险与 Algorand 交易的运作方式有关。已签名的交易可以包含“向 Y 支付 X”以外的字段:‘closeRemainderTo’ 字段将账户余额全部清零,并将整个 ALGO 余额(或资产转账时,将整个代币持有量)转移到该字段指定的地址;‘rekeyTo’ 字段则将账户的签名权限完全转移到另一个密钥。在 Algorand 上,rekeying 允许账户将其签名权限委托给另一个密钥;账本随后会记录实际由哪个密钥进行签名。受损或恶意聚合器 API 可能会返回这样的交易,而钱包会默默地签名并提交,从而绕过早期修复措施(AW-2026-001)在应用程序中为所有其他签名界面添加的“closeRemainderTo”和“rekeyTo”警告。

第二个发现:一个信任攻击者的域检查

High 的发现,AW-2026-044,涉及新的 ARC-60 任意数据签名功能。ARC-60 扩展了 WalletConnect——一种二维码协议,允许 Web 应用连接钱包并请求签名,而无需持有密钥——因此,连接的 DApp 可以请求对任意数据的身份验证签名,而这些签名是无密码登录流程的基础。钱包在签名前会显示请求域、目的和完整数据预览。审核发现,域绑定检查存在自引用问题:既有声称的域,也有旨在证明该域的 authenticatorData,它们都包含在同一个 DApp 控制的请求中,且仅相互检查,而从未与实际的 WalletConnect 会话对等方进行检查。因此,恶意 DApp 可以获取绑定任何域的有效签名——而这正是该功能本身注释中所说的要防止的伪造登录。

当前代码中有哪些内容——哪些内容尚未经过验证

在报告发布当天,一项修复方案已上线(提交 0b3947e,‘feat:增强 ARC-60 安全性,并 [DEX](/glossary/decentralized-exchange "基于 Algorand 的点对点市场,用户可以在其钱包中直接交易 ASA,无需依赖集中式中介(如聚合器)进行交易验证")。一个新的共享助手 assertSwapTransactionSafe 现在会在任何三个聚合器签名之前对每笔交易进行检查,如果发送方与连接的账户不匹配,或者任何交易包含 rekey 或 close-out 字段,则拒绝整个批次。在 ARC-60 方面,新的 domainMatchesSessionOrigin 检查将所声明的域名与实际 WalletConnect 会话对等方的主机名进行比较,而不是与请求自身的有效载荷进行比较。

修复已在 master 和部署的钱包中完成:警卫拒绝消息出现在 a-wallet.net 提供的压缩 JavaScript 包中,确认了验证代码确实与用户实际运行的版本一致,且这两个域都提供的是同一版本(36221a6,8 月 13 日)。尚未完成的是由发现该漏洞的程序对修复进行验证。风险登记册上最新的条目是 8 月 4 日的审计本身,该审计审查了较早的提交;验证提交是在当天单独进行的,且在存储库中没有后续审计报告可用于重新验证 AW-2026-043 和 AW-2026-044 是否已关闭。

在权衡该项目的“未经验证”状态时,需要考虑其实际情况。该项目下的审计由人工智能模型进行,在六份报告中均未提及任何独立安全公司,且该存储库不发布任何有标签的发布版本——即便是直接从 CI/CD 管道部署。因此,没有可依赖的发布认证步骤。8 月 4 日的报告本身明确指出,其主要发现是在静态源代码中发现的,而非针对运行中的部署进行验证。作为一项透明度实验,该项目确实不寻常——大多数钱包都会发布审计摘要,而非“本月发现的内容”的原始文件。作为一项独立的安全保障措施,它尚未涵盖其最近的修复。

社区项目自筹资金

根据其常见问题解答,Biatec独立于 Algorand Inc. 和 Algorand 基金会,且未从这两方获得持续资助,但它已获得过一次性 xGov 社区拨款。xGov 存储库记录了 AWallet 自身 10,000 个 ALGO,以及其支付调度器 60,000 个 ALGO,均为“已批准”;两项 2024 年提案——一项追溯性请求 36,912 个 ALGO,以及一项 148,999 个 ALGO 的 链上 身份项目——均列为“最终”。该项目的摘要(即追溯性提案的摘要)称 AWallet 是“Algorand 上最先进的钱包之一”。

支撑这一说法背后的财务足迹并不大。公开的捐款地址链上持有 25.6 ALGO 和约 1.03 USDT;该项目的 Discord 拥有 411 名成员,在检查时有 7 人在线;在 Bluesky 上,关于该钱包的最新社交帖子只有 1 条点赞。项目的开发活动并非停滞不前:其代码库于 8 月 15 日被推送,拥有 672 个星标,其两位主要贡献者分别提交了 546 和 62 次提交。

读者应该考虑的一点是:钱包的交换屏幕通过 Biatec 自己的聚合器与两家第三方路由器相连,而 Biatec 还运行着 Algorand 节点和索引器基础设施,供钱包连接。这些本身都不是问题——非托管设计意味着钱包只会签署用户批准的内容——但 8 月 4 日的审计恰恰表明了为什么聚合层才是关键的信任边界,而团队自己的路由器就位于其上。

这家斯洛伐克公司围绕 Algorand 构建了一套更广泛的工具包:一套免费的开源支付网关,允许商家直接将 ALGO、USDC 或 USDT 存入自己的账户,无需金融中介,也不需要钱包账户;一套开源投票系统;以及 Stabilitas 国家级 稳定币 框架,据本刊此前发现,该框架自 2023 年以来已停止使用。尽管该钱包的审计程序存在局限,但它是团队以最可审计方式展示其工作的部分。

来源

Source: https://www.a-wallet.net/