钱包与签名安全(Web3)

共 17 题
#

1. 钱包签名钓鱼(Phishing)攻击的工程防御策略

A 前端应让签名内容可读化、校验域名并对危险签名方法实施拦截 ✓ 正确答案
B 只要用了 https 就一定不会发生签名钓鱼
C 签名钓鱼无法通过前端手段缓解
D 用户永远不需要查看签名内容
#

2. ERC-4337 Account Abstraction 的智能账户在前端的应用

A 智能账户无法在前端使用
B 智能账户与普通 EOA 没有任何区别
C 它通过 UserOperation 与 Bundler 实现可编程账户,支持社交恢复、代付 gas 等 ✓ 正确答案
D 智能账户必须使用助记词才能登录
#

3. Gas 优化与 Layer 2(Optimism、Arbitrum、Base、zkSync)

A L2 通过批处理与证明机制降低交易成本,前端应支持按 chainId 切换并引导使用 L2 ✓ 正确答案
B L2 与 L1 的手续费完全一样
C Optimism 与 zkSync 的扩容机制完全相同
D 前端无需关心 gas 或网络切换
#

4. 签名与授权,eth_sign vs personal_sign 的差异?

A personal_sign 比 eth_sign 更危险
B 两者签名结果完全相同
C eth_sign 对任意不可读 hex 签名较危险,personal_sign 通过前缀使消息可读且更安全 ✓ 正确答案
D eth_sign 已是最安全的签名方式
#

5. 多链 DApp 的 chainId 管理,wallet_switchEthereumChain 网络切换、错误网络提示与链感知 UI 在前端钱包交互的工程价值?

A 切换网络只能靠用户手动改钱包
B 前端无需关心 chainId
C 所有链的 chainId 都相同
D 应校验当前 chainId,用 wallet_switchEthereumChain 切换网络并提供错误提示与链感知 UI ✓ 正确答案
#

6. EIP-1193 request({method:eth_requestAccounts}) 与 events 订阅的工程价值

A 它不支持任何事件订阅
B 每个钱包都有完全不同的接口,无法统一
C 它只能用于发送交易,不能连接账户
D 它提供标准 request 接口与 events 订阅,前端可用统一方式连接钱包并同步账户/链变化 ✓ 正确答案
#

7. wagmi 的 React Hooks 抽象与 viem 的协作

A viem 只能在 wagmi 外部独立使用,无法通信
B wagmi 与 viem 是完全重复的库
C wagmi 提供 React Hooks 抽象,viem 提供类型安全的底层 API,二者分层协作 ✓ 正确答案
D wagmi 不依赖 viem
#

8. personal_sign 与 eth_signTypedData_v4 在不同钱包/链的工程取舍

A 二者在钱包中显示的内容完全相同
B v4 完全不支持结构化数据
C personal_sign 永远比 v4 安全
D personal_sign 适合简单消息,v4 适合结构化授权且可读更安全,需按钱包支持折衷 ✓ 正确答案
#

9. EIP-712 Typed Data Signature 在结构化数据签名的工程价值与防钓鱼

A 它通过 domain/types/message 让签名可读并绑定链与合约,防盲签与重放 ✓ 正确答案
B 它只能签名随机数,无法保护数据
C 它不支持中文内容展示
D 它完全无法防重放
#

10. eth_sign 风险与 personal_sign 安全实践

A eth_sign 盲签风险高,应默认使用 personal_sign 并让消息可读、加入防重放 ✓ 正确答案
B eth_sign 是官方推荐的安全签名方式
C personal_sign 无法防止重放
D 签名内容无需向用户展示
#

11. EIP-6963 多钱包发现与 window.ethereum 历史检测的反面模式

A 两者没有任何区别
B window.ethereum 是最安全的钱包发现方式
C EIP-6963 只能发现一个钱包
D EIP-6963 通过事件广播发现多钱包,window.ethereum 单例检测是反面模式 ✓ 正确答案
#

12. WalletConnect v2 / Reown 在多链钱包 DApp 连接的工程价值

A 它只能连接单链
B 它只能在插件钱包中使用
C 它通过二维码/URI 配对实现跨设备多链连接,不依赖 window.ethereum 注入 ✓ 正确答案
D 它无法在移动端使用
#

13. Ethers.js / viem / wagmi 的选型

A viem 强调类型安全与模块化,wagmi 基于 viem 提供 React hooks,ethers.js 成熟全量 ✓ 正确答案
B 三者是完全相同的库
C viem 不支持 TypeScript
D wagmi 不依赖 viem
#

14. 签名重放攻击(Replay Attack)的防护(nonce、domain)

A domain 与重放攻击无关
B 重放攻击无法防护
C 只需校验签名是否有效即可,无需 nonce 或 domain
D nonce 防止同一上下文重复使用,domain 防止跨链跨合约重放 ✓ 正确答案
#

15. Web3 钱包的私钥管理,助记词与硬件钱包?

A 前端应把私钥内置在业务代码中
B 私钥可以安全地保存在 localStorage
C 助记词丢失不影响资产
D 硬件钱包把私钥保存在安全芯片中抗窃取,助记词是私有备份需离线妥善保管 ✓ 正确答案
#

16. 智能合约交互的前端安全,approve 与代币授权?

A 授权一旦发出无法撤销也没有风险
B 无限授权是安全做法
C 授权目标地址无需校验
D 应避免无限授权、校验授权目标并展示额度,优先使用有限额度或 Permit ✓ 正确答案
#

17. 交易模拟与安全预览,eth_call/eth_estimateGas 模拟交易在 approve 授权、合约调用失败回滚与钓鱼防护中的工程应用?

A eth_estimateGas 无法检测交易失败
B eth_call 会真正改变链上状态
C 可在不改变链上状态的情况下模拟执行并检测失败与授权风险,提升安全与体验 ✓ 正确答案
D 模拟交易对安全没有任何帮助