如果觉得我的内容对你有帮助,欢迎关注我的推特账号和小红书账号:飞猪聊web3,获取更多web3的安全知识、基本技能和实用资讯
如果需要更具体、系统、有针对性的教程指导,欢迎大家私聊咨询哦

从之前我分析过的各种BAYC被盗案例中,大家其实可以发现,在助记词和私钥没有泄露的情况下,造成被盗最主要的两个操作就是:不当授权+签名。
关于合约授权的含义及注意事项,之前我已经写过一条单独的线程来解释
在今天的线程中,我会用简单通俗的语言来给大家解释什么是签名、签名的种类、签名存在的风险、如何读懂签名以及如何避免错误签名等问题。希望能帮助大家更加深入的理解签名操作避免不当签名造成的资产损失。
在解释签名的概念之前,大家需要先回顾一下几个相关的名词,我用白话给大家进行了解释,相信会比专业的术语更能方便大家理解
区块链:多人共同维护的记账系统
加密资产:以数据形式记录在区块链账本中的资产,由密码学原理确保交易安全及不可伪造
地址:区块链中的个人账户,由加密算法生成无需中介参与
私钥:管理地址及地址上资产的工具
钱包:管理私钥的工具
如果感觉对这些概念理解的还不够充分,可以回头复习一下我写过的人话讲透web3概念系列线程
理解以上概念之后,我们再来看一下,区块链中发起一笔交易流程是怎样?
用户(地址)发起交易请求;
客户端(钱包应用)基于请求构建交易,交易中包含关键信息如发送地址、接收地址和交易相关数据等;
为了验证发起交易的用户身份,用户需要利用私钥在客户端对生成的交易信息进行签名;
客户端收到签名后的信息会把信息发送给节点,节点对签名进行验证,确认无误之后进行广播打包出块等操作;
在区块链账本中,一笔交易的简化流程如下图所示

从图中可以看出,在区块链记账体系中,用户发起的任何交易都需要用自己的私钥进行签名以进行身份验证和确保数据不会被篡改,具体的原理涉及到非对称加密等数学原理,这里不做详细介绍。大家只要明白交易发起方用私钥签名后,接收方可以利用发送方的公钥(地址)对签名进行验证,能够验证成功就可以证明交易确实由发起方发起且交易信息没被篡改,因为交易信息的任何变化都会导致签名发生变化,进而导致签名无法被成功验证。
说到这里,可能有的小伙伴会比较怀疑,你说任何交易都需要签名,但是在钱包里进行转账交易没有涉及到签名呀?还有进行授权的过程中也没看到哪里需要签名呀?
在实际操作中,我们通过钱包来进行转账交易和授权的操作确实看不到签名的环节,但这并不意味着签名这一步骤不存在,而是钱包为了方便用户操作把签名的步骤跟其他操作打包在一起,从而让用户无法感知罢了,比如转账过程的签名是包含在发起交易的过程中,而授权的过程中也包含了对交易签名的步骤,大家通过钱包输入密码的过程其实就是在利用私钥进行签名。
上文我们说过了,签名的主要作用有两个:1验证用户身份真实无误 2确保交易数据不被篡改,所以一旦对交易进行了签名,就意味着用户认可该笔交易的真实性,那么交易就会被节点广播打包上链。所以签名对于资产安全也是一个至关重要的环节,看不懂的签名一定不要乱签,不然可能会在不知不觉中造成资产损失。
下面我们来说一下我们经常碰到的几种签名类型
签名根据目的不同,也有不同的类型,有的签名是为了确认所有权,比如必须持有某个NFT才能加入某个discord,在加入时就会通过Collab.Land去验证所有权(图1);有些签名是为了同意服务提供方的服务条款,比如登陆os时进行的签名(图2)有的签名目的是为了确认交易条件,比如在os上架已经授权过的NFT时的签名(图3)。



