托管钱包VS非托管钱包

钱包是什么

钱包,就是交易的出入口

可以类比银行卡,有一个银行卡号和银行卡密码,别人知道你的银行卡密码就可以向你转账,你拥有密码就可以支付。在web3里面,银行卡类比成公钥,支付密码类比成私钥。每个钱包创建的时候会生成一个公钥一个私钥,私钥只有你自己拥有。交易都需要通过私钥签名认证。

但是实际上,钱包并不含有ether或者其他token,代币都是存在链上的,钱包只是一个包含私钥公钥的字符串。用来证明你拥有这些资产。

在web3的世界,钱包不仅是一个储存资产的地方,钱包更像是一个地址(本质上也是一个地址),大家可以类比成web2的IP。用户通过连接钱包来访问网站

解释二者区别

托管钱包

  1. 定义:用户不拥有自己的私钥,私钥掌握在第三方交易所或者平台上。一般通过邮箱验证等方式进行交易,比较像web2的交易方式

  2. 优点:

    1. 由于使用的是中心化平台的服务,所以遇到问题的时候可以享受技术支持

    2. 私钥由第三方保护,因为托管在第三方服务器上

    3. 在平台的操作相对来说安全

  3. 缺点

    1. 最重要的一点是,您不持有私钥,本质上您并不“拥有”钱包的资产

    2. 其次,由于存储在第三方服务器上,所以有可能遭遇数据泄露或者外部黑客攻击;不过这样取决于平台的安全性。再者说,其实所有的服务器都是有受攻击的可能的。把资产存在银行里,银行甚至可能倒闭。这也就是去中心化账本和去中心化钱包的可贵之处,托管钱包有点违背了去中心化的精神(去中心化程度不高)

    3. 必须联网才能使用

非托管钱包

  1. 定义:用户拥有自己的私钥,所有交易都要经过自己的私钥签名,也就是说只有自己能访问自己的资金

  2. 优点:

    1. 如上所述,只有自己掌握私钥,拥有了资金的完全掌控权

    2. 部分钱包是支持不联网使用的

  3. 缺点:

    1. 托管钱包的交互更像传统web2的交互,不需要通过签名等方式,但是非托管钱包的交互需要涉及签名等,如有不慎可能会丢失钱包内的所有资金

    2. 如果丢失密钥,也就是等于丢失了资金,所以自己一定要保管好私钥

托管钱包对于Dapp的必要性

大部分项目都是直接用非托管钱包,基本只有中心化交易所用到了托管钱包。

今天想了很久也找了很多资料,在想为什么要引入托管钱包,对平台方有什么好处呢。保存用户的私钥如果服务器被攻击导致私钥泄露或者资金丢失,平台方要付很大的责任。

  1. 没有什么资料能说明这一点。所以类比web2的逻辑的话,只能从平台方本身的资金流去解释,托管钱包能让平台方有足够多的资金去做投资等等。比如最近的FTX事件,第二大交易所几天内宣布破产,就是因为挪用用户资金,有兴趣大家自行查阅。

  2. 平台形式应该也有一部分因素。交易所一般是有APP的,但是大部分web3项目基本是网页端,在网页端用钱包连接有天然的优势。网页版一般在PC端,可以用浏览器钱包连接;APP一般在移动端,要唤起第三方钱包,相对来说会麻烦一些。

总结

post image