第一章 密码学及加密货币概述
1.1 哈希函数
特性1:碰撞阻力
碰撞:两个不同的输入,产生相同的输出
不同的自变量,得到相同的函数值
碰撞阻力:很难找到碰撞的自变量
特性2:隐秘性
不可逆向计算,不能通过函数值获取到自变量
特性3:谜题友好
谜题没有一个解决策略,比随机尝试x取值更好
安全哈希算法
MD变换,不同长度输入转为固定长度输出
切分成区块,每个区块进行哈希后加下一个区块再次哈希
1.2 哈希指针及数据结构
区块链
通过哈希指针确保区块不被篡改
梅克尔树
用哈希指针构建的二叉树,也是确保不被篡改
隶属证明、非隶属证明
判断一个数据区块是否属于一个梅克尔树,n个节点,只需要区块到树根的路径节点数(log(n))
1.3 数字签名
输入:信息+私钥 输出:签名
用公钥可以验证签名
用公钥伪造签名难度极大
对哈希值进行签署(信息长度有限,且具备碰撞阻力)
椭圆曲线数字签名算法ECDSA
1.4 公钥即身份
地址就是公钥的哈希值
地址是匿名的,但行为模式是可识别的
1.5 两种简单的加密货币
高飞币解决转移机制问题(用私钥对交易签名,形成区块链)
财奴币解决双花问题(用中心化)
似乎都不能找零?
第二章 BTC如何做到去中心化
2.1中心化与去中心化
2.2 分布式共识
在分布式系统中,达成共识,形成唯一的记录链条
尚无理论说明分布式共识在比特币中运行良好的原因
与经典模型不同:
1、奖励 2、随机性
2.3 使用区块链达成没有身份的共识
靠共识来避免双花攻击
2.4 奖励机制与工作量证明
区块奖励和交易费
第三章 比特币的运行机制
3.1 BTC的交易