河南漫云科技有限公司
主营产品: 元宇宙系统开发、元宇宙源码、NFT数字藏品软件开发,nft智能合约开发,盲盒系统app开发搭建,nft源码系统,网络技术开发,软件技术开发,软件定制,技术开发,信息技术服务
TP钱包Web开发
发布时间:2024-05-11

  

  很多朋友对Web3网站中连接钱包和签名的操作一直处于云里雾里的状态,不清楚连接钱包和签名到底安不安全?会不会被盗U?

  Noah就把连接钱包和签名这几件事情彻底讲清楚,并且手把手带你实现一个连接钱包、签名和管理用户权限的实战案例。技术部分会讲解在实际项目中如何去做钱包连接、签名,以及在后端和数据库如何去记录钱包和管理用户,等于是一个全栈内容。

  所以本篇内容适合不懂技术的朋友来了解概念,同时也适合懂技术的朋友来学习技术。我相信这会是很多kaifaWeb3项目的小伙伴都有的一个刚需。

  概念篇

  相信钱包这个概念每个玩Web3的朋友都已经非常熟悉了,我就简单讲一下吧,拉平大家的认知。

  什么是钱包?

  Web3的钱包和支付宝、微信支付这类软件的作用几乎是一样的,用来管理和存储资产。其中有一点细微的区别,也是Web3去中心化的基础,那就是Web3的钱包是可以存储在本地的,只有你一个人拥有它。而支付宝和微信支付这类软件是存储在阿里和腾讯的服务器里面的,如果它们的服务器出现故障,或者你的账号触犯了它们公司的一些规定,都可能导致你的资产无法被取出。但是Web3永远都不会有这种情况,除非有全世界的所有矿工集体消失,但我认为未来几十年里应该不会出现这种情况。

  去中心化还有一个好处,那就是几乎所有的DApp都可以通过一个通用的钱包来连接,不需要每个网站都去注册一个账号。而你在网站中的资产都可以存储到上,几乎没有人能篡改你的数据,除非他有能力同时控制世界上大多数的矿工。

  现在大家应该已经知道钱包的作用了,它是实现去中心化的基础和必要的工具之一。

  那么钱包到底是什么呢?有人认为Metamask这类软件就是钱包,也有人认为安币这类交易所里的账号就是钱包。实际上钱包的本质就是一串文字。你可以把它放到Metamask这类钱包软件里,也可以存储到电脑、手机的记事本上,甚至你可以拿一张纸去把它记下来,或者为了安全,你可以用脑子把它记下来。

  创建一个Web3钱包是非常容易和快速的,现在有很多软件可以帮我们在1秒内创建一个钱包,如果你懂代码的话,还可以通过代码批量创建钱包。

  钱包的合法性是不需要被任何机构认可的,没有实名认证,没有fenghao之类的操作。所以一个人可以拥有一万个钱包,或者更多。

  私钥、地址和助记词

  组成钱包的那一串文字就是私钥。你可以简单把它理解成密码,虽然它们并不完全一样。密码是不可以修改的,一旦遗忘,那么你将永远失去这个钱包。一旦把密码透漏给其他人,那么你的钱包将永远不再安全。正因为Web3的钱包完全自己独有,所以要自己去承担对应的风险和损失,这是有利有弊的。

  这里面其实存在一个痛点,那就是大家这么多年来已经在Web2的模式下熏陶严重,习惯性的让中心化的服务器帮我们记录所有能记录的东西,包括资产。所以很多人很难用一些简单有效的方式记录自己的私钥。有一些公司发现了这个痛点,就研发了一种叫做硬件钱包的产品来帮助用户记录钱包的私钥。

  硬件钱包的形式通常是一个U盘,或者一个像手机的设备。或者一个从来不联网的手机也可以被称作是硬件钱包。做硬件钱包比较出名的有几家,其中度高的是Legder。这里插播一个广告,如果你想买硬件钱包可以联系我哈。

  对应的软件钱包就是一个网站、一个浏览器插件或者一个App。这种软件钱包有很多,市面上比较出名的有几十个上百个。其中老牌、度高的是Metamask。由于你使用钱包,就等于把身家性命都托付给了软件钱包,所以选择一个靠谱的软件钱包是很有必要的。软件钱包的原则就是不联网、私钥只存储在你的设备本地。

  除了私钥之外,钱包还有另外两个概念比较重要,分别是地址和助记词。

  比如别人要给你转账,需要知道你的账户,那地址就表示了你的账户。地址是可以通过私钥推导出来的,但是地址无法反向推导私钥。这种不可逆的算法保证了我们可以正常接收和发送资产给其他用户。

  助记词和私钥有点像,都可以推导出来地址。但是私钥是一串毫无规律可言的16进制字符串,难以记忆,相反助记词更加语义化,容易被人记住。所以从用户角度看,助记词的优势就是为了帮助你记忆账户的,当然技术上两者还是有区别的,但是这个我只讲概念,所以先忽略技术上的差异。助记词的形式就是按照顺序排列的英语单词列表。不同的协议规范生成的助记词不同,bitebi和以太坊的账户都是基于BIP39规范实现的,一般会从2048个单词中生成五种长度的助记词,长度分别是12、15、18、21和24。但是由于长度太长难以记忆,所以常见的软件钱包一般是12个长度的单词,像硬件钱包更多使用的是24位。通过记忆这批单词,一样可以达到和私钥完全一致的效果。

  以上就是Web3钱包的基础概念。

  连接钱包和钱包签名到底安不安全?

  接下来回到主题,聊聊连接钱包和签名是不是安全的。

  首先聊一下连接钱包。这一步的作用仅仅是让网站知道你的地址,通常来说是没关系的。如果你不想让别人知道你的地址,那么网站就无法区别用户了,你也无法正常使用网站。当然你也可以拿一个新的钱包进行连接。如果和Web2做一个类比的话,有点像注册。但是每次打开网站都需要连接钱包,所以逻辑上不完全一致。

  接下来是签名。签名的作用仅仅是验证你的身份,通常来说也是没关系的。只知道地址并不能验证你真的是你,因为这是可以被冒充的。签名的过程只是通过私钥对一些信息进行加密,然后服务器去解密,对结果进行对比。不过签名分几类,类仅仅是签名,不涉及链上交互,这类是没关系的。第二类是链上交互,可能会消耗一些Gas,但是不涉及资产转移,不过你要看清楚合约的内容,有些授权之类的方法一定要谨慎。因为一旦授权给了一些盗U的地址,那你的钱就会被别人全部转走。第三类是交易,也就是发币给其他地址。这种是必须的,你只需要检查好转账的额度和地址正确就可以了。

  所以我们的结论就是:连接钱包是安全的,起码不会造成任何资产上的损失。钱包签名是有风险的,需要检查签名的信息是否正确。


展开全文
商铺首页 拨打电话 QQ联系 发送询价