上面的签名都可以看到发起签名的来源以及签名的原始信息,所以叫做明文签名,还有一种签名只是一串字符,看不出任何和签名相关的信息,这种签名叫做盲签名,是非常危险的一种签名,因为你并不清楚你签了什么内容,所以碰到盲签的时候,除非你清楚的知道你在哪里在签什么,否则应该立刻停下来,搞清楚之后再进行
下图1是在x2y2网站上对NFT上架的签名,如果你是在x2y2官网上进行NFT上架的操作,那是可以正常签署的;但是图2是一种特别危险的eth_sign,它的危险性在于签署之后可以被用于任何交易,所以又被叫做以太坊空白支票签名。 因为这种签名的危险性过高,所以签署此签名时metamask钱包会特意用红色文字进行提示。大家如果看到此类签名一定要第一时间拒绝,千万不要签署。


盲签看不到交易详情,所以不确定的情况下一定不能随意盲签;那么明文签名大家能不能看得懂呢?下面我们就来了解一下如何阅读明文签名,理解签名传递的具体信息,以下是同一个NFT在blur(图1)、os(图2、3)、looksrare(图4)上架时的不同的签名页面




通过比较,大家其实可以看出,签名看似复杂,说白了只是要传递要出售的NFT的具体信息,所以它需要包含一些交易信息,比如
出售地址(签署签名的地址)
出售的NFT详情(具体系列以及tokenid)
出售的价格(包含卖家收到的价格、支付给交易市场的交易费用、支付给项目方的费用)
如果是定向出售,还会有购买者的地址
以上这些内容并不是所有签名都必须包含的,比如如果在blur上交易就没有任何交易费用,挂单价格就是实际收到的价格;在x2y2上交易没有版税,只有0.5%的服务费,所以实收价格比挂单价少0.5%
不同交易市场对于同一个概念可能会有不同的表述方式,比如blur上称呼签署签名的地址叫做trader、os叫offerer、looks叫signer;同时不同交易市场的签名也有不同的构成方式,比如blur、os、looks这3个市场对于交易费用的设定都不同;但是不管怎么变化,需要把握的一个原则就是,如果是要出售NFT,一定会有出售价格和接收货款的地址(即签名地址),很多因为签名造成资产损失的案例中,失主进行签名的内容往往只包含了要出售的NFT以及要接收NFT的地址,没有涉及费用的表述,这就意味着要免费赠送给对方,如果这不是自己想要的操作就一定不要签署。
以下是通过os进行私人交易(出售价格为0元的一个签名信息),大家看到此类签名的时候一定要提高警惕,因为签署就意味着把自己的资产无偿赠与了对方。

要破解针对签名的种种骗局,可以从两个方面去识别
首先要认真核对签名请求的发起者和签名调用的合约是否一致,下图中,seaport就是os升级后的合约,如果签名请求的发起者不是opensea.io,就要立刻停止交易。

其次,签名前还需要仔细阅读签名内容,特别要注意核对:出售价格、接收钱款的地址以及签署的NFT是否是自己想要出售的。
最后:如果一旦误签名,要立刻取消该地址在所有平台的全部NFT挂单交易,同时立刻把全部的资产和NFT转移到安全的钱包中。
希望大家都能意识到签名中蕴含的巨大风险,认真检查每次签名,避免出现签名造成的资产损失
本文参考了 @evilcos @Wii_Mee两位老师的以下两篇文章,非常感谢两位大佬在科普web3安全知识方面不遗余力的努力,帮助很多小伙伴避免了很多坑。
https://twitter.com/Wii_Mee/status/1577774865439870976
https://mp.weixin.qq.com/s/E-LSN5eYwWhCQOH46-XyNg
如果觉得我的内容对你有帮助,欢迎关注我的推特账号和小红书账号:飞猪聊web3,获取更多web3的安全知识、基本技能和实用资讯
如果觉得我的内容对你有帮助,欢迎关注我的推特账号和小红书账号:飞猪聊web3,获取更多web3的安全知识、基本技能和实用资讯
如果需要更具体、系统、有针对性的教程指导,欢迎大家私聊咨询哦

