区块链概论
  • 前言(ver 2023)
  • 第一章 区块链底层概念
    • 1.1 比特币白皮书
    • 1.2 区块链概念的学习路径
    • 1.3 区块链的共识
    • 1.4 什么是挖矿
    • 1.5 什么是分叉
    • 1.6 比特币的特色和局限
    • 1.7 小讨论
  • 第二章 区块链钱包
    • 2.1 钱包及账户里的秘密
    • 2.2 签名与多重签名
    • 2.3 交易与Gas
    • 2.4 双重支付(双花)
    • 2.5 电脑钱包安装
    • 2.6 手机钱包安装
    • 2.7 钱包的数据存储方式与特色
    • 2.8 钱包的安全性
    • 2.9 讨论与练习
  • 第三章 区块链1.0:数字加密货币
    • 3.1 加密货币的探索
    • 3.2 竞争币
    • 3.3 几个竞争币的简介
    • 3.4 课外阅读与思考
  • 第四章 区块链2.0:智能合约
    • 4.1 以太坊白皮书及以太坊解读
    • 4.2 连接钱包和使用以太坊登录
    • 4.3 通证(token)及其多样性
    • 4.4 智能合约(Smart Contract)
    • 4.5 ERC-20通证标准及其爆发性应用
    • 4.6 ERC-721非同质通证标准及其严重缺陷
    • 4.7 EIP-1155 多重通证标准
    • 4.8 ERC-1155:为区块链游戏而生
    • 4.9 挽救ERC-721纰漏的ERC-2569
    • 4.10 EIP-3712:多种批量同质化通证标准
    • 4.11 账户抽象化:EIP-86、EIP-2938、EIP-3074、ERC-4337与RIP-7560等等
      • EIP-7702:设置EOA账户代码
    • 4.12 ERC-792仲裁标准及其特色
    • 4.13 EIP-7777:Governance for Human Robot Societies?
    • 4.14以太坊EIPs
    • 4.15 智能合约和以太坊的价值
    • 4.16 区块链的定义与分类错误
    • 4.17 课外阅读与参考资料
  • 第五章 纷繁复杂的区块链应用案例
    • 5.0 艰难的探索
    • 5.1 小始祖彩色币
    • 5.2 去中心化交易所Bitshares
    • 5.3 去中心化交易所Kyber Network
    • 5.4 去中心化交易协议0x Protocol
    • 5.5 去中心化币币交易网络Bancor Network
    • 5.6 通用的去中心化交易协议Uniswap
    • 5.7 去中心化稳定币DAI
    • 5.8 DeFi 借贷平台 Compound
    • 5.10 闪电贷及EIP-3156:一种闪电贷标准
    • 5.11 DeFi 小小闪光点:Pool Together
    • 5.12 流支付
    • 5.14 启发
    • 5.15 参考资料与讨论
  • 第六章 区块链协作
    • 6.1 基础概念
    • 6.2 区块链3.0:DAO
    • 6.3 DAO 2.0
    • 6.4 开源的优势与必要
    • 6.5 区块链的激励式开放性协作
    • 6.6 如何保证协作安全
    • 6.7 参考资料与课后阅读
  • 第七章 智能合约开发语言
    • 7.1 智能合约与Solidity语言
  • 区块链入门极简版
    • 第一章 比特币的启迪
    • 第二章 以太坊的重大创新和严重过失
    • 第三章 Worldcoin:可耻的资本主义镰刀
    • 第四章 铲除匿名资本主义外衣下的诈骗和盗窃
  • A Beginner's Guide to Blockchain
    • 1. Insights from Bitcoin
    • 2. The Great Innovatio and Grave Mistakes of Ethereum
    • 3. Worldcoin:shameful capitalist sickle
由 GitBook 提供支持
在本页

这有帮助吗?

在GitHub上编辑
导出为 PDF
  1. 第二章 区块链钱包

2.7 钱包的数据存储方式与特色

根据数据存储方式的不同,数字加密货币钱包又可分为全节点钱包、轻钱包、分层确定钱包。

全节点钱包(Full Nodes Wallet):是指包含了全部历史交易数据的钱包。多被矿工所使用。其优点是安全可靠。缺点是要下载或更新全部数据后才能正常使用,有时候的确很慢,会影响到用户的使用。

轻钱包(Light Wallet):它通过一种名为“简易支付验证”(Simplified Payment Verification ,SPV)的方式来完成交易验证。简易支付验证节点即“SPV节点”又叫“轻量级节点”,相对应的钱包就是轻钱包。SPV节点只需下载区块头信息,而不下载每个区块中的所有交易信息,由此产生的不含交易信息的区块链,比完整区块链小了很多。“简易支付验证”只是“支付验证”而非“交易验证”,所以SPV节点可以证实某个交易的存在,但不能验证某个交易不存在,这个缺陷可被针对SPV节点的拒绝服务攻击或双重支付攻击所利用。为了防御这些攻击,SPV节点往往会随机连接多个节点,以增加与至少一个可靠节点相连接的概率。

