1 区块链的前世今生
密码朋克
应用场景
2 比特币是什么
2.1 货币历史
2.2 数字货币
2.3 信任从何而来
2.4 去中心化记账系统
比特币的原理
3.1 账本如何验证
原账本
张三自行修改了余额!
3.1.1 直接比较各账本记录
效率太差,不行!
3.1.2 Hash
特点
Hash 账本记录,直接对比摘要信息即可
区块
比特币大约每十分钟记一次账
原 hash值也参与新 hash
核对最后一个区块的摘要信息即可!
4 账户所有权问题
银行系统
银行开户
银行记账
所以银行的安全机制很严格,而比特币与之不同
比特币系统
账号 -> 地址
密钥 -> 私钥
非对称技术加密(交易签名)
谁拥有地址的私钥,就能进行支付
那么如何在不泄露私钥
情况下确定对某个地址的私钥
签名(加密过程)
先对原始的交易记录进行 hash 运算,得到摘要信息
使用摘要信息和私钥进行签名运算,得到签名信息
之后,付款的节点就会在整个网络进行广播
广播
内容包括交易的原始信息和签名信息
节点收到广播并且验证通过后对相邻节点再次进行广播
在其他节点收到广播信息之后呢,就开始了验证
验证(解密过程)
- 验证签名的信息是否为付款方用私钥对原始信息签名算法生成
- 若验证运算结果为原始交易信息的摘要,则验证通过
补充
无个人信息,确保了个人隐私 银行还有权冻结你的账户
5 为什么记账-挖矿
5.1 为什么记账
5.2 挖矿 - 工作量证明
5.2.1 规则
由于同时大量人记账可能造成记账不一致,所以需要指定规则规范操作
5.2.2 工作量证明
由于看起来 hash 算法其实很简单,为确保规则一执行,必须提高记账难度
规范 hash 值必须有 N 个0,通过不断地尝试的随机值进行操作匹配 现在已经达到18个0规约,难度极大!
5.2.3 交易记录集
5.2.4 工作量分析
6 共识机制
第一个完成工作量证明的节点有优先的记账权 每个矿工都是独立去完成工作量证明的
6.1 两个节点同时完成工作量证明,使用谁的区块呢?
为什么要遵守协议?
累计工作量大的区块链
分叉解决
分叉
长链为主