区块链技术与应用视频笔记(1-4)

区块链技术与应用视频笔记(1-4)

  • 第1讲 课程简介
    • 课程基本信息
    • 课程大纲
  • 第2讲 比特币中的密码学原理
    • 哈希
      • collision resistance(哈希碰撞)
      • hiding
    • 签名
      • 加密
      • 解密
  • 第3讲 比特币的数据结构
    • hash pointer
    • Merkly Tree
    • 时间空间复杂度
  • 第4讲 BTC-协议
    • 1、谁发行货币
    • 2、double spending(双重花费)
    • 区块
    • 记账
      • distributed consensus
        • FLP impossibility result
        • CAP theorem
        • Paxos
      • 共识协议
      • 分叉攻击(Forking attack)
      • 奖励(block reward)

第1讲 课程简介

课程基本信息

区块链技术与应用视频笔记(1-4)_第1张图片

课程大纲

区块链技术与应用视频笔记(1-4)_第2张图片
区块链技术与应用视频笔记(1-4)_第3张图片
区块链技术与应用视频笔记(1-4)_第4张图片

第2讲 比特币中的密码学原理

比特币中用到两个功能:哈希和签名

哈希

密码学中用到的哈希cryptographic hash function
两个重要的性质:

collision resistance(哈希碰撞)

输入空间无限,输出空间有限
collision free
没有高效的方法可以人为地制造哈希碰撞。brute-force(暴力破解)
无法从数学角度证明,一个哈希函数不存在哈希碰撞
例如,MD5现在已经可以人为地进行哈希碰撞

hiding

已知H(x)无法推出x,即结果不会泄露输入(暴力破解可以)。
输入空间无限大;
输入空间比较均匀,各种取值差不多

利用以上性质可以得到:
digital commitment
digital equivalent of a sealed envelop
为了实现输入空间无限大和均匀分布,添加随机数nonce,整体取哈希:H(x | nonce)

puzzle friendly:挖矿的过程没有捷径,只有不断的尝试。difficulty to solve, but easily to verify。体现工作量证明
挖矿的过程:不断尝试nonce,是的H(Block Header)<= target

比特币中使用的哈希函数是SHA-256,SHA是Secure Hash Algorithm

签名

比特币中的账户管理方式:去中心化
建立公钥和私钥(public key, private key)。公钥相当于银行账户,私钥相当于银行账户密码。
asymmetric encryptic algorithm(非对称加密算法),加密使用公钥,解密使用私钥。

加密

使用同一个人的公钥和私钥
我要发信息给你,使用你的公钥加密信息,你再用你自己的私钥解密。

解密

私钥保存在本地

比特币系统是不加密的,信息是公开的。
公钥和私钥是用来做签名的。
发布交易用自己的私钥签名,其他人验证签名用我的公钥。

比特币系统中,一般是先对一个message取一个hash,再对hash值签名。

不断产生大量的公私钥对,也难以出现一对完全相同的公私钥对
a good of source randomess

第3讲 比特币的数据结构

hash pointer

区块链是由一系列哈希指针连接的
tamper-evident log (防篡改日志)
区块链技术与应用视频笔记(1-4)_第5张图片

Merkly Tree

与普通二叉树不同的是,利用哈希指针
只需要检测最后一个hash值(root hash),就可以判断是否被修改
区块链技术与应用视频笔记(1-4)_第6张图片
区块链技术与应用视频笔记(1-4)_第7张图片
Merkly tree 提供Merkly proof
区块链分为全节点和轻节点,手机比特币钱包使用轻节点。找到
区块链技术与应用视频笔记(1-4)_第8张图片

时间空间复杂度

  • proof of membership / proof of inclusion
    O(log(n))

  • proof of non-membership
    复杂度为O(n)

根据哈希指针排序的Merkly Tree是sorted Merkly Tree,,比特币并没有采用这样的结构
没有环的情况下都可以使用hash pointer

第4讲 BTC-协议

1、谁发行货币

2、double spending(双重花费)

一个交易过程
区块链技术与应用视频笔记(1-4)_第9张图片
A给B转账
输入要包含A的btc来源,A的公钥(便于共同验证和记账)
输出:B的公钥哈希
验证:A给B转账的输入,铸币阶段A的输出哈希。两者验证

输入和输出都是一段脚本Bitcoin Script

区块

Block header:

  • version
  • hash of previous block header
  • Merkly root tree
  • target
  • nonce

Block body

  • transaction list

节点:

  • full node:保存区块链所有,验证每一个交易。又叫full validating node
  • light node:只保存block header的信息,无法独立验证交易的合法性

记账

distributed consensus

(分布式共识)简单的例子就是distributed hash table
FLP impossiable result,在异步的网络中,网络传输没有上限,但凡有一个用户出现faulty,整个系统就无法取得共识

FLP impossibility result

在一个异步系统中,网络时延没有上限,但凡有一个成员是faulty,也无法达成共识

CAP theorem

Consistency
Availibility
Partition tolerance
任何一个分布式系统中,上述三个性质最多只能满足两个

Paxos

保障一致性

共识协议

Consensus in BTC
首要问题membership,谁有投票权
hyperledger fabic(联盟链)
sybil attack(女巫攻击,产生大量账号类似水军攻击)
比特币利用计算力投票

分叉攻击(Forking attack)

从区块链中间插入一个区块,以回滚已经发生的交易
区块链技术与应用视频笔记(1-4)_第10张图片

  • 接受区块必须在最长合法链上
  • 区块链在正常情况下也会发生分叉,如两个节点在差不多时间内记账
  • 如果出现等长分叉,会持续一段时间,等到下一个区块的出现。被丢弃的区块叫orphon block(孤儿区块)、
  • 分叉上的交易不被接受

奖励(block reward)

coinbase transaction是产生比特币的唯一来源,出块奖励为50BTC,21w之后奖励减半,21w之后再减半

你可能感兴趣的:(区块链,比特币)