# 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 模拟交易对安全没有任何帮助