目录
a、(public key 、private key)在比特币中代表一个账户
(1)、区块链中指向前一个区块的指针:hash of previous block header
5、coinbase transaction(产生币的来源)
一、区块链技术与应用
1、课程简介
二、BTC-密码学原理
1、比特币主要用到密码学的两个功能: 哈希 、签名
(1)哈希碰撞 x!=y ,H(x)=H(y)(不可避免)
a、Collision resistance 碰撞特性
b、MD5 哈希函数
(2)Hiding(隐秘性):单向且不可逆 x—指向—H(x)
(3)Puzzle friendly 谜题友好
a、通常我们限定输出的哈希值在一定范围内,即H( block header )<= target(目标预值),这个确定链头的范围的过程称为挖矿。
b、比特币中用的哈希函数:SHA-256(secure hash algorithm)
2、
a、(public key 、private key)在比特币中代表一个账户
b、公私钥 非对称加密
用一对密钥 加密和解密用了同一人的公私钥
公钥(银行账号)公开,私钥(账户密码)保密
c、签名用的是私钥,验证签名用的是公钥
d、比特币系统中先对一个message取一个哈希,然后再对这个哈希值签名。
三、数据结构
1、主要概念:哈希指针(hash pointers)
(1).哈希指针H() 除了存储地址之外,还要保存结构体的哈希值。保存了哈希值不仅能找到结构体的位置,而且能检测出这个结构体的内容有没有被篡改。
(2).创世区块:genesis block
(3).最后一个区块(most recent block)
(4).每个区块都包含指向前一个区块的哈希指针 H()
(5).
a、 tamper-evident log 篡改证明记录
b、Block header 存root hash,但无交易的具体内容
C、Block body:有交易的列表
(6).merkle tree (哈希指针构造) binary tree(二叉树)
图 1-Merkle proof 示意图
四、比特币的共识协议
1、防范double spending attack
2、每个交易分为输入和输出两个部分
a、输入部分要说明:币的来源,付款人的公钥。输出部分:收款人公钥的hash(类似地址)
3、
(1)、区块链中指向前一个区块的指针:hash of previous block header
(2)、Merkle root hash(根哈希值)
(3)、挖矿的难度目标预值:target
(4)、挖矿的随机数值:nonce
4、
(1)、系统中节点分为:
全节点fully ralidating(Full node)和轻节点(light node)
a、系统中大多是轻节点
(2)、账本的内容要取得分布式的共识
a、分布式的共识(distributed consensus)
b、分布式的哈希表(distributed hash table)
C、FLP impossibility result
d、asynchronous异步系统
e、faulty错误
f、著名结论:CAP Theorem (consistency:一致性 availablility partition tolerance)分布式系统的三个性质 注意:不可能三个性质都满足,最多两个。
(3)、consensus in BitCoin比特币中的共识
a、Menbership 成员
b、hyperledger 联盟链 fabric
c、sybil attack 女巫攻击
(4)、
a、某个节点找到了符合要求的nonce,那么我们就说他获得了记账权。
b、记账权:往比特币去中心化的账本里写入下一个区块的权力。
C、找到nonce,获得记账权的节点才有权力发布下一个区块。
(5)nBits:目标预值的编码
(6)、forking attack (分叉攻击)
5、coinbase transaction(产生币的来源)
(1)btc :比特币的符号
(2)初块奖励变化: 50btc 25btc 12.5btc
6、hash rate决定投票的权重。
7、防范女巫攻击。
8、名词解释
a、Mining 挖矿 :比特币争夺记账权
b、Digital gold比特币:数字黄金
c、Miner 矿工