从之前我分析过的各种BAYC被盗案例中,大家其实可以发现,在助记词和私钥没有泄露的情况下,造成被盗最主要的两个操作就是:不当授权+签名。
关于合约授权的含义及注意事项,之前我已经写过一条单独的线程来解释
在今天的线程中,我会用简单通俗的语言来给大家解释什么是签名、签名的种类、签名存在的风险、如何读懂签名以及如何避免错误签名等问题。希望能帮助大家更加深入的理解签名操作避免不当签名造成的资产损失。
在解释签名的概念之前,大家需要先回顾一下几个相关的名词,我用白话给大家进行了解释,相信会比专业的术语更能方便大家理解
区块链:多人共同维护的记账系统
加密资产:以数据形式记录在区块链账本中的资产,由密码学原理确保交易安全及不可伪造
地址:区块链中的个人账户,由加密算法生成无需中介参与
私钥:管理地址及地址上资产的工具
钱包:管理私钥的工具
如果感觉对这些概念理解的还不够充分,可以回头复习一下我写过的人话讲透web3概念系列线程
理解以上概念之后,我们再来看一下,区块链中发起一笔交易流程是怎样?
用户(地址)发起交易请求;
客户端(钱包应用)基于请求构建交易,交易中包含关键信息如发送地址、接收地址和交易相关数据等;
为了验证发起交易的用户身份,用户需要利用私钥在客户端对生成的交易信息进行签名;
客户端收到签名后的信息会把信息发送给节点,节点对签名进行验证,确认无误之后进行广播打包出块等操作;
在区块链账本中,一笔交易的简化流程如下图所示

从图中可以看出,在区块链记账体系中,用户发起的任何交易都需要用自己的私钥进行签名以进行身份验证和确保数据不会被篡改,具体的原理涉及到非对称加密等数学原理,这里不做详细介绍。大家只要明白交易发起方用私钥签名后,接收方可以利用发送方的公钥(地址)对签名进行验证,能够验证成功就可以证明交易确实由发起方发起且交易信息没被篡改,因为交易信息的任何变化都会导致签名发生变化,进而导致签名无法被成功验证。
说到这里,可能有的小伙伴会比较怀疑,你说任何交易都需要签名,但是在钱包里进行转账交易没有涉及到签名呀?还有进行授权的过程中也没看到哪里需要签名呀?
在实际操作中,我们通过钱包来进行转账交易和授权的操作确实看不到签名的环节,但这并不意味着签名这一步骤不存在,而是钱包为了方便用户操作把签名的步骤跟其他操作打包在一起,从而让用户无法感知罢了,比如转账过程的签名是包含在发起交易的过程中,而授权的过程中也包含了对交易签名的步骤,大家通过钱包输入密码的过程其实就是在利用私钥进行签名。
上文我们说过了,签名的主要作用有两个:1验证用户身份真实无误 2确保交易数据不被篡改,所以一旦对交易进行了签名,就意味着用户认可该笔交易的真实性,那么交易就会被节点广播打包上链。所以签名对于资产安全也是一个至关重要的环节,看不懂的签名一定不要乱签,不然可能会在不知不觉中造成资产损失。
下面我们来说一下我们经常碰到的几种签名类型
签名根据目的不同,也有不同的类型,有的签名是为了确认所有权,比如必须持有某个NFT才能加入某个discord,在加入时就会通过Collab.Land去验证所有权(图1);有些签名是为了同意服务提供方的服务条款,比如登陆os时进行的签名(图2)有的签名目的是为了确认交易条件,比如在os上架已经授权过的NFT时的签名(图3)。



上面的签名都可以看到发起签名的来源以及签名的原始信息,所以叫做明文签名,还有一种签名只是一串字符,看不出任何和签名相关的信息,这种签名叫做盲签名,是非常危险的一种签名,因为你并不清楚你签了什么内容,所以碰到盲签的时候,除非你清楚的知道你在哪里在签什么,否则应该立刻停下来,搞清楚之后再进行
下图1是在x2y2网站上对NFT上架的签名,如果你是在x2y2官网上进行NFT上架的操作,那是可以正常签署的;但是图2是一种特别危险的eth_sign,它的危险性在于签署之后可以被用于任何交易,所以又被叫做以太坊空白支票签名。 因为这种签名的危险性过高,所以签署此签名时metamask钱包会特意用红色文字进行提示。大家如果看到此类签名一定要第一时间拒绝,千万不要签署。


