假设电脑已被攻破
大多数加密资产被盗,靠的都不是破解密码学,而是从一台普通电脑下手。AirNox Wallet 正是为这样的电脑设计的,它的出发点是:这台电脑已经失守。

本页内容
威胁来自机器,而不是数学
想想资金实际上是怎么从钱包里流走的。开发者工具链里的某个依赖包,夹带了点别的东西。某个浏览器插件(browser extension)推送了一次没人看过的更新。某份文档其实并不是文档。某个网页给你看的是一笔交易,让你签的却是另一笔。某个剪贴板(clipboard)工具在你粘贴前的一瞬间换掉了地址。
这些攻击没有一个碰到密码学。它们需要的都是同一样东西:一台联网机器上的私钥(private key),或者你的批准。电脑之所以成为目标,是因为密钥就放在电脑上。
所以,AirNox Wallet 的第一个设计决定很简单:别让密钥待在那里。
密钥不在电脑上
AirNox Wallet 运行在桌面端。单独使用时,它就是一个完整的原生钱包,助记词(seed)封存在它的保险库里,日常操作用这套配置就很稳妥。在 AirGap 模式下,它更进一步:它从不持有任何能转走你资金的密钥,只保存你选择让它看到的地址。凭这些地址,它就能完成钱包在线上要做的所有事:与网络通信,读取余额和历史记录,构建未签名交易并进行筛查,再把签好名送回来的交易广播出去。
签名在 AirNox Vault 上完成。这是一款装在 Android 手机上的应用,而这部手机从不联网。助记词由它保管。每一个请求,它都直接从将要签名的字节中解码,显示操作类型、金额、交易双方和网络,只有在你按下 Accept(接受)之后才会签名。
两者之间隔着一道气隙(air gap)。手机没有任何通往互联网的路径,穿过气隙的只有两样东西:过去的一个请求,和回来的一个签名。

每个环节做什么
请求可能来自网页,可能来自钱包本身,也可能来自接入钱包的 AI 智能体。不管从哪里发起,走的都是同一条路径。
浏览器插件向网站提供它们所期望的标准钱包接口。它不持有密钥,也不签任何东西,只是通过本地通道把请求转发给桌面端。
桌面端解码请求并进行筛查。它识别标准操作,标记那些只是看起来像标准操作的东西,检查授权(allowance)和授权对象(spender),然后构建未签名交易,再通过 QR 码、Bluetooth LE 或 NFC 把这笔交易交给手机。
手机根据它将要签名的确切字节,把请求再解码一次,用通俗的话展示给你。桌面端对请求的描述只是一面之词,手机上看到的才是真相。你读完,按下 Accept,或者不按。传回去的只有签名。
密钥放在哪里,决定了恶意软件(malware)能做什么
AirNox 提供两个层级的保护。把它们和最薄弱的常见方案放在一起看会更清楚:以浏览器插件形式存在的传统钱包。

传统插件钱包运行在电脑上暴露面最大的程序里。它的机密数据所用的加密方式,现代显卡可以大规模暴力破解(brute force)。注入网页的代码能够触及它,任何截屏或录屏的程序都能看到它。它自带跟踪器和广告,对地址被替换毫无防护,同时还整天占用系统资源。
桌面端的 AirNox Wallet 是另一类程序,而且它会保护自己。它是原生 C++ 程序,没有可供注入的脚本引擎,也没有可供投毒的页面。助记词只在需要时才留在内存里,用完立即清除。它监视周围的进程和加载进自身的库,外来代码无法在钱包里悄无声息地运行。它解码并筛查每一个请求,让你批准(approve)的正是你看到的。它监视剪贴板,防止地址被替换,并让自己的窗口不被截屏或录屏捕获。它存储的机密数据用内存困难型(memory-hard)的 Argon2id 封存,并锚定在电脑的 TPM 2.0 芯片上,显卡在这里走不了捷径。它也不带任何跟踪器。对日常操作来说,它本身就是稳妥的选择;本系列介绍的每一项安全功能都适用于它,不管有没有用到手机。
AirGap 则是叠加在上面的终极一层。上面说的一切依然有效,而助记词搬到了一部离线手机上。即使攻击者控制了整个操作系统,在电脑上也找不到任何可复制的东西,也无法篡改做出最终决定的那块屏幕。替换收款地址是唯一在所有方案中都留有部分缺口的手段,因为地址投毒(address poisoning)针对的是你的眼睛,而不是软件。两台设备上的地址图案,就是为了拦住它。
这套设计解决不了什么
离线签名设备(signer)能让你看清自己签的到底是什么,却拦不住你同意签它。助记词备份仍然是你自己的责任,要抄在纸上或刻在钢板上,而不是存进密码管理器。如果有人逼你解锁,任何钱包都保护不了你。这些局限,我们宁愿亲口告诉你,也不想让你自己撞上。
本系列接下来会逐一讲解各个部分:为什么签名设备就是你手里现成的手机,跨越气隙的三种方式,手机如何做到无线隐身,为什么从不信任传输通道,手机让你看到什么,以及它自己留下的记录。