与传统的中心化服务不同,区块链钱包并不直接持有用户的资产,只管理与区块链交互的关键凭证——私钥。当用户进行一笔交易时,需要使用私钥进行交易签名,一旦私钥泄露或丢失,资产将面临损失的风险。
区块链的早期,签名相对简单且风险较低,钱包主要的安全问题在于如何安全地存储私钥。随着 DeFi 和 NFT 等应用场景的兴起,链上交互变得越来越复杂。由于每一个 DApp 项目都有独特的签名交互方式,再加上多链多网络的维度,对于大多数人来说,理解各种复杂的签名交互背后的信息变得困难。
这也导致了钱包安全的新挑战,本身签名的规范多,解析困难,把面向开发者的结构化数据解析为普通用户可以理解的信息的挑战更大,还存在因为签名展示的不清晰导致的各种潜在攻击手段,如盲签名和签名钓鱼等。就在最近,Web3 反平台 Scam Sniffer 监测到有用户通过因为 Perimit 授权被钓鱼攻击,导致被盗 10 万 USDC。
NFTSCAN浏览器推出NFT Collection签名认证功能:2月17日消息,NFTSCAN浏览器宣布近日上线了NFT Collection签名认证功能,支持NFT合约开发者和项目方对其部署的NFT Collection项目进行签名认证,并提交相关基础资料和社交信息。[2022/2/17 9:58:33]
在探索签名挑战的解决方案之前,理解各种签名方式至关重要。
为了使各应用能与区块链无缝交互,如读取区块数据或发送交易,必须有一个统一的连接标准。拿以太坊举例,以太坊的每个客户端都采纳了统一的 JSON-RPC 规范。
在这个规范中,与签名相关的接口有:eth_sendTransaction、eth_sign 等。从技术的视角,签名可分为两大类:链下签名和链上签名。根据具体签名应用场景,它们又可细分为签名登录 、签名授权、签名转账及签名合约互动等。
不同的签名场景潜藏着不同的风险,特别是当签名过程复杂或不明确时,盲目签名可能导致资产损失。对钱包而言,「所见即所签」是解决盲签问题的关键原则,用户签署的内容应与他们所看到和预期的完全相符。为了实施这一原则,钱包要确保的是准确展示每一笔签名包含的可读信息,而不是向用户展示 16 进制的 RLP 编码,只有这样用户才能理解签名信息和风险。
行业人士:吴忌寒告别信用“双重签名”致敬比特币:行业人士表示,吴忌寒的告别信的开头,两次出现了“—–BEGIN PGP SIGNED MESSAGE—–Hash: SHA512”,结尾也是END PGP SIGNED MESSAGE,疑似在使用双重签名,向比特币double sha256算法致敬。吴忌寒是比特币白皮书最早的中文译者之一,后创立比特大陆,但曾经因为比特币分叉与核心开发者以及比特币支持者分裂。(吴说区块链)[2021/1/27 13:36:33]
此外,在非常规的操作中,智能的风险警示机制也至关重要。接下来,我们将分别针对这些场景,探讨潜在风险及其应对策略。
以太坊最早的离线签名方式,目前已经不推荐使用。因为无法解析签名信息,非常容易被风险网站利用,伪造风险交易,而导致资产被盗。最简单方式,遇到无法解析展示的盲签名信息,直接拒绝签名,因为 eth_sign 签名无法做到所见即所签,所以社区衍生出 eth_personal_sign 和 EIP-712 等标准,让签名可视化。
eth_personal_sign 是可读的离线签名方式,通常用于网站验证用户身份,签名登录网站,钱包需要清晰的展示签名的信息和来源网站的详情。为了展示更多的登录网站的信息,目前 ERC-4361「Sign In With Ethereum 」登录网络的标准支持范围也非常广,进一步提升了 eth_personal_sign 的安全性。
动态 | 暗网丝绸之路创始人Ross Ulbricht的赦免请愿书目前有19.5万人签名:据bitcoinist报道,暗网丝绸之路创始人Ross Ulbricht的赦免请愿书已有19.5万人签名。其中包括莱特币创始人李启威,Roger Ver和亿万富翁Tim Draper。丝绸之路创始人Ross Ulbricht已在狱中度过六年。[2019/8/21]
遵循 EIP-712 标准,对于结构化数据进行 Hash 或签名,推荐离线签名的方式。慢雾有提到signTypedData_v4 也存在潜在的安全问题,虽然签名信息展示很清晰,但可能是钓鱼网站发起的一模一样的签名请求,后续会被滥用。
所以,对于钱包来说,不仅要支持解析 signTypedData 结构化数据,还需要显示签名来源的应用名称和 URL、交互的历史记录。对于非标准的 EIP-712 钱包,应该也有智能的风险提示。
动态 | 美国银行提交在分布式网络中采取多重数字签名专利申请:据Cointelegraph消息,美国专利商标局(USPTO)上周公布的专利申请文件显示,美国银行提交了一项在分布式网络中采取多重数字签名的新专利申请。这项专利关乎一个新系统,该系统用来管理联网设备中的各项传输数据。专利文件表明,美国银行旨在阐述物联网生态环境中的各个联网设备如何与其它各方传输数据,而新系统将允许用户自行选择将哪些数据传输给第三方。[2018/9/25]
转账是钱包最大的用例,这中间涉及到以太坊原生代币 ETH 的转账,以及 ERC-20、ERC-721 标准的代币转账,像是慢雾开发的 MistTrack 等其他安全工具有提供相关的风险地址标签,需要钱包智能地帮助用户拦截或展示相关风险提示,避免更多人受。
除此之外,转账还存在一些非常规的场景,比如说转账到合约地址:正常钱包转账都是给 EOA 普通账户,如果收款地址为合约地址,需要特别注意,往往存在风险,当然也可能为合约钱包地址。对于钱包来说,如果可以智能的识别地址是普通地址还是合约地址,并针对合约地址增加特别的标签提示,可以帮助用户提高安全意识。
田纳西州紧随佛罗里达州和内布拉斯加州 或将在法律层面承认区块链签名与智能合约:1月10日田纳西州州议员杰森·鲍威尔(Jason Powell)向田纳西众议院提交一项新法案,该法案将承认区块链签名是合法的电子记录,回应了在佛罗里达州和内布拉斯加州提交的类似法案。与其他的法案一样,该法案澄清了在满足特定条件的情况下触发的智能合约或自行执行的协议在田纳西州也将具有法律效力。与交易有关的任何合同都不应仅仅因为合同中含智能合约的条款而被剥夺法律效力,有效性或可执行性。[2018/1/13]
Approve 操作代表授权代币转账权限给目标合约以便自动完成交易,常用于 DEX 交易授权,对于钱包来说,需要支持展示授权详情,并且支持修改授权额度和时间,避免因为无限授权额度,导致资金风险敞口变大,建议每次只授权需要交易的数量。
针对 Approve 授权是给一个 EOA 个人地址的场景,需要注意此操作存在极高的钓鱼行为,Approve 更多是授权给智能合约地址,授权给个人地址属于非常规的行为,需要钱包能够智能识别这种场景并提供相关的风险提示。
Permit 是在 EIP-2612 中提出的一个优化方案,用于改进 ERC-20 标准代币的交互方式。使用ERC-20 标准下进行 Approve 代币授权,需要支付 ETH 作为 Gas 费用。而通过 Permit 的方法,用户可以在链下私钥授权生成一个签名,拥有这个签名的人(如智能合约)可以直接调用 Permit 功能,从而进行代币转移,无需用户再支付 Approve 授权的 Gas 费用。
然而,EIP-2612 是 ERC-20 的扩展,所以 Permit 功能仅适用于新代币,现有的 ERC-20 代币无法从中受益。为了解决这个问题,Uniswap 提出了 Permit2 的标准,思路调用 ERC-20 Approve 来授权 Permit2 合约的操作权限。
慢雾提到,Permit 比 Approve 授权钓鱼更加危险,毕竟只要窃取到了签名就获得了授权。例如 DEX 里的挂单功能,只需要用户对某个消息进行签名,用户就可以在不支付Gas 的情况下将资产委托给 DEX 处理,但如果这个 DEX 是个钓鱼网站,伪造了恶意消息让用户签名,用户的资产就有可能丢失。Permit 签名作为链下行为,用户也很难注意到自己的签名是否已经泄露。
对于钱包来说,不仅需要可以解析 Permit 签名信息,为了避免钓鱼网站,也需要清晰展示来源网站,通过 Logo 和 URL,帮助用户判断其是否经过社区认证,是不是存在未知风险。
像是 Uniswap、Sushi、Tokenlon、OpenSea 和跨链桥等常见 DApp ,钱包也需要支持所见即所签,可以展示交易完成后预计的代币数量增加和减少的变化情况,帮助用户判断该笔交互是否符合预期,也可以从根源避免出现零元购的风险。
我们探讨了各种签名应用场景的潜在风险和应对策略,但值得注意的是,这只是冰山一角,实际上还有许多其他的风险尚未提及。
在区块链世界中,新的技术和应用不断涌现,带来了新的挑战和风险。无论是作为钱包开发者还是用户,都需要保持关注,理解并应对这些风险,以便更好地利用区块链技术带来的便利。
imToken
企业专栏
阅读更多
白话区块链
神译局
Gryphsis Academy
新浪科技
元宇宙之心
金色早8点
Web3小律
MarsBit
ForesightNews
吴说区块链
TokenInsight
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。