区块链钱包

区块链钱包

直观概念
区块链钱包,存储的仅仅是区块链帐户的私钥,其他相关概念都是通过私钥衍生出来的:比如帐户地址、帐户余额等等,并不是说有钱存储在钱包里面。

钱包的分类
钱包从管理权上分为托管式的和非托管式的。托管式的钱包:比如你在区块链交易所,交易所会自动给你生成一个软钱包,这样别人才能把资产转移到你的帐户里,但你的钱包的密钥都放在交易所上面加密保存,存在一定风险。非托管式的钱包:你自己管理私钥,通过软件、硬件等方式管理你自己的私钥,在需要转移账户上的资产时,用私钥做签名运算即可。

钱包从电子技术方面分为软件钱包和硬件钱包。 软件钱包一般是通过钱包APP来帮助生成私钥(通常会有助记词),然后在线上用区块链资产消费时,可以直接这些钱包APP进行支付,收款等方式。这类的钱包App特别多,基本上都声称数据存在本地,但安全性方面不好说。硬件钱包一般是通过一些安全硬件来实现,在需要签名使用时,通过USB等方式连接到电脑或手机,硬件层面直接做签名,不往外泄露任何私钥信息,安全性较高一些。

钱包从存储介质方面分为冷钱包和热钱包。冷钱包是通过物理的方式,把钱包的私钥信息(或者助记词)记录到物理介质上:比如手写笔记本,拓印的钢板等等(注意这些都要安全保存起来),主要用于备份私钥,防止软硬件钱包丢失后,帐户找不回的麻烦(区块链钱包因为是去中心化的,没有一个中心方负责管理,一旦丢失了密钥,整个帐户也就意味着丢失了,再也找不回来)。热钱包就是泛指前述的几种电子化的钱包,使用比较频繁。

非对称加密算法

这个算法很关键,区块链的核心基石就是来自于非对称加密算法,在比特币区块链中,大量的应用了椭圆曲线数字签名算法(ECDSA)来做非对称的加密和验证。算法的核心推导这里不多讲了,想了解可以去维基百科找一下相关论文,主要讨论一下他的应用。通过椭圆曲线算法,我们可以得出一对唯一的私钥(priv)和公钥(pubk)对(pair)。信息可以通过公开的公钥进行加密,但其他公钥并不能用这个公钥进行解密,只有私钥的持有者才能对加密的内容进行解密。反过来,私钥可以对公布的内容进行签名认证,其他人持有的(不同)私钥或公钥无法计算出相同的签名,而验证的时候不需要通过私钥,而是通过公钥就能做验证。所以基本是这两条应用路线:1)信息 → 公钥加密 → 中间渠道传播 → 私钥解密;2)内容(合约)→ 私钥签名 → 数据上链 → 公钥验证。当然,在比特币区块链中,验证使用的场景更多,加密的场景更适合于通信的场景。


私钥、公钥、地址之间的关系

以比特币区块链举例子,比特币区块链所有的交易信息都有地址(address)参与,该地址是从公钥派生(通过hash)出来的,而公钥是私钥通过椭圆曲线算法推导出来的。所以拥有私钥就能拥有一切。因为私钥本身都是比较长的字符串,不方便记(或者容易出现手写错误,导致丢失),所以很多钱包还提供了助记词帮助用更好的管理钱包密钥。助记词一般有12或者24个单词,每个单词都是通过真随机(注意区别计算机伪随机,当然这里的真随机也是对比计算机伪随机而言的,他引入了更多的外部熵,让自动推导成为不可能,有兴趣可以参考 https://www.random.org/ )的算法,从2048个固定的单词里面找出来的,每个单词代表具体的一个数字,如果是12位的助记词,那么总共有 2048^12 = 5.44 * 10^39 个地址空间。如果是24位的助记词,总共有 2048^24 = 2.96 * 10^79 个地址空间。通过这些助记词的组合,可以推算出私钥,从而掌握整个帐户的控制权。可以这么理解,私钥就是你的身份权,有了私钥就能控制整个钱包。公钥是用于交易时,区块链用来验证私钥的签名是否有效的,而地址是为了接受区块链资产的。有些钱包能通过一个私钥管理N多个帐户,怎么实现呢? 通过私钥再通过其他算法,派生出二级、三级私钥,这些二级、三级私钥无法反推根私钥,但根私钥可以推导出这些二级、三级私钥并通过索引号获得,再用这些私钥生成公钥和区块链帐户地址,从而实现一个钱包管理N多帐户的能力。就跟你的现实世界钱包里,有多个银行的银行卡一样(仅比喻,实际意义不一样)

私钥:根据椭圆曲线推导出公钥。私钥在转移资产的使用,需要对交易做签名,已代表这笔交易确实是这个帐户本身发起的(别人没有私钥,签名也没用,而用公钥一验证就知道真伪)

公钥:根据公钥的hash能计算出地址。公钥本身用于区块链验证一笔交易签名的真实性,区块链通过公钥可以轻松确定一笔交易是否真实来自某个帐户的合法签名。

地址:用来接受区块链资产。理论上公钥也可以,为什么还需要地址?很简单对于一个资产接收方,他没必要给你透露公钥,给你的hash过的地址就可以了,这样就保证了一定的隐私性。


钱包的应用

我们知道,钱包里面存储的是私钥,这个私钥不仅仅是能代表一个区块链帐户,也能代表你这个唯一的人。就是私钥本身,在帐户体系里面,既是唯一的ID,又是复杂的密码。所以区块链钱包除了资产管理之外,还有一个功能就是用于登陆验证。由于区块链钱包的帐户都是完全控制在用户自己手上的,所以隐私性极强。现在很多基于区块链钱包做登陆的公司,也是属于在web3体系里被青睐的公司,登陆系统的市场规模是年几千亿美金的规模,还是不小的。未来如果钱包的流行度越来越高,匿名登陆的能力也会随之起来,可能会在互联网掀起一轮新的隐私革命。除了隐私方面,还有就是安全了。目前互联网世界的数据泄露事件85%以上都是因为密码泄露引起的,所以目前很多公司也在掀起一轮去密码的革命(passwordless),以对抗日益严重的密码泄露等安全问题。区块链钱包在这方面有更大的优势,除了无密码,还非常隐私。需要指出的是,区块链的钱包,是完全不需要依赖区块链来运行的,只要任何能保存私钥和公钥对的软硬件终端都能生成和使用,差别是区块链的验证算法都是公开的,验证也是强制的,不存在中间人操作。也就是DID,其实没有D(第一个D)也是可以行的。

分享到:

发表评论

昵称

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

沙发空缺中,还不快抢~