Digital wallets functions & security6. 对数字货币的⼀一些误解
• “虚拟”货币,没有实际价值
• 所有法币都是虚拟的,建议不不再称呼为虚拟货币,称为数字货币或加密货币
• 挖矿导致资源浪费,成本⾼高昂
• ⻩黄⾦金金/⽩白银开采,提炼,运输,保存成本更更⾼高,法币的体系维护成本⾼高得多
• 没有政府背书,缺乏信⽤用
• 漫漫历史⻓长河中,只有很短的时间由政府发⾏行行货币,⼈人⺠民有选择货币的权利利
• 确认时间过⻓长,难以成为⽇日常使⽤用
• 对标各⼤大银⾏行行的清算系统,数字货币系统的确认要快得多
• ⽐比特币不不透明,不不受监管
• ⽐比特币的每⼀一笔交易易都可查,每⼀一个地址都透明,极易易跟踪
• ⽤用于⻩黄赌毒,⽀支持恐怖组织?
• 美国财政部曾表示: ⽐比特币并未在任何可观的程度上被⽤用于资助恐怖主义
• 新技术总是⾸首先适⽤用于特殊场合,想想 概率和统计理理论,加密体系,HTTPS协议,甚⾄至 QQ, FACEBOOK, …
7. 拥有⽐比特币/ULORD – 开户?
• 交易易所账号算吗?
• NO,你交易易所的账号并不不是你真正拥有的的数字货币账号
• 你在交易易所的资产并没有上链,有诸多⻛风险:⿊黑客,交易易所软件故障,破产跑路路,…
• 你需要拥有⾃自⼰己的账号
• 但没有银⾏行行等中介机构为你服务
• 不不需要任何⼈人,⾃自⼰己动⼿手
10. 钱包进阶 – 预备知识:摘要/散列列函数
• SHA256: 哈希/散列列/杂凑
• 对任何⻓长度的报⽂文(就是你要加密的信息), 计算出来都是⼀一个32 BYTE的结果, 称之为摘要
• 可看成数据指纹,内容相同,指纹相同;内容不不同,指纹不不同,可以代表数据的唯⼀一性
• 不不可逆:正向运算简单,逆向运算⼏几乎不不可能
• ⽤用处:
• 提取数据指纹
• ⽤用于验证数据的完整性和正确性
• ⽤用于数据签名
11. 校验码 - 哈希(摘要)的⼀一种⽅方式
• ⼀一个简单的例例⼦子
• 求和
• 取最后⼀一个数字
• ⼀一起送出
7
7
3
4
2
5
9
0
0
6
43
• 数字货币⼀一般采⽤用SHA256
• 对数据计算出⼀一个256位的哈希值
• 取⼀一部分或全部
• 与数据放在⼀一起,送出(相当于签名或盖章)
• 例例⼦子:
• ⽐比特币地址
• 助记词
• 交易易 …
15. 双密钥 – 互为加解密
• KEY1 加密, KEY2解密
• KEY2加密, KEY1解密
Key 1 Key 2
Unencrypted data Encrypted data
Key 1 Key 2
Unencrypted data Encrypted data
Key 1 Key 2
Encrypted data Unencrypted data
Key 1 Key 2
Encrypted Unencrypted
17. ⽐比特币/ULORD 账号 – 地址
• ⼀一个例例⼦子:3AVWDHFN87JHGVR624XY92HVAJN7YVSHIZ (BTC)
• UJKZT4UMCXP12X2QEE3AF9CMLGZSEAQ6E8 (ULORD)
• 怎么来的:
• 由私钥推导出公钥,由公钥运算出地址
• 可⻅见:
• 有了了私钥,就有了了⼀一切控制权
• 区块链的世界⾥里里,账号和密码不不是分离的
19. 如何⽣生成 私钥
• 私钥就是⼀一个256位(32个字节)的数
• ⼏几乎所有32字节的数都可以作为私钥
• “⼏几乎”是因为有⼀一个范围:1 到 0XFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141
• ⼏几个问题:
• 真的在这个范围内的任何32字节数都可以吗?
• 那会不不会我的私钥跟别⼈人的相同呢?那样我的钱岂不不是被⼈人可以划⾛走了了。
• 怎么能做到⾃自⼰己的私钥跟别⼈人不不⼀一样?
• 随机⽣生成私钥多难记啊?有没有更更好的办法呢?
• 私钥就是⼀一切,遗失私钥,意味着遗失数字资产
21. 钱包的作⽤用
1. 随机产⽣生(⾜足够强度的)私钥 (往往是⼀一批)
2. 根据私钥运算出公钥及地址
3. 同步区块链头部信息,查询区块链确知账户余额
• 注意:你的币不不在钱包⾥里里,⽽而是记录在链上,钱包需要同步和查询得到信息
4. 提供地址⽤用于接受数字货币
5. 为发送数字货币(交易易)进⾏行行签名
6. 管理理使⽤用过的地址和产⽣生新地址
7. 其他备份、恢复、密码管理理等附加功能
22. 钱包的类别
• 在线WEB钱包/离线钱包
• 在线钱包:HTTPS://BLOCKCHAIN.INFO, HTTPS://GREENADDRESS.IT/EN/, HTTPS://BITCOIN.ORG/EN/WALLETS/WEB/BITGO/
• 全节点钱包/轻钱包
• 全节点钱包包含整个区块链信息
• 轻钱包为SPV(简单⽀支付验证协议)客户端
• 纸钱包/脑钱包
• 桌⾯面钱包/⼿手机钱包
• 桌⾯面钱包: ELECTRUM, BITCOIN CORE, GREEN ADDRESS, ARMONY, …
• ⼿手机钱包: BREAD,GREEN ADDRESS, IMTOKEN, ELECTRUM, BITHER
• 冷钱包(硬件钱包)
• KEEPKEY, LEDGER NANO S, TRAZOR, DIGITAL BITBOX
23. 钱包的烦恼
• 传统钱包(⾮非确定性钱包)- 如传统的 BITCOIN CORE
• 地址更更新(为了了隐私和安全)
• 私钥备份和管理理
• 私钥的记录和保存
• 私钥的更更新、存储和记忆为数字货币的使⽤用带来了了⾼高⻔门槛
• 确定性钱包的问世解决了了这⼀一问题
早期BITCoin Core: 客户端会
预先⽣生成 100 个随机私钥,并
且每个私钥只使⽤用⼀一次。每个交
易易使⽤用⼀一个地址的概念念是中本聪
提出的。如果交易易比较频繁,私
钥可能会⽤用光,然后再产⽣生⼀一批
私钥,所以每次完成 100 个交
易易后,你必须备份新的
wallet.dat ⽂文件,否则可能会丢
失资产。
24. (分层)确定性钱包
• ⽐比特币改进建议:
• BIP32:HIERARCHICAL DETERMINISTIC WALLETS (分层确定性钱包)
• BIP39:MNEMONIC CODE FOR GENERATING DETERMINISTIC KEYS (助记词字典)
• BIP43:PURPOSE FIELD FOR DETERMINISTIC WALLETS (确定性钱包⽬目的字段定义:44)
• BIP44:MULTI-ACCOUNT HIERARCHY FOR DETERMINISTIC WALLETS (多账户分层确定性钱包)
• BIP32 地址路路径:
M / PURPOSE' / COIN_TYPE' / ACCOUNT' / CHANGE / ADDRESS_INDEX
例例如:M / 44‘ / 0’ / 0‘ / 0 / 1; M/44‘/60’/0‘/0/0; M/44’/247’/0’/0/1
REGISTERED COIN TYPES: HTTPS://GITHUB.COM/SATOSHILABS/SLIPS/BLOB/MASTER/SLIP-0044.MD
BITCOIN: 0; ETHER: 60; ULORD: 247
30. 钱包的安全问题
• ⾮非确定性钱包
• 私钥之间没有关联
• 私钥被盗,⻢马上失去数字资产
• 私钥遗失,资产永久消失
• 确定性钱包
• 助记词 !" 根种⼦子(包括主私钥 和 主链编码): 助记词可以推出所有私钥
• 助记词被盗:(不不)定时炸弹
• 助记词遗失:损失整个钱包资产
• 分层确定性钱包,私钥和上级公钥都应妥善管理理,否则可能造成资产遗失
• 根据资产情况,配置不不同的钱包
• 根据资产情况,配置多个钱包