如果用户能够自由交互而无需支付高额gas费,Web3将会被大规模的应用。因此,无Gas交易被赋予很多的期望。但关于无Gas签名有很多误解。在本文中,我们将介绍四种类型的消息签名,帮助用户了解在以太坊或其他EVM兼容的区块链上签署消息的相关风险。签名的四种类型
这些签名类型对于web3中的所有Etherean来说绝对是至关重要的。类型#1-身份证明
这主要是web3中签名的用途。虽然没有统一的标准,但一些常见的事项包括服务条款、钱包地址,有时还有一个防止重放攻击的随机数,以及可能还有一个短字符串来确保你在软件钱包上签署的信息与在硬件钱包上是一样的。具体示例:
FuseDAO向Allbridge提供3万美元资助用于构建Fuse跨链桥:1月16日消息,跨链桥Allbridge宣布,Fuse Network即将与Allbridge集成。Allbridge会将Fuse添加到支持的网络列表中,在Fuse和目前支持的10条链之间架起一座桥梁。FuseDAO将向Allbridge提供3万美元的赠款,用于支持开发通往Fuse的新桥。[2022/1/16 8:53:09]
DAO Maker的Vesting合约遭到黑客攻击,攻击者最终获利近400万美金:据慢雾区情报,DAO Maker的Vesting合约遭到黑客攻击。DeRace Token (DERC),Coinspaid (CPD),Capsule Coin (CAPS),Showcase Token (SHO)都使用了Dao Maker的分发系统,在DAO Maker中进行持有者发行(SHO)时因DAO Maker合约被攻击,即SHO参与者的分发系统中出现了一个漏洞:init未初始化保护,攻击者初始化了init的关键参数,同时变更了owner,然后通过emergencyExit将目标代币盗走,并兑换成了DAI,攻击者最终获利近400万美金。
黑客利用Vesting合约中的漏洞,将Vesting合约中的代币提走,如下是简要分析:
对Vesting合约的实现合约0xf17ca0e0f24a5fa27944275fa0cedec24fbf8ee2进行反编译得到如下信息:
1. Vesting合约中的init函数 (函数签名:0x84304ad7),没有对调用者进行鉴权,黑客通过执行init函数成为Vesting合约的Owner。
2. Owner可以执行Vesting合约中的emergencyExit函数,进行紧急提款。
利用同样的手法其攻击其他Vesting合约,转移如下代币:DeRace Token (DERC)、Coinspaid (CPD)、Capsule Coin (CAPS)、Showcase Token (SHO)。[2021/9/4 22:59:35]
Bondly与合作伙伴MANTRA DAO共同创建了五个新质押池:据官方消息,Bondly与合作伙伴MANTRA DAO共同创建了五个新质押池,用户将可以在Mantra Dao的平台上质押代币以赚取BONDLY,以下质押池将在推出后提供,开放时间为30天。总额达到125万的BONDLY代币已经投放到五个质押池里,并且伴随着新用户进入质押池,APY也将通过MANTRA DAO的控制板不断更新。[2021/6/4 23:10:47]
类型#2-类型签名
通常,智能合约的某些部分依赖链下签名来实现。这些类型的签名将打破所有的输入,这将是合约互动的一部分。非常方便,但如果您有公开批准,则需要小心。正如我们在批准文章中所讨论的那样,虽然您可以在这个示例中准确地知道他们在做什么,但需要确保显示这些类型的签名请求的来源是有信誉的。例如,如果在Opensea之外得到了如图所示的签名批准请求,应非常小心,且永远不要签名。
MakerDAO发起关于添加NS-DROP为抵押品类型的治理投票:据官方博客消息,1月25日,MakerDAO发起关于添加NS-DROP作为Maker协议中的抵押品类型的治理投票,该投票从北京时间1月26日12:00开始,将持续三天。[2021/1/26 13:30:02]
类型#3-混淆的十六进制签名
现在仅仅因为某些东西没有符合上述EIP-712标准的精美类型签名,并不意味着它是一个局。然而,这确实意味着你是在信任对方,不管你签署的是什么类型的信息,因为你基本上是在"盲签"一个信息。由于Seaport合约的升级,这些天我们没有在Opensea上看到这些杠杆,但我仍然会在签署这些类型的消息之前暂停一下,特别是钱包地址具有公开批准。
类型#4-ETH_Sign-过时且有点可怕
这是一种非常危险的签名类型,基本上是以太坊的“空白支票”。请求者可以用它来签署任何带有你私钥的交易。好消息是,如果被请求,Metamask会显示一个大的红色警告。它有效地允许某人,如果他们正确地制作签名有效载荷,能够为了他们自己的利益“重放”交易,例如向自己发送ETH。这不像被盗的wETH、NFT和其他代币那样依赖于批准。这是唯一存在这种风险的签名类型,因为很少有服务合法使用它,通常应不惜一切代价避免!
关于签名介绍,进一步文章:IntrotoCryptographyandSignaturesinEthereumhttps://medium.com/immunefi/intro-to-cryptography-and-signatures-in-ethereum-2025b6a4a33d
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。