区块链,技术驱动金融
密码学hash算法
- 碰撞阻力,两次hash的结果几乎不可能相同
- 隐秘性,不可逆
谜题友好
- H(id || x) ∈Y,Y的范围越小,得到Y就越难,ID不确定,保证求解无捷径
区块链
- hash指针,指向数据位置以及其位置数据的hash值的指针
- hash指针形成的链条,我们成为区块链
- 区块链无法篡改
梅克尔树
- hash二叉树
- 隶属证明,复杂度log(n),节点数为n的二叉树
- 非隶属证明,排序之后,查看连续性
- hash二叉树
公钥身份,去中心化的身份认证体系
数字签名
生成sk,pk
sig:=sign(sk, message)
isValid:=verify(pk, message, sig)
比特币是如何去中心化的
- 谁在维护交易账本
- 谁有权批准哪个交易是正当有效的?
- 谁在制造新的比特币?
- 谁在制定系统变化规则?
- 比特币是如何取得交易价值的?
分布式共识协议
- 输入值的中止须经所有诚实节点来确定
- 这个输入值必须由诚实节点来生成
- 比特币的分布式共识体系
- 奖励理念
- 随机性概念
- 隐形共识
- 其他节点可以通过隐形地接受或者拒绝前面这个被随机选择出来的节点。如果接受,它们会在这个块之后接龙下去;如果拒绝,它们忽略这个新的块,选择前一个曾经接受的区块,继续接龙。
- 新的交易被广播到所有节点上
- 每个节点都将新的交易放进一个区块
- 在每个回合,一个随机节点可以广播他的区块
- 其他节点可以选择接受这个区块,前提是区块里的交易都是正当的(有真的签名)
- 节点们可以把以上区块的hash值放进自己的区块里,以此来表示他们对新区块的认可
- 其他节点可以通过隐形地接受或者拒绝前面这个被随机选择出来的节点。如果接受,它们会在这个块之后接龙下去;如果拒绝,它们忽略这个新的块,选择前一个曾经接受的区块,继续接龙。
- 一个交易被确认的越多,那么被纳入长期共识链的概率就越大,常用的确认次数是6次
比特币如何去中心化
- 身份的去中心化,没有唯一标识
- 交易的确认方式,点对点的确认,一般确认6次,分布式共识
- 对打包新区块的奖励政策,达到纳什均衡
比特币交易
- 地址转换
- 有效验证
- 资金合并
比特币脚本
- 当前交易的输入脚本+上一笔交易的输出脚本(公钥hash,签名),就可以获取比特币的使用权
应用
第三方支付交易
绿色地址
高效小额支付
比特币网络
零验证交易和费用替代策略
泛拱算法
如何存储和使用比特币
- 本地存储
- 比特币钱包
冷存储
分层确定性钱包
- 有一个地址生成器,生成一长串配对的地址和私钥
大脑钱包
- 可预测算法把口令变成公钥/私钥
纸钱包
- 把私钥印在纸上
密钥分存和密钥共享
- 密钥分存
- 把密钥转换成若干个子密钥
- 门限签名
- 去中心化的方式还原密钥
- 多重签名
- 一笔交易需要多重签名
在线钱包和交易所
准备金证明(不低于)
负债证明(不低于)
- 梅克尔树
给用户提供存款证明
挖矿
- 公分分红(PPS)
- 按实际比例分红(PPLNS)
- 分叉攻击
- 通过贿赂还进行分叉攻击
- 临时保留区块攻击
- 惩罚分叉攻击
- 你拥有大算力,不把某地址的交易打包进区块
- 羽量级分叉攻击,尝试分叉,可能会放弃分叉
匿名性
- 混币
- 分布式混币
- 合币
- 高风险交易流