Web3安全指南

Web3的安全性是一个永恒的话题。

今天我们聊聊MPC钱包、无助记词钱包、零知识证明,以及实际的安全操作步骤。

MPC钱包

什么是MPC钱包?

MPC(Multi-Party Computation,多方计算)钱包是一种将私钥分割成多个碎片,由多方共同保管的钱包。

核心原理:私钥被分割成n个碎片,只需要其中k个碎片(k<n)就能重构私钥。这避免了单点故障——即使某个碎片被盗,攻击者也无法恢复完整私钥。

MPC钱包的优势

无需助记词:不需要备份那12/24个单词,降低了丢失风险。

社交恢复:可以通过设置多个"监护人"来恢复账户。

分布式托管:私钥碎片分布在不同设备或服务商手中。

代表项目

Fireblocks:企业级MPC钱包服务商。

Coinbase Wallet:提供MPC功能。

Privy:嵌入式MPC钱包解决方案。

无助记词钱包

传统钱包的问题

传统钱包需要用户自行保管助记词。但这带来了很多问题:助记词一旦丢失,资产永久无法恢复;助记词一旦泄露,资产立即被盗;助记词需要物理备份,不够便捷。

无助记词解决方案

**托管型服务商保管私钥服务商保管私钥,用户通过账号密码登录。类似传统银行。

MPC钱包:私钥碎片分散保管,用户不需要知道完整私钥。

社交恢复钱包:通过设定"监护人"来恢复账户。

账户抽象(ERC-4337)

账户抽象让智能合约钱包可以实现:社交恢复——通过多签或监护人恢复;无Gas交易——项目方代付手续费;生物识别——指纹/面部识别解锁。

零知识证明

什么是零知识证明?

零知识证明(Zero-Knowledge Proof,ZKP)允许证明者向验证者证明某个陈述是真实的,而不需要透露任何除真实性之外的信息。

经典例子:A要向B证明自己知道某个密码,但不告诉B密码是什么。A可以提供一个"证明",B验证后确认A确实知道密码,但B仍然不知道密码是什么。

零知识证明在Web3中的应用

隐私交易:如Tornado Cash,用户可以证明自己存过钱,但不透露具体是哪个地址存的。

Layer2验证:ZK Rollup使用零知识证明来验证链下交易的正确性。

身份验证:用户可以证明自己满足某个条件(如"年满18岁"),而不透露具体身份信息。

zk-SNARKs与zk-STARKs

zk-SNARKs:需要可信设置, proofs 较小,验证快。

zk-STARKs:无需可信设置, proofs 较大,抗量子。

安全操作实践

助记词安全

物理备份:将助记词写在纸上或刻在金属板上。

分散存放:不要将助记词放在同一个地方。

Passphrase:添加第13/25个词,增加安全性。

交易安全

验证地址:始终确认收款地址正确。

小额测试:大额转账前先测试小额。

授权管理:定期使用Revoke.cash撤销不需要的代币授权。

防范钓鱼攻击

不要点击可疑链接:只访问官方域名。

验证合约地址:通过Etherscan等工具验证。

使用硬件钱包:大额资产使用Ledger、Trezor等硬件钱包。