轻钱包的优点是使用快捷、占用存储空间小。随着比特币的使用热潮,轻钱包越来越常用。但对于网络有问题的人来说缺点还是更新数据太慢,加上也不是百分百安全,因此近年其风头被分层确定钱包抢走。

分层确定性钱包(Hierarchical Deterministic Wallet, HD Wallet,HD钱包):常常也被称为多层确定钱包,也曾被称为双层确定钱包。

比特币最早的客户端(Satoshi client)是分层确定性钱包。分层确定性钱包会预先生成 100个随机私钥(对应于100个公钥和100个地址),并且每个私钥只使用一次。每个交易使用一个地址的概念是中本聪提出的。如果交易比较频繁,私钥可能很快会用光,然后再产生100个随机私钥,所以每次完成 100 个交易后,你必须备份钱包的wallet.dat文件,否则可能会丢失资产。这就意味着这个钱包必须被经常性地备份。每个私钥都必须备份,否则一旦钱包不可访问时,就可能无法找回钱包。这种钱包难以管理和备份,经常发生有人清空钱包app的缓存和数据,然后资产全数丢失!

分层确定性钱包则无需每次转账后都备份。它的私钥是对种子密码(Seed,一串由随机数生成器生成的随机数)进行单向哈希运算生成的,在分层确定性钱包中,只要有这个种子密码,就可以找回所有私钥,因此备份了种子密码就相当于备份了您的所有资产,所以它非常方便使用。

分层确定性的概念是根据比特币核心开发者Gregory Maxwell的原始描述和讨论,Pieter Wuille在2012年2月11日整理完善通过BIP32提案提出。但它直到2016年6月15日才被合并到Bitcoin Core,目前几乎所有的比特币钱包服务商都整合了该协议。

BIP32 是HD 钱包的核心提案,通过种子密码来生成主私钥,然后派生海量的子私钥和地址,但是种子密码是一串很长的随机数,不利于记录,后来BIP39用算法将种子密码转化为一串助记词 (Mnemonic),方便种子密码的保存。再后来BIP43对BIP32树结构增加了子索引标识purpose的扩展“m/purpose'/ * ”。最后,BIP44在BIP43和BIP32的基础上增加多币种,通过分层确定性钱包派生多个地址,可以同时管理主网和测试网的比特币,BIP44 提出了5层的路径建议,如下:

m/purpse'/coin_type'/account'/change/address_index,

BIP44的规则使得HD钱包非常强大,用户只需要保存一个种子密码(12~18个英文单词),就能控制其钱包里的所有币种。

比特币分层确定性钱包实现机制:

1. 生成一个助记词(BIP39)

2. 该助记词使用PBKDF2转化为种子(BIP39)

3. 种子用于使用HMAC-SHA512生成根私钥(BIP39)

4. 从该根私钥,导出子私钥(BIP32),其中节点布局由BIP44设置

可以看出 BIP39 生成助记词的过程非常重要,早期的HD 钱包助记词是12个单词(现在有的钱包已经增加到18个单词),一共有 2048 个单词可能性,根据这个公式“_n!/( n - r )!”_我们可以计算出随机生成的助记词所有可能性:

2048!/(2048-12)! = 5.2715379713014884760003093175282 e+39 。

地球上的沙子数量在大约是1 后面 18 个零。如果你可以每秒生成 一百万个助记词,那么一年可以生成 1000000*60*60*24*365=3.1536e+13,你大约需要 1.6715937e+26 年遍历以上所有助记词!

以太坊的EIP85提案HD钱包的路径为 : m/44'/60'/a'/0/n

a——表示帐号

n——第 n 生成的地址

60 是在SLIP44提案中暂定的补充协议,对应的币种就是ETH,因为BIP44对币种只定义到0 – 31。

以太坊各钱包的具体实现如下:

m/44'/60'/0'/0/x——imToken(可自定义路径),MetaMask,Jaxx,MyEtherWallet,TREZOR,Exodus

m/44'/60'/x'/0/0——KeepKey,MetaMask

m/44'/60'/0'/x——Electrum,Ledger Chrome App,

m/44'/coin_type'/account'/0——Coinomi

发展到这结束了嘛?

并没有。

你可以调查下是否还有其它相关的技术标准。

上一页2.6 手机钱包安装下一页2.8 钱包的安全性

最后更新于10个月前

这有帮助吗?

中定义了地址的大小写标准。

EIP-55