盲签看不到交易详情,所以不确定的情况下一定不能随意盲签;那么明文签名大家能不能看得懂呢?下面我们就来了解一下如何阅读明文签名,理解签名传递的具体信息,以下是同一个NFT在blur(图1)、os(图2、3)、looksrare(图4)上架时的不同的签名页面




通过比较,大家其实可以看出,签名看似复杂,说白了只是要传递要出售的NFT的具体信息,所以它需要包含一些交易信息,比如
出售地址(签署签名的地址)
出售的NFT详情(具体系列以及tokenid)
出售的价格(包含卖家收到的价格、支付给交易市场的交易费用、支付给项目方的费用)
如果是定向出售,还会有购买者的地址
以上这些内容并不是所有签名都必须包含的,比如如果在blur上交易就没有任何交易费用,挂单价格就是实际收到的价格;在x2y2上交易没有版税,只有0.5%的服务费,所以实收价格比挂单价少0.5%
不同交易市场对于同一个概念可能会有不同的表述方式,比如blur上称呼签署签名的地址叫做trader、os叫offerer、looks叫signer;同时不同交易市场的签名也有不同的构成方式,比如blur、os、looks这3个市场对于交易费用的设定都不同;但是不管怎么变化,需要把握的一个原则就是,如果是要出售NFT,一定会有出售价格和接收货款的地址(即签名地址),很多因为签名造成资产损失的案例中,失主进行签名的内容往往只包含了要出售的NFT以及要接收NFT的地址,没有涉及费用的表述,这就意味着要免费赠送给对方,如果这不是自己想要的操作就一定不要签署。
以下是通过os进行私人交易(出售价格为0元的一个签名信息),大家看到此类签名的时候一定要提高警惕,因为签署就意味着把自己的资产无偿赠与了对方。

要破解针对签名的种种骗局,可以从两个方面去识别
首先要认真核对签名请求的发起者和签名调用的合约是否一致,下图中,seaport就是os升级后的合约,如果签名请求的发起者不是opensea.io,就要立刻停止交易。

