一.数字货币介绍
比特币的源代码(大约有几万行)
- 区块链人群分布:币圈+链圈+矿圈
区块链是计算机和金融完美结合体 - 数字货币的产生环境
(1)数组货币是计算机密码学+分布式P2P网络+经济学+社会学的产物
(2)数字货币是一个去中心化的理论模型,没有中央银行
(3)数字货币是为了应对超发货币导致的通货膨胀
(4)数字货币解决了信任权证问题 - 什么成为数字货币
法币:国家信用背书
数字货币:用技术背书(e.g 比特币,以太坊)
支付宝和微信是法币的一种延伸,并非为数字货币
二.比特币介绍(一)
- 什么是比特币BTC:一种去中心化的数字货币(加密货币)
(1)比特币白皮书:《比特币:一种点对点的电子现金系统》
(2)BTC可以全世界流通,可以任意切割
(3)1BTC = 1亿聪(Satoshi) - 比特币BTC分布式网络节点
节点和节点之间通过IP地址连接,形成网络 - 比特币网状节点
(1)P2P点对点分布式系统
(2)全世界网状相连
(3)任何人都可以随时加入和退出
(4)节点和节点平等
(5)交易所、矿池、Bitcoin客户端都是其中的一个参与节点(全节点/钱包) - 比特币全节点/钱包
(1)钱包管理Wallet
(2)挖矿管理Miner—银行结算中心
(3)区块链数据Full Blockchain—-账本
(4)网络路由节点Network Routing Node—-管理节点和节点之间的连接
比特币的节点可以不是全节点,不同节点承担不同的角色 - BTC特点
(1)比特币总量2100万枚,永不增发
(2)永远不会通货膨胀,可能会通货紧缩
(3)去中心化流通货币
(4)转账有手续费(按照交易字节收费)
(5)比特币交易,账号全部匿名
(6)每隔大约10分钟全球会产生一个新的区块(当前是12.5BTC+手续费)—–相当于BTC奖励
(7)一个区块包含奖励50BTC
(8)每隔21万个区块就会BTC奖励减半,大约4年半减半一次
三.比特币钱包(Bitcoin Core)
- 比特币钱包下载
Bitcoin Core 全节点 钱包 冷钱包(没有网络也可以产生账号)
在交易所的钱包为热钱包 - 比特币钱包:余额查询,给对方转账,同步下载账本/区块
- 比特币账号:1开头为一次签名,3开头为多次签名
- 比特币转账费用:与金额无关,手续费和转账这条记录的字节数有关系,同时给多个人转账则手续费会更高;交易费越高,交易越快,中间有排序算法
- 比特币网络:主网络(交易网络)和测试网络(供开发使用)
- 地址离线产生,可以产生任意多的地址
四.比特币地址(账号)机制
- Wif格式
(1)长度为34位
(2)以1或者3(多重签名地址:多人验证)开头 - 私钥:一个BTC地址对应一个私钥
- 比特币地址产生流程
私钥 —> 公钥 —> 公钥哈希 <---> 钱包地址---> - 调试窗口
- 比特币地址特点
(1)比特币地址有自我校验功能
(2)比特币地址完全是离线生成的
(3)比特币地址概率上大约200年才会有可能2个地址完全相同
(4)有了私钥就有了比特币地址 - 长期持有比特币
(1)用钱包产生一个BTC地址
(2)然后把比特币地址的私钥坝村下来
(3)给别人自己的比特币地址
(4)在线查询余额(区块链浏览器)
五. 钱包安全
- 热钱包(交易所)
交易所自己控制,不会给用户私钥 - 热钱包(钱包App)
App团队也可知道私钥
手机钱包App需要给用户提供私钥,但是比冷钱包方便,易用 - 钱包地址安全
六.密码学哈希Hash散列算法
- 大量使用计算机密码学
- 哈希散列算法
(1)把一段任意长度的数据变成均匀分布固定长度的数据
(2)Hash不可逆
(3)在任何电脑,手机,或者笔算Hash值都是一样的—–不依赖于设备
(4)y = Hash(x) 已知x可以得到y,反之不可以
(5)HASH散列就像一个人的指纹
(6)HASH的结果就是均匀分布 - HASH摘要算法
(1)MD5
(2)安全哈希算法
a. SHA1 160位
b. SHA256 256位
c. SHA512 512位
d. RIPEMD-160 160位 - 比特币中Hash的用处:进行分组验证
(1)Hash公钥有统一的长度
(2)Hash和解密一起做验证,签名算法。(https协议中常用)
(3)挖矿Hash碰撞算法 - Hash碰撞
(1)给定一个元数据,如何填充一段数据,结果是满足一定的嘴个
(2)挖矿:给定数据hellobitcoin,后面追加任意数据(碰撞数),满足Hash最前面有5个0;前面的零越多,难度就会越大 - 比特币挖矿(Hash碰撞)
挖矿就是找出一个值nonce(幸运值),小于一个目标值target