- 区块链是从比特币中脱离出来的。
- 加密货币
- 分布式共识
- 想要生成一个加密货币,还要所有人去承认它
- ecash 盲签名技术
- hashcash 解决邮件系统中 DoS 攻击问题
- 提出使用「工作量证明」(POW Proof of Work)机制来获取额度
- B-money 引入数字货币生成过程。
- 比特币
- 加密基础理论发展:RSA 算法 & 公钥私钥加密体系 PPKC
- P2P 技术开发成熟
- hash 现金解决双重支付问题(痛点)
- 量子计算机对 RSA 有破坏性
- 分布式数据库存储
- 没有中心系统
- 如何保证每个节点的数据一致性问题?
- 如果有中心系统的话,只需要保证中心系统这一个节点的数据一致性就好了。
- 为什么要引入分布式?
- 高可用、稳定性问题
- 一致性 hash
- 冗余存储
- 强一致性、弱一致性、最终一致性。根据业务特征去选择
- FLP 不可能性原理
- 在一个分布式系统中不可能在同一个时刻保证数据一致性(强一致性
- 通过「共识算法」解决
- 拜占庭问题。打不打这个仗,需要五个将军来投票,超过 1/2 就打,而不是让一个将军自己去决定,防止被策反。
- 通过 POW 算法进行优化
- POW:工作量证明,通过计算来猜测一个数值,得以解决规定的 hash 问题。保证在一段时间内,系统中只能出现少数合法提案。
- hash 算法
- 加解密算法
- 解决我发给你的消息,只有你才能知道
- 数字签名
- 解决大家都知道这个消息是我发的
- 密钥、地址和钱包
- 密钥 => 私钥,不需要在网络上进行传播
- LevelDB
- 钱包不存钱,钱包存的是交易记录,谁给你转了钱,你给谁转了钱
- 基于椭圆曲线的公钥、私钥
- 私钥丢了就是丢了!!!没人知道这个私钥是你的私钥
- 交易
- 创建一个交易
- 在网络上广播这个交易
- 比特币找零:别人给我输入了 15 个比特币,我给别人输出 13 个比特币,还剩 2 个比特币再输入给自己。产生三笔交易
- 交易的确认
- 确认 A 是 A,通过 A 的签名
- 挖矿
- 把交易写入区块链,就是挖矿
- 交易不产生比特币,挖矿产生比特币
- 挖矿的过程中,回去监听比特币网络,正在挖 78 这个块时监听到其它矿工已经挖完了 78 这个块,自己必须要立马放弃,因为要让自己利益最大化,去挖 79 这个块。
- 博弈论。
- 贪心算法
- 哈希二叉树。用作快速归纳和椒盐大规模数据完整性的数据结构,包含加密哈希值。
- 图灵不完备系统
- 智能合约