其次,签名前还需要仔细阅读签名内容,特别要注意核对:出售价格、接收钱款的地址以及签署的NFT是否是自己想要出售的。
最后:如果一旦误签名,要立刻取消该地址在所有平台的全部NFT挂单交易,同时立刻把全部的资产和NFT转移到安全的钱包中。
希望大家都能意识到签名中蕴含的巨大风险,认真检查每次签名,避免出现签名造成的资产损失
本文参考了 @evilcos @Wii_Mee两位老师的以下两篇文章,非常感谢两位大佬在科普web3安全知识方面不遗余力的努力,帮助很多小伙伴避免了很多坑。
https://twitter.com/Wii_Mee/status/1577774865439870976
https://mp.weixin.qq.com/s/E-LSN5eYwWhCQOH46-XyNg
如果觉得我的内容对你有帮助,欢迎关注我的推特账号和小红书账号:飞猪聊web3,获取更多web3的安全知识、基本技能和实用资讯
中心化交易所之欧易、币安之法币交易、币币交易篇
如果觉得我的内容对你有帮助,欢迎关注我的推特账号 如果需要更具体、系统、有针对性的教程指导,欢迎大家私聊咨询在完成创建账户、应用下载、KYC认证之后,今天我们就可以学习跟中心化交易所相关的最重要内容:如何获取加密资产? 如果还没有创建交易所账户的小伙伴,可以移步创建交易所账户的教程 学习,学习完毕之后再来学习本教程 在这个环节中,我们会重点学习欧易和币安交易所的法币交易(包括法币入金、法币出金)和币币交易的操作 法币交易 法币就是法定货币,即国家发行的货币,比如人民币,美元等;法币交易就是通过法定货币来购买或出售数字货币资产,对于新手来说,如果我们想要拥有数字货币,必须要先用法币来进行购买,目前大部分交易所都不支持人民币直接存到交易所里去购买数字货币资产,所以就需要用户和用户点对点进行交易,通过向持币的卖家打款,平台做中间担保人的方式来完成相应的交易,类似于淘宝官方作为买方和卖方的中间方的过程,有个“确认收货”才放款的机制,这里就是卖方点确认收到法币,官方才会放币给买方。 因为这种购买行为是发生在用户之间,而不是跟交易所进行的,所以这种交易又被叫做C2C交易或者场外交易。法币交易...
Taker/Maker/挂单/吃单,傻傻分不清楚?一篇文章搞懂币币交易的手续费
如果觉得我的内容对你有帮助,欢迎关注我的推特账号 如果需要更具体、系统、有针对性的教程指导,欢迎大家私聊咨询当我们在交易所进行币币交易的时候,会需要支付一定的交易手续费,有的小伙伴对于手续费的问题会感到很迷惑,今天我们就来一起学习一下关于币币交易手续费的各种问题。 交易手续费用什么币种来支付? 交易手续费是以我们想要获得的那个币种来支付的 举例:用户在BTC/USDT币对交易中,使用USDT买入得到BTC,则扣除BTC作为手续费,卖出BTC得到USDT,则扣除USDT作为手续费。 交易手续费的影响因素有哪些? 交易手续费跟用户的身份等级和进行的操作有关 用户可以在自己的交易所主页查看自己的用户等级,然后可以去交易所的费率标准页面查看不同等级对应的费率。通常来说:等级越高的手续费越优惠,等级一般跟持仓和交易量有关系。 下图为okex的LV1级别的用户手续费,可以看到:挂单(Maker)成交手续费是0.08%,吃单(Taker)成交手续费是0.1%挂单(Maker)和吃单(Taker)有什么区别? 在交易的时候会有两种身份挂单(Maker)和吃单(Taker) **挂单(Maker)...
去中心化钱包的概念、分类、结合metamask钱包使用理解去中心化钱包的概念
如果觉得我的内容对你有帮助,欢迎关注我的推特账号 如果需要更具体、系统、有针对性的教程指导,欢迎大家私聊咨询哦加密货币钱包在web3的世界里,不仅可以充当我们链上资产存储工具,更重要的是可以记录个人链上活动的情况,相当于个人链上身份的证明,所以加密货币钱包在我们探索web3的世界里扮演着一个非常重要的角色,我们几乎所有的链上活动都跟钱包有着千丝万缕的联系,所以在web3的世界里,学会使用加密货币钱包是一个必不可少的技能。 今天我们就简单介绍一下加密货币钱包的相关概念,并会以Metamask钱包为例给大家详细解释一下钱包使用的基本操作。 概念解释 一加密钱包的概念 简单来说,钱包就是一个查看和操作数字货币资产的操作程序;说的再复杂点,钱包就是管理私钥,公钥(地址)的工具,至于什么是私钥,什么是公钥,我们后面再详细介绍。 我们可以用银行来跟钱包做一个类比,从管理资产的角度来说,钱包和银行的功能是类似的,都可以帮我们管理资产,对资产进行操作;但是钱包和银行最本质的区别在于,资产的真正控制权不同,钱包的真正控制权在掌握钱包私钥/助记词的用户手里,用户不发出操作指令,钱包服务商是没办法对资...
中心化交易所之欧易、币安之法币交易、币币交易篇
如果觉得我的内容对你有帮助,欢迎关注我的推特账号 如果需要更具体、系统、有针对性的教程指导,欢迎大家私聊咨询在完成创建账户、应用下载、KYC认证之后,今天我们就可以学习跟中心化交易所相关的最重要内容:如何获取加密资产? 如果还没有创建交易所账户的小伙伴,可以移步创建交易所账户的教程 学习,学习完毕之后再来学习本教程 在这个环节中,我们会重点学习欧易和币安交易所的法币交易(包括法币入金、法币出金)和币币交易的操作 法币交易 法币就是法定货币,即国家发行的货币,比如人民币,美元等;法币交易就是通过法定货币来购买或出售数字货币资产,对于新手来说,如果我们想要拥有数字货币,必须要先用法币来进行购买,目前大部分交易所都不支持人民币直接存到交易所里去购买数字货币资产,所以就需要用户和用户点对点进行交易,通过向持币的卖家打款,平台做中间担保人的方式来完成相应的交易,类似于淘宝官方作为买方和卖方的中间方的过程,有个“确认收货”才放款的机制,这里就是卖方点确认收到法币,官方才会放币给买方。 因为这种购买行为是发生在用户之间,而不是跟交易所进行的,所以这种交易又被叫做C2C交易或者场外交易。法币交易...
Taker/Maker/挂单/吃单,傻傻分不清楚?一篇文章搞懂币币交易的手续费
如果觉得我的内容对你有帮助,欢迎关注我的推特账号 如果需要更具体、系统、有针对性的教程指导,欢迎大家私聊咨询当我们在交易所进行币币交易的时候,会需要支付一定的交易手续费,有的小伙伴对于手续费的问题会感到很迷惑,今天我们就来一起学习一下关于币币交易手续费的各种问题。 交易手续费用什么币种来支付? 交易手续费是以我们想要获得的那个币种来支付的 举例:用户在BTC/USDT币对交易中,使用USDT买入得到BTC,则扣除BTC作为手续费,卖出BTC得到USDT,则扣除USDT作为手续费。 交易手续费的影响因素有哪些? 交易手续费跟用户的身份等级和进行的操作有关 用户可以在自己的交易所主页查看自己的用户等级,然后可以去交易所的费率标准页面查看不同等级对应的费率。通常来说:等级越高的手续费越优惠,等级一般跟持仓和交易量有关系。 下图为okex的LV1级别的用户手续费,可以看到:挂单(Maker)成交手续费是0.08%,吃单(Taker)成交手续费是0.1%挂单(Maker)和吃单(Taker)有什么区别? 在交易的时候会有两种身份挂单(Maker)和吃单(Taker) **挂单(Maker)...
去中心化钱包的概念、分类、结合metamask钱包使用理解去中心化钱包的概念
如果觉得我的内容对你有帮助,欢迎关注我的推特账号 如果需要更具体、系统、有针对性的教程指导,欢迎大家私聊咨询哦加密货币钱包在web3的世界里,不仅可以充当我们链上资产存储工具,更重要的是可以记录个人链上活动的情况,相当于个人链上身份的证明,所以加密货币钱包在我们探索web3的世界里扮演着一个非常重要的角色,我们几乎所有的链上活动都跟钱包有着千丝万缕的联系,所以在web3的世界里,学会使用加密货币钱包是一个必不可少的技能。 今天我们就简单介绍一下加密货币钱包的相关概念,并会以Metamask钱包为例给大家详细解释一下钱包使用的基本操作。 概念解释 一加密钱包的概念 简单来说,钱包就是一个查看和操作数字货币资产的操作程序;说的再复杂点,钱包就是管理私钥,公钥(地址)的工具,至于什么是私钥,什么是公钥,我们后面再详细介绍。 我们可以用银行来跟钱包做一个类比,从管理资产的角度来说,钱包和银行的功能是类似的,都可以帮我们管理资产,对资产进行操作;但是钱包和银行最本质的区别在于,资产的真正控制权不同,钱包的真正控制权在掌握钱包私钥/助记词的用户手里,用户不发出操作指令,钱包服务商是没办法对资...
always be curious
always be curious

Subscribe to littleflyingpiggy

Subscribe to littleflyingpiggy
<100 subscribers
<100 subscribers
Share Dialog
Share Dialog
No activity yet